Commit 7038db578515a3e129792c710e1ae28cdb4dbf94

Authored by 芋道源码
Committed by Gitee
2 parents 5bf7cd39 a9b26569

!785 代码生成:完善单元测试

Merge pull request !785 from puhui999/master
Showing 223 changed files with 1048 additions and 1036 deletions
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngineAbstractTest.java
... ... @@ -31,6 +31,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
31 31 */
32 32 public abstract class CodegenEngineAbstractTest extends BaseMockitoUnitTest {
33 33  
  34 + public String resourcesPath = ""; // 测试文件资源目录
  35 + public static final String OS_NAME = System.getProperty("os.name").toLowerCase().replace(" ", ""); // 操作系统名称
  36 +
34 37 @InjectMocks
35 38 protected CodegenEngine codegenEngine;
36 39  
... ... @@ -41,6 +44,10 @@ public abstract class CodegenEngineAbstractTest extends BaseMockitoUnitTest {
41 44 @BeforeEach
42 45 public void setUp() {
43 46 codegenEngine.initGlobalBindingMap();
  47 + // 获取测试文件 resources 路径
  48 + String absolutePath = FileUtil.getAbsolutePath("application-unit-test.yaml");
  49 + // 系统不一样生成的文件也有差异,那就各自生成各自的
  50 + resourcesPath = absolutePath.split("/target")[0] + "/src/test/resources/codegen/" + OS_NAME;
44 51 }
45 52  
46 53 protected static CodegenTableDO getTable(String name) {
... ... @@ -73,14 +80,14 @@ public abstract class CodegenEngineAbstractTest extends BaseMockitoUnitTest {
73 80  
74 81 @SuppressWarnings("rawtypes")
75 82 protected static void assertResult(Map<String, String> result, String path) {
76   - String assertContent = ResourceUtil.readUtf8Str(path + "/assert.json");
  83 + String assertContent = ResourceUtil.readUtf8Str("codegen/" + OS_NAME + path + "/assert.json");
77 84 List<HashMap> asserts = JsonUtils.parseArray(assertContent, HashMap.class);
78 85 assertEquals(asserts.size(), result.size());
79 86 // 校验每个文件
80 87 asserts.forEach(assertMap -> {
81 88 String contentPath = (String) assertMap.get("contentPath");
82 89 String filePath = (String) assertMap.get("filePath");
83   - String content = ResourceUtil.readUtf8Str(path + "/" + contentPath);
  90 + String content = ResourceUtil.readUtf8Str("codegen/" + OS_NAME + path + "/" + contentPath);
84 91 assertEquals(content, result.get(filePath), filePath + ":不匹配");
85 92 });
86 93 }
... ... @@ -91,7 +98,7 @@ public abstract class CodegenEngineAbstractTest extends BaseMockitoUnitTest {
91 98 * 【调试使用】将生成的代码,写入到文件
92 99 *
93 100 * @param result 生成的代码
94   - * @param path 写入文件的路径
  101 + * @param path 写入文件的路径
95 102 */
96 103 protected void writeFile(Map<String, String> result, String path) {
97 104 // 生成压缩包
... ... @@ -106,7 +113,7 @@ public abstract class CodegenEngineAbstractTest extends BaseMockitoUnitTest {
106 113 /**
107 114 * 【调试使用】将生成的结果,写入到文件
108 115 *
109   - * @param result 生成的代码
  116 + * @param result 生成的代码
110 117 * @param basePath 写入文件的路径(绝对路径)
111 118 */
112 119 protected void writeResult(Map<String, String> result, String basePath) {
... ... @@ -121,7 +128,7 @@ public abstract class CodegenEngineAbstractTest extends BaseMockitoUnitTest {
121 128 FileUtil.writeUtf8String(fileContent, basePath + "/" + contentPath);
122 129 });
123 130 // 写入 assert.json 文件
124   - FileUtil.writeUtf8String(JsonUtils.toJsonPrettyString(asserts), basePath +"/assert.json");
  131 + FileUtil.writeUtf8String(JsonUtils.toJsonPrettyString(asserts), basePath + "/assert.json");
125 132 }
126 133  
127 134 }
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngineVue2Test.java
... ... @@ -11,7 +11,6 @@ import java.util.Arrays;
11 11 import java.util.List;
12 12 import java.util.Map;
13 13  
14   -// TODO @puhui999:单测需要 fix
15 14 /**
16 15 * {@link CodegenEngine} 的 Vue2 + Element UI 单元测试
17 16 *
... ... @@ -30,9 +29,10 @@ public class CodegenEngineVue2Test extends CodegenEngineAbstractTest {
30 29  
31 30 // 调用
32 31 Map<String, String> result = codegenEngine.execute(table, columns, null, null);
  32 + // 生成测试文件
  33 + //writeResult(result, resourcesPath + "/vue2_one");
33 34 // 断言
34   - assertResult(result, "codegen/vue2_one");
35   -// writeResult(result, "/root/ruoyi-vue-pro/yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one");
  35 + assertResult(result, "/vue2_one");
36 36 }
37 37  
38 38 @Test
... ... @@ -45,25 +45,26 @@ public class CodegenEngineVue2Test extends CodegenEngineAbstractTest {
45 45  
46 46 // 调用
47 47 Map<String, String> result = codegenEngine.execute(table, columns, null, null);
  48 + // 生成测试文件
  49 + //writeResult(result, resourcesPath + "/vue2_tree");
48 50 // 断言
49   - assertResult(result, "codegen/vue2_tree");
50   -// writeResult(result, "/root/ruoyi-vue-pro/yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree");
  51 + assertResult(result, "/vue2_tree");
51 52 // writeFile(result, "/Users/yunai/test/demo66.zip");
52 53 }
53 54  
54 55 @Test
55 56 public void testExecute_vue2_master_normal() {
56   - testExecute_vue2_master(CodegenTemplateTypeEnum.MASTER_NORMAL, "codegen/vue2_master_normal");
  57 + testExecute_vue2_master(CodegenTemplateTypeEnum.MASTER_NORMAL, "/vue2_master_normal");
57 58 }
58 59  
59 60 @Test
60 61 public void testExecute_vue2_master_erp() {
61   - testExecute_vue2_master(CodegenTemplateTypeEnum.MASTER_ERP, "codegen/vue2_master_erp");
  62 + testExecute_vue2_master(CodegenTemplateTypeEnum.MASTER_ERP, "/vue2_master_erp");
62 63 }
63 64  
64 65 @Test
65 66 public void testExecute_vue2_master_inner() {
66   - testExecute_vue2_master(CodegenTemplateTypeEnum.MASTER_INNER, "codegen/vue2_master_inner");
  67 + testExecute_vue2_master(CodegenTemplateTypeEnum.MASTER_INNER, "/vue2_master_inner");
67 68 }
68 69  
69 70 private void testExecute_vue2_master(CodegenTemplateTypeEnum templateType,
... ... @@ -89,9 +90,10 @@ public class CodegenEngineVue2Test extends CodegenEngineAbstractTest {
89 90 // 调用
90 91 Map<String, String> result = codegenEngine.execute(table, columns,
91 92 Arrays.asList(contactTable, teacherTable), Arrays.asList(contactColumns, teacherColumns));
  93 + // 生成测试文件
  94 + //writeResult(result, resourcesPath + path);
92 95 // 断言
93 96 assertResult(result, path);
94   -// writeResult(result, "/root/ruoyi-vue-pro/yudao-module-infra/yudao-module-infra-biz/src/test/resources/" + path);
95 97 // writeFile(result, "/Users/yunai/test/demo11.zip");
96 98 }
97 99  
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngineVue3Test.java
... ... @@ -27,9 +27,10 @@ public class CodegenEngineVue3Test extends CodegenEngineAbstractTest {
27 27  
28 28 // 调用
29 29 Map<String, String> result = codegenEngine.execute(table, columns, null, null);
  30 + // 生成测试文件
  31 + //writeResult(result, resourcesPath + "/vue3_one");
30 32 // 断言
31   - assertResult(result, "codegen/vue3_one");
32   -// writeResult(result, "/root/ruoyi-vue-pro/yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one");
  33 + assertResult(result, "/vue3_one");
33 34 }
34 35  
35 36 @Test
... ... @@ -42,25 +43,26 @@ public class CodegenEngineVue3Test extends CodegenEngineAbstractTest {
42 43  
43 44 // 调用
44 45 Map<String, String> result = codegenEngine.execute(table, columns, null, null);
  46 + // 生成测试文件
  47 + //writeResult(result, resourcesPath + "/vue3_tree");
45 48 // 断言
46   - assertResult(result, "codegen/vue3_tree");
47   -// writeResult(result, "/root/ruoyi-vue-pro/yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree");
  49 + assertResult(result, "/vue3_tree");
48 50 // writeFile(result, "/Users/yunai/test/demo66.zip");
49 51 }
50 52  
51 53 @Test
52 54 public void testExecute_vue3_master_normal() {
53   - testExecute_vue3_master(CodegenTemplateTypeEnum.MASTER_NORMAL, "codegen/vue3_master_normal");
  55 + testExecute_vue3_master(CodegenTemplateTypeEnum.MASTER_NORMAL, "/vue3_master_normal");
54 56 }
55 57  
56 58 @Test
57 59 public void testExecute_vue3_master_erp() {
58   - testExecute_vue3_master(CodegenTemplateTypeEnum.MASTER_ERP, "codegen/vue3_master_erp");
  60 + testExecute_vue3_master(CodegenTemplateTypeEnum.MASTER_ERP, "/vue3_master_erp");
59 61 }
60 62  
61 63 @Test
62 64 public void testExecute_vue3_master_inner() {
63   - testExecute_vue3_master(CodegenTemplateTypeEnum.MASTER_INNER, "codegen/vue3_master_inner");
  65 + testExecute_vue3_master(CodegenTemplateTypeEnum.MASTER_INNER, "/vue3_master_inner");
64 66 }
65 67  
66 68 private void testExecute_vue3_master(CodegenTemplateTypeEnum templateType,
... ... @@ -86,10 +88,11 @@ public class CodegenEngineVue3Test extends CodegenEngineAbstractTest {
86 88 // 调用
87 89 Map<String, String> result = codegenEngine.execute(table, columns,
88 90 Arrays.asList(contactTable, teacherTable), Arrays.asList(contactColumns, teacherColumns));
  91 + // 生成测试文件
  92 + //writeResult(result, resourcesPath + path);
89 93 // 断言
90 94 assertResult(result, path);
91   -// writeResult(result, "/root/ruoyi-vue-pro/yudao-module-infra/yudao-module-infra-biz/src/test/resources/" + path);
92   -// writeFile(result, "/Users/yunai/test/demo11.zip");
  95 + // writeFile(result, "/Users/yunai/test/demo11.zip");
93 96 }
94 97  
95 98 }
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/java/InfraCategoryMapper deleted
1   -package cn.iocoder.yudao.module.infra.dal.mysql.demo;
2   -
3   -import java.util.*;
4   -
5   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
6   -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
7   -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
8   -import cn.iocoder.yudao.module.infra.dal.dataobject.demo.InfraCategoryDO;
9   -import org.apache.ibatis.annotations.Mapper;
10   -import cn.iocoder.yudao.module.infra.controller.admin.demo.vo.*;
11   -
12   -/**
13   - * 分类 Mapper
14   - *
15   - * @author 芋道源码
16   - */
17   -@Mapper
18   -public interface InfraCategoryMapper extends BaseMapperX<InfraCategoryDO> {
19   -
20   - default List<InfraCategoryDO> selectList(InfraCategoryListReqVO reqVO) {
21   - return selectList(new LambdaQueryWrapperX<InfraCategoryDO>()
22   - .likeIfPresent(InfraCategoryDO::getName, reqVO.getName())
23   - .orderByDesc(InfraCategoryDO::getId));
24   - }
25   -
26   - default InfraCategoryDO selectByParentIdAndName(Long parentId, String name) {
27   - return selectOne(InfraCategoryDO::getParentId, parentId, InfraCategoryDO::getName, name);
28   - }
29   -
30   - default Long selectCountByParentId(Long parentId) {
31   - return selectCount(InfraCategoryDO::getParentId, parentId);
32   - }
33   -
34   -}
35 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/java/InfraCategoryService deleted
1   -package cn.iocoder.yudao.module.infra.service.demo;
2   -
3   -import java.util.*;
4   -import javax.validation.*;
5   -import cn.iocoder.yudao.module.infra.controller.admin.demo.vo.*;
6   -import cn.iocoder.yudao.module.infra.dal.dataobject.demo.InfraCategoryDO;
7   -import cn.iocoder.yudao.framework.common.pojo.PageResult;
8   -import cn.iocoder.yudao.framework.common.pojo.PageParam;
9   -
10   -/**
11   - * 分类 Service 接口
12   - *
13   - * @author 芋道源码
14   - */
15   -public interface InfraCategoryService {
16   -
17   - /**
18   - * 创建分类
19   - *
20   - * @param createReqVO 创建信息
21   - * @return 编号
22   - */
23   - Long createCategory(@Valid InfraCategorySaveReqVO createReqVO);
24   -
25   - /**
26   - * 更新分类
27   - *
28   - * @param updateReqVO 更新信息
29   - */
30   - void updateCategory(@Valid InfraCategorySaveReqVO updateReqVO);
31   -
32   - /**
33   - * 删除分类
34   - *
35   - * @param id 编号
36   - */
37   - void deleteCategory(Long id);
38   -
39   - /**
40   - * 获得分类
41   - *
42   - * @param id 编号
43   - * @return 分类
44   - */
45   - InfraCategoryDO getCategory(Long id);
46   -
47   - /**
48   - * 获得分类列表
49   - *
50   - * @param listReqVO 查询条件
51   - * @return 分类列表
52   - */
53   - List<InfraCategoryDO> getCategoryList(InfraCategoryListReqVO listReqVO);
54   -
55   -}
56 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/sql/sql deleted
1   --- 菜单 SQL
2   -INSERT INTO system_menu(
3   - name, permission, type, sort, parent_id,
4   - path, icon, component, status, component_name
5   -)
6   -VALUES (
7   - '分类管理', '', 2, 0, 888,
8   - 'category', '', 'infra/demo/index', 0, 'InfraCategory'
9   -);
10   -
11   --- 按钮父菜单ID
12   --- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码
13   -SELECT @parentId := LAST_INSERT_ID();
14   -
15   --- 按钮 SQL
16   -INSERT INTO system_menu(
17   - name, permission, type, sort, parent_id,
18   - path, icon, component, status
19   -)
20   -VALUES (
21   - '分类查询', 'infra:category:query', 3, 1, @parentId,
22   - '', '', '', 0
23   -);
24   -INSERT INTO system_menu(
25   - name, permission, type, sort, parent_id,
26   - path, icon, component, status
27   -)
28   -VALUES (
29   - '分类创建', 'infra:category:create', 3, 2, @parentId,
30   - '', '', '', 0
31   -);
32   -INSERT INTO system_menu(
33   - name, permission, type, sort, parent_id,
34   - path, icon, component, status
35   -)
36   -VALUES (
37   - '分类更新', 'infra:category:update', 3, 3, @parentId,
38   - '', '', '', 0
39   -);
40   -INSERT INTO system_menu(
41   - name, permission, type, sort, parent_id,
42   - path, icon, component, status
43   -)
44   -VALUES (
45   - '分类删除', 'infra:category:delete', 3, 4, @parentId,
46   - '', '', '', 0
47   -);
48   -INSERT INTO system_menu(
49   - name, permission, type, sort, parent_id,
50   - path, icon, component, status
51   -)
52   -VALUES (
53   - '分类导出', 'infra:category:export', 3, 5, @parentId,
54   - '', '', '', 0
55   -);
56 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/ts/index deleted
1   -import request from '@/config/axios'
2   -
3   -export interface CategoryVO {
4   - id: number
5   - name: string
6   - parentId: number
7   -}
8   -
9   -// 查询分类列表
10   -export const getCategoryList = async (params) => {
11   - return await request.get({ url: `/infra/category/list`, params })
12   -}
13   -
14   -// 查询分类详情
15   -export const getCategory = async (id: number) => {
16   - return await request.get({ url: `/infra/category/get?id=` + id })
17   -}
18   -
19   -// 新增分类
20   -export const createCategory = async (data: CategoryVO) => {
21   - return await request.post({ url: `/infra/category/create`, data })
22   -}
23   -
24   -// 修改分类
25   -export const updateCategory = async (data: CategoryVO) => {
26   - return await request.put({ url: `/infra/category/update`, data })
27   -}
28   -
29   -// 删除分类
30   -export const deleteCategory = async (id: number) => {
31   - return await request.delete({ url: `/infra/category/delete?id=` + id })
32   -}
33   -
34   -// 导出分类 Excel
35   -export const exportCategory = async (params) => {
36   - return await request.download({ url: `/infra/category/export-excel`, params })
37   -}
38 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/vue/CategoryForm deleted
1   -<template>
2   - <Dialog :title="dialogTitle" v-model="dialogVisible">
3   - <el-form
4   - ref="formRef"
5   - :model="formData"
6   - :rules="formRules"
7   - label-width="100px"
8   - v-loading="formLoading"
9   - >
10   - <el-form-item label="名字" prop="name">
11   - <el-input v-model="formData.name" placeholder="请输入名字" />
12   - </el-form-item>
13   - <el-form-item label="父编号" prop="parentId">
14   - <el-tree-select
15   - v-model="formData.parentId"
16   - :data="categoryTree"
17   - :props="defaultProps"
18   - check-strictly
19   - default-expand-all
20   - placeholder="请选择父编号"
21   - />
22   - </el-form-item>
23   - </el-form>
24   - <template #footer>
25   - <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
26   - <el-button @click="dialogVisible = false">取 消</el-button>
27   - </template>
28   - </Dialog>
29   -</template>
30   -<script setup lang="ts">
31   -import * as CategoryApi from '@/api/infra/demo'
32   -import { defaultProps, handleTree } from '@/utils/tree'
33   -
34   -const { t } = useI18n() // 国际化
35   -const message = useMessage() // 消息弹窗
36   -
37   -const dialogVisible = ref(false) // 弹窗的是否展示
38   -const dialogTitle = ref('') // 弹窗的标题
39   -const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
40   -const formType = ref('') // 表单的类型:create - 新增;update - 修改
41   -const formData = ref({
42   - id: undefined,
43   - name: undefined,
44   - parentId: undefined
45   -})
46   -const formRules = reactive({
47   - name: [{ required: true, message: '名字不能为空', trigger: 'blur' }],
48   - parentId: [{ required: true, message: '父编号不能为空', trigger: 'blur' }]
49   -})
50   -const formRef = ref() // 表单 Ref
51   -const categoryTree = ref() // 树形结构
52   -
53   -/** 打开弹窗 */
54   -const open = async (type: string, id?: number) => {
55   - dialogVisible.value = true
56   - dialogTitle.value = t('action.' + type)
57   - formType.value = type
58   - resetForm()
59   - // 修改时,设置数据
60   - if (id) {
61   - formLoading.value = true
62   - try {
63   - formData.value = await CategoryApi.getCategory(id)
64   - } finally {
65   - formLoading.value = false
66   - }
67   - }
68   - await getCategoryTree()
69   -}
70   -defineExpose({ open }) // 提供 open 方法,用于打开弹窗
71   -
72   -/** 提交表单 */
73   -const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
74   -const submitForm = async () => {
75   - // 校验表单
76   - await formRef.value.validate()
77   - // 提交请求
78   - formLoading.value = true
79   - try {
80   - const data = formData.value as unknown as CategoryApi.CategoryVO
81   - if (formType.value === 'create') {
82   - await CategoryApi.createCategory(data)
83   - message.success(t('common.createSuccess'))
84   - } else {
85   - await CategoryApi.updateCategory(data)
86   - message.success(t('common.updateSuccess'))
87   - }
88   - dialogVisible.value = false
89   - // 发送操作成功的事件
90   - emit('success')
91   - } finally {
92   - formLoading.value = false
93   - }
94   -}
95   -
96   -/** 重置表单 */
97   -const resetForm = () => {
98   - formData.value = {
99   - id: undefined,
100   - name: undefined,
101   - parentId: undefined
102   - }
103   - formRef.value?.resetFields()
104   -}
105   -
106   -/** 获得分类树 */
107   -const getCategoryTree = async () => {
108   - categoryTree.value = []
109   - const data = await CategoryApi.getCategoryList()
110   - const root: Tree = { id: 0, name: '顶级分类', children: [] }
111   - root.children = handleTree(data, 'id', 'parentId')
112   - categoryTree.value.push(root)
113   -}
114   -</script>
115 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/vue/index deleted
1   -<template>
2   - <ContentWrap>
3   - <!-- 搜索工作栏 -->
4   - <el-form
5   - class="-mb-15px"
6   - :model="queryParams"
7   - ref="queryFormRef"
8   - :inline="true"
9   - label-width="68px"
10   - >
11   - <el-form-item label="名字" prop="name">
12   - <el-input
13   - v-model="queryParams.name"
14   - placeholder="请输入名字"
15   - clearable
16   - @keyup.enter="handleQuery"
17   - class="!w-240px"
18   - />
19   - </el-form-item>
20   - <el-form-item>
21   - <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
22   - <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
23   - <el-button
24   - type="primary"
25   - plain
26   - @click="openForm('create')"
27   - v-hasPermi="['infra:category:create']"
28   - >
29   - <Icon icon="ep:plus" class="mr-5px" /> 新增
30   - </el-button>
31   - <el-button
32   - type="success"
33   - plain
34   - @click="handleExport"
35   - :loading="exportLoading"
36   - v-hasPermi="['infra:category:export']"
37   - >
38   - <Icon icon="ep:download" class="mr-5px" /> 导出
39   - </el-button>
40   - <el-button type="danger" plain @click="toggleExpandAll">
41   - <Icon icon="ep:sort" class="mr-5px" /> 展开/折叠
42   - </el-button>
43   - </el-form-item>
44   - </el-form>
45   - </ContentWrap>
46   -
47   - <!-- 列表 -->
48   - <ContentWrap>
49   - <el-table
50   - v-loading="loading"
51   - :data="list"
52   - :stripe="true"
53   - :show-overflow-tooltip="true"
54   - row-key="id"
55   - :default-expand-all="isExpandAll"
56   - v-if="refreshTable"
57   - >
58   - <el-table-column label="编号" align="center" prop="id" />
59   - <el-table-column label="名字" align="center" prop="name" />
60   - <el-table-column label="父编号" align="center" prop="parentId" />
61   - <el-table-column label="操作" align="center">
62   - <template #default="scope">
63   - <el-button
64   - link
65   - type="primary"
66   - @click="openForm('update', scope.row.id)"
67   - v-hasPermi="['infra:category:update']"
68   - >
69   - 编辑
70   - </el-button>
71   - <el-button
72   - link
73   - type="danger"
74   - @click="handleDelete(scope.row.id)"
75   - v-hasPermi="['infra:category:delete']"
76   - >
77   - 删除
78   - </el-button>
79   - </template>
80   - </el-table-column>
81   - </el-table>
82   - <!-- 分页 -->
83   - <Pagination
84   - :total="total"
85   - v-model:page="queryParams.pageNo"
86   - v-model:limit="queryParams.pageSize"
87   - @pagination="getList"
88   - />
89   - </ContentWrap>
90   -
91   - <!-- 表单弹窗:添加/修改 -->
92   - <CategoryForm ref="formRef" @success="getList" />
93   -</template>
94   -
95   -<script setup lang="ts">
96   -import { handleTree } from '@/utils/tree'
97   -import download from '@/utils/download'
98   -import * as CategoryApi from '@/api/infra/demo'
99   -import CategoryForm from './CategoryForm.vue'
100   -
101   -defineOptions({ name: 'InfraCategory' })
102   -
103   -const message = useMessage() // 消息弹窗
104   -const { t } = useI18n() // 国际化
105   -
106   -const loading = ref(true) // 列表的加载中
107   -const list = ref([]) // 列表的数据
108   -const queryParams = reactive({
109   - name: undefined
110   -})
111   -const queryFormRef = ref() // 搜索的表单
112   -const exportLoading = ref(false) // 导出的加载中
113   -
114   -/** 查询列表 */
115   -const getList = async () => {
116   - loading.value = true
117   - try {
118   - const data = await CategoryApi.getCategoryList(queryParams)
119   - list.value = handleTree(data, 'id', 'parentId')
120   - } finally {
121   - loading.value = false
122   - }
123   -}
124   -
125   -/** 搜索按钮操作 */
126   -const handleQuery = () => {
127   - queryParams.pageNo = 1
128   - getList()
129   -}
130   -
131   -/** 重置按钮操作 */
132   -const resetQuery = () => {
133   - queryFormRef.value.resetFields()
134   - handleQuery()
135   -}
136   -
137   -/** 添加/修改操作 */
138   -const formRef = ref()
139   -const openForm = (type: string, id?: number) => {
140   - formRef.value.open(type, id)
141   -}
142   -
143   -/** 删除按钮操作 */
144   -const handleDelete = async (id: number) => {
145   - try {
146   - // 删除的二次确认
147   - await message.delConfirm()
148   - // 发起删除
149   - await CategoryApi.deleteCategory(id)
150   - message.success(t('common.delSuccess'))
151   - // 刷新列表
152   - await getList()
153   - } catch {}
154   -}
155   -
156   -/** 导出按钮操作 */
157   -const handleExport = async () => {
158   - try {
159   - // 导出的二次确认
160   - await message.exportConfirm()
161   - // 发起导出
162   - exportLoading.value = true
163   - const data = await CategoryApi.exportCategory(queryParams)
164   - download.excel(data, '分类.xls')
165   - } catch {
166   - } finally {
167   - exportLoading.value = false
168   - }
169   -}
170   -
171   -/** 展开/折叠操作 */
172   -const isExpandAll = ref(true) // 是否展开,默认全部展开
173   -const refreshTable = ref(true) // 重新渲染表格状态
174   -const toggleExpandAll = async () => {
175   - refreshTable.value = false
176   - isExpandAll.value = !isExpandAll.value
177   - await nextTick()
178   - refreshTable.value = true
179   -}
180   -
181   -/** 初始化 **/
182   -onMounted(() => {
183   - getList()
184   -})
185   -</script>
186 0 \ No newline at end of file
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/assert.json renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/assert.json
... ... @@ -53,8 +53,8 @@
53 53 "contentPath" : "vue/index",
54 54 "filePath" : "yudao-ui-admin-vue2/src/views/infra/demo/index.vue"
55 55 }, {
56   - "contentPath" : "js/student",
57   - "filePath" : "yudao-ui-admin-vue2/src/api/infra/student.js"
  56 + "contentPath": "js/index",
  57 + "filePath": "yudao-ui-admin-vue2/src/api/infra/demo/index.js"
58 58 }, {
59 59 "contentPath" : "vue/StudentForm",
60 60 "filePath" : "yudao-ui-admin-vue2/src/views/infra/demo/StudentForm.vue"
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/ErrorCodeConstants_手动操作 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/ErrorCodeConstants_手动操作
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/InfraStudentContactDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/InfraStudentContactDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/InfraStudentContactMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/InfraStudentContactMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/InfraStudentController renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/InfraStudentController
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/InfraStudentDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/InfraStudentDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/InfraStudentPageReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/InfraStudentPageReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/InfraStudentRespVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/InfraStudentRespVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/InfraStudentSaveReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/InfraStudentSaveReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/InfraStudentService renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/InfraStudentService
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/InfraStudentServiceImpl renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/InfraStudentServiceImpl
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/InfraStudentServiceImplTest renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/InfraStudentServiceImplTest
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/InfraStudentTeacherDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/InfraStudentTeacherDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/java/InfraStudentTeacherMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/java/InfraStudentTeacherMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/js/student renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/js/index
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/sql/h2 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/sql/h2
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/sql/sql renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/sql/sql
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/vue/StudentContactForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/vue/StudentContactForm
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/vue/StudentContactList renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/vue/StudentContactList
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/vue/StudentForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/vue/StudentForm
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/vue/StudentTeacherForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/vue/StudentTeacherForm
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/vue/StudentTeacherList renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/vue/StudentTeacherList
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/vue/index renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/vue/index
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_erp/xml/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_erp/xml/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/assert.json renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/assert.json
... ... @@ -53,8 +53,8 @@
53 53 "contentPath" : "vue/index",
54 54 "filePath" : "yudao-ui-admin-vue2/src/views/infra/demo/index.vue"
55 55 }, {
56   - "contentPath" : "js/student",
57   - "filePath" : "yudao-ui-admin-vue2/src/api/infra/student.js"
  56 + "contentPath": "js/index",
  57 + "filePath": "yudao-ui-admin-vue2/src/api/infra/demo/index.js"
58 58 }, {
59 59 "contentPath" : "vue/StudentForm",
60 60 "filePath" : "yudao-ui-admin-vue2/src/views/infra/demo/StudentForm.vue"
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/ErrorCodeConstants_手动操作 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/ErrorCodeConstants_手动操作
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/InfraStudentContactDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/InfraStudentContactDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/InfraStudentContactMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/InfraStudentContactMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/InfraStudentController renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/InfraStudentController
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/InfraStudentDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/InfraStudentDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/InfraStudentPageReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/InfraStudentPageReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/InfraStudentRespVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/InfraStudentRespVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/InfraStudentSaveReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/InfraStudentSaveReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/InfraStudentService renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/InfraStudentService
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/InfraStudentServiceImpl renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/InfraStudentServiceImpl
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/InfraStudentServiceImplTest renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/InfraStudentServiceImplTest
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/InfraStudentTeacherDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/InfraStudentTeacherDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/java/InfraStudentTeacherMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/java/InfraStudentTeacherMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/js/student renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/js/index
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/sql/h2 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/sql/h2
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/sql/sql renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/sql/sql
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/vue/StudentContactForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/vue/StudentContactForm
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/vue/StudentContactList renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/vue/StudentContactList
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/vue/StudentForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/vue/StudentForm
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/vue/StudentTeacherForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/vue/StudentTeacherForm
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/vue/StudentTeacherList renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/vue/StudentTeacherList
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/vue/index renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/vue/index
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_inner/xml/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_inner/xml/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/assert.json renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/assert.json
... ... @@ -53,8 +53,8 @@
53 53 "contentPath" : "vue/index",
54 54 "filePath" : "yudao-ui-admin-vue2/src/views/infra/demo/index.vue"
55 55 }, {
56   - "contentPath" : "js/student",
57   - "filePath" : "yudao-ui-admin-vue2/src/api/infra/student.js"
  56 + "contentPath": "js/index",
  57 + "filePath": "yudao-ui-admin-vue2/src/api/infra/demo/index.js"
58 58 }, {
59 59 "contentPath" : "vue/StudentForm",
60 60 "filePath" : "yudao-ui-admin-vue2/src/views/infra/demo/StudentForm.vue"
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/ErrorCodeConstants_手动操作 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/ErrorCodeConstants_手动操作
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/InfraStudentContactDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/InfraStudentContactDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/InfraStudentContactMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/InfraStudentContactMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/InfraStudentController renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/InfraStudentController
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/InfraStudentDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/InfraStudentDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/InfraStudentPageReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/InfraStudentPageReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/InfraStudentRespVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/InfraStudentRespVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/InfraStudentSaveReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/InfraStudentSaveReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/InfraStudentService renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/InfraStudentService
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/InfraStudentServiceImpl renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/InfraStudentServiceImpl
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/InfraStudentServiceImplTest renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/InfraStudentServiceImplTest
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/InfraStudentTeacherDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/InfraStudentTeacherDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/java/InfraStudentTeacherMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/java/InfraStudentTeacherMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/js/student renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/js/index
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/sql/h2 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/sql/h2
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/sql/sql renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/sql/sql
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/vue/StudentContactForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/vue/StudentContactForm
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/vue/StudentForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/vue/StudentForm
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/vue/StudentTeacherForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/vue/StudentTeacherForm
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/vue/index renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/vue/index
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_master_normal/xml/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_master_normal/xml/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/assert.json renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/assert.json
... ... @@ -41,8 +41,8 @@
41 41 "contentPath" : "vue/index",
42 42 "filePath" : "yudao-ui-admin-vue2/src/views/infra/demo/index.vue"
43 43 }, {
44   - "contentPath" : "js/student",
45   - "filePath" : "yudao-ui-admin-vue2/src/api/infra/student.js"
  44 + "contentPath": "js/index",
  45 + "filePath": "yudao-ui-admin-vue2/src/api/infra/demo/index.js"
46 46 }, {
47 47 "contentPath" : "vue/StudentForm",
48 48 "filePath" : "yudao-ui-admin-vue2/src/views/infra/demo/StudentForm.vue"
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/java/ErrorCodeConstants_手动操作 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/java/ErrorCodeConstants_手动操作
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/java/InfraStudentController renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/java/InfraStudentController
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/java/InfraStudentDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/java/InfraStudentDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/java/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/java/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/java/InfraStudentPageReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/java/InfraStudentPageReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/java/InfraStudentRespVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/java/InfraStudentRespVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/java/InfraStudentSaveReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/java/InfraStudentSaveReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/java/InfraStudentService renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/java/InfraStudentService
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/java/InfraStudentServiceImpl renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/java/InfraStudentServiceImpl
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/java/InfraStudentServiceImplTest renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/java/InfraStudentServiceImplTest
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/js/student renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/js/index
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/sql/h2 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/sql/h2
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/sql/sql renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/sql/sql
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/vue/StudentForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/vue/StudentForm
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/vue/index renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/vue/index
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_one/xml/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_one/xml/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/assert.json renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/assert.json
... ... @@ -41,8 +41,8 @@
41 41 "contentPath" : "vue/index",
42 42 "filePath" : "yudao-ui-admin-vue2/src/views/infra/demo/index.vue"
43 43 }, {
44   - "contentPath" : "js/category",
45   - "filePath" : "yudao-ui-admin-vue2/src/api/infra/category.js"
  44 + "contentPath": "js/index",
  45 + "filePath": "yudao-ui-admin-vue2/src/api/infra/demo/index.js"
46 46 }, {
47 47 "contentPath" : "vue/CategoryForm",
48 48 "filePath" : "yudao-ui-admin-vue2/src/views/infra/demo/CategoryForm.vue"
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/java/ErrorCodeConstants_手动操作 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/java/ErrorCodeConstants_手动操作
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/java/InfraCategoryController renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/java/InfraCategoryController
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/java/InfraCategoryDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/java/InfraCategoryDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/java/InfraCategoryListReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/java/InfraCategoryListReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/java/InfraCategoryMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/java/InfraCategoryMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/java/InfraCategoryRespVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/java/InfraCategoryRespVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/java/InfraCategorySaveReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/java/InfraCategorySaveReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/java/InfraCategoryService renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/java/InfraCategoryService
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/java/InfraCategoryServiceImpl renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/java/InfraCategoryServiceImpl
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/java/InfraCategoryServiceImplTest renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/java/InfraCategoryServiceImplTest
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/js/category renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/js/index
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/sql/h2 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/sql/h2
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/sql/sql renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/sql/sql
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/vue/CategoryForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/vue/CategoryForm
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/vue/index renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/vue/index
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue2_tree/xml/InfraCategoryMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue2_tree/xml/InfraCategoryMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/assert.json renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/assert.json
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/ErrorCodeConstants_手动操作 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/ErrorCodeConstants_手动操作
1   -// TODO 待办:请将下面的错误码复制到 yudao-module-infra-api 模块的 ErrorCodeConstants 类中。注意,请给“TODO 补充编号”设置一个错误码编号!!!
2   -// ========== 学生 TODO 补充编号 ==========
3   -ErrorCode STUDENT_NOT_EXISTS = new ErrorCode(TODO 补充编号, "学生不存在");
4   -ErrorCode STUDENT_CONTACT_NOT_EXISTS = new ErrorCode(TODO 补充编号, "学生联系人不存在");
5   -ErrorCode STUDENT_TEACHER_NOT_EXISTS = new ErrorCode(TODO 补充编号, "学生班主任不存在");
6   -ErrorCode STUDENT_TEACHER_EXISTS = new ErrorCode(TODO 补充编号, "学生班主任已存在");
7 1 \ No newline at end of file
  2 +// TODO 待办:请将下面的错误码复制到 yudao-module-infra-api 模块的 ErrorCodeConstants 类中。注意,请给“TODO 补充编号”设置一个错误码编号!!!
  3 +// ========== 学生 TODO 补充编号 ==========
  4 +ErrorCode STUDENT_NOT_EXISTS = new ErrorCode(TODO 补充编号, "学生不存在");
  5 +ErrorCode STUDENT_CONTACT_NOT_EXISTS = new ErrorCode(TODO 补充编号, "学生联系人不存在");
  6 +ErrorCode STUDENT_TEACHER_NOT_EXISTS = new ErrorCode(TODO 补充编号, "学生班主任不存在");
  7 +ErrorCode STUDENT_TEACHER_EXISTS = new ErrorCode(TODO 补充编号, "学生班主任已存在");
8 8 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/InfraStudentContactDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/InfraStudentContactDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/InfraStudentContactMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/InfraStudentContactMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/InfraStudentController renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/InfraStudentController
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/InfraStudentDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/InfraStudentDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/InfraStudentPageReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/InfraStudentPageReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/InfraStudentRespVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/InfraStudentRespVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/InfraStudentSaveReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/InfraStudentSaveReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/InfraStudentService renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/InfraStudentService
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/InfraStudentServiceImpl renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/InfraStudentServiceImpl
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/InfraStudentServiceImplTest renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/InfraStudentServiceImplTest
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/InfraStudentTeacherDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/InfraStudentTeacherDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/java/InfraStudentTeacherMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/java/InfraStudentTeacherMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/sql/h2 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/sql/h2
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/sql/sql renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/sql/sql
1   --- 菜单 SQL
2   -INSERT INTO system_menu(
3   - name, permission, type, sort, parent_id,
4   - path, icon, component, status, component_name
5   -)
6   -VALUES (
7   - '学生管理', '', 2, 0, 888,
8   - 'student', '', 'infra/demo/index', 0, 'InfraStudent'
9   -);
10   -
11   --- 按钮父菜单ID
12   --- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码
13   -SELECT @parentId := LAST_INSERT_ID();
14   -
15   --- 按钮 SQL
16   -INSERT INTO system_menu(
17   - name, permission, type, sort, parent_id,
18   - path, icon, component, status
19   -)
20   -VALUES (
21   - '学生查询', 'infra:student:query', 3, 1, @parentId,
22   - '', '', '', 0
23   -);
24   -INSERT INTO system_menu(
25   - name, permission, type, sort, parent_id,
26   - path, icon, component, status
27   -)
28   -VALUES (
29   - '学生创建', 'infra:student:create', 3, 2, @parentId,
30   - '', '', '', 0
31   -);
32   -INSERT INTO system_menu(
33   - name, permission, type, sort, parent_id,
34   - path, icon, component, status
35   -)
36   -VALUES (
37   - '学生更新', 'infra:student:update', 3, 3, @parentId,
38   - '', '', '', 0
39   -);
40   -INSERT INTO system_menu(
41   - name, permission, type, sort, parent_id,
42   - path, icon, component, status
43   -)
44   -VALUES (
45   - '学生删除', 'infra:student:delete', 3, 4, @parentId,
46   - '', '', '', 0
47   -);
48   -INSERT INTO system_menu(
49   - name, permission, type, sort, parent_id,
50   - path, icon, component, status
51   -)
52   -VALUES (
53   - '学生导出', 'infra:student:export', 3, 5, @parentId,
54   - '', '', '', 0
55   -);
56 1 \ No newline at end of file
  2 +-- 菜单 SQL
  3 +INSERT INTO system_menu(
  4 + name, permission, type, sort, parent_id,
  5 + path, icon, component, status, component_name
  6 +)
  7 +VALUES (
  8 + '学生管理', '', 2, 0, 888,
  9 + 'student', '', 'infra/demo/index', 0, 'InfraStudent'
  10 +);
  11 +
  12 +-- 按钮父菜单ID
  13 +-- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码
  14 +SELECT @parentId := LAST_INSERT_ID();
  15 +
  16 +-- 按钮 SQL
  17 +INSERT INTO system_menu(
  18 + name, permission, type, sort, parent_id,
  19 + path, icon, component, status
  20 +)
  21 +VALUES (
  22 + '学生查询', 'infra:student:query', 3, 1, @parentId,
  23 + '', '', '', 0
  24 +);
  25 +INSERT INTO system_menu(
  26 + name, permission, type, sort, parent_id,
  27 + path, icon, component, status
  28 +)
  29 +VALUES (
  30 + '学生创建', 'infra:student:create', 3, 2, @parentId,
  31 + '', '', '', 0
  32 +);
  33 +INSERT INTO system_menu(
  34 + name, permission, type, sort, parent_id,
  35 + path, icon, component, status
  36 +)
  37 +VALUES (
  38 + '学生更新', 'infra:student:update', 3, 3, @parentId,
  39 + '', '', '', 0
  40 +);
  41 +INSERT INTO system_menu(
  42 + name, permission, type, sort, parent_id,
  43 + path, icon, component, status
  44 +)
  45 +VALUES (
  46 + '学生删除', 'infra:student:delete', 3, 4, @parentId,
  47 + '', '', '', 0
  48 +);
  49 +INSERT INTO system_menu(
  50 + name, permission, type, sort, parent_id,
  51 + path, icon, component, status
  52 +)
  53 +VALUES (
  54 + '学生导出', 'infra:student:export', 3, 5, @parentId,
  55 + '', '', '', 0
  56 +);
57 57 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/ts/index renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/ts/index
1   -import request from '@/config/axios'
2   -
3   -export interface StudentVO {
4   - id: number
5   - name: string
6   - description: string
7   - birthday: Date
8   - sex: number
9   - enabled: boolean
10   - avatar: string
11   - video: string
12   - memo: string
13   -}
14   -
15   -// 查询学生分页
16   -export const getStudentPage = async (params) => {
17   - return await request.get({ url: `/infra/student/page`, params })
18   -}
19   -
20   -// 查询学生详情
21   -export const getStudent = async (id: number) => {
22   - return await request.get({ url: `/infra/student/get?id=` + id })
23   -}
24   -
25   -// 新增学生
26   -export const createStudent = async (data: StudentVO) => {
27   - return await request.post({ url: `/infra/student/create`, data })
28   -}
29   -
30   -// 修改学生
31   -export const updateStudent = async (data: StudentVO) => {
32   - return await request.put({ url: `/infra/student/update`, data })
33   -}
34   -
35   -// 删除学生
36   -export const deleteStudent = async (id: number) => {
37   - return await request.delete({ url: `/infra/student/delete?id=` + id })
38   -}
39   -
40   -// 导出学生 Excel
41   -export const exportStudent = async (params) => {
42   - return await request.download({ url: `/infra/student/export-excel`, params })
43   -}
44   -
45   -// ==================== 子表(学生联系人) ====================
46   -
47   -// 获得学生联系人分页
48   -export const getStudentContactPage = async (params) => {
49   - return await request.get({ url: `/infra/student/student-contact/page`, params })
50   -}
51   -// 新增学生联系人
52   -export const createStudentContact = async (data) => {
53   - return await request.post({ url: `/infra/student/student-contact/create`, data })
54   -}
55   -
56   -// 修改学生联系人
57   -export const updateStudentContact = async (data) => {
58   - return await request.put({ url: `/infra/student/student-contact/update`, data })
59   -}
60   -
61   -// 删除学生联系人
62   -export const deleteStudentContact = async (id: number) => {
63   - return await request.delete({ url: `/infra/student/student-contact/delete?id=` + id })
64   -}
65   -
66   -// 获得学生联系人
67   -export const getStudentContact = async (id: number) => {
68   - return await request.get({ url: `/infra/student/student-contact/get?id=` + id })
69   -}
70   -
71   -// ==================== 子表(学生班主任) ====================
72   -
73   -// 获得学生班主任分页
74   -export const getStudentTeacherPage = async (params) => {
75   - return await request.get({ url: `/infra/student/student-teacher/page`, params })
76   -}
77   -// 新增学生班主任
78   -export const createStudentTeacher = async (data) => {
79   - return await request.post({ url: `/infra/student/student-teacher/create`, data })
80   -}
81   -
82   -// 修改学生班主任
83   -export const updateStudentTeacher = async (data) => {
84   - return await request.put({ url: `/infra/student/student-teacher/update`, data })
85   -}
86   -
87   -// 删除学生班主任
88   -export const deleteStudentTeacher = async (id: number) => {
89   - return await request.delete({ url: `/infra/student/student-teacher/delete?id=` + id })
90   -}
91   -
92   -// 获得学生班主任
93   -export const getStudentTeacher = async (id: number) => {
94   - return await request.get({ url: `/infra/student/student-teacher/get?id=` + id })
95   -}
96 1 \ No newline at end of file
  2 +import request from '@/config/axios'
  3 +
  4 +export interface StudentVO {
  5 + id: number
  6 + name: string
  7 + description: string
  8 + birthday: Date
  9 + sex: number
  10 + enabled: boolean
  11 + avatar: string
  12 + video: string
  13 + memo: string
  14 +}
  15 +
  16 +// 查询学生分页
  17 +export const getStudentPage = async (params) => {
  18 + return await request.get({ url: `/infra/student/page`, params })
  19 +}
  20 +
  21 +// 查询学生详情
  22 +export const getStudent = async (id: number) => {
  23 + return await request.get({ url: `/infra/student/get?id=` + id })
  24 +}
  25 +
  26 +// 新增学生
  27 +export const createStudent = async (data: StudentVO) => {
  28 + return await request.post({ url: `/infra/student/create`, data })
  29 +}
  30 +
  31 +// 修改学生
  32 +export const updateStudent = async (data: StudentVO) => {
  33 + return await request.put({ url: `/infra/student/update`, data })
  34 +}
  35 +
  36 +// 删除学生
  37 +export const deleteStudent = async (id: number) => {
  38 + return await request.delete({ url: `/infra/student/delete?id=` + id })
  39 +}
  40 +
  41 +// 导出学生 Excel
  42 +export const exportStudent = async (params) => {
  43 + return await request.download({ url: `/infra/student/export-excel`, params })
  44 +}
  45 +
  46 +// ==================== 子表(学生联系人) ====================
  47 +
  48 +// 获得学生联系人分页
  49 +export const getStudentContactPage = async (params) => {
  50 + return await request.get({ url: `/infra/student/student-contact/page`, params })
  51 +}
  52 +// 新增学生联系人
  53 +export const createStudentContact = async (data) => {
  54 + return await request.post({ url: `/infra/student/student-contact/create`, data })
  55 +}
  56 +
  57 +// 修改学生联系人
  58 +export const updateStudentContact = async (data) => {
  59 + return await request.put({ url: `/infra/student/student-contact/update`, data })
  60 +}
  61 +
  62 +// 删除学生联系人
  63 +export const deleteStudentContact = async (id: number) => {
  64 + return await request.delete({ url: `/infra/student/student-contact/delete?id=` + id })
  65 +}
  66 +
  67 +// 获得学生联系人
  68 +export const getStudentContact = async (id: number) => {
  69 + return await request.get({ url: `/infra/student/student-contact/get?id=` + id })
  70 +}
  71 +
  72 +// ==================== 子表(学生班主任) ====================
  73 +
  74 +// 获得学生班主任分页
  75 +export const getStudentTeacherPage = async (params) => {
  76 + return await request.get({ url: `/infra/student/student-teacher/page`, params })
  77 +}
  78 +// 新增学生班主任
  79 +export const createStudentTeacher = async (data) => {
  80 + return await request.post({ url: `/infra/student/student-teacher/create`, data })
  81 +}
  82 +
  83 +// 修改学生班主任
  84 +export const updateStudentTeacher = async (data) => {
  85 + return await request.put({ url: `/infra/student/student-teacher/update`, data })
  86 +}
  87 +
  88 +// 删除学生班主任
  89 +export const deleteStudentTeacher = async (id: number) => {
  90 + return await request.delete({ url: `/infra/student/student-teacher/delete?id=` + id })
  91 +}
  92 +
  93 +// 获得学生班主任
  94 +export const getStudentTeacher = async (id: number) => {
  95 + return await request.get({ url: `/infra/student/student-teacher/get?id=` + id })
  96 +}
97 97 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/vue/StudentContactForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/vue/StudentContactForm
... ... @@ -79,7 +79,7 @@ const formData = ref({
79 79 enabled: undefined,
80 80 avatar: undefined,
81 81 video: undefined,
82   - memo: undefined
  82 + memo: undefined,
83 83 })
84 84 const formRules = reactive({
85 85 studentId: [{ required: true, message: '学生编号不能为空', trigger: 'blur' }],
... ... @@ -89,7 +89,7 @@ const formRules = reactive({
89 89 sex: [{ required: true, message: '性别不能为空', trigger: 'change' }],
90 90 enabled: [{ required: true, message: '是否有效不能为空', trigger: 'blur' }],
91 91 avatar: [{ required: true, message: '头像不能为空', trigger: 'blur' }],
92   - memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }]
  92 + memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
93 93 })
94 94 const formRef = ref() // 表单 Ref
95 95  
... ... @@ -148,7 +148,7 @@ const resetForm = () =&gt; {
148 148 enabled: undefined,
149 149 avatar: undefined,
150 150 video: undefined,
151   - memo: undefined
  151 + memo: undefined,
152 152 }
153 153 formRef.value?.resetFields()
154 154 }
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/vue/StudentContactList renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/vue/StudentContactList
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/vue/StudentForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/vue/StudentForm
... ... @@ -78,7 +78,7 @@ const formData = ref({
78 78 enabled: undefined,
79 79 avatar: undefined,
80 80 video: undefined,
81   - memo: undefined
  81 + memo: undefined,
82 82 })
83 83 const formRules = reactive({
84 84 name: [{ required: true, message: '名字不能为空', trigger: 'blur' }],
... ... @@ -88,7 +88,7 @@ const formRules = reactive({
88 88 enabled: [{ required: true, message: '是否有效不能为空', trigger: 'blur' }],
89 89 avatar: [{ required: true, message: '头像不能为空', trigger: 'blur' }],
90 90 video: [{ required: true, message: '附件不能为空', trigger: 'blur' }],
91   - memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }]
  91 + memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
92 92 })
93 93 const formRef = ref() // 表单 Ref
94 94  
... ... @@ -145,7 +145,7 @@ const resetForm = () =&gt; {
145 145 enabled: undefined,
146 146 avatar: undefined,
147 147 video: undefined,
148   - memo: undefined
  148 + memo: undefined,
149 149 }
150 150 formRef.value?.resetFields()
151 151 }
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/vue/StudentTeacherForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/vue/StudentTeacherForm
... ... @@ -79,7 +79,7 @@ const formData = ref({
79 79 enabled: undefined,
80 80 avatar: undefined,
81 81 video: undefined,
82   - memo: undefined
  82 + memo: undefined,
83 83 })
84 84 const formRules = reactive({
85 85 studentId: [{ required: true, message: '学生编号不能为空', trigger: 'blur' }],
... ... @@ -89,7 +89,7 @@ const formRules = reactive({
89 89 sex: [{ required: true, message: '性别不能为空', trigger: 'change' }],
90 90 enabled: [{ required: true, message: '是否有效不能为空', trigger: 'blur' }],
91 91 avatar: [{ required: true, message: '头像不能为空', trigger: 'blur' }],
92   - memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }]
  92 + memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
93 93 })
94 94 const formRef = ref() // 表单 Ref
95 95  
... ... @@ -148,7 +148,7 @@ const resetForm = () =&gt; {
148 148 enabled: undefined,
149 149 avatar: undefined,
150 150 video: undefined,
151   - memo: undefined
  151 + memo: undefined,
152 152 }
153 153 formRef.value?.resetFields()
154 154 }
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/vue/StudentTeacherList renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/vue/StudentTeacherList
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/vue/index renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/vue/index
... ... @@ -202,7 +202,7 @@ const queryParams = reactive({
202 202 birthday: [],
203 203 sex: undefined,
204 204 enabled: undefined,
205   - createTime: []
  205 + createTime: [],
206 206 })
207 207 const queryFormRef = ref() // 搜索的表单
208 208 const exportLoading = ref(false) // 导出的加载中
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_erp/xml/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_erp/xml/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/assert.json renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/assert.json
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/ErrorCodeConstants_手动操作 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/ErrorCodeConstants_手动操作
1   -// TODO 待办:请将下面的错误码复制到 yudao-module-infra-api 模块的 ErrorCodeConstants 类中。注意,请给“TODO 补充编号”设置一个错误码编号!!!
2   -// ========== 学生 TODO 补充编号 ==========
3   -ErrorCode STUDENT_NOT_EXISTS = new ErrorCode(TODO 补充编号, "学生不存在");
4 1 \ No newline at end of file
  2 +// TODO 待办:请将下面的错误码复制到 yudao-module-infra-api 模块的 ErrorCodeConstants 类中。注意,请给“TODO 补充编号”设置一个错误码编号!!!
  3 +// ========== 学生 TODO 补充编号 ==========
  4 +ErrorCode STUDENT_NOT_EXISTS = new ErrorCode(TODO 补充编号, "学生不存在");
5 5 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/InfraStudentContactDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/InfraStudentContactDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/InfraStudentContactMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/InfraStudentContactMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/InfraStudentController renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/InfraStudentController
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/InfraStudentDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/InfraStudentDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/InfraStudentPageReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/InfraStudentPageReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/InfraStudentRespVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/InfraStudentRespVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/InfraStudentSaveReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/InfraStudentSaveReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/InfraStudentService renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/InfraStudentService
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/InfraStudentServiceImpl renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/InfraStudentServiceImpl
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/InfraStudentServiceImplTest renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/InfraStudentServiceImplTest
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/InfraStudentTeacherDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/InfraStudentTeacherDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/java/InfraStudentTeacherMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/java/InfraStudentTeacherMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/sql/h2 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/sql/h2
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/sql/sql renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/sql/sql
1   --- 菜单 SQL
2   -INSERT INTO system_menu(
3   - name, permission, type, sort, parent_id,
4   - path, icon, component, status, component_name
5   -)
6   -VALUES (
7   - '学生管理', '', 2, 0, 888,
8   - 'student', '', 'infra/demo/index', 0, 'InfraStudent'
9   -);
10   -
11   --- 按钮父菜单ID
12   --- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码
13   -SELECT @parentId := LAST_INSERT_ID();
14   -
15   --- 按钮 SQL
16   -INSERT INTO system_menu(
17   - name, permission, type, sort, parent_id,
18   - path, icon, component, status
19   -)
20   -VALUES (
21   - '学生查询', 'infra:student:query', 3, 1, @parentId,
22   - '', '', '', 0
23   -);
24   -INSERT INTO system_menu(
25   - name, permission, type, sort, parent_id,
26   - path, icon, component, status
27   -)
28   -VALUES (
29   - '学生创建', 'infra:student:create', 3, 2, @parentId,
30   - '', '', '', 0
31   -);
32   -INSERT INTO system_menu(
33   - name, permission, type, sort, parent_id,
34   - path, icon, component, status
35   -)
36   -VALUES (
37   - '学生更新', 'infra:student:update', 3, 3, @parentId,
38   - '', '', '', 0
39   -);
40   -INSERT INTO system_menu(
41   - name, permission, type, sort, parent_id,
42   - path, icon, component, status
43   -)
44   -VALUES (
45   - '学生删除', 'infra:student:delete', 3, 4, @parentId,
46   - '', '', '', 0
47   -);
48   -INSERT INTO system_menu(
49   - name, permission, type, sort, parent_id,
50   - path, icon, component, status
51   -)
52   -VALUES (
53   - '学生导出', 'infra:student:export', 3, 5, @parentId,
54   - '', '', '', 0
55   -);
56 1 \ No newline at end of file
  2 +-- 菜单 SQL
  3 +INSERT INTO system_menu(
  4 + name, permission, type, sort, parent_id,
  5 + path, icon, component, status, component_name
  6 +)
  7 +VALUES (
  8 + '学生管理', '', 2, 0, 888,
  9 + 'student', '', 'infra/demo/index', 0, 'InfraStudent'
  10 +);
  11 +
  12 +-- 按钮父菜单ID
  13 +-- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码
  14 +SELECT @parentId := LAST_INSERT_ID();
  15 +
  16 +-- 按钮 SQL
  17 +INSERT INTO system_menu(
  18 + name, permission, type, sort, parent_id,
  19 + path, icon, component, status
  20 +)
  21 +VALUES (
  22 + '学生查询', 'infra:student:query', 3, 1, @parentId,
  23 + '', '', '', 0
  24 +);
  25 +INSERT INTO system_menu(
  26 + name, permission, type, sort, parent_id,
  27 + path, icon, component, status
  28 +)
  29 +VALUES (
  30 + '学生创建', 'infra:student:create', 3, 2, @parentId,
  31 + '', '', '', 0
  32 +);
  33 +INSERT INTO system_menu(
  34 + name, permission, type, sort, parent_id,
  35 + path, icon, component, status
  36 +)
  37 +VALUES (
  38 + '学生更新', 'infra:student:update', 3, 3, @parentId,
  39 + '', '', '', 0
  40 +);
  41 +INSERT INTO system_menu(
  42 + name, permission, type, sort, parent_id,
  43 + path, icon, component, status
  44 +)
  45 +VALUES (
  46 + '学生删除', 'infra:student:delete', 3, 4, @parentId,
  47 + '', '', '', 0
  48 +);
  49 +INSERT INTO system_menu(
  50 + name, permission, type, sort, parent_id,
  51 + path, icon, component, status
  52 +)
  53 +VALUES (
  54 + '学生导出', 'infra:student:export', 3, 5, @parentId,
  55 + '', '', '', 0
  56 +);
57 57 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/ts/index renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/ts/index
1   -import request from '@/config/axios'
2   -
3   -export interface StudentVO {
4   - id: number
5   - name: string
6   - description: string
7   - birthday: Date
8   - sex: number
9   - enabled: boolean
10   - avatar: string
11   - video: string
12   - memo: string
13   -}
14   -
15   -// 查询学生分页
16   -export const getStudentPage = async (params) => {
17   - return await request.get({ url: `/infra/student/page`, params })
18   -}
19   -
20   -// 查询学生详情
21   -export const getStudent = async (id: number) => {
22   - return await request.get({ url: `/infra/student/get?id=` + id })
23   -}
24   -
25   -// 新增学生
26   -export const createStudent = async (data: StudentVO) => {
27   - return await request.post({ url: `/infra/student/create`, data })
28   -}
29   -
30   -// 修改学生
31   -export const updateStudent = async (data: StudentVO) => {
32   - return await request.put({ url: `/infra/student/update`, data })
33   -}
34   -
35   -// 删除学生
36   -export const deleteStudent = async (id: number) => {
37   - return await request.delete({ url: `/infra/student/delete?id=` + id })
38   -}
39   -
40   -// 导出学生 Excel
41   -export const exportStudent = async (params) => {
42   - return await request.download({ url: `/infra/student/export-excel`, params })
43   -}
44   -
45   -// ==================== 子表(学生联系人) ====================
46   -
47   -// 获得学生联系人列表
48   -export const getStudentContactListByStudentId = async (studentId) => {
49   - return await request.get({ url: `/infra/student/student-contact/list-by-student-id?studentId=` + studentId })
50   -}
51   -
52   -// ==================== 子表(学生班主任) ====================
53   -
54   -// 获得学生班主任
55   -export const getStudentTeacherByStudentId = async (studentId) => {
56   - return await request.get({ url: `/infra/student/student-teacher/get-by-student-id?studentId=` + studentId })
57   -}
58 1 \ No newline at end of file
  2 +import request from '@/config/axios'
  3 +
  4 +export interface StudentVO {
  5 + id: number
  6 + name: string
  7 + description: string
  8 + birthday: Date
  9 + sex: number
  10 + enabled: boolean
  11 + avatar: string
  12 + video: string
  13 + memo: string
  14 +}
  15 +
  16 +// 查询学生分页
  17 +export const getStudentPage = async (params) => {
  18 + return await request.get({ url: `/infra/student/page`, params })
  19 +}
  20 +
  21 +// 查询学生详情
  22 +export const getStudent = async (id: number) => {
  23 + return await request.get({ url: `/infra/student/get?id=` + id })
  24 +}
  25 +
  26 +// 新增学生
  27 +export const createStudent = async (data: StudentVO) => {
  28 + return await request.post({ url: `/infra/student/create`, data })
  29 +}
  30 +
  31 +// 修改学生
  32 +export const updateStudent = async (data: StudentVO) => {
  33 + return await request.put({ url: `/infra/student/update`, data })
  34 +}
  35 +
  36 +// 删除学生
  37 +export const deleteStudent = async (id: number) => {
  38 + return await request.delete({ url: `/infra/student/delete?id=` + id })
  39 +}
  40 +
  41 +// 导出学生 Excel
  42 +export const exportStudent = async (params) => {
  43 + return await request.download({ url: `/infra/student/export-excel`, params })
  44 +}
  45 +
  46 +// ==================== 子表(学生联系人) ====================
  47 +
  48 +// 获得学生联系人列表
  49 +export const getStudentContactListByStudentId = async (studentId) => {
  50 + return await request.get({ url: `/infra/student/student-contact/list-by-student-id?studentId=` + studentId })
  51 +}
  52 +
  53 +// ==================== 子表(学生班主任) ====================
  54 +
  55 +// 获得学生班主任
  56 +export const getStudentTeacherByStudentId = async (studentId) => {
  57 + return await request.get({ url: `/infra/student/student-teacher/get-by-student-id?studentId=` + studentId })
  58 +}
59 59 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/vue/StudentContactForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/vue/StudentContactForm
... ... @@ -113,7 +113,7 @@ const formRules = reactive({
113 113 sex: [{ required: true, message: '性别不能为空', trigger: 'change' }],
114 114 enabled: [{ required: true, message: '是否有效不能为空', trigger: 'blur' }],
115 115 avatar: [{ required: true, message: '头像不能为空', trigger: 'blur' }],
116   - memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }]
  116 + memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
117 117 })
118 118 const formRef = ref() // 表单 Ref
119 119  
... ... @@ -149,7 +149,7 @@ const handleAdd = () =&gt; {
149 149 enabled: undefined,
150 150 avatar: undefined,
151 151 video: undefined,
152   - memo: undefined
  152 + memo: undefined,
153 153 }
154 154 row.studentId = props.studentId
155 155 formData.value.push(row)
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/vue/StudentContactList renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/vue/StudentContactList
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/vue/StudentForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/vue/StudentForm
... ... @@ -89,7 +89,7 @@ const formData = ref({
89 89 enabled: undefined,
90 90 avatar: undefined,
91 91 video: undefined,
92   - memo: undefined
  92 + memo: undefined,
93 93 })
94 94 const formRules = reactive({
95 95 name: [{ required: true, message: '名字不能为空', trigger: 'blur' }],
... ... @@ -99,7 +99,7 @@ const formRules = reactive({
99 99 enabled: [{ required: true, message: '是否有效不能为空', trigger: 'blur' }],
100 100 avatar: [{ required: true, message: '头像不能为空', trigger: 'blur' }],
101 101 video: [{ required: true, message: '附件不能为空', trigger: 'blur' }],
102   - memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }]
  102 + memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
103 103 })
104 104 const formRef = ref() // 表单 Ref
105 105  
... ... @@ -177,7 +177,7 @@ const resetForm = () =&gt; {
177 177 enabled: undefined,
178 178 avatar: undefined,
179 179 video: undefined,
180   - memo: undefined
  180 + memo: undefined,
181 181 }
182 182 formRef.value?.resetFields()
183 183 }
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/vue/StudentTeacherForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/vue/StudentTeacherForm
... ... @@ -69,7 +69,7 @@ const formRules = reactive({
69 69 sex: [{ required: true, message: '性别不能为空', trigger: 'change' }],
70 70 enabled: [{ required: true, message: '是否有效不能为空', trigger: 'blur' }],
71 71 avatar: [{ required: true, message: '头像不能为空', trigger: 'blur' }],
72   - memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }]
  72 + memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
