瀏覽代碼

1. 审核比较,选择审批人后,标红数据刷新问题
2. 完成中间计量,相关调整

MaiXinRong 5 年之前
父節點
當前提交
f99a6b96ec

+ 7 - 17
app/controller/stage_controller.js

@@ -251,7 +251,7 @@ module.exports = app => {
                         responseData.data.curStageData = await ctx.service.stageBills.updateStageData(data.bills.stage);
                     }
                 }
-                await this.ctx.service.stage.updateCheckDetailFlag(ctx.stage.id, true);
+                await ctx.service.stage.updateCheckDetailFlag(ctx.stage.id, true);
                 ctx.body = responseData;
             } catch (err) {
                 this.log(err);
@@ -304,7 +304,7 @@ module.exports = app => {
                 } else {
                     result = await ctx.service.stageChange.billsChange(data.target.bills, data.change);
                 }
-                await this.ctx.service.stage.updateCheckDetailFlag(ctx.stage.id, true);
+                await ctx.service.stage.updateCheckDetailFlag(ctx.stage.id, true);
                 ctx.body = {err: 0, msg: '', data: result};
             } catch(err) {
                 this.log(err);
@@ -362,6 +362,7 @@ module.exports = app => {
 
                 const data = JSON.parse(ctx.request.body.data);
                 await ctx.service.stage.buildDetailData(ctx.tender.id, ctx.stage.order, data);
+                await ctx.service.stage.updateCheckDetailFlag(ctx.stage.id, true);
 
                 ctx.body = {err: 0, msg: '', data: null};
             } catch (err) {
@@ -429,6 +430,7 @@ module.exports = app => {
 
                 const data = JSON.parse(ctx.request.body.data);
                 await ctx.service.stage.update(data, { id: ctx.stage.id });
+                await ctx.service.stage.updateCheckDetailFlag(ctx.stage.id, true);
 
                 ctx.body = {err: 0, msg: '', data: this.ctx.stage};
             } catch (err) {
@@ -456,6 +458,7 @@ module.exports = app => {
                 } else {
                     responseData.data = await ctx.service.stageDetail.saveDetailData(data);
                 }
+                await ctx.service.stage.updateCheckDetailFlag(ctx.stage.id, true);
                 ctx.body = responseData;
             } catch (err) {
                 this.log(err);
@@ -478,6 +481,7 @@ module.exports = app => {
                 const fileInfo = path.parse(stream.filename);
                 const fileName = path.join('public/upload', this.ctx.tender.id.toString(), 'im', 'calcImg_' + create_time + fileInfo.ext);
                 await ctx.helper.saveStreamFile(stream, path.join(this.app.baseDir, 'app', fileName));
+                await ctx.service.stage.updateCheckDetailFlag(ctx.stage.id, true);
                 ctx.body = {err: 0, msg: '', data: fileName};
             } catch(err) {
                 this.log(err);
@@ -517,6 +521,7 @@ module.exports = app => {
                 await this.ctx.service.stageDetail.saveDetailData(data);
                 const imData = await ctx.service.stageDetail.getLastestImStageData(this.ctx.tender.id, this.ctx.stage.id, data.lid, data.uuid);
                 const responseData = {err: 0, msg: '', data: imData};
+                await ctx.service.stage.updateCheckDetailFlag(ctx.stage.id, true);
                 ctx.body = responseData;
             } catch (err) {
                 this.log(err);
@@ -540,21 +545,6 @@ module.exports = app => {
         }
 
         /**
-         * 中间计量 -- 解锁编辑(Post)
-         * @param ctx
-         * @returns {Promise<void>}
-         */
-        async unlockDetail(ctx) {
-            try {
-                await ctx.service.stage.updateCheckDetailFlag(ctx.stage.id, true);
-                ctx.stage.check_detail = true;
-                ctx.redirect(ctx.request.header.referer);
-            } catch (err) {
-                ctx.redirect(ctx.request.header.referer);
-            }
-        }
-
-        /**
          * 合同支付 (Get)
          * @param ctx
          * @returns {Promise<void>}

+ 3 - 3
app/public/js/stage_compare.js

@@ -56,13 +56,14 @@ function calculateStagePosData(datas) {
 $(document).ready(function () {
     autoFlashHeight();
     // 根据设置整理Spread设置
+    initSpreadSettingWithRoles(scRoles);
     ledgerSpreadSetting.getColor = function (sheet, data, col, defaultColor) {
         function checkDiffer(data) {
             const fieldSufs = sheet.zh_setting.fieldSufs;
             if (fieldSufs.length <= 1) return false;
             const field = data.quantity ? 'gather_qty' : 'gather_tp';
             const base = data[field + fieldSufs[0]];
-            for (let i = 1; i< scRoles.length; i++) {
+            for (let i = 1; i< fieldSufs.length; i++) {
                 if (data[field + fieldSufs[i]] !== base) return true;
             }
         }
@@ -73,13 +74,12 @@ $(document).ready(function () {
             const fieldSufs = sheet.zh_setting.fieldSufs;
             if (fieldSufs.length <= 1) return false;
             const base = data['gather_qty' + fieldSufs[0]];
-            for (let i = 1; i< scRoles.length; i++) {
+            for (let i = 1; i< fieldSufs.length; i++) {
                 if (data['gather_qty' + fieldSufs[i]] !== base) return true;
             }
         }
         return checkDiffer(data) ? '#F2DEDE' : defaultColor;
     };
-    initSpreadSettingWithRoles(scRoles);
     // 初始化台账
     const ledgerSpread = SpreadJsObj.createNewSpread($('#ledger-spread')[0]);
     SpreadJsObj.initSheet(ledgerSpread.getActiveSheet(), ledgerSpreadSetting);

+ 22 - 0
app/public/js/stage_detail.js

@@ -8,6 +8,18 @@
  * @version
  */
 
+function needCheckDetail(check = false) {
+    if (check) {
+        stage.check_detail = true;
+        $('#check_point').show();
+        $('#check-detail').show();
+    } else {
+        stage.check_detail = false;
+        $('#check_point').hide();
+        $('#check-detail').hide();
+    }
+}
+
 $(document).ready(() => {
     autoFlashHeight();
     const detailSpreadSetting = {
@@ -145,6 +157,7 @@ $(document).ready(() => {
                     postData(window.location.pathname + '/save', updateData, function (result) {
                         stageIm.loadUpdateDetailData(result);
                         SpreadJsObj.reLoadRowData(info.sheet, info.row);
+                        needCheckDetail();
                     }, function () {
                         SpreadJsObj.reLoadRowData(info.sheet, info.row);
                     });
@@ -188,6 +201,7 @@ $(document).ready(() => {
                     postData(window.location.pathname + '/save', datas, function (result) {
                         stageIm.loadUpdateDetailData(result);
                         SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
+                        needCheckDetail();
                     }, function () {
                         SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
                     })
@@ -216,6 +230,7 @@ $(document).ready(() => {
                     postData(window.location.pathname + '/save', datas, function (result) {
                         stageIm.loadUpdateDetailData(result);
                         SpreadJsObj.reLoadRowData(sheet, sel.row, sel.rowCount);
+                        needCheckDetail();
                     }, function () {
                         SpreadJsObj.reLoadRowData(sheet, sel.row, sel.rowCount);
                     });
@@ -257,6 +272,7 @@ $(document).ready(() => {
                 postData(window.location.pathname + '/save', datas, function (result) {
                     stageIm.loadUpdateDetailData(result);
                     SpreadJsObj.reLoadRowData(info.sheet, info.fillRange.row, info.fillRange.rowCount);
+                    needCheckDetail();
                 }, function () {
                     SpreadJsObj.reLoadRowData(info.sheet, info.fillRange.row, info.fillRange.rowCount);
                 })
@@ -367,6 +383,7 @@ $(document).ready(() => {
         postData(window.location.pathname + '/build', data, function (result) {
             stage.im_type = data.im_type;
             stage.im_pre = data.im_pre;
+            needCheckDetail();
             // 加载生成数据
             reBuildImData();
             $('#choose').modal('hide');
@@ -503,6 +520,7 @@ $(document).ready(() => {
         postData(window.location.pathname + '/adv', data, function (result) {
             stage.im_gather = data.im_gather;
             stage.im_gather_node = data.im_gather_node;
+            needCheckDetail();
             $('#choose2').modal('hide');
         });
     });
@@ -568,6 +586,7 @@ $(document).ready(() => {
             $('#unit-name').attr('readonly', '');
             $('#drawing-code').attr('readonly', '');
             $('#calc-memo').attr('readonly', '');
+            needCheckDetail();
         });
     });
     // 取消
@@ -677,6 +696,7 @@ $(document).ready(() => {
                 // $('.img-item').mousedown(moveImageItem);
                 $('.img-bar').click(removeImageItem);
                 setdraggrable();
+                needCheckDetail();
             });
         }
     });
@@ -727,12 +747,14 @@ $(document).ready(() => {
                 _.assign(data, result);
                 $('#calc-img').html('<img src="/' + data.calc_img + '" class="d-100" width="100%">');
                 $('#edit-img').modal('hide');
+                needCheckDetail();
             });
         } else if (data.calc_img) {
             postData(window.location.pathname + '/merge-img', {updateType: 'clear', lid: data.lid, uuid: data.uuid}, function (result) {
                 _.assign(data, result);
                 $('#calc-img').html('');
                 $('#edit-img').modal('hide');
+                needCheckDetail();
             });
         }
     });

+ 1 - 2
app/public/js/stage_pay.js

@@ -143,7 +143,7 @@ $(document).ready(() => {
                 return (stage.status === 1 || stage.status === 4);
             },
             isStarted: function (data) {
-                return ((payCol.readOnly.isNonZero(data.end_tp) || payCol.readOnly.isNonZero(data.tp)) && data.tp !== data.end_tp) || payCol.readOnly.isNonZero(data.pre_tp);
+                return ((payCol.readOnly.isNonZero(data.end_tp) || payCol.readOnly.isNonZero(data.tp)) && data.tp !== data.end_tp) || payCol.readOnly.isNonZero(data.pre_tp) || data.pre_used;
             },
             name: function (data) {
                 return payCol.readOnly.isSpecial(data); //所有人,轮到自己时,均可修改
@@ -211,7 +211,6 @@ $(document).ready(() => {
             setObjEnable($('#del'), !readOnly && select);
             setObjEnable($('#up-move'), !readOnly && select && select.ptype === 1 && dealPay.indexOf(select) > 3);
             setObjEnable($('#down-move'), !readOnly && select && select.ptype === 1 && dealPay.indexOf(select) < dealPay.length - 1);
-            setObjEnable($('#unlock'), !readOnly);
         },
         add: function () {
             const sheet = paySpread.getActiveSheet();

+ 0 - 1
app/router.js

@@ -150,7 +150,6 @@ module.exports = app => {
     app.post('/tender/:id/measure/stage/:order/detail/add-img', sessionAuth, tenderCheck, stageCheck, 'stageController.addCalcImage');
     app.post('/tender/:id/measure/stage/:order/detail/merge-img', sessionAuth, tenderCheck, stageCheck, 'stageController.mergeCalcImage');
     app.get('/tender/:id/measure/stage/:order/detail/done', sessionAuth, tenderCheck, stageCheck, 'stageController.doneDetail');
-    app.get('/tender/:id/measure/stage/:order/detail/unlock', sessionAuth, tenderCheck, stageCheck, 'stageController.unlockDetail');
     // 合同支付
     app.get('/tender/:id/measure/stage/:order/pay', sessionAuth, tenderCheck, stageCheck, 'stageController.pay');
     app.post('/tender/:id/measure/stage/:order/pay/detail', sessionAuth, tenderCheck, stageCheck, 'stageController.chapterDetail');

+ 4 - 12
app/view/stage/detail.ejs

@@ -13,15 +13,7 @@
             <div class="ml-auto">
                 <!--完成中间计量-->
                 <% if (!ctx.stage.readOnly) { %>
-                    <% if (ctx.stage.check_detail) { %>
-                        <a href="javascirpt: void(0);" data-toggle="modal" data-target="#done" class="btn btn-success btn-sm pull-right">完成本期中间计量</a>
-                    <% } else { %>
-                        <% if (ctx.stage.user_id = ctx.session.sessionUser.accountId) {%>
-                        <span class="text-success" id="locked-hint">请继续完成上报审批。如需修改计量,点击 <a href="/tender/<%- ctx.tender.id %>/measure/stage/<%- ctx.stage.order %>/detail/unlock">编辑</a></span>
-                        <% } else { %>
-                        <span class="text-success" id="locked-hint">已完成,请继续完成「上报审批」 <a href="/tender/<%- ctx.tender.id %>/measure/stage/<%- ctx.stage.order %>/detail/unlock">解锁编辑</a></span>
-                        <% } %>
-                    <% } %>
+                <a id="check-detail" href="javascirpt: void(0);" data-toggle="modal" data-target="#done" class="btn btn-success btn-sm pull-right" <% if (!ctx.stage.readOnly) { %>style="display: none"<% } %>>完成本期中间计量</a>
                 <% } %>
             </div>
         </div>
@@ -51,7 +43,7 @@
                 <div class="tab-content">
                     <div class="tab-pane active" id="zhongjian">
                         <div class="sjs-sh-1" style="overflow: auto;">
-                            <% if (!stage.readOnly && stage.check_detail) { %>
+                            <% if (!stage.readOnly) { %>
                             <div class="d-flex justify-content-end mt-1 mr-1">
                                 <a href="javascript: void(0);" class="btn btn-sm btn-outline-primary" id="edit-detail">编辑</a>
                                 <a href="javascript: void(0);" class="btn btn-sm btn-outline-success mr-1" id="save-detail" style="display: none;">保存</a>
@@ -89,7 +81,7 @@
                             <div class="form-group">
                                 <div class="d-flex justify-content-between my-3">
                                     <label>计算草图:</label>
-                                    <% if (!stage.readOnly && stage.check_detail) { %>
+                                    <% if (!stage.readOnly) { %>
                                     <a href="#edit-img" data-toggle="modal" data-target="#edit-img" id="modify-img">添加草图</a>
                                     <% } %>
                                 </div>
@@ -138,7 +130,7 @@
     </div>
 </div>
 <script>
-    const readOnly = <%- (stage.readOnly || !stage.check_detail) %>;
+    const readOnly = <%- (stage.readOnly) %>;
     const stage = JSON.parse('<%- JSON.stringify(ctx.stage) %>');
     const imType = JSON.parse('<%- JSON.stringify(imType) %>');
 </script>

+ 1 - 1
app/view/stage/detail_modal.ejs

@@ -139,7 +139,7 @@
             </div>
             <div class="modal-footer">
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
-                <a href="/tender/<%- ctx.tender.id %>/measure/stage/<%- ctx.stage.order %>/detail/done" class="btn btn-success" >确认完成</a>
+                <a id="done-detail" href="/tender/<%- ctx.tender.id %>/measure/stage/<%- ctx.stage.order %>/detail/done" class="btn btn-success" >确认完成</a>
             </div>
         </div>
     </div>

+ 0 - 4
app/view/stage/index.ejs

@@ -34,10 +34,6 @@
                 </div>
             </div>
             <div class="ml-auto">
-                <!--完成中间计量-->
-                <% if (!ctx.stage.check_detail && !ctx.stage.readOnly) { %>
-                <span class="text-success" id="locked-hint">已完成,请继续完成「上报审批」 <a href="/tender/<%- ctx.tender.id %>/measure/stage/<%- ctx.stage.order %>/detail/unlock">解锁编辑</a></span>
-                <% } %>
             </div>
         </div>
     </div>