From 56ea74d3650103ce20ac22be74ba6ef847e62bb6 Mon Sep 17 00:00:00 2001
From: suguangxu <274928232@qq.com>
Date: Thu, 24 Apr 2025 11:58:04 +0800
Subject: [PATCH 1/2] =?UTF-8?q?1.=E6=95=B0=E6=8D=AE=E4=BC=98=E5=85=88?=
=?UTF-8?q?=E6=A8=A1=E6=9D=BF=EF=BC=9A=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?=
=?UTF-8?q?=E5=99=A8=E5=A2=9E=E5=8A=A0=E6=89=93=E5=8C=85=E4=B8=8B=E8=BD=BD?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=E3=80=82=202.=E8=A1=A8=E5=8D=95=E8=AE=BE?=
=?UTF-8?q?=E8=AE=A1=EF=BC=9A=E5=8E=86=E5=8F=B2=E7=89=88=E6=9C=AC=E5=88=97?=
=?UTF-8?q?=E8=A1=A8=E4=B8=AD=E5=A2=9E=E5=8A=A0=E7=89=88=E6=9C=AC=E5=8F=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/system/generator/index.ts | 21 +++++++++++
src/api/system/generator/model/index.ts | 1 +
.../form/design/components/HistoryModal.vue | 13 ++++---
.../dev/components/DataFirstModal.vue | 35 ++++++++++++++++---
4 files changed, 61 insertions(+), 9 deletions(-)
diff --git a/src/api/system/generator/index.ts b/src/api/system/generator/index.ts
index 65b7dc7..e279ed2 100644
--- a/src/api/system/generator/index.ts
+++ b/src/api/system/generator/index.ts
@@ -22,6 +22,7 @@ enum Api {
App = '/system/generator/generator-app-code',
Master = '/system/databaselink/master-info',
Batch = '/system/generator/generator-code/batch',
+ DownloadCodes='/system/generator/downloadCodes',
}
/**
@@ -251,3 +252,23 @@ export async function batchGeneratorCode(data: GeneratorModel, mode: ErrorMessag
},
);
}
+
+
+/**
+ * @description: 根据uuid(目录名称)下载代码
+ */
+export async function downloadCodes(
+ params?: object,
+ mode: ErrorMessageMode = 'modal'
+) {
+ return defHttp.download(
+ {
+ url: Api.DownloadCodes+"/"+params.uuid,
+ method: 'GET',
+ responseType: 'blob',
+ },
+ {
+ errorMessageMode: mode,
+ },
+ );
+}
diff --git a/src/api/system/generator/model/index.ts b/src/api/system/generator/model/index.ts
index ce82158..68d4132 100644
--- a/src/api/system/generator/model/index.ts
+++ b/src/api/system/generator/model/index.ts
@@ -4,6 +4,7 @@ import { TableStructureConfig } from '/@/model/generator/tableStructureConfig';
export interface GeneratorModel extends GeneratorConfig {
frontCode: FrontCode;
id?: string;
+ actionType?: string;
}
export interface GeneratorAppModel extends FrontCode {
diff --git a/src/views/form/design/components/HistoryModal.vue b/src/views/form/design/components/HistoryModal.vue
index 863a84d..6d44e42 100644
--- a/src/views/form/design/components/HistoryModal.vue
+++ b/src/views/form/design/components/HistoryModal.vue
@@ -33,11 +33,16 @@
const { t } = useI18n();
const columns: BasicColumn[] = [
{
- dataIndex: 'activityFlag',
- title: t('版本'),
- customRender: ({ record }) =>
- `${record.activityFlag === 1 ? t('当前版本') : t('非当前版本')}`, //1-当前版本 0-非当前版本
+ dataIndex: 'activityFlag',
+ title: t('状态'),
+ customRender: ({ record }) =>
+ `${record.activityFlag === 1 ? t('当前版本') : t('非当前版本')}`, //1-当前版本 0-非当前版本
},
+ {
+ dataIndex: 'version',
+ title: t('版本'),
+ },
+
{
dataIndex: 'createUserName',
title: t('创建人'),
diff --git a/src/views/generator/dev/components/DataFirstModal.vue b/src/views/generator/dev/components/DataFirstModal.vue
index ca83bb4..21ae291 100644
--- a/src/views/generator/dev/components/DataFirstModal.vue
+++ b/src/views/generator/dev/components/DataFirstModal.vue
@@ -24,9 +24,22 @@
{{ t('下一步') }}
-
- {{ t('完成') }}
-
+
+
+ {{ t('完成') }}
+
+
+
+
+ 打包下载
+
+
+ 生成到项目中
+
+
+
+
+
{{ t('关闭') }}
@@ -51,6 +64,7 @@
getCodeTemplateInfo,
saveDraftGeneratorCode,
updateDraftGeneratorCode,
+ downloadCodes,
} from '/@/api/system/generator';
import { FormProps } from '/@/components/Form';
import { buildOption } from '/@/utils/helper/designHelper';
@@ -66,6 +80,8 @@
import DesignLogo from '/@/components/ModalPanel/src/DesignLogo.vue';
import useGlobalFlag from '/@/hooks/core/useGlobalFlag';
import AjaxErrorIcon from '/@/components/SecondDev/AjaxErrorIcon.vue';
+ import { downloadByData } from '/@/utils/file/download';
+ import { dateUtil } from '/@/utils/dateUtil';
const { t } = useI18n();
const TableConfigStep = defineAsyncComponent({
@@ -240,7 +256,7 @@
handleClose();
emit('success');
}
- async function handleCodeGenerator() {
+ async function handleCodeGenerator(actionType:String) {
const isOk = await stepValidate[5]();
if (
generatorConfig.formJson?.hiddenComponent &&
@@ -259,7 +275,16 @@
buildOption(generatorConfig.formJson) as FormProps,
);
if (templateId.value) data.id = templateId.value;
- await dataFirstGeneratorCode(data);
+ data.actionType=actionType;
+ const result = await dataFirstGeneratorCode(data);
+ if(data.actionType=="packAndDownload"&&result){
+ const fileName=data.outputConfig.className+'_'+dateUtil(new Date()).format('YYYY-MM-DD_HH_mm_ss');
+ const res = await downloadCodes({uuid:result});
+ downloadByData(
+ res.data,
+ fileName+".zip"
+ );
+ }
handleClose();
emit('success');
}
From be3f19fb05a07dceb4cfef77807a3eaa51b048ee Mon Sep 17 00:00:00 2001
From: suguangxu <274928232@qq.com>
Date: Thu, 24 Apr 2025 15:05:13 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E7=95=8C=E9=9D=A2=E4=BC=98=E5=85=88?=
=?UTF-8?q?=E6=A8=A1=E6=9D=BF=E3=80=81=E7=AE=80=E6=98=93=E6=A8=A1=E6=9D=BF?=
=?UTF-8?q?=EF=BC=9A=E4=BB=A3=E7=A0=81=E6=89=93=E5=8C=85=E4=B8=8B=E8=BD=BD?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../dev/components/CodeFirstModal.vue | 38 +++++++++++++++----
.../dev/components/SimpleTemplateModal.vue | 34 ++++++++++++++---
2 files changed, 59 insertions(+), 13 deletions(-)
diff --git a/src/views/generator/dev/components/CodeFirstModal.vue b/src/views/generator/dev/components/CodeFirstModal.vue
index 34d7603..b2816b5 100644
--- a/src/views/generator/dev/components/CodeFirstModal.vue
+++ b/src/views/generator/dev/components/CodeFirstModal.vue
@@ -25,9 +25,21 @@
{{ t('下一步') }}
-
- {{ t('完成') }}
-
+
+
+ {{ t('完成') }}
+
+
+
+
+ 打包下载
+
+
+ 生成到项目中
+
+
+
+
{{ t('关闭') }}
@@ -57,6 +69,7 @@
getCodeTemplateInfo,
saveDraftGeneratorCode,
updateDraftGeneratorCode,
+ downloadCodes,
} from '/@/api/system/generator';
import { FormProps } from '/@/components/Form';
import { buildOption } from '/@/utils/helper/designHelper';
@@ -73,6 +86,9 @@
import DesignLogo from '/@/components/ModalPanel/src/DesignLogo.vue';
import AjaxErrorIcon from '/@/components/SecondDev/AjaxErrorIcon.vue';
import useGlobalFlag from '/@/hooks/core/useGlobalFlag';
+ import { downloadByData } from '/@/utils/file/download';
+ import { dateUtil } from '/@/utils/dateUtil';
+
const { t } = useI18n();
const StructureConfigStep = defineAsyncComponent({
loader: () => import('/@/components/CreateCodeStep/src/StructureConfigStep.vue'),
@@ -114,7 +130,6 @@
const widgetForm = ref(JSON.parse(JSON.stringify(antd.widgetForm))); //FormDesignStep -> designer和StructureConfigStep页面使用
const mainTableName = ref('table_' + random(10000, 99999));
const emit = defineEmits(['close', 'register', 'success']);
-
watch(current, () => {
isEditorOpen.value = current.value === 0;
});
@@ -245,7 +260,7 @@
handleClose();
emit('success');
}
- async function handleCodeGenerator() {
+ async function handleCodeGenerator(actionType:String) {
const isOk = await stepValidate[5]();
if (
generatorConfig.formJson?.hiddenComponent &&
@@ -268,9 +283,16 @@
// await appGeneratorCode(
// buildAppCode(generatorConfig, buildAppFormProps(generatorConfig.formJson)),
// );
-
- await codeFirstGeneratorCode(data);
-
+ data.actionType=actionType;
+ const result =await codeFirstGeneratorCode(data);
+ if(data.actionType=="packAndDownload"&&result){
+ const fileName=data.outputConfig.className+'_'+dateUtil(new Date()).format('YYYY-MM-DD_HH_mm_ss');
+ const res = await downloadCodes({uuid:result});
+ downloadByData(
+ res.data,
+ fileName+".zip"
+ );
+ }
handleClose();
emit('success');
}
diff --git a/src/views/generator/dev/components/SimpleTemplateModal.vue b/src/views/generator/dev/components/SimpleTemplateModal.vue
index 6b74f16..1fb4859 100644
--- a/src/views/generator/dev/components/SimpleTemplateModal.vue
+++ b/src/views/generator/dev/components/SimpleTemplateModal.vue
@@ -24,9 +24,21 @@
{{ t('下一步') }}
-
- {{ t('完成') }}
-
+
+
+ {{ t('完成') }}
+
+
+
+
+ 打包下载
+
+
+ 生成到项目中
+
+
+
+
{{ t('关闭') }}
@@ -57,6 +69,7 @@
saveDraftGeneratorCode,
updateDraftGeneratorCode,
getMasterInfo,
+ downloadCodes,
} from '/@/api/system/generator';
import { FormProps } from '/@/components/Form';
import { buildOption } from '/@/utils/helper/designHelper';
@@ -71,6 +84,8 @@
import { MenuConfig } from '/@/model/generator/menuConfig';
import { FormEventColumnConfig } from '/@/model/generator/formEventConfig';
import DesignLogo from '/@/components/ModalPanel/src/DesignLogo.vue';
+ import { downloadByData } from '/@/utils/file/download';
+ import { dateUtil } from '/@/utils/dateUtil';
const { t } = useI18n();
const StructureConfigStep = defineAsyncComponent({
@@ -244,7 +259,7 @@
handleClose();
emit('success');
}
- async function handleCodeGenerator() {
+ async function handleCodeGenerator(actionType:String) {
const isOk = await stepValidate[5]();
if (
generatorConfig.formJson?.hiddenComponent &&
@@ -263,7 +278,16 @@
buildOption(generatorConfig.formJson) as FormProps,
);
if (templateId.value) data.id = templateId.value;
- await codeFirstGeneratorCode(data);
+ data.actionType=actionType;
+ const result =await codeFirstGeneratorCode(data);
+ if(data.actionType=="packAndDownload"&&result){
+ const fileName=data.outputConfig.className+'_'+dateUtil(new Date()).format('YYYY-MM-DD_HH_mm_ss');
+ const res = await downloadCodes({uuid:result});
+ downloadByData(
+ res.data,
+ fileName+".zip"
+ );
+ }
handleClose();
emit('success');
}