| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 | <% 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"><style>    /*.bootstrap-table .fixed-table-container.fixed-height:not(.has-footer) {*/    /*border-bottom: 0;*/    /*}*/    @-moz-document url-prefix() {        table {            table-layout: fixed;        }    }    .customize-header tr th .th-inner{        padding: 0.3rem!important;    }</style><!-- 成员管理 --><div class="modal fade" id="authority-list" data-backdrop="static">    <div class="modal-dialog modal-lg" role="document">        <div class="modal-content">            <div class="modal-header">                <h5 class="modal-title">成员管理</h5>            </div>            <div class="modal-body pt-0">                <div class="d-flex flex-row bg-graye">                    <input type="hidden" id="stid" />                    <div class="p-2 dropdown">                        <button class="btn btn-outline-primary btn-sm dropdown-toggle" type="button" id="dropdownMenuButton"                                data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">                            添加用户                        </button>                        <div class="dropdown-menu dropdown-menu-left" aria-labelledby="dropdownMenuButton" style="width:220px">                            <div class="mb-2 p-2"><input class="form-control form-control-sm" placeholder="姓名/手机 检索"                                                         id="gr-search" 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 => { %>                                            <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></p>                                                <span class="text-muted"><%- item.role %></span>                                            </dd>                                        <% });%>                                    </div>                                <% }) %>                            </dl>                        </div>                    </div><!--                    <div class="p-2"><a href="">同步计量账号</a></div>-->                    <div class="ml-auto p-2">                        <div class="btn-group">                            <a href="javascript:void(0)" data-toggle="dropdown" title="权限说明"><i class="fa fa-question-circle"></i></a>                            <div class="dropdown-menu bg-dark">                                <div class="dropdown-item text-light bg-dark">1、编辑节点:编辑合同管理内页树结构</div>                                <div class="dropdown-item text-light bg-dark">2、添加合同:允许添加合同</div>                                <div class="dropdown-item text-light bg-dark">3、授权范围本单位:授权节点下查看本单位人员添加的所有合同</div>                                <div class="dropdown-item text-light bg-dark">4、授权范围本节点:授权节点下查看所有人上传的合同</div>                            </div>                        </div>                    </div>                </div>                <table id="contract-audit-table" class="table table-bordered text-center" data-height="300" data-toggle="table">                    <thead>                    <tr>                        <th rowspan="2" class="align-middle">用户名</th>                        <th rowspan="2" class="align-middle">角色/职位</th>                        <th rowspan="2" class="align-middle">编辑节点</th>                        <th rowspan="2" class="align-middle">添加合同</th>                        <th colspan="2">授权节点合同查看范围</th>                        <th rowspan="2" class="align-middle">操作</th>                    </tr>                    <tr>                        <th>本单位</th>                        <th>本节点</th>                    </tr>                    </thead>                    <tbody id="contract-audit-list">                    </tbody>                </table>            </div>            <div class="modal-footer">                <button type="button" class="btn btn-sm btn-outline-secondary" data-dismiss="modal">关闭</button>            </div>        </div>    </div></div><!-- 弹窗删除权限用户 --><div class="modal fade" id="del-contract-audit" 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">                <h6>确认删除当前所选用户?</h6>            </div>            <div class="modal-footer">                <button type="button" class="btn btn-sm btn-secondary" data-dismiss="modal">取消</button>                <input type="hidden" id="del-audit-ids" />                <button type="button" class="btn btn-sm btn-danger" id="del-audit-btn">确定删除</button>            </div>        </div>    </div></div><script src="/public/js/bootstrap/bootstrap-table.min.js"></script><script src="/public/js/bootstrap/locales/bootstrap-table-zh-CN.min.js"></script>    <script>        const accountGroup = JSON.parse(unescape('<%- escape(JSON.stringify(accountGroup)) %>'));        const accountList = JSON.parse(unescape('<%- escape(JSON.stringify(accountList)) %>'));    </script><script>    $(function () {        let timer = null        let oldSearchVal = null        $('#gr-search').bind('input propertychange', function (e) {            oldSearchVal = e.target.value            timer && clearTimeout(timer)            timer = setTimeout(() => {                const newVal = $('#gr-search').val()                let html = ''                if (newVal && newVal === oldSearchVal) {                    accountList.filter(item => item && (item.name.indexOf(newVal) !== -1 || (item.mobile && item.mobile.indexOf(newVal) !== -1))).forEach(item => {                        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></p>                        <span class="text-muted">${item.role || ''}</span>                    </dd>`                    })                    $('#authority-list .book-list').empty()                    $('#authority-list .book-list').append(html)                } else {                    if (!$('#authority-list .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 => {                                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></p>                                    <span class="text-muted">${item.role || ''}</span>                                </dd>`                            });                            html += '</div>'                        })                        $('#authority-list .book-list').empty()                        $('#authority-list .book-list').append(html)                    }                }            }, 400);        });        // 添加到成员中        $('.book-list').on('click', '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', '#authority-list dl dd', function () {            const id = parseInt($(this).data('id'));            console.log(id);            if (!isNaN(id) && id !== 0) {                postData('/contract/'+ $('#stid').val() + '/audit/save', {type: 'add-audit', id: id}, function (result) {                    setList(result);                })            }        });        let first = 1;        $('#authority-list').on('shown.bs.modal', function () {            if (first) {                const option = {                    locale: 'zh-CN',                    height: 300,                }                $("#contract-audit-table").bootstrapTable('destroy').bootstrapTable(option);                first = 0;            }            const stid = $('#stid').val();            if (stid) {                postData('/contract/'+ $('#stid').val() + '/audit/save', { type: 'list' }, function (result) {                    setList(result);                });            }        });        $('body').on('click', '.get-audits', function () {            const stid = $(this).data('stid');            $('#stid').val(stid);            $('#contract-audit-list').html('');            postData('/contract/'+ $('#stid').val() + '/audit/save', { type: 'check' }, function (result) {                $('#authority-list').modal('show');            });        });        function setList(datas) {            let list = '';            for (const ca of datas) {                list += `<tr>                            <td>${ca.name}</td>                            <td>${ca.role}</td>                            <td>                                <input type="checkbox" class="permission-checkbox" data-type="permission_edit" value="${ca.id}" ${ca.permission_edit ? 'checked' : ''}>                            </td>                            <td>                                <input type="checkbox" class="permission-checkbox" data-type="permission_add" value="${ca.id}" ${ca.permission_add ? 'checked' : ''}>                            </td>                            <td>                                <input type="checkbox" class="permission-checkbox" data-type="permission_show_unit" value="${ca.id}" ${ca.permission_show_unit ? 'checked' : ''}>                            </td>                            <td>                                <input type="checkbox" class="permission-checkbox" data-type="permission_show_node" value="${ca.id}" ${ca.permission_show_node ? 'checked' : ''}>                            </td>                            <td>                                <a href="#del-contract-audit" data-toggle="modal" data-target="#del-contract-audit" class="btn btn-outline-danger btn-sm ml-1 del-contract-audit-a" data-id="${ca.id}">移除</a>                            </td>                        </tr>`;            }            $('#contract-audit-list').html(list);            $("#contract-audit-table").bootstrapTable('resetView');        }        $('body').on('click', '.del-contract-audit-a', function () {            $('#del-audit-ids').val($(this).attr('data-id'));            $('#del-contract-audit').modal('show');        });        $('#del-audit-btn').click(function () {            let uids = $('#del-audit-ids').val();            postData('/contract/'+ $('#stid').val() + '/audit/save', { type: 'del-audit', id: uids.split(',') }, function (result) {                // toastr.success(`成功添加 位用户`);                $('#del-contract-audit').modal('hide');                setList(result);            })        });        // 上报人权限勾选        $('body').on('click', '.permission-checkbox', function () {            const type = $(this).attr('data-type');            const value = $(this).is(':checked') ? 1 : 0;            const id = parseInt($(this).val());            const updateInfo = { id };            updateInfo[type] = value;            postData('/contract/'+ $('#stid').val() + '/audit/save', { type: 'save-permission', updateData: updateInfo }, function (result) {            })        });    });</script><% } %>
 |