Browse Source

标签范围多选

dev-烟台0301
mk 3 years ago
parent
commit
f389a01fee
  1. 113
      src/views/modules/workSys/articleTag/edit.vue

113
src/views/modules/workSys/articleTag/edit.vue

@ -24,7 +24,6 @@
> >
</el-input> </el-input>
</el-form-item> </el-form-item>
<!-- :prop="'formData.'+'agencyList.' +'agencyId'" -->
<el-form-item <el-form-item
label="应用范围" label="应用范围"
label-width="150px" label-width="150px"
@ -34,18 +33,18 @@
<!-- --> <!-- -->
<el-cascader <el-cascader
ref="cascaderUnit" ref="cascaderUnit"
style="width: 260px" style="width: 260px;"
v-model="formData.agencyId" v-model="formData.agencyId"
:options="orgOptions" :options="orgOptions"
collapse-tags
:props="{ :props="{
checkStrictly: true, multiple: true,
emitPath: false, emitPath: false,
children: 'subAgencyList', children: 'subAgencyList',
label: 'agencyName', label: 'agencyName',
value: 'agencyId', value: 'agencyId',
}" }"
clearable clearable
@change="cascaderClick"
/> />
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -54,7 +53,6 @@
<div class="form_div_btn"> <div class="form_div_btn">
<el-button size="small" @click="handleCancle"> </el-button> <el-button size="small" @click="handleCancle"> </el-button>
<el-button <el-button
v-if="formType != 'detail'"
size="small" size="small"
type="primary" type="primary"
:disabled="btnDisable" :disabled="btnDisable"
@ -68,7 +66,7 @@
<script> <script>
import { Loading } from "element-ui"; // Loading import { Loading } from "element-ui"; // Loading
import { requestPost, requestGet } from "@/js/dai/request"; import { requestPost, requestGet } from "@/js/dai/request";
import nextTick from "dai-js/tools/nextTick";
let loading; // let loading; //
export default { export default {
data() { data() {
@ -76,11 +74,12 @@ export default {
formType: "add", // addeditdetail formType: "add", // addeditdetail
btnDisable: false, btnDisable: false,
orgOptions: [], orgOptions: [],
agencyIdArray: [],
tagId: "", tagId: "",
sarr: [],
targetObj: {},
formData: { formData: {
tagName: "", tagName: "",
agencyId: "", agencyId: [],
orgIdPath: "", orgIdPath: "",
}, },
formDatam: [], formDatam: [],
@ -105,24 +104,17 @@ export default {
this.startLoading(); this.startLoading();
this.formType = type; this.formType = type;
if (type != "add") { if (type != "add") {
console.log(this.formData);
this.formData.tagName = row.tagName; this.formData.tagName = row.tagName;
this.tagId = row.id; this.tagId = row.id;
if (row.agencyList.length > 1) { this.formData.agencyId = [];
this.formData.agencyId = row.agencyList[0].pid;
if (row.agencyList[0].orgIdPath.split(":").length == 2) { if (row.agencyList.length >= 1) {
this.formData.orgIdPath = row.agencyList[0].orgIdPath.split(":")[0]; for (let i in row.agencyList) {
} else { this.formData.agencyId.push(row.agencyList[i].agencyId);
this.formData.orgIdPath =
row.agencyList[0].orgIdPath.split(":")[0] +
":" +
row.agencyList[0].orgIdPath.split(":")[1];
} }
} else if(row.agencyList.length == 1){ } else {
this.endLoading(); this.endLoading();
this.formData.agencyId = row.agencyList[0].agencyId;
this.formData.orgIdPath = row.agencyList[0].orgIdPath;
}else{
return
} }
} else { } else {
} }
@ -139,64 +131,26 @@ export default {
const { data, code, msg } = await requestPost(url, params); const { data, code, msg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.options = []; this.options = [];
this.agencyIdArray.length = [];
this.orgOptions.push(data); this.orgOptions.push(data);
} else { } else {
this.$message.error(msg); this.$message.error(msg);
} }
this.dataListLoading = false; this.dataListLoading = false;
}, },
deepTree(arr) {
if (Array.isArray(arr)) {
return arr.map((item) => { getLastItem(list, vals, key) {
return { let LIST = list || [];
...item, for (let item of LIST) {
subAgencyList: // console.log(item[key]);
(item.subAgencyList.length > 0 && for (let i of vals) {
this.deepTree(item.subAgencyList)) || if (item[key] === i) {
null, this.sarr.push(item);
}; break;
}); } else {
} this.getLastItem(item.subAgencyList, vals, key);
},
cascaderClick() {
let obj = this.$refs["cascaderUnit"].getCheckedNodes()[0].data;
this.formDatam = [];
if (obj) {
if (obj.level === "street") {
for (let i in obj.subAgencyList) {
this.formDatam.push({
agencyId: obj.subAgencyList[i].agencyId,
orgIdPath: obj.subAgencyList[i].orgIdPath,
pid: obj.subAgencyList[i].pid,
agencyName: obj.subAgencyList[i].agencyName,
});
}
console.log(this.formDatam);
} else if (obj.level === "district") {
for (let i in obj.subAgencyList) {
if (obj.subAgencyList[i].subAgencyList != null) {
for (let j in obj.subAgencyList[i].subAgencyList) {
this.formDatam.push({
agencyId:obj.subAgencyList[i].subAgencyList[j].agencyId,
orgIdPath:obj.subAgencyList[i].subAgencyList[j].orgIdPath,
pid: obj.subAgencyList[i].pid,
agencyName: obj.subAgencyList[i].subAgencyList[j].agencyName,
});
}
}
} }
console.log(this.formDatam);
} else if (obj.level === "community") {
this.formDatam.push({
agencyId: obj.agencyId,
orgIdPath: obj.orgIdPath,
agencyName: obj.agencyName,
pid: obj.pid
});
} }
} else {
this.formDatam = [];
} }
}, },
handleComfirm() { handleComfirm() {
@ -210,6 +164,21 @@ export default {
}, },
async addNat() { async addNat() {
this.newArr = [];
this.formDatam = [];
const map = new Map();
this.getLastItem(this.orgOptions, this.formData.agencyId, "agencyId");
this.newArr = this.sarr.filter(
(v) => !map.has(v.agencyId) && map.set(v.agencyId, 1)
);
for (let i in this.newArr) {
this.formDatam.push({
agencyId: this.newArr[i].agencyId,
orgIdPath: this.newArr[i].orgIdPath,
pid: this.newArr[i].pid,
agencyName: this.newArr[i].agencyName,
});
}
this.btnDisable = true; this.btnDisable = true;
setTimeout(() => { setTimeout(() => {
this.btnDisable = false; this.btnDisable = false;

Loading…
Cancel
Save