Browse Source

修改table操作后tree更新

zhaoke 1 year ago
parent
commit
310e3f37f7

+ 2 - 2
src/components/publicPageForm/index.vue

@@ -151,7 +151,6 @@ export default {
     },
     //获取表单下拉数据
     getSelectData (formItem = []) {
-      this.loading = true
       if (!formItem.length || !Array.isArray(formItem)) return
       const formItemCopy = _.cloneDeep(formItem)
       const [allResult, allResultKey] = [[], []]
@@ -163,10 +162,10 @@ export default {
         }
       })
       this.getAnscyData(allResultKey, allResult, formItem)
-      this.loading = false
     },
     //获取异步数据
     async getAnscyData (allResultKey = [], allResult = [], formItem = []) {
+      this.loading = true
       if (allResult.length && allResultKey.length) {
         const results = await Promise.allSettled(allResult)
         results.map((item, index) => {
@@ -180,6 +179,7 @@ export default {
       } else {
         this.formItemArr = formItem
       }
+      this.loading = false
     },
     formatData (returnData) {
       return typeof returnData == 'string' ? JSON.parse(returnData) : returnData

+ 27 - 6
src/components/publicPageTree/index.vue

@@ -21,6 +21,10 @@ export default {
     treeData: {
       type: Array,
       default: () => []
+    },
+    depMath: {
+      type: Number | String,
+      default: 0
     }
   },
   data () {
@@ -32,7 +36,8 @@ export default {
         children: 'children',
         label: 'pagename'
       },
-      defaultKeys: []
+      defaultKeys: [],
+      msgCaps: []
     }
   },
   watch: {
@@ -41,14 +46,17 @@ export default {
     },
     treeData: {
       handler (arr) {
-        if (arr?.length) {
-          const { defaultfilter, serviceid, pagename } = arr[0]
-          const defaultfilterTag = defaultfilter ? defaultfilter : { 1: 1 }
-          this.queryTreeData(defaultfilterTag, serviceid, pagename)
-        }
+        this.msgCaps = arr
+        this.pageInit(arr)
       },
       deep: true,
       immediate: true
+    },
+    depMath: {
+      handler (arr) {
+        this.pageInit(arr)
+      },
+      deep: true
     }
   },
   methods: {
@@ -56,6 +64,19 @@ export default {
       if (!value) return true;
       return data.pagename.indexOf(value) !== -1;
     },
+    pageInit (arr) {
+      if (typeof arr == 'object') {
+        if (arr?.length) {
+          const { defaultfilter, serviceid, pagename } = arr[0]
+          const defaultfilterTag = defaultfilter ? defaultfilter : { 1: 1 }
+          this.queryTreeData(defaultfilterTag, serviceid, pagename)
+        }
+      } else {
+        const { defaultfilter, serviceid, pagename } = this.msgCaps[0]
+        const defaultfilterTag = defaultfilter ? defaultfilter : { 1: 1 }
+        this.queryTreeData(defaultfilterTag, serviceid, pagename)
+      }
+    },
     treeNodeClick (data) {
       this.$emit('treeNodeClick', data)
     },

+ 4 - 7
src/views/tablePage/index.vue

@@ -6,7 +6,7 @@
     </PublicPageHeader>
     <div :style="pageTableContentHeight" class="TablePage_content flex-wrap">
       <div v-if="treeData.length" class="TablePage_content_left">
-        <PublicPageTree :tree-data="treeData" @treeNodeClick="treeNodeClick" />
+        <PublicPageTree :tree-data="treeData" :dep-math="depMath" @treeNodeClick="treeNodeClick" />
       </div>
       <div :class="treeData.length ? 'tableSacle' : 'tableAuto'" class="TablePage_content_right">
         <PublicPageTable :loading="loading" :table-cols="tableCols" :table-btns="authBtns" :data="tableData" :header-cell-class-name="headerCellClass" :row-class-name="rowClass" :cell-class-name="cellClass" :formatter="tableFormatter" show-summary @mounted="tableMountedHandler" @load="load" @cell-click="cellClickHandler" @handleEdit="handleEdit" @handleOther="handleOther" @handleRemove="handleRemove" />
@@ -85,7 +85,7 @@ export default {
       labelWidth: '120px', //表单文字距离
       fromDataReqCatch: [], //表单规则缓存
       tableKey: null,//表格主键
-      pageAuthtrees: [], //tree数据
+      depMath: 0
     }
   },
   computed: {
@@ -133,10 +133,7 @@ export default {
       if (!pageAuthArrs.length) return
       //获取tree权限
       const pageAuthtrees = pageAuthArrs.filter(item => item.pagetype == 'tree')
-      if (pageAuthtrees?.length) {
-        this.pageAuthtrees = pageAuthtrees
-        this.getPageTreeSetting(pageAuthtrees)
-      }
+      if (pageAuthtrees?.length) this.getPageTreeSetting(pageAuthtrees)
       //获取table权限
       const pageAuthtables = pageAuthArrs.filter(item => item.pagetype == 'table')
       if (pageAuthtables?.length) this.getPageTableSetting(pageAuths, pageAuthtables)
@@ -300,7 +297,7 @@ export default {
           this.tableForm = {};
           this.resetTable();
           this.load();
-          this.getPageTreeSetting(this.pageAuthtrees)
+          this.depMath = Math.random();
           // this.$router.go(0);
         } else {
           this.$message.error("操作失败");