소스 검색

变更改版提交

ellisran 5 달 전
부모
커밋
144555a937

+ 29 - 1
app/controller/change_controller.js

@@ -399,6 +399,7 @@ module.exports = app => {
                 const whiteList = this.ctx.app.config.multipart.whitelist;
                 await this._getChangeAuditViewData(ctx);
                 const tender = ctx.tender;
+                const tenderData = await ctx.service.tender.getDataById(tender.id);
                 const change = ctx.change;
 
                 // 获取附件列表
@@ -485,6 +486,7 @@ module.exports = app => {
                     settlePos,
                     removeSettleNum,
                     deleteFilePermission,
+                    changeMode: tenderData.c_mode,
                 };
                 // 获取是否已存在调用变更令
                 let changeUsedData = await ctx.service.stageChange.getAllFinalUsedData(ctx.tender.id, change.cid);
@@ -506,6 +508,7 @@ module.exports = app => {
                 renderData.stageChangeNum = this.ctx.helper.sum(changeUsedData.map(x => { return Math.abs(x.qty); }));
                 renderData.changeLedgerList = await ctx.service.changeLedger.getAllDataByCondition({ where: { tender_id: ctx.tender.id } });
                 renderData.changePosList = await ctx.service.changePos.getAllDataByCondition({ where: { tid: ctx.tender.id } });
+                renderData.changeUnits = changeConst.units;
                 if (!change.readOnly || ctx.session.sessionUser.is_admin) {
                     // 获取所有项目参与者
                     const accountList = await ctx.service.projectAccount.getAllDataByCondition({
@@ -517,7 +520,6 @@ module.exports = app => {
                         const groupList = accountList.filter(item1 => item1.company === item.name);
                         return { groupName: item.name, groupList };
                     });
-                    renderData.changeUnits = changeConst.units;
                     // 获取公司列表
                     const companyList = await ctx.service.changeCompany.getAllDataByCondition({ where: { tid: ctx.tender.id } });
                     renderData.companyList = companyList;
@@ -757,6 +759,32 @@ module.exports = app => {
                             }
                         }
                         break;
+                    case 'change_mode':
+                        await ctx.service.tender.defaultUpdate({
+                            id: ctx.tender.id,
+                            c_mode: data.updateData ? 1 : 0,
+                        });
+                        const changeList2 = await ctx.service.changeAuditList.getList(ctx.change.cid);
+                        if (ctx.change.readOnly) {
+                            const auditList2 = await ctx.service.changeAudit.getListGroupByTimes(ctx.change.cid, ctx.change.times);
+                            for (const cl of changeList2) {
+                                const audit_amount = cl.audit_amount !== null && cl.audit_amount !== '' ? cl.audit_amount.split(',') : '';
+                                // 清单表页赋值
+                                for (const au in ctx.change.userGroups) {
+                                    if (ctx.change.userGroups[au][0].audit_order !== 0) {
+                                        cl['audit_amount_' + ctx.change.userGroups[au][0].audit_order] =
+                                            (ctx.change.userGroups[au][0].audit_type === auditType.key.and &&
+                                                ctx.helper._.findIndex(ctx.change.userGroups[au], { status: audit.change.status.checking }) !== -1 &&
+                                                ctx.helper._.findIndex(ctx.change.userGroups[au], { uid: ctx.session.sessionUser.accountId, status: audit.change.status.checked }) !== -1) ||
+                                            (ctx.change.shenpiPower && ctx.helper._.findIndex(ctx.change.userGroups[au], { uid: ctx.session.sessionUser.accountId }) !== -1) ?
+                                                cl.spamount : (audit_amount[au - 1] !== undefined ? parseFloat(audit_amount[au - 1]) : null);
+                                    }
+                                }
+                            }
+                        }
+                        // 取所有工料表
+                        responseData.data = changeList2;
+                        break;
                     default: throw '参数有误';
                 }
 

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 5553 - 138
app/public/js/change_information.js


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

@@ -955,6 +955,8 @@ $(document).ready(() => {
     postData(preUrl + '/defaultBills', {}, function (result) {
         gclGatherModel.loadLedgerData(result.bills);
         gclGatherModel.loadPosData(result.pos);
+        ledgerList = result.bills;
+        posList = result.pos;
 
         gclGatherData = gclGatherModel.gatherGclData();
         gclGatherData = _.filter(gclGatherData, function (item) {
@@ -998,6 +1000,7 @@ $(document).ready(() => {
             });
         }
 
+        // 默认模式
         SpreadJsObj.initSpreadSettingEvents(changeSpreadSetting, changeCol);
         SpreadJsObj.initSheet(changeSpreadSheet, changeSpreadSetting);
         SpreadJsObj.loadSheetData(changeSpreadSheet, SpreadJsObj.DataType.Data, changeList);

+ 59 - 16
app/service/change_audit_list.js

@@ -143,7 +143,7 @@ module.exports = app => {
                         // order以下的清单+1
                         await this._syncOrder(transaction, this.ctx.change.cid, order, '+');
                     } else {
-                        order = await this.count({ cid: this.ctx.change.cid });
+                        order = await this._getMaxOrder(this.ctx.change.cid);
                         order = order ? order + 1 : 1;
                     }
                 }
@@ -192,7 +192,7 @@ module.exports = app => {
                         // order以下的清单+1
                         await this._syncOrder(transaction, this.ctx.change.cid, order, '+', num);
                     } else {
-                        order = await this.count({ cid: this.ctx.change.cid });
+                        order = await this._getMaxOrder(this.ctx.change.cid);
                         order = order ? order + 1 : 1;
                     }
                 }
@@ -245,6 +245,13 @@ module.exports = app => {
             }
         }
 
+        async _getMaxOrder(cid) {
+            const sql = 'SELECT MAX(`order`) AS `order` FROM ?? WHERE cid = ?';
+            const sqlParams = [this.tableName, cid];
+            const result = await this.db.queryOne(sql, sqlParams);
+            return result ? result.order : 0;
+        }
+
         /**
          * 删除变更清单
          * @param {int} id 清单id
@@ -259,8 +266,8 @@ module.exports = app => {
                 // 判断是否可删
                 await transaction.delete(this.tableName, { id: data.ids });
                 // // order以下的清单-1
-                if (this.ctx.change.order_by) {
-                    await this._syncOrder(transaction, this.ctx.change.cid, data.postData, '-', data.ids.length);
+                if (this.ctx.change.order_by && data.postData) {
+                    await this._syncOrder(transaction, this.ctx.change.cid, data.postData, '-', data.delLength ? data.delLength : data.ids.length);
                 }
                 // 重新算变更令总额
                 await this.calcCamountSum(transaction);
@@ -481,7 +488,7 @@ module.exports = app => {
             // const sqlParam = [this.tableName, this.change.cid];
             // const tp = await transaction.queryOne(sql, sqlParam);
             // 防止小数位不精确,采用取值计算
-            const sql = 'SELECT unit_price, spamount, is_valuation FROM ?? WHERE cid = ?';
+            const sql = 'SELECT unit_price, spamount, is_valuation, gcl_id, unit FROM ?? WHERE cid = ?';
             const sqlParam = [this.tableName, this.ctx.change.cid];
             const changeList = await transaction.query(sql, sqlParam);
             let total_price = 0;
@@ -490,18 +497,53 @@ module.exports = app => {
             let valuation_tp = 0;
             let unvaluation_tp = 0;
             const tp_decimal = this.ctx.change.tp_decimal ? this.ctx.change.tp_decimal : this.ctx.tender.info.decimal.tp;
-            for (const cl of changeList) {
-                const price = this.ctx.helper.mul(cl.unit_price, cl.spamount, tp_decimal);
-                total_price = this.ctx.helper.accAdd(total_price, price);
-                if (price >= 0) {
-                    positive_tp = this.ctx.helper.accAdd(positive_tp, price);
-                } else {
-                    negative_tp = this.ctx.helper.accAdd(negative_tp, price);
-                }
-                if (cl.is_valuation) {
-                    valuation_tp = this.ctx.helper.accAdd(valuation_tp, price);
+            const up_decimal = this.ctx.change.up_decimal ? this.ctx.change.up_decimal : this.ctx.tender.info.decimal.up;
+            const gclChangeList = this._.uniq(this._.map(changeList, 'gcl_id'));
+            for (const g of gclChangeList) {
+                if (g) {
+                    const list = this._.filter(changeList, { gcl_id: g });
+                    let spamount = 0;
+                    let valuation_amount = 0;
+                    let unvaluation_amount = 0;
+                    let unitPrice = 0;
+                    for (const cl of list) {
+                        if (cl.spamount) {
+                            spamount = this.ctx.helper.accAdd(spamount, cl.spamount);
+                            unitPrice = cl.unit_price;
+                            if (cl.is_valuation) {
+                                valuation_amount = this.ctx.helper.accAdd(valuation_amount, cl.spamount);
+                            } else {
+                                unvaluation_amount = this.ctx.helper.accAdd(unvaluation_amount, cl.spamount);
+                            }
+                        }
+                    }
+                    const price = this.ctx.helper.mul(spamount, this.ctx.helper.round(unitPrice, up_decimal), tp_decimal);
+                    const valuation_price = this.ctx.helper.mul(valuation_amount, this.ctx.helper.round(unitPrice, up_decimal), tp_decimal) || 0;
+                    const unvaluation_price = this.ctx.helper.mul(unvaluation_amount, this.ctx.helper.round(unitPrice, up_decimal), tp_decimal) || 0;
+                    valuation_tp = this.ctx.helper.accAdd(valuation_tp, valuation_price);
+                    unvaluation_tp = this.ctx.helper.accAdd(unvaluation_tp, unvaluation_price);
+                    total_price = this.ctx.helper.accAdd(total_price, price);
+                    if (price >= 0) {
+                        positive_tp = this.ctx.helper.accAdd(positive_tp, price);
+                    } else {
+                        negative_tp = this.ctx.helper.accAdd(negative_tp, price);
+                    }
                 } else {
-                    unvaluation_tp = this.ctx.helper.accAdd(unvaluation_tp, price);
+                    const list = this._.filter(changeList, { gcl_id: g });
+                    for (const cl of list) {
+                        const price = this.ctx.helper.mul(this.ctx.helper.round(cl.unit_price, up_decimal), cl.spamount, tp_decimal);
+                        total_price = this.ctx.helper.accAdd(total_price, price);
+                        if (price >= 0) {
+                            positive_tp = this.ctx.helper.accAdd(positive_tp, price);
+                        } else {
+                            negative_tp = this.ctx.helper.accAdd(negative_tp, price);
+                        }
+                        if (cl.is_valuation) {
+                            valuation_tp = this.ctx.helper.accAdd(valuation_tp, price);
+                        } else {
+                            unvaluation_tp = this.ctx.helper.accAdd(unvaluation_tp, price);
+                        }
+                    }
                 }
             }
             const updateData = {
@@ -513,6 +555,7 @@ module.exports = app => {
             };
             if (updateTpDecimal) {
                 updateData.tp_decimal = tp_decimal;
+                updateData.up_decimal = up_decimal;
             }
             const options = {
                 where: {

+ 117 - 88
app/view/change/information.ejs

@@ -390,87 +390,129 @@
             <div class="c-body" id="right-view" style="width: 66.67%">
                 <div class="resize-x" id="right-spr" r-Type="width" div1="#left-view" div2="#right-view" title="调整大小" a-type="percent"><!--调整左右高度条--></div>
                 <!--上半部分-->
-                <div class="sjs-height-1 row w-100 sub-content">
-                    <div class="c-body" style="width: 100%">
-                        <div class="m-1" id="list-tab">
-                            <% if (!change.readOnly) { %>
-                                <div class="d-inline-block ml-1">
-<!--                                    <a href="#addlist" data-toggle="modal" class="btn btn-sm btn-light text-primary" id="open-list-modal" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="添加清单"><i class="fa fa-plus" aria-hidden="true"></i> <span class="order_text"><% if (change.order_by === 0) { %>添加<% } else { %>插入<% } %></span>台账清单</a>-->
-                                    <a href="javascript:void(0);" id="set-site-btn" class="btn btn-sm btn-light text-primary" data-placement="bottom" title="" data-original-title="添加清单"><i class="fa fa-plus" aria-hidden="true"></i> <span class="order_text"><% if (change.order_by === 0) { %>添加<% } else { %>插入<% } %></span>台账清单</a>
-                                </div>
-                                <% if (ctx.session.sessionProject.page_show.openChangeWhiteList) { %>
-                                    <div class="d-inline-block mr-1">
-                                        <a href="javascript:void(0);" class="btn btn-sm btn-light text-primary" id="add-white-btn" data-original-title="添加清单"><i class="fa fa-plus" aria-hidden="true"></i> <span class="order_text"><% if (change.order_by === 0) { %>添加<% } else { %>插入<% } %></span>空白清单</a>
+                <div class="w-100 sub-content">
+                    <div class="sjs-height-1">
+                        <div class="c-body" style="width: 100%">
+                            <div class="m-1" id="list-tab">
+                                <% if (!change.readOnly) { %>
+                                    <div class="d-inline-block ml-1">
+                                        <!--                                    <a href="#addlist" data-toggle="modal" class="btn btn-sm btn-light text-primary" id="open-list-modal" data-toggle="tooltip" data-placement="bottom" title="" data-original-title="添加清单"><i class="fa fa-plus" aria-hidden="true"></i> <span class="order_text"><% if (change.order_by === 0) { %>添加<% } else { %>插入<% } %></span>台账清单</a>-->
+                                        <a href="javascript:void(0);" id="set-site-btn" class="btn btn-sm btn-light text-primary" data-placement="bottom" title="" data-original-title="添加清单"><i class="fa fa-plus" aria-hidden="true"></i> <span class="order_text"><% if (change.order_by === 0) { %>添加<% } else { %>插入<% } %></span>台账清单</a>
+                                    </div>
+                                    <% if (ctx.session.sessionProject.page_show.openChangeWhiteList) { %>
+                                        <div class="d-inline-block mr-1 judge-hide">
+                                            <a href="javascript:void(0);" class="btn btn-sm btn-light text-primary" id="add-white-btn" data-original-title="添加清单"><i class="fa fa-plus" aria-hidden="true"></i> <span class="order_text"><% if (change.order_by === 0) { %>添加<% } else { %>插入<% } %></span>空白清单</a>
+                                        </div>
+                                    <% } %>
+                                    <div class="d-inline-block mr-2 judge-hide">
+                                        <button type="button" class="btn btn-sm btn-light text-primary dropdown-toggle" data-toggle="dropdown" id="bpaixu">清单排序:<% if (change.order_by === 0) { %>清单编号<% } else { %>添加顺序<% } %></button>
+                                        <div class="dropdown-menu" aria-labelledby="bpaixu">
+                                            <ul class="list-unstyled px-3 mb-0">
+                                                <li class="mb-2">
+                                                    <div class="custom-control custom-radio">
+                                                        <input type="radio" class="custom-control-input" name="paixu" id="order_0" value="0" <% if (change.order_by === 0) { %>checked<% } %>>
+                                                        <label class="custom-control-label" for="order_0">清单编号</label>
+                                                    </div>
+                                                </li>
+                                                <li class="mb-2">
+                                                    <div class="custom-control custom-radio">
+                                                        <input type="radio" class="custom-control-input" name="paixu" id="order_1" value="1" <% if (change.order_by === 1) { %>checked<% } %>>
+                                                        <label class="custom-control-label" for="order_1">添加顺序</label>
+                                                    </div>
+                                                </li>
+                                            </ul>
+                                        </div>
+                                    </div>
+                                    <div class="d-inline-block mr-2 judge-hide" id="upAndMoveBtn" <% if (change.order_by === 0) { %>style="display: none!important;" <% } %>>
+                                        <a href="javascript:void(0)" id="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)" id="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>
                                     </div>
                                 <% } %>
                                 <div class="d-inline-block mr-2">
-                                    <button type="button" class="btn btn-sm btn-light text-primary dropdown-toggle" data-toggle="dropdown" id="bpaixu">清单排序:<% if (change.order_by === 0) { %>清单编号<% } else { %>添加顺序<% } %></button>
-                                    <div class="dropdown-menu" aria-labelledby="bpaixu">
-                                        <ul class="list-unstyled px-3 mb-0">
-                                            <li class="mb-2">
-                                                <div class="custom-control custom-radio">
-                                                    <input type="radio" class="custom-control-input" name="paixu" id="order_0" value="0" <% if (change.order_by === 0) { %>checked<% } %>>
-                                                    <label class="custom-control-label" for="order_0">清单编号</label>
-                                                </div>
-                                            </li>
-                                            <li class="mb-2">
-                                                <div class="custom-control custom-radio">
-                                                    <input type="radio" class="custom-control-input" name="paixu" id="order_1" value="1" <% if (change.order_by === 1) { %>checked<% } %>>
-                                                    <label class="custom-control-label" for="order_1">添加顺序</label>
-                                                </div>
-                                            </li>
-                                        </ul>
+                                    <div class="custom-control custom-checkbox">
+                                        <input type="checkbox" class="custom-control-input change-detail-checkbox" id="customCheck1">
+                                        <label class="custom-control-label" for="customCheck1">变更详情</label>
                                     </div>
                                 </div>
-                                <div class="d-inline-block mr-2" id="upAndMoveBtn" <% if (change.order_by === 0) { %>style="display: none!important;" <% } %>>
-                                    <a href="javascript:void(0)" id="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)" id="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>
-                                </div>
-                            <% } %>
-                            <div class="d-inline-block mr-2">
-                                <div class="custom-control custom-checkbox">
-                                    <input type="checkbox" class="custom-control-input change-detail-checkbox" id="customCheck1">
-                                    <label class="custom-control-label" for="customCheck1">变更详情</label>
-                                </div>
-                            </div>
-                            <% if (change.readOnly && !change.shenpiPower) { %>
-                                <div class="d-inline-block mr-2">
-                                    <div class="custom-control custom-checkbox">
-                                        <input type="checkbox" class="custom-control-input" id="show-table-detail">
-                                        <label class="custom-control-label" for="show-table-detail">审批过程</label>
+                                <% if (change.readOnly && !change.shenpiPower) { %>
+                                    <div class="d-inline-block mr-2">
+                                        <div class="custom-control custom-checkbox">
+                                            <input type="checkbox" class="custom-control-input" id="show-table-detail">
+                                            <label class="custom-control-label" for="show-table-detail">审批过程</label>
+                                        </div>
                                     </div>
+                                <% } %>
+                                <% if (showPlanBtn) { %>
+                                    <div class="d-inline-block mr-2">
+                                        <a class="btn btn-sm btn-primary" href="#bgfadb" data-toggle="modal" data-target="#bgfadb">差值对比</a>
+                                    </div>
+                                <% } %>
+                                <div class="d-inline-block mr-2">
+                                    <a class="btn btn-sm btn-primary" href="#qdgather" data-toggle="modal" data-target="#qdgather">清单汇总</a>
                                 </div>
-                            <% } %>
-                            <% if (showPlanBtn) { %>
                                 <div class="d-inline-block mr-2">
-                                    <a class="btn btn-sm btn-primary" href="#bgfadb" data-toggle="modal" data-target="#bgfadb">差值对比</a>
+                                    <div class="input-group input-group-sm">
+                                        <div class="input-group-prepend">
+                                            <span class="input-group-text" id="basic-addon1">表达式</span>
+                                        </div>
+                                        <input type="text" class="form-control form-control-sm m-0 judge-hide" id="camount-expr" readonly="readOnly" autocomplete="off">
+                                        <input type="text" class="form-control form-control-sm m-0 judge-show" id="ledger-camount-expr" readonly="readOnly" autocomplete="off" style="display: none">
+                                    </div>
                                 </div>
-                            <% } %>
-                            <div class="d-inline-block mr-2">
-                                <a class="btn btn-sm btn-primary" href="#qdgather" data-toggle="modal" data-target="#qdgather">清单汇总</a>
-                            </div>
-                            <div class="d-inline-block mr-2">
-                                <div class="input-group input-group-sm">
-                                    <div class="input-group-prepend">
-                                        <span class="input-group-text" id="basic-addon1">表达式</span>
+                                <div class="d-inline-block pull-right">
+                                    <div class="btn-group btn-group-toggle group-tab">
+                                        <a class="btn btn-sm btn-light change-mode <% if (changeMode === 0) { %>active<% } %>" data-type="0" href="javascript:void(0);">清单模式</a>
+                                        <a class="btn btn-sm btn-light change-mode <% if (changeMode === 1) { %>active<% } %>" data-type="1" href="javascript:void(0);">台账模式</a>
                                     </div>
-                                    <input type="text" class="form-control form-control-sm m-0" id="camount-expr" readonly="readOnly" autocomplete="off">
                                 </div>
                             </div>
+                            <div class="sjs-height-change judge-hide" id="change-spread"></div>
+                            <div class="sjs-height-change judge-show" style="display: none;" id="ledger-spread"></div>
                         </div>
-                        <div class="sjs-height-change" id="change-spread"></div>
-                    </div>
-                </div>
-                <!--下半部分-->
-                <div class="bcontent-wrap">
-                    <div class="bc-bar mb-1">
-                        <ul class="nav nav-tabs">
-                            <li class="nav-item">
-                                <a class="nav-link active" href="#">所属项目节</a>
-                            </li>
-                        </ul>
                     </div>
-                    <div class="sp-wrap" id="xmj-spread">
+                    <!--下半部分-->
+                    <div class="bcontent-wrap">
+                        <div id="change-pos-resize" class="resize-y" r-Type="height" div1=".sjs-height-1" div2=".bcontent-wrap" title="调整大小"><!--调整上下高度条--></div>
+                        <div class="judge-hide">
+                            <div class="bc-bar mb-1">
+                                <ul class="nav nav-tabs">
+                                    <li class="nav-item">
+                                        <a class="nav-link active" href="#">所属项目节</a>
+                                    </li>
+                                    <li class="nav-item">
+                                        <div class="d-inline-block">
+                                            <div class="input-group input-group-sm ml-2">
+                                                <div class="input-group-prepend">
+                                                    <span class="input-group-text" id="basic-addon3">表达式</span>
+                                                </div>
+                                                <input type="text" class="form-control form-control-sm m-0" id="xmj-camount-expr" readonly="readOnly" autocomplete="off">
+                                            </div>
+                                        </div>
+                                    </li>
+                                </ul>
+                            </div>
+                            <div class="sp-wrap" id="xmj-spread"></div>
+                        </div>
+                        <div class="judge-show" style="display: none;">
+                            <div class="bc-bar mb-1">
+                                <ul class="nav nav-tabs">
+                                    <li class="nav-item">
+                                        <a class="nav-link active" href="#">计量单元</a>
+                                    </li>
+                                    <li class="nav-item">
+                                        <div class="d-inline-block">
+                                            <div class="input-group input-group-sm ml-2">
+                                                <div class="input-group-prepend">
+                                                    <span class="input-group-text" id="basic-addon2">表达式</span>
+                                                </div>
+                                                <input type="text" class="form-control form-control-sm m-0" id="pos-camount-expr" readonly="readOnly" autocomplete="off">
+                                            </div>
+                                        </div>
+                                    </li>
+                                </ul>
+                            </div>
+                            <div class="sp-wrap" id="pos-spread"></div>
+                        </div>
                     </div>
                 </div>
             </div>
@@ -478,6 +520,7 @@
     </div>
 </div>
 <script>
+    let changeMode = parseInt('<%- changeMode %>');
     const tenderName = JSON.parse(unescape('<%- escape(JSON.stringify(tender.data.name)) %>'));
     const tenderId = '<%- tender.id %>';
     const deleteFilePermission = <%- deleteFilePermission %>;
@@ -493,6 +536,7 @@
     let changeVp = parseFloat('<%- change.valuation_tp ? change.valuation_tp : 0 %>');
     let changeUp = parseFloat('<%- change.unvaluation_tp ? change.unvaluation_tp : 0 %>');
     const changeStatus = parseFloat('<%- change.status %>');
+    let changeOrder = parseInt('<%- change.order_by %>');
     const touristPermission = parseInt('<%- ctx.tender.touristPermission.file %>');
     const precision = JSON.parse('<%- JSON.stringify(precision) %>');
     const whiteList = JSON.parse('<%- JSON.stringify(whiteList) %>');
@@ -541,12 +585,14 @@
     }
     const changeLedgerList = JSON.parse(unescape('<%- escape(JSON.stringify(changeLedgerList)) %>'));
     const changePosList = JSON.parse(unescape('<%- escape(JSON.stringify(changePosList)) %>'));
-</script>
-<% if (!change.readOnly) { %>
-<script>
+    let ledgerList, posList;
     let changeUnits = JSON.parse('<%- JSON.stringify(changeUnits) %>');
     changeUnits = _.map(changeUnits, 'unit');
     changeUnits.push('');
+    let changeUsedData = JSON.parse(unescape('<%- escape(JSON.stringify(changeUsedData)) %>'));
+</script>
+<% if (!change.readOnly) { %>
+<script>
     const shenpi_status = <%- ctx.tender.info.shenpi.change %>;
     const shenpiConst = JSON.parse('<%- JSON.stringify(shenpiConst) %>');
     const unitList = JSON.parse(unescape('<%- escape(JSON.stringify(unitList)) %>'));
@@ -573,16 +619,12 @@
         w_code: JSON.parse(unescape('<%- escape(JSON.stringify(change.w_code ? change.w_code : '')) %>')),
     };
     let changeInfo = Object.assign({}, back_changeInfo);
-    let changeUsedData = JSON.parse(unescape('<%- escape(JSON.stringify(changeUsedData)) %>'));
-    let changeOrder = parseInt('<%- change.order_by %>');
     const openChangeWhiteList = <%- ctx.session.sessionProject.page_show.openChangeWhiteList %>;
     let deLimit = parseInt('<%- deLimit %>');
     console.log(changeInfo);
-    console.log(changeUsedData);
 </script>
-<script src="/public/js/change_information_set.js"></script>
 <script src="/public/js/change_audit.js"></script>
-<% } else if (change.readOnly && !change.shenpiPower) { %>
+<% } else { %>
 <script>
     const auditors2 = JSON.parse(unescape('<%- escape(JSON.stringify(change.auditors2)) %>'));
     auditors2.shift();
@@ -592,17 +634,4 @@
     }
     let w_code = JSON.parse(unescape('<%- escape(JSON.stringify(change.w_code ? change.w_code : '')) %>'));
 </script>
-<script src="/public/js/change_information_show.js?202206211"></script>
-<% } else if (change.shenpiPower) { %>
-<script>
-    const auditors2 = JSON.parse(unescape('<%- escape(JSON.stringify(change.auditors2)) %>'));
-    auditors2.shift();
-    const aidList = [];
-    for (let i = 0; i < auditors2.length; i++) {
-        aidList.push(auditors2[i][0].audit_order);
-    }
-    let changeUsedData = JSON.parse(unescape('<%- escape(JSON.stringify(changeUsedData)) %>'));
-    // console.log(changeUsedData);
-</script>
-<script src="/public/js/change_information_approval.js?202211041"></script>
 <% } %>

+ 2 - 2
app/view/change/information_modal.ejs

@@ -211,7 +211,7 @@
                 </div>
                 <div class="modal-footer">
                     <button class="btn btn-secondary btn-sm" data-dismiss="modal">关闭</button>
-                    <button class="btn btn-primary btn-sm" onclick="checkChangeFrom();">确认上报</button>
+                    <button class="btn btn-primary btn-sm checkChangeFrom">确认上报</button>
                 </div>
             </div>
         </div>
@@ -391,7 +391,7 @@
                 <div class="modal-footer">
                     <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">关闭</button>
                     <% if((ctx.change.status === auditConst.status.checkNo || ctx.change.status === auditConst.status.revise) && ctx.session.sessionUser.accountId === ctx.change.uid) { %>
-                        <button class="btn btn-primary btn-sm sp-list-item" onclick="checkChangeFrom();">确认上报</button>
+                        <button class="btn btn-primary btn-sm sp-list-item checkChangeFrom">确认上报</button>
                     <% } %>
                 </div>
             </div>

+ 3 - 1
sql/update.sql

@@ -7,7 +7,9 @@
 -- 表结构
 ------------------------------------
 
+ALTER TABLE `zh_tender`
+ADD COLUMN `c_mode` tinyint(1) NULL DEFAULT 0 COMMENT '变更清单模式' AFTER `c_rule_first`;
 
 ------------------------------------
 -- 表数据
-------------------------------------
+------------------------------------