import type {BasicColumn, FormSchema} from '@/components/Table' 
 | 
import {useRender} from '@/components/Table' 
 | 
import {DICT_TYPE, getDictOptions} from '@/utils/dict' 
 | 
  
 | 
export const columns: BasicColumn[] = [ 
 | 
#foreach($column in $columns) 
 | 
#if ($column.listOperationResult) 
 | 
  #set ($dictType=$column.dictType) 
 | 
  #set ($javaField = $column.javaField) 
 | 
  #set ($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) 
 | 
  #set ($comment=$column.columnComment) 
 | 
#if ($column.javaType == "LocalDateTime")## 时间类型 
 | 
  { 
 | 
    title: '${comment}', 
 | 
    dataIndex: '${javaField}', 
 | 
    width: 180, 
 | 
    customRender: ({ text }) => { 
 | 
      return useRender.renderDate(text) 
 | 
    }, 
 | 
  }, 
 | 
#elseif("" != $column.dictType)## 数据字典 
 | 
  { 
 | 
    title: '${comment}', 
 | 
    dataIndex: '${javaField}', 
 | 
    width: 180, 
 | 
    customRender: ({ text }) => { 
 | 
      return useRender.renderDict(text, DICT_TYPE.$dictType.toUpperCase()) 
 | 
    }, 
 | 
  }, 
 | 
#else 
 | 
  { 
 | 
    title: '${comment}', 
 | 
    dataIndex: '${javaField}', 
 | 
    width: 160, 
 | 
  }, 
 | 
#end 
 | 
#end 
 | 
#end 
 | 
] 
 | 
  
 | 
export const searchFormSchema: FormSchema[] = [ 
 | 
#foreach($column in $columns) 
 | 
#if ($column.listOperation) 
 | 
  #set ($dictType=$column.dictType) 
 | 
  #set ($javaField = $column.javaField) 
 | 
  #set ($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) 
 | 
  #set ($comment=$column.columnComment) 
 | 
  { 
 | 
    label: '${comment}', 
 | 
    field: '${javaField}', 
 | 
  #if ($column.htmlType == "input") 
 | 
    component: 'Input', 
 | 
  #elseif ($column.htmlType == "select") 
 | 
    component: 'Select', 
 | 
    componentProps: { 
 | 
      #if ("" != $dictType)## 设置了 dictType 数据字典的情况 
 | 
        options: getDictOptions(DICT_TYPE.$dictType.toUpperCase()), 
 | 
      #else## 未设置 dictType 数据字典的情况 
 | 
        options: [], 
 | 
      #end 
 | 
    }, 
 | 
  #elseif ($column.htmlType == "radio") 
 | 
    component: 'Radio', 
 | 
    componentProps: { 
 | 
      #if ("" != $dictType)## 设置了 dictType 数据字典的情况 
 | 
        options: getDictOptions(DICT_TYPE.$dictType.toUpperCase()), 
 | 
      #else## 未设置 dictType 数据字典的情况 
 | 
        options: [], 
 | 
      #end 
 | 
    }, 
 | 
  #elseif($column.htmlType == "datetime") 
 | 
    component: 'RangePicker', 
 | 
    #end 
 | 
    colProps: { span: 8 }, 
 | 
  }, 
 | 
#end 
 | 
#end 
 | 
] 
 | 
  
 | 
export const createFormSchema: FormSchema[] = [ 
 | 
  { 
 | 
    label: '编号', 
 | 
    field: 'id', 
 | 
    show: false, 
 | 
    component: 'Input', 
 | 
  }, 
 | 
#foreach($column in $columns) 
 | 
#if ($column.createOperation) 
 | 
  #set ($dictType = $column.dictType) 
 | 
  #set ($javaField = $column.javaField) 
 | 
  #set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) 
 | 
  #set ($comment = $column.columnComment) 
 | 
#if (!$column.primaryKey)## 忽略主键,不用在表单里 
 | 
  { 
 | 
    label: '${comment}', 
 | 
    field: '${javaField}', 
 | 
  #if (($column.createOperation || $column.updateOperation) && !$column.nullable && !${column.primaryKey})## 创建或者更新操作 && 要求非空 && 非主键 
 | 
    required: true, 
 | 
    #end 
 | 
  #if ($column.htmlType == "input") 
 | 
    component: 'Input', 
 | 
  #elseif($column.htmlType == "imageUpload")## 图片上传 
 | 
    component: 'FileUpload', 
 | 
    componentProps: { 
 | 
      fileType: 'image', 
 | 
      maxCount: 1, 
 | 
    }, 
 | 
  #elseif($column.htmlType == "fileUpload")## 文件上传 
 | 
    component: 'FileUpload', 
 | 
    componentProps: { 
 | 
      fileType: 'file', 
 | 
      maxCount: 1, 
 | 
    }, 
 | 
  #elseif($column.htmlType == "editor")## 文本编辑器 
 | 
    component: 'Editor', 
 | 
  #elseif($column.htmlType == "select")## 下拉框 
 | 
    component: 'Select', 
 | 
    componentProps: { 
 | 
      #if ("" != $dictType)## 有数据字典 
 | 
        options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), 
 | 
      #else##没数据字典 
 | 
        options:[], 
 | 
      #end 
 | 
    }, 
 | 
  #elseif($column.htmlType == "checkbox")## 多选框 
 | 
    component: 'Checkbox', 
 | 
    componentProps: { 
 | 
      #if ("" != $dictType)## 有数据字典 
 | 
        options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), 
 | 
      #else##没数据字典 
 | 
        options:[], 
 | 
      #end 
 | 
    }, 
 | 
  #elseif($column.htmlType == "radio")## 单选框 
 | 
    component: 'RadioButtonGroup', 
 | 
    componentProps: { 
 | 
      #if ("" != $dictType)## 有数据字典 
 | 
        options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), 
 | 
      #else##没数据字典 
 | 
        options:[], 
 | 
      #end 
 | 
    }, 
 | 
  #elseif($column.htmlType == "datetime")## 时间框 
 | 
    component: 'DatePicker', 
 | 
    componentProps: { 
 | 
      showTime: true, 
 | 
      format: 'YYYY-MM-DD HH:mm:ss', 
 | 
      valueFormat: 'x', 
 | 
    }, 
 | 
  #elseif($column.htmlType == "textarea")## 文本域 
 | 
    component: 'InputTextArea', 
 | 
  #end 
 | 
  }, 
 | 
