ソースを参照

投资进度功能迁移及进度管理功能

ellisran 1 ヶ月 前
コミット
823d33bbd8

+ 1 - 1
app/controller/schedule_controller.js

@@ -614,7 +614,7 @@ module.exports = app => {
                 }
                 }
                 // 判断修改权限
                 // 判断修改权限
                 if (ctx.session.sessionUser.is_admin === 0) {
                 if (ctx.session.sessionUser.is_admin === 0) {
-                    throw '你没有权限修改投资进度';
+                    throw '你没有权限修改标段进度';
                 }
                 }
                 let info = '';
                 let info = '';
                 switch (data.type) {
                 switch (data.type) {

+ 0 - 5
app/controller/tender_controller.js

@@ -641,11 +641,6 @@ module.exports = app => {
                     renderData.accountList = accountList;
                     renderData.accountList = accountList;
                     renderData.accountGroup = accountGroupList;
                     renderData.accountGroup = accountGroupList;
                 }
                 }
-                if (ctx.subProject.page_show.xxjd && ctx.session.sessionUser.is_admin) {
-                    // 投资进度内容
-                    renderData.scheduleAuditList = await ctx.service.scheduleAudit.getAllDataByCondition({ where: { tid: tender.id } });
-                    renderData.scPermission = scheduleConst.permission;
-                }
                 await this.layout('tender/detail.ejs', renderData, 'tender/detail_modal.ejs');
                 await this.layout('tender/detail.ejs', renderData, 'tender/detail_modal.ejs');
             } catch (error) {
             } catch (error) {
                 this.log(error);
                 this.log(error);

+ 1 - 1
app/middleware/tender_check.js

@@ -106,7 +106,7 @@ module.exports = options => {
                 changeProjectAuditorsId.indexOf(accountId) === -1 && changeProjectXsAuditorsId.indexOf(accountId) === -1 &&
                 changeProjectAuditorsId.indexOf(accountId) === -1 && changeProjectXsAuditorsId.indexOf(accountId) === -1 &&
                 changeApplyAuditorsId.indexOf(accountId) === -1 && changePlanAuditorsId.indexOf(accountId) === -1 &&
                 changeApplyAuditorsId.indexOf(accountId) === -1 && changePlanAuditorsId.indexOf(accountId) === -1 &&
                 advanceAuditorsId.indexOf(accountId) === -1 && !this.session.sessionUser.is_admin && !isTenderTourist &&
                 advanceAuditorsId.indexOf(accountId) === -1 && !this.session.sessionUser.is_admin && !isTenderTourist &&
-                this.service.tenderPermission.getShowPermission(tender.user_permission)) {
+                !this.service.tenderPermission.getViewPermission(tender.user_permission)) {
                 // && (!scheduleUser || scheduleUser.permission === scPermission.no)) {
                 // && (!scheduleUser || scheduleUser.permission === scPermission.no)) {
                 throw '您无权查看该项目';
                 throw '您无权查看该项目';
             }
             }

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

@@ -194,7 +194,7 @@ $(function () {
             _self.addClass('disabled').attr('disabled', true);
             _self.addClass('disabled').attr('disabled', true);
             toastr.success('重新生成成功');
             toastr.success('重新生成成功');
             setTimeout(function () {
             setTimeout(function () {
-                window.location.href = '/tender/'+ getTenderId() + '/schedule/stage/order/' + order;
+                window.location.href = '/sp/' + spid + '/schedule/tender/'+ getTenderId() + '/stage/order/' + order;
             }, 500)
             }, 500)
         })
         })
     });
     });

+ 2 - 2
app/service/tender.js

