{"remainingRequest":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Device\\deviceManage\\components\\modle\\EquipFunctionDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Device\\deviceManage\\components\\modle\\EquipFunctionDialog.vue","mtime":1667545182426},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport PhysicalModel from '@/api/device/PhysicalModel.js'\r\nimport dictUtils from '@/components/dict/DictSelectUtils.js'\r\nexport default {\r\n name: 'FunctionDialog',\r\n props: {\r\n pId: {\r\n type: String,\r\n default: ''\r\n },\r\n parameterID: {\r\n type: Object,\r\n default: function() {\r\n return\r\n }\r\n }\r\n },\r\n components: {},\r\n data() {\r\n return {\r\n jsons: true,\r\n dtype: true,\r\n jsons2: true,\r\n dtype2: true,\r\n // 输出显示\r\n time: '时间', //时间&日期的lable\r\n showFormData: '', //用于判断类型显示不同输出\r\n datatimes: [], // 用于动态绑定时间/日期的下拉框\r\n lableName: '', //布尔&枚举lable\r\n boolShow: false, //禁用布尔前面的key\r\n dialogData: [{}], //布尔&枚举存储数据\r\n\r\n // 字典\r\n dateFormarts: [],\r\n dateTimeFormarts: [],\r\n dataTypes: [],\r\n dataUnits: [],\r\n activeCollapse: '1',\r\n title: '新增',\r\n showFormDia: false,\r\n parameters: {\r\n code: '',\r\n isAsyn: 0,\r\n memo: '',\r\n name: '',\r\n outDataFormart: '',\r\n outDataType: '',\r\n outDataUnit: '',\r\n params: [\r\n {\r\n paramCode: '',\r\n paramDataFormart: '',\r\n paramDataType: '',\r\n paramName: '',\r\n // 输入显示\r\n showInputData: '',\r\n time2: '时间', //时间&日期的lable\r\n datatimes2: [], // 用于动态绑定时间/日期的下拉框\r\n lableName2: '', //布尔&枚举lable\r\n boolShow2: false, //禁用布尔前面的key\r\n dialogData2: [{}] //布尔&枚举存储数据\r\n }\r\n ],\r\n productId: '',\r\n sn: 0\r\n },\r\n rules: {\r\n name: [\r\n {\r\n required: true,\r\n message: '请输入功能名称',\r\n trigger: 'blur'\r\n }\r\n ],\r\n code: [\r\n {\r\n required: true,\r\n message: '请输入功能标识',\r\n trigger: 'blur'\r\n }\r\n ],\r\n isAsyn: [\r\n {\r\n required: true,\r\n message: '请选择是否异步',\r\n trigger: 'blur'\r\n }\r\n ],\r\n outDataType: [\r\n {\r\n required: true,\r\n message: '请选择输出参数类型',\r\n trigger: 'blur'\r\n }\r\n ]\r\n }\r\n }\r\n },\r\n async created() {\r\n // 数据单位\r\n this.dataUnits = dictUtils.getDictItemsFromCache('sjdw')\r\n // 属性类型\r\n this.dataTypes = dictUtils.getDictItemsFromCache('sxlx')\r\n // 时间格式\r\n this.dateTimeFormarts = dictUtils.getDictItemsFromCache('sjgs')\r\n // 日期格式\r\n this.dateFormarts = dictUtils.getDictItemsFromCache('rqgs')\r\n },\r\n methods: {\r\n // 动态渲染数据单位,格式 ===> 输出显示\r\n changeDataType(item) {\r\n if (item == '') {\r\n this.showFormData = item\r\n }\r\n if (item == 'string') {\r\n this.showFormData = item\r\n this.parameters.outDataFormart = 'null'\r\n }\r\n if (item == 'int') {\r\n this.showFormData = item\r\n this.parameters.outDataFormart = 'null'\r\n }\r\n if (item == 'float') {\r\n this.showFormData = item\r\n this.parameters.outDataFormart = 0\r\n }\r\n if (item == 'bool') {\r\n this.showFormData = item\r\n this.lableName = '布尔值:'\r\n this.boolShow = true\r\n this.dialogData = [{}, {}]\r\n this.dialogData[0].label = '是'\r\n this.dialogData[1].label = '否'\r\n }\r\n if (item == 'date') {\r\n this.showFormData = item\r\n this.time = '日期'\r\n this.datatimes = this.dateFormarts\r\n this.parameters.outDataFormart = 'yyyy-MM-dd'\r\n }\r\n if (item == 'dateTime') {\r\n this.showFormData = item\r\n this.time = '时间'\r\n this.datatimes = this.dateTimeFormarts\r\n this.parameters.outDataFormart = 'yyyy-MM-dd HH:mm:ss'\r\n }\r\n if (item == 'enum') {\r\n this.showFormData = item\r\n this.lableName = '枚举项:'\r\n this.boolShow = false\r\n this.dialogData = [{}]\r\n }\r\n },\r\n // 动态渲染数据单位,格式 ===> 输入显示\r\n changeInputType(item) {\r\n if (item.paramDataType == '') {\r\n item.showInputData = item.paramDataType\r\n }\r\n if (item.paramDataType == 'string') {\r\n item.showInputData = item.paramDataType\r\n item.paramDataFormart = 'null'\r\n }\r\n if (item.paramDataType == 'int') {\r\n item.showInputData = item.paramDataType\r\n item.paramDataFormart = 'null'\r\n }\r\n if (item.paramDataType == 'float') {\r\n item.showInputData = item.paramDataType\r\n }\r\n if (item.paramDataType == 'date') {\r\n item.showInputData = item.paramDataType\r\n item.time2 = '日期'\r\n item.datatimes2 = this.dateFormarts\r\n }\r\n if (item.paramDataType == 'dateTime') {\r\n item.showInputData = item.paramDataType\r\n item.time2 = '时间'\r\n item.datatimes2 = this.dateTimeFormarts\r\n }\r\n if (item.paramDataType == 'bool') {\r\n item.showInputData = item.paramDataType\r\n item.lableName2 = '布尔值:'\r\n item.boolShow2 = true\r\n item.dialogData2 = [{}, {}]\r\n item.dialogData2[0].label = '是'\r\n item.dialogData2[1].label = '否'\r\n }\r\n if (item.paramDataType == 'enum') {\r\n item.showInputData = item.paramDataType\r\n item.lableName2 = '枚举项:'\r\n item.boolShow2 = false\r\n item.dialogData2 = [{}]\r\n }\r\n },\r\n /**\r\n * 输出\r\n * */\r\n // 布尔&枚举添加\r\n addTable() {\r\n this.dialogData.push({})\r\n },\r\n // 布尔&枚举删除\r\n removeTable(index) {\r\n if (this.dialogData.length == 1) {\r\n this.parameters.outDataFormart = ''\r\n this.dialogData = [{}]\r\n } else {\r\n this.dialogData.splice(index, 1)\r\n }\r\n },\r\n /**\r\n * 输入\r\n * */\r\n // 布尔&枚举添加\r\n addTable2(item) {\r\n item.dialogData2.push({})\r\n },\r\n // 布尔&枚举删除\r\n removeTable2(item, index) {\r\n if (item.dialogData2.length == 1) {\r\n item.paramDataFormart = ''\r\n item.dialogData2 = [{}]\r\n } else {\r\n item.dialogData2.splice(index, 1)\r\n }\r\n },\r\n /**\r\n * 输入添加项\r\n * */\r\n\r\n //输入参数配置添加\r\n addItem() {\r\n this.parameters.params.push({\r\n paramCode: null,\r\n paramDataFormart: null,\r\n paramDataType: null,\r\n paramName: null\r\n })\r\n },\r\n //输入参数配置删除\r\n removeItem(val) {\r\n // console.log(val)\r\n if (this.parameters.params.length == 1) {\r\n this.parameters.params = [\r\n {\r\n paramCode: null,\r\n paramDataFormart: null,\r\n paramDataType: null,\r\n paramName: null\r\n }\r\n ]\r\n } else {\r\n this.parameters.params.splice(val, 1)\r\n }\r\n },\r\n add() {\r\n this.showFormDia = true\r\n },\r\n handleClose() {\r\n this.parameters = {\r\n code: '',\r\n isAsyn: 0,\r\n memo: '',\r\n name: '',\r\n outDataFormart: '',\r\n outDataType: '',\r\n outDataUnit: '',\r\n params: [\r\n {\r\n functionId: '',\r\n memo: '',\r\n paramCode: '',\r\n paramDataFormart: '',\r\n paramDataType: '',\r\n paramName: '',\r\n // 输入显示\r\n showInputData: '',\r\n time2: '时间', //时间&日期的lable\r\n datatimes2: [], // 用于动态绑定时间/日期的下拉框\r\n lableName2: '', //布尔&枚举lable\r\n boolShow2: false, //禁用布尔前面的key\r\n dialogData2: [{}] //布尔&枚举存储数据\r\n }\r\n ],\r\n productId: ''\r\n }\r\n this.title = '新增'\r\n this.showFormDia = false\r\n // 输出\r\n this.showFormData = ''\r\n this.boolShow = false\r\n this.datatimes = []\r\n this.dialogData = [{}]\r\n },\r\n handleSave() {\r\n // 用于校验布尔&枚举数据 ===> 输出\r\n if (this.showFormData == 'bool' || this.showFormData == 'enum') {\r\n // 找到导致重复的元素,ID\r\n // 将所有对象的ID重新组成数组\r\n if (this.dialogData[0].label || this.dialogData[0].value) {\r\n const label = this.dialogData.map(e => {\r\n if (e.label == '' || typeof e.label == 'undefined') {\r\n this.dtype = false\r\n this.jsons = false\r\n this.$message({\r\n message: '名称不能为空(输出)',\r\n type: 'warning'\r\n })\r\n } else {\r\n return e.label\r\n }\r\n })\r\n const value = this.dialogData.map(v => {\r\n if (v.value == '' || typeof v.value == 'undefined') {\r\n this.dtype = false\r\n this.jsons = false\r\n this.$message({\r\n message: '值不能为空(输出)',\r\n type: 'warning'\r\n })\r\n } else {\r\n return v.value\r\n }\r\n })\r\n if (this.dtype) {\r\n // 通过Set去除数组重复项\r\n const labelSet = new Set(label)\r\n const valueSet = new Set(value)\r\n // 比较两个数组的长度来判断是否存在重复项\r\n if ([...labelSet].length != label.length) {\r\n this.jsons = false\r\n this.$message({\r\n message: '存在相同名称(输出)',\r\n type: 'warning'\r\n })\r\n } else if ([...valueSet].length != value.length) {\r\n this.jsons = false\r\n this.$message({\r\n message: '存在相同值(输出)',\r\n type: 'warning'\r\n })\r\n } else if (\r\n [...labelSet].length === label.length &&\r\n [...valueSet].length === value.length\r\n ) {\r\n this.parameters.outDataFormart = JSON.stringify(this.dialogData)\r\n this.jsons = true\r\n }\r\n }\r\n }\r\n }\r\n for (let index = 0; index < this.parameters.params.length; index++) {\r\n const BEvalue = this.parameters.params[index]\r\n console.log(BEvalue)\r\n delete BEvalue.showInputData\r\n delete BEvalue.datatimes2\r\n delete BEvalue.lableName2\r\n delete BEvalue.boolShow2\r\n delete BEvalue.time2\r\n if (\r\n BEvalue.paramDataType == 'string' ||\r\n BEvalue.paramDataType == 'int' ||\r\n BEvalue.paramDataType == 'float'\r\n ) {\r\n delete BEvalue.dialogData2\r\n }\r\n // 用于校验布尔&枚举数据 ===> 输入\r\n if (\r\n BEvalue.paramDataType == 'bool' ||\r\n BEvalue.paramDataType == 'enum'\r\n ) {\r\n if (BEvalue.dialogData2[0].label || BEvalue.dialogData2[0].value) {\r\n const label = BEvalue.dialogData2.map(e => {\r\n if (e.label == '' || typeof e.label == 'undefined') {\r\n this.dtype2 = false\r\n this.jsons2 = false\r\n this.$message({\r\n message: '名称不能为空(输入)',\r\n type: 'warning'\r\n })\r\n } else {\r\n return e.label\r\n }\r\n })\r\n const value = BEvalue.dialogData2.map(v => {\r\n if (v.value == '' || typeof v.value == 'undefined') {\r\n this.dtype2 = false\r\n this.jsons2 = false\r\n this.$message({\r\n message: '值不能为空(输入)',\r\n type: 'warning'\r\n })\r\n } else {\r\n return v.value\r\n }\r\n })\r\n if (this.dtype2) {\r\n // 通过Set去除数组重复项\r\n const labelSet = new Set(label)\r\n const valueSet = new Set(value)\r\n // 比较两个数组的长度来判断是否存在重复项\r\n if ([...labelSet].length != label.length) {\r\n this.jsons2 = false\r\n this.$message({\r\n message: '存在相同名称(输入)',\r\n type: 'warning'\r\n })\r\n } else if ([...valueSet].length != value.length) {\r\n this.jsons2 = false\r\n this.$message({\r\n message: '存在相同值(输入)',\r\n type: 'warning'\r\n })\r\n } else if (\r\n [...labelSet].length === label.length &&\r\n [...valueSet].length === value.length\r\n ) {\r\n console.log(BEvalue.dialogData2)\r\n BEvalue.paramDataFormart = JSON.stringify(BEvalue.dialogData2)\r\n this.jsons2 = true\r\n }\r\n }\r\n }\r\n }\r\n console.log(BEvalue, 'value')\r\n }\r\n\r\n this.parameters.productId = this.parameterID.id\r\n this.$refs.formInfo.validate(valid => {\r\n if (valid) {\r\n let method\r\n if (this.jsons2 && this.jsons) {\r\n if (!this.parameters.id) {\r\n // 新增\r\n method = PhysicalModel.AddFunction\r\n }\r\n if (!!this.parameters.id) {\r\n // 修改\r\n method = PhysicalModel.modifyFunction\r\n }\r\n method(this.parameters, res => {\r\n if (res.state) {\r\n this.$notify({\r\n type: 'success',\r\n message: this.title + '成功',\r\n duration: 2000\r\n })\r\n this.handleClose()\r\n this.$emit('loadData')\r\n } else {\r\n this.$message.warning(response.message)\r\n }\r\n })\r\n }\r\n }\r\n })\r\n },\r\n Update(row) {\r\n // console.log(row)\r\n this.title = '修改'\r\n /**\r\n * 回显赋值\r\n * */\r\n this.parameters.code = row.code\r\n this.parameters.name = row.name\r\n this.parameters.outDataType = row.outDataType\r\n this.parameters.outDataFormart = row.outDataFormart\r\n this.parameters.outDataUnit = row.outDataUnit\r\n this.parameters.memo = row.memo\r\n this.parameters.code = row.code\r\n this.parameters.isAsyn = Number(row.isAsyn)\r\n this.parameters.id = row.id\r\n this.parameters.sn = row.sn\r\n // 获取输入配置数据\r\n PhysicalModel.FunctionDetails(row.id, res => {\r\n this.parameters.params = res.params\r\n for (let index = 0; index < this.parameters.params.length; index++) {\r\n let item = this.parameters.params[index]\r\n if (item.paramDataType == 'bool') {\r\n item.lableName2 = '布尔值:'\r\n item.showInputData = item.paramDataType\r\n item.boolShow2 = true\r\n item.dialogData2 = JSON.parse(item.paramDataFormart)\r\n item.paramDataFormart = null\r\n }\r\n if (item.paramDataType == 'enum') {\r\n item.lableName2 = '枚举项:'\r\n item.showInputData = item.paramDataType\r\n item.boolShow2 = false\r\n item.dialogData2 = JSON.parse(item.paramDataFormart)\r\n item.paramDataFormart = null\r\n }\r\n if (item.paramDataType == 'float') {\r\n item.showInputData = item.paramDataType\r\n }\r\n if (item.paramDataType == 'date') {\r\n item.showInputData = item.paramDataType\r\n item.time2 = '日期'\r\n item.datatimes2 = this.dateFormarts\r\n }\r\n if (item.paramDataType == 'dateTime') {\r\n item.showInputData = item.paramDataType\r\n item.time2 = '时间'\r\n item.datatimes2 = this.dateTimeFormarts\r\n }\r\n }\r\n console.log(this.parameters)\r\n })\r\n this.showFormDia = true\r\n /***\r\n * 输出回显\r\n * */\r\n this.showFormData = row.outDataType\r\n // 布尔值回显\r\n if (row.outDataType == 'bool') {\r\n this.lableName = '布尔值:'\r\n this.boolShow = true\r\n this.dialogData = JSON.parse(row.outDataFormart)\r\n }\r\n // 枚举项回显\r\n if (row.outDataType == 'enum') {\r\n this.lableName = '枚举项:'\r\n this.boolShow = false\r\n this.dialogData = JSON.parse(row.outDataFormart)\r\n }\r\n if (row.outDataType == 'date') {\r\n this.time = '日期'\r\n this.datatimes = this.dateFormarts\r\n }\r\n if (row.outDataType == 'dateTime') {\r\n this.time = '时间'\r\n this.datatimes = this.dateTimeFormarts\r\n }\r\n }\r\n }\r\n}\r\n",null]}