{"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\\attributeDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\bzzgj-fvue\\src\\views\\Device\\deviceManage\\components\\modle\\attributeDialog.vue","mtime":1667545182473},{"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\r\nimport PhysicalModel from '@/api/device/PhysicalModel.js'\r\nimport dictUtils from '@/components/dict/DictSelectUtils.js'\r\nexport default {\r\n name: 'attributeDialog',\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 time: '时间', //时间&日期的lable\r\n showFormData: '', //用于判断类型显示不同输入框\r\n datatimes: [], // 用于动态绑定时间/日期的下拉框\r\n lableName: '', //布尔&枚举lable\r\n boolShow: false, //禁用布尔前面的key\r\n dialogData: [{}], //布尔&枚举存储数据\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 params: {\r\n code: '',\r\n dataFormart: '',\r\n dataType: '',\r\n dataUnit: '',\r\n isReadonly: 0,\r\n memo: '',\r\n name: '',\r\n productId: ''\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 dataType: [\r\n {\r\n required: true,\r\n message: '请选择属性类型',\r\n trigger: 'blur'\r\n }\r\n ],\r\n isReadonly: [\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.params.dataFormart = 'default'\r\n }\r\n if (item == 'int') {\r\n this.showFormData = item\r\n this.params.dataFormart = 'default'\r\n }\r\n if (item == 'float') {\r\n this.showFormData = item\r\n this.params.dataFormart = 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 this.params.dataUnit = 'default'\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.params.dataFormart = '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.params.dataFormart = '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 this.params.dataUnit = 'default'\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.params.dataFormart = ''\r\n this.dialogData = [{}]\r\n } else {\r\n this.dialogData.splice(index, 1)\r\n }\r\n },\r\n // 显示\r\n addShow() {\r\n this.showFormDia = true\r\n },\r\n handleClose() {\r\n // 关闭前清除数据\r\n this.params = {\r\n code: '',\r\n dataFormart: '',\r\n dataType: '',\r\n dataUnit: '',\r\n isReadonly: 0,\r\n memo: '',\r\n name: '',\r\n productId: ''\r\n }\r\n this.title = '新增'\r\n this.showFormDia = false\r\n this.showFormData = ''\r\n this.boolShow = false\r\n this.datatimes = []\r\n this.dialogData = [{}]\r\n },\r\n handleSave() {\r\n let jsons = true\r\n let dtype = true\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 dtype = false\r\n 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 dtype = false\r\n 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 (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 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 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.params.dataFormart = JSON.stringify(this.dialogData)\r\n jsons = true\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.params.productId = this.parameterID.id\r\n this.$refs.formInfo.validate(valid => {\r\n if (valid) {\r\n let method\r\n if (jsons) {\r\n if (!this.params.id) {\r\n // 新增\r\n method = PhysicalModel.attributeAdd\r\n }\r\n if (!!this.params.id) {\r\n // 修改\r\n method = PhysicalModel.modifyAttribute\r\n }\r\n method(this.params, 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 this.params.id = this.pId\r\n this.params = row\r\n this.params.isReadonly = Number(row.isReadonly)\r\n this.showFormDia = true\r\n this.showFormData = row.dataType\r\n // 布尔值回显\r\n if (row.dataType == 'bool') {\r\n this.lableName = '布尔值:'\r\n this.boolShow = true\r\n let dataAeey = JSON.parse(row.dataFormart)\r\n this.dialogData = dataAeey\r\n }\r\n // 枚举项回显\r\n if (row.dataType == 'enum') {\r\n this.lableName = '枚举项:'\r\n this.boolShow = false\r\n let dataAeey = JSON.parse(row.dataFormart)\r\n this.dialogData = dataAeey\r\n }\r\n if (row.dataType == 'date') {\r\n this.time = '日期'\r\n this.datatimes = this.dateFormarts\r\n }\r\n if (row.dataType == 'dateTime') {\r\n this.time = '时间'\r\n this.datatimes = this.dateTimeFormarts\r\n }\r\n }\r\n }\r\n}\r\n",null]}