瀏覽代碼

1. 所有spreadjs,默认关闭下拉自动填充
2. 计量支付页面,开启下拉自动填充,并保存数据

MaiXinRong 5 年之前
父節點
當前提交
6d4f9092d8
共有 3 個文件被更改,包括 57 次插入13 次删除
  1. 1 0
      app/controller/stage_controller.js
  2. 15 13
      app/public/js/spreadjs_rela/spreadjs_zh.js
  3. 41 0
      app/public/js/stage_detail.js

+ 1 - 0
app/controller/stage_controller.js

@@ -455,6 +455,7 @@ module.exports = app => {
                 } else {
                     responseData.data = await ctx.service.stageDetail.saveDetailData(data);
                 }
+                console.log(responseData);
                 ctx.body = responseData;
             } catch (err) {
                 this.log(err);

+ 15 - 13
app/public/js/spreadjs_rela/spreadjs_zh.js

@@ -73,16 +73,18 @@ const SpreadJsObj = {
      */
     createNewSpread: function (obj) {
         const spread = new spreadNS.Workbook(obj, {sheetCount: 1});
-        spread.options.tabStripVisible = false;
-        spread.options.scrollbarMaxAlign = true;
-        spread.options.cutCopyIndicatorVisible = false;
-        spread.options.allowCopyPasteExcelStyle = false;
-        spread.options.allowUserDragDrop = false;
-        spread.options.allowUserEditFormula = false;
-        spread.options.allowExtendPasteRange = true;
-        spread.options.copyPasteHeaderOptions = spreadNS.CopyPasteHeaderOptions.noHeaders;
-        spread.getActiveSheet().options.clipBoardOptions = GC.Spread.Sheets.ClipboardPasteOptions.values;//设置粘贴时只粘贴值
-        spread.getActiveSheet().setRowCount(3);
+        // spread.options.tabStripVisible = false;
+        // spread.options.scrollbarMaxAlign = true;
+        // spread.options.cutCopyIndicatorVisible = false;
+        // spread.options.allowCopyPasteExcelStyle = false;
+        // spread.options.allowUserDragDrop = false;
+        spread.options.allowUserDragFill = false;
+        // spread.options.showDragFillSmartTag = false;
+        // spread.options.allowUserEditFormula = false;
+        // spread.options.allowExtendPasteRange = true;
+        // spread.options.copyPasteHeaderOptions = spreadNS.CopyPasteHeaderOptions.noHeaders;
+        // spread.getActiveSheet().options.clipBoardOptions = spreadNS.ClipboardPasteOptions.values;//设置粘贴时只粘贴值
+        // spread.getActiveSheet().setRowCount(3);
         return spread;
     },
     addCutEvents: function (spread, fun) {
@@ -110,9 +112,9 @@ const SpreadJsObj = {
             allowResizeColumns: true
         };
 
-        sheet.options.protectionOptions = option;
-        sheet.options.isProtected = true;
-        sheet.options.allowCellOverflow = false;
+        // sheet.options.protectionOptions = option;
+        // sheet.options.isProtected = true;
+        // sheet.options.allowCellOverflow = false;
     },
     /**
      * sheet批量操作优化(sheet操作大批量数据时, 屏蔽数据刷新, 可优化大量时间)

+ 41 - 0
app/public/js/stage_detail.js

@@ -25,6 +25,8 @@ $(document).ready(() => {
         readOnly: readOnly,
     };
     const detailSpread = SpreadJsObj.createNewSpread($('#detail-spread')[0]);
+    detailSpread.options.allowUserDragFill = true;
+    detailSpread.options.defaultDragFillType = spreadNS.Fill.AutoFillType.fillSeries;
 
     $.subMenu({
         menu: '#sub-menu', miniMenu: '#sub-mini-menu', miniMenuList: '#mini-menu-list',
@@ -220,11 +222,50 @@ $(document).ready(() => {
                 }
             }
         },
+        dragFillBlock: function (e, info) {
+            console.log(info);
+            if (info.fromCol !== info.toCol) {
+                info.cancel = true;
+            }
+        },
+        dragFillBlockCompleted: function (e, info) {
+            if (info.sheet.zh_setting && info.sheet.zh_data) {
+                const datas = [];
+                for (let iRow = 0; iRow < info.fillRange.rowCount; iRow++) {
+                    const curRow = info.fillRange.row + iRow;
+                    const data = info.sheet.zh_data[curRow];
+                    if (data) {
+                        const updateData = {lid: data.lid};
+                        if (data.uuid) {
+                            updateData.uuid = data.uuid;
+                        } else {
+                            updateData.code = data.code;
+                            updateData.name = data.name;
+                            updateData.unit = data.unit;
+                            updateData.unit_price = data.unit_price;
+                        }
+                        updateData.doc_code = info.sheet.getText(curRow, info.fillRange.col).replace('\n', '');
+                        datas.push(updateData);
+                    }
+                }
+                if (datas.length > 0) {
+                    postData(window.location.pathname + '/save', datas, function (result) {
+                        stageIm.loadUpdateDetailData(result);
+                        SpreadJsObj.reLoadRowData(info.sheet, info.fillRange.row, info.fillRange.rowCount);
+                    }, function () {
+                        SpreadJsObj.reLoadRowData(info.sheet, info.fillRange.row, info.fillRange.rowCount);
+                    })
+                }
+            }
+            console.log(info);
+        },
     };
     detailSpread.bind(spreadNS.Events.SelectionChanged, detailOperationObj.selectionChanged);
     if (!readOnly) {
         detailSpread.bind(spreadNS.Events.EditEnded, detailOperationObj.editEnded);
         detailSpread.bind(spreadNS.Events.ClipboardPasted, detailOperationObj.clipboardPasted);
+        detailSpread.bind(spreadNS.Events.DragFillBlock, detailOperationObj.dragFillBlock);
+        detailSpread.bind(spreadNS.Events.DragFillBlockCompleted, detailOperationObj.dragFillBlockCompleted);
         SpreadJsObj.addDeleteBind(detailSpread, detailOperationObj.deletePress);
     }