值是对象
<template>
<el-tree-select
v-bind="$attrs"
:data="treeData"
value-key="id"
:check-strictly="true"
filterable
:render-after-expand="false"
v-loading="loading"
>
<template #default="{ data }">
<el-option :label="data.label" :value="data"
>{{ data.code }}_{{ data.name }}</el-option
>
</template>
</el-tree-select>
</template>
<script setup>
import { ref, onMounted } from "vue";
import { api_pem_project_task_queryComponent } from "@/api/pem/project_task.js";
import handleTree from "@/utils/handleTree.js";
const props = defineProps({
project_id: {
type: String,
required: true
},
project_stage_id: {
type: String,
required: true
}
});
const treeData = ref([]);
const loading = ref(false);
function get_list() {
loading.value = true;
api_pem_project_task_queryComponent({
projectId: props.project_id,
projectStageId: props.project_stage_id
})
.then((res) => {
res.data.forEach((item) => {
item.label = item.code + "_" + item.name;
});
treeData.value = handleTree(res.data, "id", "parentTaskId");
})
.finally(() => {
loading.value = false;
});
}
onMounted(() => {
get_list();
});
</script>
博主开发了一个浏览器aweb123.com