@@ -125,7 +125,7 @@ module.exports = app => {
                     '        t.id IN ( SELECT cpla.`tid` FROM ' + this.ctx.service.changePlanAudit.tableName + ' AS cpla WHERE cpla.`aid` = ' + session.sessionUser.accountId + ' GROUP BY cpla.`tid`))' : '';
                     '        t.id IN ( SELECT cpla.`tid` FROM ' + this.ctx.service.changePlanAudit.tableName + ' AS cpla WHERE cpla.`aid` = ' + session.sessionUser.accountId + ' GROUP BY cpla.`tid`))' : '';
                 const changeProjectXsSql = subProject.page_show.openChangeProject ? '    OR (t.`ledger_status` = ' + auditConst.ledger.status.checked + ' AND ' +
                 const changeProjectXsSql = subProject.page_show.openChangeProject ? '    OR (t.`ledger_status` = ' + auditConst.ledger.status.checked + ' AND ' +
                     '        t.id IN ( SELECT cpxa.`tid` FROM ' + this.ctx.service.changeProjectXsAudit.tableName + ' AS cpxa WHERE cpxa.`aid` = ' + session.sessionUser.accountId + ' GROUP BY cpxa.`tid`))' : '';
                     '        t.id IN ( SELECT cpxa.`tid` FROM ' + this.ctx.service.changeProjectXsAudit.tableName + ' AS cpxa WHERE cpxa.`aid` = ' + session.sessionUser.accountId + ' GROUP BY cpxa.`tid`))' : '';
-                const xxjdSql = subProject.page_show.xxjd ? '    OR (t.id IN ( SELECT xxjd.`tid` FROM ' + this.ctx.service.scheduleAudit.tableName + ' AS xxjd WHERE xxjd.`permission` != 0 AND xxjd.`audit_id` = ' + session.sessionUser.accountId + ' GROUP BY xxjd.`tid`))' : '';
+                // const xxjdSql = subProject.page_show.xxjd ? '    OR (t.id IN ( SELECT xxjd.`tid` FROM ' + this.ctx.service.scheduleAudit.tableName + ' AS xxjd WHERE xxjd.`permission` != 0 AND xxjd.`audit_id` = ' + session.sessionUser.accountId + ' GROUP BY xxjd.`tid`))' : '';
                 sql = 'SELECT t.`id`, t.`project_id`, t.`name`, t.`status`, t.`category`, t.`ledger_times`, t.`ledger_status`, t.`measure_type`, t.`user_id`, t.`create_time`, t.`total_price`, t.`deal_tp`,' +
                 sql = 'SELECT t.`id`, t.`project_id`, t.`name`, t.`status`, t.`category`, t.`ledger_times`, t.`ledger_status`, t.`measure_type`, t.`user_id`, t.`create_time`, t.`total_price`, t.`deal_tp`,' +
                     '    pa.`name` As `user_name`, pa.`role` As `user_role`, pa.`company` As `user_company` ' +
                     '    pa.`name` As `user_name`, pa.`role` As `user_role`, pa.`company` As `user_company` ' +
                     // '  FROM ?? As t, ?? As pa ' +
                     // '  FROM ?? As t, ?? As pa ' +
@@ -163,7 +163,7 @@ module.exports = app => {
                     // 参与审批 预付款 的标段
                     // 参与审批 预付款 的标段
                     '    OR (t.id IN ( SELECT ad.`tid` FROM ?? AS ad WHERE ad.`audit_id` = ? GROUP BY ad.`tid`))' +
                     '    OR (t.id IN ( SELECT ad.`tid` FROM ?? AS ad WHERE ad.`audit_id` = ? GROUP BY ad.`tid`))' +
                     // 参与审批 变更立项书及变更申请 的标段
                     // 参与审批 变更立项书及变更申请 的标段
-                    changeProjectSql + changeApplySql + changePlanSql + changeProjectXsSql + xxjdSql +
+                    changeProjectSql + changeApplySql + changePlanSql + changeProjectXsSql +
                     // 游客权限的标段
                     // 游客权限的标段
                     '    OR (t.id IN ( SELECT tt.`tid` FROM ?? AS tt WHERE tt.`user_id` = ?))' +
                     '    OR (t.id IN ( SELECT tt.`tid` FROM ?? AS tt WHERE tt.`user_id` = ?))' +
                     // 未参与,但可见的标段
                     // 未参与,但可见的标段

+ 2 - 2
app/service/tender_permission.js

@@ -262,11 +262,11 @@ module.exports = app => {
             }
             }
         }
         }
 
 
