|
@@ -33,9 +33,21 @@
|
|
|
</ul>
|
|
|
</div>
|
|
|
<div class='right'>
|
|
|
- <el-form class='form' :rules='rules' ref='form' :model='form' label-width='120px'>
|
|
|
- <el-form-item label='对应数据字典' prop='name'>
|
|
|
- <el-input v-model='form.name'></el-input>
|
|
|
+ <el-form class='form' :rules='rules' ref='form' :model='form' label-width='140px'>
|
|
|
+ <el-form-item
|
|
|
+ label='对应数据字典'
|
|
|
+ prop='dict'
|
|
|
+ :rules='[{ required: true, message: "请输入对应数据字典", trigger: "change" },{ validator: validateDict, trigger: ["blur", "change"] }]'
|
|
|
+ >
|
|
|
+ <el-cascader
|
|
|
+ style='width: 100%;'
|
|
|
+ :options='options'
|
|
|
+ v-model='form.dict'
|
|
|
+ @change='handleChange'
|
|
|
+ :props='props'
|
|
|
+ filterable
|
|
|
+ @active-item-change='handleItemChange'
|
|
|
+ ></el-cascader>
|
|
|
<div class='dict'>
|
|
|
<p class='top'>
|
|
|
<i class='el-icon-plus'></i>
|
|
@@ -57,11 +69,11 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<!-- components -->
|
|
|
- <no-handle v-if='form.DataRuleType == "无需处理,直接使用"'></no-handle>
|
|
|
- <auto-handle v-else-if='form.DataRuleType == "需自动单位转换"'></auto-handle>
|
|
|
- <enum-handle v-else-if='form.DataRuleType == "需按设置枚举转换"'></enum-handle>
|
|
|
- <formula-handle v-else-if='form.DataRuleType == "需按公式转换"'></formula-handle>
|
|
|
- <split-handle v-else></split-handle>
|
|
|
+ <no-handle ref='noHandle' v-if='form.DataRuleType == "无需处理,直接使用"'></no-handle>
|
|
|
+ <auto-handle ref='autoHandle' v-else-if='form.DataRuleType == "需自动单位转换"' :unitObj='unitObj'></auto-handle>
|
|
|
+ <enum-handle ref='enumHandle' v-else-if='form.DataRuleType == "需按设置枚举转换"'></enum-handle>
|
|
|
+ <formula-handle ref='formulaHandle' v-else-if='form.DataRuleType == "需按公式转换"'></formula-handle>
|
|
|
+ <split-handle ref='splitHandle' v-else></split-handle>
|
|
|
</el-form>
|
|
|
<div class='btn-box'>
|
|
|
<el-button type='primary' @click='save'>保存</el-button>
|
|
@@ -71,21 +83,33 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+//components
|
|
|
import noHandle from './no_handle'
|
|
|
import autoHandle from './auto_handle'
|
|
|
import enumHandle from './enum_handle'
|
|
|
import formulaHandle from './formula_handle'
|
|
|
import splitHandle from './split_handle'
|
|
|
+//api
|
|
|
+import { getEquipmentAll, getQueryProperty } from 'fetch/data_plat'
|
|
|
+import { batchCreate } from 'fetch/point_http'
|
|
|
export default {
|
|
|
name: 'point_config_step3_edit',
|
|
|
data() {
|
|
|
return {
|
|
|
+ options: [],
|
|
|
+ optionObj: {},
|
|
|
+ infoDict: {}, //信息点字典
|
|
|
+ unitObj: {}, //传给自动单位转换的obj
|
|
|
+ props: {
|
|
|
+ value: 'code',
|
|
|
+ label: 'name',
|
|
|
+ children: 'content'
|
|
|
+ },
|
|
|
form: {
|
|
|
- name: '',
|
|
|
+ dict: [],
|
|
|
DataRuleType: '无需处理,直接使用'
|
|
|
},
|
|
|
rules: {
|
|
|
- name: [{ required: true, message: '请输入对应数据字典', trigger: 'blur' }],
|
|
|
DataRuleType: [{ required: true, message: '请选择值处理方式', trigger: 'change' }]
|
|
|
},
|
|
|
textarea: '',
|
|
@@ -127,24 +151,234 @@ export default {
|
|
|
splitHandle
|
|
|
},
|
|
|
methods: {
|
|
|
+ validateDict(rule, value, cb) {
|
|
|
+ if (value.length < 4) {
|
|
|
+ cb(new Error('请选到第四级(可能本设备没有信息点)'))
|
|
|
+ } else {
|
|
|
+ cb()
|
|
|
+ }
|
|
|
+ },
|
|
|
//保存
|
|
|
save() {
|
|
|
- console.log('save-----')
|
|
|
- console.log(this.form)
|
|
|
this.$refs['form'].validate(valid => {
|
|
|
if (valid) {
|
|
|
- alert('submit!')
|
|
|
+ var flag = this.form.DataRuleType
|
|
|
+ switch (flag) {
|
|
|
+ case '无需处理,直接使用':
|
|
|
+ this.$refs['noHandle'].getForm(noHandle => {
|
|
|
+ if (noHandle) {
|
|
|
+ this.saveForm(this.form, noHandle)
|
|
|
+ } else {
|
|
|
+ this.errMsg()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break
|
|
|
+ case '需自动单位转换':
|
|
|
+ this.$refs['autoHandle'].getForm(autoHandle => {
|
|
|
+ if (autoHandle) {
|
|
|
+ this.saveForm(this.form, autoHandle)
|
|
|
+ } else {
|
|
|
+ this.errMsg()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break
|
|
|
+ case '需按设置枚举转换':
|
|
|
+ this.$refs['enumHandle'].getForm(enumHandle => {
|
|
|
+ if (enumHandle) {
|
|
|
+ this.saveForm(this.form, enumHandle)
|
|
|
+ } else {
|
|
|
+ this.errMsg()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break
|
|
|
+ case '需按公式转换':
|
|
|
+ this.$refs['formulaHandle'].getForm(formulaHandle => {
|
|
|
+ if (formulaHandle) {
|
|
|
+ this.saveForm(this.form, formulaHandle)
|
|
|
+ } else {
|
|
|
+ this.errMsg()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break
|
|
|
+ case '需按拆分枚举转换':
|
|
|
+ this.$refs['splitHandle'].getForm(splitHandle => {
|
|
|
+ if (splitHandle) {
|
|
|
+ this.saveForm(this.form, splitHandle)
|
|
|
+ } else {
|
|
|
+ this.errMsg()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ break
|
|
|
+ }
|
|
|
} else {
|
|
|
- console.log('error submit!!')
|
|
|
+ this.errMsg()
|
|
|
return false
|
|
|
}
|
|
|
})
|
|
|
+ },
|
|
|
+ saveForm(basic, other) {
|
|
|
+ console.log(basic, other)
|
|
|
+ let type = basic.DataRuleType
|
|
|
+ let basicParams = {
|
|
|
+ System: basic.dict[0], //系统
|
|
|
+ Specialty: basic.dict[1], //专业
|
|
|
+ EquipmentType: basic.dict[2], //设备类
|
|
|
+ InfomationPoint: basic.dict[3], //信息点
|
|
|
+ DataRuleType: basic.DataRuleType //值处理方式
|
|
|
+ }
|
|
|
+ let otherParams = {}
|
|
|
+ switch (type) {
|
|
|
+ case '无需处理,直接使用':
|
|
|
+ otherParams = {
|
|
|
+ EquipmentMark: other.EquipmentMark
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case '需自动单位转换':
|
|
|
+ otherParams = {}
|
|
|
+ break
|
|
|
+ case '需按设置枚举转换':
|
|
|
+ let DataRuleContent2 = other.pointArr.length
|
|
|
+ ? JSON.stringify([{ seq: 1, ruletype: 'type2', content: other.pointArr }])
|
|
|
+ : undefined
|
|
|
+ otherParams = {
|
|
|
+ EquipmentMark: other.EquipmentMark,
|
|
|
+ DataRuleContent: DataRuleContent2
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case '需按公式转换':
|
|
|
+ let subRule = other.from
|
|
|
+ ? {
|
|
|
+ seq: 1,
|
|
|
+ ruletype: 'type4',
|
|
|
+ content: [
|
|
|
+ {
|
|
|
+ from: other.from,
|
|
|
+ to: other.to
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ : undefined
|
|
|
+ let countRule = other.mark
|
|
|
+ ? {
|
|
|
+ seq: 1,
|
|
|
+ ruletype: 'type6',
|
|
|
+ content: [
|
|
|
+ {
|
|
|
+ calculationtype: other.mark,
|
|
|
+ value: other.markValue
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ : undefined
|
|
|
+
|
|
|
+ let DataRuleContent3 = []
|
|
|
+ if (subRule) {
|
|
|
+ DataRuleContent3.push(subRule)
|
|
|
+ }
|
|
|
+ if (countRule) {
|
|
|
+ DataRuleContent3.push(countRule)
|
|
|
+ }
|
|
|
+ DataRuleContent3 = DataRuleContent3.length ? JSON.stringify(DataRuleContent3) : undefined
|
|
|
+ otherParams = {
|
|
|
+ EquipmentMark: other.EquipmentMark,
|
|
|
+ DataRuleContent: DataRuleContent3
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case '需按拆分枚举转换':
|
|
|
+ let SplitPoints = other.devArr.length ? other.devArr : undefined
|
|
|
+ let DataRuleContent4 = undefined;
|
|
|
+ if (other.pointArr) {
|
|
|
+ DataRuleContent4 = other.pointArr
|
|
|
+ ? JSON.stringify([
|
|
|
+ {
|
|
|
+ seq: 1,
|
|
|
+ ruletype: 'type4',
|
|
|
+ content: other.pointArr
|
|
|
+ }
|
|
|
+ ])
|
|
|
+ : undefined
|
|
|
+ }
|
|
|
+ otherParams = {
|
|
|
+ SplitPoints: SplitPoints,
|
|
|
+ DataRuleContent: DataRuleContent4
|
|
|
+ }
|
|
|
+ break
|
|
|
+ }
|
|
|
+ let params = [Object.assign(basicParams, otherParams)]
|
|
|
+ console.log(params)
|
|
|
+ batchCreate(params, res=> {
|
|
|
+ console.log(res);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ errMsg() {
|
|
|
+ this.$message({
|
|
|
+ message: '有必填项未填',
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleChange(arr) {
|
|
|
+ console.log(arr)
|
|
|
+ console.log(this.infoDict)
|
|
|
+ this.unitObj = this.infoDict[arr[3]]
|
|
|
+ console.log(this.unitObj)
|
|
|
+ },
|
|
|
+ handleItemChange(val) {
|
|
|
+ if (val.length == 3) {
|
|
|
+ let params = { type: val[2] }
|
|
|
+ getQueryProperty(params, res => {
|
|
|
+ if (res.Result == 'success') {
|
|
|
+ let data = res.Content
|
|
|
+ let arr = data
|
|
|
+ .filter(item => {
|
|
|
+ return item.inputMode == 'L'
|
|
|
+ })
|
|
|
+ .map(item => {
|
|
|
+ return {
|
|
|
+ code: item.infoPointCode,
|
|
|
+ name: item.infoPointName
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.infoDict = {}
|
|
|
+ data.forEach(item => {
|
|
|
+ this.infoDict[item.infoPointCode] = item
|
|
|
+ })
|
|
|
+ this.optionObj = {}
|
|
|
+ this.getOptionItem(this.options, val[2])
|
|
|
+
|
|
|
+ if (arr.length) {
|
|
|
+ this.optionObj.content = arr
|
|
|
+ } else {
|
|
|
+ this.optionObj.content = undefined
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getOptionItem(arr, code) {
|
|
|
+ for (var i = 0; i < arr.length; i++) {
|
|
|
+ if (arr[i].code == code) {
|
|
|
+ this.optionObj = arr[i]
|
|
|
+ }
|
|
|
+ if (arr[i].content && arr[i].content.length > 0) {
|
|
|
+ this.getOptionItem(arr[i].content, code)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getEqAll() {
|
|
|
+ let params = { format: true }
|
|
|
+ getEquipmentAll(params, res => {
|
|
|
+ if (res.Result == 'success') {
|
|
|
+ this.options = res.Content
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ init() {
|
|
|
+ //获取所有的设备
|
|
|
+ this.getEqAll()
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
|
- console.log('edit')
|
|
|
- console.log(this.editData || '')
|
|
|
- console.log(this.postJson)
|
|
|
+ this.init()
|
|
|
}
|
|
|
}
|
|
|
</script>
|