瀏覽代碼

feat: 清单规则编辑器,新增一列“单价” (#GLY-2704)

vian 1 年之前
父節點
當前提交
69fc52066a

+ 2 - 1
modules/all_models/stdBills_bills.js

@@ -28,7 +28,8 @@ const stdBills_bills = new Schema({
     quantityIndexCoe: Number,//单位转换系数
     kind: Number, // 清单类型
     erratumRecord: String, // 勘误记录
-    deleted: Boolean
+    deleted: Boolean,
+    unitPrice: Number, // 单价
 },
     { versionKey: false }
 );

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

@@ -887,6 +887,7 @@
                     sheet.setValue(i, 2, sheetBillsDatas.datasIdx['rowIdx'+ i].name);
                     sheet.setValue(i, 3, sheetBillsDatas.datasIdx['rowIdx'+ i].unit);
                     sheet.setValue(i, 4, sheetBillsDatas.datasIdx['rowIdx'+ i].ruleText);
+                    sheet.setValue(i, 5, sheetBillsDatas.datasIdx['rowIdx'+ i].unitPrice);
                     // sheet.setValue(i, 4, sheetBillsDatas.datasIdx['rowIdx'+ i].engineering);
                     sheet.setValue(i, 10, sheetBillsDatas.datasIdx['rowIdx'+ i].fixedFlag);
                 }

+ 17 - 0
web/maintain/bills_lib/scripts/bills_lib_setting.js

@@ -88,6 +88,23 @@ var billsLibSetting = {
             },
             width: 420
         },
+        {
+            head: {
+                titleNames: ['单价'],
+                spanCols: [1],
+                spanRows: [2],
+                vAlign: [1, 1],
+                hAlign: [1, 1],
+                font: 'Arial'
+            },
+            data: {
+                field: 'unitPrice',
+                vAlign: 1,
+                hAlign: 2,
+                font: 'Arial'
+            },
+            width: 80
+        },
         /*  {
              head: {
                  titleNames: ['工程专业'],

+ 15 - 2
web/maintain/bills_lib/scripts/db_controller.js

@@ -370,6 +370,13 @@ var dbController = {
                     return;
                 }
             } */
+            if (field === 'unitPrice') {
+                if (isNaN(args.editingText)) {
+                    args.sheet.setValue(args.row, args.col, dbController.currentEditData ? dbController.currentEditData : '');
+                    alert('单价只能输入数值!');
+                    return;
+                }
+            }
             node.data[field] = args.editingText;
             sheetBillsDatas.datasIdx['rowIdx' + args.row][field] = args.editingText;
             billsAjax.updateBills(userAccount, billsLibId, updateId, field, args.editingText);
@@ -696,11 +703,16 @@ var tools = {
                             validData[setting.cols[j].data.field] = value;
                         }
                     }
-                    else */ if (setting.cols[j].data.field === 'fixedFlag') {
+                    else */
+                    if (setting.cols[j].data.field === 'fixedFlag') {
                         let findData = BillsFixedFlagList.find((x) => x.name === value);
                         if (findData) {
                             validData[setting.cols[j].data.field] = findData.value;
                         }
+                    } else if (setting.cols[j].data.field === 'unitPrice') {
+                        if (!isNaN(value)) {
+                            validData[setting.cols[j].data.field] = value;
+                        }
                     } else if (setting.cols[j].data.field === 'kind') {
                         let findData = kindList.find((x) => x.name === value);
                         if (findData) {
@@ -1023,8 +1035,9 @@ var tools = {
             for (let i = 0; i < controller.tree.items.length; i++) {
                 let kind = sheet.getValue(i, 0), code = sheet.getValue(i, 1), name = sheet.getValue(i, 2),
                     unit = sheet.getValue(i, 3), ruleText = sheet.getValue(i, 4),
+                    unitPrice = sheet.getValue(i, 5),
                     fixedFlag = sheet.getValue(i, 10);
-                let data = { code: code, name: name, unit: unit, ruleText: ruleText, fixedFlag, kind, rowIdx: i };
+                let data = { code: code, name: name, unit: unit, ruleText: ruleText, fixedFlag, kind, rowIdx: i, unitPrice };
                 sheetDatas.datas.push(data);
                 sheetDatas.datasIdx['rowIdx' + i] = data;
             }