Browse Source

资金监管功能路由改动

ellisran 3 months ago
parent
commit
2de85eb8a6

+ 3 - 1
app/base/base_controller.js

@@ -15,7 +15,7 @@ const otherProjectController = ['setting', 'file'];
 
 class BaseController extends Controller {
 
-    loadMenu(ctx){
+    loadMenu(ctx) {
         if (ctx.isProjectController !== false) ctx.isProjectController = otherProjectController.indexOf(ctx.controllerName) >= 0 || !!this.app.menu.projectMenu[ctx.controllerName];
         const menuList = ctx.isProjectController
             ? JSON.parse(JSON.stringify(this.app.menu.projectMenu))
@@ -46,6 +46,8 @@ class BaseController extends Controller {
                         im.url = `/sp/${ctx.subProject.id}${ctx.curListUrl}`;
                     } else if (index === 'contract') {
                         im.url = `/sp/${ctx.subProject.id}/${im.controller}/detail`;
+                    } else if (index === 'financial') {
+                        im.url = `/sp/${ctx.subProject.id}/${im.controller}/${ctx.subProject.financialToUrl}`;
                     } else {
                         im.url = `/sp/${ctx.subProject.id}/${im.controller}`;
                     }

+ 12 - 13
app/controller/financial_controller.js

@@ -28,7 +28,7 @@ module.exports = app => {
          */
         async index(ctx) {
             try {
-                if (!ctx.session.sessionProject.page_show.openFinancial) {
+                if (!ctx.subProject.page_show.openFinancial) {
                     throw '该功能已关闭或无法查看';
                 }
                 const renderData = {
@@ -130,7 +130,6 @@ module.exports = app => {
                     financialPermission,
                     transferList,
                     moment,
-                    preUrl: '/financial',
                     jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.financial.transfer),
                     whiteList: ctx.app.config.multipart.whitelist,
                 };
@@ -139,7 +138,7 @@ module.exports = app => {
                 ctx.log(err);
                 console.log(err);
                 ctx.session.postError = err.toString();
-                ctx.redirect('/financial');
+                ctx.redirect(`/sp/${ctx.subProject.id}/dashboard`);
             }
         }
 
@@ -158,7 +157,7 @@ module.exports = app => {
                 if (!newTransferId) {
                     throw '新增资金划拨失败,请重试';
                 }
-                ctx.redirect('/financial/' + ctx.subProject.id + '/transfer/' + newTransferId + '/tender');
+                ctx.redirect('/sp/' + ctx.subProject.id + '/financial/transfer/' + newTransferId + '/tender');
             } catch (err) {
                 console.log(err);
                 ctx.postError(err, '新增资金划拨失败');
@@ -209,7 +208,7 @@ module.exports = app => {
                     transferTenderList,
                     tenders,
                     moment,
-                    preUrl: '/financial/' + ctx.subProject.id + '/transfer',
+                    preUrl: '/sp/' + ctx.subProject.id + '/financial/transfer',
                     jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.financial.transferTender),
                     whiteList: ctx.app.config.multipart.whitelist,
                 };
@@ -218,7 +217,7 @@ module.exports = app => {
                 ctx.log(err);
                 console.log(err);
                 ctx.session.postError = err.toString();
-                ctx.redirect('/financial');
+                ctx.redirect(`/sp/${ctx.subProject.id}/financial/transfer`);
             }
         }
 
@@ -567,7 +566,7 @@ module.exports = app => {
                 await this._filterPay(ctx, status, tid, used);
             } catch (err) {
                 this.log(err);
-                ctx.redirect('/financial');
+                ctx.redirect(`/sp/${ctx.subProject.id}/dashboard`);
             }
         }
 
@@ -672,7 +671,7 @@ module.exports = app => {
                 fptReportTids,
                 moment,
                 auditType: auditConst.auditType,
-                preUrl: '/financial',
+                // preUrl: '/financial',
                 jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.financial.pay),
             };
             if (ctx.session.sessionUser.is_admin) {
@@ -792,14 +791,14 @@ module.exports = app => {
                     whiteList: ctx.app.config.multipart.whitelist,
                     moment,
                     fileList,
-                    preUrl: '/financial/' + ctx.subProject.id + '/pay',
-                    preUrl2: '/financial/' + ctx.subProject.id + '/pay/' + ctx.financialPay.id,
+                    preUrl: `/sp/${ctx.subProject.id}/financial/pay`,
+                    preUrl2: `/sp/${ctx.subProject.id}/financial/pay/` + ctx.financialPay.id,
                     jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.financial.payDetail),
                 };
                 await this.layout('financial/pay_detail.ejs', renderData, 'financial/pay_detail_modal.ejs');
             } catch (err) {
                 this.log(err);
-                ctx.redirect('/financial');
+                ctx.redirect(`/sp/${ctx.subProject.id}/financial/pay`);
             }
         }
 
@@ -1053,13 +1052,13 @@ module.exports = app => {
                 const renderData = {
                     financialPermission,
                     usedList: financialConst.used,
-                    preUrl: '/financial',
+                    // preUrl: '/financial',
                     jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.financial.summary),
                 };
                 await this.layout('financial/summary.ejs', renderData);
             } catch (err) {
                 this.log(err);
-                ctx.redirect('/financial');
+                ctx.redirect(`/sp/${ctx.subProject.id}/dashboard`);
             }
         }
 

+ 11 - 8
app/middleware/financial_check.js

