mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	修复代码生成父菜单选择无效,前端代码缺少字段,格式错误
This commit is contained in:
		@@ -1,35 +1,35 @@
 | 
			
		||||
import { useAxios } from '@/hooks/web/useAxios'
 | 
			
		||||
import { ${simpleClassName}VO,${simpleClassName}PageReqVO,${simpleClassName}ExcelReqVO } from './types'
 | 
			
		||||
import { ${simpleClassName}VO, ${simpleClassName}PageReqVO, ${simpleClassName}ExcelReqVO } from './types'
 | 
			
		||||
 | 
			
		||||
const request = useAxios()
 | 
			
		||||
 | 
			
		||||
#set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}")
 | 
			
		||||
// 查询${table.classComment}列表
 | 
			
		||||
export const get${simpleClassName}PageApi = async (params: ${simpleClassName}PageReqVO) => {
 | 
			
		||||
    return await request.get({ url: '${baseURL}/page', params })
 | 
			
		||||
  return await request.get({ url: '${baseURL}/page', params })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查询${table.classComment}详情
 | 
			
		||||
export const get${simpleClassName}Api = async (id: number) => {
 | 
			
		||||
    return await request.get({ url: '${baseURL}/get?id=' + id })
 | 
			
		||||
  return await request.get({ url: '${baseURL}/get?id=' + id })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 新增${table.classComment}
 | 
			
		||||
export const create${simpleClassName}Api = async (data: ${simpleClassName}VO) => {
 | 
			
		||||
    return await request.post({ url: '${baseURL}/create', data })
 | 
			
		||||
  return await request.post({ url: '${baseURL}/create', data })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改${table.classComment}
 | 
			
		||||
export const update${simpleClassName}Api = async (data: ${simpleClassName}VO) => {
 | 
			
		||||
    return await request.put({ url: '${baseURL}/update', data })
 | 
			
		||||
  return await request.put({ url: '${baseURL}/update', data })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 删除${table.classComment}
 | 
			
		||||
export const delete${simpleClassName}Api = async (id: number) => {
 | 
			
		||||
    return await request.delete({ url: '${baseURL}/delete?id=' + id })
 | 
			
		||||
  return await request.delete({ url: '${baseURL}/delete?id=' + id })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 导出${table.classComment} Excel
 | 
			
		||||
export const export${simpleClassName}Api = async (params: ${simpleClassName}ExcelReqVO) => {
 | 
			
		||||
    return await request.download({ url: '${baseURL}/export-excel', params })
 | 
			
		||||
  return await request.download({ url: '${baseURL}/export-excel', params })
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,9 +2,11 @@ export type ${simpleClassName}VO = {
 | 
			
		||||
#foreach ($column in $columns)
 | 
			
		||||
#if ($column.createOperation || $column.updateOperation)
 | 
			
		||||
#if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer")
 | 
			
		||||
    ${column.javaField}: number
 | 
			
		||||
  ${column.javaField}: number
 | 
			
		||||
#elseif(${column.javaType.toLowerCase()} == "date")
 | 
			
		||||
  ${column.javaField}: string
 | 
			
		||||
#else
 | 
			
		||||
    ${column.javaField}: ${column.javaType.toLowerCase()}
 | 
			
		||||
  ${column.javaField}: ${column.javaType.toLowerCase()}
 | 
			
		||||
#end
 | 
			
		||||
#end
 | 
			
		||||
#end
 | 
			
		||||
@@ -14,9 +16,11 @@ export type ${simpleClassName}PageReqVO = {
 | 
			
		||||
#foreach ($column in $columns)
 | 
			
		||||
#if (${column.listOperation})##查询操作
 | 
			
		||||
#if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer")
 | 
			
		||||
    ${column.javaField}: number
 | 
			
		||||
  ${column.javaField}: number
 | 
			
		||||
#elseif(${column.javaType.toLowerCase()} == "date")
 | 
			
		||||
  ${column.javaField}: string
 | 
			
		||||
#else
 | 
			
		||||
    ${column.javaField}: ${column.javaType.toLowerCase()}
 | 
			
		||||
  ${column.javaField}: ${column.javaType.toLowerCase()}
 | 
			
		||||
#end
 | 
			
		||||
#end
 | 
			
		||||
#end
 | 
			
		||||
@@ -26,9 +30,11 @@ export type ${simpleClassName}ExcelReqVO = {
 | 
			
		||||
#foreach ($column in $columns)
 | 
			
		||||
#if (${column.listOperation})##查询操作
 | 
			
		||||
#if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer")
 | 
			
		||||
    ${column.javaField}: number
 | 
			
		||||
  ${column.javaField}: number
 | 
			
		||||
#elseif(${column.javaType.toLowerCase()} == "date")
 | 
			
		||||
  ${column.javaField}: string
 | 
			
		||||
#else
 | 
			
		||||
    ${column.javaField}: ${column.javaType.toLowerCase()}
 | 
			
		||||
  ${column.javaField}: ${column.javaType.toLowerCase()}
 | 
			
		||||
#end
 | 
			
		||||
#end
 | 
			
		||||
#end
 | 
			
		||||
 
 | 
			
		||||
@@ -8,104 +8,104 @@ export const rules = reactive({
 | 
			
		||||
#foreach ($column in $columns)
 | 
			
		||||
#if (($column.createOperation || $column.updateOperation) && !$column.nullable && !${column.primaryKey})## 创建或者更新操作 && 要求非空 && 非主键
 | 
			
		||||
#set($comment=$column.columnComment)
 | 
			
		||||
    $column.javaField: [{ required: true, message: "${comment}不能为空", trigger: #if($column.htmlType == "select")"change"#else"blur"#end }],
 | 
			
		||||
  $column.javaField: [{ required: true, message: '${comment}不能为空', trigger: #if($column.htmlType == "select")'change'#else'blur'#end }],
 | 
			
		||||
#end
 | 
			
		||||
#end
 | 
			
		||||
})
 | 
			
		||||
// CrudSchema
 | 
			
		||||
const crudSchemas = reactive<CrudSchema[]>([
 | 
			
		||||
#foreach($column in $columns)
 | 
			
		||||
    #if ($column.listOperation || $column.listOperationResult || $column.createOperation || $column.updateOperation)
 | 
			
		||||
    #set ($dictType = $column.dictType)
 | 
			
		||||
    {
 | 
			
		||||
      label: '${column.columnComment}',
 | 
			
		||||
      field: '${column.javaField}',
 | 
			
		||||
      #if ("" != $dictType)## 有数据字典
 | 
			
		||||
      dictType: DICT_TYPE.$dictType.toUpperCase(),
 | 
			
		||||
      #end
 | 
			
		||||
      #if($column.primaryKey)
 | 
			
		||||
      type: 'index',
 | 
			
		||||
      form: {
 | 
			
		||||
         show: false
 | 
			
		||||
      },
 | 
			
		||||
      detail: {
 | 
			
		||||
         show: false
 | 
			
		||||
  #if ($column.listOperation || $column.listOperationResult || $column.createOperation || $column.updateOperation)
 | 
			
		||||
  #set ($dictType = $column.dictType)
 | 
			
		||||
  {
 | 
			
		||||
    label: '${column.columnComment}',
 | 
			
		||||
    field: '${column.javaField}',
 | 
			
		||||
    #if ("" != $dictType)## 有数据字典
 | 
			
		||||
    dictType: DICT_TYPE.$dictType.toUpperCase(),
 | 
			
		||||
    #end
 | 
			
		||||
    #if($column.primaryKey)
 | 
			
		||||
    type: 'index',
 | 
			
		||||
    form: {
 | 
			
		||||
      show: false
 | 
			
		||||
    },
 | 
			
		||||
    detail: {
 | 
			
		||||
      show: false
 | 
			
		||||
    }
 | 
			
		||||
    #else
 | 
			
		||||
    #if (!$column.createOperation && !$column.updateOperation)
 | 
			
		||||
    form: {
 | 
			
		||||
      show: false
 | 
			
		||||
    },
 | 
			
		||||
    #elseif(!("" != $column.dictType))
 | 
			
		||||
    form: {
 | 
			
		||||
      show: true,
 | 
			
		||||
      #if ($column.htmlType == "datetime")## 时间框
 | 
			
		||||
      component: 'DatePicker',
 | 
			
		||||
      componentProps: {
 | 
			
		||||
        type: 'datetime',
 | 
			
		||||
        valueFormat: 'YYYY-MM-DD HH:mm:ss'
 | 
			
		||||
      }
 | 
			
		||||
      #else
 | 
			
		||||
      #if (!$column.createOperation && !$column.updateOperation)
 | 
			
		||||
      form: {
 | 
			
		||||
         false
 | 
			
		||||
      #elseif($column.htmlType == "editor")## 文本编辑器
 | 
			
		||||
      component: 'Editor',
 | 
			
		||||
      colProps: {
 | 
			
		||||
        span: 24
 | 
			
		||||
      },
 | 
			
		||||
      #elseif(!("" != $column.dictType))
 | 
			
		||||
      form: {
 | 
			
		||||
          show: true,
 | 
			
		||||
          #if ($column.htmlType == "datetime")## 时间框
 | 
			
		||||
          component: 'DatePicker',
 | 
			
		||||
          componentProps: {
 | 
			
		||||
              type: 'datetime',
 | 
			
		||||
              valueFormat: 'YYYY-MM-DD HH:mm:ss'
 | 
			
		||||
          }
 | 
			
		||||
          #elseif($column.htmlType == "editor")## 文本编辑器
 | 
			
		||||
          component: 'Editor',
 | 
			
		||||
          colProps: {
 | 
			
		||||
              span: 24
 | 
			
		||||
          },
 | 
			
		||||
          componentProps: {
 | 
			
		||||
              valueHtml: ''
 | 
			
		||||
          }
 | 
			
		||||
          #elseif($column.htmlType == "textarea")## 文本框
 | 
			
		||||
          component: 'Input',
 | 
			
		||||
          componentProps: {
 | 
			
		||||
              type: 'textarea',
 | 
			
		||||
              rows: 4
 | 
			
		||||
          },
 | 
			
		||||
          colProps: {
 | 
			
		||||
              span: 24
 | 
			
		||||
          }
 | 
			
		||||
          #end
 | 
			
		||||
      },
 | 
			
		||||
      #end
 | 
			
		||||
      #if ($column.listOperationResult)
 | 
			
		||||
      search: {
 | 
			
		||||
         #if($column.htmlType == "input")
 | 
			
		||||
         show: true
 | 
			
		||||
         #else
 | 
			
		||||
         #if($column.htmlType == "datetime")
 | 
			
		||||
         show: true,
 | 
			
		||||
         component: 'DatePicker',
 | 
			
		||||
         componentProps: {
 | 
			
		||||
             type: 'datetimerange',
 | 
			
		||||
             valueFormat: 'YYYY-MM-DD HH:mm:ss'
 | 
			
		||||
         }
 | 
			
		||||
         #elseif($column.htmlType == "select" || $column.htmlType == "radio")
 | 
			
		||||
         #if ("" == $dictType)## 没有数据字典
 | 
			
		||||
         show: true,
 | 
			
		||||
         component: 'Select',
 | 
			
		||||
         componentProps: {
 | 
			
		||||
             option: [{'','请选择字典生成'}]
 | 
			
		||||
         }
 | 
			
		||||
         #else
 | 
			
		||||
         show: true
 | 
			
		||||
         #end
 | 
			
		||||
         #end
 | 
			
		||||
         #end
 | 
			
		||||
      componentProps: {
 | 
			
		||||
        valueHtml: ''
 | 
			
		||||
      }
 | 
			
		||||
      #elseif($column.htmlType == "textarea")## 文本框
 | 
			
		||||
      component: 'Input',
 | 
			
		||||
      componentProps: {
 | 
			
		||||
        type: 'textarea',
 | 
			
		||||
        rows: 4
 | 
			
		||||
      },
 | 
			
		||||
      colProps: {
 | 
			
		||||
        span: 24
 | 
			
		||||
      }
 | 
			
		||||
      #end
 | 
			
		||||
      #end
 | 
			
		||||
    },
 | 
			
		||||
    #end
 | 
			
		||||
#end
 | 
			
		||||
    {
 | 
			
		||||
        label: t('table.action'),
 | 
			
		||||
        field: 'action',
 | 
			
		||||
        width: '240px',
 | 
			
		||||
        form: {
 | 
			
		||||
            show: false
 | 
			
		||||
        },
 | 
			
		||||
        detail: {
 | 
			
		||||
            show: false
 | 
			
		||||
        }
 | 
			
		||||
    #if ($column.listOperationResult)
 | 
			
		||||
    search: {
 | 
			
		||||
      #if($column.htmlType == "input")
 | 
			
		||||
      show: true
 | 
			
		||||
      #else
 | 
			
		||||
      #if($column.htmlType == "datetime")
 | 
			
		||||
      show: true,
 | 
			
		||||
      component: 'DatePicker',
 | 
			
		||||
      componentProps: {
 | 
			
		||||
        type: 'datetimerange',
 | 
			
		||||
        valueFormat: 'YYYY-MM-DD HH:mm:ss'
 | 
			
		||||
      }
 | 
			
		||||
      #elseif($column.htmlType == "select" || $column.htmlType == "radio")
 | 
			
		||||
      #if ("" == $dictType)## 没有数据字典
 | 
			
		||||
      show: true,
 | 
			
		||||
      component: 'Select',
 | 
			
		||||
      componentProps: {
 | 
			
		||||
        option: [{'','请选择字典生成'}]
 | 
			
		||||
      }
 | 
			
		||||
      #else
 | 
			
		||||
      show: true
 | 
			
		||||
      #end
 | 
			
		||||
      #end
 | 
			
		||||
      #end
 | 
			
		||||
    }
 | 
			
		||||
    #end
 | 
			
		||||
    #end
 | 
			
		||||
  },
 | 
			
		||||
  #end
 | 
			
		||||
#end
 | 
			
		||||
  {
 | 
			
		||||
    label: t('table.action'),
 | 
			
		||||
    field: 'action',
 | 
			
		||||
    width: '240px',
 | 
			
		||||
    form: {
 | 
			
		||||
      show: false
 | 
			
		||||
    },
 | 
			
		||||
    detail: {
 | 
			
		||||
      show: false
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
])
 | 
			
		||||
 | 
			
		||||
export const { allSchemas } = useCrudSchemas(crudSchemas)
 | 
			
		||||
@@ -1,92 +1,92 @@
 | 
			
		||||
<script setup lang="ts">
 | 
			
		||||
  import { ref, unref } from 'vue'
 | 
			
		||||
  import dayjs from 'dayjs'
 | 
			
		||||
  import { ElMessage } from 'element-plus'
 | 
			
		||||
  import { DICT_TYPE } from '@/utils/dict'
 | 
			
		||||
  import { useTable } from '@/hooks/web/useTable'
 | 
			
		||||
  import { useI18n } from '@/hooks/web/useI18n'
 | 
			
		||||
  import { FormExpose } from '@/components/Form'
 | 
			
		||||
  import type { ${simpleClassName}VO } from '@/api/${table.moduleName}/${simpleClassName}/types'
 | 
			
		||||
  import { rules, allSchemas } from './${simpleClassName}.data'
 | 
			
		||||
  import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${simpleClassName}'
 | 
			
		||||
  const { t } = useI18n() // 国际化
 | 
			
		||||
import { ref, unref } from 'vue'
 | 
			
		||||
import dayjs from 'dayjs'
 | 
			
		||||
import { ElMessage } from 'element-plus'
 | 
			
		||||
import { DICT_TYPE } from '@/utils/dict'
 | 
			
		||||
import { useTable } from '@/hooks/web/useTable'
 | 
			
		||||
import { useI18n } from '@/hooks/web/useI18n'
 | 
			
		||||
import { FormExpose } from '@/components/Form'
 | 
			
		||||
import type { ${simpleClassName}VO } from '@/api/${table.moduleName}/${simpleClassName}/types'
 | 
			
		||||
import { rules, allSchemas } from './${simpleClassName}.data'
 | 
			
		||||
import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${simpleClassName}'
 | 
			
		||||
const { t } = useI18n() // 国际化
 | 
			
		||||
 | 
			
		||||
  // ========== 列表相关 ==========
 | 
			
		||||
  const { register, tableObject, methods } = useTable<${simpleClassName}VO>({
 | 
			
		||||
    getListApi: ${simpleClassName}Api.get${simpleClassName}PageApi,
 | 
			
		||||
    delListApi: ${simpleClassName}Api.delete${simpleClassName}Api,
 | 
			
		||||
    exportListApi: ${simpleClassName}Api.export${simpleClassName}Api
 | 
			
		||||
  })
 | 
			
		||||
  const { getList, setSearchParams, delList, exportList } = methods
 | 
			
		||||
// ========== 列表相关 ==========
 | 
			
		||||
const { register, tableObject, methods } = useTable<${simpleClassName}VO>({
 | 
			
		||||
  getListApi: ${simpleClassName}Api.get${simpleClassName}PageApi,
 | 
			
		||||
  delListApi: ${simpleClassName}Api.delete${simpleClassName}Api,
 | 
			
		||||
  exportListApi: ${simpleClassName}Api.export${simpleClassName}Api
 | 
			
		||||
})
 | 
			
		||||
const { getList, setSearchParams, delList, exportList } = methods
 | 
			
		||||
 | 
			
		||||
  // ========== CRUD 相关 ==========
 | 
			
		||||
  const actionLoading = ref(false) // 遮罩层
 | 
			
		||||
  const actionType = ref('') // 操作按钮的类型
 | 
			
		||||
  const dialogVisible = ref(false) // 是否显示弹出层
 | 
			
		||||
  const dialogTitle = ref('edit') // 弹出层标题
 | 
			
		||||
  const formRef = ref<FormExpose>() // 表单 Ref
 | 
			
		||||
// ========== CRUD 相关 ==========
 | 
			
		||||
const actionLoading = ref(false) // 遮罩层
 | 
			
		||||
const actionType = ref('') // 操作按钮的类型
 | 
			
		||||
const dialogVisible = ref(false) // 是否显示弹出层
 | 
			
		||||
const dialogTitle = ref('edit') // 弹出层标题
 | 
			
		||||
const formRef = ref<FormExpose>() // 表单 Ref
 | 
			
		||||
 | 
			
		||||
  // 设置标题
 | 
			
		||||
  const setDialogTile = (type: string) => {
 | 
			
		||||
    dialogTitle.value = t('action.' + type)
 | 
			
		||||
    actionType.value = type
 | 
			
		||||
    dialogVisible.value = true
 | 
			
		||||
  }
 | 
			
		||||
// 设置标题
 | 
			
		||||
const setDialogTile = (type: string) => {
 | 
			
		||||
  dialogTitle.value = t('action.' + type)
 | 
			
		||||
  actionType.value = type
 | 
			
		||||
  dialogVisible.value = true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // 新增操作
 | 
			
		||||
  const handleCreate = () => {
 | 
			
		||||
    setDialogTile('create')
 | 
			
		||||
    // 重置表单
 | 
			
		||||
    unref(formRef)?.getElFormRef()?.resetFields()
 | 
			
		||||
  }
 | 
			
		||||
// 新增操作
 | 
			
		||||
const handleCreate = () => {
 | 
			
		||||
  setDialogTile('create')
 | 
			
		||||
  // 重置表单
 | 
			
		||||
  unref(formRef)?.getElFormRef()?.resetFields()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // 修改操作
 | 
			
		||||
  const handleUpdate = async (row: ${simpleClassName}VO) => {
 | 
			
		||||
    setDialogTile('update')
 | 
			
		||||
    // 设置数据
 | 
			
		||||
    const res = await ${simpleClassName}Api.get${simpleClassName}Api(row.id)
 | 
			
		||||
    unref(formRef)?.setValues(res)
 | 
			
		||||
  }
 | 
			
		||||
// 修改操作
 | 
			
		||||
const handleUpdate = async (row: ${simpleClassName}VO) => {
 | 
			
		||||
  setDialogTile('update')
 | 
			
		||||
  // 设置数据
 | 
			
		||||
  const res = await ${simpleClassName}Api.get${simpleClassName}Api(row.id)
 | 
			
		||||
  unref(formRef)?.setValues(res)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // 提交按钮
 | 
			
		||||
  const submitForm = async () => {
 | 
			
		||||
    const elForm = unref(formRef)?.getElFormRef()
 | 
			
		||||
    if (!elForm) return
 | 
			
		||||
    elForm.validate(async (valid) => {
 | 
			
		||||
      if (valid) {
 | 
			
		||||
        actionLoading.value = true
 | 
			
		||||
        // 提交请求
 | 
			
		||||
        try {
 | 
			
		||||
          const data = unref(formRef)?.formModel as ${simpleClassName}VO
 | 
			
		||||
          if (actionType.value === 'create') {
 | 
			
		||||
            await ${simpleClassName}Api.create${simpleClassName}Api(data)
 | 
			
		||||
            ElMessage.success(t('common.createSuccess'))
 | 
			
		||||
          } else {
 | 
			
		||||
            await ${simpleClassName}Api.update${simpleClassName}Api(data)
 | 
			
		||||
            ElMessage.success(t('common.updateSuccess'))
 | 
			
		||||
          }
 | 
			
		||||
          // 操作成功,重新加载列表
 | 
			
		||||
          dialogVisible.value = false
 | 
			
		||||
          await getList()
 | 
			
		||||
        } finally {
 | 
			
		||||
          actionLoading.value = false
 | 
			
		||||
// 提交按钮
 | 
			
		||||
const submitForm = async () => {
 | 
			
		||||
  const elForm = unref(formRef)?.getElFormRef()
 | 
			
		||||
  if (!elForm) return
 | 
			
		||||
  elForm.validate(async (valid) => {
 | 
			
		||||
    if (valid) {
 | 
			
		||||
      actionLoading.value = true
 | 
			
		||||
      // 提交请求
 | 
			
		||||
      try {
 | 
			
		||||
        const data = unref(formRef)?.formModel as ${simpleClassName}VO
 | 
			
		||||
        if (actionType.value === 'create') {
 | 
			
		||||
          await ${simpleClassName}Api.create${simpleClassName}Api(data)
 | 
			
		||||
          ElMessage.success(t('common.createSuccess'))
 | 
			
		||||
        } else {
 | 
			
		||||
          await ${simpleClassName}Api.update${simpleClassName}Api(data)
 | 
			
		||||
          ElMessage.success(t('common.updateSuccess'))
 | 
			
		||||
        }
 | 
			
		||||
        // 操作成功,重新加载列表
 | 
			
		||||
        dialogVisible.value = false
 | 
			
		||||
        await getList()
 | 
			
		||||
      } finally {
 | 
			
		||||
        actionLoading.value = false
 | 
			
		||||
      }
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
    }
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // ========== 详情相关 ==========
 | 
			
		||||
  const detailRef = ref() // 详情 Ref
 | 
			
		||||
// ========== 详情相关 ==========
 | 
			
		||||
const detailRef = ref() // 详情 Ref
 | 
			
		||||
 | 
			
		||||
  // 详情操作
 | 
			
		||||
  const handleDetail = async (row: ${simpleClassName}VO) => {
 | 
			
		||||
    // 设置数据
 | 
			
		||||
    detailRef.value = row
 | 
			
		||||
    setDialogTile('detail')
 | 
			
		||||
  }
 | 
			
		||||
// 详情操作
 | 
			
		||||
const handleDetail = async (row: ${simpleClassName}VO) => {
 | 
			
		||||
  // 设置数据
 | 
			
		||||
  detailRef.value = row
 | 
			
		||||
  setDialogTile('detail')
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  // ========== 初始化 ==========
 | 
			
		||||
  getList()
 | 
			
		||||
// ========== 初始化 ==========
 | 
			
		||||
getList()
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<template>
 | 
			
		||||
@@ -101,63 +101,63 @@
 | 
			
		||||
        <Icon icon="ep:zoom-in" class="mr-5px" /> {{ t('action.add') }}
 | 
			
		||||
      </el-button>
 | 
			
		||||
      <el-button
 | 
			
		||||
          type="warning"
 | 
			
		||||
          v-hasPermi="['${permissionPrefix}:export']"
 | 
			
		||||
          :loading="tableObject.exportLoading"
 | 
			
		||||
          @click="exportList('数据.xls')"
 | 
			
		||||
        type="warning"
 | 
			
		||||
        v-hasPermi="['${permissionPrefix}:export']"
 | 
			
		||||
        :loading="tableObject.exportLoading"
 | 
			
		||||
        @click="exportList('数据.xls')"
 | 
			
		||||
      >
 | 
			
		||||
        <Icon icon="ep:download" class="mr-5px" /> {{ t('action.export') }}
 | 
			
		||||
      </el-button>
 | 
			
		||||
    </div>
 | 
			
		||||
    <!-- 列表 -->
 | 
			
		||||
    <Table
 | 
			
		||||
        :columns="allSchemas.tableColumns"
 | 
			
		||||
        :selection="false"
 | 
			
		||||
        :data="tableObject.tableList"
 | 
			
		||||
        :loading="tableObject.loading"
 | 
			
		||||
        :pagination="{
 | 
			
		||||
      :columns="allSchemas.tableColumns"
 | 
			
		||||
      :selection="false"
 | 
			
		||||
      :data="tableObject.tableList"
 | 
			
		||||
      :loading="tableObject.loading"
 | 
			
		||||
      :pagination="{
 | 
			
		||||
        total: tableObject.total
 | 
			
		||||
      }"
 | 
			
		||||
        v-model:pageSize="tableObject.pageSize"
 | 
			
		||||
        v-model:currentPage="tableObject.currentPage"
 | 
			
		||||
        @register="register"
 | 
			
		||||
      v-model:pageSize="tableObject.pageSize"
 | 
			
		||||
      v-model:currentPage="tableObject.currentPage"
 | 
			
		||||
      @register="register"
 | 
			
		||||
    >
 | 
			
		||||
#foreach($column in $columns)
 | 
			
		||||
#if ($column.listOperationResult)
 | 
			
		||||
  #set ($dictType=$column.dictType)
 | 
			
		||||
  #if ($column.javaType == "Date")## 时间类型
 | 
			
		||||
    <template #${column.javaField}="{ row }">
 | 
			
		||||
      <span>{{ dayjs(row.${column.javaField}).format('YYYY-MM-DD HH:mm:ss') }}</span>
 | 
			
		||||
    </template>
 | 
			
		||||
      <template #${column.javaField}="{ row }">
 | 
			
		||||
        <span>{{ dayjs(row.${column.javaField}).format('YYYY-MM-DD HH:mm:ss') }}</span>
 | 
			
		||||
      </template>
 | 
			
		||||
  #elseif("" != $column.dictType)## 数据字典
 | 
			
		||||
    <template #${column.javaField}="{ row }">
 | 
			
		||||
      <DictTag :type="DICT_TYPE.$dictType.toUpperCase()" :value="row.${column.javaField}" />
 | 
			
		||||
    </template>
 | 
			
		||||
      <template #${column.javaField}="{ row }">
 | 
			
		||||
        <DictTag :type="DICT_TYPE.$dictType.toUpperCase()" :value="row.${column.javaField}" />
 | 
			
		||||
      </template>
 | 
			
		||||
  #end
 | 
			
		||||
#end
 | 
			
		||||
#end
 | 
			
		||||
      <template #action="{ row }">
 | 
			
		||||
        <el-button
 | 
			
		||||
            link
 | 
			
		||||
            type="primary"
 | 
			
		||||
            v-hasPermi="['${permissionPrefix}:update']"
 | 
			
		||||
            @click="handleUpdate(row)"
 | 
			
		||||
          link
 | 
			
		||||
          type="primary"
 | 
			
		||||
          v-hasPermi="['${permissionPrefix}:update']"
 | 
			
		||||
          @click="handleUpdate(row)"
 | 
			
		||||
        >
 | 
			
		||||
          <Icon icon="ep:edit" class="mr-1px" /> {{ t('action.edit') }}
 | 
			
		||||
        </el-button>
 | 
			
		||||
        <el-button
 | 
			
		||||
            link
 | 
			
		||||
            type="primary"
 | 
			
		||||
            v-hasPermi="['${permissionPrefix}:update']"
 | 
			
		||||
            @click="handleDetail(row)"
 | 
			
		||||
          link
 | 
			
		||||
          type="primary"
 | 
			
		||||
          v-hasPermi="['${permissionPrefix}:update']"
 | 
			
		||||
          @click="handleDetail(row)"
 | 
			
		||||
        >
 | 
			
		||||
          <Icon icon="ep:view" class="mr-1px" /> {{ t('action.detail') }}
 | 
			
		||||
        </el-button>
 | 
			
		||||
        <el-button
 | 
			
		||||
            link
 | 
			
		||||
            type="primary"
 | 
			
		||||
            v-hasPermi="['${permissionPrefix}:delete']"
 | 
			
		||||
            @click="delList(row.id, false)"
 | 
			
		||||
          link
 | 
			
		||||
          type="primary"
 | 
			
		||||
          v-hasPermi="['${permissionPrefix}:delete']"
 | 
			
		||||
          @click="delList(row.id, false)"
 | 
			
		||||
        >
 | 
			
		||||
          <Icon icon="ep:delete" class="mr-1px" /> {{ t('action.del') }}
 | 
			
		||||
        </el-button>
 | 
			
		||||
@@ -168,16 +168,16 @@
 | 
			
		||||
  <Dialog v-model="dialogVisible" :title="dialogTitle">
 | 
			
		||||
    <!-- 对话框(添加 / 修改) -->
 | 
			
		||||
    <Form
 | 
			
		||||
        v-if="['create', 'update'].includes(actionType)"
 | 
			
		||||
        :schema="allSchemas.formSchema"
 | 
			
		||||
        :rules="rules"
 | 
			
		||||
        ref="formRef"
 | 
			
		||||
      v-if="['create', 'update'].includes(actionType)"
 | 
			
		||||
      :schema="allSchemas.formSchema"
 | 
			
		||||
      :rules="rules"
 | 
			
		||||
      ref="formRef"
 | 
			
		||||
    />
 | 
			
		||||
    <!-- 对话框(详情) -->
 | 
			
		||||
    <Descriptions
 | 
			
		||||
        v-if="actionType === 'detail'"
 | 
			
		||||
        :schema="allSchemas.detailSchema"
 | 
			
		||||
        :data="detailRef"
 | 
			
		||||
      v-if="actionType === 'detail'"
 | 
			
		||||
      :schema="allSchemas.detailSchema"
 | 
			
		||||
      :data="detailRef"
 | 
			
		||||
    >
 | 
			
		||||
#foreach($column in $columns)
 | 
			
		||||
  #if ($column.listOperationResult)
 | 
			
		||||
@@ -197,10 +197,10 @@
 | 
			
		||||
    <!-- 操作按钮 -->
 | 
			
		||||
    <template #footer>
 | 
			
		||||
      <el-button
 | 
			
		||||
          v-if="['create', 'update'].includes(actionType)"
 | 
			
		||||
          type="primary"
 | 
			
		||||
          :loading="actionLoading"
 | 
			
		||||
          @click="submitForm"
 | 
			
		||||
        v-if="['create', 'update'].includes(actionType)"
 | 
			
		||||
        type="primary"
 | 
			
		||||
        :loading="actionLoading"
 | 
			
		||||
        @click="submitForm"
 | 
			
		||||
      >
 | 
			
		||||
        {{ t('action.save') }}
 | 
			
		||||
      </el-button>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user