73 73 })
74 74 const formRef = ref() // 表单 Ref
75 75  
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/vue/StudentTeacherList renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/vue/StudentTeacherList
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/vue/index renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/vue/index
... ... @@ -197,7 +197,7 @@ const queryParams = reactive({
197 197 birthday: [],
198 198 sex: undefined,
199 199 enabled: undefined,
200   - createTime: []
  200 + createTime: [],
201 201 })
202 202 const queryFormRef = ref() // 搜索的表单
203 203 const exportLoading = ref(false) // 导出的加载中
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_inner/xml/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_inner/xml/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/assert.json renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/assert.json
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/ErrorCodeConstants_手动操作 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/ErrorCodeConstants_手动操作
1   -// TODO 待办:请将下面的错误码复制到 yudao-module-infra-api 模块的 ErrorCodeConstants 类中。注意,请给“TODO 补充编号”设置一个错误码编号!!!
2   -// ========== 学生 TODO 补充编号 ==========
3   -ErrorCode STUDENT_NOT_EXISTS = new ErrorCode(TODO 补充编号, "学生不存在");
4 1 \ No newline at end of file
  2 +// TODO 待办:请将下面的错误码复制到 yudao-module-infra-api 模块的 ErrorCodeConstants 类中。注意,请给“TODO 补充编号”设置一个错误码编号!!!
  3 +// ========== 学生 TODO 补充编号 ==========
  4 +ErrorCode STUDENT_NOT_EXISTS = new ErrorCode(TODO 补充编号, "学生不存在");
