Kaynağa Gözat

清单规则库中,拖动粘贴的内容,刷新后未成功保存

vian 4 yıl önce
ebeveyn
işleme
352d4a4a74

+ 1 - 0
web/maintain/bills_lib/html/neirong.html

@@ -229,6 +229,7 @@
         tools.redirect(billsLibId, 'stdBillsmain');
         let userAccount = '<%= userAccount%>'
         let spreadAllJobs = new GC.Spread.Sheets.Workbook($('#spreadAllJobs')[0], {sheetCount: 1});
+        spreadAllJobs.options.allowUserDragFill = false;
         sheetCommonObj.bindEscKey(spreadAllJobs, [{sheet: spreadAllJobs.getSheet(0), editStarting: totalJobsController.onEditStart, editEnded: totalJobsController.onEditEnded}]);
         let orgJobData;
         let maxJobNumer;

+ 38 - 0
web/maintain/bills_lib/html/qingdan.html

@@ -381,8 +381,10 @@
     tools.redirect(billsLibId, 'stdBillsmain');
     let billsSpread;
     let jobsSpread = new GC.Spread.Sheets.Workbook($("#spreadJobs")[0], {sheetCount: 1});
+    jobsSpread.options.allowUserDragFill = false;
     sheetCommonObj.bindEscKey(jobsSpread, [{sheet: jobsSpread.getSheet(0), editStarting: jobsController.onEditStart, editEnded: jobsController.onEditEnded}]);
     let itemsSpread = new GC.Spread.Sheets.Workbook($("#spreadItems")[0], {sheetCount: 1});
+    itemsSpread.options.allowUserDragFill = false;
     sheetCommonObj.bindEscKey(itemsSpread, [{sheet: itemsSpread.getSheet(0), editStarting: itemsController.onEditStart, editEnded: itemsController.onEditEnded}]);
     $(document).ready(function(){
         $("#aStdJobs").attr('href', function(){
@@ -505,6 +507,7 @@
         controller.setTreeSelected(controller.tree.findNode(controller.sheet.getTag(0, 0)));
         //粘贴事件
         bindPasteBills(controller, billsSpread.getActiveSheet(), setting);
+        bindBillsRangeChanged(controller, billsSpread.getActiveSheet(), setting);
         //补注内容改变
         rechargeChange(controller);//
         //焦点控制
@@ -843,6 +846,41 @@
             sheet.setRowCount(sheetBillsDatas.datas.length);
         });
     }
+
+    function bindBillsRangeChanged(controller, sheet, setting) {
+        sheet.bind(GC.Spread.Sheets.Events.RangeChanged, function (sender, info) {
+            const postData = [];
+            let curRow;
+            let curData;
+            info.changedCells.forEach(({ row, col }) => {
+                const node = controller.tree.items[row];
+                if (curRow !== row) {
+                    curData = { ID: node.data.ID };
+                    postData.push(curData);
+                }
+                curRow = row;
+                const field = setting.cols[col].data.field;
+                const value = sheet.getValue(row, col);
+                curData[field] = value;
+            });
+            billsAjax.pasteBills(userAccount, billsLibId, postData, function () {
+                info.changedCells.forEach(({ row, col }) => {
+                    const node = controller.tree.items[row];
+                    const field = setting.cols[col].data.field;
+                    const value = sheet.getValue(row, col);
+                    node.data[field] = value;
+                    sheetBillsDatas.datasIdx['rowIdx' + row][field] = value;
+                });
+            }, function () {
+                info.changedCells.forEach(({ row, col }) => {
+                    const node = controller.tree.items[row];
+                    const field = setting.cols[col].data.field;
+                    sheet.setValue(row, col, node.data[field] || '');
+                });
+            });
+        });
+    }
+    
     function bindPasteRel(sheet, controller, totalJobs, setting){
         //sheetDatas = tools.getsheetDatas(sheet, 'jobs');
         sheet.bind(GC.Spread.Sheets.Events.ClipboardPasting, function (sender, args) {

+ 2 - 0
web/maintain/bills_lib/html/tezheng.html

@@ -227,8 +227,10 @@
     <SCRIPT type="text/javascript">
         const locked = lockUtil.getLocked();
         let spread = new GC.Spread.Sheets.Workbook($('#spreadAllItems')[0], {sheetCount: 1});
+        spread.options.allowUserDragFill = false;
         sheetCommonObj.bindEscKey(spread, [{sheet: spread.getSheet(0), editStarting: totalItemsController.onEditStart, editEnded: totalItemsController.onEditEnded}]);
         let spreadVal = new GC.Spread.Sheets.Workbook($('#spreadEigenvalue')[0], {sheetCount: 1});
+        spreadVal.options.allowUserDragFill = false;
         sheetCommonObj.bindEscKey(spreadVal, [{sheet: spreadVal.getSheet(0), editStarting: valueController.onEditStart, editEnded: valueController.onEditEnded}])
         let billsLibId = getQueryString('billsLibId');
         tools.redirect(billsLibId, 'stdBillsmain');

+ 13 - 10
web/maintain/bills_lib/scripts/bills_lib_ajax.js

@@ -370,22 +370,25 @@ var billsAjax = {
             }
         });
     },
-    pasteBills: function(lastOperator, billsLibId, datas){
-        for (let data of datas) {
-            if (data.fixedFlag) {
-                let findData = BillsFixedFlagList.find((x) => x.name === data.fixedFlag);
-                if (findData) {
-                    data.fixedFlag = findData.value;
-                }
-            }
-        }
+    pasteBills: function(lastOperator, billsLibId, datas, successCallback, errorCallback){
         $.ajax({
             type: 'post',
             url: 'stdBillsEditor/pasteBills',
             data: {data: JSON.stringify({lastOperator: lastOperator, billsLibId: billsLibId, datas: datas})},
             dataType: 'json',
             success: function(result){
-
+                if (!result.error && successCallback) {
+                    successCallback();
+                } else if (result.error && errorCallback) {
+                    alert(result.message);
+                    errorCallback();
+                }
+            },
+            error: function () {
+                alert('服务器出现错误,请稍后再试。')
+                if (errorCallback) {
+                    errorCallback();
+                }
             }
         });
     },