Преглед изворни кода

两种合同管理路由右侧menu位置展示区分

ellisran пре 3 месеци
родитељ
комит
7e43c4b352
5 измењених фајлова са 20 додато и 18 уклоњено
  1. 2 2
      app/controller/contract_controller.js
  2. 1 1
      app/public/js/contract_tender.js
  3. 13 13
      app/router.js
  4. 1 1
      app/view/layout/menu.ejs
  5. 3 1
      config/menu.js

+ 2 - 2
app/controller/contract_controller.js

@@ -221,7 +221,7 @@ module.exports = app => {
                     contract_type: ctx.contract_type,
                     contractConst,
                     whiteList,
-                    thisUrl: `/sp/${ctx.subProject.id}` + (ctx.contract_tender ? `/contract/${ctx.contract.id}/detail` : '/contract/detail'),
+                    thisUrl: `/sp/${ctx.subProject.id}` + (ctx.contract_tender ? `/contract/tender/${ctx.contract.id}/detail` : '/contract/detail'),
                 };
                 if (ctx.session.sessionUser.is_admin) {
                     const accountList = await ctx.service.projectAccount.getAllSubProjectAccount(ctx.subProject);
@@ -236,7 +236,7 @@ module.exports = app => {
             } catch (err) {
                 ctx.log(err);
                 ctx.session.postError = err.toString();
-                ctx.redirect(ctx.contractOptions.spid ? '/contract' : '/contract/tender');
+                ctx.redirect(`/sp/${ctx.subProject.id}` + (ctx.contractOptions.spid ? '/contract/detail' : '/contract/tender'));
             }
         }
 

+ 1 - 1
app/public/js/contract_tender.js

