8
0
فهرست منبع

项目归档树修改

duy 9 ماه پیش
والد
کامیت
129d3cb1b7
1فایلهای تغییر یافته به همراه34 افزوده شده و 19 حذف شده
  1. 34 19
      src/views/project/tree/drawer-temp.vue

+ 34 - 19
src/views/project/tree/drawer-temp.vue

@@ -23,6 +23,7 @@
                                 is-load-menu
                                 :h-props="treeProps"
                                 tree-key="id"
+                                :auto-expand-keys="autoExpandKeys"
                                 @load-menu="treeMenu"
                                 @load="treeLoadNode"
                                 @node-tap="treeNodeTap"
@@ -36,22 +37,25 @@
                             </hc-lazy-tree>
                         </template>
                         <template v-if="isTreeMode === 2">
-                            <hc-data-tree
-                                ref="treeRef2"
-                                is-load-menu
-                                :h-props="treeProps"
-                                tree-key="id"
-                                :datas="treeData"
-                                @load-menu="treeMenu"
-                                @node-tap="treeNodeTap"
-                                @menu-tap="treeMenuClick"
-                            >
-                                <template #name="{ data }">
-                                    <span class="text-16px font-400">{{
-                                        data.title
-                                    }}</span>
-                                </template>
-                            </hc-data-tree>
+                            <div v-loading="treeLoading">
+                                <hc-data-tree
+                                    ref="treeRef2"
+                                    is-load-menu
+                                    :h-props="treeProps"
+                                    tree-key="id"
+                                    :datas="treeData"
+                               
+                                    @load-menu="treeMenu"
+                                    @node-tap="treeNodeTap"
+                                    @menu-tap="treeMenuClick"
+                                >
+                                    <template #name="{ data }">
+                                        <span class="text-16px font-400">{{
+                                            data.title
+                                        }}</span>
+                                    </template>
+                                </hc-data-tree>
+                            </div>
                         </template>
                     </hc-card>
                 </hc-tab-card>
@@ -219,7 +223,7 @@
 </template>
 
 <script setup>
-import { ref, watch } from 'vue'
+import { onMounted, ref, watch } from 'vue'
 import { HcDelMsg, HcFirmMsg } from 'hc-vue3-ui'
 import { getArrValue, isNullES } from 'js-fast-way'
 import HcTreeNodeForm from './tree-form.vue'
@@ -227,6 +231,7 @@ import HcTreeNodeSort from './tree-sort.vue'
 import mainApi from '~api/project/tree'
 import archiveApi from '~api/desk/archive-tree'
 import entryConfig from '../../desk/wbs/entry-config.vue'
+import { getStoreValue, setStoreValue } from '~uti/storage'
 const props = defineProps({
     data: {
         type: Object,
@@ -241,6 +246,11 @@ const emit = defineEmits(['close'])
 const isShow = defineModel('modelValue', {
     default: false,
 })
+const autoExpandKeys = ref([])
+//渲染完成
+onMounted(() => {
+    autoExpandKeys.value = getStoreValue('autoExpandKeys') || []
+})
 
 //监听数据
 const dataInfo = ref(props.data)
@@ -299,7 +309,8 @@ const treeMenu = ({ level }, resolve) => {
 }
 
 //菜单被点击
-const treeMenuClick = ({ key, data, node }) => {
+const treeMenuClick = ({ key, data, node, keys }) => {
+    setStoreValue('autoExpandKeys', keys)
     if (key === 'add') {
         if (Number(data.isStorageNode) !== 1) {
             treeFormType.value = '新增'
@@ -371,10 +382,13 @@ const pseudoRefresh = () => {
 
 //全加载树
 const treeData = ref([])
+const treeLoading = ref(false)
 const getTreeAllData = async () => {
+    treeLoading.value = true
     const { data } = await mainApi.allTree({
         projectId: dataInfo.value.id,
     })
+    treeLoading.value = false
     treeData.value = getArrValue(data)
 }
 
@@ -430,8 +444,9 @@ const archiveTreeInit = async () => {
 
 //树节点被点击
 const nodeInfo = ref({})
-const treeNodeTap = ({ data }) => {
+const treeNodeTap = ({ data, keys }) => {
     nodeInfo.value = data
+    setStoreValue('autoExpandKeys', keys)
 }
 //页面分割
 const splitOptions = { sizes: [50, 50], snapOffset: 0, minSize: [300, 300] }