#end 
 | 
#end 
 | 
#end 
 | 
] 
 | 
  
 | 
export const updateFormSchema: FormSchema[] = [ 
 | 
  { 
 | 
    label: '编号', 
 | 
    field: 'id', 
 | 
    show: false, 
 | 
    component: 'Input', 
 | 
  }, 
 | 
#foreach($column in $columns) 
 | 
#if ($column.updateOperation) 
 | 
#set ($dictType = $column.dictType) 
 | 
#set ($javaField = $column.javaField) 
 | 
#set ($AttrName = $column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) 
 | 
#set ($comment = $column.columnComment) 
 | 
  #if (!$column.primaryKey)## 忽略主键,不用在表单里 
 | 
  { 
 | 
    label: '${comment}', 
 | 
    field: '${javaField}', 
 | 
    #if (($column.createOperation || $column.updateOperation) && !$column.nullable && !${column.primaryKey})## 创建或者更新操作 && 要求非空 && 非主键 
 | 
    required: true, 
 | 
    #end 
 | 
    #if ($column.htmlType == "input") 
 | 
    component: 'Input', 
 | 
    #elseif($column.htmlType == "imageUpload")## 图片上传 
 | 
    component: 'FileUpload', 
 | 
    componentProps: { 
 | 
      fileType: 'image', 
 | 
      maxCount: 1, 
 | 
    }, 
 | 
    #elseif($column.htmlType == "fileUpload")## 文件上传 
 | 
    component: 'FileUpload', 
 | 
    componentProps: { 
 | 
      fileType: 'file', 
 | 
      maxCount: 1, 
 | 
    }, 
 | 
    #elseif($column.htmlType == "editor")## 文本编辑器 
 | 
    component: 'Editor', 
 | 
    #elseif($column.htmlType == "select")## 下拉框 
 | 
    component: 'Select', 
 | 
    componentProps: { 
 | 
      #if ("" != $dictType)## 有数据字典 
 | 
      options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), 
 | 
      #else##没数据字典 
 | 
      options:[], 
 | 
      #end 
 | 
    }, 
 | 
    #elseif($column.htmlType == "checkbox")## 多选框 
 | 
    component: 'Checkbox', 
 | 
    componentProps: { 
 | 
      #if ("" != $dictType)## 有数据字典 
 | 
      options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), 
 | 
      #else##没数据字典 
 | 
      options:[], 
 | 
      #end 
 | 
    }, 
 | 
    #elseif($column.htmlType == "radio")## 单选框 
 | 
    component: 'RadioButtonGroup', 
 | 
    componentProps: { 
 | 
      #if ("" != $dictType)## 有数据字典 
 | 
      options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), 'number'), 
 | 
      #else##没数据字典 
 | 
      options:[], 
 | 
      #end 
 | 
    }, 
 | 
    #elseif($column.htmlType == "datetime")## 时间框 
 | 
    component: 'DatePicker', 
 | 
    componentProps: { 
 | 
      showTime: true, 
 | 
      format: 'YYYY-MM-DD HH:mm:ss', 
 | 
      valueFormat: 'x', 
 | 
    }, 
 | 
    #elseif($column.htmlType == "textarea")## 文本域 
 | 
    component: 'InputTextArea', 
 | 
    #end 
 | 
  }, 
 | 
  #end 
 | 
#end 
 | 
#end 
 | 
] 
 |