@@ -34,7 +34,7 @@ const tenderListSpec = (function(){
             html.push(arr.indexOf(node) === arr.length - 1 ? '└' : '├');
             html.push('</span>');
             //html.push('<a href="/tender/' + node.id + '">', node[c.field], '</a>');
-            html.push('<a href="/sp/' + spid + '/contract/'+ node.id +'/detail" name="name" style="min-width: 200px;word-break:break-all;" id="' + node.id + '">', node.name, '</a>');
+            html.push('<a href="/sp/' + spid + '/contract/tender/'+ node.id +'/detail" name="name" style="min-width: 200px;word-break:break-all;" id="' + node.id + '">', node.name, '</a>');
         }
         html.push('</td>');
 

+ 13 - 13
app/router.js

@@ -280,19 +280,19 @@ module.exports = app => {
     // **标段合同管理 todo 接入项目内部
     // app.get('/sp/:id/contract', sessionAuth, subProjectCheck, 'contractController.index');
     app.get('/sp/:id/contract/tender', sessionAuth, subProjectCheck, 'contractController.tender');
-    app.post('/sp/:id/contract/:tid/audit/save', sessionAuth, subProjectCheck, contractCheck, 'contractController.auditSave');
-    app.get('/sp/:id/contract/:tid/detail', sessionAuth, subProjectCheck, contractCheck, 'contractController.detail');
-    app.get('/sp/:id/contract/:tid/detail/:type', sessionAuth, subProjectCheck, contractCheck, 'contractController.detail');
-    app.post('/sp/:id/contract/:tid/detail/load', sessionAuth, subProjectCheck, contractCheck, 'contractController.loadDetail');
-    app.post('/sp/:id/contract/:tid/detail/:type/load', sessionAuth, subProjectCheck, contractCheck, 'contractController.loadDetail');
-    app.post('/sp/:id/contract/:tid/detail/update', sessionAuth, subProjectCheck, contractCheck, 'contractController.updateBills');
-    app.post('/sp/:id/contract/:tid/detail/:type/update', sessionAuth, subProjectCheck, contractCheck, 'contractController.updateBills');
-    app.post('/sp/:id/contract/:tid/detail/:type/:cid/file/upload', sessionAuth, subProjectCheck, contractCheck, 'contractController.uploadFile');
-    app.post('/sp/:id/contract/:tid/detail/:type/:cid/file/delete', sessionAuth, subProjectCheck, contractCheck, 'contractController.deleteFile');
-    app.get('/sp/:id/contract/:tid/detail/:type/:cid/file/:fid/download', sessionAuth, subProjectCheck, contractCheck, 'contractController.downloadFile');
-    app.post('/sp/:id/contract/:tid/detail/:type/:cid/pay/:cpid/file/upload', sessionAuth, subProjectCheck, contractCheck, 'contractController.uploadFile');
-    app.post('/sp/:id/contract/:tid/detail/:type/:cid/pay/:cpid/file/delete', sessionAuth, subProjectCheck, contractCheck, 'contractController.deleteFile');
-    app.get('/sp/:id/contract/:tid/detail/:type/:cid/pay/:cpid/file/:fid/download', sessionAuth, subProjectCheck, contractCheck, 'contractController.downloadFile');
+    app.post('/sp/:id/contract/tender/:tid/audit/save', sessionAuth, subProjectCheck, contractCheck, 'contractController.auditSave');
+    app.get('/sp/:id/contract/tender/:tid/detail', sessionAuth, subProjectCheck, contractCheck, 'contractController.detail');
+    app.get('/sp/:id/contract/tender/:tid/detail/:type', sessionAuth, subProjectCheck, contractCheck, 'contractController.detail');
+    app.post('/sp/:id/contract/tender/:tid/detail/load', sessionAuth, subProjectCheck, contractCheck, 'contractController.loadDetail');
+    app.post('/sp/:id/contract/tender/:tid/detail/:type/load', sessionAuth, subProjectCheck, contractCheck, 'contractController.loadDetail');
+    app.post('/sp/:id/contract/tender/:tid/detail/update', sessionAuth, subProjectCheck, contractCheck, 'contractController.updateBills');
+    app.post('/sp/:id/contract/tender/:tid/detail/:type/update', sessionAuth, subProjectCheck, contractCheck, 'contractController.updateBills');
+    app.post('/sp/:id/contract/tender/:tid/detail/:type/:cid/file/upload', sessionAuth, subProjectCheck, contractCheck, 'contractController.uploadFile');
+    app.post('/sp/:id/contract/tender/:tid/detail/:type/:cid/file/delete', sessionAuth, subProjectCheck, contractCheck, 'contractController.deleteFile');
+    app.get('/sp/:id/contract/tender/:tid/detail/:type/:cid/file/:fid/download', sessionAuth, subProjectCheck, contractCheck, 'contractController.downloadFile');
+    app.post('/sp/:id/contract/tender/:tid/detail/:type/:cid/pay/:cpid/file/upload', sessionAuth, subProjectCheck, contractCheck, 'contractController.uploadFile');
+    app.post('/sp/:id/contract/tender/:tid/detail/:type/:cid/pay/:cpid/file/delete', sessionAuth, subProjectCheck, contractCheck, 'contractController.deleteFile');
+    app.get('/sp/:id/contract/tender/:tid/detail/:type/:cid/pay/:cpid/file/:fid/download', sessionAuth, subProjectCheck, contractCheck, 'contractController.downloadFile');
     // 项目合同管理
     app.get('/sp/:id/contract', sessionAuth, subProjectCheck, contractCheck, 'contractController.detail');
     app.get('/sp/:id/contract/detail', sessionAuth, subProjectCheck, contractCheck, 'contractController.detail');

+ 1 - 1
app/view/layout/menu.ejs

@@ -17,7 +17,7 @@
             <% for (const index in ctx.menuList) { %>
             <% const menu = ctx.menuList[index]; %>
             <% if (!menu.display) { continue } %>
-            <li <% if(ctx.controllerName === menu.controller || (!!menu.controllers && menu.controllers.indexOf(ctx.controllerName) >= 0) || (menu.url && menu.url === ctx.menu.url)) { %>class="active"<% } %>>
+            <li <% if((ctx.controllerName === menu.controller && (!menu.notIncludedUrl || !menu.notIncludedUrl.some(item => ctx.url.includes(item)))) || (!!menu.controllers && menu.controllers.indexOf(ctx.controllerName) >= 0 && (!menu.includedUrl || menu.includedUrl.some(item => ctx.url.includes(item)))) || (menu.url && menu.url === ctx.url)) { %>class="active"<% } %>>
                 <a href="<%- menu.url %>" id="<%- 'nav_' + index%>" data-toggle="tooltip" data-placement="right" title="" data-original-title="<%- menu.name %>">
                     <i class="fa <%- menu.icon %>"></i>
                     <% if (menu.caption) { %><span><%- menu.caption %></span><% } %>

+ 3 - 1
config/menu.js

@@ -105,7 +105,8 @@ const menu = {
         children: null,
         caption: '标段管理',
         controller: 'list',
-        controllers: ['list', 'tender'],
+        controllers: ['list', 'tender', 'contract'],
+        includedUrl: ['/contract/tender'],
     },
     contract: {
         name: '合同管理',
@@ -115,6 +116,7 @@ const menu = {
         children: null,
         caption: '合同管理',
         controller: 'contract',
+        notIncludedUrl: ['/contract/tender'],
     },
     file: {
         name: '资料归集',