From 6355733bc78af3823fd066cd501632f718cc9351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Mon, 4 Nov 2024 15:14:27 +0800 Subject: [PATCH] UPDATE --- src/api/modules/base.ts | 4 + src/components/TreeFilter/index.vue | 16 +- .../res/resource/components/uploadDialog.vue | 154 ++++++++++++++++++ src/views/res/resource/index.vue | 17 +- src/views/res/test/index.vue | 8 +- 5 files changed, 189 insertions(+), 10 deletions(-) create mode 100644 src/views/res/resource/components/uploadDialog.vue diff --git a/src/api/modules/base.ts b/src/api/modules/base.ts index 3ed5e42..432f161 100644 --- a/src/api/modules/base.ts +++ b/src/api/modules/base.ts @@ -64,3 +64,7 @@ export const updateStructure = params => { export const deleteStructure = params => { return http.post(`/dsRes/base/delResourceStructureById`, params); }; + +export const getStructureRootNode = params => { + return http.get(`/dsRes/base/fetchStructure`, params, { loading: false }); +}; diff --git a/src/components/TreeFilter/index.vue b/src/components/TreeFilter/index.vue index b89eaaa..1a86207 100644 --- a/src/components/TreeFilter/index.vue +++ b/src/components/TreeFilter/index.vue @@ -4,6 +4,7 @@ >(); const treeData = ref<{ [key: string]: any }[]>([]); const treeAllData = ref<{ [key: string]: any }[]>([]); +const _data = ref<{ [key: string]: any }[]>([]); const selected = ref(); const setSelected = () => { @@ -81,7 +83,11 @@ onBeforeMount(async () => { // 使用 nextTick 防止打包后赋值不生效,开发环境是正常的 watch( () => props.defaultValue, - () => nextTick(() => setSelected()), + () => + nextTick(() => { + console.log("aaaaaaaaaa"); + setSelected(); + }), { deep: true, immediate: true } ); @@ -143,21 +149,21 @@ const handleCheckChange = () => { emit("change", treeRef.value?.getCheckedKeys()); }; +const reload = ref(true); const refresh = scheme_id => { + reload.value = false; nextTick(() => { refreshTree(scheme_id); + reload.value = true; }); }; const refreshTree = async (scheme_id: number) => { - setSelected(); + // setSelected(); if (props.refreshApi) { const { data } = await props.refreshApi!(scheme_id); treeData.value = data; treeAllData.value = [...data]; - if (data[0]) { - selected.value = data[0].structure_id; - } } }; diff --git a/src/views/res/resource/components/uploadDialog.vue b/src/views/res/resource/components/uploadDialog.vue new file mode 100644 index 0000000..fc01a28 --- /dev/null +++ b/src/views/res/resource/components/uploadDialog.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/src/views/res/resource/index.vue b/src/views/res/resource/index.vue index 5ec55d3..21812b9 100644 --- a/src/views/res/resource/index.vue +++ b/src/views/res/resource/index.vue @@ -97,10 +97,10 @@ import TreeFilter from "@/components/TreeFilter/index.vue"; import { CirclePlus, Delete } from "@element-plus/icons-vue"; import { ElMessage, ElMessageBox } from "element-plus"; -import { getStructureList, getStageList, getSubjectList, getSchemeList } from "@/api/modules/base"; +import { getStructureList, getStageList, getSubjectList, getSchemeList, getStructureRootNode } from "@/api/modules/base"; import { getResList, delResData } from "@/api/modules/res"; -import UploadDialog from "@/views/res/test/components/uploadDialog.vue"; +import UploadDialog from "@/views/res/resource/components/uploadDialog.vue"; const treeFilterData = ref([]); @@ -136,7 +136,7 @@ const getSchemeTree = async () => { }; const getSchemeTreeRefresh = async scheme_id => { - const res = await getStructureList({ scheme_id: schemeSelect.value }); + const res = await getStructureList({ scheme_id }); return res; }; @@ -193,10 +193,19 @@ const openpopover = e => { visible.value = true; }; -const well = () => { +const well = async () => { if (schemeSelect.value) { + const rootNodeIdRes = await getStructureRootNode({ scheme_id: schemeSelect.value }); + sssTxt.value = stageSelectTxt.value + "-" + subjectSelectTxt.value + "-" + schemeSelectTxt.value; treeFilterRef.value?.refresh(schemeSelect.value); + + if (rootNodeIdRes.data[0]) { + initParam.structure_id = rootNodeIdRes.data[0].structure_id; + } else { + initParam.structure_id = "999"; + } + visible.value = false; } }; diff --git a/src/views/res/test/index.vue b/src/views/res/test/index.vue index 86c0969..855b291 100644 --- a/src/views/res/test/index.vue +++ b/src/views/res/test/index.vue @@ -10,7 +10,9 @@ :default-value="initParam.structure_id" /> -
+
+ Primary +
@@ -25,6 +27,10 @@ const treeFilterData = ref([]); const initParam = reactive({ structure_id: "367554" }); +const handleAdd = async () => { + initParam.structure_id = "11"; +}; + const getSchemeTree = async (scheme_id: number = 500124397) => { // const { data } = await getStructureList({ scheme_id }); const data = [