Browse Source

Merge branch 'dev' of http://192.168.1.41:3000/maixinrong/Calculation into dev

Conflicts:
	app/controller/revise_controller.js
MaiXinRong 3 năm trước cách đây
mục cha
commit
f0574454e4

+ 48 - 12
app/controller/change_controller.js

@@ -934,11 +934,31 @@ module.exports = app => {
 
         async defaultBills(ctx) {
             try {
+                // 判断是否台账修订中,修订中则不获取changeLedger及changePos值
+                const lastRevise = await ctx.service.ledgerRevise.getLastestRevise(ctx.tender.id);
+                const data = JSON.parse(ctx.request.body.data);
                 const ledgerData = await ctx.service.ledger.getData(ctx.tender.id);
-                const changeLedgerData = await ctx.service.changeLedger.getData(ctx.tender.id);
+                const changeLedgerData = lastRevise && lastRevise.status !== audit.revise.status.checked && data.from !== 'revise' ? [] : await ctx.service.changeLedger.getData(ctx.tender.id);
                 const posData = await ctx.service.pos.getPosData({ tid: ctx.tender.id });
-                const changePosData = await ctx.service.changePos.getPosData({ tid: ctx.tender.id });
+                const changePosData = lastRevise && lastRevise.status !== audit.revise.status.checked && data.from !== 'revise' ? [] : await ctx.service.changePos.getPosData({ tid: ctx.tender.id });
                 const dealBills = await ctx.service.dealBills.getAllDataByCondition({ where: { tender_id: ctx.tender.id } });
+                // 标记ledger,搜索需求
+                if (changePosData.length > 0) {
+                    const cplIdList = ctx.helper._.uniq(ctx.helper._.map(changePosData, 'lid'));
+                    const cLIdList = ctx.helper._.map(changeLedgerData, 'id');
+                    const ledgerIdList = [];
+                    for (const cp of cplIdList) {
+                        if (ctx.helper._.indexOf(cLIdList, cp) === -1) {
+                            ledgerIdList.push(cp);
+                        }
+                    }
+                    if (ledgerIdList.length > 0) {
+                        for (const lid of ledgerIdList) {
+                            const data = ctx.helper._.find(ledgerData, { id: lid });
+                            data.cid = 1;
+                        }
+                    }
+                }
                 ctx.body = { err: 0, msg: '', data: { bills: ctx.helper._.concat(ledgerData, changeLedgerData), pos: ctx.helper._.concat(posData, changePosData), dealBills } };
             } catch (err) {
                 this.log(err);
@@ -1503,21 +1523,25 @@ module.exports = app => {
             try {
                 const change = ctx.change;
                 let edit = true;
-                if (change.status !== audit.flow.status.uncheck && change.status !== audit.flow.status.backnew) {
+                let changing = false;
+                if (change.status !== audit.flow.status.uncheck && change.status !== audit.flow.status.back && change.status !== audit.flow.status.revise) {
                     // throw '本条变更审批中或已完成,无法操作台账数据';
                     edit = false;
+                    changing = true;
                 }
+                let revising = false;
                 // 判断是否在修订中,是则无法操作本页
                 const lastRevise = await ctx.service.ledgerRevise.getLastestRevise(ctx.tender.id);
                 if (lastRevise && lastRevise.status !== audit.revise.status.checked) {
                     // throw '台账修订中,无法操作台账数据';
                     edit = false;
+                    revising = true;
                 }
-                const renderData = await this._getDefaultReviseInfoData(ctx, change);
-                // console.log(edit);
+                const renderData = await this._getDefaultReviseInfoData(ctx, change, edit);
                 // 台账只读、使用数据
-                // renderData.readOnly = edit;
-                renderData.readOnly = false;
+                renderData.readOnly = !edit;
+                renderData.changing = changing;
+                renderData.revising = revising;
                 await this.layout('change/revise.ejs', renderData, 'change/revise_modal.ejs');
             } catch (err) {
                 this.log(err);
@@ -1525,8 +1549,8 @@ module.exports = app => {
             }
         }
 
-        async _getDefaultReviseInfoData(ctx, change) {
-            const [ledgerSpread, posSpread] = this._getSpreadSetting(change);
+        async _getDefaultReviseInfoData(ctx, change, edit) {
+            const [ledgerSpread, posSpread] = this._getSpreadSetting(change, edit);
             const sjsRela = await this.ctx.service.project.getSjsRela(ctx.session.sessionProject.id);
             this.ctx.helper.refreshSpreadShow(sjsRela.ledgerCol, [ledgerSpread, posSpread]);
             const [stdBills, stdChapters] = await this.ctx.service.valuation.getValuationStdList(
@@ -1548,7 +1572,7 @@ module.exports = app => {
          * 获取SpreadSetting
          * @private
          */
-        _getSpreadSetting(change) {
+        _getSpreadSetting(change, edit) {
             const _ = this.app._;
             function removeFieldCols(setting, cols) {
                 _.remove(setting.cols, function(c) {
@@ -1562,7 +1586,11 @@ module.exports = app => {
             const ledger = JSON.parse(JSON.stringify(setting.ledger));
             const pos = setting.pos ? JSON.parse(JSON.stringify(setting.pos)) : spreadConst.blank;
 
-            if (change.status === audit.flow.status.checking || change.status === audit.flow.status.checked) {
+            // if (change.status === audit.flow.status.checking || change.status === audit.flow.status.checked) {
+            //     ledger.readOnly = true;
+            //     pos.readOnly = true;
+            // }
+            if (!edit) {
                 ledger.readOnly = true;
                 pos.readOnly = true;
             }
@@ -1581,7 +1609,15 @@ module.exports = app => {
                 const data = JSON.parse(ctx.request.body.data);
                 if (!data.postType || !data.postData) throw '数据错误';
                 const responseData = { err: 0, msg: '', data: {} };
-                console.log(data);
+                const change = ctx.change;
+                if (change.status !== audit.flow.status.uncheck && change.status !== audit.flow.status.back && change.status !== audit.flow.status.revise) {
+                    throw '该变更令正在审批中或已完成,无法操作新增部位数据';
+                }
+                // 判断是否在修订中,是则无法操作本页
+                const lastRevise = await ctx.service.ledgerRevise.getLastestRevise(ctx.tender.id);
+                if (lastRevise && lastRevise.status !== audit.revise.status.checked) {
+                    throw '台账修订中,无法操作新增部位数据';
+                }
 
                 // const revise = await this.checkRevise(ctx);
                 //

+ 1 - 1
app/controller/material_controller.js

@@ -154,7 +154,7 @@ module.exports = app => {
                 const material_highOrder = await ctx.service.material.count({
                     tid: ctx.tender.id,
                 });
-                if (materialInfo === undefined || ctx.session.sessionUser.accountId !== materialInfo.user_id || material_highOrder !== materialInfo.order) {
+                if (materialInfo === undefined || !ctx.session.sessionUser.is_admin || material_highOrder !== materialInfo.order) {
                     throw '您无权删除材料调差期';
                 }
                 const result = await ctx.service.material.deleteMaterial(material_id);

+ 37 - 4
app/controller/revise_controller.js

@@ -50,7 +50,37 @@ module.exports = app => {
                 (!revise || !revise.valid || revise.status === audit.revise.status.checked);
             const addValid = addVisible && (!lastStage || lastStage.status === audit.stage.status.uncheck ||
                 lastStage.status === audit.stage.status.checkNo || lastStage.status === audit.stage.status.checked);
-            return [addVisible, addValid];
+            let changeValid = true;
+            // 判断变更是否存在审批中,有则可能无法新增修订
+            const changeList = await ctx.service.change.getAllDataByCondition({
+                where: {
+                    tid: ctx.tender.id,
+                    status: [audit.flow.status.checking, audit.flow.status.backnew],
+                },
+            });
+            if (changeList.length > 0) {
+                // 判断是否已存在新增部位,有则可能无法新增修订
+                const changeLedgerList = await ctx.service.changeLedger.getAllDataByCondition({ where: { tender_id: ctx.tender.id, is_leaf: 1 } });
+                const changePosList = await ctx.service.changePos.getAllDataByCondition({ where: { tid: ctx.tender.id } });
+                // 判断变更是否已添加新增部位,有则可能无法新增修订
+                if (changeLedgerList.length > 0 || changePosList.length > 0) {
+                    // 判断审批中的变更令是否有调用了新增部位,有则无法新增修订,都没有则可新增修订
+                    for (const c of changeList) {
+                        const caList = await ctx.service.changeAuditList.getList(c.cid);
+                        const gclIdList = ctx.helper._.uniq(ctx.helper._.map(caList, 'gcl_id'));
+                        for (const gcl of gclIdList) {
+                            if (gcl && (ctx.helper._.findIndex(changeLedgerList, { id: gcl }) !== -1 || ctx.helper._.findIndex(changePosList, { lid: gcl }) !== -1)) {
+                                changeValid = false;
+                                break;
+                            }
+                        }
+                        if (!changeValid) {
+                            break;
+                        }
+                    }
+                }
+            }
+            return [addVisible, addValid, changeValid];
         }
 
         /**
@@ -82,7 +112,7 @@ module.exports = app => {
                         lr.curAuditor = await ctx.service.reviseAudit.getAuditorByStatus(lr.id, lr.status, lr.times);
                     }
                 }
-                const [addVisible, addValid] = await this._getAddReviseValid(ctx);
+                const [addVisible, addValid, changeValid] = await this._getAddReviseValid(ctx);
                 const [stdBills, stdChapters] = await this.ctx.service.valuation.getValuationStdList(
                     ctx.tender.data.valuation, ctx.tender.data.measure_type);
                 const renderData = {
@@ -97,6 +127,7 @@ module.exports = app => {
                     ledgerRevise,
                     addVisible,
                     addValid,
+                    changeValid,
                     auditConst: audit.revise,
                     auditConst2: JSON.stringify(audit.revise),
                     stdBills,
@@ -150,12 +181,14 @@ module.exports = app => {
          */
         async add(ctx) {
             try {
-                const addValid = await this._getAddReviseValid(ctx);
+                const [addValid, changeValid] = await this._getAddReviseValid(ctx);
                 if (!addValid) {
                     throw '无法新增修订';
                 }
+                if (!changeValid) {
+                    throw '台账修订会影响审批中的变更令(包含新增部位),请审批完成后再创建台账修订';
+                }
                 const revise = await ctx.service.ledgerRevise.add(ctx.tender.id, ctx.session.sessionUser.accountId);
-
                 ctx.redirect('/tender/' + ctx.tender.id + '/revise/info');
             } catch (err) {
                 this.log(err);

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

@@ -1148,9 +1148,9 @@ function tableDataRemake(changeListData) {
         }
         if(removeList.length > 0) {
             _.pullAll(changeList, removeList);
-            // postData(window.location.pathname + '/save', { type:'remove_list', updateData: removeList }, function (result) {
-            // }, function () {
-            // });
+            postData(window.location.pathname + '/save', { type:'remove_list', updateData: removeList }, function (result) {
+            }, function () {
+            });
         }
     }
 }

+ 23 - 9
app/public/js/change_revise.js

@@ -76,7 +76,7 @@ $(document).ready(() => {
                 return !readOnly && !data.ccid;
             }
         }
-    }
+    };
     // 初始化spread
     const billsSpread = SpreadJsObj.createNewSpread($('#bills-spread')[0]);
     const billsSheet = billsSpread.getActiveSheet();
@@ -88,12 +88,12 @@ $(document).ready(() => {
                 indent: 16,
                 getColor: function (index, data) {
                     if (!data) return;
-                    if(!data.ccid) return;
-                    return '#007bff';
+                    if(!data.ccid && !data.cid) return;
+                    return '#dc3545';
                 }
             },
         },
-    ],
+    ];
     sjsSettingObj.setFxTreeStyle(billsSpreadSetting, sjsSettingObj.FxTreeStyle.jz);
     if (thousandth) sjsSettingObj.setTpThousandthFormat(billsSpreadSetting);
     SpreadJsObj.initSpreadSettingEvents(billsSpreadSetting, billsCol);
@@ -109,11 +109,11 @@ $(document).ready(() => {
                 getColor: function (index, data) {
                     if (!data) return;
                     if(!data.ccid) return;
-                    return '#007bff';
+                    return '#dc3545';
                 }
             },
         },
-    ],
+    ];
     sjsSettingObj.setGridSelectStyle(posSpreadSetting);
     if (thousandth) sjsSettingObj.setTpThousandthFormat(posSpreadSetting);
     SpreadJsObj.initSpreadSettingEvents(posSpreadSetting, posCol);
@@ -336,7 +336,7 @@ $(document).ready(() => {
                 && first.level > 2 && ((!posRange || posRange.length === 0) || tree.isLastSibling(last)) && upPower && first.ccid);
             const preNodePosRange = preNode ? pos.getLedgerPos(preNode.id) : [];
             setObjEnable($('a[name=base-opr][type=down-level]'), valid && first && sameParent
-                && first.level > 1 && preNode && (!preNodePosRange || preNodePosRange.length === 0) && !preNode.used && first.ccid);
+                && first.level > 1 && preNode && preNode.ccid && (!preNodePosRange || preNodePosRange.length === 0) && !preNode.used && first.ccid);
             setObjEnable($('#cut'), valid);
             setObjEnable($('#paste'), valid);
         },
@@ -1877,7 +1877,7 @@ $(document).ready(() => {
 
     // 加载清单&计量单元数据
     const preUrl = window.location.pathname.split('/').slice(0, 4).join('/');
-    postData(preUrl + '/defaultBills', {}, function (result) {
+    postData(preUrl + '/defaultBills', { from: 'revise' }, function (result) {
         billsTree.loadDatas(result.bills);
         pos.loadDatas(result.pos);
         treeCalc.calculateAll(billsTree);
@@ -2454,6 +2454,8 @@ $(document).ready(() => {
                     searchLedger = $.billsSearch({
                         selector: '#search',
                         searchSpread: billsSpread,
+                        searchOver: true,
+                        searchEmpty: true,
                         resultSpreadSetting: {
                             cols: [
                                 {title: '项目节编号', field: 'code', hAlign: 0, width: 90, formatter: '@', readOnly: true},
@@ -2474,7 +2476,19 @@ $(document).ready(() => {
                         },
                         afterLocated: function () {
                             posSpreadObj.loadCurPosData();
-                        }
+                        },
+                        customSearch: [
+                            {
+                                key: 'revise', title: '新增部位', valid: true,
+                                check: function (node) {
+                                    if (node.ccid || node.cid) {
+                                        return true;
+                                    } else {
+                                        return false;
+                                    }
+                                }
+                            }
+                        ],
                     });
                 }
                 searchLedger.spread.refresh();

+ 2 - 2
app/public/js/shares/cs_tools.js

@@ -487,7 +487,7 @@ const showSelectTab = function(select, spread, afterShow) {
         const obj = $(setting.selector);
         let filter = [];
         if (setting.searchOver || setting.searchEmpty) {
-            filter.push('<select class="form-control form-control-sm" id="search-filter">');
+            filter.push('<select class="input-group-text" id="search-filter">');
             filter.push('<option value="">台账</option>');
             if (setting.customSearch) {
                 for (const cs of setting.customSearch) {
@@ -558,7 +558,7 @@ const showSelectTab = function(select, spread, afterShow) {
                     if (!keyword ||
                         (node.code && node.code.indexOf(keyword) > -1) ||
                         (node.b_code && node.b_code.indexOf(keyword) > -1) ||
-                        (node.name && node.name.indexOf(keyword) > -1)
+                        (node.name && node.name.indexOf(keyword) > -1) ||
                         (!_.isNaN(keyNum) && checkZero(ZhCalc.sub(keyNum, node.quantity)))
                     ) {
                         const data = JSON.parse(JSON.stringify(node));

+ 14 - 9
app/service/change_ledger.js

@@ -460,7 +460,7 @@ module.exports = app => {
                     if (count === 1) {
                         const updateParent = {id: parent.id };
                         updateParent[this.setting.isLeaf] = true;
-                        this.newBills ? await this.transaction.update(this.tableName, updateParent) : await this.transaction.update(this.ctx.service.ledger.tableName, updateParent);
+                        await this.transaction.update(this.tableName, updateParent);
                     }
                 }
                 // 选中节点--全部后节点 order--
@@ -526,7 +526,7 @@ module.exports = app => {
                 if (parent && childCount === count) {
                     const updateParent = {id: parent.id };
                     updateParent[this.setting.isLeaf] = true;
-                    newBills ? await this.transaction.update(this.tableName, updateParent) : await this.transaction.update(this.ctx.service.ledger.tableName, updateParent);
+                    await this.transaction.update(this.tableName, updateParent);
                 }
                 // 选中节点--全部后节点 order--
                 await this._updateChildrenOrder(this.tableName, mid, first[this.setting.pid], first[this.setting.order] + count, -count);
@@ -1081,7 +1081,6 @@ module.exports = app => {
             if (!count) count = 1;
             this.newBills = false;
             const selects = await this.getDataByKidAndCount(mid, kid, count);
-            // const newBills = this.newBills;
             if (!selects) throw '降级节点数据错误';
             const first = selects[0], last = selects[count - 1];
             const pre = await this.getDataByParentAndOrder(mid, first[this.setting.pid], first[this.setting.order] - 1);
@@ -1112,11 +1111,15 @@ module.exports = app => {
                     await this._syncDownlevelChildren(s, pre);
                 }
                 // 选中节点--前兄弟节点 is_leaf应为false, 清空计算相关字段
-                const updateData2 = { id: pre.id };
-                updateData2[this.setting.isLeaf] = false;
-                this.clearParentingData(updateData2);
-                await this.transaction.update(this.tableName, updateData2);
-                await this._deleteChangeAuditListData(mid, [pre]);
+                if (pre.ccid) {
+                    const updateData2 = { id: pre.id };
+                    updateData2[this.setting.isLeaf] = false;
+                    this.clearParentingData(updateData2);
+                    await this.transaction.update(this.tableName, updateData2);
+                    await this._deleteChangeAuditListData(mid, [pre]);
+                } else if (!pre.ccid && pre.is_leaf === 1) {
+                    throw '原台账节点为子项时不能降级成为它的子项';
+                }
                 await this.transaction.commit();
                 this.transaction = null;
             } catch (err) {
@@ -1346,7 +1349,7 @@ module.exports = app => {
             this.transaction = await this.db.beginTransaction();
             try {
                 const result = await this.transaction.insert(this.tableName, data);
-                if (children.length === 0 && this.newBills) {
+                if (children.length === 0 && selectData.ccid) {
                     await this.transaction.update(this.tableName,
                         {
                             is_leaf: false,
@@ -1354,6 +1357,8 @@ module.exports = app => {
                             quantity: null, unit_price: null, total_price: null, deal_qty: null, deal_tp: null
                         },
                         { where: {tender_id: tenderId, ledger_id: selectData.ledger_id} });
+                } else if (!selectData.ccid && children.length === 0) {
+                    throw '原台账节点为子项时不能添加它的子项';
                 }
                 await this.transaction.commit();
             } catch (err) {

+ 16 - 2
app/service/change_pos.js

@@ -59,7 +59,15 @@ module.exports = app => {
                 await this.ctx.service.changeAuditList.deleteDataByRevise(transaction, tid, [data.lid], 'gcl_id', '');
                 await transaction.insert(this.tableName, data);
                 await transaction.commit();
-                return { pos: data };
+                const returnData = { pos: data };
+                const bills = await this.ctx.service.ledger.getDataById(data.lid);
+                if (bills) {
+                    bills.cid = 1;
+                    returnData.ledger = {
+                        update: [bills],
+                    };
+                }
+                return returnData;
             } catch (err) {
                 await transaction.rollback();
                 throw err;
@@ -231,16 +239,21 @@ module.exports = app => {
             let bills = await this.ctx.service.changeLedger.getDataById(pos[0].lid);
             let newBills = false;
             let billsPos = await this.getAllDataByCondition({ where: { tid: tid, lid: pos[0].lid } });
+            let cid = 1;
             if (bills) {
                 newBills = true;
             } else {
                 bills = await this.ctx.service.ledger.getDataById(pos[0].lid);
                 const posData = await this.ctx.service.pos.getAllDataByCondition({ where: { tid: tid, lid: pos[0].lid } });
+                if (billsPos.length === data.length) {
+                    cid = null;
+                }
                 billsPos = this._.concat(posData, billsPos);
             }
             // const bills = await this.ctx.service.reviseBills.getDataById(pos[0].lid);
             // const billsPos = await this.getAllDataByCondition({ where: {tid: tid, lid: bills.id} });
             const updateBills = {id: bills.id, sgfh_qty: null, sjcl_qty: null, qtcl_qty: null, quantity: null};
+            updateBills.cid = cid;
             for (const bp of billsPos) {
                 if (data.indexOf(bp.id) >= 0) continue;
                 updateBills.sgfh_qty = this.ctx.helper.add(updateBills.sgfh_qty, bp.sgfh_qty);
@@ -340,6 +353,7 @@ module.exports = app => {
                     if (d.id) {
                         await transaction.update(this.tableName, d);
                     } else {
+                        updateBills.cid = 1;
                         await this._insertPosData(transaction, d, tid, cid);
                     }
                 }
@@ -359,7 +373,7 @@ module.exports = app => {
                 throw err;
             }
             result.pos = data;
-            result.ledger.update = needUpdateBills ? [updateBills] : [];
+            result.ledger.update = needUpdateBills ? [updateBills] : updateBills.cid && updateBills.cid === 1 ? [{ id: bills.id, ledger_id: bills.ledger_id, cid: 1 }] : [];
             return result;
         }
 

+ 37 - 0
app/view/change/revise_modal.ejs

@@ -35,6 +35,43 @@
         </div>
     </div>
 </div>
+<% if (revising) { %>
+    <!--正在修订提示-->
+    <div class="modal fade" id="unedit" data-backdrop="static">
+        <div class="modal-dialog " role="document" >
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h5 class="modal-title">提示</h5>
+                </div>
+                <div class="modal-body">
+                    <h5>台账正在进行修订,新增部位页无法进行任何操作。</h5>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-secondary" data-dismiss="modal">好的</button>
+                </div>
+            </div>
+        </div>
+    </div>
+    <script type="text/javascript">$('#unedit').modal('show');</script>
+<% } else if (changing && !revising) { %>
+    <!--正在修订提示-->
+    <div class="modal fade" id="unedit2" data-backdrop="static">
+        <div class="modal-dialog " role="document" >
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h5 class="modal-title">提示</h5>
+                </div>
+                <div class="modal-body">
+                    <h5>该变更令正在审批中或已完成,新增部位页无法进行任何操作。</h5>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-secondary" data-dismiss="modal">好的</button>
+                </div>
+            </div>
+        </div>
+    </div>
+    <script type="text/javascript">$('#unedit2').modal('show');</script>
+<% } %>
 <% include ../shares/delete_hint_modal.ejs %>
 <% include ../shares/check_data_modal.ejs %>
 <% include ../shares/check_modal2.ejs %>

+ 1 - 1
app/view/material/index.ejs

@@ -68,7 +68,7 @@
                                 <% } else { %>
                                     <span class="<%- auditConst.auditProgressClass[m.status] %>"><%- auditConst.auditProgress[m.status] %></span>
                                 <% } %>
-                                <% if (m.user_id === ctx.session.sessionUser.accountId && m.order === materials.length) { %>
+                                <% if (ctx.session.sessionUser.is_admin && m.order === materials.length) { %>
                                     <a href="#del-qi" class="btn btn-outline-danger btn-sm ml-1" data-toggle="modal" data-target="#del-qi">删除</a>
                                 <% } %>
                             </td>

+ 5 - 3
app/view/revise/index.ejs

@@ -16,10 +16,12 @@
             <div class="ml-auto">
                 <% if (addVisible) { %>
                 <div class="d-inline-block">
-                    <% if (addValid) { %>
+                    <% if (addValid && changeValid) { %>
                     <a href="#add-bg" data-toggle="modal" data-target="#add-bg" class="btn btn-primary btn-sm">新建修订</a>
-                    <% } else { %>
-                    <a href="#add-bg-hint" data-toggle="modal" data-target="#add-bg-hint" class="btn btn-primary btn-sm">新建修订</a>
+                    <% } else if (!addValid && changeValid) { %>
+                        <a href="#add-bg-hint" data-toggle="modal" data-target="#add-bg-hint" class="btn btn-primary btn-sm">新建修订</a>
+                    <% } else if (addValid && !changeValid) { %>
+                    <a href="#add-bg-hint2" data-toggle="modal" data-target="#add-bg-hint2" class="btn btn-primary btn-sm">新建修订</a>
                     <% } %>
                 </div>
                 <% } %>

+ 15 - 0
app/view/revise/modal.ejs

@@ -31,6 +31,21 @@
         </div>
     </div>
 </div>
+<div class="modal fade" id="add-bg-hint2" data-backdrop="static">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title">新增修订</h5>
+            </div>
+            <div class="modal-body">
+                <h6>修订会影响审批中的变更令(包含新增部位),请审批完成后再创建台账修订。</h6>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">关闭</button>
+            </div>
+        </div>
+    </div>
+</div>
 <!--审批流程/结果-->
 <div class="modal fade" id="sp-list" data-backdrop="static">
     <div class="modal-dialog modal-lg" role="document">