AJ-Report二次开发4:定义多个默认初始化值,组件主动触发联动

本文主要是介绍AJ-Report二次开发4:定义多个默认初始化值,组件主动触发联动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 上篇的抛砖引玉,如何新增自定义组件:AJ-Report二次开发2:新增自定义组件_大概是只仓鼠的博客-CSDN博客

 新增组件被联动的方法:AJ-Report二次开发1:表格组件联动_大概是只仓鼠的博客-CSDN博客

这次的用户需求如下:

由于查询参数不能对单个页面一开始设置初始化值,所以想要做一个,静态数据defaultText,要求一开始主动联动,后续不做处理。

即:静态已知参数进入页面的一个初始化。


一、创建引用文件

详细请参考:

AJ-Report二次开发2:新增自定义组件_大概是只仓鼠的博客-CSDN博客

简单提点,

1、在src\views\bigscreenDesigner\designer\widget\form\下面根据下拉框组件(WidgetSelect.vue),复制一份文件改名为widgetDefaultText.vue,修改name(其他稍后修改)。

2、在src\views\bigscreenDesigner\designer\tools\configure\form\下面根据下拉框组件(WidgetSelect),复制一份文件改名为widget-default-text.js,修改export const和label相关(其他稍后修改)。

3、修改相关引用

(1)src\views\bigscreenDesigner\designer\widget\widget.vue

(2)src\views\bigscreenDesigner\designer\widget\temp.vue

(3)src\views\bigscreenDesigner\designer\tools\main.js

二、配置文件

这里是打算只需要用静态数据做一个初始联动,所以可以暂时去除动态数据。

1、在src\views\bigscreenDesigner\designer\tools\configure\form\widget-default-text.js修改相关信息

export const widgetDefaultText = {code: 'widget-default-text',type: 'form',tabName: '表单',label: '初始默认框',//需要修改名字icon: 'icondanhangshurukuang',//根据实际情况修改iconoptions: {setup: [{type: 'el-input-text',label: '图层名称',name: 'layerName',required: false,placeholder: '',value: '初始默认框',//需要修改名字}, //这里设置是否显示配置信息(一般不会显示){type: 'el-switch',label: '是否显示',name: 'showTextarea',value: false,},[{name: '组件联动',list: [{type: 'componentLinkage',label: '',name: 'componentLinkage',required: false,value: []}]}]],//这里设置组件联动data: [{type: 'el-radio-group',label: '数据类型',name: 'dataType',require: false,placeholder: '',selectValue: true,selectOptions: [{code: 'staticData',name: '静态数据',}],value: 'staticData',},{type: 'el-button',label: '静态数据',name: 'staticData',required: false,placeholder: '',relactiveDom: 'dataType',relactiveDomValue: 'staticData',value: [{value1:'%',}],},{type: 'dycustComponents',label: '',name: 'dynamicData',required: false,placeholder: '',relactiveDom: 'dataType',relactiveDomValue: 'dynamicData',chartType: 'widget-table',dictKey: 'TEXT_PROPERTIES',value: '',},],position: [{type: 'el-input-number',label: '左边距',name: 'left',required: false,placeholder: '',value: 0,},{type: 'el-input-number',label: '上边距',name: 'top',required: false,placeholder: '',value: 0,},{type: 'el-input-number',label: '宽度',name: 'width',required: false,placeholder: '该容器在1920px大屏中的宽度',value: 100,},{type: 'el-input-number',label: '高度',name: 'height',required: false,placeholder: '该容器在1080px大屏中的高度',value: 40,},],}
}

2、增加组件联动条件

在src\views\bigscreenDesigner\designer\linkageLogic.js的lickageParamsConfig增加联动数据:

  {name:'默认值',code: 'widget-default-text',paramsKey: ['value1','value2','value3','value4','value5','value6','value7','value8','value9','value10',]},

效果如下,这里预留了10个参数:

3、修改src\views\bigscreenDesigner\designer\widget\form\widgetDefaultText.vue文件

这里我只打算放一个disable的textarea显示静态数据配置项,也可以不写,不过为了观察方便,建议写上,

<template><el-input v-show="showTextarea":style="styleObj"type="textarea":rows="2"v-model="textarea"disabled></el-input>
</template>
<script>
import {originWidgetLinkageLogic,
} from "@/views/bigscreenDesigner/designer/linkageLogic";
export default {name: "widgetDefaultText",props: {value: Object,ispreview: Boolean,widgetIndex: {type: Number,default: 0,},},data() {return {textarea: "",showTextarea:true,optionsStyle: {},optionsData: {},optionsSetup: {},};},computed: {styleObj() {return {position: this.ispreview ? "absolute" : "static",width: this.optionsStyle.width + "px",height: this.optionsStyle.height + "px",left: this.optionsStyle.left + "px",top: this.optionsStyle.top + "px",background: this.optionsSetup.select_background,color: this.optionsSetup.select_color,};},allComponentLinkage() {return this.$store.state.designer.allComponentLinkage;},},watch: {value: {handler(val) {this.optionsSetup = val.setup;this.optionsData = val.data;this.optionsStyle = val.position;},deep: true,},},mounted() {this.optionsSetup = this.value.setup;this.optionsData = this.value.data;this.optionsStyle = this.value.position;this.showTextarea = this.value.setup.showTextareatry {this.textarea = JSON.stringify(this.optionsData.staticData)} catch(err){console.error(err)}// targetWidgetLinkageLogic(this); // 联动-目标组件逻辑originWidgetLinkageLogic(this, true, {currentData: this.optionsData.staticData[0],});},methods: {changeTab() {console.log(this.inputValue);originWidgetLinkageLogic(this, true, {currentData: this.inputValue,}); // 联动-源组件逻辑},},
};
</script>
<style lang="scss" scoped></style>

然后就可以了,可以设置不显示,但不建议默认不显示。

这篇关于AJ-Report二次开发4:定义多个默认初始化值,组件主动触发联动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/799585

相关文章

kotlin中的行为组件及高级用法

《kotlin中的行为组件及高级用法》Jetpack中的四大行为组件:WorkManager、DataBinding、Coroutines和Lifecycle,分别解决了后台任务调度、数据驱动UI、异... 目录WorkManager工作原理最佳实践Data Binding工作原理进阶技巧Coroutine

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

Vue ElementUI中Upload组件批量上传的实现代码

《VueElementUI中Upload组件批量上传的实现代码》ElementUI中Upload组件批量上传通过获取upload组件的DOM、文件、上传地址和数据,封装uploadFiles方法,使... ElementUI中Upload组件如何批量上传首先就是upload组件 <el-upl

MySQL9.0默认路径安装下重置root密码

《MySQL9.0默认路径安装下重置root密码》本文主要介绍了MySQL9.0默认路径安装下重置root密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录问题描述环境描述解决方法正常模式下修改密码报错原因问题描述mysqlChina编程采用默认安装路径,

Python自动化办公之合并多个Excel

《Python自动化办公之合并多个Excel》在日常的办公自动化工作中,尤其是处理大量数据时,合并多个Excel表格是一个常见且繁琐的任务,下面小编就来为大家介绍一下如何使用Python轻松实现合... 目录为什么选择 python 自动化目标使用 Python 合并多个 Excel 文件安装所需库示例代码

Vue3中的动态组件详解

《Vue3中的动态组件详解》本文介绍了Vue3中的动态组件,通过`component:is=动态组件名或组件对象/component`来实现根据条件动态渲染不同的组件,此外,还提到了使用`markRa... 目录vue3动态组件动态组件的基本使用第一种写法第二种写法性能优化解决方法总结Vue3动态组件动态

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::