Browse Source

1.计量上限值bug修复2.调整变更清单模式下单条项目节上面清单可编辑

ellisran 7 months ago
parent
commit
1d48104f8e

+ 5 - 2
app/controller/change_controller.js

@@ -724,12 +724,15 @@ module.exports = app => {
                         // 取所有工料表
                         responseData.data = await ctx.service.changeAuditList.getList(ctx.change.cid);
                         break;
-                        // 从新增部位页新增清单
+                    // 从新增部位页新增清单
                     case 'add-change-list':
                         if (ctx.change.status !== audit.change.status.uncheck && ctx.change.status !== audit.change.status.checkNo && ctx.change.status !== audit.change.status.revise) {
                             throw '该变更令正在审批中或已完成,无法操作清单数据';
                         }
-                        await ctx.service.changeAuditList.adds(data.postData);
+                        const projectData2 = await ctx.service.project.getDataById(ctx.session.sessionProject.id);
+                        const fun_set2 = await ctx.service.project.getFunSet(projectData2.fun_set);
+                        const stateInfo2 = ctx.helper._.find(fun_set2.change_state, { order: ctx.change.state });
+                        await ctx.service.changeAuditList.adds(data.postData, stateInfo2.value);
                         responseData.data = { changeList: await ctx.service.changeAuditList.getList(ctx.change.cid) };
                         break;
                     // 从新增部位页删除清单

+ 34 - 9
app/public/js/change_information.js

@@ -611,7 +611,7 @@ $(document).ready(() => {
                         if (data.ccid && data.ccid === 1) {
                             return '#dc3545';
                         }
-                        if (data.id && data.lid != 0) {
+                        if (data.id && data.lid != 0 && !data.children) {
                             return '#ffc107';
                         }
                         if(data.lid != 0) return;
@@ -690,16 +690,16 @@ $(document).ready(() => {
         },
         readOnly: {
             isValuation: function (data) {
-                return !(!readOnly && data.id && _.findIndex(changeUsedData, { cbid: data.id }) !== -1);
+                return !(!readOnly && ((data.id && _.findIndex(changeUsedData, { cbid: data.id }) !== -1) || (data.children && data.children.length === 1 && _.findIndex(changeUsedData, { cbid: data.children[0].id }) !== -1)));
             },
             isEdit: function (data) {
                 return !(!readOnly && data.lid == 0 && data.id && !checkIsSettle(data));
             },
             isSettle: function (data) {
-                return !((!readOnly || shenpiPower) && data.id && !checkIsSettle(data));
+                return !((!readOnly || shenpiPower) && ((data.id && !checkIsSettle(data)) || (data.children && data.children.length === 1 && !checkIsSettle(data.children[0]))));
             },
             isSettle2: function (data) {
-                return !(!readOnly && data.id && !checkIsSettle(data));
+                return !(!readOnly && ((data.id && !checkIsSettle(data)) || (data.children && data.children.length === 1 && !checkIsSettle(data.children[0]))));
             }
         },
     };
@@ -729,7 +729,7 @@ $(document).ready(() => {
             if (!sel) return;
             const col = changeSpreadSheet.zh_setting.cols[sel.col];
             const data = SpreadJsObj.getSelectObject(changeSpreadSheet);
-            if (col && col.field === 'camount' && data && !data.gcl_id) {
+            if (col && col.field === 'camount' && data && (!data.gcl_id || (data.children && data.children.length === 1))) {
                 if (readOnly) {
                     $('#camount-expr').val(data.camount_expr ? data.camount_expr : data.camount);
                 } else {
@@ -868,10 +868,10 @@ $(document).ready(() => {
             for (const cl of changeList) {
                 const newCl = _.cloneDeep(cl);
                 if (cl.gcl_id && _.findIndex(newChangeList, { gcl_id: cl.gcl_id }) === -1) {
-                    delete newCl.id;
-                    newCl.bwmx = '';
-                    newCl.detail = '';
-                    newCl.delimit = null;
+                    // delete newCl.id;
+                    // newCl.bwmx = '';
+                    // newCl.detail = '';
+                    // newCl.delimit = null;
                     newCl.children = [];
                     newCl.children.push(cl);
                     if (_.findIndex(changeLedgerList, { id: newCl.gcl_id }) !== -1 || _.findIndex(changePosList, { id: newCl.mx_id }) !== -1) {
@@ -886,6 +886,10 @@ $(document).ready(() => {
                         if (_.findIndex(changeLedgerList, { id: newCl.gcl_id }) !== -1 || _.findIndex(changePosList, { id: newCl.mx_id }) !== -1) {
                             newCl2.ccid = 1;
                         }
+                        delete newCl2.id;
+                        newCl2.bwmx = '';
+                        newCl2.detail = '';
+                        newCl2.delimit = null;
                         newCl2.children.push(newCl);
                     }
                 }
@@ -1461,11 +1465,19 @@ $(document).ready(() => {
 
             // 更新至服务器
             postData(window.location.pathname + '/save', { type:'update', updateData: cInfo }, function (result) {
+                if (select.children && select.children.length === 1) {
+                    const child = select.children[0];
+                    child[col.field] = validText;
+                }
                 changeSpreadObj.calcOneSum(select);
                 SpreadJsObj.reLoadRowData(info.sheet, info.row);
                 changeSpreadObj.refreshXmjData();
                 changeSpreadObj.countSum();
                 changeSpreadObj.refreshActn();
+                if (info.row === info.sheet.zh_data.length - 1) {
+                    const [newChangeList, updateOrderList] = changeSpreadObj.makeNewChangeList();
+                    changeSpreadObj.reloadSheet(newChangeList);
+                }
             }, function () {
                 select[col.field] = orgValue;
                 cInfo[col.field] = orgValue;
@@ -1644,6 +1656,11 @@ $(document).ready(() => {
                     // 更新至服务器
                     postData(window.location.pathname + '/save', { type:'update', updateData: cInfo }, function (result) {
                         changeSpreadObj.reloadRow(info.sheet, info.row);
+                        if (select.children && select.children.length === 1) {
+                            const child = select.children[0];
+                            child[col.field] = select.is_valuation;
+                            changeSpreadObj.refreshXmjData();
+                        }
                     }, function () {
                         select.is_valuation = info.sheet.getValue(info.row, info.col) ? 1 : 0;
                         cInfo.is_valuation = select.is_valuation;
@@ -2071,6 +2088,9 @@ $(document).ready(() => {
                 SpreadJsObj.reLoadRowData(info.sheet, info.row);
                 const billIndex = _.indexOf(changeSpreadSheet.zh_data, node);
                 node.children = info.sheet.zh_data;
+                if (node.children && node.children.length === 1) {
+                    node[col.field] = validText;
+                }
                 changeSpreadObj.calcOneSum(node);
                 changeSpreadObj.reloadRow(changeSpreadSheet, billIndex);
                 changeSpreadObj.countSum();
@@ -2233,6 +2253,11 @@ $(document).ready(() => {
                 const node = SpreadJsObj.getSelectObject(changeSpreadSheet);
                 const billIndex = _.indexOf(changeSpreadSheet.zh_data, node);
                 node.children = info.sheet.zh_data;
+                if (node.children && node.children.length === 1) {
+                    for (const col in data[0]) {
+                        node[col] = data[0][col];
+                    }
+                }
                 changeSpreadObj.calcOneSum(node);
                 changeSpreadObj.reloadRow(changeSpreadSheet, billIndex);
                 changeSpreadObj.countSum();

+ 2 - 1
app/service/change_audit_list.js

@@ -129,7 +129,7 @@ module.exports = app => {
          * 添加台账清单(从新增部位页新增)
          * @return {void}
          */
-        async adds(datas) {
+        async adds(datas, delimit = 100) {
             if (!this.ctx.tender || !this.ctx.change) {
                 throw '数据错误';
             }
@@ -154,6 +154,7 @@ module.exports = app => {
                     d.spamount = d.spamount || null;
                     d.detail = d.detail || '';
                     d.samount = d.samount || '';
+                    d.delimit = delimit;
                     d.order = order ? order : null;
                     order = order ? order + 1 : null;
                     insertData.push(d);