5 5 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/InfraStudentContactDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/InfraStudentContactDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/InfraStudentContactMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/InfraStudentContactMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/InfraStudentController renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/InfraStudentController
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/InfraStudentDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/InfraStudentDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/InfraStudentPageReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/InfraStudentPageReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/InfraStudentRespVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/InfraStudentRespVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/InfraStudentSaveReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/InfraStudentSaveReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/InfraStudentService renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/InfraStudentService
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/InfraStudentServiceImpl renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/InfraStudentServiceImpl
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/InfraStudentServiceImplTest renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/InfraStudentServiceImplTest
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/InfraStudentTeacherDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/InfraStudentTeacherDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/java/InfraStudentTeacherMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/java/InfraStudentTeacherMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/sql/h2 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/sql/h2
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/sql/sql renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/sql/sql
1   --- 菜单 SQL
2   -INSERT INTO system_menu(
3   - name, permission, type, sort, parent_id,
4   - path, icon, component, status, component_name
5   -)
6   -VALUES (
7   - '学生管理', '', 2, 0, 888,
8   - 'student', '', 'infra/demo/index', 0, 'InfraStudent'
9   -);
10   -
11   --- 按钮父菜单ID
12   --- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码
13   -SELECT @parentId := LAST_INSERT_ID();
14   -
15   --- 按钮 SQL
16   -INSERT INTO system_menu(
17   - name, permission, type, sort, parent_id,
18   - path, icon, component, status
19   -)
20   -VALUES (
21   - '学生查询', 'infra:student:query', 3, 1, @parentId,
22   - '', '', '', 0
23   -);
24   -INSERT INTO system_menu(
25   - name, permission, type, sort, parent_id,
26   - path, icon, component, status
27   -)
28   -VALUES (
29   - '学生创建', 'infra:student:create', 3, 2, @parentId,
30   - '', '', '', 0
31   -);
32   -INSERT INTO system_menu(
33   - name, permission, type, sort, parent_id,
34   - path, icon, component, status
35   -)
36   -VALUES (
37   - '学生更新', 'infra:student:update', 3, 3, @parentId,
38   - '', '', '', 0
39   -);
40   -INSERT INTO system_menu(
41   - name, permission, type, sort, parent_id,
42   - path, icon, component, status
43   -)
44   -VALUES (
45   - '学生删除', 'infra:student:delete', 3, 4, @parentId,
46   - '', '', '', 0
47   -);
48   -INSERT INTO system_menu(
49   - name, permission, type, sort, parent_id,
50   - path, icon, component, status
51   -)
52   -VALUES (
53   - '学生导出', 'infra:student:export', 3, 5, @parentId,
54   - '', '', '', 0
55   -);
56 1 \ No newline at end of file
  2 +-- 菜单 SQL
  3 +INSERT INTO system_menu(
  4 + name, permission, type, sort, parent_id,
  5 + path, icon, component, status, component_name
  6 +)
  7 +VALUES (
  8 + '学生管理', '', 2, 0, 888,
  9 + 'student', '', 'infra/demo/index', 0, 'InfraStudent'
  10 +);
  11 +
  12 +-- 按钮父菜单ID
  13 +-- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码
  14 +SELECT @parentId := LAST_INSERT_ID();
  15 +
  16 +-- 按钮 SQL
  17 +INSERT INTO system_menu(
  18 + name, permission, type, sort, parent_id,
  19 + path, icon, component, status
  20 +)
  21 +VALUES (
  22 + '学生查询', 'infra:student:query', 3, 1, @parentId,
  23 + '', '', '', 0
  24 +);
  25 +INSERT INTO system_menu(
  26 + name, permission, type, sort, parent_id,
  27 + path, icon, component, status
  28 +)
  29 +VALUES (
  30 + '学生创建', 'infra:student:create', 3, 2, @parentId,
  31 + '', '', '', 0
  32 +);
  33 +INSERT INTO system_menu(
  34 + name, permission, type, sort, parent_id,
  35 + path, icon, component, status
  36 +)
  37 +VALUES (
  38 + '学生更新', 'infra:student:update', 3, 3, @parentId,
  39 + '', '', '', 0
  40 +);
  41 +INSERT INTO system_menu(
  42 + name, permission, type, sort, parent_id,
  43 + path, icon, component, status
  44 +)
  45 +VALUES (
  46 + '学生删除', 'infra:student:delete', 3, 4, @parentId,
  47 + '', '', '', 0
  48 +);
  49 +INSERT INTO system_menu(
  50 + name, permission, type, sort, parent_id,
  51 + path, icon, component, status
  52 +)
  53 +VALUES (
  54 + '学生导出', 'infra:student:export', 3, 5, @parentId,
  55 + '', '', '', 0
  56 +);
