浏览代码

更新表格高度处理

shanbinzhang 2 月之前
父节点
当前提交
438256802d
共有 2 个文件被更改,包括 25 次插入19 次删除
  1. 21 2
      src/hooks/sheet/useResizeTable.js
  2. 4 17
      src/views/sheetShow/index.vue

+ 21 - 2
src/hooks/sheet/useResizeTable.js

@@ -2,6 +2,7 @@ import { ref,nextTick } from 'vue';
 import { isMobile } from '@/utils/utils';
 import _ from 'lodash';
 import { useRoute } from 'vue-router';
+import { ElMessage } from 'element-plus';
 
 
 export function useResizeTable(refName) {
@@ -181,7 +182,10 @@ export function useResizeTable(refName) {
           
           columnsWArr.value=widthArr
           rowsHArr.value=heightArr
-            
+          
+          nextTick(() => {
+            postSheetHeightMsg()
+          }) 
         }
       })
     }else if(type === 'change') {
@@ -197,6 +201,20 @@ export function useResizeTable(refName) {
     }
   }
 
+  /* 初始化抛出渲染后的表格高度 */
+  function postSheetHeightMsg(type="") {
+      let ele = document.getElementsByClassName('sheet-show-wrapper')[0];
+    
+      let params = {
+        height: ele.offsetHeight,
+        code: route.query.code,
+        uid: route.query.uid||""
+      }
+    
+      window.parent.postMessage(params,'*')
+      type==='update'&&ElMessage.success('更新样式成功')
+  }
+
   /* 拖拽后抛出参数到外面存储  只在报告编辑页可保存*/
   function changeTableCellWidSave() {
     if(!route.query.sourceId || !route.query.uid) return
@@ -218,6 +236,7 @@ export function useResizeTable(refName) {
     handleMouseMove,
     handleMouseDown,
     initTableCellsWid,
-    getSize
+    getSize,
+    postSheetHeightMsg
   }
 }

+ 4 - 17
src/views/sheetShow/index.vue

@@ -6,6 +6,9 @@ import sheet from '@/components/sheet.vue'
 import { isMobile } from '@/utils/utils';
 import { IUnknowObject } from '@/types';
 import { ElMessage } from 'element-plus';
+import { useResizeTable } from '@/hooks/sheet/useResizeTable';
+
+const { postSheetHeightMsg } = useResizeTable();
 
 const route = useRoute();
 const code = ref(route.query.code || '')
@@ -51,26 +54,10 @@ const getInfo = async(type='') => {
   }
   showData.value = true; 
   type==='refresh'&&ElMessage.success('刷新成功')
-  type!=='refresh'&&nextTick(() => {
-    updateToHeight()
-  })
 
 }
 getInfo()
 
-function updateToHeight(type="") {
-  let ele = document.getElementsByClassName('sheet-show-wrapper')[0] as HTMLElement;
-
-    let params = {
-      height: ele.offsetHeight,
-      code: info.value.UniqueCode,
-      uid: route.query.uid||""
-    }
-  
-    window.parent.postMessage(params,'*')
-    type==='update'&&ElMessage.success('更新样式成功')
-}
-
 const refreshSheet = async()=>{
     loading.value = true;
     let res: any=null;
@@ -110,7 +97,7 @@ const refreshSheet = async()=>{
       <!-- 占位 -->
       <div v-else></div>
       <div class="right-btns">
-        <span @click="updateToHeight('update')" v-if="route.query.sourceId&&!isMobile()">更新样式</span>
+        <span @click="postSheetHeightMsg('update')" v-if="route.query.sourceId&&!isMobile()">更新样式</span>
         <span @click="refreshSheet">刷新</span>
       </div>
     </div>