Przeglądaj źródła

新增部位页权限设置

laiguoran 3 lat temu
rodzic
commit
8173c88248

+ 25 - 8
app/controller/change_controller.js

@@ -1503,21 +1503,25 @@ module.exports = app => {
             try {
                 const change = ctx.change;
                 let edit = true;
+                let changing = false;
                 if (change.status !== audit.flow.status.uncheck && change.status !== audit.flow.status.backnew) {
                     // 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 +1529,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 +1552,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 +1566,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;
             }
@@ -1582,6 +1590,15 @@ module.exports = app => {
                 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.backnew) {
+                    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/service/change_ledger.js

@@ -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);

+ 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 %>