266 lines
6.5 KiB
JavaScript
266 lines
6.5 KiB
JavaScript
import {
|
|
approvalStatusOptions,
|
|
auditColumns,
|
|
createCrudOption,
|
|
nonNegativeRule,
|
|
textRule,
|
|
} from './common';
|
|
|
|
const listDicFormatter = res => {
|
|
const data = res?.data || res;
|
|
if (Array.isArray(data)) return data;
|
|
if (Array.isArray(data?.records)) return data.records;
|
|
if (Array.isArray(data?.data)) return data.data;
|
|
if (Array.isArray(data?.data?.records)) return data.data.records;
|
|
return [];
|
|
};
|
|
|
|
const userDicFormatter = res =>
|
|
listDicFormatter(res).map(user => ({
|
|
...user,
|
|
realName: user.realName || user.name || user.account,
|
|
}));
|
|
|
|
export const config = {
|
|
title: '临时额度管理',
|
|
permission: 'temporary_credit_limit',
|
|
exportUrl: '/blade-transport/temporary-credit-limit/export-temporary-credit-limit',
|
|
exportName: '临时额度申请',
|
|
enableAllDept: false,
|
|
enableProjectSelect: true,
|
|
enableAttachmentTable: true,
|
|
enableDraftSave: true,
|
|
saveAsDraft: true,
|
|
defaultForm: {
|
|
usedFundLimit: 0,
|
|
remainingFundLimit: 0,
|
|
},
|
|
statusProp: 'approvalStatus',
|
|
statusTextProp: 'approvalStatusName',
|
|
deleteStatus: ['draft', 'withdrawn', 'rejected', '草稿'],
|
|
editStatus: ['draft', 'withdrawn', 'rejected', '草稿', '已撤回'],
|
|
ignoreReadonlyEditStatus: ['draft', 'withdrawn', '草稿', '已撤回'],
|
|
ignoreReadonlyDeleteStatus: ['draft', '草稿'],
|
|
operations: [
|
|
{
|
|
action: 'submitApproval',
|
|
label: '提交',
|
|
statusProp: 'approvalStatus',
|
|
status: ['draft', 'withdrawn', 'rejected'],
|
|
permission: 'temporary_credit_limit_submit',
|
|
},
|
|
{
|
|
action: 'flow',
|
|
label: '流程',
|
|
statusProp: 'approvalStatus',
|
|
status: ['reviewing'],
|
|
permission: 'temporary_credit_limit_view',
|
|
},
|
|
{
|
|
action: 'withdraw',
|
|
label: '撤回',
|
|
statusProp: 'approvalStatus',
|
|
status: ['reviewing'],
|
|
permission: 'temporary_credit_limit_withdraw',
|
|
},
|
|
{
|
|
action: 'approve',
|
|
label: '审批通过',
|
|
type: 'success',
|
|
statusProp: 'approvalStatus',
|
|
status: ['reviewing'],
|
|
permission: 'temporary_credit_limit_approve',
|
|
},
|
|
{
|
|
action: 'reject',
|
|
label: '审批驳回',
|
|
type: 'warning',
|
|
statusProp: 'approvalStatus',
|
|
status: ['reviewing'],
|
|
permission: 'temporary_credit_limit_reject',
|
|
},
|
|
],
|
|
};
|
|
|
|
export const option = {
|
|
...createCrudOption([
|
|
{
|
|
label: '申请单号',
|
|
prop: 'applicationNo',
|
|
search: true,
|
|
searchOrder: 5,
|
|
minWidth: 160,
|
|
addDisplay: false,
|
|
editDisplay: false,
|
|
editDisabled: true,
|
|
},
|
|
{
|
|
label: '项目名称',
|
|
prop: 'projectName',
|
|
search: true,
|
|
searchOrder: 4,
|
|
searchType: 'select',
|
|
formslot: true,
|
|
dicUrl: '/blade-transport/project-apply/list?current=1&size=9999',
|
|
dicFormatter: listDicFormatter,
|
|
props: {
|
|
label: 'projectName',
|
|
value: 'projectName',
|
|
},
|
|
filterable: true,
|
|
minWidth: 180,
|
|
rules: textRule('项目名称', 100, true),
|
|
},
|
|
{
|
|
label: '项目ID',
|
|
prop: 'projectId',
|
|
hide: true,
|
|
display: false,
|
|
},
|
|
{
|
|
label: '项目编号',
|
|
prop: 'projectCode',
|
|
hide: true,
|
|
disabled: true,
|
|
minWidth: 150,
|
|
rules: textRule('项目编号', 50, true),
|
|
},
|
|
{
|
|
label: '承办部门',
|
|
prop: 'undertakeDeptName',
|
|
hide: true,
|
|
disabled: true,
|
|
minWidth: 150,
|
|
rules: textRule('承办部门', 50, true),
|
|
},
|
|
{
|
|
label: '项目资金使用额度(万元)',
|
|
prop: 'projectFundLimit',
|
|
hide: true,
|
|
disabled: true,
|
|
minWidth: 200,
|
|
rules: [nonNegativeRule('项目资金使用额度')],
|
|
},
|
|
{
|
|
label: '已使用项目资金使用额度(万元)',
|
|
prop: 'usedFundLimit',
|
|
hide: true,
|
|
disabled: true,
|
|
minWidth: 220,
|
|
value: 0,
|
|
rules: [nonNegativeRule('已使用项目资金额度')],
|
|
},
|
|
{
|
|
label: '剩余项目资金使用额度(万元)',
|
|
prop: 'remainingFundLimit',
|
|
hide: true,
|
|
disabled: true,
|
|
minWidth: 230,
|
|
value: 0,
|
|
rules: [nonNegativeRule('剩余项目资金使用额度')],
|
|
},
|
|
{
|
|
label: '申请临时额度(万元)',
|
|
prop: 'applyLimit',
|
|
formslot: true,
|
|
minWidth: 180,
|
|
rules: [
|
|
{ required: true, message: '请输入申请临时额度', trigger: 'blur' },
|
|
nonNegativeRule('申请临时额度'),
|
|
],
|
|
},
|
|
{
|
|
label: '申请有效期至',
|
|
prop: 'validUntil',
|
|
type: 'date',
|
|
format: 'YYYY-MM-DD',
|
|
valueFormat: 'YYYY-MM-DD',
|
|
minWidth: 140,
|
|
rules: [{ required: true, message: '请选择申请有效期至', trigger: 'change' }],
|
|
},
|
|
{
|
|
label: '申请部门',
|
|
prop: 'applyDeptName',
|
|
search: true,
|
|
searchOrder: 2,
|
|
searchType: 'select',
|
|
dicUrl: '/blade-system/dept/select',
|
|
props: {
|
|
label: 'deptName',
|
|
value: 'deptName',
|
|
},
|
|
filterable: true,
|
|
minWidth: 150,
|
|
addDisplay: false,
|
|
editDisplay: false,
|
|
editDisabled: true,
|
|
},
|
|
{
|
|
label: '申请人',
|
|
prop: 'applicantName',
|
|
search: true,
|
|
searchOrder: 3,
|
|
searchType: 'select',
|
|
dicUrl: '/blade-system/user/user-list',
|
|
dicFormatter: userDicFormatter,
|
|
props: {
|
|
label: 'realName',
|
|
value: 'realName',
|
|
},
|
|
filterable: true,
|
|
minWidth: 120,
|
|
addDisplay: false,
|
|
editDisplay: false,
|
|
editDisabled: true,
|
|
},
|
|
{
|
|
label: '审批状态',
|
|
searchLabel: '状态',
|
|
prop: 'approvalStatus',
|
|
type: 'select',
|
|
search: true,
|
|
searchOrder: 1,
|
|
slot: true,
|
|
dicData: approvalStatusOptions,
|
|
minWidth: 130,
|
|
addDisplay: false,
|
|
editDisplay: false,
|
|
fixed: 'right',
|
|
},
|
|
{
|
|
label: '当前节点',
|
|
prop: 'currentNode',
|
|
minWidth: 140,
|
|
addDisplay: false,
|
|
editDisplay: false,
|
|
},
|
|
{
|
|
label: '当前处理人',
|
|
prop: 'currentProcessor',
|
|
minWidth: 130,
|
|
addDisplay: false,
|
|
editDisplay: false,
|
|
},
|
|
{
|
|
label: '备注',
|
|
prop: 'remark',
|
|
type: 'textarea',
|
|
span: 24,
|
|
hide: true,
|
|
maxlength: 200,
|
|
showWordLimit: true,
|
|
rules: textRule('备注', 200),
|
|
},
|
|
{
|
|
label: '附件',
|
|
prop: 'attachmentsJson',
|
|
formslot: true,
|
|
span: 24,
|
|
hide: true,
|
|
},
|
|
...auditColumns.map(column => ({ ...column, hide: true })),
|
|
]),
|
|
dialogWidth: 1480,
|
|
index: false,
|
|
};
|