项目、合同fix

This commit is contained in:
2026-08-06 17:40:03 +08:00
parent 5e92124710
commit e6d4edf362
15 changed files with 887 additions and 335 deletions

View File

@@ -6,11 +6,18 @@ import {
createCrudOption,
effectiveTypeOptions,
selectRule,
settlementModeOptions,
signTypeOptions,
textRule,
} from './common';
const contractSettlementModeOptions = [
{ label: '现结', value: '现结' },
{ label: '日结', value: '日结' },
{ label: '周结', value: '周结' },
{ label: '月结', value: '月结' },
{ label: '按固定天数周期', value: '按固定天数周期' },
];
const listDicFormatter = res => {
const data = res?.data || res;
if (Array.isArray(data)) return data;
@@ -25,7 +32,13 @@ export const config = {
permission: 'contract_manage',
exportUrl: '/blade-transport/contract-manage/export-contract-manage',
exportName: '合同管理',
enableAllDept: false,
defaultForm: {
contractCategory: '客户合同',
},
projectPlaceholder: '请选择',
organizationPlaceholder: '请选择',
enableAllDept: true,
allDeptReadonly: false,
batchDelete: false,
enableContractForm: true,
enableProjectSelect: true,
@@ -39,6 +52,7 @@ export const config = {
enableChangeRecord: true,
enableOrganizationSelect: true,
enableContractCreateActions: true,
enableContractExpiryTags: true,
actions: ['copy'],
statusProp: 'approvalStatus',
statusTextProp: 'approvalStatusName',
@@ -63,9 +77,25 @@ export const config = {
label: '撤回',
statusProp: 'approvalStatus',
status: ['reviewing'],
stage: ['temporary'],
stage: ['temporary', 'formal'],
permission: 'contract_manage_withdraw',
},
{
action: 'approve',
label: '通过',
statusProp: 'approvalStatus',
status: ['reviewing'],
stage: ['temporary', 'formal'],
permission: 'contract_manage_approve',
},
{
action: 'reject',
label: '驳回',
statusProp: 'approvalStatus',
status: ['reviewing'],
stage: ['temporary', 'formal'],
permission: 'contract_manage_reject',
},
{
action: 'submitFormal',
label: '重新提交转正',
@@ -143,16 +173,18 @@ export const option = createCrudOption([
prop: 'contractNo',
search: true,
searchOrder: 6,
searchPlaceholder: '请输入',
order: 185,
disabled: true,
placeholder: '不填写,则系统自动生成',
minWidth: 160,
minWidth: 200,
},
{
label: '合同名称',
prop: 'contractName',
search: true,
searchOrder: 7,
searchPlaceholder: '请输入',
order: 180,
minWidth: 180,
rules: textRule('合同名称', 100, true),
@@ -163,6 +195,7 @@ export const option = createCrudOption([
search: true,
searchOrder: 8,
searchType: 'select',
searchPlaceholder: '请选择',
formslot: true,
order: 140,
dicUrl: '/blade-transport/project-apply/list?current=1&size=9999',
@@ -187,6 +220,7 @@ export const option = createCrudOption([
search: true,
searchOrder: 3,
searchType: 'cascader',
searchPlaceholder: '全部',
formslot: true,
order: 120,
dicData: [],
@@ -208,6 +242,7 @@ export const option = createCrudOption([
type: 'select',
search: true,
searchOrder: 9,
searchPlaceholder: '请选择',
order: 170,
dicData: contractCategoryOptions,
minWidth: 130,
@@ -217,10 +252,8 @@ export const option = createCrudOption([
label: '签约类型',
prop: 'signType',
type: 'select',
search: true,
searchOrder: 1,
search: false,
span: 6,
row: true,
order: 190,
dicData: signTypeOptions,
minWidth: 120,
@@ -232,6 +265,7 @@ export const option = createCrudOption([
type: 'select',
search: true,
searchOrder: 5,
searchPlaceholder: '请选择',
dicData: effectiveTypeOptions,
hide: true,
display: false,
@@ -241,7 +275,8 @@ export const option = createCrudOption([
prop: 'partyA',
type: 'select',
order: 160,
dicUrl: '/blade-transport/customer-archive/list?current=1&size=9999&approvalStatus=approved&status=1',
dicUrl:
'/blade-transport/customer-archive/list?current=1&size=9999&customerType=客户&approvalStatus=approved&status=1',
dicFormatter: listDicFormatter,
props: {
label: 'fullName',
@@ -256,7 +291,8 @@ export const option = createCrudOption([
prop: 'partyB',
type: 'select',
order: 150,
dicUrl: '/blade-transport/customer-archive/list?current=1&size=9999&approvalStatus=approved&status=1',
dicUrl:
'/blade-transport/customer-archive/list?current=1&size=9999&customerType=承运商&approvalStatus=approved&status=1',
dicFormatter: listDicFormatter,
props: {
label: 'fullName',
@@ -334,14 +370,14 @@ export const option = createCrudOption([
rules: [{ required: true, message: '请选择签订日期', trigger: 'change' }],
},
{
label: '结算方式',
label: '结算类型',
prop: 'settlementMode',
type: 'select',
dicData: settlementModeOptions,
dicData: contractSettlementModeOptions,
hide: true,
order: 90,
minWidth: 120,
rules: selectRule('结算方式'),
rules: selectRule('结算类型'),
},
{
label: '合同格式',
@@ -392,7 +428,7 @@ export const option = createCrudOption([
type: 'datetime',
format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
minWidth: 160,
minWidth: 190,
addDisplay: false,
editDisplay: false,
},
@@ -402,6 +438,7 @@ export const option = createCrudOption([
type: 'select',
search: true,
searchOrder: 2,
searchPlaceholder: '请选择',
slot: true,
dicData: contractStageOptions,
minWidth: 120,
@@ -414,6 +451,7 @@ export const option = createCrudOption([
type: 'select',
search: true,
searchOrder: 4,
searchPlaceholder: '请选择',
slot: true,
dicData: contractApprovalStatusOptions,
minWidth: 130,
@@ -572,3 +610,6 @@ export const option = createCrudOption([
option.span = 8;
option.dialogWidth = 1480;
option.dialogTop = '10px';
option.dialogCloseBtn = true;
option.menuWidth = 320;