57 57 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/ts/index renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/ts/index
1   -import request from '@/config/axios'
2   -
3   -export interface StudentVO {
4   - id: number
5   - name: string
6   - description: string
7   - birthday: Date
8   - sex: number
9   - enabled: boolean
10   - avatar: string
11   - video: string
12   - memo: string
13   -}
14   -
15   -// 查询学生分页
16   -export const getStudentPage = async (params) => {
17   - return await request.get({ url: `/infra/student/page`, params })
18   -}
19   -
20   -// 查询学生详情
21   -export const getStudent = async (id: number) => {
22   - return await request.get({ url: `/infra/student/get?id=` + id })
23   -}
24   -
25   -// 新增学生
26   -export const createStudent = async (data: StudentVO) => {
27   - return await request.post({ url: `/infra/student/create`, data })
28   -}
29   -
30   -// 修改学生
31   -export const updateStudent = async (data: StudentVO) => {
32   - return await request.put({ url: `/infra/student/update`, data })
33   -}
34   -
35   -// 删除学生
36   -export const deleteStudent = async (id: number) => {
37   - return await request.delete({ url: `/infra/student/delete?id=` + id })
38   -}
39   -
40   -// 导出学生 Excel
41   -export const exportStudent = async (params) => {
42   - return await request.download({ url: `/infra/student/export-excel`, params })
43   -}
44   -
45   -// ==================== 子表(学生联系人) ====================
46   -
47   -// 获得学生联系人列表
48   -export const getStudentContactListByStudentId = async (studentId) => {
49   - return await request.get({ url: `/infra/student/student-contact/list-by-student-id?studentId=` + studentId })
50   -}
51   -
52   -// ==================== 子表(学生班主任) ====================
53   -
54   -// 获得学生班主任
55   -export const getStudentTeacherByStudentId = async (studentId) => {
56   - return await request.get({ url: `/infra/student/student-teacher/get-by-student-id?studentId=` + studentId })
57   -}
58 1 \ No newline at end of file
  2 +import request from '@/config/axios'
  3 +
  4 +export interface StudentVO {
  5 + id: number
  6 + name: string
  7 + description: string
  8 + birthday: Date
  9 + sex: number
  10 + enabled: boolean
  11 + avatar: string
  12 + video: string
  13 + memo: string
  14 +}
  15 +
  16 +// 查询学生分页
  17 +export const getStudentPage = async (params) => {
  18 + return await request.get({ url: `/infra/student/page`, params })
  19 +}
  20 +
  21 +// 查询学生详情
  22 +export const getStudent = async (id: number) => {
  23 + return await request.get({ url: `/infra/student/get?id=` + id })
  24 +}
  25 +
  26 +// 新增学生
  27 +export const createStudent = async (data: StudentVO) => {
  28 + return await request.post({ url: `/infra/student/create`, data })
  29 +}
  30 +
  31 +// 修改学生
  32 +export const updateStudent = async (data: StudentVO) => {
  33 + return await request.put({ url: `/infra/student/update`, data })
  34 +}
  35 +
  36 +// 删除学生
  37 +export const deleteStudent = async (id: number) => {
  38 + return await request.delete({ url: `/infra/student/delete?id=` + id })
  39 +}
  40 +
  41 +// 导出学生 Excel
  42 +export const exportStudent = async (params) => {
  43 + return await request.download({ url: `/infra/student/export-excel`, params })
  44 +}
  45 +
  46 +// ==================== 子表(学生联系人) ====================
  47 +
  48 +// 获得学生联系人列表
  49 +export const getStudentContactListByStudentId = async (studentId) => {
  50 + return await request.get({ url: `/infra/student/student-contact/list-by-student-id?studentId=` + studentId })
  51 +}
  52 +
  53 +// ==================== 子表(学生班主任) ====================
  54 +
  55 +// 获得学生班主任
  56 +export const getStudentTeacherByStudentId = async (studentId) => {
  57 + return await request.get({ url: `/infra/student/student-teacher/get-by-student-id?studentId=` + studentId })
  58 +}
