615 lines
14 KiB
TypeScript
615 lines
14 KiB
TypeScript
import { FormProps, FormSchema } from '/@/components/Form';
|
||
import { BasicColumn } from '/@/components/Table';
|
||
import { useI18n } from '/@/hooks/web/useI18n';
|
||
const { t } = useI18n();
|
||
import { h } from 'vue';
|
||
import { Tag } from 'ant-design-vue';
|
||
|
||
export const formConfig = {
|
||
useCustomConfig: false,
|
||
};
|
||
|
||
export const searchFormSchema: FormSchema[] = [
|
||
{
|
||
field: 'shortName',
|
||
label: '银行名称/简称',
|
||
component: 'Input',
|
||
},
|
||
{
|
||
field: 'bankCode',
|
||
label: '联行号',
|
||
component: 'Input',
|
||
},
|
||
{
|
||
field: 'valid',
|
||
label: '有效标志',
|
||
component: 'XjrSelect',
|
||
componentProps: {
|
||
datasourceType: 'dic',
|
||
params: { itemId: '1978057078528327681' },
|
||
labelField: 'name',
|
||
valueField: 'value',
|
||
|
||
getPopupContainer: () => document.body,
|
||
},
|
||
},
|
||
{
|
||
field: 'code',
|
||
label: '编码',
|
||
component: 'Input',
|
||
},
|
||
// {
|
||
// field: 'fullName',
|
||
// label: '银行名称',
|
||
// component: 'Input',
|
||
// },
|
||
// {
|
||
// field: 'code',
|
||
// label: '所属国家和地区',
|
||
// component: 'Input',
|
||
// },
|
||
// {
|
||
// field: 'swift',
|
||
// label: 'SWIFT',
|
||
// component: 'Input',
|
||
// },
|
||
];
|
||
|
||
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: 'bankCode',
|
||
title: '联行号',
|
||
componentType: 'input',
|
||
align: 'left',
|
||
|
||
sorter: true,
|
||
},
|
||
{
|
||
dataIndex: 'regionName',
|
||
title: '所属国家和地区',
|
||
componentType: 'input',
|
||
align: 'left',
|
||
|
||
sorter: true,
|
||
},
|
||
|
||
{
|
||
dataIndex: 'swift',
|
||
title: 'SWIFT',
|
||
componentType: 'input',
|
||
align: 'left',
|
||
|
||
sorter: true,
|
||
},
|
||
|
||
{
|
||
dataIndex: 'valid',
|
||
title: '有效标志',
|
||
componentType: 'select',
|
||
align: 'left',
|
||
|
||
sorter: true,
|
||
// customRender: ({ record }) => {
|
||
// const enabledMark = record.valid;
|
||
// const enable = ~~enabledMark === '有效';
|
||
// const color = enable ? 'green' : 'red';
|
||
// const text = enable ? t('有效') : t('无效');
|
||
// return h(Tag, { color: color }, () => text);
|
||
// }
|
||
},
|
||
];
|
||
//表单事件
|
||
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: '1',
|
||
field: 'code',
|
||
label: '编码',
|
||
type: 'input',
|
||
component: 'InputNumber',
|
||
colProps: { span: 24 },
|
||
defaultValue: '',
|
||
componentProps: {
|
||
width: '33.3%',
|
||
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: '50%' },
|
||
},
|
||
},
|
||
{
|
||
key: '5fdaec7802364d16a979fc9d3218bbfa',
|
||
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: '2',
|
||
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: false,
|
||
showLabel: true,
|
||
required: true,
|
||
rules: [],
|
||
events: {},
|
||
isSave: false,
|
||
isShow: true,
|
||
scan: false,
|
||
style: { width: '100%' },
|
||
},
|
||
},
|
||
{
|
||
key: '38bd834c265446658be6f9784672e1ae',
|
||
field: 'bankCode',
|
||
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: false,
|
||
showLabel: true,
|
||
required: false,
|
||
rules: [],
|
||
events: {},
|
||
isSave: false,
|
||
isShow: true,
|
||
scan: false,
|
||
style: { width: '100%' },
|
||
},
|
||
},
|
||
{
|
||
key: '1485b829c80a493bb55f37d1c839ccc9',
|
||
field: 'regionCode',
|
||
label: '所属国家/地区',
|
||
type: 'areacascader',
|
||
component: 'AreaCascader',
|
||
colProps: { span: 8 },
|
||
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: '6461a5e152124abca28bd2114dd577e6',
|
||
field: 'swift',
|
||
label: 'SWIFT',
|
||
type: 'input',
|
||
component: 'Input',
|
||
colProps: { span: 8 },
|
||
defaultValue: '',
|
||
componentProps: {
|
||
width: '100%',
|
||
span: '',
|
||
defaultValue: '',
|
||
labelWidthMode: 'fix',
|
||
labelFixWidth: 120,
|
||
responsive: false,
|
||
respNewRow: false,
|
||
placeholder: '请输入SWIFT',
|
||
maxlength: null,
|
||
prefix: '',
|
||
suffix: '',
|
||
addonBefore: '',
|
||
addonAfter: '',
|
||
disabled: false,
|
||
allowClear: false,
|
||
showLabel: true,
|
||
required: false,
|
||
rules: [],
|
||
events: {},
|
||
isSave: false,
|
||
isShow: true,
|
||
scan: false,
|
||
style: { width: '100%' },
|
||
},
|
||
},
|
||
{
|
||
key: '5',
|
||
field: 'ib',
|
||
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: false,
|
||
rules: [],
|
||
events: {},
|
||
isSave: false,
|
||
isShow: true,
|
||
scan: false,
|
||
style: { width: '100%' },
|
||
},
|
||
},
|
||
{
|
||
key: '6',
|
||
field: 'ibSwift',
|
||
label: '中转行SWIFT',
|
||
type: 'input',
|
||
component: 'Input',
|
||
colProps: { span: 8 },
|
||
defaultValue: '',
|
||
componentProps: {
|
||
width: '100%',
|
||
span: '',
|
||
defaultValue: '',
|
||
labelWidthMode: 'fix',
|
||
labelFixWidth: 120,
|
||
responsive: false,
|
||
respNewRow: false,
|
||
placeholder: '请输入中转行SWIFT',
|
||
maxlength: null,
|
||
prefix: '',
|
||
suffix: '',
|
||
addonBefore: '',
|
||
addonAfter: '',
|
||
disabled: false,
|
||
allowClear: false,
|
||
showLabel: true,
|
||
required: false,
|
||
rules: [],
|
||
events: {},
|
||
isSave: false,
|
||
isShow: true,
|
||
scan: false,
|
||
style: { width: '100%' },
|
||
},
|
||
},
|
||
{
|
||
key: '7',
|
||
field: 'routing',
|
||
label: 'Routing',
|
||
type: 'input',
|
||
component: 'Input',
|
||
colProps: { span: 8 },
|
||
defaultValue: '',
|
||
componentProps: {
|
||
width: '100%',
|
||
span: '',
|
||
defaultValue: '',
|
||
labelWidthMode: 'fix',
|
||
labelFixWidth: 120,
|
||
responsive: false,
|
||
respNewRow: false,
|
||
placeholder: '请输入Routing',
|
||
maxlength: null,
|
||
prefix: '',
|
||
suffix: '',
|
||
addonBefore: '',
|
||
addonAfter: '',
|
||
disabled: false,
|
||
allowClear: false,
|
||
showLabel: true,
|
||
required: false,
|
||
rules: [],
|
||
events: {},
|
||
isSave: false,
|
||
isShow: true,
|
||
scan: false,
|
||
style: { width: '100%' },
|
||
},
|
||
},
|
||
{
|
||
key: '8',
|
||
field: 'sort',
|
||
label: '显示顺序',
|
||
type: 'input',
|
||
component: 'InputNumber',
|
||
colProps: { span: 8 },
|
||
defaultValue: null,
|
||
componentProps: {
|
||
width: '100%',
|
||
span: '',
|
||
min:0,
|
||
defaultValue: '',
|
||
labelWidthMode: 'fix',
|
||
labelFixWidth: 120,
|
||
responsive: false,
|
||
respNewRow: false,
|
||
placeholder: '请输入显示顺序',
|
||
maxlength: null,
|
||
prefix: '',
|
||
suffix: '',
|
||
addonBefore: '',
|
||
addonAfter: '',
|
||
disabled: false,
|
||
allowClear: false,
|
||
showLabel: true,
|
||
required: false,
|
||
rules: [],
|
||
events: {},
|
||
isSave: false,
|
||
isShow: true,
|
||
scan: false,
|
||
style: { width: '100%' },
|
||
},
|
||
},
|
||
{
|
||
key: '714953d458d9402bb507893c92913d44',
|
||
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,
|
||
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: 'Y',
|
||
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: '9',
|
||
field: 'note',
|
||
label: '备注',
|
||
type: 'input',
|
||
component: 'InputTextArea',
|
||
colProps: { span: 24 },
|
||
defaultValue: '',
|
||
componentProps: {
|
||
width: '100%',
|
||
span: '',
|
||
defaultValue: '',
|
||
labelWidthMode: 'fix',
|
||
labelFixWidth: 120,
|
||
responsive: false,
|
||
respNewRow: false,
|
||
placeholder: '请输入内容,最多200字',
|
||
maxlength: 200,
|
||
prefix: '',
|
||
suffix: '',
|
||
addonBefore: '',
|
||
addonAfter: '',
|
||
disabled: false,
|
||
allowClear: false,
|
||
showLabel: true,
|
||
required: false,
|
||
rules: [],
|
||
events: {},
|
||
isSave: false,
|
||
isShow: true,
|
||
scan: false,
|
||
style: { width: '100%' },
|
||
},
|
||
},
|
||
],
|
||
showActionButtonGroup: false,
|
||
buttonLocation: 'center',
|
||
actionColOptions: { span: 24 },
|
||
showResetButton: false,
|
||
showSubmitButton: false,
|
||
hiddenComponent: [],
|
||
}; |