Merge remote-tracking branch 'websoft/master'
This commit is contained in:
@@ -169,6 +169,32 @@ export const nonNegativeRule = label => ({
|
||||
trigger: 'blur',
|
||||
});
|
||||
|
||||
// 日期必须晚于当前日期(当天不可选):选择后立即校验,trigger 固定为 change
|
||||
// 取值支持 YYYY-MM-DD / YYYY-MM-DD HH:mm:ss / 时间戳
|
||||
export const futureDateRule = label => ({
|
||||
validator: (rule, value, callback) => {
|
||||
if (value === undefined || value === null || value === '') {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
const raw = String(value).trim().replace(/-/g, '/');
|
||||
const selected = new Date(raw);
|
||||
if (Number.isNaN(selected.getTime())) {
|
||||
callback();
|
||||
return;
|
||||
}
|
||||
const today = new Date();
|
||||
today.setHours(0, 0, 0, 0);
|
||||
selected.setHours(0, 0, 0, 0);
|
||||
if (selected.getTime() <= today.getTime()) {
|
||||
callback(new Error(`${label}必须晚于当前日期`));
|
||||
return;
|
||||
}
|
||||
callback();
|
||||
},
|
||||
trigger: ['change', 'blur'],
|
||||
});
|
||||
|
||||
export const phoneRule = label => ({
|
||||
pattern: /^1[3-9]\d{9}$/,
|
||||
message: `${label}格式不正确`,
|
||||
|
||||
@@ -16,6 +16,18 @@ const projectEffectiveTypeOptions = [
|
||||
{ label: '正式', value: 'formal' },
|
||||
];
|
||||
|
||||
export const fundUseRiskOptions = [
|
||||
{ label: '高风险', value: 'high' },
|
||||
{ label: '中风险', value: 'medium' },
|
||||
{ label: '正常', value: 'none' },
|
||||
];
|
||||
|
||||
// 项目资金额度使用率阈值:中风险 ≥ 80%,高风险 ≥ 90%
|
||||
export const fundUseRiskThreshold = {
|
||||
high: 90,
|
||||
medium: 80,
|
||||
};
|
||||
|
||||
const amountRules = label => [
|
||||
{ required: true, message: `请输入${label}`, trigger: 'blur' },
|
||||
nonNegativeRule(label),
|
||||
@@ -402,5 +414,14 @@ export const option = createCrudOption([
|
||||
span: 24,
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
label: '资金使用风险',
|
||||
prop: 'fundUseRisk',
|
||||
slot: true,
|
||||
minWidth: 130,
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
hide: false,
|
||||
},
|
||||
...auditColumns.map(column => ({ ...column, hide: true })),
|
||||
]);
|
||||
|
||||
@@ -2,8 +2,10 @@ import {
|
||||
approvalStatusOptions,
|
||||
auditColumns,
|
||||
createCrudOption,
|
||||
futureDateRule,
|
||||
nonNegativeRule,
|
||||
textRule,
|
||||
withSearchPlaceholders,
|
||||
} from './common';
|
||||
|
||||
const listDicFormatter = res => {
|
||||
@@ -124,7 +126,10 @@ export const config = {
|
||||
|
||||
export const option = {
|
||||
dialogCustomClass: 'temporary-credit-limit-dialog',
|
||||
...createCrudOption([
|
||||
addTitle: '新增临时额度申请',
|
||||
editTitle: '编辑临时额度申请',
|
||||
viewTitle: '查看临时额度申请',
|
||||
...createCrudOption(withSearchPlaceholders([
|
||||
{
|
||||
label: '申请单号',
|
||||
prop: 'applicationNo',
|
||||
@@ -164,6 +169,7 @@ export const option = {
|
||||
prop: 'projectCode',
|
||||
hide: true,
|
||||
disabled: true,
|
||||
placeholder: '请输入',
|
||||
span: 6,
|
||||
minWidth: 150,
|
||||
rules: textRule('项目编号', 50),
|
||||
@@ -173,6 +179,7 @@ export const option = {
|
||||
prop: 'undertakeDeptName',
|
||||
hide: true,
|
||||
disabled: true,
|
||||
placeholder: '请输入',
|
||||
span: 6,
|
||||
minWidth: 150,
|
||||
rules: textRule('承办部门', 50, true),
|
||||
@@ -182,6 +189,7 @@ export const option = {
|
||||
prop: 'projectFundLimit',
|
||||
hide: true,
|
||||
disabled: true,
|
||||
placeholder: '请输入',
|
||||
span: 6,
|
||||
minWidth: 200,
|
||||
rules: [nonNegativeRule('项目资金使用额度')],
|
||||
@@ -191,6 +199,7 @@ export const option = {
|
||||
prop: 'usedFundLimit',
|
||||
hide: true,
|
||||
disabled: true,
|
||||
placeholder: '请输入',
|
||||
span: 6,
|
||||
minWidth: 220,
|
||||
value: 0,
|
||||
@@ -201,6 +210,7 @@ export const option = {
|
||||
prop: 'remainingFundLimit',
|
||||
hide: true,
|
||||
disabled: true,
|
||||
placeholder: '请输入',
|
||||
span: 6,
|
||||
minWidth: 230,
|
||||
value: 0,
|
||||
@@ -223,9 +233,13 @@ export const option = {
|
||||
type: 'date',
|
||||
format: 'YYYY-MM-DD',
|
||||
valueFormat: 'YYYY-MM-DD',
|
||||
placeholder: '请选择',
|
||||
span: 6,
|
||||
minWidth: 140,
|
||||
rules: [{ required: true, message: '请选择申请有效期至', trigger: 'change' }],
|
||||
rules: [
|
||||
{ required: true, message: '请选择申请有效期至', trigger: 'change' },
|
||||
futureDateRule('申请有效期至'),
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '申请部门',
|
||||
@@ -291,15 +305,16 @@ export const option = {
|
||||
editDisplay: false,
|
||||
},
|
||||
{
|
||||
label: '备注',
|
||||
label: '临时额度信息',
|
||||
prop: 'remark',
|
||||
type: 'textarea',
|
||||
span: 24,
|
||||
minRows: 2,
|
||||
hide: true,
|
||||
placeholder: '请输入',
|
||||
maxlength: 200,
|
||||
showWordLimit: true,
|
||||
rules: textRule('备注', 200),
|
||||
rules: textRule('临时额度信息', 200),
|
||||
},
|
||||
{
|
||||
label: '附件',
|
||||
@@ -309,7 +324,7 @@ export const option = {
|
||||
hide: true,
|
||||
},
|
||||
...auditColumns.map(column => ({ ...column, hide: true })),
|
||||
]),
|
||||
])),
|
||||
dialogWidth: '96%',
|
||||
menuFixed: 'right',
|
||||
menuWidth: 320,
|
||||
|
||||
Reference in New Issue
Block a user