59 59 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/vue/StudentContactForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/vue/StudentContactForm
... ... @@ -113,7 +113,7 @@ const formRules = reactive({
113 113 sex: [{ required: true, message: '性别不能为空', trigger: 'change' }],
114 114 enabled: [{ required: true, message: '是否有效不能为空', trigger: 'blur' }],
115 115 avatar: [{ required: true, message: '头像不能为空', trigger: 'blur' }],
116   - memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }]
  116 + memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
117 117 })
118 118 const formRef = ref() // 表单 Ref
119 119  
... ... @@ -149,7 +149,7 @@ const handleAdd = () =&gt; {
149 149 enabled: undefined,
150 150 avatar: undefined,
151 151 video: undefined,
152   - memo: undefined
  152 + memo: undefined,
153 153 }
154 154 row.studentId = props.studentId
155 155 formData.value.push(row)
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/vue/StudentForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/vue/StudentForm
... ... @@ -89,7 +89,7 @@ const formData = ref({
89 89 enabled: undefined,
90 90 avatar: undefined,
91 91 video: undefined,
92   - memo: undefined
  92 + memo: undefined,
93 93 })
94 94 const formRules = reactive({
95 95 name: [{ required: true, message: '名字不能为空', trigger: 'blur' }],
... ... @@ -99,7 +99,7 @@ const formRules = reactive({
99 99 enabled: [{ required: true, message: '是否有效不能为空', trigger: 'blur' }],
100 100 avatar: [{ required: true, message: '头像不能为空', trigger: 'blur' }],
101 101 video: [{ required: true, message: '附件不能为空', trigger: 'blur' }],
102   - memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }]
  102 + memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
103 103 })
104 104 const formRef = ref() // 表单 Ref
105 105  
... ... @@ -177,7 +177,7 @@ const resetForm = () =&gt; {
177 177 enabled: undefined,
178 178 avatar: undefined,
179 179 video: undefined,
180   - memo: undefined
  180 + memo: undefined,
181 181 }
182 182 formRef.value?.resetFields()
183 183 }
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/vue/StudentTeacherForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/vue/StudentTeacherForm
... ... @@ -69,7 +69,7 @@ const formRules = reactive({
69 69 sex: [{ required: true, message: '性别不能为空', trigger: 'change' }],
70 70 enabled: [{ required: true, message: '是否有效不能为空', trigger: 'blur' }],
71 71 avatar: [{ required: true, message: '头像不能为空', trigger: 'blur' }],
72   - memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }]
  72 + memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
