瀏覽代碼

单元格拖拽问题处理

cldu 6 天之前
父節點
當前提交
99ecf58507
共有 2 個文件被更改,包括 9 次插入4 次删除
  1. 3 2
      src/components/sheet.vue
  2. 6 2
      src/hooks/sheet/useResizeTable.js

+ 3 - 2
src/components/sheet.vue

@@ -17,7 +17,8 @@ const {
   handleMouseMove,
   handleMouseOut,
   initTableCellsWid,
-  getSize
+  getSize,
+  haveDraggedSize,
 } = useResizeTable(tableRef)
 
 const props = defineProps({
@@ -77,7 +78,7 @@ initTableCellsWid('init',props.sceneConfig)
             background: ${cell.bg};
             text-align: ${HtObj[cell.HorizontalType]};
             font-size: ${cell.fs||props.config.FontSize||12}px;
-            width:${getSize(cell_index,'width')}
+            width:${haveDraggedSize ? getSize(cell_index,'width') : (index==0?getSize(cell_index,'width'):'auto')}
           `"
           @mousemove="e =>isCanDrag && handleMouseMove(e,index,cell_index)"
           @mousedown="e =>isCanDrag && handleMouseDown(e,index,cell_index)"

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

@@ -19,7 +19,7 @@ export function useResizeTable(refName) {
   const dragging = ref(false)
   const dragState=ref({})
   const dragStateHeight = ref({}) 
-  
+  const haveDraggedSize = ref(false)
   const handleMouseMove = _.throttle(function(e,rIndex,cIndex) {
 
     if(isMobile()) return
@@ -160,6 +160,7 @@ export function useResizeTable(refName) {
 
 
   function initTableCellsWid(type='init',sceneConfig) {
+    haveDraggedSize.value = false;
     if(type=='init'){
       const { HeightList,WidthList } = sceneConfig;
 
@@ -167,6 +168,7 @@ export function useResizeTable(refName) {
         const table = refName.value;
         if (table) {
           if(HeightList&&WidthList) {
+            haveDraggedSize.value = true;
             columnsWArr.value = WidthList.split(',').map(_ =>Number(_));
             rowsHArr.value = HeightList.split(',').map(_ =>Number(_));
             nextTick(() => {
@@ -192,6 +194,7 @@ export function useResizeTable(refName) {
         }
       })
     }else if(type === 'change') {
+      haveDraggedSize.value = true;
       changeTableCellWidSave()
     }
   }
@@ -240,6 +243,7 @@ export function useResizeTable(refName) {
     handleMouseDown,
     initTableCellsWid,
     getSize,
-    postSheetHeightMsg
+    postSheetHeightMsg,
+    haveDraggedSize,
   }
 }