فهرست منبع

权限更改及目录标段查看

laiguoran 2 سال پیش
والد
کامیت
ec60a1e80f

+ 7 - 10
app/const/payment.js

@@ -10,21 +10,18 @@
 
 // 调差类型
 const audit_admin_permission = {
-    tender: 1,
-    folder: 1,
-    process: 1,
+    admin: 1,
+    view_all: 1,
 };
 const audit_permission = {
-    tender: 0,
-    folder: 0,
-    process: 0,
+    admin: 0,
+    view_all: 0,
 };
 const permission_list = [
-    { text: '新建标段', type: 'tender', value: 0 },
-    { text: '新建目录', type: 'folder', value: 0 },
-    { text: '设置审批流程', type: 'process', value: 0 },
+    { text: '模块管理员', type: 'admin', value: 0 },
+    { text: '查看所有标段', type: 'view_all', value: 0 },
 ];
-const permission_type_array = ['tender', 'folder', 'process'];
+const permission_type_array = ['admin', 'view_all'];
 const permission_value_array = [0, 1];
 
 // 跟随着标段同时生成的固定报表表单

+ 46 - 47
app/controller/payment_controller.js

@@ -62,39 +62,18 @@ module.exports = app => {
             }
         }
 
-        async setting(ctx) {
-            try {
-                if (!ctx.session.sessionUser.is_admin) {
-                    throw '您无权打开此页';
-                }
-                const projectInfo = await ctx.service.project.getDataById(ctx.session.sessionProject.id);
-                const modes = projectInfo.payment_setting ? JSON.parse(projectInfo.payment_setting) : ctx.helper._.cloneDeep(paymentConst.setting_modes);
-                for (const m in modes) {
-                    const detailCount = await ctx.service.paymentDetail.getCountByPidType(ctx.session.sessionProject.id, modes[m].value);
-                    modes[m].can_check = !detailCount;
-                }
-                const renderData = {
-                    setting_modes: paymentConst.setting_modes,
-                    modes,
-                    jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.payment.setting),
-                };
-                await this.layout('payment/setting.ejs', renderData);
-            } catch (err) {
-                console.log(err);
-                this.log(err);
-                ctx.session.postError = err.toString();
-                ctx.redirect('/payment');
-            }
-        }
-
         async listLoad(ctx) {
             const responseData = {
                 err: 0, msg: '', data: {},
             };
+            const auditPermission = await this.ctx.service.paymentPermissionAudit.getOnePermission(ctx.session.sessionUser.is_admin, ctx.session.sessionUser.accountId);
+            if (!auditPermission) {
+                throw '权限不足';
+            }
             // 先获取你创建的标段及参与的标段
-            const tenderList = await ctx.service.paymentTender.getList(ctx.session.sessionUser.accountId);
+            const tenderList = await ctx.service.paymentTender.getList(ctx.session.sessionUser.accountId, auditPermission);
             // 获取你创建的目录及对应目录下的所有目录
-            const folderList = await ctx.service.paymentFolder.getList(ctx.session.sessionUser.accountId, tenderList);
+            const folderList = await ctx.service.paymentFolder.getList(ctx.session.sessionUser.accountId, tenderList, auditPermission);
             if (tenderList.length > 0) {
                 for (const t of tenderList) {
                     t.have_notice = await ctx.service.paymentDetail.haveNotice2Tender(t.id, ctx.session.sessionUser.accountId);
@@ -150,13 +129,13 @@ module.exports = app => {
                             throw '修改权限失败';
                         }
                         break;
-                    case 'save-permission-all':
-                        result = await ctx.service.paymentPermissionAudit.updateAllPermission(projectId, data.permission_type, data.value);
-                        if (!result) {
-                            throw '修改权限失败';
-                        }
-                        responseData.data = await ctx.service.paymentPermissionAudit.getList(projectId);
-                        break;
+                    // case 'save-permission-all':
+                    //     result = await ctx.service.paymentPermissionAudit.updateAllPermission(projectId, data.permission_type, data.value);
+                    //     if (!result) {
+                    //         throw '修改权限失败';
+                    //     }
+                    //     responseData.data = await ctx.service.paymentPermissionAudit.getList(projectId);
+                    //     break;
                     default: throw '参数有误';
                 }
                 ctx.body = responseData;
@@ -181,18 +160,15 @@ module.exports = app => {
                 if (!data.type) {
                     throw '提交数据错误';
                 }
+                if (!auditPermission.admin) {
+                    throw '您没有权限操作此功能';
+                }
                 let type = '';
                 switch (data.type) {
                     case 'add-folder':
-                        if (!auditPermission.folder) {
-                            throw '没有权限新建目录';
-                        }
                         await ctx.service.paymentFolder.addFolder(projectId, ctx.session.sessionUser.accountId, data.parentId, data.name);
                         break;
                     case 'add-tender':
-                        if (!auditPermission.tender) {
-                            throw '没有权限新建标段';
-                        }
                         await ctx.service.paymentTender.addTender(projectId, ctx.session.sessionUser.accountId, data.folderId, data.name);
                         break;
                     case 'edit-name':
@@ -245,9 +221,9 @@ module.exports = app => {
                     default: throw '参数有误';
                 }
                 // 先获取你创建的标段及参与的标段
-                const tenderList = await ctx.service.paymentTender.getList(ctx.session.sessionUser.accountId);
+                const tenderList = await ctx.service.paymentTender.getList(ctx.session.sessionUser.accountId, auditPermission);
                 // 获取你创建的目录及对应目录下的所有目录
-                const folderList = await ctx.service.paymentFolder.getList(ctx.session.sessionUser.accountId, tenderList);
+                const folderList = await ctx.service.paymentFolder.getList(ctx.session.sessionUser.accountId, tenderList, auditPermission);
                 responseData.data.folderList = folderList;
                 responseData.data.tenderList = tenderList;
                 ctx.body = responseData;
@@ -257,6 +233,31 @@ module.exports = app => {
             }
         }
 
+        async setting(ctx) {
+            try {
+                if (!ctx.session.sessionUser.is_admin) {
+                    throw '您无权打开此页';
+                }
+                const projectInfo = await ctx.service.project.getDataById(ctx.session.sessionProject.id);
+                const modes = projectInfo.payment_setting ? JSON.parse(projectInfo.payment_setting) : ctx.helper._.cloneDeep(paymentConst.setting_modes);
+                for (const m in modes) {
+                    const detailCount = await ctx.service.paymentDetail.getCountByPidType(ctx.session.sessionProject.id, modes[m].value);
+                    modes[m].can_check = !detailCount;
+                }
+                const renderData = {
+                    setting_modes: paymentConst.setting_modes,
+                    modes,
+                    jsFiles: this.app.jsFiles.common.concat(this.app.jsFiles.payment.setting),
+                };
+                await this.layout('payment/setting.ejs', renderData);
+            } catch (err) {
+                console.log(err);
+                this.log(err);
+                ctx.session.postError = err.toString();
+                ctx.redirect('/payment');
+            }
+        }
+
         /**
          * 获取审批界面所需的 原报、审批人数据等
          * @param ctx
@@ -505,7 +506,7 @@ module.exports = app => {
 
         async _returnRptProjectList(ctx, formProcess = false) {
             // 获取报表表单列表
-            if (ctx.tender.uid === ctx.session.sessionUser.accountId || formProcess) {
+            if (ctx.payment.auditPermission.view_all || ctx.tender.uid === ctx.session.sessionUser.accountId || formProcess) {
                 const rptProject = await ctx.service.rptTreeNode.getDataByCondition({ pid: ctx.session.sessionProject.id, name: '01.支付审批报表' });
                 const rptProjectList = rptProject && rptProject.items ? JSON.parse(rptProject.items) : [];
                 const tenderRptList = await ctx.service.paymentTenderRpt.getProcessList(ctx.tender.id);
@@ -516,8 +517,7 @@ module.exports = app => {
 
         async process(ctx) {
             try {
-                const auditPermission = await this.ctx.service.paymentPermissionAudit.getOnePermission(ctx.session.sessionUser.is_admin, ctx.session.sessionUser.accountId);
-                if (!auditPermission || !auditPermission.process) {
+                if (!ctx.payment.auditPermission || !ctx.payment.auditPermission.admin) {
                     throw '权限不足';
                 }
                 let [tenderRptList, rptProjectList] = await this._returnRptProjectList(ctx, true);
@@ -558,8 +558,7 @@ module.exports = app => {
 
         async processSave(ctx) {
             try {
-                const auditPermission = await this.ctx.service.paymentPermissionAudit.getOnePermission(ctx.session.sessionUser.is_admin, ctx.session.sessionUser.accountId);
-                if (!auditPermission || !auditPermission.process) {
+                if (!ctx.payment.auditPermission || !ctx.payment.auditPermission.admin) {
                     throw '权限不足';
                 }
                 const responseData = {

+ 1 - 1
app/middleware/payment_detail_check.js

@@ -76,7 +76,7 @@ module.exports = options => {
                 } else {
                     detail.curOrder = accountId === detail.curAuditor.aid ? detail.curAuditor.order : detail.curAuditor.order - 1;
                 }
-            } else if (rptAuditIds.indexOf(accountId) !== -1) {
+            } else if (rptAuditIds.indexOf(accountId) !== -1 || this.payment.auditPermission.view_all) {
                 if (detail.status === status.uncheck || detail.status === status.checkNo) {
                     throw '您无权查看该数据';
                 }

+ 6 - 1
app/middleware/payment_tender_check.js

@@ -32,11 +32,16 @@ module.exports = options => {
             for (const m in paymentConst.setting_modes) {
                 if (!modes[m]) modes[m] = _.cloneDeep(paymentConst.setting_modes[m]);
             }
+            const auditPermission = yield this.service.paymentPermissionAudit.getOnePermission(this.session.sessionUser.is_admin, this.session.sessionUser.accountId);
             if (!tender) {
                 throw '标段不存在';
             }
+            const payment = {
+                auditPermission,
+                project_setting: modes,
+            }
             this.tender = tender;
-            this.project_setting = modes;
+            this.payment = payment;
             yield next;
         } catch (err) {
             // 输出错误到日志

+ 15 - 17
app/public/js/payment_index.js

@@ -59,38 +59,36 @@ $(function () {
         // 创建人
         html.push('<td style="width: 15%" class="text-center">', node.user_name ? node.user_name : '', '</td>');
         // 创建时间
-        html.push('<td style="width: 15%">', node.in_time && node.parent_id === undefined ? moment(node.in_time).format('YYYY-MM-DD HH:mm:ss') : '', '</td>');
+        html.push('<td style="width: 15%" class="text-center">', node.in_time && node.parent_id === undefined ? moment(node.in_time).format('YYYY-MM-DD HH:mm:ss') : '', '</td>');
         // 审批流程
-        html.push('<td style="width: 15%">');
-        if (node.parent_id === undefined && auditPermission.process) {
+        html.push('<td style="width: 15%" class="text-center">');
+        if (node.parent_id === undefined && auditPermission.admin) {
             html.push('<a href="/payment/'+ node.id +'/process" target="_blank">设置</a>');
         }
         html.push('</td>');
         // 操作
-        html.push('<td style="width: 15%">');
-        if (uid === node.uid || (auditPermission.tender && node.is_leaf) || (auditPermission.folder && node.parent_id !== undefined && !node.is_tender)) {
+        html.push('<td style="width: 15%" class="text-center">');
+        if (auditPermission.admin) {
             html.push('<div class="dropdown">\n' +
                 '                        <a href="#" class="dropdown-toggle text-primary" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n' +
                 '                          <i class="fa fa-bars"></i>\n' +
                 '                        </a>\n' +
                 '                        <div class="dropdown-menu">\n');
-            if (uid === node.uid) {
-                html.push('<a class="dropdown-item edit_name_btn" data-type="'+ (node.parent_id === undefined ? 'tender' : 'folder') +'" data-id="'+ node.id +'" href="javascript:void(0);"><i class="fa fa-edit mr-2"></i>重命名</a>\n');
-                if (!node.had_tender) {
-                    if (node.have_detail) {
-                        html.push('<a class="dropdown-item" style="cursor:not-allowed" href="javascript:void(0);" data-toggle="tooltip" data-placement="bottom" title="请先删除所有报表表单详情"><i class="fa fa-remove mr-2"></i>删除</a>\n');
-                    } else {
-                        html.push('<a class="dropdown-item show_del_btn" data-type="'+ (node.parent_id === undefined ? 'tender' : 'folder') +'" data-id="'+ node.id +'" href="javascript:void(0);"><i class="fa fa-remove mr-2"></i>删除</a>\n');
-                    }
+            html.push('<a class="dropdown-item edit_name_btn" data-type="'+ (node.parent_id === undefined ? 'tender' : 'folder') +'" data-id="'+ node.id +'" href="javascript:void(0);"><i class="fa fa-edit mr-2"></i>重命名</a>\n');
+            if (!node.had_tender) {
+                if (node.have_detail) {
+                    html.push('<a class="dropdown-item" style="cursor:not-allowed" href="javascript:void(0);" data-toggle="tooltip" data-placement="bottom" title="请先删除所有报表表单详情"><i class="fa fa-remove mr-2"></i>删除</a>\n');
+                } else {
+                    html.push('<a class="dropdown-item show_del_btn" data-type="'+ (node.parent_id === undefined ? 'tender' : 'folder') +'" data-id="'+ node.id +'" href="javascript:void(0);"><i class="fa fa-remove mr-2"></i>删除</a>\n');
                 }
             }
-            if (uid === node.uid && ((auditPermission.tender && node.is_leaf) || (auditPermission.folder && node.parent_id !== undefined && !node.is_tender))) {
+            if ((auditPermission.admin && node.is_leaf) || (auditPermission.admin && node.parent_id !== undefined && !node.is_tender)) {
                 html.push('<div class="dropdown-divider"></div>\n');
             }
-            if (auditPermission.folder && node.parent_id !== undefined && !node.is_tender) {
+            if (auditPermission.admin && node.parent_id !== undefined && !node.is_tender) {
                 html.push('<a class="dropdown-item show_new_folder_btn" href="#add-folder" data-toggle="modal" data-target="#add-folder" data-parentName="'+ node.name +'" data-parentId="'+ node.id +'"><i class="fa fa-folder-o mr-2"></i>新建子目录</a>\n');
             }
-            if (auditPermission.tender && node.is_leaf) {
+            if (auditPermission.admin && node.is_leaf) {
                 html.push('<a class="dropdown-item show_new_tender_btn" href="javascript:void(0);"><i class="fa fa-folder-o mr-2"></i>新建标段</a>\n');
             }
             html.push('                        </div>\n' +
@@ -228,7 +226,7 @@ $(function () {
         $(this).addClass('table-warning');
         const fid = parseInt($(this).attr('fid'));
         const folderInfo = _.find(allFolders, { id: fid });
-        if (auditPermission.tender && folderInfo && folderInfo.is_leaf) {
+        if (auditPermission.admin && folderInfo && folderInfo.is_leaf) {
             $('#show_new_tender_btn').show();
             $('#add_tender_folder_id').val(fid);
             $('#add_tender_folder_name').val(folderInfo.name);

+ 4 - 1
app/service/payment_folder.js

@@ -83,7 +83,10 @@ module.exports = app => {
             return resultData;
         }
 
-        async getList(uid, tenderList) {
+        async getList(uid, tenderList, auditPermission) {
+            if (auditPermission.view_all) {
+                return await this.getAllDataByCondition({ where: { pid: this.ctx.session.sessionProject.id } });
+            }
             let folderList = await this.getAllDataByCondition({ where: { uid } });
             // 再找出标段对应的目录及自建的目录下的子目录
             if (tenderList.length > 0) {

+ 8 - 3
app/service/payment_tender.js

@@ -17,13 +17,18 @@ module.exports = app => {
             this.tableName = 'payment_tender';
         }
 
-        async getList(uid) {
-            const sql = 'SELECT pt.*, pa.name as user_name FROM ?? as pt LEFT JOIN ?? as pa ON pt.`uid` = pa.`id` WHERE pt.`uid` = ? ' +
+        async getList(uid, auditPermission) {
+            if (auditPermission.view_all) {
+                const sql1 = 'SELECT pt.*, pa.name as user_name FROM ?? as pt LEFT JOIN ?? as pa ON pt.`uid` = pa.`id` WHERE pid = ?';
+                const params1 = [this.tableName, this.ctx.service.projectAccount.tableName, this.ctx.session.sessionProject.id];
+                return await this.db.query(sql1, params1);
+            }
+            const sql = 'SELECT pt.*, pa.name as user_name FROM ?? as pt LEFT JOIN ?? as pa ON pt.`uid` = pa.`id` WHERE pid = ? AND pt.`uid` = ? ' +
                 'OR pt.`id` in (SELECT pda.`tender_id` FROM ?? as pda LEFT JOIN ?? as pd ON pda.`tender_id` = pd.`tender_id` ' +
                 'WHERE pd.`status` != ' + auditConst.status.uncheck + ' AND pda.`aid` = ?)' +
                 'OR pt.`id` in (SELECT pra.`tender_id` FROM ?? as pra LEFT JOIN ?? as pd ON pra.`tender_id` = pd.`tender_id` ' +
                 'WHERE (pd.`status` != ' + auditConst.status.uncheck + ' OR pd.`status` !=' + auditConst.status.checkNo + ') AND pra.`uid` = ?)';
-            const params = [this.tableName, this.ctx.service.projectAccount.tableName, uid,
+            const params = [this.tableName, this.ctx.service.projectAccount.tableName, this.ctx.session.sessionProject.id, uid,
                 this.ctx.service.paymentDetailAudit.tableName, this.ctx.service.paymentDetail.tableName, uid,
                 this.ctx.service.paymentRptAudit.tableName, this.ctx.service.paymentDetail.tableName, uid];
             return await this.db.query(sql, params);

+ 6 - 6
app/service/payment_tender_rpt.js

@@ -19,9 +19,9 @@ module.exports = app => {
 
         async getList(tid, uid) {
             const typeValues = [];
-            for (const m in this.ctx.project_setting) {
-                if (this.ctx.project_setting[m].checked) {
-                    typeValues.push(this.ctx.project_setting[m].value);
+            for (const m in this.ctx.payment.project_setting) {
+                if (this.ctx.payment.project_setting[m].checked) {
+                    typeValues.push(this.ctx.payment.project_setting[m].value);
                 }
             }
             if (typeValues.length === 0) {
@@ -38,9 +38,9 @@ module.exports = app => {
 
         async getProcessList(id) {
             const typeValues = [];
-            for (const m in this.ctx.project_setting) {
-                if (this.ctx.project_setting[m].checked) {
-                    typeValues.push(this.ctx.project_setting[m].value);
+            for (const m in this.ctx.payment.project_setting) {
+                if (this.ctx.payment.project_setting[m].checked) {
+                    typeValues.push(this.ctx.payment.project_setting[m].value);
                 }
             }
             if (typeValues.length === 0) {

+ 1 - 3
app/view/payment/index.ejs

@@ -3,10 +3,8 @@
         <div class="title-main  d-flex justify-content-between">
             <div>支付审批 <% if (ctx.session.sessionUser.is_admin) { %><a href="/payment/setting" class="ml-1" data-toggle="tooltip" data-placement="top" title="模块配置"><i class="fa fa-cog"></i></a><% } %></div>
             <div>
-                <% if (auditPermission.tender) { %>
+                <% if (auditPermission.admin) { %>
                 <a href="javascript:void(0);" style="display: none" id="show_new_tender_btn" class="btn btn-sm btn-primary pull-right show_new_tender_btn">新建标段</a>
-                <% } %>
-                <% if (auditPermission.folder) { %>
                 <a href="#add-folder" data-toggle="modal" data-target="#add-folder" data-parentId="0" class="btn btn-sm btn-primary pull-right mr-2 show_new_folder_btn">新建目录</a>
                 <% } %>
                 <% if (ctx.session.sessionUser.is_admin) { %>

+ 23 - 26
app/view/payment/modal.ejs

@@ -1,4 +1,4 @@
-<% if (auditPermission.folder) { %>
+<% if (auditPermission.admin) { %>
 <!-- 弹窗新建目录 -->
 <div class="modal fade" id="add-folder" data-backdrop="static">
     <div class="modal-dialog" role="document">
@@ -27,7 +27,6 @@
         </div>
     </div>
 </div>
-<% } %>
 <div class="modal fade" id="edit-name" data-backdrop="static">
     <div class="modal-dialog" role="document">
         <div class="modal-content">
@@ -53,8 +52,7 @@
             </div>
         </div>
     </div>
-</div>
-<% if (auditPermission.tender) { %>
+</div>>
 <!-- 弹窗新建标段 -->
 <div class="modal fade" id="add-tender" data-backdrop="static">
     <div class="modal-dialog" role="document">
@@ -83,7 +81,6 @@
         </div>
     </div>
 </div>
-<% } %>
 <!-- 弹窗删除项目 -->
 <div class="modal fade" id="del-project" data-backdrop="static">
     <div class="modal-dialog" role="document">
@@ -103,7 +100,7 @@
         </div>
     </div>
 </div>
-
+<% } %>
 <% if (ctx.session.sessionUser.is_admin) { %>
     <link href="/public/css/bootstrap/bootstrap-table.min.css" rel="stylesheet">
     <link href="/public/css/bootstrap/bootstrap-table-fixed-columns.min.css" rel="stylesheet">
@@ -160,9 +157,8 @@
                         <th class="text-center">用户名</th>
                         <th class="text-center">单位</th>
                         <th class="text-center">添加时间</th>
-                        <th class="text-center"><input type="checkbox" class="permission-all-checkbox" data-type="tender"> 新建标段</th>
-                        <th class="text-center"><input type="checkbox" class="permission-all-checkbox" data-type="folder"> 新建目录</th>
-                        <th class="text-center"><input type="checkbox" class="permission-all-checkbox" data-type="process"> 设置审批流程</th>
+                        <th class="text-center">模块管理员</th>
+                        <th class="text-center">查看所有标段</th>
                         <th class="text-center">操作</th>
                     </tr>
                     </thead>
@@ -173,9 +169,8 @@
                         <td class="text-left"><%- pa.name %></td>
                         <td class="text-left"><%- pa.company %></td>
                         <td class="text-left"><%- ctx.helper.formatFullDate(pa.create_time) %></td>
-                        <td class="text-center"><input type="checkbox" class="permission-checkbox" data-type="tender" value="<%- pa.id %>" <% if (pa.permission_json.tender) { %>checked<% } %>></td>
-                        <td class="text-center"><input type="checkbox" class="permission-checkbox" data-type="folder" value="<%- pa.id %>" <% if (pa.permission_json.folder) { %>checked<% } %>></td>
-                        <td class="text-center"><input type="checkbox" class="permission-checkbox" data-type="process" value="<%- pa.id %>" <% if (pa.permission_json.process) { %>checked<% } %>></td>
+                        <td class="text-center"><input type="checkbox" class="permission-checkbox" data-type="admin" value="<%- pa.id %>" <% if (pa.permission_json.admin) { %>checked<% } %>></td>
+                        <td class="text-center"><input type="checkbox" class="permission-checkbox" data-type="view_all" value="<%- pa.id %>" <% if (pa.permission_json.view_all) { %>checked<% } %>></td>
                         <td class="text-center"><a href="javascript:void(0);" class="text-danger del-permission-audit-a" data-id="<%- pa.id %>">移除</a></td>
                     </tr>
                     <% } %>
@@ -317,9 +312,8 @@
                         <td class="text-left">${pa.name}</td>
                         <td class="text-left">${pa.company}</td>
                         <td class="text-left">${moment(pa.create_time).format('YYYY-MM-DD HH:mm:ss')}</td>
-                        <td class="text-center"><input type="checkbox" class="permission-checkbox" data-type="tender" value="${pa.id}" ${pa.permission_json.tender ? 'checked' : ''}></td>
-                        <td class="text-center"><input type="checkbox" class="permission-checkbox" data-type="folder" value="${pa.id}" ${pa.permission_json.folder ? 'checked' : ''}></td>
-                        <td class="text-center"><input type="checkbox" class="permission-checkbox" data-type="process" value="${pa.id}" ${pa.permission_json.process ? 'checked' : ''}></td>
+                        <td class="text-center"><input type="checkbox" class="permission-checkbox" data-type="admin" value="${pa.id}" ${pa.permission_json.admin ? 'checked' : ''}></td>
+                        <td class="text-center"><input type="checkbox" class="permission-checkbox" data-type="view_all" value="${pa.id}" ${pa.permission_json.view_all ? 'checked' : ''}></td>
                         <td class="text-center"><a href="javascript:void(0);" class="text-danger del-permission-audit-a" data-id="${pa.id}">移除</a></td>
                     </tr>`;
             }
@@ -376,7 +370,6 @@
 
         // 权限勾选
         $('body').on('click', '.permission-checkbox', function () {
-            console.log($(this).attr('data-type'), $(this).val(), $(this).is(':checked'));
             const type = $(this).attr('data-type');
             const value = $(this).is(':checked') ? 1 : 0;
             const userInfo = _.find(permissionAudits, { id: parseInt($(this).val()) });
@@ -384,6 +377,10 @@
                 toastr.error('用户不存在');
             }
             userInfo.permission_json[type] = value;
+            if (value === 1 && type === 'admin') {
+                userInfo.permission_json['view_all'] = value;
+                $(this).parents('tr').find('input[data-type="view_all"]').prop('checked', value);
+            }
             const updateInfo = {
                 id: userInfo.id,
                 permission_json: userInfo.permission_json,
@@ -393,16 +390,16 @@
             })
         });
 
-        $('body').on('click', '.permission-all-checkbox', function () {
-            console.log($(this).attr('data-type'), $(this).is(':checked'));
-            const type = $(this).attr('data-type');
-            const value = $(this).is(':checked') ? 1 : 0;
-            postData('/payment/permission/save', { type: 'save-permission-all', permission_type: type, value }, function (result) {
-                // toastr.success(`成功添加 位用户`);
-                permissionAudits = result;
-                setList(permissionAudits);
-            })
-        })
+        // $('body').on('click', '.permission-all-checkbox', function () {
+        //     console.log($(this).attr('data-type'), $(this).is(':checked'));
+        //     const type = $(this).attr('data-type');
+        //     const value = $(this).is(':checked') ? 1 : 0;
+        //     postData('/payment/permission/save', { type: 'save-permission-all', permission_type: type, value }, function (result) {
+        //         // toastr.success(`成功添加 位用户`);
+        //         permissionAudits = result;
+        //         setList(permissionAudits);
+        //     })
+        // })
     })
 </script>
 <% } %>

+ 6 - 6
app/view/payment/process.ejs

@@ -9,19 +9,19 @@
             <div class="sjs-height-0">
                 <div class="m-3">
                     <ul class="nav nav-tabs" id="myTab" role="tablist">
-                        <% if (ctx.project_setting.safe.checked) { %>
+                        <% if (ctx.payment.project_setting.safe.checked) { %>
                         <li class="nav-item">
                             <a class="nav-link active" id="home-tab" data-toggle="tab" href="#home" role="tab" aria-controls="home" aria-selected="true">常规审批流程</a>
                         </li>
                         <% } %>
-                        <% if (ctx.project_setting.form.checked) { %>
+                        <% if (ctx.payment.project_setting.form.checked) { %>
                         <li class="nav-item">
-                            <a class="nav-link <% if (!ctx.project_setting.safe.checked) { %>active<% } %>" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">表单审批流程</a>
+                            <a class="nav-link <% if (!ctx.payment.project_setting.safe.checked) { %>active<% } %>" id="profile-tab" data-toggle="tab" href="#profile" role="tab" aria-controls="profile" aria-selected="false">表单审批流程</a>
                         </li>
                         <% } %>
                     </ul>
                     <div class="tab-content" id="myTabContent">
-                        <% if (ctx.project_setting.safe.checked) { %>
+                        <% if (ctx.payment.project_setting.safe.checked) { %>
                         <div class="tab-pane fade show active" id="home" role="tabpanel" aria-labelledby="home-tab">
                             <div class="row mt-3">
                                 <div class="col-8 mt-3">
@@ -62,8 +62,8 @@
                             </div>
                         </div>
                         <% } %>
-                        <% if (ctx.project_setting.form.checked) { %>
-                        <div class="tab-pane fade <% if (!ctx.project_setting.safe.checked) { %>show active<% } %>" id="profile" role="tabpanel" aria-labelledby="profile-tab">
+                        <% if (ctx.payment.project_setting.form.checked) { %>
+                        <div class="tab-pane fade <% if (!ctx.payment.project_setting.safe.checked) { %>show active<% } %>" id="profile" role="tabpanel" aria-labelledby="profile-tab">
                             <div class="row">
                                 <div class="col-4 mt-3">
                                     <table class="table table-bordered">