BUG 30910

This commit is contained in:
aixianling
2022-08-17 17:40:41 +08:00
parent c0de94aca9
commit f49e5cd8a7

View File

@@ -98,12 +98,11 @@
<el-form-item label="生效网格" :prop="form.validRangeType == 1 ? 'validRangeData' : ''"
:rules="[{ required: true, message: '请选择生效网格', trigger: 'change' }, ]" v-if="form.validRangeType == 1">
<ai-dialog-btn dialogTitle="选择网格" append-to-body @onConfirm="getCheckedTree" :customFooter="false">
<el-button slot="btn" type="text">{{ girdInfoList.length ? "重新选择" : "请选择" }}</el-button>
<ai-dialog-btn dialogTitle="选择网格" append-to-body @onConfirm="getCheckedTree" :customFooter="false" :text="girdInfoList.length ? '重新选择' : '请选择'">
<div class="grid">
<el-tree :data="treeObj.treeList" :props="treeObj.defaultProps" node-key="id" :expand-on-click-node="false">
<template slot-scope="{data}">
<el-row class="fill" type="flex" @click.native.stop="data.checked=!data.checked">
<el-row class="fill" type="flex" @click.native.stop="handleTreeChecked(data)">
<div class="fill" v-text="data.girdName"/>
<div class="iconfont iconSuccess color-primary mar-r8" v-if="data.checked"/>
</el-row>
@@ -237,6 +236,7 @@ export default {
isLeaf: 'leaf'
},
},
treeSelected: {},
girdInfoList: [],
rulueType: "0",
girdNameList: [],
@@ -404,43 +404,35 @@ export default {
return result;
},
getCheckedTree() {
if (!this.$refs.tree.getCheckedNodes().length) {
const selected = Object.values(this.treeSelected)
if (!selected.length) {
return this.$message.error("请选择网格");
}
this.girdInfoList = this.$refs.tree.getCheckedNodes().map((item) => {
this.girdInfoList = selected.map((item) => {
return {...item, checkType: true};
});
let validRangeData = this.$refs.tree.getCheckedNodes().map((e) => {
return {
id: e.id,
girdName: e.girdName
}
}
)
let validRangeData = selected.map((e) => ({id: e.id, girdName: e.girdName}))
this.girdNameList = validRangeData.map(e => e.girdName)
this.form.validRangeData = JSON.stringify(validRangeData)
},
beforeSelectTree() {
this.instance.post(`/app/appgirdinfo/listAll3`, null, null).then((res) => {
if (res?.data) {
res.data = res.data.map(e => ({...e, checked: !!this.girdInfoList.find(s => s.id == e.id)}))
this.girdInfoList.map(e => this.treeSelected[e.id] = e)
this.treeObj.treeList = this.$arr2tree(res.data, {parent: 'parentGirdId'})
}
});
},
onCheckChange(e) {
this.girdInfoList?.forEach((item) => {
if (item.id == e.id) {
this.$refs.tree.setChecked(e.id, false);
} else {
this.$refs.tree.setChecked(e.id, true);
}
})
},
handleTreeChecked(data) {
data.checked = !data.checked
if (data.checked) {
this.treeSelected[data.id] = data
} else {
delete this.treeSelected[data.id]
}
}
},
computed: {
isEdit() {