Kaynağa Gözat

feat: 清单规则增加单价列

vian 1 yıl önce
ebeveyn
işleme
32e008cccd

+ 2 - 1
modules/all_models/stdBills_bills.js

@@ -19,7 +19,7 @@ const stdBills_bills = new Schema({
     name: String,
     unit: String,
     ruleText: String,
-    engineerContent:String,//工程内容
+    engineerContent: String,//工程内容
     engineering: Number, //工程专业,填计算程序工程专业ID
     fixedFlag: Number,  //固定ID
     Expression: String,
@@ -32,6 +32,7 @@ const stdBills_bills = new Schema({
     sectionInfo: Schema.Types.Mixed,
     deleted: Boolean,
     kind: Number, // 前台里(重构、微前端)BRType: 1: 大项费用、 8:XMJ 4:清单
+    unitPrice: Number, // 单价
 },
     { versionKey: false }
 );

+ 3 - 2
web/maintain/bills_lib/html/qingdan.html

@@ -955,8 +955,9 @@
                     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].engineerContent);
-                    sheet.setValue(i, 6, sheetBillsDatas.datasIdx['rowIdx'+ i].engineering);
-                    sheet.setValue(i, 7, sheetBillsDatas.datasIdx['rowIdx'+ i].fixedFlag);
+                    sheet.setValue(i, 6, sheetBillsDatas.datasIdx['rowIdx'+ i].unitPrice);
+                    sheet.setValue(i, 7, sheetBillsDatas.datasIdx['rowIdx'+ i].engineering);
+                    sheet.setValue(i, 8, sheetBillsDatas.datasIdx['rowIdx'+ i].fixedFlag);
                 }
                 else {
                     sheet.clear(i, 0, 1, sheet.getColumnCount(), GC.Spread.Sheets.SheetArea.viewport,GC.Spread.Sheets.StorageType.data);

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

@@ -107,6 +107,23 @@ var billsLibSetting = {
         },
         {
             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: ['工程专业'],
                 spanCols: [1],
                 spanRows: [2],

+ 14 - 3
web/maintain/bills_lib/scripts/db_controller.js

@@ -379,6 +379,12 @@ var dbController = {
                     alert('工程专业只能输入整数!');
                     return;
                 }
+            } else 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;
@@ -802,6 +808,10 @@ var tools = {
                         if (!isNaN(value) && value % 1 === 0) {
                             validData[setting.cols[j].data.field] = 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 === 'fixedFlag') {
                         let findData = BillsFixedFlagList.find((x) => x.name === value);
                         if (findData) {
@@ -1133,9 +1143,10 @@ var tools = {
                 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),
                     engineerContent = sheet.getValue(i, 5),
-                    engineering = sheet.getValue(i, 6),
-                    fixedFlag = sheet.getValue(i, 7);
-                let data = { kind: kind, code: code, name: name, unit: unit, ruleText: ruleText, engineerContent, engineering: engineering, fixedFlag: fixedFlag, rowIdx: i };
+                    unitPrice = sheet.getValue(i, 6),
+                    engineering = sheet.getValue(i, 7),
+                    fixedFlag = sheet.getValue(i, 8);
+                let data = { kind: kind, code: code, name: name, unit: unit, ruleText: ruleText, engineerContent, unitPrice, engineering: engineering, fixedFlag: fixedFlag, rowIdx: i };
                 sheetDatas.datas.push(data);
                 sheetDatas.datasIdx['rowIdx' + i] = data;
             }