You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.1 KiB
90 lines
2.1 KiB
<!--
|
|
@ 作者: 秦东
|
|
@ 时间: 2024-09-12 10:03:22
|
|
@ 备注: 行政组织选择
|
|
-->
|
|
<script lang="ts" setup>
|
|
import { orgInfo } from "@/api/hr/org/type";
|
|
import { getOrgTreeList } from "@/api/hr/org/index";
|
|
|
|
const props = withDefaults(
|
|
defineProps<{
|
|
modelValue?: string;
|
|
disabled?: boolean;
|
|
}>(),
|
|
{}
|
|
);
|
|
const emits = defineEmits<{
|
|
(e: "update:modelValue", value: string): void;
|
|
}>();
|
|
const value = computed({
|
|
get: () => {
|
|
if (props.modelValue != "" && props.modelValue != undefined) {
|
|
return props.modelValue * 1;
|
|
} else {
|
|
return props.modelValue;
|
|
}
|
|
},
|
|
set: (newVal: any) => {
|
|
emits("update:modelValue", newVal);
|
|
// let newValJson:criteriaForPeopleList[] = JSON.parse(newVal)
|
|
// if(newValJson.length > 0){
|
|
// let userAry = new Array
|
|
// let userKeyAry = new Array
|
|
// newValJson.forEach(item =>{
|
|
// userAry.push(item.name+"("+item.number+")")
|
|
// userKeyAry.push(item.userkey.toString())
|
|
// })
|
|
// emits('update:modelValue', userAry.join(','))
|
|
// // userlist.value = userAry.join(',')
|
|
// //
|
|
// }else{
|
|
// emits('update:modelValue', "")
|
|
// }
|
|
},
|
|
});
|
|
const orgTreeList = ref<orgInfo[]>();
|
|
const orgTreeLoading = ref(false); //加载行政组织树
|
|
const orgTreeProps = {
|
|
children: "child",
|
|
label: "name",
|
|
}; //行政组织树对照值
|
|
|
|
function haveOrgTreeInfo() {
|
|
orgTreeLoading.value = true;
|
|
getOrgTreeList({ orgid: 309 })
|
|
.then(({ data }) => {
|
|
console.log("行政组织树对照值", data);
|
|
orgTreeList.value = data;
|
|
})
|
|
.finally(() => {
|
|
orgTreeLoading.value = false;
|
|
});
|
|
}
|
|
|
|
onBeforeMount(() => {
|
|
haveOrgTreeInfo();
|
|
});
|
|
|
|
onMounted(() => {
|
|
// console.log("value---1--》",value.value,props.modelValue)
|
|
nextTick(() => {
|
|
haveOrgTreeInfo();
|
|
});
|
|
});
|
|
</script>
|
|
<template>
|
|
<el-tree-select
|
|
v-bind="$props"
|
|
v-model="value"
|
|
v-loading="orgTreeLoading"
|
|
node-key="id"
|
|
:props="orgTreeProps"
|
|
:data="orgTreeList"
|
|
check-strictly
|
|
:render-after-expand="false"
|
|
clearable
|
|
/>
|
|
<div></div>
|
|
</template>
|
|
<style lang="scss" scoped></style>
|
|
|