103 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
import type { VbenFormSchema } from '#/adapter/form';
 | 
						|
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
 | 
						|
 | 
						|
import { z } from '#/adapter/form';
 | 
						|
import { CommonStatusEnum, DICT_TYPE, getDictOptions } from '#/utils';
 | 
						|
 | 
						|
/** 新增/修改的表单 */
 | 
						|
export function useFormSchema(): VbenFormSchema[] {
 | 
						|
  return [
 | 
						|
    {
 | 
						|
      component: 'Input',
 | 
						|
      fieldName: 'id',
 | 
						|
      dependencies: {
 | 
						|
        triggerFields: [''],
 | 
						|
        show: () => false,
 | 
						|
      },
 | 
						|
    },
 | 
						|
    {
 | 
						|
      component: 'Input',
 | 
						|
      fieldName: 'name',
 | 
						|
      label: '模板名称',
 | 
						|
      rules: 'required',
 | 
						|
    },
 | 
						|
    {
 | 
						|
      fieldName: 'chargeMode',
 | 
						|
      label: '计费方式',
 | 
						|
      component: 'RadioGroup',
 | 
						|
      componentProps: {
 | 
						|
        options: getDictOptions(DICT_TYPE.EXPRESS_CHARGE_MODE, 'number'),
 | 
						|
        buttonStyle: 'solid',
 | 
						|
        optionType: 'button',
 | 
						|
      },
 | 
						|
      rules: z.number().default(CommonStatusEnum.ENABLE),
 | 
						|
    },
 | 
						|
    {
 | 
						|
      fieldName: 'sort',
 | 
						|
      label: '显示顺序',
 | 
						|
      component: 'InputNumber',
 | 
						|
      componentProps: {
 | 
						|
        min: 0,
 | 
						|
      },
 | 
						|
      rules: 'required',
 | 
						|
    },
 | 
						|
  ];
 | 
						|
}
 | 
						|
 | 
						|
/** 列表的搜索表单 */
 | 
						|
export function useGridFormSchema(): VbenFormSchema[] {
 | 
						|
  return [
 | 
						|
    {
 | 
						|
      fieldName: 'name',
 | 
						|
      label: '模板名称',
 | 
						|
      component: 'Input',
 | 
						|
    },
 | 
						|
    {
 | 
						|
      fieldName: 'chargeMode',
 | 
						|
      label: '计费方式',
 | 
						|
      component: 'Select',
 | 
						|
      componentProps: {
 | 
						|
        allowClear: true,
 | 
						|
        options: getDictOptions(DICT_TYPE.EXPRESS_CHARGE_MODE, 'number'),
 | 
						|
      },
 | 
						|
    },
 | 
						|
  ];
 | 
						|
}
 | 
						|
 | 
						|
/** 列表的字段 */
 | 
						|
export function useGridColumns(): VxeTableGridOptions['columns'] {
 | 
						|
  return [
 | 
						|
    {
 | 
						|
      field: 'id',
 | 
						|
      title: '编号',
 | 
						|
    },
 | 
						|
    {
 | 
						|
      field: 'name',
 | 
						|
      title: '模板名称',
 | 
						|
    },
 | 
						|
    {
 | 
						|
      field: 'chargeMode',
 | 
						|
      title: '计费方式',
 | 
						|
      cellRender: {
 | 
						|
        name: 'CellDict',
 | 
						|
        props: { type: DICT_TYPE.EXPRESS_CHARGE_MODE },
 | 
						|
      },
 | 
						|
    },
 | 
						|
    {
 | 
						|
      field: 'sort',
 | 
						|
      title: '显示顺序',
 | 
						|
    },
 | 
						|
    {
 | 
						|
      field: 'createTime',
 | 
						|
      title: '创建时间',
 | 
						|
      formatter: 'formatDateTime',
 | 
						|
    },
 | 
						|
    {
 | 
						|
      title: '操作',
 | 
						|
      width: 130,
 | 
						|
      fixed: 'right',
 | 
						|
      slots: { default: 'actions' },
 | 
						|
    },
 | 
						|
  ];
 | 
						|
}
 |