73 73 })
74 74 const formRef = ref() // 表单 Ref
75 75  
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/vue/index renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/vue/index
... ... @@ -182,7 +182,7 @@ const queryParams = reactive({
182 182 birthday: [],
183 183 sex: undefined,
184 184 enabled: undefined,
185   - createTime: []
  185 + createTime: [],
186 186 })
187 187 const queryFormRef = ref() // 搜索的表单
188 188 const exportLoading = ref(false) // 导出的加载中
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_master_normal/xml/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_master_normal/xml/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/assert.json renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/assert.json
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/java/ErrorCodeConstants_手动操作 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/java/ErrorCodeConstants_手动操作
1   -// TODO 待办:请将下面的错误码复制到 yudao-module-infra-api 模块的 ErrorCodeConstants 类中。注意,请给“TODO 补充编号”设置一个错误码编号!!!
2   -// ========== 学生 TODO 补充编号 ==========
3   -ErrorCode STUDENT_NOT_EXISTS = new ErrorCode(TODO 补充编号, "学生不存在");
4 1 \ No newline at end of file
  2 +// TODO 待办:请将下面的错误码复制到 yudao-module-infra-api 模块的 ErrorCodeConstants 类中。注意,请给“TODO 补充编号”设置一个错误码编号!!!
  3 +// ========== 学生 TODO 补充编号 ==========
  4 +ErrorCode STUDENT_NOT_EXISTS = new ErrorCode(TODO 补充编号, "学生不存在");
