import { FormProps, FormSchema } from '/@/components/Form'; import { BasicColumn } from '/@/components/Table'; export const formConfig = { useCustomConfig: false }; export const searchFormSchema: FormSchema[] = [ { field: 'fullName', label: '名称', component: 'Input' }, { field: 'valid', label: '有效标志', component: 'XjrSelect', componentProps: { datasourceType: 'dic', params: { itemId: '1978057078528327681' }, labelField: 'name', valueField: 'value', getPopupContainer: () => document.body } } ]; export const columns: BasicColumn[] = [ { dataIndex: 'code', title: '编码', componentType: 'input', align: 'left', sorter: true }, { dataIndex: 'fullName', title: '名称', componentType: 'input', align: 'left', sorter: true }, { dataIndex: 'shortName', title: '简称', componentType: 'input', align: 'left', sorter: true }, { dataIndex: 'regionCode', title: '所属国家和地区', componentType: 'cascader', align: 'left', sorter: true }, { dataIndex: 'valid', title: '有效标志', componentType: 'select', align: 'left', sorter: true }, { dataIndex: 'note', title: '备注', componentType: 'textarea', align: 'left', sorter: true } ]; //表单事件 export const formEventConfigs = { 0: [ { type: 'circle', color: '#2774ff', text: '开始节点', icon: '#icon-kaishi', bgcColor: '#D8E5FF', isUserDefined: false }, { color: '#F6AB01', icon: '#icon-chushihua', text: '初始化表单', bgcColor: '#f9f5ea', isUserDefined: false, nodeInfo: { processEvent: [] } } ], 1: [ { color: '#B36EDB', icon: '#icon-shujufenxi', text: '获取表单数据', detail: '(新增无此操作)', bgcColor: '#F8F2FC', isUserDefined: false, nodeInfo: { processEvent: [] } } ], 2: [ { color: '#F8625C', icon: '#icon-jiazai', text: '加载表单', bgcColor: '#FFF1F1', isUserDefined: false, nodeInfo: { processEvent: [] } } ], 3: [ { color: '#6C6AE0', icon: '#icon-jsontijiao', text: '提交表单', bgcColor: '#F5F4FF', isUserDefined: false, nodeInfo: { processEvent: [] } } ], 4: [ { type: 'circle', color: '#F8625C', text: '结束节点', icon: '#icon-jieshuzhiliao', bgcColor: '#FFD6D6', isLast: true, isUserDefined: false } ] }; export const formProps: FormProps = { labelCol: { span: 3, offset: 0 }, labelAlign: 'right', layout: 'horizontal', size: 'default', schemas: [ { key: 'ea4fcc80a1dd40219bcc8e28b7052655', field: 'code', label: '编码', type: 'input', component: 'Input', colProps: { span: 24 }, defaultValue: '', componentProps: { width: '100%', span: '', defaultValue: '', labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, respNewRow: false, placeholder: '请输入编码', maxlength: null, prefix: '', suffix: '', addonBefore: '', addonAfter: '', disabled: true, allowClear: false, showLabel: true, required: false, rules: [], events: {}, isSave: false, isShow: true, scan: false, style: { width: '100%' } } }, { key: '1b3bf1efab214701a9588b4cfb9dfd5c', field: 'fullName', label: '名称', type: 'input', component: 'Input', colProps: { span: 16 }, defaultValue: '', componentProps: { width: '100%', span: '', defaultValue: '', labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, respNewRow: false, placeholder: '请输入名称', maxlength: null, prefix: '', suffix: '', addonBefore: '', addonAfter: '', disabled: false, allowClear: false, showLabel: true, required: true, rules: [], events: {}, isSave: false, isShow: true, scan: false, style: { width: '100%' } } }, { key: '0dcc7f43f9e34f1b87cc2f730417b3e0', field: 'shortName', label: '简称', type: 'input', component: 'Input', colProps: { span: 8 }, defaultValue: '', componentProps: { width: '100%', span: '', defaultValue: '', labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, respNewRow: false, placeholder: '请输入简称', maxlength: null, prefix: '', suffix: '', addonBefore: '', addonAfter: '', disabled: false, allowClear: true, showLabel: true, required: true, rules: [], events: {}, isSave: false, isShow: true, scan: false, style: { width: '100%' } } }, { field: 'regionCode', label: '所属国家/地区', type: 'areacascader', component: 'AreaCascader', colProps: { span: 16 }, componentProps: { width: '100%', span: '', labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, respNewRow: false, placeholder: '请选择区域', showLabel: true, disabled: false, allowClear: true, clearable: false, required: false, rules: [], events: {}, isShow: true, style: { width: '100%' }, fieldNames: { label: 'fullName', value: 'code', children: 'children' }, excludeType: 'CONTINENT' } }, { key: 'cd46b163fa8345809ab5d579d96f40f2', field: 'capacity', label: '吞吐量', type: 'number', component: 'InputNumber', colProps: { span: 8 }, defaultValue: null, componentProps: { labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, width: '100%', span: '', defaultValue: 0.0, formatter(value: number) { if (!value) return ''; console.log(value); // 3. 保留4位小数(toFixed会自动四舍五入) const fixedNum = parseFloat(value).toFixed(4); // 结果为字符串,如 "12345.6700"、"-1234.5679" // 4. 分割整数部分和小数部分 const [integerPart, decimalPart] = fixedNum.split('.'); // 5. 处理整数部分:添加千分位分隔符 // 正则解释:\B 匹配非单词边界,(?=(\d{3})+(?!\d)) 正向预查每3位数字 const formattedInteger = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ','); // 6. 拼接整数、小数部分,返回结果 return `${formattedInteger}.${decimalPart}`; // return value.toLocaleString('zh-CN', { // minimumFractionDigits: 4, // maximumFractionDigits: 4 // }); }, min: null, max: null, step: 0.0001, maxlength: '', disabled: false, showLabel: true, controls: true, required: false, subTotal: false, isShow: true, rules: [], events: {}, style: { width: '100%' } } }, { key: '16e52805d5334759be1d2f40d517efa6', field: 'longitude', label: '连线经度', type: 'number', component: 'InputNumber', colProps: { span: 8 }, defaultValue: null, componentProps: { labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, width: '100%', precision: '2', span: '', defaultValue: null, min: null, max: null, step: 0.01, disabled: false, showLabel: true, controls: true, required: false, subTotal: false, isShow: true, rules: [], events: {}, style: { width: '100%' } } }, { key: '6b1a921de60d4676be79074cefe0327a', field: 'latitude', label: '连线纬度', type: 'number', component: 'InputNumber', colProps: { span: 8 }, defaultValue: null, componentProps: { labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, precision: '2', width: '100%', span: '', defaultValue: null, min: null, max: null, step: 0.01, disabled: false, showLabel: true, controls: true, required: false, subTotal: false, isShow: true, rules: [], events: {}, style: { width: '100%' } } }, { key: '68e573db83d941efb9a5687f84726b6b', field: 'limit1', label: '限制1', type: 'textarea', component: 'InputTextArea', colProps: { span: 24 }, defaultValue: '', componentProps: { width: '100%', span: '', defaultValue: '', labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, respNewRow: true, placeholder: '请输入限制1', maxlength: null, rows: 4, autoSize: false, showCount: true, disabled: false, showLabel: true, allowClear: false, required: false, isShow: true, rules: [], events: {}, style: { width: '100%' } } }, { key: '34c007fd1d9544ecb3a5ecea5d7f7b1b', field: 'limit2', label: '限制2', type: 'textarea', component: 'InputTextArea', colProps: { span: 24 }, defaultValue: '', componentProps: { width: '100%', span: '', defaultValue: '', labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, respNewRow: true, placeholder: '请输入限制2', maxlength: null, rows: 4, autoSize: false, showCount: true, disabled: false, showLabel: true, allowClear: false, required: false, isShow: true, rules: [], events: {}, style: { width: '100%' } } }, { key: '9099e3d919a64dfe860719c34fcaf37d', field: 'limit3', label: '限制3', type: 'textarea', component: 'InputTextArea', colProps: { span: 24 }, defaultValue: '', componentProps: { width: '100%', span: '', defaultValue: '', labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, respNewRow: true, placeholder: '请输入限制3', maxlength: null, rows: 4, autoSize: false, showCount: true, disabled: false, showLabel: true, allowClear: false, required: false, isShow: true, rules: [], events: {}, style: { width: '100%' } } }, { key: '16fbe387e5c6471b9be06524f4766f10', field: 'limit4', label: '限制4', type: 'textarea', component: 'InputTextArea', colProps: { span: 24 }, defaultValue: '', componentProps: { width: '100%', span: '', defaultValue: '', labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, respNewRow: true, placeholder: '请输入限制4', maxlength: null, rows: 4, autoSize: false, showCount: true, disabled: false, showLabel: true, allowClear: false, required: false, isShow: true, rules: [], events: {}, style: { width: '100%' } } }, { key: 'ef6536972cc54e21b09b4f5637730d0b', field: 'sort', label: '显示顺序', type: 'number', component: 'InputNumber', colProps: { span: 8 }, defaultValue: null, componentProps: { labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, width: '100%', span: '', defaultValue: null, min: 0, max: null, step: 1, maxlength: '', disabled: false, showLabel: true, controls: true, required: false, subTotal: false, isShow: true, rules: [], events: {}, style: { width: '100%' } } }, { key: '03f1a079e8544b77a793460306207f41', field: 'valid', label: '有效标志', type: 'select', component: 'XjrSelect', colProps: { span: 8 }, componentProps: { width: '100%', span: '', labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, respNewRow: false, placeholder: '请选择有效标志', sepTextField: '', showLabel: true, showSearch: false, clearable: false, disabled: true, mode: 'multiple', staticOptions: [ { key: 1, label: 'Option 1', value: 'Option 1' }, { key: 2, label: 'Option 2', value: 'Option 2' }, { key: 3, label: 'Option 3', value: 'Option 3' } ], defaultSelect: null, datasourceType: 'dic', params: { itemId: '1978057078528327681' }, labelField: 'name', valueField: 'value', apiConfig: { path: 'CodeGeneration/selection', method: 'GET', apiId: '93d735dcb7364a0f8102188ec4d77ac7' }, dicOptions: [], required: false, rules: [], events: {}, isShow: true, itemId: '1978057078528327681', style: { width: '100%' } } }, { key: 'e15f5901160a49e9969fdd7d61e00053', field: 'note', label: '备注', type: 'textarea', component: 'InputTextArea', colProps: { span: 24 }, defaultValue: '', componentProps: { width: '100%', span: '', defaultValue: '', labelWidthMode: 'fix', labelFixWidth: 120, responsive: false, respNewRow: true, placeholder: '请输入备注', maxlength: null, rows: 4, autoSize: false, showCount: false, disabled: false, showLabel: true, allowClear: false, required: false, isShow: true, rules: [], events: {}, style: { width: '100%' } } } ], showActionButtonGroup: false, buttonLocation: 'center', actionColOptions: { span: 24 }, showResetButton: false, showSubmitButton: false, hiddenComponent: [] };