Commit 65388ba7 authored by “yiyousong”'s avatar “yiyousong”

fix:修复编辑用户时区域发送改变时会出现清空站点授权的问题

parent 19e7e447
...@@ -16,10 +16,9 @@ ...@@ -16,10 +16,9 @@
> >
<a-form-model-item label="站点授权" prop="areaNames"> <a-form-model-item label="站点授权" prop="areaNames">
<a-tree-select <a-tree-select
v-model="form.areaNames" v-model="selectAreaList"
style="width: 100%" style="width: 100%"
:tree-data="treeData" :tree-data="treeData"
allowClear
:load-data="onLoadData" :load-data="onLoadData"
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }" :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
tree-checkable tree-checkable
...@@ -72,6 +71,8 @@ export default { ...@@ -72,6 +71,8 @@ export default {
return { return {
labelCol: { span: 4 }, labelCol: { span: 4 },
wrapperCol: { span: 20 }, wrapperCol: { span: 20 },
selectAreaList: [], // 区域绑定数据
changeSelect: [], // 区域数选择发生改变时的数据
form: { form: {
loginName: undefined, loginName: undefined,
loginPwd: undefined, loginPwd: undefined,
...@@ -148,18 +149,34 @@ export default { ...@@ -148,18 +149,34 @@ export default {
// 编辑 // 编辑
onEdit(row) { onEdit(row) {
this.form = { ...row }; this.form = { ...row };
this.form.areaNames = this.form.areaNames.split(","); this.form.areaNames = JSON.parse(this.form.areaNames);
// this.form.areaCodes = this.form.areaCodes.split(","); if (this.form.areaNames.length) {
this.selectAreaList = this.form.areaNames.map((v) => v.label);
} else {
this.selectAreaList = [];
}
this.form.areaCodes = this.form.areaCodes.split(",");
this.form.loginPwd && this.$delete(this.form, "loginPwd"); this.form.loginPwd && this.$delete(this.form, "loginPwd");
}, },
onSubmit() { onSubmit() {
console.log(this.form.areaCodes);
this.$refs.ruleForm.validate(async (valid) => { this.$refs.ruleForm.validate(async (valid) => {
if (valid) { if (valid) {
let hash = {};
this.form.areaNames = [...this.form.areaNames, ...this.changeSelect]
.filter((item) => {
return this.selectAreaList.some((v) => v === item.label);
})
.reduce(function (item, next) {
hash[next.areaCode]
? ""
: (hash[next.areaCode] = true && item.push(next));
return item;
}, []);
let res = await userSave({ let res = await userSave({
...this.form, ...this.form,
areaNames: this.form.areaNames.join(","), areaNames: JSON.stringify(this.form.areaNames),
// areaCodes: this.form.areaCodes.join(","), areaCodes: this.form.areaNames.map((v) => v.areaCode).join(","),
}); });
let { code, msg } = res; let { code, msg } = res;
if (code === 1) { if (code === 1) {
...@@ -176,20 +193,19 @@ export default { ...@@ -176,20 +193,19 @@ export default {
// 选中树节点 // 选中树节点
handleSelect(value, node, extra) { handleSelect(value, node, extra) {
let { allCheckedNodes } = extra; let { allCheckedNodes } = extra;
console.log(extra); this.changeSelect = allCheckedNodes.map((v) => {
let arr = allCheckedNodes.map((v) => {
if (v.node) { if (v.node) {
return v.node.data.props.areaCode; return {
areaCode: v.node.data.props.areaCode,
label: v.node.data.props.label,
};
} else { } else {
return v.data.props.areaCode; return {
areaCode: v.data.props.areaCode,
label: v.data.props.label,
};
} }
}); });
if (arr.length) {
this.form.areaCodes = arr.join(",");
} else {
this.form.areaCodes = "";
}
console.log(this.form.areaCodes);
}, },
}, },
}; };
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
> >
<a-form-model-item label="站点授权" prop="areaCodes"> <a-form-model-item label="站点授权" prop="areaCodes">
<a-tree-select <a-tree-select
v-model="form.areaNames" v-model="form.areaCodes"
style="width: 100%" style="width: 100%"
:tree-data="treeData" :tree-data="treeData"
allowClear allowClear
...@@ -124,7 +124,7 @@ export default { ...@@ -124,7 +124,7 @@ export default {
replaceFields: { replaceFields: {
title: "label", title: "label",
key: "id", key: "id",
value: "label", value: "areaCode",
}, },
}; };
}, },
...@@ -180,12 +180,11 @@ export default { ...@@ -180,12 +180,11 @@ export default {
Object.assign(this.form, this.$options.data().form); Object.assign(this.form, this.$options.data().form);
}, },
onSubmit() { onSubmit() {
console.log(this.form);
this.$refs.ruleForm.validate(async (valid) => { this.$refs.ruleForm.validate(async (valid) => {
if (valid) { if (valid) {
let res = await userSave({ let res = await userSave({
...this.form, ...this.form,
areaNames: this.form.areaNames.join(","), areaCodes: this.form.areaCodes.join(","),
}); });
let { code, msg } = res; let { code, msg } = res;
if (code === 1) { if (code === 1) {
...@@ -204,17 +203,22 @@ export default { ...@@ -204,17 +203,22 @@ export default {
let { allCheckedNodes } = extra; let { allCheckedNodes } = extra;
let arr = allCheckedNodes.map((v) => { let arr = allCheckedNodes.map((v) => {
if (v.node) { if (v.node) {
return v.node.data.props.areaCode; return {
areaCode: v.node.data.props.areaCode,
label: v.node.data.props.label,
};
} else { } else {
return v.data.props.areaCode; return {
areaCode: v.data.props.areaCode,
label: v.data.props.label,
};
} }
}); });
if (arr.length) { if (arr.length) {
this.form.areaCodes = arr.join(","); this.form.areaNames = JSON.stringify(arr);
} else { } else {
this.form.areaCodes = ""; this.form.areaNames = "";
} }
console.log(this.form.areaCodes);
}, },
}, },
}; };
......
...@@ -212,7 +212,6 @@ export default { ...@@ -212,7 +212,6 @@ export default {
this.tablePagination.total = total; this.tablePagination.total = total;
this.userDict = this.transverter(roleId); this.userDict = this.transverter(roleId);
this.tableSourceData = data; this.tableSourceData = data;
console.log(data);
}, },
// 添加用户 // 添加用户
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment