Browse Source

多期计量,其他台账相关

MaiXinRong 1 year ago
parent
commit
10402fdeef

+ 5 - 2
app/public/js/project_spread.js

@@ -2,12 +2,15 @@ $(document).ready(() => {
     autoFlashHeight();
     const colSpread = SpreadJsObj.createNewSpread($('#spread-col')[0]);
     const colSheet = colSpread.getActiveSheet();
+    const validData = function(data, col) {
+        return data && data[col.field] ? '√' : '';
+    };
     const colSpreadSetting = {
         cols: [
             { title: 'key', colSpan: '1', rowSpan: '2', field: 'key', hAlign: 0, width: 0, visible: false, formatter: '@', readOnly: true, },
             { title: '可显示列', colSpan: '1', rowSpan: '2', field: 'name', hAlign: 0, width: 200, formatter: '@', readOnly: true, },
-            { title: '项目节\n清单', colSpan: '1', rowSpan: '2', field: 'bills', hAlign: 1, width: 80, readOnly: true, },
-            { title: '计量单元', colSpan: '1', rowSpan: '2', field: 'pos', hAlign: 1, width: 80, readOnly: true, },
+            { title: '项目节\n清单', colSpan: '1', rowSpan: '2', field: 'bills', hAlign: 1, width: 80, readOnly: true, getValue: validData },
+            { title: '计量单元', colSpan: '1', rowSpan: '2', field: 'pos', hAlign: 1, width: 80, readOnly: true, getValue: validData },
             { title: '配置项|是否显示', colSpan: '2|1', rowSpan: '1|1', field: 'valid', hAlign: 1, width: 60, cellType: 'checkbox', readOnly: true },
             { title: '|别名', colSpan: '|1', rowSpan: '1|1', field: 'alias', hAlign: 0, width: 120, formatter: '@',  },
         ],

+ 2 - 2
app/public/js/spreadjs_rela/spreadjs_zh.js

@@ -426,7 +426,7 @@ const SpreadJsObj = {
         const cell = sheet.getCell(iRow, iCol);
 
         if (col.getValue && Object.prototype.toString.apply(col.getValue) === "[object Function]") {
-            cell.value(col.getValue(data));
+            cell.value(col.getValue(data, col));
         } else if (col.field !== '' && data[col.field]) {
             cell.value(data[col.field]);
         }
@@ -523,7 +523,7 @@ const SpreadJsObj = {
         sheet.zh_setting.cols.forEach(function (col, j) {
             const cell = sheet.getCell(row, j);
             if (col.getValue && Object.prototype.toString.apply(col.getValue) === "[object Function]") {
-                cell.value(col.getValue(data));
+                cell.value(col.getValue(data, col));
             } else if (col.field !== '' && data[col.field]) {
                 cell.value(data[col.field]);
             }

+ 1 - 1
app/public/js/sub_project.js

@@ -236,7 +236,7 @@ $(document).ready(function() {
             $('#sm-management').val(node.management);
             if (node.filing_template_id) {
                 const ft = $(`[value=${node.filing_template_id}]`)[0];
-                if (ft) $('#sm-ft').selectedIndex = Array.prototype.indexOf.call(ft.parentNode.children, ft);
+                if (ft) $('#sm-ft')[0].selectedIndex = Array.prototype.indexOf.call(ft.parentNode.children, ft);
             }
             //$('#sm-ft').val(node.filing_template_name);
             $('#sm-ft').attr('disabled', !!node.management);

+ 7 - 2
app/service/stage_audit.js

@@ -566,7 +566,13 @@ module.exports = app => {
                         // 当前期不是最新一起时
                         if (this.ctx.stage.highOrder !== this.ctx.stage.order) {
                             const nextStages = await this.ctx.service.stage.getNextStages(this.ctx.stage.tid, this.ctx.stage.order);
-                            await this.ctx.service.stagePay.refreshNextStagePreTp(transaction, nextStages, stagePays);
+                            for (const ns of nextStages) {
+                                await this.ctx.service.stagePay.reInitialStageData(this.ctx.stage, ns, transaction);
+                                await this.ctx.service.stageOther.addInitialStageData(ns, this.ctx.stage, transaction);
+                                await this.ctx.service.stageSafeProd.addInitialStageData(ns, this.ctx.stage, transaction);
+                                await this.ctx.service.stageJgcl.addInitialStageData(ns, this.ctx.stage, transaction);
+                                await this.ctx.service.stageTempLand.addInitialStageData(ns, this.ctx.stage, transaction);
+                            }
                             const preStageTp = {
                                 pre_contract_tp: this.ctx.helper.sum([this.ctx.stage.pre_contract_tp, stageTp.contract_tp, stageTp.contract_pc_tp]),
                                 pre_qc_tp: this.ctx.helper.sum([this.ctx.stage.pre_qc_tp, stageTp.qc_tp, stageTp.qc_pc_tp]),
@@ -576,7 +582,6 @@ module.exports = app => {
                                 pre_sf_tp: this.ctx.helper.add(this.ctx.stage.pre_sf_tp, stageTp.sf_tp),
                             };
                             await transaction.updateRows(this.ctx.service.stage.tableName, nextStages.map(x => { return { id: x.id, ...preStageTp }; }));
-                            await this.ctx.service.stagePay.reInitialStageData(this.ctx.stage, nextStages[0], transaction);
                         }
 
                         // 添加短信通知-审批通过提醒功能

+ 1 - 0
app/service/stage_jgcl.js

@@ -247,6 +247,7 @@ module.exports = app => {
                     delete pd.deduct_qty;
                     pd.sid = stage.id;
                 }
+                await transaction.delete(this.tableName, { sid: stage.id });
                 const result = await transaction.insert(this.tableName, preDatas);
                 return result.affectedRows === preDatas.length;
             } else {

+ 1 - 1
app/service/stage_other.js

@@ -213,12 +213,12 @@ module.exports = app => {
                     pd.sid = stage.id;
                     pd.sorder = stage.order;
                 }
+                await transaction.delete(this.tableName, { sid: stage.id });
                 const result = await transaction.insert(this.tableName, preDatas);
                 return result.affectedRows === preDatas.length;
             } else {
                 return true;
             }
-
         }
 
         async deleteStageTimesData(sid, times, transaction) {

+ 1 - 0
app/service/stage_safe_prod.js

@@ -246,6 +246,7 @@ module.exports = app => {
                     pd.sid = stage.id;
                     pd.sorder = stage.order;
                 }
+                await transaction.delete(this.tableName, { sid: stage.id });
                 const result = await transaction.insert(this.tableName, preDatas);
                 return result.affectedRows === preDatas.length;
             } else {

+ 1 - 0
app/service/stage_temp_land.js

@@ -215,6 +215,7 @@ module.exports = app => {
                     pd.sid = stage.id;
                     pd.sorder = stage.order;
                 }
+                await transaction.delete(this.tableName, { sid: stage.id });
                 const result = await transaction.insert(this.tableName, preDatas);
                 return result.affectedRows === preDatas.length;
             } else {

+ 1 - 1
app/view/setting/spread.ejs

@@ -3,7 +3,7 @@
     <div class="panel-title">
         <div class="title-main d-flex">
             <div>
-                <div class="d-inline-block">显示设置 - 列设置 -【<%= (sType.indexOf('gcl') === 0 ? '工程量清单模式' : '0号台账模式') %>】 <%= (sType.indexOf('stage') === 0 ? '计量台账' : '0号台账') %></div>
+                <div class="d-inline-block">显示设置 - 列设置 -【<%= (sType.indexOf('gcl') === 0 ? '工程量清单模式' : '0号台账模式') %>】 <%= (sType.indexOf('stage') > 0 ? '计量台账' : '0号台账') %></div>
                 <div class="d-inline-block">
                     <a href="javascript:void(0)" name="base-opr" type="up-move" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="上移"><i class="fa fa-arrow-up" aria-hidden="true"></i></a>
                     <a href="javascript:void(0)" name="base-opr" type="down-move" class="btn btn-sm btn-light text-primary" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="下移"><i class="fa fa-arrow-down" aria-hidden="true"></i></a>

+ 1 - 1
app/view/stage_extra/bonus.ejs

@@ -47,7 +47,7 @@
 <script>
     const stageId = <%- ctx.stage.id %>;
     const stageUserId = <%- ctx.stage.user_id %>;
-    const readOnly = <%- ctx.stage.readOnly %>;
+    const readOnly = <%- ctx.stage.readOnly || ctx.stage.revising || (ctx.stage.order > 1 && (!ctx.stage.preCheckedStage || ctx.stage.preCheckedStage.order < ctx.stage.order - 1)) %>;
     const whiteList = JSON.parse('<%- JSON.stringify(ctx.app.config.multipart.whitelist) %>');
     const thousandth = <%- ctx.tender.info.display.thousandth %>;
     const stageChecked = <%- ctx.stage.status === auditConst.status.checked %>;

+ 1 - 1
app/view/stage_extra/jgcl.ejs

@@ -36,6 +36,6 @@
 <script>
     const stageId = <%- ctx.stage.id %>;
     const stageUserId = <%- ctx.stage.user_id %>;
-    const readOnly = <%- ctx.stage.readOnly %>;
+    const readOnly = <%- ctx.stage.readOnly || ctx.stage.revising || (ctx.stage.order > 1 && (!ctx.stage.preCheckedStage || ctx.stage.preCheckedStage.order < ctx.stage.order - 1)) %>;
     const thousandth = <%- ctx.tender.info.display.thousandth %>;
 </script>

+ 1 - 1
app/view/stage_extra/other.ejs

@@ -40,6 +40,6 @@
 <script>
     const stageId = <%- ctx.stage.id %>;
     const stageUserId = <%- ctx.stage.user_id %>;
-    const readOnly = <%- ctx.stage.readOnly %>;
+    const readOnly = <%- ctx.stage.readOnly || ctx.stage.revising || (ctx.stage.order > 1 && (!ctx.stage.preCheckedStage || ctx.stage.preCheckedStage.order < ctx.stage.order - 1)) %>;
     const thousandth = <%- ctx.tender.info.display.thousandth %>;
 </script>

+ 1 - 1
app/view/stage_extra/safe_prod.ejs

@@ -37,6 +37,6 @@
 <script>
     const stageId = <%- ctx.stage.id %>;
     const stageUserId = <%- ctx.stage.user_id %>;
-    const readOnly = <%- ctx.stage.readOnly %>;
+    const readOnly = <%- ctx.stage.readOnly || ctx.stage.revising || (ctx.stage.order > 1 && (!ctx.stage.preCheckedStage || ctx.stage.preCheckedStage.order < ctx.stage.order - 1)) %>;
     const thousandth = <%- ctx.tender.info.display.thousandth %>;
 </script>

+ 1 - 1
app/view/stage_extra/temp_land.ejs

@@ -37,6 +37,6 @@
 <script>
     const stageId = <%- ctx.stage.id %>;
     const stageUserId = <%- ctx.stage.user_id %>;
-    const readOnly = <%- ctx.stage.readOnly %>;
+    const readOnly = <%- ctx.stage.readOnly || ctx.stage.revising || (ctx.stage.order > 1 && (!ctx.stage.preCheckedStage || ctx.stage.preCheckedStage.order < ctx.stage.order - 1)) %>;
     const thousandth = <%- ctx.tender.info.display.thousandth %>;
 </script>