import { approvalStatusOptions, contractCategoryOptions, createCrudOption, hcsSyncStatusOptions, signTypeOptions, } 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 projectNameDicFormatter = res => { const list = listDicFormatter(res); return list.filter(item => item && item.projectName && String(item.projectName).trim()); }; export const changeTypeOptions = [ { label: '合同信息变更', value: '合同信息变更' }, { label: '结算规则变更', value: '结算规则变更' }, ]; export const config = { title: '合同变更', permission: 'contract_change', statusProp: 'approvalStatus', statusTextProp: 'approvalStatusName', deleteStatus: ['draft', 'withdrawn', 'rejected'], editStatus: ['draft', 'withdrawn', 'rejected'], viewStatus: ['approved'], operations: [ { action: 'submitApproval', label: '提交', statusProp: 'approvalStatus', status: ['draft'], permission: 'contract_change_submit', }, { action: 'withdraw', label: '撤回', statusProp: 'approvalStatus', status: ['reviewing'], permission: 'contract_change_withdraw', }, { action: 'mkAudit', label: '流程', statusProp: 'approvalStatus', status: ['reviewing', 'rejected', 'approved'], permission: 'contract_change_approve', mkOnly: true, }, { action: 'approve', label: '通过', type: 'success', statusProp: 'approvalStatus', status: ['reviewing'], permission: 'contract_change_approve', localOnly: true, }, { action: 'reject', label: '驳回', type: 'warning', statusProp: 'approvalStatus', status: ['reviewing'], permission: 'contract_change_reject', localOnly: true, }, ], }; export const option = createCrudOption([ { label: '合同编号', prop: 'contractNo', search: true, searchPlaceholder: '请输入', searchOrder: 20, minWidth: 160, }, { label: '合同名称', prop: 'contractName', search: true, searchPlaceholder: '请输入', searchOrder: 30, minWidth: 180, }, { label: '所属项目', prop: 'projectName', search: true, searchType: 'select', searchPlaceholder: '请选择', searchOrder: 60, dicUrl: '/blade-transport/project-apply/list?current=1&size=9999&contractSelectable=true', dicFormatter: projectNameDicFormatter, props: { label: 'projectName', value: 'projectName', }, filterable: true, minWidth: 160, }, { label: '所属组织', prop: 'organizationName', search: true, searchPlaceholder: '请输入', searchOrder: 10, minWidth: 150, }, { label: '合同类别', prop: 'contractCategory', type: 'select', search: true, searchPlaceholder: '请选择', searchOrder: 70, dicData: contractCategoryOptions, minWidth: 130, }, { label: '签约类型', prop: 'signType', type: 'select', search: true, searchPlaceholder: '请选择', searchOrder: 50, dicData: signTypeOptions, minWidth: 120, }, { label: '甲方', prop: 'partyA', minWidth: 160, }, { label: '乙方', prop: 'partyB', minWidth: 160, }, { label: '开始日期', prop: 'startDate', type: 'date', format: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD', minWidth: 130, }, { label: '结束日期', prop: 'endDate', type: 'date', format: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD', minWidth: 130, }, { label: '临时效力起', prop: 'temporaryStartDate', type: 'date', format: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD', minWidth: 130, }, { label: '临时效力止', prop: 'temporaryEndDate', type: 'date', format: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD', minWidth: 130, }, { label: '经办人', prop: 'handlerUserName', minWidth: 120, }, { label: '创建时间', prop: 'createTime', type: 'datetime', minWidth: 170, }, { label: '审核状态', prop: 'approvalStatus', type: 'select', search: true, searchPlaceholder: '请选择', searchOrder: 40, dicData: approvalStatusOptions, minWidth: 110, }, { label: '当前节点', prop: 'currentNode', minWidth: 120, }, { label: '当前处理人', prop: 'currentProcessor', minWidth: 120, }, { label: '同步状态', prop: 'syncStatus', type: 'select', dicData: hcsSyncStatusOptions, minWidth: 110, }, ]);