فهرست منبع

【功能移除】INFRA:移除 Vue3 + Element Plus schema 模式

YunaiV 7 ماه پیش
والد
کامیت
2759a32331

+ 0 - 1
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/enums/codegen/CodegenFrontTypeEnum.java

@@ -14,7 +14,6 @@ public enum CodegenFrontTypeEnum {
 
     VUE2(10), // Vue2 Element UI 标准模版
     VUE3(20), // Vue3 Element Plus 标准模版
-    VUE3_SCHEMA(21), // Vue3 Element Plus Schema 模版
     VUE3_VBEN(30), // Vue3 VBEN 模版
     ;
 

+ 0 - 13
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java

@@ -135,15 +135,6 @@ public class CodegenEngine {
                     vue3FilePath("views/${table.moduleName}/${table.businessName}/components/${subSimpleClassName}List.vue"))
             .put(CodegenFrontTypeEnum.VUE3.getType(), vue3TemplatePath("api/api.ts"),
                     vue3FilePath("api/${table.moduleName}/${table.businessName}/index.ts"))
-            // Vue3 Schema 模版
-            .put(CodegenFrontTypeEnum.VUE3_SCHEMA.getType(), vue3SchemaTemplatePath("views/data.ts"),
-                    vue3FilePath("views/${table.moduleName}/${table.businessName}/${classNameVar}.data.ts"))
-            .put(CodegenFrontTypeEnum.VUE3_SCHEMA.getType(), vue3SchemaTemplatePath("views/index.vue"),
-                    vue3FilePath("views/${table.moduleName}/${table.businessName}/index.vue"))
-            .put(CodegenFrontTypeEnum.VUE3_SCHEMA.getType(), vue3SchemaTemplatePath("views/form.vue"),
-                    vue3FilePath("views/${table.moduleName}/${table.businessName}/${simpleClassName}Form.vue"))
-            .put(CodegenFrontTypeEnum.VUE3_SCHEMA.getType(), vue3SchemaTemplatePath("api/api.ts"),
-                    vue3FilePath("api/${table.moduleName}/${table.businessName}/index.ts"))
             // Vue3 vben 模版
             .put(CodegenFrontTypeEnum.VUE3_VBEN.getType(), vue3VbenTemplatePath("views/data.ts"),
                     vue3FilePath("views/${table.moduleName}/${table.businessName}/${classNameVar}.data.ts"))
@@ -496,10 +487,6 @@ public class CodegenEngine {
                 "src/" + path;
     }
 
-    private static String vue3SchemaTemplatePath(String path) {
-        return "codegen/vue3_schema/" + path + ".vm";
-    }
-
     private static String vue3VbenTemplatePath(String path) {
         return "codegen/vue3_vben/" + path + ".vm";
     }

+ 0 - 46
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/api/api.ts.vm

@@ -1,46 +0,0 @@
-import request from '@/config/axios'
-#set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}")
-
-export interface ${simpleClassName}VO {
-    #foreach ($column in $columns)
-        #if ($column.createOperation || $column.updateOperation)
-            #if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal")
-                    ${column.javaField}: number
-            #elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdatetime")
-                    ${column.javaField}: Date
-            #else
-                    ${column.javaField}: ${column.javaType.toLowerCase()}
-            #end
-        #end
-    #end
-}
-
-// 查询${table.classComment}列表
-export const get${simpleClassName}Page = async (params) => {
-  return await request.get({ url: '${baseURL}/page', params })
-}
-
-// 查询${table.classComment}详情
-export const get${simpleClassName} = async (id: number) => {
-  return await request.get({ url: '${baseURL}/get?id=' + id })
-}
-
-// 新增${table.classComment}
-export const create${simpleClassName} = async (data: ${simpleClassName}VO) => {
-  return await request.post({ url: '${baseURL}/create', data })
-}
-
-// 修改${table.classComment}
-export const update${simpleClassName} = async (data: ${simpleClassName}VO) => {
-  return await request.put({ url: '${baseURL}/update', data })
-}
-
-// 删除${table.classComment}
-export const delete${simpleClassName} = async (id: number) => {
-  return await request.delete({ url: '${baseURL}/delete?id=' + id })
-}
-
-// 导出${table.classComment} Excel
-export const export${simpleClassName}Api = async (params) => {
-  return await request.download({ url: '${baseURL}/export-excel', params })
-}

+ 0 - 124
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/data.ts.vm

@@ -1,124 +0,0 @@
-import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
-import { dateFormatter } from '@/utils/formatTime'
-
-// 表单校验
-export const rules = reactive({
-#foreach ($column in $columns)
-#if (($column.createOperation || $column.updateOperation) && !$column.nullable && !${column.primaryKey})## 创建或者更新操作 && 要求非空 && 非主键
-#set($comment=$column.columnComment)
-  $column.javaField: [required],
-#end
-#end
-})
-
-// CrudSchema https://doc.iocoder.cn/vue3/crud-schema/
-const crudSchemas = reactive<CrudSchema[]>([
-#foreach($column in $columns)
-#if ($column.listOperation || $column.listOperationResult || $column.createOperation || $column.updateOperation)
-#set ($dictType = $column.dictType)
-#set ($javaField = $column.javaField)
-#set ($javaType = $column.javaType)
-  {
-    label: '${column.columnComment}',
-    field: '${column.javaField}',
-## ========= 字典部分 =========
-    #if ("" != $dictType)## 有数据字典
-    dictType: DICT_TYPE.$dictType.toUpperCase(),
-        #if ($javaType == "Integer" || $javaType == "Long" || $javaType == "Byte" || $javaType == "Short")
-    dictClass: 'number',
-        #elseif ($javaType == "String")
-    dictClass: 'string',
-        #elseif ($javaType == "Boolean")
-    dictClass: 'boolean',
-        #end
-    #end
-## ========= Table 表格部分 =========
-    #if (!$column.listOperationResult)
-    isTable: false,
-    #else
-      #if ($column.htmlType == "datetime")
-    formatter: dateFormatter,
-      #end
-    #end
-## ========= Search 表格部分 =========
-    #if ($column.listOperation)
-    isSearch: true,
-        #if ($column.htmlType == "datetime")
-    search: {
-      component: 'DatePicker',
-      componentProps: {
-        valueFormat: 'YYYY-MM-DD HH:mm:ss',
-        type: 'daterange',
-        defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')]
-      }
-    },
-        #end
-    #end
-## ========= Form 表单部分 =========
-    #if ((!$column.createOperation && !$column.updateOperation) || $column.primaryKey)
-    isForm: false,
-    #else
-        #if($column.htmlType == "imageUpload")## 图片上传
-    form: {
-      component: 'UploadImg'
-    },
-        #elseif($column.htmlType == "fileUpload")## 文件上传
-    form: {
-      component: 'UploadFile'
-    },
-        #elseif($column.htmlType == "editor")## 文本编辑器
-    form: {
-      component: 'Editor',
-      componentProps: {
-        valueHtml: '',
-        height: 200
-      }
-    },
-        #elseif($column.htmlType == "select")## 下拉框
-    form: {
-      component: 'SelectV2'
-    },
-        #elseif($column.htmlType == "checkbox")## 多选框
-    form: {
-      component: 'Checkbox'
-    },
-        #elseif($column.htmlType == "radio")## 单选框
-    form: {
-      component: 'Radio'
-    },
-        #elseif($column.htmlType == "datetime")## 时间框
-    form: {
-      component: 'DatePicker',
-      componentProps: {
-        type: 'datetime',
-        valueFormat: 'x'
-      }
-    },
-        #elseif($column.htmlType == "textarea")## 文本框
-    form: {
-      component: 'Input',
-      componentProps: {
-        type: 'textarea',
-        rows: 4
-      },
-      colProps: {
-        span: 24
-      }
-    },
-        #elseif(${javaType.toLowerCase()} == "long" || ${javaType.toLowerCase()} == "integer")## 文本框
-    form: {
-      component: 'InputNumber',
-      value: 0
-    },
-        #end
-    #end
-  },
-#end
-#end
-  {
-    label: '操作',
-    field: 'action',
-    isForm: false
-  }
-])
-export const { allSchemas } = useCrudSchemas(crudSchemas)

+ 0 - 65
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/form.vue.vm

@@ -1,65 +0,0 @@
-<template>
-  <Dialog :title="dialogTitle" v-model="dialogVisible">
-    <Form ref="formRef" :schema="allSchemas.formSchema" :rules="rules" v-loading="formLoading" />
-    <template #footer>
-      <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
-      <el-button @click="dialogVisible = false">取 消</el-button>
-    </template>
-  </Dialog>
-</template>
-<script setup lang="ts">
-import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${table.businessName}'
-import { rules, allSchemas } from './${classNameVar}.data'
-const { t } = useI18n() // 国际化
-const message = useMessage() // 消息弹窗
-
-const dialogVisible = ref(false) // 弹窗的是否展示
-const dialogTitle = ref('') // 弹窗的标题
-const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
-const formType = ref('') // 表单的类型:create - 新增;update - 修改
-const formRef = ref() // 表单 Ref
-
-/** 打开弹窗 */
-const open = async (type: string, id?: number) => {
-  dialogVisible.value = true
-  dialogTitle.value = t('action.' + type)
-  formType.value = type
-  // 修改时,设置数据
-  if (id) {
-    formLoading.value = true
-    try {
-      const data = await ${simpleClassName}Api.get${simpleClassName}(id)
-      formRef.value.setValues(data)
-    } finally {
-      formLoading.value = false
-    }
-  }
-}
-defineExpose({ open }) // 提供 open 方法,用于打开弹窗
-
-/** 提交表单 */
-const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
-const submitForm = async () => {
-  // 校验表单
-  if (!formRef) return
-  const valid = await formRef.value.getElFormRef().validate()
-  if (!valid) return
-  // 提交请求
-  formLoading.value = true
-  try {
-    const data = formRef.value.formModel as ${simpleClassName}Api.${simpleClassName}VO
-    if (formType.value === 'create') {
-      await ${simpleClassName}Api.create${simpleClassName}(data)
-      message.success(t('common.createSuccess'))
-    } else {
-      await ${simpleClassName}Api.update${simpleClassName}(data)
-      message.success(t('common.updateSuccess'))
-    }
-    dialogVisible.value = false
-    // 发送操作成功的事件
-    emit('success')
-  } finally {
-    formLoading.value = false
-  }
-}
-</script>

+ 0 - 85
yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_schema/views/index.vue.vm

@@ -1,85 +0,0 @@
-<template>
-  <!-- 搜索工作栏 -->
-  <ContentWrap>
-    <Search :schema="allSchemas.searchSchema" @search="setSearchParams" @reset="setSearchParams">
-      <!-- 新增等操作按钮 -->
-      <template #actionMore>
-        <el-button
-          type="primary"
-          plain
-          @click="openForm('create')"
-          v-hasPermi="['${permissionPrefix}:create']"
-        >
-          <Icon icon="ep:plus" class="mr-5px" /> 新增
-        </el-button>
-      </template>
-    </Search>
-  </ContentWrap>
-
-  <!-- 列表 -->
-  <ContentWrap>
-    <Table
-      :columns="allSchemas.tableColumns"
-      :data="tableObject.tableList"
-      :loading="tableObject.loading"
-      :pagination="{
-        total: tableObject.total
-      }"
-      v-model:pageSize="tableObject.pageSize"
-      v-model:currentPage="tableObject.currentPage"
-    >
-      <template #action="{ row }">
-        <el-button
-          link
-          type="primary"
-          @click="openForm('update', row.id)"
-          v-hasPermi="['${permissionPrefix}:update']"
-        >
-          编辑
-        </el-button>
-        <el-button
-          link
-          type="danger"
-          v-hasPermi="['${permissionPrefix}:delete']"
-          @click="handleDelete(row.id)"
-        >
-          删除
-        </el-button>
-      </template>
-    </Table>
-  </ContentWrap>
-
-  <!-- 表单弹窗:添加/修改 -->
-  <${simpleClassName}Form ref="formRef" @success="getList" />
-</template>
-<script setup lang="ts" name="${table.className}">
-import { allSchemas } from './${classNameVar}.data'
-import * as ${simpleClassName}Api from '@/api/${table.moduleName}/${table.businessName}'
-import ${simpleClassName}Form from './${simpleClassName}Form.vue'
-
-// tableObject:表格的属性对象,可获得分页大小、条数等属性
-// tableMethods:表格的操作对象,可进行获得分页、删除记录等操作
-// 详细可见:https://doc.iocoder.cn/vue3/crud-schema/
-const { tableObject, tableMethods } = useTable({
-  getListApi: ${simpleClassName}Api.get${simpleClassName}Page, // 分页接口
-  delListApi: ${simpleClassName}Api.delete${simpleClassName} // 删除接口
-})
-// 获得表格的各种操作
-const { getList, setSearchParams } = tableMethods
-
-/** 添加/修改操作 */
-const formRef = ref()
-const openForm = (type: string, id?: number) => {
-  formRef.value.open(type, id)
-}
-
-/** 删除按钮操作 */
-const handleDelete = (id: number) => {
-  tableMethods.delList(id, false)
-}
-
-/** 初始化 **/
-onMounted(() => {
-  getList()
-})
-</script>

+ 1 - 1
yudao-server/src/main/resources/application.yaml

@@ -245,7 +245,7 @@ yudao:
   codegen:
     base-package: ${yudao.info.base-package}
     db-schemas: ${spring.datasource.dynamic.datasource.master.name}
-    front-type: 10 # 前端模版的类型,参见 CodegenFrontTypeEnum 枚举类
+    front-type: 20 # 前端模版的类型,参见 CodegenFrontTypeEnum 枚举类
   tenant: # 多租户相关配置项
     enable: true
     ignore-urls: