Pārlūkot izejas kodu

feat: 定额库编辑器,定额章节名称列后,新增“目录编码” (#GLY-3288)

vian 9 mēneši atpakaļ
vecāks
revīzija
ac3149ba82

+ 1 - 0
modules/all_models/stdRation_section.js

@@ -10,6 +10,7 @@ const rationChapterTreeSchema = new Schema({//章节树  //生成唯一id改为s
     ParentID: Number,
     NextSiblingID: Number,
     name: String,
+    code: String, // 目录编码
     explanation: String,//说明
     erratumRecord: String, // 勘误记录
     ruleText: String,//计算规则,

+ 46 - 11
web/maintain/ration_repository/js/section_tree.js

@@ -80,6 +80,23 @@ let sectionTreeObj = {
                         font: 'Arial'
                     },
                     width: 370
+                },
+                {
+                    head: {
+                        titleNames: ['目录编码'],
+                        spanCols: [1],
+                        spanRows: [2],
+                        vAlign: [1, 1],
+                        hAlign: [1, 1],
+                        font: 'Arial'
+                    },
+                    data: {
+                        field: 'code',
+                        vAlign: 1,
+                        hAlign: 0,
+                        font: 'Arial'
+                    },
+                    width: 80
                 }
             ],
             headRows: 1,
@@ -168,16 +185,17 @@ let sectionTreeObj = {
         let me = sectionTreeObj;
         let postData = [];
         let v = me.isDef(args.editingText) ? args.editingText.toString().trim() : '';
+        const prop = sectionTreeObj.setting.sheet.cols[args.col].data.field;
         let node = me.cache[args.row];
-        if (me.isDef(node) && node.data.name !== v) {
-            let updateObj = me.getUpdateObj(me.updateType.update, node.getID(), null, null, v, null);
+        if (me.isDef(node) && node.data[prop] !== v) {
+            let updateObj = prop === 'name' ? me.getUpdateObj(me.updateType.update, node.getID(), null, null, v, null) : me.getUpdateObj(me.updateType.update, node.getID(), null, null, null, null, v);
             postData.push(updateObj);
             //ajax
             //update
             me.sectionTreeAjax(postData, function (rstData) {
-                node.data.name = v;
+                node.data[prop] = v;
             }, function () {
-                args.sheet.setValue(args.row, args.col, node.data.name ? node.data.name : '');
+                args.sheet.setValue(args.row, args.col, node.data[prop] ? node.data[prop] : '');
             });
         }
     },
@@ -191,17 +209,29 @@ let sectionTreeObj = {
 
     onClipboardPasted: function (sender, info) {
         let me = sectionTreeObj;
-        let items = sheetCommonObj.analyzePasteData({ header: [{ dataCode: 'ID' }, { dataCode: 'name' }] }, info);
+        let items = sheetCommonObj.analyzePasteData({ header: [{ dataCode: 'ID' }, { dataCode: 'name' }, { dataCode: 'code' }] }, info);
         let postData = [];
         let frontData = [];
         for (let i = 0, len = items.length; i < len; i++) {
             let row = info.cellRange.row + i;
             let node = me.cache[row];
+            const updateParams = [me.updateType.update, node.getID(), null, null, null, null, null];
             if (me.isDef(node) && me.isDef(items[i].name) && node.data.name !== items[i].name) {
-                let updateObj = me.getUpdateObj(me.updateType.update, node.getID(), null, null, items[i].name, null);
+                updateParams[4] = items[i].name;
+            }
+            if (me.isDef(node) && me.isDef(items[i].code) && node.data.code !== items[i].code) {
+                updateParams[6] = items[i].code;
+            }
+            if (me.isDef(updateParams[4]) || me.isDef(updateParams[6])) {
+                let updateObj = me.getUpdateObj(...updateParams);
                 postData.push(updateObj);
-                frontData.push({ row: row, name: items[i].name });
-                node.data.name = items[i].name;
+                frontData.push({ row: row, name: me.isDef(items[i].name) ? items[i].name : node.data.name, code: me.isDef(items[i].code) ? items[i].code : node.data.code });
+                if (me.isDef(items[i].name)) {
+                    node.data.name = items[i].name;
+                }
+                if (me.isDef(items[i].code)) {
+                    node.data.code = items[i].code;
+                }
             }
         }
         if (postData.length > 0) {
@@ -211,24 +241,26 @@ let sectionTreeObj = {
                     let node = me.cache[frontData[i]['row']];
                     if (me.isDef(node)) {
                         node.data.name = frontData[i]['name'];
+                        node.data.code = frontData[i]['code'];
                     }
                 }
             }, function () {
                 for (let i = 0, len = frontData.length; i < len; i++) {
                     let node = me.cache[frontData[i]['row']];
                     me.sheet.setValue(frontData[i]['row'], 1, me.isDef(node) ? node.data.name : '');
+                    me.sheet.setValue(frontData[i]['row'], 2, me.isDef(node) ? node.data.code : '');
                 }
             });
         }
     },
     loadRateWidth: function () {
-        if (this.workBook) {
+        /* if (this.workBook) {
             //ID列固定40宽度
             let spreadWidth = $('#sectionSpread').width() - 65; //65: 列头宽度和垂直滚动条宽度和
             let IDRate = 40 / spreadWidth,
                 nameRate = 1 - IDRate;
             sheetCommonObj.setColumnWidthByRate($('#sectionSpread').width() - 65, this.workBook, [{ rateWidth: IDRate }, { rateWidth: nameRate }]);
-        }
+        } */
     },
     buildContextMenu: function () {//右键菜单
         const me = this;
@@ -663,7 +695,7 @@ let sectionTreeObj = {
             });
         }
     },
-    getUpdateObj: function (updateType, id, nid, pid, name, deleted) {
+    getUpdateObj: function (updateType, id, nid, pid, name, deleted, code) {
         let updateObj = Object.create(null);
         updateObj.updateType = '';
         updateObj.updateData = Object.create(null);
@@ -686,6 +718,9 @@ let sectionTreeObj = {
         if (this.isDef(deleted)) {
             updateObj.updateData.isDeleted = true;
         }
+        if (this.isDef(code)) {
+            updateObj.updateData.code = code;
+        }
         return updateObj;
     },
     sectionTreeAjax: function (postData, scFunc, errFunc) {