|
@@ -1,3 +1,342 @@
|
|
|
$(function () {
|
|
|
autoFlashHeight();
|
|
|
+
|
|
|
+ // 全选报表
|
|
|
+ $('#select_all_rpt_checkbox').click(function () {
|
|
|
+ $('#rpt_table input[name="rptId[]"]').prop('checked', true);
|
|
|
+ $(this).prop('checked', false);
|
|
|
+ });
|
|
|
+
|
|
|
+ $('#add_rpt_btn').click(function () {
|
|
|
+ const checkArray = [];
|
|
|
+ $('#rpt_table input[name="rptId[]"]:checked').each(function() {
|
|
|
+ checkArray.push({
|
|
|
+ id: parseInt($(this).val()),
|
|
|
+ name: $(this).attr('data-name'),
|
|
|
+ }); //向数组中添加元素
|
|
|
+ });
|
|
|
+ postData('/payment/' + tenderId + '/process/save', { type: 'add-rpt', rpt_list: checkArray }, function (result) {
|
|
|
+ const html = [];
|
|
|
+ for (const data of result) {
|
|
|
+ html.push(`<tr data-id="${data.id}">\n`);
|
|
|
+ html.push(`<td>${data.rpt_name}</td>\n`);
|
|
|
+ html.push(`<td>${data.user_name}</td>\n`);
|
|
|
+ html.push('</tr>\n');
|
|
|
+ }
|
|
|
+ $('#tender_rpt_table').html(html.join(''));
|
|
|
+ $('#add-rpt').modal('hide');
|
|
|
+ tenderRptList = result;
|
|
|
+ })
|
|
|
+ });
|
|
|
+
|
|
|
+ let timer = null;
|
|
|
+ let oldSearchVal = null;
|
|
|
+ $('body').on('input propertychange', '.gr-search', function(e) {
|
|
|
+ oldSearchVal = e.target.value;
|
|
|
+ timer && clearTimeout(timer);
|
|
|
+ timer = setTimeout(() => {
|
|
|
+ const newVal = $(this).val();
|
|
|
+ const code = $(this).attr('data-trid');
|
|
|
+ let html = '';
|
|
|
+ if (newVal && newVal === oldSearchVal) {
|
|
|
+ accountList.filter(item => item && item.id !== cur_uid && (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>`
|
|
|
+ });
|
|
|
+ $('#' + code + '_dropdownMenu .book-list').empty();
|
|
|
+ $('#' + code + '_dropdownMenu .book-list').append(html);
|
|
|
+ } else {
|
|
|
+ if (!$('#' + code + '_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_uid) {
|
|
|
+ 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>';
|
|
|
+ });
|
|
|
+ $('#' + code + '_dropdownMenu .book-list').empty();
|
|
|
+ $('#' + code + '_dropdownMenu .book-list').append(html);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }, 400);
|
|
|
+ });
|
|
|
+
|
|
|
+ function setLcShowHtml(this_status, this_tr_id, data) {
|
|
|
+ if (this_status === sp_status.sqspr) {
|
|
|
+ $('#process_set').find('.lc-show').html('');
|
|
|
+ } else if (this_status === sp_status.gdspl) {
|
|
|
+ let addhtml = '<ul class="list-unstyled">\n';
|
|
|
+ if (data.length !== 0) {
|
|
|
+ for(const [i, audit] of data.entries()) {
|
|
|
+ addhtml += makeAudit(audit, transFormToChinese(i+1));
|
|
|
+ }
|
|
|
+ addhtml += '<li class="pl-3"><a href="javascript:void(0);" class="add-audit"><i class="fa fa-plus"></i> 添加流程</a></li>';
|
|
|
+ } else {
|
|
|
+ addhtml += makeSelectAudit(this_tr_id, '一');
|
|
|
+ }
|
|
|
+ addhtml += '</ul>\n';
|
|
|
+ $('#process_set').find('.lc-show').html(addhtml);
|
|
|
+
|
|
|
+ } else if (this_status === sp_status.gdzs) {
|
|
|
+ let addhtml = '<ul class="list-unstyled">\n' +
|
|
|
+ ' <li class="d-flex justify-content-start mb-3">\n' +
|
|
|
+ ' <span class="col-auto">授权审批人</span>\n' +
|
|
|
+ ' <span class="col-7">\n' +
|
|
|
+ ' <span class="d-inline-block"></span>\n' +
|
|
|
+ ' </span>\n' +
|
|
|
+ ' </li>\n';
|
|
|
+ addhtml += data ? makeAudit(data) : makeSelectAudit(this_tr_id);
|
|
|
+ addhtml += '</ul>\n';
|
|
|
+ $('#process_set').find('.lc-show').html(addhtml);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 初始化选中table
|
|
|
+ if ($('#tender_rpt_table tr').length > 0) {
|
|
|
+ $('#tender_rpt_table tr').eq(0).addClass('table-warning');
|
|
|
+ const tr_id = parseInt($('#tender_rpt_table tr').eq(0).attr('data-id'));
|
|
|
+ $('#process_set').show();
|
|
|
+ makeProcess(tr_id);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 选中切换table
|
|
|
+ $('#tender_rpt_table tr').click(function () {
|
|
|
+ if (!$(this).hasClass('table-warning')) {
|
|
|
+ $('#tender_rpt_table tr').removeClass('table-warning');
|
|
|
+ $(this).addClass('table-warning');
|
|
|
+ const tr_id = parseInt($(this).attr('data-id'));
|
|
|
+ makeProcess(tr_id);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ // 初始化审批流程
|
|
|
+ function makeProcess(tr_id) {
|
|
|
+ const trInfo = _.find(tenderRptList, { id: tr_id });
|
|
|
+ $('#process_set').find('.card-title').text(trInfo.rpt_name);
|
|
|
+ $('#process_set input[name="tender_process"][value="'+ trInfo.sp_status +'"]').prop('checked', true);
|
|
|
+ const spt = sp_status_list[trInfo.sp_status];
|
|
|
+ $('#process_set').find('.alert-warning').text(spt.name + ':' + spt.msg);
|
|
|
+ const prop = {
|
|
|
+ type: 'get-audits',
|
|
|
+ tr_id: trInfo.id,
|
|
|
+ status: trInfo.sp_status,
|
|
|
+ };
|
|
|
+ postData('/payment/' + tenderId + '/process/save', prop, function (data) {
|
|
|
+ setLcShowHtml(trInfo.sp_status, trInfo.id, data);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 添加审批流程按钮逻辑
|
|
|
+ $('body').on('click', '.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;
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+ // 更改审批流程状态
|
|
|
+ $('#process_set .form-check input').on('change', function () {
|
|
|
+ // 获取所有审批的checked值并更新
|
|
|
+ const this_status = parseInt($(this).val());
|
|
|
+ const this_tr_id = parseInt($('#tender_rpt_table').find('.table-warning').attr('data-id'));
|
|
|
+ const spt = sp_status_list[this_status];
|
|
|
+ $(this).parents('.form-group').siblings('.alert-warning').text(spt.name + ':' + spt.msg);
|
|
|
+ // 拼接post json
|
|
|
+ const prop = {
|
|
|
+ type: 'change-status',
|
|
|
+ tr_id: this_tr_id,
|
|
|
+ status: this_status
|
|
|
+ };
|
|
|
+ postData('/payment/' + tenderId + '/process/save', prop, function (data) {
|
|
|
+ setLcShowHtml(this_status, this_tr_id, data);
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ // 选中审批人
|
|
|
+ $('body').on('click', 'dl dd', function () {
|
|
|
+ const id = parseInt($(this).data('id'));
|
|
|
+ if (!id) return;
|
|
|
+
|
|
|
+ let this_tr_id = parseInt($('#tender_rpt_table').find('.table-warning').attr('data-id'));
|
|
|
+ if (!this_tr_id) this_tr_id = $(this).parents('.dropdown').attr('data-trid');
|
|
|
+ const user = _.find(accountList, function (item) {
|
|
|
+ return item.id === id;
|
|
|
+ });
|
|
|
+
|
|
|
+ const this_status = parseInt($(this).parents('.lc-show').siblings('.form-group').find('input:checked').val());
|
|
|
+ if (this_status === sp_status.gdspl) {
|
|
|
+ // 判断是否已存在审批人
|
|
|
+ const aid_num = $(this).parents('ul').find('.remove-audit').length;
|
|
|
+ for (let i = 0; i < aid_num; i++) {
|
|
|
+ const aid = parseInt($(this).parents('ul').find('.remove-audit').eq(i).data('id'));
|
|
|
+ if (aid === id) {
|
|
|
+ toastr.warning('该审核人已存在,请勿重复添加');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ const prop = {
|
|
|
+ status: this_status,
|
|
|
+ tr_id: this_tr_id,
|
|
|
+ audit_id: id,
|
|
|
+ type: 'add-audit',
|
|
|
+ };
|
|
|
+ const _self = $(this);
|
|
|
+ postData('/payment/' + tenderId + '/process/save', prop, function (data) {
|
|
|
+ if (this_status === sp_status.gdspl) {
|
|
|
+ _self.parents('ul').append('<li class="pl-3"><a href="javascript:void(0);" class="add-audit"><i class="fa fa-plus"></i> 添加流程</a></li>');
|
|
|
+ }
|
|
|
+ _self.parents('.spr-span').html('<span class="d-inline-block"></span>\n' +
|
|
|
+ '<span class="d-inline-block"><span class="badge badge-light">'+ user.name +' <span class="dropdown">\n' +
|
|
|
+ ' <a href="javascript:void(0);" class="btn-sm text-danger px-1" title="移除" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fa fa-remove"></i></a>\n' +
|
|
|
+ ' <div class="dropdown-menu">\n' +
|
|
|
+ ' <a class="dropdown-item" href="javascript:void(0);">确认移除审批人?</a>\n' +
|
|
|
+ ' <div class="dropdown-divider"></div>\n' +
|
|
|
+ ' <div class="px-2 py-1 text-center">\n' +
|
|
|
+ ' <button class="remove-audit btn btn-sm btn-danger" data-id="' + user.id + '">移除</button>\n' +
|
|
|
+ ' <button class="btn btn-sm btn-secondary">取消</button>\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' </span> ' +
|
|
|
+ ' </span></span></span>\n');
|
|
|
+ // <a href="javascript:void(0);" class="remove-audit btn-sm text-danger px-1" title="移除" data-id="'+ user.id +'"><i class="fa fa-remove"></i></a></span> </span>');
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ // 移除审批人
|
|
|
+ $('body').on('click', '.remove-audit', function () {
|
|
|
+ const id = parseInt($(this).data('id'));
|
|
|
+ const this_status = parseInt($(this).parents('.lc-show').siblings('.form-group').find('input:checked').val());
|
|
|
+ const this_tr_id = parseInt($('#tender_rpt_table').find('.table-warning').attr('data-id'));
|
|
|
+ const prop = {
|
|
|
+ status: this_status,
|
|
|
+ tr_id: this_tr_id,
|
|
|
+ audit_id: id,
|
|
|
+ type: 'del-audit',
|
|
|
+ };
|
|
|
+ const _self = $(this);
|
|
|
+ postData('/payment/' + tenderId + '/process/save', prop, function (data) {
|
|
|
+ if (this_status === sp_status.gdspl) {
|
|
|
+ const _selflc = _self.parents('.lc-show');
|
|
|
+ _self.parents('li').remove();
|
|
|
+ const aid_num = parseInt(_selflc.children('ul').find('li.d-flex').length);
|
|
|
+ if (aid_num === 0) {
|
|
|
+ let addhtml = '<ul class="list-unstyled">\n';
|
|
|
+ addhtml += makeSelectAudit(this_tr_id, '一');
|
|
|
+ addhtml += '</ul>\n';
|
|
|
+ _selflc.html(addhtml);
|
|
|
+ } else {
|
|
|
+ for (let i = 0; i < aid_num; i++) {
|
|
|
+ _selflc.find('li.d-flex').eq(i).find('.col-auto').text(transFormToChinese(i+1) + '审');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (this_status === sp_status.gdzs) {
|
|
|
+ let addhtml = '<ul class="list-unstyled">\n' +
|
|
|
+ ' <li class="d-flex justify-content-start mb-3">\n' +
|
|
|
+ ' <span class="col-auto">授权审批人</span>\n' +
|
|
|
+ ' <span class="col-7">\n' +
|
|
|
+ ' <span class="d-inline-block"></span>\n' +
|
|
|
+ ' </span>\n' +
|
|
|
+ ' </li>\n';
|
|
|
+ addhtml += makeSelectAudit(this_tr_id);
|
|
|
+ addhtml += '</ul>\n';
|
|
|
+ _self.parents('.lc-show').html(addhtml);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ });
|
|
|
+
|
|
|
+ // 固定审批流-添加流程
|
|
|
+ $('body').on('click', '.add-audit', function () {
|
|
|
+ const num = $(this).parents('ul').children('li').length;
|
|
|
+ const this_tr_id = parseInt($('#tender_rpt_table').find('.table-warning').attr('data-id'));
|
|
|
+ const addhtml = makeSelectAudit(this_tr_id, transFormToChinese(num));
|
|
|
+ $(this).parents('ul').append(addhtml);
|
|
|
+ $(this).parents('li').remove();
|
|
|
+ });
|
|
|
+
|
|
|
+ // 审批流程-审批人html 生成
|
|
|
+ function makeAudit(audit, i = '终') {
|
|
|
+ return '<li class="d-flex justify-content-start mb-3">\n' +
|
|
|
+ ' <span class="col-auto">'+ i +'审</span>\n' +
|
|
|
+ ' <span class="col-7 spr-span">\n' +
|
|
|
+ ' <span class="d-inline-block"></span>\n' +
|
|
|
+ ' <span class="d-inline-block"><span class="badge badge-light">'+ audit.name +' <span class="dropdown">\n' +
|
|
|
+ ' <a href="javascript:void(0);" class="btn-sm text-danger px-1" title="移除" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fa fa-remove"></i></a>\n' +
|
|
|
+ ' <div class="dropdown-menu">\n' +
|
|
|
+ ' <a class="dropdown-item" href="javascript:void(0);">确认移除审批人?</a>\n' +
|
|
|
+ ' <div class="dropdown-divider"></div>\n' +
|
|
|
+ ' <div class="px-2 py-1 text-center">\n' +
|
|
|
+ ' <button class="remove-audit btn btn-sm btn-danger" data-id="' + audit.audit_id + '">移除</button>\n' +
|
|
|
+ ' <button class="btn btn-sm btn-secondary">取消</button>\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' </span> ' +
|
|
|
+ // '<a href="javascript:void(0);" class="remove-audit btn-sm text-danger px-1" title="移除" data-id="'+ audit.audit_id +'"><i class="fa fa-remove"></i></a></span> </span>\n' +
|
|
|
+ ' </span></span></span>\n' +
|
|
|
+ ' </li>';
|
|
|
+ }
|
|
|
+
|
|
|
+ // 审批流程-选择审批人html 生成
|
|
|
+ function makeSelectAudit(tr_id, i = '终') {
|
|
|
+ let divhtml = '';
|
|
|
+ accountGroup.forEach((group, idx) => {
|
|
|
+ let didivhtml = '';
|
|
|
+ if(group) {
|
|
|
+ group.groupList.forEach(item => {
|
|
|
+ didivhtml += item.id !== cur_uid ? '<dd class="border-bottom p-2 mb-0 " data-id="' + item.id + '" >\n' +
|
|
|
+ '<p class="mb-0 d-flex"><span class="text-primary">' + item.name + '</span><span\n' +
|
|
|
+ ' class="ml-auto">' + item.mobile + '</span></p>\n' +
|
|
|
+ ' <span class="text-muted">' + item.role + '</span>\n' +
|
|
|
+ ' </dd>\n' : '';
|
|
|
+ });
|
|
|
+ divhtml += '<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>\n' +
|
|
|
+ ' <div class="dd-content" data-toggleid="' + idx + '">\n' + didivhtml +
|
|
|
+ ' </div>\n';
|
|
|
+ }
|
|
|
+ });
|
|
|
+ let html = '<li class="d-flex justify-content-start mb-3">\n' +
|
|
|
+ ' <span class="col-auto">' + i + '审</span>\n' +
|
|
|
+ ' <span class="col-7 spr-span">\n' +
|
|
|
+ ' <span class="d-inline-block">\n' +
|
|
|
+ ' <div class="dropdown text-right">\n' +
|
|
|
+ ' <button class="btn btn-outline-primary btn-sm dropdown-toggle" type="button" id="' + tr_id + '_dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\n' +
|
|
|
+ ' 选择审批人\n' +
|
|
|
+ ' </button>\n' +
|
|
|
+ ' <div class="dropdown-menu dropdown-menu-right" id="' + tr_id + '_dropdownMenu" aria-labelledby="' + tr_id + '_dropdownMenuButton" style="width:220px">\n' +
|
|
|
+ ' <div class="mb-2 p-2"><input class="form-control form-control-sm gr-search"\n' +
|
|
|
+ ' placeholder="姓名/手机 检索" autocomplete="off" data-trid="' + tr_id + '"></div>\n' +
|
|
|
+ ' <dl class="list-unstyled book-list">\n' + divhtml +
|
|
|
+ ' </dl>\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' </div>\n' +
|
|
|
+ ' </span>\n' +
|
|
|
+ ' </span>\n' +
|
|
|
+ ' </li>';
|
|
|
+ return html;
|
|
|
+ }
|
|
|
});
|