|
@@ -21,6 +21,7 @@
|
|
|
:clearable="props.clearable"
|
|
|
:render-after-expand="false"
|
|
|
highlight-current
|
|
|
+ :check-strictly="props.checkStrictly"
|
|
|
>
|
|
|
</el-tree-select>
|
|
|
</el-col>
|
|
@@ -52,6 +53,8 @@
|
|
|
v-loading="state.loading"
|
|
|
highlight-current
|
|
|
@node-click="nodeClickDialog"
|
|
|
+ :check-strictly="props.checkStrictly"
|
|
|
+ :expand-on-click-node="false"
|
|
|
>
|
|
|
</el-tree>
|
|
|
</el-scrollbar>
|
|
@@ -91,6 +94,10 @@ const props = defineProps({
|
|
|
type: Boolean,
|
|
|
default: false,
|
|
|
},
|
|
|
+ checkStrictly: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false,
|
|
|
+ },
|
|
|
} as any);
|
|
|
const emit = defineEmits(['update:modelValue', 'update:externalArr', 'change']);
|
|
|
const internalValue = computed({
|
|
@@ -173,13 +180,19 @@ const resetQuery = (formEl: FormInstance | undefined) => {
|
|
|
};
|
|
|
const tableRadio = ref();
|
|
|
const nodeClickDialog = (val: any, node: any) => {
|
|
|
- if (node.isLeaf) {
|
|
|
+ if(props.checkStrictly){ // 可以选择任意一级
|
|
|
tableRadio.value = val.id;
|
|
|
externalArr.value = getParentId(node, externalArr.value);
|
|
|
emit('change', val, node, externalArr.value);
|
|
|
- } else {
|
|
|
- tableRadio.value = null;
|
|
|
- externalArr.value = [];
|
|
|
+ }else{
|
|
|
+ if (node.isLeaf) {
|
|
|
+ tableRadio.value = val.id;
|
|
|
+ externalArr.value = getParentId(node, externalArr.value);
|
|
|
+ emit('change', val, node, externalArr.value);
|
|
|
+ } else {
|
|
|
+ tableRadio.value = null;
|
|
|
+ externalArr.value = [];
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
const onSave = () => {
|
|
@@ -190,17 +203,17 @@ defineExpose({});
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
|
.border-box {
|
|
|
- border: var(--el-border);
|
|
|
- border-radius: var(--el-border-radius-base);
|
|
|
- padding: 15px;
|
|
|
- max-height: calc(100% - 100px);
|
|
|
+ border: var(--el-border);
|
|
|
+ border-radius: var(--el-border-radius-base);
|
|
|
+ padding: 15px;
|
|
|
+ max-height: calc(100% - 100px);
|
|
|
}
|
|
|
:deep(.el-tree) {
|
|
|
- .el-tree-node {
|
|
|
- /*设置横向滚动条*/
|
|
|
- min-width: 100% !important;
|
|
|
- display: block !important;
|
|
|
- float: left;
|
|
|
- }
|
|
|
+ .el-tree-node {
|
|
|
+ /*设置横向滚动条*/
|
|
|
+ min-width: 100% !important;
|
|
|
+ display: block !important;
|
|
|
+ float: left;
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|