From ed920f3fd3df8c5d11dd5880cffb99a528de4559 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Sat, 3 May 2025 13:32:53 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E3=80=91INFRA=EF=BC=9A=E4=BB=A3=E7=A0=81=E7=94=9F?= =?UTF-8?q?=E6=88=90=20vben5=20antd=20=E6=A8=A1=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/codegen/inner/CodegenEngine.java | 2 - .../vue3_vben5_antd/general/api/api.ts.vm | 5 +- .../vue3_vben5_antd/general/views/data.ts.vm | 349 ------------------ .../vue3_vben5_antd/general/views/form.vue.vm | 18 +- .../general/views/index.vue.vm | 82 ++-- .../vue3_vben5_antd/schema/api/api.ts.vm | 5 +- .../vue3_vben5_antd/schema/views/form.vue.vm | 14 - 7 files changed, 72 insertions(+), 403 deletions(-) delete mode 100644 yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/data.ts.vm diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java index 89737fe937..88f74e4918 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java @@ -164,8 +164,6 @@ public class CodegenEngine { .put(CodegenFrontTypeEnum.VUE3_VBEN5_ANTD_SCHEMA.getType(), vue3Vben5AntdSchemaTemplatePath("views/modules/list_sub_erp.vue"), // 特殊:主子表专属逻辑 vue3FilePath("views/${table.moduleName}/${table.businessName}/modules/${subSimpleClassName_strikeCase}-list.vue")) // VUE3_VBEN5_ANTD - .put(CodegenFrontTypeEnum.VUE3_VBEN5_ANTD.getType(), vue3Vben5AntdGeneralTemplatePath("views/data.ts"), - vue3FilePath("views/${table.moduleName}/${table.businessName}/data.ts")) .put(CodegenFrontTypeEnum.VUE3_VBEN5_ANTD.getType(), vue3Vben5AntdGeneralTemplatePath("views/index.vue"), vue3FilePath("views/${table.moduleName}/${table.businessName}/index.vue")) .put(CodegenFrontTypeEnum.VUE3_VBEN5_ANTD.getType(), vue3Vben5AntdGeneralTemplatePath("views/form.vue"), diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/api/api.ts.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/api/api.ts.vm index 18dd72bd13..d3342f1fc8 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/api/api.ts.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/api/api.ts.vm @@ -1,4 +1,5 @@ import type { PageParam, PageResult } from '@vben/request'; +import type { Dayjs } from 'dayjs'; import { requestClient } from '#/api/request'; #set ($baseURL = "/${table.moduleName}/${simpleClassName_strikeCase}") @@ -16,7 +17,7 @@ export namespace ${simpleClassName}Api { #if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "short" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal") ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: number; // ${column.columnComment} #elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdate" || ${column.javaType.toLowerCase()} == "localdatetime") - ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: Date; // ${column.columnComment} + ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: string | Dayjs; // ${column.columnComment} #else ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: ${column.javaType.toLowerCase()}; // ${column.columnComment} #end @@ -32,7 +33,7 @@ export namespace ${simpleClassName}Api { #if(${column.javaType.toLowerCase()} == "long" || ${column.javaType.toLowerCase()} == "integer" || ${column.javaType.toLowerCase()} == "short" || ${column.javaType.toLowerCase()} == "double" || ${column.javaType.toLowerCase()} == "bigdecimal") ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: number; // ${column.columnComment} #elseif(${column.javaType.toLowerCase()} == "date" || ${column.javaType.toLowerCase()} == "localdate" || ${column.javaType.toLowerCase()} == "localdatetime") - ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: Date; // ${column.columnComment} + ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: string | Dayjs; // ${column.columnComment} #else ${column.javaField}#if($column.updateOperation && !$column.primaryKey && !$column.nullable)?#end: ${column.javaType.toLowerCase()}; // ${column.columnComment} #end diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/data.ts.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/data.ts.vm deleted file mode 100644 index 9f356f6848..0000000000 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/data.ts.vm +++ /dev/null @@ -1,349 +0,0 @@ -import type { VxeTableGridOptions } from '@vben/plugins/vxe-table'; -import type { VbenFormSchema } from '#/adapter/form'; -import type { OnActionClickFn } from '#/adapter/vxe-table'; -import type { ${simpleClassName}Api } from '#/api/${table.moduleName}/${simpleClassName_strikeCase}'; - -import { z } from '#/adapter/form'; -#if(${table.templateType} == 2)## 树表需要导入这些 -import { get${simpleClassName}List } from '#/api/${table.moduleName}/${simpleClassName_strikeCase}'; -import { handleTree } from '#/utils/tree'; -#end -import { DICT_TYPE, getDictOptions } from '#/utils/dict'; -import { getRangePickerDefaultProps } from '#/utils/date'; -import { useAccess } from '@vben/access'; - -const { hasAccessByCodes } = useAccess(); - -/** 列表的搜索表单 */ -export function useGridFormSchema(): VbenFormSchema[] { - return [ -#foreach($column in $columns) -#if ($column.listOperation) - #set ($dictType = $column.dictType) - #set ($javaType = $column.javaType) - #set ($javaField = $column.javaField) - #set ($comment = $column.columnComment) - #if ($javaType == "Integer" || $javaType == "Long" || $javaType == "Byte" || $javaType == "Short") - #set ($dictMethod = "number") - #elseif ($javaType == "String") - #set ($dictMethod = "string") - #elseif ($javaType == "Boolean") - #set ($dictMethod = "boolean") - #end - { - fieldName: '${javaField}', - label: '${comment}', - #if ($column.htmlType == "input" || $column.htmlType == "textarea" || $column.htmlType == "editor") - component: 'Input', - componentProps: { - allowClear: true, - placeholder: '请输入${comment}', - }, - #elseif ($column.htmlType == "select" || $column.htmlType == "radio") - component: 'Select', - componentProps: { - allowClear: true, - #if ("" != $dictType)## 设置了 dictType 数据字典的情况 - options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), '$dictMethod'), - #else## 未设置 dictType 数据字典的情况 - options: [], - #end - placeholder: '请选择${comment}', - }, - #elseif($column.htmlType == "datetime") - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - #end - }, -#end -#end - ]; -} - -/** 列表的字段 */ -export function useGridColumns( - onActionClick?: OnActionClickFn<${simpleClassName}Api.${simpleClassName}>, -): VxeTableGridOptions<${simpleClassName}Api.${simpleClassName}>['columns'] { - return [ -#if ($table.templateType == 12) ## 内嵌情况 - { type: 'expand', width: 80, slots: { content: 'expand_content' } }, -#end -#foreach($column in $columns) -#if ($column.listOperationResult) - #set ($dictType = $column.dictType) - #set ($javaField = $column.javaField) - #set ($comment = $column.columnComment) - { - field: '${javaField}', - title: '${comment}', - minWidth: 120, - #if ($column.javaType == "LocalDateTime")## 时间类型 - formatter: 'formatDateTime', - #elseif("" != $dictType)## 数据字典 - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.$dictType.toUpperCase() }, - }, - #end - #if (${table.templateType} == 2 && $column.id == $treeNameColumn.id)## 树表特有:标记树节点列 - treeNode: true, - #end - }, -#end -#end - { - field: 'operation', - title: '操作', - minWidth: 200, - align: 'center', - fixed: 'right', - headerAlign: 'center', - showOverflow: false, - cellRender: { - attrs: { - nameField: '${columns[0].javaField}', - nameTitle: '${table.classComment}', - onClick: onActionClick, - }, - name: 'CellOperation', - options: [ -#if (${table.templateType} == 2)## 树表特有操作 - { - code: 'append', - text: '新增下级', - show: hasAccessByCodes(['${table.moduleName}:${simpleClassName_strikeCase}:create']), - }, -#end - { - code: 'edit', - show: hasAccessByCodes(['${table.moduleName}:${simpleClassName_strikeCase}:update']), - }, - { - code: 'delete', - show: hasAccessByCodes(['${table.moduleName}:${simpleClassName_strikeCase}:delete']), -#if (${table.templateType} == 2)## 树表禁止删除带有子节点的数据 - disabled: (row: ${simpleClassName}Api.${simpleClassName}) => { - return !!(row.children && row.children.length > 0); - }, -#end - }, - ], - }, - }, - ]; -} - -## 标准模式和内嵌模式时,主子关系一对一则生成表单schema,一对多则生成列表schema(内嵌模式时表单schema也要生成)。erp 模式时都生成 -## 特殊:主子表专属逻辑 -#foreach ($subTable in $subTables) - #set ($index = $foreach.count - 1) - #set ($subColumns = $subColumnsList.get($index))##当前字段数组 - #set ($subSimpleClassName = $subSimpleClassNames.get($index)) - #set ($subJoinColumn = $subJoinColumns.get($index))##当前 join 字段 - #set ($subSimpleClassName_strikeCase = $subSimpleClassName_strikeCases.get($index)) -// ==================== 子表($subTable.classComment) ==================== - -#if ($table.templateType == 11) ## erp 情况 -/** 列表的搜索表单 */ -export function use${subSimpleClassName}GridFormSchema(): VbenFormSchema[] { - return [ - #foreach($column in $subColumns) - #if ($column.listOperation) - #set ($dictType = $column.dictType) - #set ($javaType = $column.javaType) - #set ($javaField = $column.javaField) - #set ($comment = $column.columnComment) - #if ($javaType == "Integer" || $javaType == "Long" || $javaType == "Byte" || $javaType == "Short") - #set ($dictMethod = "number") - #elseif ($javaType == "String") - #set ($dictMethod = "string") - #elseif ($javaType == "Boolean") - #set ($dictMethod = "boolean") - #end - { - fieldName: '${javaField}', - label: '${comment}', - #if ($column.htmlType == "input" || $column.htmlType == "textarea" || $column.htmlType == "editor") - component: 'Input', - componentProps: { - allowClear: true, - placeholder: '请输入${comment}', - }, - #elseif ($column.htmlType == "select" || $column.htmlType == "radio") - component: 'Select', - componentProps: { - allowClear: true, - #if ("" != $dictType)## 设置了 dictType 数据字典的情况 - options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), '$dictMethod'), - #else## 未设置 dictType 数据字典的情况 - options: [], - #end - placeholder: '请选择${comment}', - }, - #elseif($column.htmlType == "datetime") - component: 'RangePicker', - componentProps: { - ...getRangePickerDefaultProps(), - allowClear: true, - }, - #end - }, - #end - #end - ]; -} - -/** 列表的字段 */ -export function use${subSimpleClassName}GridColumns( - onActionClick?: OnActionClickFn<${simpleClassName}Api.${subSimpleClassName}>, -): VxeTableGridOptions<${simpleClassName}Api.${subSimpleClassName}>['columns'] { - return [ - #foreach($column in $subColumns) - #if ($column.listOperationResult) - #set ($dictType = $column.dictType) - #set ($javaField = $column.javaField) - #set ($comment = $column.columnComment) - { - field: '${javaField}', - title: '${comment}', - minWidth: 120, - #if ($column.javaType == "LocalDateTime")## 时间类型 - formatter: 'formatDateTime', - #elseif("" != $dictType)## 数据字典 - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.$dictType.toUpperCase() }, - }, - #end - }, - #end - #end - { - field: 'operation', - title: '操作', - minWidth: 200, - align: 'center', - fixed: 'right', - headerAlign: 'center', - showOverflow: false, - cellRender: { - attrs: { - nameField: '${columns[0].javaField}', - nameTitle: '${subTable.classComment}', - onClick: onActionClick, - }, - name: 'CellOperation', - options: [ - { - code: 'edit', - show: hasAccessByCodes(['${table.moduleName}:${simpleClassName_strikeCase}:update']), - }, - { - code: 'delete', - show: hasAccessByCodes(['${table.moduleName}:${simpleClassName_strikeCase}:delete']), - }, - ], - }, - }, - ]; -} - -#else - #if ($subTable.subJoinMany) ## 一对多 - /** 新增/修改列表的字段 */ - export function use${subSimpleClassName}GridEditColumns( - onActionClick?: OnActionClickFn<${simpleClassName}Api.${subSimpleClassName}>, - ): VxeTableGridOptions<${simpleClassName}Api.${subSimpleClassName}>['columns'] { - return [ - #foreach($column in $subColumns) - #if ($column.createOperation || $column.updateOperation) - #if (!$column.primaryKey && $column.listOperationResult && $column.id != $subJoinColumn.id) ## 特殊:忽略主子表的 join 字段,不用填写 - #set ($dictType = $column.dictType) - #set ($javaField = $column.javaField) - #set ($comment = $column.columnComment) - #if ($javaType == "Integer" || $javaType == "Long" || $javaType == "Byte" || $javaType == "Short") - #set ($dictMethod = "number") - #elseif ($javaType == "String") - #set ($dictMethod = "string") - #elseif ($javaType == "Boolean") - #set ($dictMethod = "boolean") - #end - { - field: '${javaField}', - title: '${comment}', - minWidth: 120, - slots: { default: '${javaField}' }, - #if ($column.htmlType == "select" || $column.htmlType == "checkbox" || $column.htmlType == "radio") - #if ("" != $dictType)## 有数据字典 - params: { - options: getDictOptions(DICT_TYPE.$dictType.toUpperCase(), '$dictMethod'), - }, - #else - params: { - options: [], - }, - #end - #end - }, - #end - #end - #end - { - field: 'operation', - title: '操作', - minWidth: 60, - align: 'center', - fixed: 'right', - headerAlign: 'center', - showOverflow: false, - cellRender: { - attrs: { - nameField: '${columns[0].javaField}', - nameTitle: '${table.classComment}', - onClick: onActionClick, - }, - name: 'CellOperation', - options: [ - { - code: 'delete', - show: hasAccessByCodes(['${table.moduleName}:${simpleClassName_strikeCase}:delete']), - }, - ], - }, - }, - ]; - } - #end - #if ($table.templateType == 12) ## 内嵌情况 - /** 列表的字段 */ - export function use${subSimpleClassName}GridColumns(): VxeTableGridOptions<${simpleClassName}Api.${subSimpleClassName}>['columns'] { - return [ - #foreach($column in $subColumns) - #if ($column.listOperationResult) - #set ($dictType = $column.dictType) - #set ($javaField = $column.javaField) - #set ($comment = $column.columnComment) - { - field: '${javaField}', - title: '${comment}', - minWidth: 120, - #if ($column.javaType == "LocalDateTime")## 时间类型 - formatter: 'formatDateTime', - #elseif("" != $dictType)## 数据字典 - cellRender: { - name: 'CellDict', - props: { type: DICT_TYPE.$dictType.toUpperCase() }, - }, - #end - }, - #end - #end - ]; - } - - #end -#end -#end \ No newline at end of file diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/form.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/form.vue.vm index b6ce3433a2..eeaf7806a7 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/form.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/form.vue.vm @@ -25,9 +25,8 @@ import { $t } from '#/locales'; import { get${simpleClassName}, create${simpleClassName}, update${simpleClassName} } from '#/api/${table.moduleName}/${simpleClassName_strikeCase}'; const emit = defineEmits(['success']); + const formRef = ref(); -const labelCol = { span: 5 }; -const wrapperCol = { span: 13 }; const formData = ref>({ #foreach ($column in $columns) #if ($column.createOperation || $column.updateOperation) @@ -156,7 +155,6 @@ const [Modal, modalApi] = useVbenModal({ resetForm() return; } - // 加载数据 let data = modalApi.getData<${simpleClassName}Api.${simpleClassName}>(); if (!data) { @@ -185,8 +183,8 @@ const [Modal, modalApi] = useVbenModal({ ref="formRef" :model="formData" :rules="rules" - :label-col="labelCol" - :wrapper-col="wrapperCol" + :label-col="{ span: 5 }" + :wrapper-col="{ span: 18 }" > #foreach($column in $columns) #if ($column.createOperation || $column.updateOperation) @@ -239,9 +237,10 @@ const [Modal, modalApi] = useVbenModal({ + > + {{ dict.label }} + #else##没数据字典 #end @@ -254,9 +253,10 @@ const [Modal, modalApi] = useVbenModal({ + > + {{ dict.label }} + #else##没数据字典 #end diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/index.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/index.vue.vm index aaaad6b1d8..a14c6ba2ff 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/index.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/index.vue.vm @@ -1,8 +1,9 @@ - + ## 特殊:主子表专属逻辑 #if ( $table.templateType == 12 && $subTables && $subTables.size() > 0 ) @@ -330,6 +365,8 @@ onMounted(async () => { + #elseif ($table.templateType == 2 && $javaField == $treeNameColumn.javaField) + #else #end @@ -337,6 +374,16 @@ onMounted(async () => { #end +#if ( $table.templateType != 2 )
{ @change="getList" />
+#end #if ($table.templateType == 11) ## erp情况 From 57138d7995379d5dd0ad371d4b29e0fa1f996fad Mon Sep 17 00:00:00 2001 From: puhui999 Date: Sat, 3 May 2025 16:39:55 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E3=80=90=E5=8A=9F=E8=83=BD=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E3=80=91INFRA=EF=BC=9A=E4=BB=A3=E7=A0=81=E7=94=9F?= =?UTF-8?q?=E6=88=90=20vben5=20antd=20=E4=B8=BB=E5=AD=90=E8=A1=A8=20normal?= =?UTF-8?q?=20=E6=A8=A1=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../vue3_vben5_antd/general/views/form.vue.vm | 11 +- .../views/modules/form_sub_normal.vue.vm | 353 ++++++++++++------ .../views/modules/form_sub_normal.vue.vm | 11 +- 3 files changed, 256 insertions(+), 119 deletions(-) diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/form.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/form.vue.vm index e4d5b506ca..187f66c144 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/form.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/form.vue.vm @@ -112,10 +112,11 @@ const [Modal, modalApi] = useVbenModal({ #if ($subTable.subJoinMany) ## 一对多 ## TODO 列表值校验? #else - const ${subClassNameVar}Valid = await ${subClassNameVar}FormRef.value?.validate(); - if (!${subClassNameVar}Valid) { - subTabsName.value = '${subClassNameVar}'; - return; + try { + await ${subClassNameVar}FormRef.value?.validate() + } catch (e) { + subTabsName.value = '${subClassNameVar}' + return } #end #end @@ -134,7 +135,7 @@ const [Modal, modalApi] = useVbenModal({ #if ($subTable.subJoinMany) data.${subClassNameVar}s = ${subClassNameVar}FormRef.value?.getData(); #else - data.${subClassNameVar} = await ${subClassNameVar}FormRef.value?.getValues(); + data.${subClassNameVar} = ${subClassNameVar}FormRef.value?.getValues(); #end #end #end diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/modules/form_sub_normal.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/modules/form_sub_normal.vue.vm index 072fd8c3e7..c838f95320 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/modules/form_sub_normal.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/modules/form_sub_normal.vue.vm @@ -7,19 +7,19 @@ \ No newline at end of file diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/modules/list_sub_inner.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/modules/list_sub_inner.vue.vm index 2d8aa202d7..d46037b0aa 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/modules/list_sub_inner.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/modules/list_sub_inner.vue.vm @@ -1,4 +1,4 @@ ## 子表的 erp 和 inner 使用相似的 list 列表,差异主要两点: ## 1)inner 使用 list 不分页,erp 使用 page 分页 ## 2)erp 支持单个子表的新增、修改、删除,inner 不支持 -#parse("codegen/vue3_vben5_antd/schema/views/modules/list_sub_erp.vue.vm") \ No newline at end of file +#parse("codegen/vue3_vben5_antd/general/views/modules/list_sub_erp.vue.vm") \ No newline at end of file From c6582b2a61f4ecc27c843a165927cfe74093d3e5 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Sat, 3 May 2025 18:24:12 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E3=80=90=E5=8A=9F=E8=83=BD=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E3=80=91INFRA=EF=BC=9A=E4=BB=A3=E7=A0=81=E7=94=9F?= =?UTF-8?q?=E6=88=90=20vben5=20antd=20=E4=B8=BB=E5=AD=90=E8=A1=A8=20erp=20?= =?UTF-8?q?=E6=A8=A1=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../general/views/index.vue.vm | 13 +- .../general/views/modules/form_sub_erp.vue.vm | 169 +++++++++++++++--- .../general/views/modules/list_sub_erp.vue.vm | 9 +- 3 files changed, 162 insertions(+), 29 deletions(-) diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/index.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/index.vue.vm index 334589e638..c7f4822686 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/index.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/index.vue.vm @@ -38,6 +38,9 @@ import { downloadByData } from '#/utils/download'; const subTabsName = ref('$subClassNameVars.get(0)') #if ($table.templateType == 11) const select${simpleClassName} = ref<${simpleClassName}Api.${simpleClassName}>(); +async function onCellClick({ row }: { row: ${simpleClassName}Api.${simpleClassName} }) { + select${simpleClassName}.value = row +} #end #end @@ -323,7 +326,15 @@ onMounted(async () => { expandAll: true, reserve: true, }" - #end + #end +#if ($table.templateType == 11) ## erp情况 + @cell-click="onCellClick" + :row-config="{ + keyField: 'id', + isHover: true, + isCurrent: true, + }" +#end show-overflow :loading="loading" > diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/modules/form_sub_erp.vue.vm b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/modules/form_sub_erp.vue.vm index e114b7daea..77b9d11dd2 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/modules/form_sub_erp.vue.vm +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/resources/codegen/vue3_vben5_antd/general/views/modules/form_sub_erp.vue.vm @@ -4,49 +4,54 @@ #set ($subSimpleClassName = $subSimpleClassNames.get($subIndex))