fix: 代码生成器 模板仓库

This commit is contained in:
cuijiawang 2025-09-27 14:20:27 +08:00
parent 2bd36d1848
commit 61ae056134
2 changed files with 43 additions and 90 deletions

View File

@ -232,18 +232,6 @@ export function addTemplateToRepositoryApi(data: TemplateRepository) {
});
}
// 从用户仓库移除模板
export function removeTemplateFromRepositoryApi(
templateSource: string,
templateId: string
) {
return http.request<ResponseData<void>>(
"post",
"/codegen/repository/remove",
{ data: { templateSource, templateId } }
);
}
// 切换模板启用状态
export function toggleTemplateStatusApi(
templateSource: string,

View File

@ -1,12 +1,10 @@
<script setup lang="ts">
import { ref, watch, onMounted, computed } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import { ElMessage } from "element-plus";
import { Search } from "@element-plus/icons-vue";
import {
getAvailableTemplatesApi,
getUserRepositoryListApi,
addTemplateToRepositoryApi,
removeTemplateFromRepositoryApi,
toggleTemplateStatusApi,
type TemplateRepository
} from "@/api/system/codegen";
@ -76,6 +74,22 @@ const loadData = async () => {
if (userRes.code === 200) {
userTemplates.value = userRes.data;
//
if (availableTemplates.value && userTemplates.value) {
availableTemplates.value.forEach(available => {
const userTemplate = userTemplates.value.find(
user =>
user.templateSource === available.templateSource &&
user.templateId === available.templateId
);
if (userTemplate) {
// 使
available.isEnabled = userTemplate.isEnabled;
}
// else
});
}
}
} catch (error) {
ElMessage.error("加载模板数据失败");
@ -85,56 +99,10 @@ const loadData = async () => {
}
};
//
const addTemplate = async (template: TemplateRepository) => {
try {
const res = await addTemplateToRepositoryApi(template);
if (res.code === 200) {
ElMessage.success("添加成功");
template.isEnabled = 1;
await loadData();
emits("refresh");
} else {
ElMessage.error(res.msg || "添加失败");
}
} catch (error) {
ElMessage.error("添加失败");
console.error(error);
}
};
//
const removeTemplate = async (template: TemplateRepository) => {
try {
await ElMessageBox.confirm(
`确定要从仓库中移除模板 "${template.templateName}" 吗?`,
"确认移除",
{ type: "warning" }
);
const res = await removeTemplateFromRepositoryApi(
template.templateSource,
template.templateId
);
if (res.code === 200) {
ElMessage.success("移除成功");
template.isEnabled = 0;
await loadData();
emits("refresh");
} else {
ElMessage.error(res.msg || "移除失败");
}
} catch (error) {
if (error !== "cancel") {
ElMessage.error("移除失败");
console.error(error);
}
}
};
//
const toggleTemplate = async (template: TemplateRepository) => {
const newStatus = template.isEnabled === 1 ? 0 : 1;
const originalStatus = template.isEnabled;
const newStatus = originalStatus === 1 ? 0 : 1;
try {
const res = await toggleTemplateStatusApi(
@ -143,14 +111,30 @@ const toggleTemplate = async (template: TemplateRepository) => {
newStatus
);
if (res.code === 200) {
//
template.isEnabled = newStatus;
ElMessage.success(newStatus === 1 ? "已启用" : "已禁用");
//
const userTemplate = userTemplates.value.find(
user =>
user.templateSource === template.templateSource &&
user.templateId === template.templateId
);
if (userTemplate) {
userTemplate.isEnabled = newStatus;
}
ElMessage.success(newStatus === 1 ? "已显示" : "已隐藏");
emits("refresh");
} else {
ElMessage.error(res.msg || "操作失败");
//
template.isEnabled = originalStatus;
ElMessage.error(res.msg || "切换模板状态失败");
}
} catch (error) {
ElMessage.error("操作失败");
//
template.isEnabled = originalStatus;
ElMessage.error("网络错误,切换模板状态失败");
console.error(error);
}
};
@ -246,41 +230,22 @@ watch(
}}
</el-tag>
<el-tag
v-if="template.isEnabled === 1"
type="primary"
:type="template.isEnabled === 1 ? 'success' : 'info'"
size="small"
>
已启用
{{ template.isEnabled === 1 ? "显示中" : "已隐藏" }}
</el-tag>
</div>
</div>
<div class="template-actions">
<el-button
v-if="template.isEnabled === 0"
type="primary"
:type="template.isEnabled === 1 ? 'warning' : 'primary'"
size="small"
@click="addTemplate(template)"
@click="toggleTemplate(template)"
>
添加到仓库
{{ template.isEnabled === 1 ? "隐藏" : "显示" }}
</el-button>
<template v-else>
<el-button
type="warning"
size="small"
@click="toggleTemplate(template)"
>
{{ template.isEnabled === 1 ? "禁用" : "启用" }}
</el-button>
<el-button
type="danger"
size="small"
@click="removeTemplate(template)"
>
移除
</el-button>
</template>
</div>
</div>
</div>