Files
tms-erp-web/src/option/business/process-config.js
T
gxwebsoft 9948c8f33b refactor(process-config): 重构过程配置弹窗为手写 el-dialog
- 将 process-config 弹窗由 Avue 内置弹窗改为手写 el-dialog 对齐 customer-archive 风格
- 移除 avue-crud 原有的弹窗相关生命周期和插槽方法
- 新增 openProcessConfig、submitProcessConfig、resetProcess 等方法管理弹窗状态和数据提交
- 更新模板结构,新增具备基本信息、过程节点、节点设置的表单布局和底部操作按钮
- 关闭原 avue-crud 弹窗的内置按钮,改由手写对话框控制操作
- 优化样式,增加弹窗内部滚动,保持 footer 固定
- 微调业务组件样式,调整边框和表单布局宽度以适配新弹窗设计
2026-08-14 08:46:39 +08:00

188 lines
4.0 KiB
JavaScript

import {
auditColumns,
createCrudOption,
nodeOptions,
processStatusOptions,
selectRule,
textRule,
} from './common';
export const config = {
title: '过程配置',
permission: 'process_config',
exportUrl: '/blade-transport/process-config/export-process-config',
exportName: '过程配置',
enableAllDept: true,
actions: ['copy', 'enable', 'disable'],
statusProp: 'status',
statusTextProp: 'statusName',
deleteStatus: [0, 2],
};
export const option = {
...createCrudOption([
{
label: '',
prop: 'basicInfo',
formslot: true,
span: 24,
hide: true,
},
{
label: '配置名称',
prop: 'configName',
search: true,
searchOrder: 6,
searchSpan: 6,
searchPlaceholder: '请输入',
span: 12,
minWidth: 150,
addDisplay: false,
editDisplay: false,
rules: textRule('配置名称', 100, true),
},
{
label: '配置编号',
prop: 'configCode',
search: true,
searchOrder: 4,
searchSpan: 6,
searchPlaceholder: '请输入',
minWidth: 130,
addDisplay: false,
editDisplay: false,
editDisabled: true,
},
{
label: '项目',
prop: 'projectNames',
formslot: true,
search: true,
searchOrder: 5,
searchType: 'input',
searchSpan: 6,
searchPlaceholder: '请输入',
type: 'textarea',
minRows: 2,
span: 12,
minWidth: 180,
dicData: [],
filterable: true,
addDisplay: false,
editDisplay: false,
rules: textRule('项目', 1000, true),
},
{
label: '过程节点',
prop: 'includedNodes',
type: 'select',
multiple: true,
dicData: nodeOptions,
minWidth: 260,
overHidden: false,
slot: true,
addDisplay: false,
editDisplay: false,
rules: selectRule('过程节点'),
},
{
label: '默认运输完成天数',
prop: 'defaultFinishDays',
formslot: true,
type: 'number',
min: 0,
max: 999,
span: 12,
minWidth: 170,
addDisplay: false,
editDisplay: false,
},
{
label: '备注',
prop: 'remark',
type: 'textarea',
minRows: 2,
span: 24,
minWidth: 180,
addDisplay: false,
editDisplay: false,
maxlength: 500,
showWordLimit: true,
rules: textRule('备注', 500),
},
{
label: '组织',
prop: 'deptName',
minWidth: 150,
addDisplay: false,
editDisplay: false,
},
...auditColumns
.filter(column => ['updateTime', 'createTime'].includes(column.prop))
.map(column => ({ ...column, minWidth: 190 }))
.sort(
(first, second) =>
['updateTime', 'createTime'].indexOf(first.prop) -
['updateTime', 'createTime'].indexOf(second.prop)
),
{
label: '项目ID集合',
prop: 'projectIds',
hide: true,
display: false,
addDisplay: false,
editDisplay: false,
rules: textRule('项目ID集合', 1000, true),
},
{
label: '状态',
prop: 'status',
type: 'select',
search: true,
searchOrder: 1,
searchSpan: 6,
searchPlaceholder: '请选择',
dicData: processStatusOptions,
slot: true,
hide: true,
fixed: 'right',
minWidth: 100,
addDisplay: false,
editDisplay: false,
},
{
label: '组织',
prop: 'searchDeptId',
searchProp: 'deptId',
type: 'select',
search: true,
searchOrder: 2,
searchSpan: 6,
searchPlaceholder: '请选择',
hide: true,
display: false,
addDisplay: false,
editDisplay: false,
viewDisplay: false,
dicData: [],
filterable: true,
},
{
label: '',
prop: 'nodeConfigJson',
formslot: true,
span: 24,
hide: true,
},
]),
saveBtn: false,
updateBtn: false,
addBtn: false,
viewBtn: false,
editBtn: false,
delBtn: false,
dialogTop: '10px',
dialogWidth: '96%',
menuWidth: 220,
};