Browse Source

关联标段权限控制

MaiXinRong 2 years ago
parent
commit
9a106f30d4
4 changed files with 18 additions and 6 deletions
  1. 12 0
      app/controller/sub_proj_controller.js
  2. 3 4
      app/public/js/budget_list.js
  3. 2 2
      app/public/js/file_list.js
  4. 1 0
      app/router.js

+ 12 - 0
app/controller/sub_proj_controller.js

@@ -135,6 +135,18 @@ module.exports = app => {
             }
         }
 
+        async saveRela(ctx) {
+            try {
+                const data = JSON.parse(ctx.request.body.data);
+                if (!data.id || !data.rela_tender) throw '参数有误';
+                const result = await ctx.service.subProject.setRelaTender({ id: data.id, rela_tender: data.rela_tender });
+                ctx.body = { err: 0, msg: '', data: { update: [result] } };
+            } catch(err) {
+                ctx.log(err);
+                ctx.ajaxErrorBody(err, '保存数据失败');
+            }
+        }
+
         async member(ctx) {
             try {
                 const data = JSON.parse(ctx.request.body.data);

+ 3 - 4
app/public/js/budget_list.js

@@ -62,7 +62,8 @@ $(document).ready(() => {
                     html.push(`<td></td>`);
                 } else {
                     html.push(`<td>`);
-                    html.push('<button class="btn btn-outline-primary btn-sm" data-target="#select-rela" name="del" onclick="showModal(this);">关联标段</button>');
+                    if (node.manage_permission.indexOf(1) > 0)
+                        html.push('<button class="btn btn-outline-primary btn-sm" data-target="#select-rela" name="del" onclick="showModal(this);">关联标段</button>');
                     html.push('</td>');
                 }
                 return html.join('');
@@ -146,7 +147,7 @@ $(document).ready(() => {
             });
             $('#select-rela-ok').click(() => {
                 const rela = self.getSelects();
-                postData('/subproj/save', { id: curBudget.id, rela_tender: rela.join(',') }, function () {
+                postData('/subproj/rela/save', { id: curBudget.id, rela_tender: rela.join(',') }, function () {
                     $(`[bid=${curBudget.bid}]`)[0].setAttribute('rela-tender', rela.join(','));
                     $('#select-rela').modal('hide');
                 });
@@ -171,13 +172,11 @@ $(document).ready(() => {
             const self = this;
             postData(`/subproj/rela?id=${curBudget.id}`, {}, tenders => {
                 const rela = curBudget.rela_tender ? curBudget.rela_tender.split(',') : [];
-                console.log(rela);
                 self.selectTree = Tender2Tree.convert(category, tenders, null, null, function (node, source) {
                     node.lastStageOrder = `第${source.lastStageOrder}期`;
                     node.lastStageStatus = source.lastStageStatus;
                 });
                 for (const node of self.selectTree.nodes) {
-                    console.log(node);
                     node.selected = rela.indexOf(node.tid + '') >= 0;
                 }
                 SpreadJsObj.loadSheetData(this.sheet, SpreadJsObj.DataType.Tree, this.selectTree);

+ 2 - 2
app/public/js/file_list.js

@@ -53,7 +53,7 @@ $(document).ready(() => {
                     html.push(`<td></td>`);
                 } else {
                     html.push(`<td>`);
-                    html.push('<button class="btn btn-outline-primary btn-sm" data-target="#select-rela" name="del" onclick="showModal(this);">关联标段</button>');
+                    if (node.manage_permission.indexOf(1) > 0) html.push('<button class="btn btn-outline-primary btn-sm" data-target="#select-rela" name="del" onclick="showModal(this);">关联标段</button>');
                     html.push('</td>');
                 }
                 return html.join('');
@@ -137,7 +137,7 @@ $(document).ready(() => {
             });
             $('#select-rela-ok').click(() => {
                 const rela = self.getSelects();
-                postData('/subproj/save', { id: curProject.id, rela_tender: rela.join(',') }, function () {
+                postData('/subproj/rela/save', { id: curProject.id, rela_tender: rela.join(',') }, function () {
                     $(`[tree_id=${curProject.id}]`)[0].setAttribute('rela-tender', rela.join(','));
                     $('#select-rela').modal('hide');
                 });

+ 1 - 0
app/router.js

@@ -702,6 +702,7 @@ module.exports = app => {
     app.post('/subproj/dragTo', sessionAuth, projectManagerCheck, 'subProjController.dragTo');
     app.post('/subproj/del', sessionAuth, projectManagerCheck, 'subProjController.del');
     app.post('/subproj/save', sessionAuth, projectManagerCheck, 'subProjController.save');
+    app.post('/subproj/rela/save', sessionAuth, 'subProjController.saveRela');
     app.post('/subproj/rela', sessionAuth, 'subProjController.rela');
     app.post('/subproj/member', sessionAuth, projectManagerCheck, 'subProjController.member');
     app.post('/subproj/memberSave', sessionAuth, projectManagerCheck, 'subProjController.memberSave');