fix : 固定所属公司选择条数为14则隐藏

This commit is contained in:
2024-06-21 12:23:25 +08:00
parent a6476c359d
commit cef8530a5b
4 changed files with 141 additions and 48 deletions

View File

@@ -10,27 +10,15 @@
<el-button @click="getList()">搜索</el-button>
</template>
</el-input>
<!-- <el-button v-if="isChooseAll" @click="chooseAll">全选</el-button>-->
<!-- <el-button v-else @click="cancelAll">不全选</el-button>-->
<!-- <el-checkbox-group v-model="checkBtn" @change="handleChange">-->
<!-- <el-checkbox label="全选" value="1" />-->
<!-- <el-checkbox label="Option B" value="Value B" />-->
<!-- <el-checkbox label="Option C" value="Value C" />-->
<!-- <el-checkbox label="disabled" value="Value disabled" disabled />-->
<!-- <el-checkbox-->
<!-- label="selected and disabled"-->
<!-- value="Value selected and disabled"-->
<!-- disabled-->
<!-- />-->
<!-- </el-checkbox-group>-->
<fvCheckbox :options="checkOptions" v-model="checkList" @change="checkBoxChange"/>
<!-- 人员选择 -->
<el-empty :image-size="100" description="似乎没有数据" v-show="dataList.length === 0"/>
<el-scrollbar style="height:87%;">
<div class="tree">
<el-tree :data="dataList" ref="tree" :props="defaultProps" empty-text="" node-key="value"
default-expand-all :show-checkbox="showCheckbox" highlight-current
:default-checked-keys="defaultChecked"
:check-strictly="true" @node-click="(node,check)=>handle(node,check)"
:show-checkbox="showCheckbox" highlight-current default-expand-all
:default-checked-keys="defaultChecked" :disabled="disabled"
:check-strictly="!checkStrictly" @node-click="(node,check)=>handle(node,check)"
@check-change="handleChange" :filter-node-method="filterNode">
<template #default="{ node, data }">
<div class="tree-node">
@@ -70,6 +58,20 @@
import {ElMessageBox} from "element-plus";
import {getSubCompOpt} from "@/api/user/user";
const checkList = ref(['1'])
const checkStrictly = ref(false)
const isExpand = ref('展开')
const expandedKeys = ref(['-1']);
const checkOptions = ref([
{
label: isExpand.value,
value: '1'
},
{
label: '父子联动',
value: '2'
},
])
const props = defineProps({
value: {
type: Array,
@@ -86,7 +88,6 @@ const props = defineProps({
type: Boolean
}
});
const checkBtn = ref(1)
const isChooseAll = ref(true);
let selectItem = reactive({
type: -1,
@@ -103,7 +104,8 @@ const tree = ref([]);
const defaultProps = {
value: "value",
label: "label",
children: "children"
children: "children",
disabled: "disabled",
};
const emit = defineEmits();
const _value = computed({
@@ -118,22 +120,39 @@ const _value = computed({
watch(() => filterText.value, (newVal) => {
tree.value.filter(newVal);
});
const matterTree = (list) => {
const checkBoxChange = (val) => {
checkStrictly.value = val.includes('2')
let nodes = tree.value.store.nodesMap
if (val.includes('1')) {
for (const node in nodes) {
nodes[node].expanded = true;
}
isExpand.value = '折叠'
} else {
for (const node in nodes) {
nodes[node].expanded = false;
}
isExpand.value = '展开'
}
}
const matterTree = (list, flag) => {
list.forEach(item => {
tree.value.setChecked(item, true)
if (!flag&&item.value!==-1) {
tree.value.setChecked(item, false)
}
if (item.children !== undefined) {
matterTree(item.children)
}
})
}
const cancelAll = () => {
isChooseAll.value = true
tree.value.setCheckedNodes([])
}
const chooseAll = () => {
isChooseAll.value = false
matterTree(dataList.value)
}
// const cancelAll = () => {
// isChooseAll.value = true
// tree.value.setCheckedNodes([])
// }
// const chooseAll = () => {
// isChooseAll.value = false
// matterTree(dataList.value)
// }
const getList = () => {
getSubCompOpt().then(res => {
dataList.value = [
@@ -161,10 +180,10 @@ const show = () => {
getList()
};
const handleChange = (data, checked) => {
if(data.value==-1&&checked){
chooseAll()
}else if(data.value==-1&&!checked){
cancelAll()
if (data.value == -1&&checked) {
// tree.value.setCheckedNodes(['-1'])
matterTree(dataList.value, false)
// return;
}
// 左侧有选择框 + 多选
if (props.multiple) {
@@ -193,7 +212,6 @@ const handleChange = (data, checked) => {
}
if (checked) {
tree.value.setCheckedNodes([data]);
// this.$refs.tree.setCheckedKeys([]);
selectList.value = [data];
} else if (data === "1") {
selectList.value = [];