5 5 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/java/InfraStudentController renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/java/InfraStudentController
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/java/InfraStudentDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/java/InfraStudentDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/java/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/java/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/java/InfraStudentPageReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/java/InfraStudentPageReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/java/InfraStudentRespVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/java/InfraStudentRespVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/java/InfraStudentSaveReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/java/InfraStudentSaveReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/java/InfraStudentService renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/java/InfraStudentService
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/java/InfraStudentServiceImpl renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/java/InfraStudentServiceImpl
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/java/InfraStudentServiceImplTest renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/java/InfraStudentServiceImplTest
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/sql/h2 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/sql/h2
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/sql/sql renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/sql/sql
1   --- 菜单 SQL
2   -INSERT INTO system_menu(
3   - name, permission, type, sort, parent_id,
4   - path, icon, component, status, component_name
5   -)
6   -VALUES (
7   - '学生管理', '', 2, 0, 888,
8   - 'student', '', 'infra/demo/index', 0, 'InfraStudent'
9   -);
10   -
11   --- 按钮父菜单ID
12   --- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码
13   -SELECT @parentId := LAST_INSERT_ID();
14   -
15   --- 按钮 SQL
16   -INSERT INTO system_menu(
17   - name, permission, type, sort, parent_id,
18   - path, icon, component, status
19   -)
20   -VALUES (
21   - '学生查询', 'infra:student:query', 3, 1, @parentId,
22   - '', '', '', 0
23   -);
24   -INSERT INTO system_menu(
25   - name, permission, type, sort, parent_id,
26   - path, icon, component, status
27   -)
28   -VALUES (
29   - '学生创建', 'infra:student:create', 3, 2, @parentId,
30   - '', '', '', 0
31   -);
32   -INSERT INTO system_menu(
33   - name, permission, type, sort, parent_id,
34   - path, icon, component, status
35   -)
36   -VALUES (
37   - '学生更新', 'infra:student:update', 3, 3, @parentId,
38   - '', '', '', 0
39   -);
40   -INSERT INTO system_menu(
41   - name, permission, type, sort, parent_id,
42   - path, icon, component, status
43   -)
44   -VALUES (
45   - '学生删除', 'infra:student:delete', 3, 4, @parentId,
46   - '', '', '', 0
47   -);
48   -INSERT INTO system_menu(
49   - name, permission, type, sort, parent_id,
50   - path, icon, component, status
51   -)
52   -VALUES (
53   - '学生导出', 'infra:student:export', 3, 5, @parentId,
54   - '', '', '', 0
55   -);
56 1 \ No newline at end of file
  2 +-- 菜单 SQL
  3 +INSERT INTO system_menu(
  4 + name, permission, type, sort, parent_id,
  5 + path, icon, component, status, component_name
  6 +)
  7 +VALUES (
  8 + '学生管理', '', 2, 0, 888,
  9 + 'student', '', 'infra/demo/index', 0, 'InfraStudent'
  10 +);
  11 +
  12 +-- 按钮父菜单ID
  13 +-- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码
  14 +SELECT @parentId := LAST_INSERT_ID();
  15 +
  16 +-- 按钮 SQL
  17 +INSERT INTO system_menu(
  18 + name, permission, type, sort, parent_id,
  19 + path, icon, component, status
  20 +)
  21 +VALUES (
  22 + '学生查询', 'infra:student:query', 3, 1, @parentId,
  23 + '', '', '', 0
  24 +);
  25 +INSERT INTO system_menu(
  26 + name, permission, type, sort, parent_id,
  27 + path, icon, component, status
  28 +)
  29 +VALUES (
  30 + '学生创建', 'infra:student:create', 3, 2, @parentId,
  31 + '', '', '', 0
  32 +);
  33 +INSERT INTO system_menu(
  34 + name, permission, type, sort, parent_id,
  35 + path, icon, component, status
  36 +)
  37 +VALUES (
  38 + '学生更新', 'infra:student:update', 3, 3, @parentId,
  39 + '', '', '', 0
  40 +);
  41 +INSERT INTO system_menu(
  42 + name, permission, type, sort, parent_id,
  43 + path, icon, component, status
  44 +)
  45 +VALUES (
  46 + '学生删除', 'infra:student:delete', 3, 4, @parentId,
  47 + '', '', '', 0
  48 +);
  49 +INSERT INTO system_menu(
  50 + name, permission, type, sort, parent_id,
  51 + path, icon, component, status
  52 +)
  53 +VALUES (
  54 + '学生导出', 'infra:student:export', 3, 5, @parentId,
  55 + '', '', '', 0
  56 +);
57 57 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/ts/index renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/ts/index
1   -import request from '@/config/axios'
2   -
3   -export interface StudentVO {
4   - id: number
5   - name: string
6   - description: string
7   - birthday: Date
8   - sex: number
9   - enabled: boolean
10   - avatar: string
11   - video: string
12   - memo: string
13   -}
14   -
15   -// 查询学生分页
16   -export const getStudentPage = async (params) => {
17   - return await request.get({ url: `/infra/student/page`, params })
18   -}
19   -
20   -// 查询学生详情
21   -export const getStudent = async (id: number) => {
22   - return await request.get({ url: `/infra/student/get?id=` + id })
23   -}
24   -
25   -// 新增学生
26   -export const createStudent = async (data: StudentVO) => {
27   - return await request.post({ url: `/infra/student/create`, data })
28   -}
29   -
30   -// 修改学生
31   -export const updateStudent = async (data: StudentVO) => {
32   - return await request.put({ url: `/infra/student/update`, data })
33   -}
34   -
35   -// 删除学生
36   -export const deleteStudent = async (id: number) => {
37   - return await request.delete({ url: `/infra/student/delete?id=` + id })
38   -}
39   -
40   -// 导出学生 Excel
41   -export const exportStudent = async (params) => {
42   - return await request.download({ url: `/infra/student/export-excel`, params })
43   -}
44 1 \ No newline at end of file
  2 +import request from '@/config/axios'
  3 +
  4 +export interface StudentVO {
  5 + id: number
  6 + name: string
  7 + description: string
  8 + birthday: Date
  9 + sex: number
  10 + enabled: boolean
  11 + avatar: string
  12 + video: string
  13 + memo: string
  14 +}
  15 +
  16 +// 查询学生分页
  17 +export const getStudentPage = async (params) => {
  18 + return await request.get({ url: `/infra/student/page`, params })
  19 +}
  20 +
  21 +// 查询学生详情
  22 +export const getStudent = async (id: number) => {
  23 + return await request.get({ url: `/infra/student/get?id=` + id })
  24 +}
  25 +
  26 +// 新增学生
  27 +export const createStudent = async (data: StudentVO) => {
  28 + return await request.post({ url: `/infra/student/create`, data })
  29 +}
  30 +
  31 +// 修改学生
  32 +export const updateStudent = async (data: StudentVO) => {
  33 + return await request.put({ url: `/infra/student/update`, data })
  34 +}
  35 +
  36 +// 删除学生
  37 +export const deleteStudent = async (id: number) => {
  38 + return await request.delete({ url: `/infra/student/delete?id=` + id })
  39 +}
  40 +
  41 +// 导出学生 Excel
  42 +export const exportStudent = async (params) => {
  43 + return await request.download({ url: `/infra/student/export-excel`, params })
  44 +}
45 45 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/vue/StudentForm renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/vue/StudentForm
... ... @@ -78,7 +78,7 @@ const formData = ref({
78 78 enabled: undefined,
79 79 avatar: undefined,
80 80 video: undefined,
81   - memo: undefined
  81 + memo: undefined,
82 82 })
83 83 const formRules = reactive({
84 84 name: [{ required: true, message: '名字不能为空', trigger: 'blur' }],
... ... @@ -88,7 +88,7 @@ const formRules = reactive({
88 88 enabled: [{ required: true, message: '是否有效不能为空', trigger: 'blur' }],
89 89 avatar: [{ required: true, message: '头像不能为空', trigger: 'blur' }],
90 90 video: [{ required: true, message: '附件不能为空', trigger: 'blur' }],
91   - memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }]
  91 + memo: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
92 92 })
93 93 const formRef = ref() // 表单 Ref
94 94  
... ... @@ -145,7 +145,7 @@ const resetForm = () =&gt; {
145 145 enabled: undefined,
146 146 avatar: undefined,
147 147 video: undefined,
148   - memo: undefined
  148 + memo: undefined,
149 149 }
150 150 formRef.value?.resetFields()
151 151 }
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/vue/index renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/vue/index
... ... @@ -182,7 +182,7 @@ const queryParams = reactive({
182 182 birthday: [],
183 183 sex: undefined,
184 184 enabled: undefined,
185   - createTime: []
  185 + createTime: [],
186 186 })
187 187 const queryFormRef = ref() // 搜索的表单
188 188 const exportLoading = ref(false) // 导出的加载中
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_one/xml/InfraStudentMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_one/xml/InfraStudentMapper
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/assert.json renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/assert.json
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/java/ErrorCodeConstants_手动操作 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/java/ErrorCodeConstants_手动操作
1   -// TODO 待办:请将下面的错误码复制到 yudao-module-infra-api 模块的 ErrorCodeConstants 类中。注意,请给“TODO 补充编号”设置一个错误码编号!!!
2   -// ========== 分类 TODO 补充编号 ==========
3   -ErrorCode CATEGORY_NOT_EXISTS = new ErrorCode(TODO 补充编号, "分类不存在");
4   -ErrorCode CATEGORY_EXITS_CHILDREN = new ErrorCode(TODO 补充编号, "存在存在子分类,无法删除");
5   -ErrorCode CATEGORY_PARENT_NOT_EXITS = new ErrorCode(TODO 补充编号,"父级分类不存在");
6   -ErrorCode CATEGORY_PARENT_ERROR = new ErrorCode(TODO 补充编号, "不能设置自己为父分类");
7   -ErrorCode CATEGORY_NAME_DUPLICATE = new ErrorCode(TODO 补充编号, "已经存在该名字的分类");
8   -ErrorCode CATEGORY_PARENT_IS_CHILD = new ErrorCode(TODO 补充编号, "不能设置自己的子InfraCategory为父InfraCategory");
9 1 \ No newline at end of file
  2 +// TODO 待办:请将下面的错误码复制到 yudao-module-infra-api 模块的 ErrorCodeConstants 类中。注意,请给“TODO 补充编号”设置一个错误码编号!!!
  3 +// ========== 分类 TODO 补充编号 ==========
  4 +ErrorCode CATEGORY_NOT_EXISTS = new ErrorCode(TODO 补充编号, "分类不存在");
  5 +ErrorCode CATEGORY_EXITS_CHILDREN = new ErrorCode(TODO 补充编号, "存在存在子分类,无法删除");
  6 +ErrorCode CATEGORY_PARENT_NOT_EXITS = new ErrorCode(TODO 补充编号,"父级分类不存在");
  7 +ErrorCode CATEGORY_PARENT_ERROR = new ErrorCode(TODO 补充编号, "不能设置自己为父分类");
  8 +ErrorCode CATEGORY_NAME_DUPLICATE = new ErrorCode(TODO 补充编号, "已经存在该名字的分类");
  9 +ErrorCode CATEGORY_PARENT_IS_CHILD = new ErrorCode(TODO 补充编号, "不能设置自己的子InfraCategory为父InfraCategory");
10 10 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/java/InfraCategoryController renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/java/InfraCategoryController
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/java/InfraCategoryDO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/java/InfraCategoryDO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/java/InfraCategoryListReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/java/InfraCategoryListReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/java/InfraCategoryMapper 0 → 100644
  1 +package cn.iocoder.yudao.module.infra.dal.mysql.demo;
  2 +
  3 +import java.util.*;
  4 +
  5 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
  7 +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
  8 +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.InfraCategoryDO;
  9 +import org.apache.ibatis.annotations.Mapper;
  10 +import cn.iocoder.yudao.module.infra.controller.admin.demo.vo.*;
  11 +
  12 +/**
  13 + * 分类 Mapper
  14 + *
  15 + * @author 芋道源码
  16 + */
  17 +@Mapper
  18 +public interface InfraCategoryMapper extends BaseMapperX<InfraCategoryDO> {
  19 +
  20 + default List<InfraCategoryDO> selectList(InfraCategoryListReqVO reqVO) {
  21 + return selectList(new LambdaQueryWrapperX<InfraCategoryDO>()
  22 + .likeIfPresent(InfraCategoryDO::getName, reqVO.getName())
  23 + .orderByDesc(InfraCategoryDO::getId));
  24 + }
  25 +
  26 + default InfraCategoryDO selectByParentIdAndName(Long parentId, String name) {
  27 + return selectOne(InfraCategoryDO::getParentId, parentId, InfraCategoryDO::getName, name);
  28 + }
  29 +
  30 + default Long selectCountByParentId(Long parentId) {
  31 + return selectCount(InfraCategoryDO::getParentId, parentId);
  32 + }
  33 +
  34 +}
0 35 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/java/InfraCategoryRespVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/java/InfraCategoryRespVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/java/InfraCategorySaveReqVO renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/java/InfraCategorySaveReqVO
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/java/InfraCategoryService 0 → 100644
  1 +package cn.iocoder.yudao.module.infra.service.demo;
  2 +
  3 +import java.util.*;
  4 +import javax.validation.*;
  5 +import cn.iocoder.yudao.module.infra.controller.admin.demo.vo.*;
  6 +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.InfraCategoryDO;
  7 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
  8 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  9 +
  10 +/**
  11 + * 分类 Service 接口
  12 + *
  13 + * @author 芋道源码
  14 + */
  15 +public interface InfraCategoryService {
  16 +
  17 + /**
  18 + * 创建分类
  19 + *
  20 + * @param createReqVO 创建信息
  21 + * @return 编号
  22 + */
  23 + Long createCategory(@Valid InfraCategorySaveReqVO createReqVO);
  24 +
  25 + /**
  26 + * 更新分类
  27 + *
  28 + * @param updateReqVO 更新信息
  29 + */
  30 + void updateCategory(@Valid InfraCategorySaveReqVO updateReqVO);
  31 +
  32 + /**
  33 + * 删除分类
  34 + *
  35 + * @param id 编号
  36 + */
  37 + void deleteCategory(Long id);
  38 +
  39 + /**
  40 + * 获得分类
  41 + *
  42 + * @param id 编号
  43 + * @return 分类
  44 + */
  45 + InfraCategoryDO getCategory(Long id);
  46 +
  47 + /**
  48 + * 获得分类列表
  49 + *
  50 + * @param listReqVO 查询条件
  51 + * @return 分类列表
  52 + */
  53 + List<InfraCategoryDO> getCategoryList(InfraCategoryListReqVO listReqVO);
  54 +
  55 +}