@@ -23,18 +23,21 @@ module.exports = options => {
      */
     return function* financialCheck(next) {
         try {
-            if (!this.session.sessionProject.page_show.openFinancial) {
-                throw '该功能已关闭或无法查看';
+            if (!this.subProject) {
+                throw '项目不存在';
             }
-            const spid = this.params.spid;
-            if (!spid) {
-                throw '参数数据错误';
+            if (!this.subProject.page_show.openFinancial) {
+                throw '该功能已关闭或无法查看';
             }
-            this.subProject = yield this.service.subProject.getDataById(spid);
+            // const spid = this.params.spid;
+            // if (!spid) {
+            //     throw '参数数据错误';
+            // }
+            // this.subProject = yield this.service.subProject.getDataById(spid);
             if (this.subProject.project_id !== this.session.sessionProject.id) throw '您无权查看该项目资金监管';
             const fAudit = yield this.service.financialAudit.getDataByCondition({ spid: this.subProject.id, uid: this.session.sessionUser.accountId });
             if (!fAudit && !this.session.sessionUser.is_admin) throw '您无权查看该项目资金监管,请联系管理员添加';
-            if (!this.subProject) throw '项目不存在';
+            // if (!this.subProject) throw '项目不存在';
             yield next;
         } catch (err) {
             // 输出错误到日志
@@ -64,7 +67,7 @@ module.exports = options => {
                     this.redirect('/wap/list');
                 } else {
                     this.postError(err, '未知错误');
-                    err === '该功能已关闭或无法查看' ? this.redirect('/dashboard') : this.request.headers.referer ? this.redirect(this.request.headers.referer) : this.redirect('/financial');
+                    err === '该功能已关闭或无法查看' ? this.redirect('/dashboard') : this.request.headers.referer ? this.redirect(this.request.headers.referer) : this.redirect(`/sp/${this.subProject.id}/financial`);
                 }
             }
         }

+ 1 - 1
app/middleware/financial_pay_check.js

@@ -84,7 +84,7 @@ module.exports = options => {
                     this.redirect('/wap/list');
                 } else {
                     this.postError(err, '未知错误');
-                    err === '该功能已关闭或无法查看' ? this.redirect('/dashboard') : this.request.headers.referer ? this.redirect(this.request.headers.referer) : this.redirect('/financial');
+                    err === '该功能已关闭或无法查看' ? this.redirect('/dashboard') : this.request.headers.referer ? this.redirect(this.request.headers.referer) : this.redirect(`/sp/${this.subProject.id}/financial`);
                 }
             }
         }

+ 9 - 0
app/middleware/sub_project_check.js

@@ -32,6 +32,15 @@ module.exports = options => {
             this.subProject.fun_set = this.service.subProject.getFunSet(this.subProject.fun_set);
             this.subProject.fun_rela = this.service.subProject.getFunRela(this.subProject);
 
+            const financialPermission = yield this.service.financialAudit.getPermission(this.subProject.id, this.session.sessionUser.accountId);
+            if (financialPermission.transfer_show) {
+                this.subProject.financialToUrl = 'transfer';
+            } else if (financialPermission.pay_show) {
+                this.subProject.financialToUrl = 'pay';
+            } else if (!financialPermission.transfer_show && !financialPermission.pay_show) {
+                this.subProject.financialToUrl = 'transfer';
+            }
+
             if (this.session.sessionUser.is_admin) {
                 this.subProject.readOnly = false;
                 this.subProject.permission = this.service.subProjPermission.adminPermission;

+ 13 - 13
app/public/js/financial_pay.js

@@ -31,7 +31,7 @@ $(function () {
         if (used) {
             routes.push('used=' + used);
         }
-        window.location.href = '/financial/' + spid + '/pay' + (routes.length ? '?' + routes.join('&') : '');
+        window.location.href = `/sp/${spid}/financial/pay` + (routes.length ? '?' + routes.join('&') : '');
     }
 
     let timer = null
@@ -248,7 +248,7 @@ $(function () {
         const id = parseInt($(this).data('id'));
         if (!id) return;
         if (!isNaN(id) && id !== 0) {
-            postData('/financial/'+ spid + '/pay/save', {type: 'add-tender-audit', id: id, tid: tender.id }, function (result) {
+            postData(`/sp/${spid}/financial/pay/save`, {type: 'add-tender-audit', id: id, tid: tender.id }, function (result) {
                 tender.permissionList = result;
                 auditUtils.makeReportListHtml(tender);
             })
@@ -265,7 +265,7 @@ $(function () {
         }
         const id = parseInt($(this).data('id'));
         deleteAfterHint(function () {
-            postData('/financial/'+ spid + '/pay/save', {type: 'del-tender-audit', id, tid: tender.id }, function (result) {
+            postData(`/sp/${spid}/financial/pay/save`, {type: 'del-tender-audit', id, tid: tender.id }, function (result) {
                 tender.permissionList = result.permissionList;
                 tender.auditGroupList = result.auditGroupList;
                 auditUtils.makeReportListHtml(tender);
@@ -289,7 +289,7 @@ $(function () {
             toastr.error('该用户不存在');
             return;
         }
-        postData('/financial/'+ spid + '/pay/save', {type: 'save-permission', updateData: { id, is_report: isReport } }, function (result) {
+        postData(`/sp/${spid}/financial/pay/save`, {type: 'save-permission', updateData: { id, is_report: isReport } }, function (result) {
             permission.is_report = isReport;
         });
     });
@@ -314,7 +314,7 @@ $(function () {
             return;
         }
         deleteAfterHint(function () {
-            postData('/financial/'+ spid + '/pay/save', {type: 'del-tender-audit', id: ids, tid: tender.id }, function (result) {
+            postData(`/sp/${spid}/financial/pay/save`, {type: 'del-tender-audit', id: ids, tid: tender.id }, function (result) {
                 tender.permissionList = result.permissionList;
                 tender.auditGroupList = result.auditGroupList;
                 auditUtils.makeReportListHtml(tender);
@@ -356,7 +356,7 @@ $(function () {
             this_tid: tender.id,
         }
         data.tidList = tenderList.join(',');
-        postData('/financial/'+ spid + '/pay/save',  data, function (result) {
+        postData(`/sp/${spid}/financial/pay/save`,  data, function (result) {
             toastr.success('已同步到其它勾选标段');
             for (let i = 0; i < num; i++) {
                 const tid = parseInt($('#shenpi-tender-list input:checked').eq(i).parents('tr').data('tid'));
@@ -402,7 +402,7 @@ $(function () {
             audit_order: $(this).parents('li').index() + 1,
         };
         const _self = $(this);
-        postData('/financial/' + spid + '/pay/save', { type: 'add-shenpi-audit', shenpi: prop, tid }, function (result) {
+        postData(`/sp/${spid}/financial/pay/save`, { type: 'add-shenpi-audit', shenpi: prop, tid }, function (result) {
             const data = result.shenpi;
             const auditGroup = auditUtils.addAudit(tender, { audit_id: data.audit_id, name: user.name, audit_type: data.audit_type, audit_order: data.audit_order }, prop.audit_order - 1);
             if (_self.parents('ul').find('.add-audit').length === 0) {
@@ -534,7 +534,7 @@ $(function () {
         }
         data.tidList = tenderList.join(',');
         console.log(data);
-        postData('/financial/' + spid + '/pay/save', data, function (result) {
+        postData(`/sp/${spid}/financial/pay/save`, data, function (result) {
             toastr.success('已同步到其它勾选标段');
             for (let i = 0; i < num; i++) {
                 const tid = parseInt($('#shenpi-tender-list input:checked').eq(i).parents('tr').data('tid'));
@@ -605,15 +605,15 @@ $(function () {
             code: code,
             used: $('#add-pay-used').val(),
         };
-        postData('/financial/'+ spid + '/pay/save', { type: 'add-pay', updateData: prop }, function (result) {
-            window.location.href = '/financial/' + spid + '/pay/' + result.id + '/detail';
+        postData(`/sp/${spid}/financial/pay/save`, { type: 'add-pay', updateData: prop }, function (result) {
+            window.location.href = `/sp/${spid}/financial/pay/${result.id}/detail`;
         });
     });
 
     $('body').on('click', '#pay-list .del-pay-btn', function () {
         const fpid = $(this).data('id');
         deleteAfterHint(function () {
-            postData('/financial/'+ spid + '/pay/save', {type: 'del-pay', postData: { node: fpid }}, function (result) {
+            postData(`/sp/${spid}/financial/pay/save`, {type: 'del-pay', postData: { node: fpid }}, function (result) {
                 window.location.reload();
             })
         }, '确认删除该资金支付?');
@@ -709,7 +709,7 @@ $(function () {
                 toastr.error('请填写开户账号');
                 return;
             }
-            postData('/financial/'+ spid + '/pay/save', { type: 'set-pay-tender', updateData: data }, function (result) {
+            postData(`/sp/${spid}/financial/pay/save`, { type: 'set-pay-tender', updateData: data }, function (result) {
                 toastr.success('保存成功');
                 tender.pt = result;
             });
@@ -768,7 +768,7 @@ $(function () {
             type: 'get-auditors',
             id: $(this).attr('c-id'),
         };
-        postData('/financial/'+ spid + '/pay/save', data, function (result) {
+        postData(`/sp/${spid}/financial/pay/save`, data, function (result) {
             const { auditHistory, auditors2, user } = result;
             let auditorsHTML = [];
             auditors2.forEach((group, idx) => {

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

@@ -44,9 +44,9 @@ $(function () {
         let html = financialPay.filePermission ? `<tr><td colspan="5"><a href="#addfujian" data-toggle="modal" class="btn btn-primary btn-sm" data-placement="bottom" title="">上传附件</a></td></tr>` : '';
         newFiles.forEach((file, idx) => {
             if (file.showDel) {
-                html += `<tr><td>${idx + 1}</td><td><a href="${file.filepath}" target="_blank">${file.filename}</a></td><td>${file.username}</td><td>${moment(file.upload_time).format('YYYY-MM-DD HH:mm:ss')}</td><td><a href="/financial/${file.spid}/pay/${file.fpid}/file/${file.id}/download" class="mr-2"><i class="fa fa-download"></i></a><a href="javascript: void(0);" class="text-danger file-del" data-id="${file.id}"><i class="fa fa-remove"></i></a></td></tr>`
+                html += `<tr><td>${idx + 1}</td><td><a href="${file.filepath}" target="_blank">${file.filename}</a></td><td>${file.username}</td><td>${moment(file.upload_time).format('YYYY-MM-DD HH:mm:ss')}</td><td><a href="/sp/${file.spid}/financial/pay/${file.fpid}/file/${file.id}/download" class="mr-2"><i class="fa fa-download"></i></a><a href="javascript: void(0);" class="text-danger file-del" data-id="${file.id}"><i class="fa fa-remove"></i></a></td></tr>`
             } else {
-                html += `<tr><td width="70">${idx + 1}</td><td><a href="${file.filepath}" target="_blank">${file.filename}</a></td><td>${file.username}</td><td>${moment(file.upload_time).format('YYYY-MM-DD HH:mm:ss')}</td><td><a href="/financial/${file.spid}/pay/${file.fpid}/file/${file.id}/download" class="mr-2"><i class="fa fa-download"></i></a></td></tr>`
+                html += `<tr><td width="70">${idx + 1}</td><td><a href="${file.filepath}" target="_blank">${file.filename}</a></td><td>${file.username}</td><td>${moment(file.upload_time).format('YYYY-MM-DD HH:mm:ss')}</td><td><a href="/sp/${file.spid}/financial/pay/${file.fpid}/file/${file.id}/download" class="mr-2"><i class="fa fa-download"></i></a></td></tr>`
             }
         })
         $('#file-content').append(html);
@@ -630,7 +630,7 @@ $(function () {
                                         <td>
                                             <div class="btn-group-table">
                                                 ${file.viewpath ? `<a href="${file.viewpath}" target="_blank" class="mr-1"><i class="fa fa-eye fa-fw"></i></a>` : ''}
-                                                <a href="/financial/${payNode.spid}/pay/${payNode.fpid}/file/${file.id}/download" class="mr-1"><i class="fa fa-download fa-fw"></i></a>
+                                                <a href="/sp/${payNode.spid}/financial/pay/${payNode.fpid}/file/${file.id}/download" class="mr-1"><i class="fa fa-download fa-fw"></i></a>
                                                 ${file.showDel ? `<a href="javascript: void(0);" class="text-danger file-del mr-1" data-id="${file.id}"><i class="fa fa-trash-o fa-fw text-danger"></i></a>` : ''}
                                             </div>
                                         </td>

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

@@ -1,7 +1,7 @@
 $(document).ready(function() {
     autoFlashHeight();
 
-    postData('/financial/' + spid + '/summary/load', {}, function (result) {
+    postData(`/sp/${spid}/financial/summary/load`, {}, function (result) {
         console.log(result);
         tenders = result.tenders;
         transferList = result.transferList;

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

@@ -64,7 +64,7 @@ $(function () {
                     formData.append('size', file.size)
                     formData.append('file', file)
                 })
-                postDataWithFile('/financial/' + spid + '/transfer/' + trInfo.id + '/file/upload', formData, function (result) {
+                postDataWithFile(`/sp/${spid}/financial/transfer/${trInfo.id}/file/upload`, formData, function (result) {
                     trInfo.files = result;
                     openFinancialTransferFiles(trInfo);
                     $('#transfer-list tr[data-id="' + trInfo.id + '"] .file-num').text(trInfo.files.length ? trInfo.files.length : '');
@@ -83,7 +83,7 @@ $(function () {
         }
         const fid = $(this).data('id');
         deleteAfterHint(function () {
-            postData('/financial/' + spid + '/transfer/' + trInfo.id + '/file/delete', { id: fid }, function (result) {
+            postData(`/sp/${spid}/financial/transfer/${trInfo.id}/file/delete`, { id: fid }, function (result) {
                 trInfo.files = result;
                 openFinancialTransferFiles(trInfo);
                 $('#transfer-list tr[data-id="' + trInfo.id + '"] .file-num').text(trInfo.files.length ? trInfo.files.length : '');
@@ -107,7 +107,7 @@ $(function () {
                                         <td>
                                             <div class="btn-group-table">
                                                 ${file.viewpath ? `<a href="${file.viewpath}" target="_blank" class="mr-1"><i class="fa fa-eye fa-fw"></i></a>` : ''}
-                                                <a href="/financial/${spid}/transfer/${trInfo.id}/file/${file.id}/download" class="mr-1"><i class="fa fa-download fa-fw"></i></a>
+                                                <a href="/sp/${spid}/financial/transfer/${trInfo.id}/file/${file.id}/download" class="mr-1"><i class="fa fa-download fa-fw"></i></a>
                                                 ${file.showDel ? `<a href="javascript: void(0);" class="text-danger file-del mr-1" data-id="${file.id}"><i class="fa fa-trash-o fa-fw text-danger"></i></a>` : ''}
                                             </div>
                                         </td>

+ 5 - 5
app/public/js/financial_transfer_tender.js

@@ -30,13 +30,13 @@ $(function () {
     });
 
     $('#lock-transfer-btn').click(function () {
-        postData('/financial/'+ spid + '/transfer/update', {postType: 'lock-transfer', postData: { node: trid, lock: 1 }}, function (result) {
+        postData(`/sp/${spid}/financial/transfer/update`, {postType: 'lock-transfer', postData: { node: trid, lock: 1 }}, function (result) {
             window.location.reload();
         });
     });
 
     $('#unlock-transfer-btn').click(function () {
-        postData('/financial/'+ spid + '/transfer/update', {postType: 'lock-transfer', postData: { node: trid, lock: 0 }}, function (result) {
+        postData(`/sp/${spid}/financial/transfer/update`, {postType: 'lock-transfer', postData: { node: trid, lock: 0 }}, function (result) {
             window.location.reload();
         });
     });
@@ -111,7 +111,7 @@ $(function () {
                     formData.append('size', file.size)
                     formData.append('file', file)
                 })
-                postDataWithFile('/financial/' + spid + '/transfer/' + trid + '/tender/' + ftInfo.id + '/file/upload', formData, function (result) {
+                postDataWithFile(`/sp/${spid}/financial/transfer/${trid}/tender/${ftInfo.id}/file/upload`, formData, function (result) {
                     ftInfo.files = result;
                     openFinancialTransferTenderFiles(ftInfo);
                     $('#tender-list tr[data-id="' + ftInfo.id + '"] .file-num').text(ftInfo.files.length ? ftInfo.files.length : '');
@@ -130,7 +130,7 @@ $(function () {
         }
         const fid = $(this).data('id');
         deleteAfterHint(function () {
-            postData('/financial/' + spid + '/transfer/' + trid + '/tender/' + ftInfo.id + '/file/delete', { id: fid }, function (result) {
+            postData(`/sp/${spid}/financial/transfer/${trid}/tender/${ftInfo.id}/file/delete`, { id: fid }, function (result) {
                 ftInfo.files = result;
                 openFinancialTransferTenderFiles(ftInfo);
                 $('#tender-list tr[data-id="' + ftInfo.id + '"] .file-num').text(ftInfo.files.length ? ftInfo.files.length : '');
@@ -154,7 +154,7 @@ $(function () {
                                         <td>
                                             <div class="btn-group-table">
                                                 ${file.viewpath ? `<a href="${file.viewpath}" target="_blank" class="mr-1"><i class="fa fa-eye fa-fw"></i></a>` : ''}
-                                                <a href="/financial/${spid}/transfer/${trid}/tender/${ftInfo.id}/file/${file.id}/download" class="mr-1"><i class="fa fa-download fa-fw"></i></a>
+                                                <a href="/sp/${spid}/financial/transfer/${trid}/tender/${ftInfo.id}/file/${file.id}/download" class="mr-1"><i class="fa fa-download fa-fw"></i></a>
                                                 ${file.showDel ? `<a href="javascript: void(0);" class="text-danger file-del mr-1" data-id="${file.id}"><i class="fa fa-trash-o fa-fw text-danger"></i></a>` : ''}
                                             </div>
                                         </td>

+ 24 - 25
app/router.js

@@ -369,36 +369,35 @@ module.exports = app => {
     app.post('/sp/:id/budget/decimal', sessionAuth, subProjectCheck, budgetCheck, 'budgetController.decimal');
 
     // **资金监管 todo 接入项目内部
-    app.get('/financial', sessionAuth, 'financialController.index');
-    app.post('/financial/:spid/audit/save', sessionAuth, financialCheck, 'financialController.auditSave');
-    app.get('/financial/:spid/transfer', sessionAuth, financialCheck, 'financialController.transfer');
-    app.post('/financial/:spid/transfer/add', sessionAuth, financialCheck, 'financialController.transferAdd');
-    app.post('/financial/:spid/transfer/update', sessionAuth, financialCheck, 'financialController.transferUpdate');
-    app.post('/financial/:spid/transfer/:id/file/upload', sessionAuth, financialCheck, 'financialController.transferUploadFile');
-    app.post('/financial/:spid/transfer/:id/file/delete', sessionAuth, financialCheck, 'financialController.transferDeleteFile');
-    app.get('/financial/:spid/transfer/:id/file/:fid/download', sessionAuth, financialCheck, 'financialController.transferDownloadFile');
-    app.get('/financial/:spid/transfer/:id/tender', sessionAuth, financialCheck, 'financialController.transferTender');
-    app.post('/financial/:spid/transfer/:id/tender/update', sessionAuth, financialCheck, 'financialController.transferTenderUpdate');
-    app.post('/financial/:spid/transfer/:trid/tender/:id/file/upload', sessionAuth, financialCheck, 'financialController.transferTenderUploadFile');
-    app.post('/financial/:spid/transfer/:trid/tender/:id/file/delete', sessionAuth, financialCheck, 'financialController.transferTenderDeleteFile');
-    app.get('/financial/:spid/transfer/:trid/tender/:id/file/:fid/download', sessionAuth, financialCheck, 'financialController.transferTenderDownloadFile');
-    app.get('/financial/:spid/pay', sessionAuth, financialCheck, 'financialController.pay');
-    app.post('/financial/:spid/pay/save', sessionAuth, financialCheck, 'financialController.paySave');
-    app.get('/financial/:spid/pay/:fpid/detail', sessionAuth, financialCheck, financialPayCheck, financialPayAuditCheck, 'financialController.payDetail');
-    app.post('/financial/:spid/pay/:fpid/save', sessionAuth, financialCheck, financialPayCheck, 'financialController.payDetailSave');
-    app.post('/financial/:spid/pay/:fpid/file/upload', sessionAuth, financialCheck, financialPayCheck, 'financialController.payUploadFile');
-    app.post('/financial/:spid/pay/:fpid/file/delete', sessionAuth, financialCheck, financialPayCheck, 'financialController.payDeleteFile');
-    app.get('/financial/:spid/pay/:fpid/file/:fid/download', sessionAuth, financialCheck, financialPayCheck, 'financialController.payDownloadFile');
-    app.post('/financial/:spid/pay/:fpid/audit/start', sessionAuth, financialCheck, financialPayCheck, financialPayAuditCheck, 'financialController.startPayAudit');
-    app.post('/financial/:spid/pay/:fpid/audit/check', sessionAuth, financialCheck, financialPayCheck, 'financialController.checkPayAudit');
-    app.get('/financial/:spid/summary', sessionAuth, financialCheck, 'financialController.summary');
-    app.post('/financial/:spid/summary/load', sessionAuth, financialCheck, 'financialController.summaryLoad');
+    // app.get('/financial', sessionAuth, 'financialController.index');
+    app.post('/sp/:id/financial/audit/save', sessionAuth, subProjectCheck, financialCheck, 'financialController.auditSave');
+    app.get('/sp/:id/financial/transfer', sessionAuth, subProjectCheck, financialCheck, 'financialController.transfer');
+    app.post('/sp/:id/financial/transfer/add', sessionAuth, subProjectCheck, financialCheck, 'financialController.transferAdd');
+    app.post('/sp/:id/financial/transfer/update', sessionAuth, subProjectCheck, financialCheck, 'financialController.transferUpdate');
+    app.post('/sp/:id/financial/transfer/:id/file/upload', sessionAuth, subProjectCheck, financialCheck, 'financialController.transferUploadFile');
+    app.post('/sp/:id/financial/transfer/:id/file/delete', sessionAuth, subProjectCheck, financialCheck, 'financialController.transferDeleteFile');
+    app.get('/sp/:id/financial/transfer/:id/file/:fid/download', sessionAuth, subProjectCheck, financialCheck, 'financialController.transferDownloadFile');
+    app.get('/sp/:id/financial/transfer/:id/tender', sessionAuth, subProjectCheck, financialCheck, 'financialController.transferTender');
+    app.post('/sp/:id/financial/transfer/:id/tender/update', sessionAuth, subProjectCheck, financialCheck, 'financialController.transferTenderUpdate');
+    app.post('/sp/:id/financial/transfer/:trid/tender/:id/file/upload', sessionAuth, subProjectCheck, financialCheck, 'financialController.transferTenderUploadFile');
+    app.post('/sp/:id/financial/transfer/:trid/tender/:id/file/delete', sessionAuth, subProjectCheck, financialCheck, 'financialController.transferTenderDeleteFile');
+    app.get('/sp/:id/financial/transfer/:trid/tender/:id/file/:fid/download', sessionAuth, subProjectCheck, financialCheck, 'financialController.transferTenderDownloadFile');
+    app.get('/sp/:id/financial/pay', sessionAuth, subProjectCheck, financialCheck, 'financialController.pay');
+    app.post('/sp/:id/financial/pay/save', sessionAuth, subProjectCheck, financialCheck, 'financialController.paySave');
+    app.get('/sp/:id/financial/pay/:fpid/detail', sessionAuth, subProjectCheck, financialCheck, financialPayCheck, financialPayAuditCheck, 'financialController.payDetail');
+    app.post('/sp/:id/financial/pay/:fpid/save', sessionAuth, subProjectCheck, financialCheck, financialPayCheck, 'financialController.payDetailSave');
+    app.post('/sp/:id/financial/pay/:fpid/file/upload', sessionAuth, subProjectCheck, financialCheck, financialPayCheck, 'financialController.payUploadFile');
+    app.post('/sp/:id/financial/pay/:fpid/file/delete', sessionAuth, subProjectCheck, financialCheck, financialPayCheck, 'financialController.payDeleteFile');
+    app.get('/sp/:id/financial/pay/:fpid/file/:fid/download', sessionAuth, subProjectCheck, financialCheck, financialPayCheck, 'financialController.payDownloadFile');
+    app.post('/sp/:id/financial/pay/:fpid/audit/start', sessionAuth, subProjectCheck, financialCheck, financialPayCheck, financialPayAuditCheck, 'financialController.startPayAudit');
+    app.post('/sp/:id/financial/pay/:fpid/audit/check', sessionAuth, subProjectCheck, financialCheck, financialPayCheck, 'financialController.checkPayAudit');
+    app.get('/sp/:id/financial/summary', sessionAuth, subProjectCheck, financialCheck, 'financialController.summary');
+    app.post('/sp/:id/financial/summary/load', sessionAuth, subProjectCheck, financialCheck, 'financialController.summaryLoad');
 
     // ------------------------- 项目内部相关 -----------------------------
 
 
 
-
     // ------------------------- 标段内部 -----------------------------
     // 为了保持标段内部链接不变,须在tenderCheck后,进行subProjectCheck,使用tender.spid来获取所属的子项目,标段无所属子项目时则无法进入
     // 标段概况

+ 1 - 1
app/service/financial_pay_att.js

@@ -30,7 +30,7 @@ module.exports = app => {
             return result.map(item => {
                 item.orginpath = this.ctx.app.config.fujianOssPath + item.filepath;
                 if (!this.ctx.helper.canPreview(item.fileext)) {
-                    item.filepath = `/financial/${item.spid}/pay/${item.fpid}/file/${item.id}/download`;
+                    item.filepath = `/sp/${item.spid}/financial/pay/${item.fpid}/file/${item.id}/download`;
                 } else {
                     item.filepath = this.ctx.app.config.fujianOssPath + item.filepath;
                     item.viewpath = item.filepath;

+ 1 - 1
app/service/financial_transfer_tender_att.js

@@ -29,7 +29,7 @@ module.exports = app => {
             return result.map(item => {
                 item.orginpath = this.ctx.app.config.fujianOssPath + item.filepath;
                 if (!this.ctx.helper.canPreview(item.fileext)) {
-                    item.filepath = `/financial/${item.spid}/transfer/${item.trid}/tender/${item.ftid}/file/${item.id}/download`;
+                    item.filepath = `/sp/${this.ctx.subProject.id}/financial/${item.spid}/transfer/${item.trid}/tender/${item.ftid}/file/${item.id}/download`;
                 } else {
                     item.filepath = this.ctx.app.config.fujianOssPath + item.filepath;
                     item.viewpath = item.filepath;

+ 4 - 2
app/service/sub_proj_permission.js

@@ -290,10 +290,12 @@ module.exports = app => {
         checkViewPermission(ctx) {
             const permissionBlock = ctx.service.subProjPermission.PermissionBlock.find(x => { return x.key === ctx.controllerName; });
             if (!permissionBlock) return true;
+            console.log(permissionBlock);
             if (permissionBlock.children) {
                 let canView = false;
                 for (const c of permissionBlock.children) {
-                    const viewPermission = permissionBlock.permission.find(x => { return x.key === 'view'; });
+                    console.log(c);
+                    const viewPermission = c.permission.find(x => { return x.key === 'view'; });
                     if (!viewPermission || ctx.subProject.permission[c.field].indexOf(viewPermission.value) >= 0) canView = true;
                 }
                 return canView;
@@ -306,4 +308,4 @@ module.exports = app => {
     }
 
     return subProjPermission;
-};
+};

+ 3 - 3
app/view/dashboard/index.ejs

@@ -297,14 +297,14 @@
                                         <% for (const af of auditFinancials) { %>
                                             <tr data-type="11">
                                                 <td><span class="bg-new-financial text-new-financial badge text-width">资金支付</span></td>
-                                                <td><a href="/financial/<%- af.spid %>/pay"><%- af.name %></a> <a href="/financial/<%- af.spid %>/pay/<%- af.fpid %>/detail"><%- af.fpcode %></a></td>
+                                                <td><a href="/sp/<%- af.spid %>/financial/pay"><%- af.name %></a> <a href="/sp/<%- af.spid %>/financial/pay/<%- af.fpid %>/detail"><%- af.fpcode %></a></td>
                                                 <td>支付</td>
                                                 <td><%- (
                                                             af.fpcstatus !== acFinancial.status.checkNo
                                                                     ? (af.begin_time ? ctx.moment(af.begin_time).format('YYYY/MM/DD HH:mm') : '')
                                                                     : (af.end_time ? ctx.moment(af.end_time).format('YYYY/MM/DD HH:mm') : '')
                                                     ) %></td>
-                                                <td><a href="/financial/<%- af.spid %>/pay/<%- af.fpid %>/detail" class="btn btn-sm btn-table <% if (af.fpstatus === acFinancial.status.checkNo) { %>btn-outline-warning text-warning<% } else { %>btn-outline-primary<% } %>" role="button"><% if (af.fpstatus !== acFinancial.status.checkNo) { %>审批<% } else { %>重新上报<% } %></a></td>
+                                                <td><a href="/sp/<%- af.spid %>/financial/pay/<%- af.fpid %>/detail" class="btn btn-sm btn-table <% if (af.fpstatus === acFinancial.status.checkNo) { %>btn-outline-warning text-warning<% } else { %>btn-outline-primary<% } %>" role="button"><% if (af.fpstatus !== acFinancial.status.checkNo) { %>审批<% } else { %>重新上报<% } %></a></td>
                                             </tr>
                                         <% } %>
                                     </tbody>
@@ -526,7 +526,7 @@
                                             <% } else if(notice.type === pushType.financial && ctx.session.sessionProject.page_show.openFinancial) { %>
                                                 <tr data-type="11">
                                                     <td><span class="bg-new-financial text-new-financial badge text-width">资金支付</span></td>
-                                                    <td><a href="/financial/<%- notice.spid %>/pay"><%- notice.name %></a> <a href="/financial/<%- notice.spid %>/pay/<%- notice.fpid %>/detail"><%- notice.code %></a></td>
+                                                    <td><a href="/sp/<%- notice.spid %>/financial/pay"><%- notice.name %></a> <a href="/sp/<%- notice.spid %>/financial/pay/<%- notice.fpid %>/detail"><%- notice.code %></a></td>
                                                     <td><%- notice.su_name %><%- (notice.su_role ? '-' + notice.su_role : '') %></td>
                                                     <td><%- ctx.helper.dateTran(notice.create_time, 'YYYY/MM/DD HH:mm') %></td>
                                                     <td>支付</td>

+ 4 - 5
app/view/financial/pay.ejs

@@ -80,7 +80,7 @@
                     <% for (const pay of payList) { %>
                         <tr class="text-center" data-tid="<%- pay.tid %>">
                             <td class="text-left"><%- pay.tenderName %></td>
-                            <td class=""><a href="/financial/<%- ctx.subProject.id %>/pay/<%- pay.id %>/detail"><%- pay.code %></a></td>
+                            <td class=""><a href="/sp/<%- ctx.subProject.id %>/financial/pay/<%- pay.id %>/detail"><%- pay.code %></a></td>
                             <td class=""><%- moment(pay.create_time).format('YYYY-MM-DD') %></td>
                             <td class=""><%- pay.username %></td>
                             <td class=""><%- pay.used %></td>
@@ -100,13 +100,13 @@
                             </td>
                             <td>
                                 <% if (pay.status === auditConst.status.uncheck && pay.uid === ctx.session.sessionUser.accountId) { %>
-                                    <a href="/financial/<%- ctx.subProject.id %>/pay/<%- pay.id %>/detail" class="btn <%- auditConst.statusButtonClass[pay.status] %> btn-sm"><%- auditConst.statusButton[pay.status] %></a>
+                                    <a href="/sp/<%- ctx.subProject.id %>/financial/pay/<%- pay.id %>/detail" class="btn <%- auditConst.statusButtonClass[pay.status] %> btn-sm"><%- auditConst.statusButton[pay.status] %></a>
                                 <% } else if (pay.status === auditConst.status.checkNo && pay.curAuditors && pay.uid === ctx.session.sessionUser.accountId) { %>
-                                    <a href="/financial/<%- ctx.subProject.id %>/pay/<%- pay.id %>/detail" class="btn <%- auditConst.statusButtonClass[pay.status] %> btn-sm"><%- auditConst.statusButton[pay.status] %></a>
+                                    <a href="/sp/<%- ctx.subProject.id %>/financial/pay/<%- pay.id %>/detail" class="btn <%- auditConst.statusButtonClass[pay.status] %> btn-sm"><%- auditConst.statusButton[pay.status] %></a>
                                 <% } else if (pay.status === auditConst.status.checking && pay.curAuditors && pay.curAuditors.findIndex(x => { return x.aid === ctx.session.sessionUser.accountId; }) >= 0) { %>
                                     <% const curAudit = pay.curAuditors.find(x => { return x.aid === ctx.session.sessionUser.accountId; }); %>
                                     <% if (curAudit.status === auditConst.status.checking) { %>
-                                        <a href="/financial/<%- ctx.subProject.id %>/pay/<%- pay.id %>/detail" class="btn <%- auditConst.statusButtonClass[pay.status] %> btn-sm"><%- auditConst.statusButton[pay.status] %></a>
+                                        <a href="/sp/<%- ctx.subProject.id %>/financial/pay/<%- pay.id %>/detail" class="btn <%- auditConst.statusButtonClass[pay.status] %> btn-sm"><%- auditConst.statusButton[pay.status] %></a>
                                     <% } else { %>
                                         <span class="<%- auditConst.auditStringClass[curAudit.status] %>"><%- auditConst.auditString[curAudit.status] %></span>
                                     <% } %>
@@ -126,7 +126,6 @@
 <script>
     const user_id = <%- ctx.session.sessionUser.accountId %>;
     const is_admin = <%- ctx.session.sessionUser.is_admin %>;
-    const spid = '<%- ctx.subProject.id %>';
     const tenders = JSON.parse(unescape('<%- escape(JSON.stringify(tenders)) %>'));
     const fptReportTids = JSON.parse(unescape('<%- escape(JSON.stringify(fptReportTids)) %>'));
     const auditConst = JSON.parse(unescape('<%- escape(JSON.stringify(auditConst)) %>'));

+ 3 - 4
app/view/financial/sub_menu_list.ejs

@@ -1,9 +1,8 @@
-<nav-menu title="返回" url="<%- preUrl %>" tclass="text-primary" ml="1" icon="fa-chevron-left"></nav-menu>
 <% if (financialPermission.transfer_show) { %>
 <div class="nav-box">
     <ul class="nav-list list-unstyled">
         <li class="<% if (ctx.url.indexOf('/transfer') !== -1) { %>active<% } %>">
-            <a href="/financial/<%- ctx.subProject.id %>/transfer"><span class="ml-3">资金划拨</span></a>
+            <a href="/sp/<%- ctx.subProject.id %>/financial/transfer"><span class="ml-3">资金划拨</span></a>
         </li>
     </ul>
 </div>
@@ -12,7 +11,7 @@
 <div class="nav-box">
     <ul class="nav-list list-unstyled">
         <li class="<% if (ctx.url.indexOf('/pay') !== -1) { %>active<% } %>">
-            <a href="/financial/<%- ctx.subProject.id %>/pay"><span class="ml-3">资金支付</span></a>
+            <a href="/sp/<%- ctx.subProject.id %>/financial/pay"><span class="ml-3">资金支付</span></a>
         </li>
     </ul>
 </div>
@@ -20,7 +19,7 @@
 <div class="nav-box">
     <ul class="nav-list list-unstyled">
         <li class="<% if (ctx.url.indexOf('/summary') !== -1) { %>active<% } %>">
-            <a href="/financial/<%- ctx.subProject.id %>/summary"><span class="ml-3">资金统计</span></a>
+            <a href="/sp/<%- ctx.subProject.id %>/financial/summary"><span class="ml-3">资金统计</span></a>
         </li>
     </ul>
 </div>

+ 0 - 1
app/view/financial/summary.ejs

@@ -140,7 +140,6 @@
 </div>
 <script src="/public/js/bootstrap/bootstrap-select.min.js"></script>
 <script>
-    const spid = '<%- ctx.subProject.id %>';
     const usedList = JSON.parse(unescape('<%- escape(JSON.stringify(usedList)) %>'));
     let tenders, transferList, transferTenderList, payList;
 </script>

+ 1 - 2
app/view/financial/transfer.ejs

@@ -33,7 +33,7 @@
                     <% for (const [i, t] of transferList.entries()) { %>
                     <tr class="text-center" data-id="<%- t.id %>">
                         <td class=""><%- (transferList.length - i) %></td>
-                        <td class=""><a href="/financial/<%- ctx.subProject.id %>/transfer/<%- t.id %>/tender"><%- t.t_time %></a></td>
+                        <td class=""><a href="/sp/<%- ctx.subProject.id %>/financial/transfer/<%- t.id %>/tender"><%- t.t_time %></a></td>
                         <td class="text-right"><%- t.total_price %></td>
                         <td class=""><%- t.username %></td>
                         <td class="text-left" ><%- t.company %></td>
@@ -52,7 +52,6 @@
 </div>
 <script>
     const user_id = <%- ctx.session.sessionUser.accountId %>;
-    const spid = '<%- ctx.subProject.id %>';
     const whiteList = JSON.parse(unescape('<%- escape(JSON.stringify(whiteList)) %>'));
     const transferList = JSON.parse(unescape('<%- escape(JSON.stringify(transferList)) %>'));
     const financialPermission = JSON.parse(unescape('<%- escape(JSON.stringify(financialPermission)) %>'));

+ 1 - 1
app/view/financial/transfer_modal.ejs

@@ -3,7 +3,7 @@
 <!-- 新建划拨 -->
 <div class="modal fade show" id="add-transfer" data-backdrop="static">
     <div class="modal-dialog" role="document">
-        <form class="modal-content" id="add-transfer-form" action="/financial/<%- ctx.subProject.id %>/transfer/add" method="post">
+        <form class="modal-content" id="add-transfer-form" action="/sp/<%- ctx.subProject.id %>/financial/transfer/add" method="post">
             <div class="modal-header">
                 <h5 class="modal-title">新建划拨</h5>
             </div>

+ 0 - 1
app/view/financial/transfer_tender.ejs

@@ -67,7 +67,6 @@
 <script src="/public/js/bootstrap/bootstrap-select.min.js"></script>
 <script>
     const user_id = <%- ctx.session.sessionUser.accountId %>;
-    const spid = '<%- ctx.subProject.id %>';
     const trid = '<%- transferInfo.id %>';
     const whiteList = JSON.parse(unescape('<%- escape(JSON.stringify(whiteList)) %>'));
     const tenderList = JSON.parse(unescape('<%- escape(JSON.stringify(transferTenderList)) %>'));

+ 1 - 1
config/menu.js

@@ -147,7 +147,7 @@ const menu = {
         name: '资金监管',
         icon: 'fa-money',
         display: true,
-        url: '/financial',
+        // url: '/financial',
         caption: '资金监管',
         children: null,
         controller: 'financial',