Commit c03929ee authored by tianhongyang's avatar tianhongyang

三级联动 地区选择 兼容父子不关联

parent c96bcdb5
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
.el-input__icon { .el-input__icon {
line-height: 32px; line-height: 32px;
color: #C0C4CC;
} }
} }
...@@ -87,5 +88,11 @@ ...@@ -87,5 +88,11 @@
text-align: left; text-align: left;
} }
} }
// 三级联动
.el-cascader {
line-height: 32px;
}
} }
} }
...@@ -611,7 +611,7 @@ export function queryConditionFiltering(params) { ...@@ -611,7 +611,7 @@ export function queryConditionFiltering(params) {
result[key] = queryConditionFiltering(_temp[key]); result[key] = queryConditionFiltering(_temp[key]);
continue; continue;
} }
// 过滤无效值 0为有效数据 // 过滤无效值 0为有效数据 object在此处作为无效值
if (typeof _temp[key] != "object" && (_temp[key] || _temp[key] == "0")) { if (typeof _temp[key] != "object" && (_temp[key] || _temp[key] == "0")) {
result[key] = _temp[key]; result[key] = _temp[key];
continue; continue;
...@@ -624,6 +624,30 @@ export function queryConditionFiltering(params) { ...@@ -624,6 +624,30 @@ export function queryConditionFiltering(params) {
} }
} }
/**
* 三级联动选择 过滤省市区 兼容父子互不关联情况
* @param {Array<object>} selectList
* @returns
*/
export function getTreeSelectAreaList(selectList) {
try {
if (Object.prototype.toString.call(selectList) != "[object Array]") throw new Error("传入查询条件不是一个数组");
if (!selectList?.length) return [];
const _temp = selectList;
const selectMap = new Map();
const len = _temp.length;
for (let index = 0; index < len; index++) {
const treeItem = _temp[index];
console.log(treeItem);
// 没有父级 作为最顶级元素
if (!treeItem.parent) selectMap.set(treeItem.value, {});
}
} catch (error) {
console.log(error);
}
}
// 甲方详情左侧菜单映射 // 甲方详情左侧菜单映射
export const detailSideBar = new Map([ export const detailSideBar = new Map([
// 企业速览 // 企业速览
......
...@@ -6,7 +6,8 @@ ...@@ -6,7 +6,8 @@
<el-form :model="form" ref="form" :rules="rules" label-width="84px" class="el-search-form-public"> <el-form :model="form" ref="form" :rules="rules" label-width="84px" class="el-search-form-public">
<div class="each-line"> <div class="each-line">
<el-form-item label="项目地区"> <el-form-item label="项目地区">
<el-input v-model="form.provinceName" placeholder="请输入咨询机构名称" clearable></el-input> <el-cascader ref="areaTree" v-model="form.provinceName" @change="handleChange" :options="areaDataList" placeholder="请选择" clearable
:props="cascaderOptions"></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="项目承接类型"> <el-form-item label="项目承接类型">
<el-select v-model="form.isinvestproject" placeholder="请选择" clearable> <el-select v-model="form.isinvestproject" placeholder="请选择" clearable>
...@@ -68,7 +69,7 @@ ...@@ -68,7 +69,7 @@
import TableListCom from "@/components/TableListCom"; import TableListCom from "@/components/TableListCom";
import Skeleton from "@/components/Skeleton"; import Skeleton from "@/components/Skeleton";
import { getConsultingOrgEenterpriseDetailWithSearchApi } from "@/api/consultingOrgManagement"; import { getConsultingOrgEenterpriseDetailWithSearchApi } from "@/api/consultingOrgManagement";
import { queryConditionFiltering } from "@/utils"; import { queryConditionFiltering, getTreeSelectAreaList } from "@/utils";
import { v4 } from 'uuid'; import { v4 } from 'uuid';
export default { export default {
name: "detailsOfCooperation", name: "detailsOfCooperation",
...@@ -136,7 +137,14 @@ export default { ...@@ -136,7 +137,14 @@ export default {
value: "2", value: "2",
label: "测试2" label: "测试2"
} }
] ],
// 三级联动配置项
cascaderOptions: {
label: "value",
value: "value",
multiple: true,
checkStrictly: true
}
}; };
}, },
//可访问data属性 //可访问data属性
...@@ -148,7 +156,9 @@ export default { ...@@ -148,7 +156,9 @@ export default {
}, },
//计算集 //计算集
computed: { computed: {
areaDataList() {
return JSON.parse(JSON.stringify(this.$store.state.user.areaArrayList));
}
}, },
//方法集 //方法集
methods: { methods: {
...@@ -246,6 +256,11 @@ export default { ...@@ -246,6 +256,11 @@ export default {
const flag = target.scrollLeft > 0 ? true : false; const flag = target.scrollLeft > 0 ? true : false;
this.formColum.forEach(item => this.fixedPropsKey.includes(item.prop) ? item.fixed = flag : null); this.formColum.forEach(item => this.fixedPropsKey.includes(item.prop) ? item.fixed = flag : null);
} }
},
handleChange(params) {
const tree = this.$refs?.areaTree?.getCheckedNodes();
console.log(tree, "tree");
console.log(getTreeSelectAreaList(tree), "filter");
} }
}, },
} }
......
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