-        async getShowPermission(permission) {
+        async getViewPermission(permission) {
             // 存在1代表它有权限查看本标段
             // 存在1代表它有权限查看本标段
             let tenderPermission = false;
             let tenderPermission = false;
             for (const p in this.PermissionConst) {
             for (const p in this.PermissionConst) {
-                if (permission[p] && permission[p].split(',').indexOf('1') > -1) {
+                if (permission[p] && permission[p].view) {
                     tenderPermission = true;
                     tenderPermission = true;
                     break;
                     break;
                 }
                 }

+ 2 - 2
app/view/schedule/modal.ejs

@@ -15,7 +15,7 @@
             </div>
             </div>
             <% } else { %>
             <% } else { %>
             <div class="modal-body">
             <div class="modal-body">
-                <h5>首次使用投资进度需要进行进度台账初始化设置</h5>
+                <h5>首次使用标段进度需要进行进度台账初始化设置</h5>
             </div>
             </div>
             <div class="modal-footer">
             <div class="modal-footer">
                 <a href="/sp/<%- ctx.subProject.id %>/schedule/tender/<%- ctx.tender.id %>/ledger" class="btn btn-sm btn-primary">开始设置</a>
                 <a href="/sp/<%- ctx.subProject.id %>/schedule/tender/<%- ctx.tender.id %>/ledger" class="btn btn-sm btn-primary">开始设置</a>
@@ -34,7 +34,7 @@
                     <h5 class="modal-title">提示</h5>
                     <h5 class="modal-title">提示</h5>
                 </div>
                 </div>
                 <div class="modal-body">
                 <div class="modal-body">
-                    <h5>台账正在进行修订,投资进度无法进行任何操作。</h5>
+                    <h5>台账正在进行修订,标段进度无法进行任何操作。</h5>
                 </div>
                 </div>
                 <div class="modal-footer">
                 <div class="modal-footer">
                     <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">好的</button>
                     <button type="button" class="btn btn-secondary btn-sm" data-dismiss="modal">好的</button>

+ 1 - 1
app/view/sp_setting/manage.ejs

@@ -262,7 +262,7 @@
                                     <th >职位</th>
                                     <th >职位</th>
                                     <th width="10%">审批流程</th>
                                     <th width="10%">审批流程</th>
                                     <th width="10%">游客账号</th>
                                     <th width="10%">游客账号</th>
-                                    <th width="10%">投资进度</th>
+                                    <th width="10%">标段进度</th>
                                     <th width="10%">施工日志</th>
                                     <th width="10%">施工日志</th>
                                     <th width="10%">操作</th>
                                     <th width="10%">操作</th>
                                 </tr>
                                 </tr>

+ 0 - 3
app/view/tender/detail.ejs

@@ -64,9 +64,6 @@
                             管理员
                             管理员
                         </a>
                         </a>
                         <div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
                         <div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
-                            <% if (parseInt(ctx.subProject.page_show.xxjd) === 1) { %>
-                                <a href="#xxjd-set" data-toggle="modal" data-target="#xxjd-set" class="dropdown-item">投资进度</a>
-                            <% } %>
                             <a href="/tender/<%- tender.id %>/shenpi" class="dropdown-item">审批流程</a>
                             <a href="/tender/<%- tender.id %>/shenpi" class="dropdown-item">审批流程</a>
                             <a href="#bd-set-9" data-toggle="modal" data-target="#bd-set-9" class="dropdown-item">游客账号 <span id="tourist-num" <% if (tourists.length !== 0) { %>class="badge badge-secondary"<% } %>><% if (tourists.length !== 0) { %><%- tourists.length %><% } %></span></a>
                             <a href="#bd-set-9" data-toggle="modal" data-target="#bd-set-9" class="dropdown-item">游客账号 <span id="tourist-num" <% if (tourists.length !== 0) { %>class="badge badge-secondary"<% } %>><% if (tourists.length !== 0) { %><%- tourists.length %><% } %></span></a>
                             <a href="#bd-set-10" data-toggle="modal" data-target="#bd-set-10" class="dropdown-item">上报控制</a>
                             <a href="#bd-set-10" data-toggle="modal" data-target="#bd-set-10" class="dropdown-item">上报控制</a>

+ 7 - 276
app/view/tender/detail_modal.ejs

@@ -1999,9 +1999,9 @@
                                     <dt><a href="javascript: void(0);" class="acc-btn" data-groupid="<%- idx %>" data-type="hide"><i class="fa fa-plus-square"></i></a> <%- group.groupName %></dt>
                                     <dt><a href="javascript: void(0);" class="acc-btn" data-groupid="<%- idx %>" data-type="hide"><i class="fa fa-plus-square"></i></a> <%- group.groupName %></dt>
                                     <div class="dd-content" data-toggleid="<%- idx %>">
                                     <div class="dd-content" data-toggleid="<%- idx %>">
                                         <% group.groupList.forEach(item => { %>
                                         <% group.groupList.forEach(item => { %>
-                                            <% if (item.id !== ctx.tender.data.user_id) { 
+                                            <% if (item.id !== ctx.tender.data.user_id) {
                                                 const isScheduled = tourists.some(sa => sa.user_id === item.id);
                                                 const isScheduled = tourists.some(sa => sa.user_id === item.id);
-                                                
+
                                                 %>
                                                 %>
                                                 <%
                                                 <%
                                                 let markStyle = ' style="display:none;"';
                                                 let markStyle = ' style="display:none;"';
@@ -2260,7 +2260,7 @@
                     const newVal = $(this).val();
                     const newVal = $(this).val();
                     let html = '';
                     let html = '';
 
 
-                    const currentSelectedIds = new Set(); 
+                    const currentSelectedIds = new Set();
                     $('#tourist-users tr').each(function() {
                     $('#tourist-users tr').each(function() {
                         const rowUserId = parseInt($(this).data('id'), 10);
                         const rowUserId = parseInt($(this).data('id'), 10);
                         if (!isNaN(rowUserId)) {
                         if (!isNaN(rowUserId)) {
@@ -2271,14 +2271,14 @@
 
 
                     if (newVal && newVal === oldSearchVal2) {
                     if (newVal && newVal === oldSearchVal2) {
                         accountList.filter(item => item && item.id !== cur_tender_uid && (item.name.indexOf(newVal) !== -1 || (item.mobile && item.mobile.indexOf(newVal) !== -1))).forEach(item => {
                         accountList.filter(item => item && item.id !== cur_tender_uid && (item.name.indexOf(newVal) !== -1 || (item.mobile && item.mobile.indexOf(newVal) !== -1))).forEach(item => {
-                            
+
                             const isSelected = currentSelectedIds.has(item.id);
                             const isSelected = currentSelectedIds.has(item.id);
                             const markDisplayStyle = isSelected ? '' : ' style="display:none;"';
                             const markDisplayStyle = isSelected ? '' : ' style="display:none;"';
-                    
+
                             html += `<dd class="border-bottom p-2 mb-0 " data-id="${item.id}" >
                             html += `<dd class="border-bottom p-2 mb-0 " data-id="${item.id}" >
                         <p class="mb-0 d-flex"><span class="text-primary">${item.name}</span><span
                         <p class="mb-0 d-flex"><span class="text-primary">${item.name}</span><span
                                 class="ml-auto">${item.mobile || ''}</span>
                                 class="ml-auto">${item.mobile || ''}</span>
-                            <span class="selected-mark text-success ml-2"${markDisplayStyle}><i class="fa fa-check"></i></span>     
+                            <span class="selected-mark text-success ml-2"${markDisplayStyle}><i class="fa fa-check"></i></span>
                         </p>
                         </p>
                         <span class="text-muted">${item.role || ''}</span>
                         <span class="text-muted">${item.role || ''}</span>
                     </dd>`
                     </dd>`
@@ -2374,7 +2374,7 @@
                         const userIdToAddMark = id;
                         const userIdToAddMark = id;
                         const $targetMarkSpan = $('#tourist_dropdownMenu dl dd[data-id="' + userIdToAddMark + '"] .selected-mark');
                         const $targetMarkSpan = $('#tourist_dropdownMenu dl dd[data-id="' + userIdToAddMark + '"] .selected-mark');
                         if ($targetMarkSpan.length > 0) {
                         if ($targetMarkSpan.length > 0) {
-                            $targetMarkSpan.css('display', ''); 
+                            $targetMarkSpan.css('display', '');
                         } else {
                         } else {
                             console.warn('Warning: Could not find the selected-mark span for user ID:', userIdToAddMark);
                             console.warn('Warning: Could not find the selected-mark span for user ID:', userIdToAddMark);
                         }
                         }
@@ -3094,275 +3094,6 @@
         })
         })
     </script>
     </script>
 <% } %>
 <% } %>
-<% if (ctx.subProject.page_show.xxjd && ctx.session.sessionUser.is_admin) { %>
-    <!--标段设置-投资进度-->
-    <div class="modal fade" id="xxjd-set" 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">
-                    <div class="alert alert-warning">设置可使用「投资进度」用户</div>
-                    <div class="dropdown">
-                        <button class="btn btn-outline-primary btn-sm dropdown-toggle" type="button" id="xxjd_dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                            添加用户
-                        </button>
-                        <div class="dropdown-menu" id="xxjd_dropdownMenu" aria-labelledby="xxjd_dropdownMenuButton" style="width:220px">
-                            <div class="mb-2 p-2"><input class="form-control form-control-sm gr-search"
-                                                         placeholder="姓名/手机 检索" autocomplete="off"></div>
-                            <dl class="list-unstyled book-list">
-                                <% accountGroup.forEach((group, idx) => { %>
-                                    <dt><a href="javascript: void(0);" class="acc-btn" data-groupid="<%- idx %>" data-type="hide"><i class="fa fa-plus-square"></i></a> <%- group.groupName %></dt>
-                                    <div class="dd-content" data-toggleid="<%- idx %>">
-                                        <% group.groupList.forEach(item => { %>
-                                            <% if (item.id !== ctx.tender.data.user_id) { 
-                                                const isScheduled = scheduleAuditList.some(sa => sa.audit_id === item.id);
-                                                %>
-                                                <%
-                                                let markStyle = ' style="display:none;"';
-                                                if (isScheduled) {
-                                                    markStyle = '';
-                                                }
-                                                %>
-                                                <dd class="border-bottom p-2 mb-0 user-item" data-id="<%- item.id %>" >
-                                                    <p class="mb-0 d-flex"><span class="text-primary"><%- item.name %></span><span
-                                                                class="ml-auto"><%- item.mobile %></span>
-                                                    
-                                                    <span class="selected-mark text-success ml-2"<%- markStyle %>><i class="fa fa-check"></i></span>
-                                                    </p>
-                                                    <span class="text-muted"><%- item.role %></span>
-                                                </dd>
-                                            <% } %>
-                                        <% });%>
-                                    </div>
-                                <% }) %>
-                            </dl>
-                        </div>
-                    </div>
-                    <div class="mt-1" style="max-height: 300px;overflow: auto">
-                        <table class="table table-bordered">
-                            <tr><th>用户</th><th>查看</th><th>修改</th><th>移除</th></tr>
-                            <tbody id="schedule-users">
-                            <% for (const sa of scheduleAuditList) { %>
-                                <% const audit = ctx.helper._.find(accountList, { id : sa.audit_id }); %>
-                                <% if (audit) { %>
-                                    <tr data-id="<%- audit.id %>"><td><p class="mb-0 d-flex"><b class="col-5 pl-0"><%- audit.name %></b> <span class="text-muted"><%- audit.mobile %></span><p class="text-muted mb-0"><%- audit.role %></p></td><td>
-                                            <div class="custom-control custom-checkbox mb-2">
-                                                <input type="checkbox" data-zhi="<%- scPermission.show %>" data-id="<%- sa.id %>" id="<%- sa.id %>_customRadio41" name="customCheckbox" class="custom-control-input" <% if (sa.permission !== scPermission.no) { %>checked<% } %>>
-                                                <label class="custom-control-label" for="<%- sa.id %>_customRadio41"></label>
-                                            </div>
-                                        </td><td>
-                                            <div class="custom-control custom-checkbox mb-2">
-                                                <input type="checkbox" data-zhi="<%- scPermission.edit %>" data-id="<%- sa.id %>" id="<%- sa.id %>_customRadio42" name="customCheckbox" class="custom-control-input" <% if (sa.permission === scPermission.edit) { %>checked<% } %>>
-                                                <label class="custom-control-label" for="<%- sa.id %>_customRadio42"></label>
-                                            </div>
-                                        </td>
-                                        <td><a href="javascript:void(0);" class="text-danger remove-schedule-user" data-remove="<%- audit.id %>" data-id="<%- sa.id %>">移除</a></td>
-                                    </tr>
-                                <% } %>
-                            <% } %>
-                            </tbody>
-                        </table>
-                    </div>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">关闭</button>
-                </div>
-            </div>
-        </div>
-    </div>
-    <script>
-        $(function () {
-            const scPermission = JSON.parse(unescape('<%- escape(JSON.stringify(scPermission)) %>'));
-            // 投资进度
-            let timer = null;
-            let oldSearchVal = null;
-            $('body').on('input propertychange', '#xxjd_dropdownMenu .gr-search', function(e) {
-                oldSearchVal = e.target.value;
-                timer && clearTimeout(timer);
-                timer = setTimeout(() => {
-                    const newVal = $(this).val();
-                    let html = '';
-                    const currentSelectedIds = new Set(); 
-                    $('#schedule-users tr').each(function() {
-                        const rowUserId = parseInt($(this).data('id'), 10);
-                        if (!isNaN(rowUserId)) {
-                            currentSelectedIds.add(rowUserId);
-                        }
-                    });
-
-                    if (newVal && newVal === oldSearchVal) {
-                        accountList.filter(item => item && item.id !== cur_tender_uid && (item.name.indexOf(newVal) !== -1 || (item.mobile && item.mobile.indexOf(newVal) !== -1))).forEach(item => {
-                            
-                        const isSelected = currentSelectedIds.has(item.id);
-                        const markDisplayStyle = isSelected ? '' : ' style="display:none;"';
-                    
-                            html += `<dd class="border-bottom p-2 mb-0 " data-id="${item.id}" >
-                        <p class="mb-0 d-flex"><span class="text-primary">${item.name}</span><span
-                                class="ml-auto">${item.mobile || ''}</span>
-                               <span class="selected-mark text-success ml-2"${markDisplayStyle}><i class="fa fa-check"></i></span> 
-                                </p>
-                        <span class="text-muted">${item.role || ''}</span>
-                    </dd>`
-                        });
-                        $('#xxjd_dropdownMenu .book-list').empty();
-                        $('#xxjd_dropdownMenu .book-list').append(html);
-                    } else {
-                        if (!$('#xxjd_dropdownMenu .acc-btn').length) {
-                            accountGroup.forEach((group, idx) => {
-                                if (!group) return;
-                                html += `<dt><a href="javascript: void(0);" class="acc-btn" data-groupid="${idx}" data-type="hide"><i class="fa fa-plus-square"></i>
-                        </a> ${group.groupName}</dt>
-                        <div class="dd-content" data-toggleid="${idx}">`;
-                                group.groupList.forEach(item => {
-                                    if (item.id !== cur_tender_uid) {
-
-                                    const isSelected = currentSelectedIds.has(item.id);
-                                    const markDisplayStyle = isSelected ? '' : ' style="display:none;"';
-                                
-                                        html += `<dd class="border-bottom p-2 mb-0 " data-id="${item.id}" >
-                                    <p class="mb-0 d-flex"><span class="text-primary">${item.name}</span><span
-                                            class="ml-auto">${item.mobile || ''}</span>
-                                            <span class="selected-mark text-success ml-2"${markDisplayStyle}><i class="fa fa-check"></i></span>
-                                            </p>
-                                    <span class="text-muted">${item.role || ''}</span>
-                                </dd>`;
-                                    }
-                                });
-                                html += '</div>';
-                            });
-                            $('#xxjd_dropdownMenu .book-list').empty();
-                            $('#xxjd_dropdownMenu .book-list').append(html);
-                        }
-                    }
-                }, 400);
-            });
-
-            // 添加审批流程按钮逻辑
-            $('body').on('click', '#xxjd_dropdownMenu .book-list dt', function () {
-                const idx = $(this).find('.acc-btn').attr('data-groupid');
-                const type = $(this).find('.acc-btn').attr('data-type');
-                if (type === 'hide') {
-                    $(this).parent().find(`div[data-toggleid="${idx}"]`).show(() => {
-                        $(this).children().find('i').removeClass('fa-plus-square').addClass('fa-minus-square-o');
-                        $(this).find('.acc-btn').attr('data-type', 'show');
-
-                    })
-                } else {
-                    $(this).parent().find(`div[data-toggleid="${idx}"]`).hide(() => {
-                        $(this).children().find('i').removeClass('fa-minus-square-o').addClass('fa-plus-square');
-                        $(this).find('.acc-btn').attr('data-type', 'hide');
-                    })
-                }
-                return false;
-            });
-
-            // 选中用户
-            $('body').on('click', '#xxjd_dropdownMenu dl dd', function (e) {
-                const id = parseInt($(this).data('id'));
-                if (id) {
-                    const user = _.find(accountList, function (item) {
-                        return item.id === id;
-                    });
-                    const saIdList = [];
-                    for (let i = 0; i < $('#schedule-users tr').length; i++) {
-                        saIdList.push(parseInt($('#schedule-users tr').eq(i).data('id')));
-                    }
-                    if (_.includes(saIdList, id)) {
-                        toastr.error('该用户已存在列表中,无需重复添加');
-                        return;
-                    }
-
-                    const prop = {
-                        audit_id: id,
-                        type: 'add',
-                    };
-                    postData('/tender/' + cur_tenderid + '/schedule/audit/save', prop, function (data) {
-                        const html = '<tr data-id="'+ user.id + '"><td><p class="mb-0 d-flex"><b class="col-5 pl-0">'+ user.name + '</b> <span class="text-muted">'+ user.mobile + '</span><p class="text-muted mb-0">'+ user.role + '</p></td><td>\n' +
-                            '                                <div class="custom-control custom-checkbox mb-2">\n' +
-                            '                                    <input type="checkbox" data-zhi="'+ scPermission.show +'" data-id="'+ data.id + '" id="'+ data.id + '_customRadio41" name="customCheckbox" class="custom-control-input" checked>\n' +
-                            '                                    <label class="custom-control-label" for="'+ data.id + '_customRadio41"></label>\n' +
-                            '                                </div>\n' +
-                            '                            </td><td>\n' +
-                            '                                <div class="custom-control custom-checkbox mb-2">\n' +
-                            '                                    <input type="checkbox" data-zhi="'+ scPermission.edit +'" data-id="'+ data.id + '" id="'+ data.id + '_customRadio42" name="customCheckbox" class="custom-control-input">\n' +
-                            '                                    <label class="custom-control-label" for="'+ data.id + '_customRadio42"></label>\n' +
-                            '                                </div>\n' +
-                            '                            </td>\n' +
-                            '                            <td><a href="javascript:void(0);" class="text-danger remove-schedule-user" data-remove="'+ user.id + '" data-id="'+ data.id + '">移除</a></td>\n' +
-                            '                        </tr>';
-                        $('#schedule-users').append(html);
-                        const userIdToAddMark = id;
-                        const $targetMarkSpan = $('#xxjd_dropdownMenu dl dd[data-id="' + userIdToAddMark + '"] .selected-mark');
-                        if ($targetMarkSpan.length > 0) {
-                            $targetMarkSpan.css('display', ''); 
-                        } else {
-                            console.warn('Warning: Could not find the selected-mark span for user ID:', userIdToAddMark);
-                        }
-                    });
-                }
-                e.stopPropagation();
-            });
-
-            // 移除用户
-            $('body').on('click', '#schedule-users .remove-schedule-user', function () {
-                const id = parseInt($(this).data('id'));
-                const removeId = parseInt($(this).data('remove'));
-                if (id) {
-                    const prop = {
-                        id,
-                        type: 'del',
-                    };
-                    const _self = $(this);
-                    postData('/tender/' + cur_tenderid + '/schedule/audit/save', prop, function (data) {
-                        _self.parents('tr').remove();
-
-                        const userIdToRemoveMark = removeId;
-                        console.log('Removing mark for user ID:', userIdToRemoveMark);
-                        const $targetMarkSpanToRemove = $('#xxjd_dropdownMenu dl dd[data-id="' + userIdToRemoveMark + '"] .selected-mark');
-                        if ($targetMarkSpanToRemove.length > 0) {
-                            $targetMarkSpanToRemove.css('display', 'none');
-                        } else {
-                            console.warn('Warning: Could not find the selected-mark span for user ID:', userIdToRemoveMark, 'to hide.');
-                        }
-                       
-                    });
-                }
-            });
-
-            // 权限更改
-            $('body').on('click', '#schedule-users input[type="checkbox"]', function () {
-                let permission = scPermission.no;
-                const value = parseInt($(this).data('zhi'));
-                if ($(this).is(':checked')) {
-                    if (value === scPermission.edit) {
-                        permission = scPermission.edit;
-                        $(this).parents('td').siblings().find('input').prop('checked', true);
-                    } else if (value === scPermission.show) {
-                        permission = scPermission.show;
-                    }
-                } else {
-                    if (value === scPermission.edit) {
-                        permission = scPermission.show;
-                    } else if (value === scPermission.show) {
-                        permission = scPermission.no;
-                        $(this).parents('td').siblings().find('input').prop('checked', false);
-                    }
-                }
-                const id = parseInt($(this).data('id'));
-                const prop = {
-                    id,
-                    permission,
-                    type: 'edit',
-                };
-                const _self = $(this);
-                postData('/tender/' + cur_tenderid + '/schedule/audit/save', prop, function (data) {
-                });
-            });
-        })
-    </script>
-<% } %>
 
 
 <!--在建状态-->
 <!--在建状态-->
 <% if (ctx.tender.data.build_status === buildStatus.status.build) { %>
 <% if (ctx.tender.data.build_status === buildStatus.status.build) { %>