0 56 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/java/InfraCategoryServiceImpl renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/java/InfraCategoryServiceImpl
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/java/InfraCategoryServiceImplTest renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/java/InfraCategoryServiceImplTest
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/sql/h2 renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/sql/h2
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/sql/sql 0 → 100644
  1 +-- 菜单 SQL
  2 +INSERT INTO system_menu(
  3 + name, permission, type, sort, parent_id,
  4 + path, icon, component, status, component_name
  5 +)
  6 +VALUES (
  7 + '分类管理', '', 2, 0, 888,
  8 + 'category', '', 'infra/demo/index', 0, 'InfraCategory'
  9 +);
  10 +
  11 +-- 按钮父菜单ID
  12 +-- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码
  13 +SELECT @parentId := LAST_INSERT_ID();
  14 +
  15 +-- 按钮 SQL
  16 +INSERT INTO system_menu(
  17 + name, permission, type, sort, parent_id,
  18 + path, icon, component, status
  19 +)
  20 +VALUES (
  21 + '分类查询', 'infra:category:query', 3, 1, @parentId,
  22 + '', '', '', 0
  23 +);
  24 +INSERT INTO system_menu(
  25 + name, permission, type, sort, parent_id,
  26 + path, icon, component, status
  27 +)
  28 +VALUES (
  29 + '分类创建', 'infra:category:create', 3, 2, @parentId,
  30 + '', '', '', 0
  31 +);
  32 +INSERT INTO system_menu(
  33 + name, permission, type, sort, parent_id,
  34 + path, icon, component, status
  35 +)
  36 +VALUES (
  37 + '分类更新', 'infra:category:update', 3, 3, @parentId,
  38 + '', '', '', 0
  39 +);
  40 +INSERT INTO system_menu(
  41 + name, permission, type, sort, parent_id,
  42 + path, icon, component, status
  43 +)
  44 +VALUES (
  45 + '分类删除', 'infra:category:delete', 3, 4, @parentId,
  46 + '', '', '', 0
  47 +);
  48 +INSERT INTO system_menu(
  49 + name, permission, type, sort, parent_id,
  50 + path, icon, component, status
  51 +)
  52 +VALUES (
  53 + '分类导出', 'infra:category:export', 3, 5, @parentId,
  54 + '', '', '', 0
  55 +);
0 56 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/ts/index 0 → 100644
  1 +import request from '@/config/axios'
  2 +
  3 +export interface CategoryVO {
  4 + id: number
  5 + name: string
  6 + parentId: number
  7 +}
  8 +
  9 +// 查询分类列表
  10 +export const getCategoryList = async (params) => {
  11 + return await request.get({ url: `/infra/category/list`, params })
  12 +}
  13 +
  14 +// 查询分类详情
  15 +export const getCategory = async (id: number) => {
  16 + return await request.get({ url: `/infra/category/get?id=` + id })
  17 +}
  18 +
  19 +// 新增分类
  20 +export const createCategory = async (data: CategoryVO) => {
  21 + return await request.post({ url: `/infra/category/create`, data })
  22 +}
  23 +
  24 +// 修改分类
  25 +export const updateCategory = async (data: CategoryVO) => {
  26 + return await request.put({ url: `/infra/category/update`, data })
  27 +}
  28 +
  29 +// 删除分类
  30 +export const deleteCategory = async (id: number) => {
  31 + return await request.delete({ url: `/infra/category/delete?id=` + id })
  32 +}
  33 +
  34 +// 导出分类 Excel
  35 +export const exportCategory = async (params) => {
  36 + return await request.download({ url: `/infra/category/export-excel`, params })
  37 +}
0 38 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/vue/CategoryForm 0 → 100644
  1 +<template>
  2 + <Dialog :title="dialogTitle" v-model="dialogVisible">
  3 + <el-form
  4 + ref="formRef"
  5 + :model="formData"
  6 + :rules="formRules"
  7 + label-width="100px"
  8 + v-loading="formLoading"
  9 + >
  10 + <el-form-item label="名字" prop="name">
  11 + <el-input v-model="formData.name" placeholder="请输入名字" />
  12 + </el-form-item>
  13 + <el-form-item label="父编号" prop="parentId">
  14 + <el-tree-select
  15 + v-model="formData.parentId"
  16 + :data="categoryTree"
  17 + :props="defaultProps"
  18 + check-strictly
  19 + default-expand-all
  20 + placeholder="请选择父编号"
  21 + />
  22 + </el-form-item>
  23 + </el-form>
  24 + <template #footer>
  25 + <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
  26 + <el-button @click="dialogVisible = false">取 消</el-button>
  27 + </template>
  28 + </Dialog>
  29 +</template>
  30 +<script setup lang="ts">
  31 +import * as CategoryApi from '@/api/infra/demo'
  32 +import { defaultProps, handleTree } from '@/utils/tree'
  33 +
  34 +const { t } = useI18n() // 国际化
  35 +const message = useMessage() // 消息弹窗
  36 +
  37 +const dialogVisible = ref(false) // 弹窗的是否展示
  38 +const dialogTitle = ref('') // 弹窗的标题
  39 +const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
  40 +const formType = ref('') // 表单的类型:create - 新增;update - 修改
  41 +const formData = ref({
  42 + id: undefined,
  43 + name: undefined,
  44 + parentId: undefined,
  45 +})
  46 +const formRules = reactive({
  47 + name: [{ required: true, message: '名字不能为空', trigger: 'blur' }],
  48 + parentId: [{ required: true, message: '父编号不能为空', trigger: 'blur' }],
  49 +})
  50 +const formRef = ref() // 表单 Ref
  51 +const categoryTree = ref() // 树形结构
  52 +
  53 +/** 打开弹窗 */
  54 +const open = async (type: string, id?: number) => {
  55 + dialogVisible.value = true
  56 + dialogTitle.value = t('action.' + type)
  57 + formType.value = type
  58 + resetForm()
  59 + // 修改时,设置数据
  60 + if (id) {
  61 + formLoading.value = true
  62 + try {
  63 + formData.value = await CategoryApi.getCategory(id)
  64 + } finally {
  65 + formLoading.value = false
  66 + }
  67 + }
  68 + await getCategoryTree()
  69 +}
  70 +defineExpose({ open }) // 提供 open 方法,用于打开弹窗
  71 +
  72 +/** 提交表单 */
  73 +const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
  74 +const submitForm = async () => {
  75 + // 校验表单
  76 + await formRef.value.validate()
  77 + // 提交请求
  78 + formLoading.value = true
  79 + try {
  80 + const data = formData.value as unknown as CategoryApi.CategoryVO
  81 + if (formType.value === 'create') {
  82 + await CategoryApi.createCategory(data)
  83 + message.success(t('common.createSuccess'))
  84 + } else {
  85 + await CategoryApi.updateCategory(data)
  86 + message.success(t('common.updateSuccess'))
  87 + }
  88 + dialogVisible.value = false
  89 + // 发送操作成功的事件
  90 + emit('success')
  91 + } finally {
  92 + formLoading.value = false
  93 + }
  94 +}
  95 +
  96 +/** 重置表单 */
  97 +const resetForm = () => {
  98 + formData.value = {
  99 + id: undefined,
  100 + name: undefined,
  101 + parentId: undefined,
  102 + }
  103 + formRef.value?.resetFields()
  104 +}
  105 +
  106 +/** 获得分类树 */
  107 +const getCategoryTree = async () => {
  108 + categoryTree.value = []
  109 + const data = await CategoryApi.getCategoryList()
  110 + const root: Tree = { id: 0, name: '顶级分类', children: [] }
  111 + root.children = handleTree(data, 'id', 'parentId')
  112 + categoryTree.value.push(root)
  113 +}
  114 +</script>
0 115 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/vue/index 0 → 100644
  1 +<template>
  2 + <ContentWrap>
  3 + <!-- 搜索工作栏 -->
  4 + <el-form
  5 + class="-mb-15px"
  6 + :model="queryParams"
  7 + ref="queryFormRef"
  8 + :inline="true"
  9 + label-width="68px"
  10 + >
  11 + <el-form-item label="名字" prop="name">
  12 + <el-input
  13 + v-model="queryParams.name"
  14 + placeholder="请输入名字"
  15 + clearable
  16 + @keyup.enter="handleQuery"
  17 + class="!w-240px"
  18 + />
  19 + </el-form-item>
  20 + <el-form-item>
  21 + <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
  22 + <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
  23 + <el-button
  24 + type="primary"
  25 + plain
  26 + @click="openForm('create')"
  27 + v-hasPermi="['infra:category:create']"
  28 + >
  29 + <Icon icon="ep:plus" class="mr-5px" /> 新增
  30 + </el-button>
  31 + <el-button
  32 + type="success"
  33 + plain
  34 + @click="handleExport"
  35 + :loading="exportLoading"
  36 + v-hasPermi="['infra:category:export']"
  37 + >
  38 + <Icon icon="ep:download" class="mr-5px" /> 导出
  39 + </el-button>
  40 + <el-button type="danger" plain @click="toggleExpandAll">
  41 + <Icon icon="ep:sort" class="mr-5px" /> 展开/折叠
  42 + </el-button>
  43 + </el-form-item>
  44 + </el-form>
  45 + </ContentWrap>
  46 +
  47 + <!-- 列表 -->
  48 + <ContentWrap>
  49 + <el-table
  50 + v-loading="loading"
  51 + :data="list"
  52 + :stripe="true"
  53 + :show-overflow-tooltip="true"
  54 + row-key="id"
  55 + :default-expand-all="isExpandAll"
  56 + v-if="refreshTable"
  57 + >
  58 + <el-table-column label="编号" align="center" prop="id" />
  59 + <el-table-column label="名字" align="center" prop="name" />
  60 + <el-table-column label="父编号" align="center" prop="parentId" />
  61 + <el-table-column label="操作" align="center">
  62 + <template #default="scope">
  63 + <el-button
  64 + link
  65 + type="primary"
  66 + @click="openForm('update', scope.row.id)"
  67 + v-hasPermi="['infra:category:update']"
  68 + >
  69 + 编辑
  70 + </el-button>
  71 + <el-button
  72 + link
  73 + type="danger"
  74 + @click="handleDelete(scope.row.id)"
  75 + v-hasPermi="['infra:category:delete']"
  76 + >
  77 + 删除
  78 + </el-button>
  79 + </template>
  80 + </el-table-column>
  81 + </el-table>
  82 + <!-- 分页 -->
  83 + <Pagination
  84 + :total="total"
  85 + v-model:page="queryParams.pageNo"
  86 + v-model:limit="queryParams.pageSize"
  87 + @pagination="getList"
  88 + />
  89 + </ContentWrap>
  90 +
  91 + <!-- 表单弹窗:添加/修改 -->
  92 + <CategoryForm ref="formRef" @success="getList" />
  93 +</template>
  94 +
  95 +<script setup lang="ts">
  96 +import { handleTree } from '@/utils/tree'
  97 +import download from '@/utils/download'
  98 +import * as CategoryApi from '@/api/infra/demo'
  99 +import CategoryForm from './CategoryForm.vue'
  100 +
  101 +defineOptions({ name: 'InfraCategory' })
  102 +
  103 +const message = useMessage() // 消息弹窗
  104 +const { t } = useI18n() // 国际化
  105 +
  106 +const loading = ref(true) // 列表的加载中
  107 +const list = ref([]) // 列表的数据
  108 +const queryParams = reactive({
  109 + name: undefined,
  110 +})
  111 +const queryFormRef = ref() // 搜索的表单
  112 +const exportLoading = ref(false) // 导出的加载中
  113 +
  114 +/** 查询列表 */
  115 +const getList = async () => {
  116 + loading.value = true
  117 + try {
  118 + const data = await CategoryApi.getCategoryList(queryParams)
  119 + list.value = handleTree(data, 'id', 'parentId')
  120 + } finally {
  121 + loading.value = false
  122 + }
  123 +}
  124 +
  125 +/** 搜索按钮操作 */
  126 +const handleQuery = () => {
  127 + queryParams.pageNo = 1
  128 + getList()
  129 +}
  130 +
  131 +/** 重置按钮操作 */
  132 +const resetQuery = () => {
  133 + queryFormRef.value.resetFields()
  134 + handleQuery()
  135 +}
  136 +
  137 +/** 添加/修改操作 */
  138 +const formRef = ref()
  139 +const openForm = (type: string, id?: number) => {
  140 + formRef.value.open(type, id)
  141 +}
  142 +
  143 +/** 删除按钮操作 */
  144 +const handleDelete = async (id: number) => {
  145 + try {
  146 + // 删除的二次确认
  147 + await message.delConfirm()
  148 + // 发起删除
  149 + await CategoryApi.deleteCategory(id)
  150 + message.success(t('common.delSuccess'))
  151 + // 刷新列表
  152 + await getList()
  153 + } catch {}
  154 +}
  155 +
  156 +/** 导出按钮操作 */
  157 +const handleExport = async () => {
  158 + try {
  159 + // 导出的二次确认
  160 + await message.exportConfirm()
  161 + // 发起导出
  162 + exportLoading.value = true
  163 + const data = await CategoryApi.exportCategory(queryParams)
  164 + download.excel(data, '分类.xls')
  165 + } catch {
  166 + } finally {
  167 + exportLoading.value = false
  168 + }
  169 +}
  170 +
  171 +/** 展开/折叠操作 */
  172 +const isExpandAll = ref(true) // 是否展开,默认全部展开
  173 +const refreshTable = ref(true) // 重新渲染表格状态
  174 +const toggleExpandAll = async () => {
  175 + refreshTable.value = false
  176 + isExpandAll.value = !isExpandAll.value
  177 + await nextTick()
  178 + refreshTable.value = true
  179 +}
  180 +
  181 +/** 初始化 **/
  182 +onMounted(() => {
  183 + getList()
  184 +})
  185 +</script>
0 186 \ No newline at end of file
... ...
yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/vue3_tree/xml/InfraCategoryMapper renamed to yudao-module-infra/yudao-module-infra-biz/src/test/resources/codegen/windows10/vue3_tree/xml/InfraCategoryMapper