浏览代码

修改前端对于市场单价的判断

caiaolin 8 年之前
父节点
当前提交
885f8ddc00

+ 0 - 2
modules/glj/controllers/glj_controller.js

@@ -44,8 +44,6 @@ class GLJController extends BaseController {
             let renderData = {
                 gljList: JSON.stringify(gljList),
                 materialIdList: gljListModel.materialIdList,
-                autoChangeGLJType: UnitPriceModel.autoChangeGLJType,
-                triggerCalculateGLJType: UnitPriceModel.triggerCalculateGLJType
             };
             response.render('glj/html/glj_index', renderData);
 

+ 8 - 21
modules/glj/models/unit_price_model.js

@@ -7,28 +7,11 @@
  */
 import BaseModel from "../../common/base/base_model"
 import CounterModel from "./counter_model"
-import GLJListModel from "./glj_list_model";
 import {default as UnitPriceSchema, collectionName as collectionName} from "./schemas/unit_price";
 
 class UnitPriceModel extends BaseModel {
 
     /**
-     * 自动赋值的工料机类型集
-     * (主材、设备)
-     *
-     * @var {Array}
-     */
-    static autoChangeGLJType = [10, 11];
-
-    /**
-     * 触发计算混凝土、砂浆、配合比、机械的市场单价
-     * (人工、材料(普通材料))
-     *
-     * @var {Array}
-     */
-    static triggerCalculateGLJType = [2, 5];
-
-    /**
      * 构造函数
      *
      * @return {void}
@@ -188,14 +171,18 @@ class UnitPriceModel extends BaseModel {
             return false;
         }
         // 首先查找相应的数据判断工料机类型
-        let unitPriceData = this.findDataByCondition({id: id});
+        let unitPriceData = await this.findDataByCondition({id: id});
         if (!unitPriceData) {
             throw '找不到对应的单价数据';
         }
 
-        // 如果是主材、设备自动赋值基价单价=市场单价、调整基价=市场单价
-        if (UnitPriceModel.autoChangeGLJType.indexOf(unitPriceData.type) >= 0) {
-            updateData.base_price = updateData.market_price;
+        // 基价单价的计算
+        switch (unitPriceData.type) {
+            // 主材、设备自动赋值基价单价=市场单价
+            case 6:
+            case 7:
+                updateData.base_price = updateData.market_price;
+                break;
         }
 
         let result = await this.updateById(id, updateData);

+ 0 - 6
web/glj/html/glj_index.html

@@ -35,12 +35,6 @@
     // 不能修改市场价格的类型id
     let canNotChangeTypeId = '64';
     canNotChangeTypeId = canNotChangeTypeId !== '' ? canNotChangeTypeId.split(",") : '';
-    // 自动赋值的工料机类型
-    let autoChangeGLJType = '<%- autoChangeGLJType %>';
-    autoChangeGLJType = autoChangeGLJType !== '' ? autoChangeGLJType.split(",") : '';
-    // 触发计算混凝土、砂浆、配合比、机械的市场单价的工料机类型
-    let triggerCalculateGLJType = '<%- triggerCalculateGLJType %>';
-    triggerCalculateGLJType = triggerCalculateGLJType !== '' ? triggerCalculateGLJType.split(",") : '';
 </script>
 <%include footer.html %>
 <script type="text/javascript" src="/web/glj/js/glj_index.js"></script>

+ 64 - 13
web/glj/js/glj_index.js

@@ -321,24 +321,75 @@ function successTrigger(field, info) {
     switch (field) {
         case 'unit_price.market_price':
             let row = info.row;
-            let basePriceColumn = getFieldColumn(header, 'unit_price.base_price');
-            let adjustPriceColumn = getFieldColumn(header, 'adjust_price');
-
             // 获取类型
             let typeColumn = getFieldColumn(header, 'unit_price.type');
             let type = sheet.getValue(row, typeColumn);
 
-            // 主材、设备自动赋值基价单价=市场单价、调整基价=市场单价
-            if (autoChangeGLJType.indexOf(type + '') >= 0) {
-                sheet.setValue(info.row, basePriceColumn, info.newValue);
-                sheet.setValue(info.row, adjustPriceColumn, info.newValue);
-            }
+            // 基价单价的计算
+            basePriceCalculate(type, info);
+            // 调整基价的计算
+            adjustPriceCalculate(type, info);
+            // 市场单价的计算
+            marketPriceCalculate(type, info);
 
-            // 人工、材料(普通材料)触发 需计算混凝土、砂浆、配合比、机械的市场单价 @todo 后续添加
-            if (triggerCalculateGLJType.indexOf(type + '') >= 0) {
-                // 计算
-                console.log('触发计算');
-            }
+            break;
+    }
+}
+
+/**
+ * 基价单价计算
+ *
+ * @param {Number} type
+ * @param {object} info
+ * @return {void}
+ */
+function basePriceCalculate(type, info) {
+    let basePriceColumn = getFieldColumn(header, 'unit_price.base_price');
+    switch (type) {
+        // 主材、设备自动赋值基价单价=市场单价
+        case 6:
+        case 7:
+            sheet.setValue(info.row, basePriceColumn, info.newValue);
+            break;
+    }
+}
+
+/**
+ * 调整基价计算
+ *
+ * @param {Number} type
+ * @param {object} info
+ * @return {void}
+ */
+function adjustPriceCalculate(type, info) {
+    let basePriceColumn = getFieldColumn(header, 'unit_price.base_price');
+    let adjustPriceColumn = getFieldColumn(header, 'adjust_price');
+    switch (type) {
+        // 材料、主材、设备 调整基价=基价单价
+        case 5:
+        case 6:
+        case 7:
+            let basePrice = sheet.getValue(row, basePriceColumn);
+            sheet.setValue(info.row, adjustPriceColumn, basePrice);
+            break;
+
+    }
+}
+
+/**
+ * 市场单价计算
+ *
+ * @param {Number} type
+ * @param {object} info
+ * @return {void}
+ */
+function marketPriceCalculate(type, info) {
+    switch (type) {
+        // 人工、材料(普通材料)触发 需计算混凝土、砂浆、配合比、机械的市场单价 @todo 后续添加
+        case 2:
+        case 5:
+            // 计算
+            console.log('触发计算');
             break;
     }
 }