Files
----/后端源码/yifan.action-ai.cn/index/js/index.BR9biJsE.js

2510 lines
110 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { x as ElFormItem, y as ElInput, h as ElButton, w as ElForm, U as ElRow, V as ElCol, l as ElTooltip, ax as ElPopover, F as ElScrollbar, aC as ElCheckbox, al as ElTable, am as ElTableColumn, aE as magic_stick_default, u as ElEmpty, ao as vLoading, a9 as question_filled_default, T as ElCard, t as ElLink, i as ElIcon, ah as copy_document_default, v as ElDialog, aF as ElSteps, aG as ElStep, aH as ElTreeSelect, s as ElDivider, a3 as ElDescriptions, a4 as ElDescriptionsItem, q as ElTag, aI as ElSpace, m as ElDropdown, n as ElDropdownMenu, o as ElDropdownItem, aq as ElSelect, ar as ElOption, P as ElRadioGroup, Z as ElRadioButton, aJ as ElCheckboxGroup, aK as ElCheckboxButton, aL as ElTree, aM as close_default, aN as back_default, an as edit_default, aO as right_default, aP as download_default, aQ as folder_opened_default, L as ElDrawer, E as ElMessage, D as ElMessageBox } from "./element-plus.CkEW9frc.js";
import { _ as __unplugin_components_19 } from "./index.fgd49PES.js";
import { J as defineComponent, m as watch, eu as useClipboard, dZ as useRoute, X as onActivated, t as onMounted, aP as resolveDirective, S as openBlock, _ as createElementBlock, a1 as createBaseVNode, $ as createVNode, a0 as withCtx, a_ as withKeys, a6 as withDirectives, T as createBlock, a9 as createTextVNode, aw as withModifiers, H as Fragment, ay as renderList, a8 as createCommentVNode, aa as toDisplayString, o as unref, ab as vShow, a3 as normalizeClass, r as ref, ak as reactive, j as computed } from "./.pnpm.BW3P1y8f.js";
import { R } from "./codemirror.CvJAcn2d.js";
import { l as httpRequest, a as useSettingsStore, m as DictAPI, T as ThemeMode } from "./index.CMd5bD1r.js";
import { M as MenuAPI } from "./menu.uy9JHUjy.js";
import { f as formatTree } from "./common.ySZAMJjg.js";
import { M as MenuTypeEnum } from "./menu.enum.Q9hatFRE.js";
import "./_plugin-vue_export-helper.1tPrXgE0.js";
const API_PATH = "/generator/gencode";
const GencodeAPI = {
// 查询生成表数据
listTable(query) {
return httpRequest({
url: `${API_PATH}/list`,
method: "get",
params: query
});
},
// 查询db数据库列表
listDbTable(query) {
return httpRequest({
url: `${API_PATH}/db/list`,
method: "get",
params: query
});
},
// 导入表
importTable(table_names) {
return httpRequest({
url: `${API_PATH}/import`,
method: "post",
data: table_names
});
},
// 查询表详细信息
detailTable(table_id) {
return httpRequest({
url: `${API_PATH}/detail/${table_id}`,
method: "get"
});
},
// 创建表
createTable(sql) {
return httpRequest({
url: `${API_PATH}/create`,
method: "post",
data: sql
});
},
// 更新表信息
updateTable(data, table_id) {
return httpRequest({
url: `${API_PATH}/update/${table_id}`,
method: "put",
data
});
},
// 删除表数据
deleteTable(table_ids) {
return httpRequest({
url: `${API_PATH}/delete`,
method: "delete",
data: table_ids
});
},
// 批量生成代码
batchGenCode(table_names) {
return httpRequest({
url: `${API_PATH}/batch/output`,
method: "patch",
data: table_names,
responseType: "blob"
});
},
// 生成代码到指定路径
genCodeToPath(table_name) {
return httpRequest({
url: `${API_PATH}/output/${table_name}`,
method: "post"
});
},
// 预览生成代码
previewTable(id) {
return httpRequest({
url: `${API_PATH}/preview/${id}`,
method: "get"
});
},
// 同步数据库
syncDb(table_name) {
return httpRequest({
url: `${API_PATH}/sync_db/${table_name}`,
method: "post"
});
}
};
const _hoisted_1 = { class: "app-container" };
const _hoisted_2 = { class: "search-container" };
const _hoisted_3 = { class: "card-header" };
const _hoisted_4 = { class: "data-table__toolbar" };
const _hoisted_5 = { class: "data-table__toolbar--left" };
const _hoisted_6 = { class: "data-table__toolbar--right" };
const _hoisted_7 = { class: "absolute z-36 right-5 top-2" };
const _hoisted_8 = { class: "dialog-footer" };
const _hoisted_9 = { class: "dialog-footer" };
const _hoisted_10 = { class: "mt-5" };
const _hoisted_11 = { class: "elTableCustom" };
const _hoisted_12 = { class: "mb-2 flex items-center gap-2" };
const _hoisted_13 = { style: { "float": "left" } };
const _hoisted_14 = { style: { "float": "right", "font-size": "13px", "color": "#8492a6" } };
const _hoisted_15 = { class: "flex-y-center gap-3" };
const _hoisted_16 = { class: "ml-1" };
const _hoisted_17 = { class: "absolute z-36 right-5 top-2" };
const _sfc_main = /* @__PURE__ */ defineComponent({
...{
name: "GenCode",
inheritAttrs: false
},
__name: "index",
setup(__props) {
const queryRef = ref();
const table = ref();
const cmRef = ref();
const sqlRef = ref();
const basicInfo = ref();
const dragTable = ref();
const loading = ref(false);
const total = ref(0);
const uniqueId = ref("");
const editVisible = ref(false);
const activeStep = ref(2);
const createTableVisible = ref(false);
const importVisible = ref(false);
const createContent = ref("");
const dateRange = ref([]);
const tableList = ref([]);
const dbTableList = ref([]);
const ids = ref([]);
const tableNames = ref([]);
const importLoading = ref(false);
const importTotal = ref(0);
const importQueryFormData = reactive({
page_no: 1,
page_size: 10,
table_name: void 0,
table_comment: void 0
});
const dictOptions = ref([]);
const menuOptions = ref([]);
const tables = ref([]);
async function handleImportClick() {
importVisible.value = true;
await getDbList();
}
const preview = reactive({
open: false,
title: "代码预览",
data: {},
active_name: "controller.py"
});
const previewScope = ref("all");
const previewTypeOptions = ["ts", "vue", "python"];
const previewTypes = ref([...previewTypeOptions]);
const code = ref("");
const treeData = ref([]);
const queryFormData = reactive({
page_no: 1,
page_size: 10,
table_name: void 0,
table_comment: void 0
});
const tableColumns = ref([
{ prop: "selection", label: "选择框", show: true },
{ prop: "index", label: "序号", show: true },
{ prop: "table_name", label: "表名称", show: true },
{ prop: "table_comment", label: "表描述", show: true },
{ prop: "class_name", label: "实体", show: true },
{ prop: "created_time", label: "创建时间", show: true },
{ prop: "updated_time", label: "更新时间", show: true },
{ prop: "operation", label: "操作", show: true }
]);
const settingsStore = useSettingsStore();
const codeTheme = computed(() => settingsStore.theme === ThemeMode.DARK ? "dracula" : "default");
watch(codeTheme, (newTheme) => {
if (sqlRef.value && sqlRef.value.cminstance) {
sqlRef.value.cminstance.setOption("theme", newTheme);
}
if (cmRef.value && cmRef.value.cminstance) {
cmRef.value.cminstance.setOption("theme", newTheme);
}
});
const cmOptions = {
mode: "text/javascript",
lineNumbers: true,
smartIndent: true,
indentUnit: 2,
tabSize: 2,
readOnly: false,
theme: codeTheme.value,
lineWrapping: true,
autofocus: false
};
const sqlOptions = {
mode: "text/x-sql",
lineNumbers: true,
smartIndent: true,
indentUnit: 2,
tabSize: 2,
readOnly: false,
theme: codeTheme.value,
lineWrapping: true,
autofocus: false
};
const { copy } = useClipboard();
const filteredTreeData = computed(() => {
if (!treeData.value.length) return [];
const match = (label, parentPath) => {
if (previewScope.value !== "all") {
const isPythonBackend = parentPath.some((part) => part === "backend" || part === "python") || label.includes(".py");
const isVueFrontend = parentPath.some((part) => part === "frontend" || part === "vue") || label.includes(".vue") || label.includes(".ts");
if (previewScope.value === "backend" && !isPythonBackend) return false;
if (previewScope.value === "frontend" && !isVueFrontend) return false;
}
if (label.endsWith(".py")) return previewTypes.value.includes("python");
if (label.endsWith(".vue")) return previewTypes.value.includes("vue");
if (label.endsWith(".ts")) return previewTypes.value.includes("ts");
return true;
};
const cloneFilter = (node, parents = []) => {
if (!node.children || node.children.length === 0) {
return match(node.label, parents) ? { ...node } : null;
}
const nextParents = [...parents, node.label];
const children = (node.children || []).map((c) => cloneFilter(c, nextParents)).filter(Boolean);
if (!children.length) return null;
return { label: node.label, children };
};
const filtered = treeData.value.map((n) => cloneFilter(n)).filter(Boolean);
return filtered;
});
const canGenerate = computed(() => ids.value.length > 0);
const handleCopyCode = () => {
const content = code.value || createContent.value;
if (content) {
copy(content);
ElMessage.success("代码复制成功");
} else {
ElMessage.warning("没有可复制的代码");
}
};
function getFileTreeNodeIcon(label) {
if (label.endsWith(".py")) return "python";
if (label.endsWith(".vue")) return "vue";
if (label.endsWith(".ts")) return "typescript";
return "file";
}
function handleFileTreeNodeClick(data) {
if (data && (!data.children || data.children.length === 0)) {
code.value = data.content || "";
}
}
function buildTree(data) {
const root = { label: "前后端代码", children: [] };
data.forEach((item) => {
var _a;
const parts = item.path.split("/").filter((part) => part !== "");
let currentNode = root;
parts.forEach((part) => {
var _a2, _b;
let node = (_a2 = currentNode.children) == null ? void 0 : _a2.find((child) => child.label === part);
if (!node) {
node = { label: part, children: [] };
(_b = currentNode.children) == null ? void 0 : _b.push(node);
}
currentNode = node;
});
(_a = currentNode.children) == null ? void 0 : _a.push({
label: item.file_name,
content: item == null ? void 0 : item.content
});
});
return root;
}
async function handlePreview(row) {
try {
if (!row.id) {
ElMessage.warning("无效的表ID");
return;
}
const response = await GencodeAPI.previewTable(row.id);
preview.data = response.data.data;
const filesData = Object.entries(response.data.data).map(([key, content]) => {
const pathParts = key.split("/");
let fileName = pathParts.pop() || "";
const path = pathParts.join("/");
if (fileName.endsWith(".j2")) {
fileName = fileName.substring(0, fileName.lastIndexOf(".j2"));
}
const contentStr = typeof content === "string" ? content : JSON.stringify(content);
return {
path,
file_name: fileName,
content: contentStr
};
});
const treeRoot = buildTree(filesData);
treeData.value = [treeRoot];
const findFirstLeafNode = (nodes) => {
for (const node of nodes) {
if (!node.children || node.children.length === 0) {
return node;
}
const leaf = findFirstLeafNode(node.children);
if (leaf) return leaf;
}
return null;
};
const firstLeafNode = findFirstLeafNode(treeData.value);
code.value = (firstLeafNode == null ? void 0 : firstLeafNode.content) || "";
preview.open = true;
preview.active_name = "model.py";
} catch (error) {
console.error("预览代码失败:", error);
}
}
async function loadingData() {
var _a;
loading.value = true;
try {
const response = await GencodeAPI.listTable(queryFormData);
if ((_a = response == null ? void 0 : response.data) == null ? void 0 : _a.data) {
tableList.value = response.data.data.items;
total.value = response.data.data.total;
}
} catch (error) {
console.error("获取表数据失败:", error);
} finally {
loading.value = false;
}
}
async function handleGenTable(targetGenType, row) {
let tbNames = [];
if (row) {
tbNames = [row.table_name || ""];
} else if (tableNames.value.length > 0) {
tbNames = tableNames.value;
} else {
ElMessage.error("请选择要生成的数据");
return;
}
loading.value = true;
try {
if (targetGenType === "1") {
if (!Array.isArray(tbNames) || tbNames.length !== 1 || !tbNames[0]) {
ElMessage.error("自定义路径只能生成单表代码");
loading.value = false;
return;
}
await GencodeAPI.genCodeToPath(tbNames[0]);
} else {
const tableNamesArray = Array.isArray(tbNames) ? tbNames : [tbNames];
const response = await GencodeAPI.batchGenCode(tableNamesArray);
const blob = new Blob([response.data], { type: "application/zip" });
const url = URL.createObjectURL(blob);
const link = document.createElement("a");
link.href = url;
link.download = "code.zip";
link.click();
URL.revokeObjectURL(url);
ElMessage.success("代码生成成功,正在下载...");
}
} catch (error) {
console.error("生成代码失败:", error);
} finally {
loading.value = false;
}
}
async function handleSynchDb(row) {
const tableName = row.table_name || "";
if (!tableName) {
ElMessage.error("表名不能为空");
return;
}
try {
await ElMessageBox.confirm('确认要强制同步"' + tableName + '"表结构吗?', "确认操作", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
});
loading.value = true;
await GencodeAPI.syncDb(tableName);
loadingData();
} catch (error) {
if (error !== "cancel") {
console.error("同步表结构失败:", error);
}
} finally {
loading.value = false;
}
}
async function handleRefresh() {
dateRange.value = [];
queryFormData.page_no = 1;
queryFormData.page_size = 10;
queryFormData.table_name = void 0;
queryFormData.table_comment = void 0;
await loadingData();
}
function handleTableSelectionChange(selection) {
ids.value = selection.map((item) => item.id);
tableNames.value = selection.map((item) => item.table_name || "").filter(Boolean);
}
function handleImportTableSelectionChange(selection) {
tables.value = selection.map((item) => ({
table_name: item.table_name || "",
table_comment: item.table_comment || ""
}));
}
const filterMenuTypes = (nodes) => {
return nodes.filter((node) => node.type === MenuTypeEnum.CATALOG || node.type === MenuTypeEnum.MENU).map((node) => ({
...node,
children: node.children ? filterMenuTypes(node.children) : []
}));
};
async function handlePreviewTable(row) {
const selectedTableId = (row == null ? void 0 : row.id) || ids.value[0];
if (selectedTableId) {
info.table_name = (row == null ? void 0 : row.table_name) || "";
await loadTableDetail(selectedTableId);
editVisible.value = true;
const menu_response = await MenuAPI.listMenu();
menuOptions.value = formatTree(filterMenuTypes(menu_response.data.data));
const dict_response = await DictAPI.listDictType({ page_no: 1, page_size: 100 });
dictOptions.value = dict_response.data.data.items;
} else {
ElMessage.error("请选择要修改的数据");
}
}
async function handleDelete(row) {
const tableIds = (row == null ? void 0 : row.id) ? [row.id] : ids.value;
if (tableIds.length === 0) {
ElMessage.error("请选择要删除的数据");
return;
}
try {
await ElMessageBox.confirm(`是否确认删除选中的${tableIds.length}条数据?`, "删除确认", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
});
loading.value = true;
await GencodeAPI.deleteTable(tableIds);
loadingData();
} catch (error) {
if (error !== "cancel") {
console.error("删除表数据失败:", error);
}
} finally {
loading.value = false;
}
}
function loadExampleMysql() {
const exampleSql = `-- MySQL SQL案例
CREATE TABLE \`gen_demo01\` (
\`name\` varchar(64) DEFAULT NULL COMMENT '名称',
\`id\` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
\`uuid\` varchar(64) NOT NULL COMMENT 'UUID全局唯一标识',
\`status\` varchar(10) NOT NULL COMMENT '是否启用(0:启用 1:禁用)',
\`description\` text COMMENT '备注/描述',
\`created_time\` datetime NOT NULL COMMENT '创建时间',
\`updated_time\` datetime NOT NULL COMMENT '更新时间',
\`created_id\` int DEFAULT NULL COMMENT '创建人ID',
\`updated_id\` int DEFAULT NULL COMMENT '更新人ID',
PRIMARY KEY (\`id\`),
UNIQUE KEY \`uuid\` (\`uuid\`),
KEY \`ix_gen_demo01_created_id\` (\`created_id\`),
KEY \`ix_gen_demo01_updated_id\` (\`updated_id\`),
CONSTRAINT \`gen_demo01_ibfk_1\` FOREIGN KEY (\`created_id\`) REFERENCES \`sys_user\` (\`id\`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT \`gen_demo01_ibfk_2\` FOREIGN KEY (\`updated_id\`) REFERENCES \`sys_user\` (\`id\`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='示例表'`;
createContent.value = exampleSql;
}
function loadExamplePostgres() {
const exampleSql = `-- Psstgres SQL案例
CREATE TABLE gen_demo01(
id SERIAL NOT NULL,
uuid varchar(64) NOT NULL,
name varchar(64),
status varchar(10) NOT NULL,
description text,
created_time timestamp without time zone NOT NULL,
updated_time timestamp without time zone NOT NULL,
created_id integer,
updated_id integer,
PRIMARY KEY(id),
CONSTRAINT gen_demo01_created_id_fkey FOREIGN key(created_id) REFERENCES sys_user(id),
CONSTRAINT gen_demo01_updated_id_fkey FOREIGN key(updated_id) REFERENCES sys_user(id)
);
CREATE UNIQUE INDEX en_demo01_uuid_key ON public.gen_demo01 USING btree (uuid);
CREATE INDEX ix_gen_demo01_created_id ON public.gen_demo01 USING btree (created_id);
CREATE INDEX ix_gen_demo01_updated_id ON public.gen_demo01 USING btree (updated_id);
COMMENT ON TABLE gen_demo01 IS '示例表';
COMMENT ON COLUMN gen_demo01.name IS '名称';
COMMENT ON COLUMN gen_demo01.id IS '主键ID';
COMMENT ON COLUMN gen_demo01.uuid IS 'UUID全局唯一标识';
COMMENT ON COLUMN gen_demo01.status IS '是否启用(0:启用 1:禁用)';
COMMENT ON COLUMN gen_demo01.description IS '备注/描述';
COMMENT ON COLUMN gen_demo01.created_time IS '创建时间';
COMMENT ON COLUMN gen_demo01.updated_time IS '更新时间';
COMMENT ON COLUMN gen_demo01.created_id IS '创建人ID';
COMMENT ON COLUMN gen_demo01.updated_id IS '更新人ID';`;
createContent.value = exampleSql;
}
async function handleCreateTable(sql) {
if (!sql || sql.trim() === "") {
ElMessage.error("请输入创建表SQL语句");
return;
}
loading.value = true;
try {
await GencodeAPI.createTable(sql);
createTableVisible.value = false;
createContent.value = "";
loadingData();
} catch (error) {
console.error("创建表数据失败:", error);
} finally {
loading.value = false;
}
}
function handleCreateTableCancel() {
createTableVisible.value = false;
createContent.value = "";
}
async function handleImportTable() {
if (tables.value.length === 0) {
ElMessage.error("请选择要导入的表");
return;
}
importLoading.value = true;
try {
const tableNames2 = tables.value.map((table2) => table2.table_name || "");
await GencodeAPI.importTable(tableNames2);
importVisible.value = false;
loadingData();
} catch (error) {
console.error("导入表失败:", error);
} finally {
importLoading.value = false;
}
}
function clickRow(row) {
var _a;
(_a = table.value) == null ? void 0 : _a.toggleRowSelection(row);
}
async function getDbList() {
importLoading.value = true;
try {
const res = await GencodeAPI.listDbTable(importQueryFormData);
if (res.data && res.data.data) {
dbTableList.value = res.data.data.items;
importTotal.value = res.data.data.total;
}
} catch (error) {
console.error("获取数据库表列表失败:", error);
} finally {
importLoading.value = false;
}
}
async function handleImportQuery() {
importQueryFormData.page_no = 1;
await getDbList();
}
async function handleImportReset() {
if (queryRef.value) {
queryRef.value.resetFields();
}
await handleImportQuery();
}
async function handleQuery() {
queryFormData.page_no = 1;
await loadingData();
}
const route = useRoute();
onActivated(async () => {
const time = route.query.t;
if (time != null && String(time) !== uniqueId.value) {
uniqueId.value = String(time);
queryFormData.page_no = Number(route.query.page_no || 1);
dateRange.value = [];
await loadingData();
}
});
const info = reactive({
id: void 0,
table_name: "",
table_comment: "",
sub_table_name: "",
sub_table_fk_name: "",
class_name: "",
package_name: "",
module_name: "",
business_name: "",
function_name: "",
description: "",
parent_menu_id: void 0,
pk_column: void 0,
sub_table: void 0,
columns: [],
sub: false
});
const rules = {
table_name: [{ required: true, message: "表名称不能为空", trigger: "blur" }],
class_name: [{ required: true, message: "实体名称不能为空", trigger: "blur" }],
package_name: [{ required: true, message: "生成包路径不能为空", trigger: "blur" }],
module_name: [{ required: true, message: "生成模块名不能为空", trigger: "blur" }],
business_name: [{ required: true, message: "生成业务名不能为空", trigger: "blur" }],
function_name: [{ required: true, message: "生成功能名不能为空", trigger: "blur" }],
parent_menu_id: [{ required: true, message: "所属菜单不能为空", trigger: "change" }]
};
async function submitForm() {
var _a, _b;
if (!info.id) {
ElMessage.error("无效的表ID");
return;
}
try {
loading.value = true;
if (!info.columns || info.columns.length === 0) {
ElMessage.error("请配置字段信息");
return;
}
const tableData = {
...info,
parent_menu_id: info.parent_menu_id ?? null,
// 将undefined转换为null确保属性被传输
columns: info.columns || []
// 确保columns存在
};
const response = await GencodeAPI.updateTable(tableData, info.id || 0);
if (((_a = response == null ? void 0 : response.data) == null ? void 0 : _a.code) === 200) {
ElMessage.success(((_b = response == null ? void 0 : response.data) == null ? void 0 : _b.message) || "保存成功");
return true;
}
} catch (error) {
console.error("保存表单失败:", error);
} finally {
loading.value = false;
}
}
async function nextStep() {
if (activeStep.value < 3) {
activeStep.value++;
if (activeStep.value === 2 && info.id) {
await handlePreview({ id: info.id, table_name: info.table_name });
}
}
}
function prevStep() {
if (activeStep.value > 0) {
activeStep.value--;
}
}
function bulkSet(field, value) {
if (!info.columns || !Array.isArray(info.columns)) return;
const fieldsToUpdate = Array.isArray(field) ? field : [field];
info.columns.forEach((column) => {
if (column && typeof column === "object") {
fieldsToUpdate.forEach((f) => {
column[f] = value;
});
}
});
}
function close() {
editVisible.value = false;
activeStep.value = 0;
setTimeout(() => {
var _a;
(_a = basicInfo.value) == null ? void 0 : _a.resetFields();
}, 300);
}
function handleClose() {
close();
}
async function loadTableDetail(id) {
var _a;
try {
loading.value = true;
const response = await GencodeAPI.detailTable(Number(id));
if ((_a = response == null ? void 0 : response.data) == null ? void 0 : _a.data) {
const data = response.data.data;
Object.assign(info, { ...data });
if (data && data.columns && Array.isArray(data.columns)) {
info.columns = JSON.parse(JSON.stringify(data.columns));
info.columns.forEach((item) => {
item.select = true;
});
}
activeStep.value = 0;
}
} catch (error) {
console.error("获取表详情失败:", error);
} finally {
loading.value = false;
}
}
onMounted(() => {
loadingData();
});
return (_ctx, _cache) => {
const _component_el_input = ElInput;
const _component_el_form_item = ElFormItem;
const _component_el_button = ElButton;
const _component_el_form = ElForm;
const _component_el_tooltip = ElTooltip;
const _component_el_col = ElCol;
const _component_el_row = ElRow;
const _component_el_checkbox = ElCheckbox;
const _component_el_scrollbar = ElScrollbar;
const _component_el_popover = ElPopover;
const _component_el_empty = ElEmpty;
const _component_el_table_column = ElTableColumn;
const _component_el_table = ElTable;
const _component_pagination = __unplugin_components_19;
const _component_el_card = ElCard;
const _component_el_icon = ElIcon;
const _component_el_link = ElLink;
const _component_el_dialog = ElDialog;
const _component_el_step = ElStep;
const _component_el_steps = ElSteps;
const _component_el_tree_select = ElTreeSelect;
const _component_el_divider = ElDivider;
const _component_el_descriptions_item = ElDescriptionsItem;
const _component_el_descriptions = ElDescriptions;
const _component_el_tag = ElTag;
const _component_el_dropdown_item = ElDropdownItem;
const _component_el_dropdown_menu = ElDropdownMenu;
const _component_el_dropdown = ElDropdown;
const _component_el_space = ElSpace;
const _component_el_option = ElOption;
const _component_el_select = ElSelect;
const _component_el_radio_button = ElRadioButton;
const _component_el_radio_group = ElRadioGroup;
const _component_el_checkbox_button = ElCheckboxButton;
const _component_el_checkbox_group = ElCheckboxGroup;
const _component_el_tree = ElTree;
const _component_el_drawer = ElDrawer;
const _directive_hasPerm = resolveDirective("hasPerm");
const _directive_loading = vLoading;
return openBlock(), createElementBlock("div", _hoisted_1, [
createBaseVNode("div", _hoisted_2, [
createVNode(_component_el_form, {
ref_key: "queryRef",
ref: queryRef,
model: queryFormData,
inline: true,
"label-suffix": ":",
onSubmit: withModifiers(handleQuery, ["prevent"])
}, {
default: withCtx(() => [
createVNode(_component_el_form_item, {
label: "表名称",
prop: "table_name"
}, {
default: withCtx(() => [
createVNode(_component_el_input, {
modelValue: queryFormData.table_name,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => queryFormData.table_name = $event),
placeholder: "请输入表名称",
clearable: "",
style: { "width": "200px" },
onKeyup: withKeys(handleQuery, ["enter"])
}, null, 8, ["modelValue"])
]),
_: 1
}),
createVNode(_component_el_form_item, {
label: "表描述",
prop: "table_comment"
}, {
default: withCtx(() => [
createVNode(_component_el_input, {
modelValue: queryFormData.table_comment,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => queryFormData.table_comment = $event),
placeholder: "请输入表描述",
clearable: "",
style: { "width": "200px" },
onKeyup: withKeys(handleQuery, ["enter"])
}, null, 8, ["modelValue"])
]),
_: 1
}),
createVNode(_component_el_form_item, { class: "search-buttons" }, {
default: withCtx(() => [
withDirectives((openBlock(), createBlock(_component_el_button, {
type: "primary",
icon: "search",
"native-type": "submit"
}, {
default: withCtx(() => [..._cache[41] || (_cache[41] = [
createTextVNode(" 查询 ", -1)
])]),
_: 1
})), [
[_directive_hasPerm, ["module_generator:gencode:query"]]
]),
withDirectives((openBlock(), createBlock(_component_el_button, {
icon: "refresh",
onClick: handleRefresh
}, {
default: withCtx(() => [..._cache[42] || (_cache[42] = [
createTextVNode(" 重置 ", -1)
])]),
_: 1
})), [
[_directive_hasPerm, ["module_generator:gencode:query"]]
])
]),
_: 1
})
]),
_: 1
}, 8, ["model"])
]),
createVNode(_component_el_card, { class: "data-table" }, {
header: withCtx(() => [
createBaseVNode("div", _hoisted_3, [
createBaseVNode("span", null, [
createVNode(_component_el_tooltip, { content: "生成代码" }, {
default: withCtx(() => [
createVNode(unref(question_filled_default), { class: "w-4 h-4 mx-1" })
]),
_: 1
}),
_cache[43] || (_cache[43] = createTextVNode(" 生成代码 ", -1))
])
])
]),
footer: withCtx(() => [
createVNode(_component_pagination, {
total: total.value,
"onUpdate:total": _cache[5] || (_cache[5] = ($event) => total.value = $event),
page: queryFormData.page_no,
"onUpdate:page": _cache[6] || (_cache[6] = ($event) => queryFormData.page_no = $event),
limit: queryFormData.page_size,
"onUpdate:limit": _cache[7] || (_cache[7] = ($event) => queryFormData.page_size = $event),
onPagination: loadingData
}, null, 8, ["total", "page", "limit"])
]),
default: withCtx(() => [
createBaseVNode("div", _hoisted_4, [
createBaseVNode("div", _hoisted_5, [
createVNode(_component_el_row, { gutter: 10 }, {
default: withCtx(() => [
createVNode(_component_el_col, { span: 1.5 }, {
default: withCtx(() => [
withDirectives((openBlock(), createBlock(_component_el_button, {
type: "primary",
plain: "",
icon: "Plus",
onClick: _cache[2] || (_cache[2] = ($event) => createTableVisible.value = true)
}, {
default: withCtx(() => [..._cache[44] || (_cache[44] = [
createTextVNode(" 创建 ", -1)
])]),
_: 1
})), [
[_directive_hasPerm, ["module_generator:gencode:create"]]
])
]),
_: 1
}),
createVNode(_component_el_col, { span: 1.5 }, {
default: withCtx(() => [
withDirectives((openBlock(), createBlock(_component_el_button, {
type: "success",
plain: "",
icon: "Upload",
onClick: handleImportClick
}, {
default: withCtx(() => [..._cache[45] || (_cache[45] = [
createTextVNode(" 导入 ", -1)
])]),
_: 1
})), [
[_directive_hasPerm, ["module_generator:gencode:import"]]
])
]),
_: 1
}),
createVNode(_component_el_col, { span: 1.5 }, {
default: withCtx(() => [
withDirectives((openBlock(), createBlock(_component_el_button, {
type: "danger",
plain: "",
icon: "Delete",
disabled: ids.value.length === 0,
onClick: _cache[3] || (_cache[3] = ($event) => handleDelete())
}, {
default: withCtx(() => [..._cache[46] || (_cache[46] = [
createTextVNode(" 批量删除 ", -1)
])]),
_: 1
}, 8, ["disabled"])), [
[_directive_hasPerm, ["module_generator:gencode:delete"]]
])
]),
_: 1
}),
createVNode(_component_el_col, { span: 1.5 }, {
default: withCtx(() => [
withDirectives((openBlock(), createBlock(_component_el_button, {
type: "warning",
plain: "",
icon: "Download",
disabled: !canGenerate.value,
onClick: _cache[4] || (_cache[4] = ($event) => handleGenTable("0"))
}, {
default: withCtx(() => [..._cache[47] || (_cache[47] = [
createTextVNode(" 批量生成 ", -1)
])]),
_: 1
}, 8, ["disabled"])), [
[_directive_hasPerm, ["module_generator:gencode:code"]]
])
]),
_: 1
})
]),
_: 1
})
]),
createBaseVNode("div", _hoisted_6, [
createVNode(_component_el_row, { gutter: 10 }, {
default: withCtx(() => [
createVNode(_component_el_col, { span: 1.5 }, {
default: withCtx(() => [
createVNode(_component_el_tooltip, { content: "刷新" }, {
default: withCtx(() => [
withDirectives(createVNode(_component_el_button, {
type: "primary",
icon: "refresh",
circle: "",
onClick: handleRefresh
}, null, 512), [
[_directive_hasPerm, ["module_generator:gencode:query"]]
])
]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_col, { span: 1.5 }, {
default: withCtx(() => [
createVNode(_component_el_popover, {
placement: "bottom",
trigger: "click"
}, {
reference: withCtx(() => [
createVNode(_component_el_button, {
type: "danger",
icon: "operation",
circle: ""
})
]),
default: withCtx(() => [
createVNode(_component_el_scrollbar, { "max-height": "350px" }, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList(tableColumns.value, (column) => {
return openBlock(), createElementBlock(Fragment, {
key: column.prop
}, [
column.prop ? (openBlock(), createBlock(_component_el_checkbox, {
key: 0,
modelValue: column.show,
"onUpdate:modelValue": ($event) => column.show = $event,
label: column.label
}, null, 8, ["modelValue", "onUpdate:modelValue", "label"])) : createCommentVNode("", true)
], 64);
}), 128))
]),
_: 1
})
]),
_: 1
})
]),
_: 1
})
]),
_: 1
})
])
]),
withDirectives((openBlock(), createBlock(_component_el_table, {
ref: "dataTableRef",
data: tableList.value,
"highlight-current-row": "",
class: "data-table__content",
height: "500",
"max-height": "500",
border: "",
stripe: "",
onSelectionChange: handleTableSelectionChange
}, {
empty: withCtx(() => [
createVNode(_component_el_empty, {
"image-size": 80,
description: "暂无数据"
})
]),
default: withCtx(() => {
var _a, _b, _c, _d, _e, _f, _g, _h;
return [
((_a = tableColumns.value.find((col) => col.prop === "selection")) == null ? void 0 : _a.show) ? (openBlock(), createBlock(_component_el_table_column, {
key: 0,
type: "selection",
align: "center",
width: "55"
})) : createCommentVNode("", true),
((_b = tableColumns.value.find((col) => col.prop === "index")) == null ? void 0 : _b.show) ? (openBlock(), createBlock(_component_el_table_column, {
key: 1,
label: "序号",
type: "index",
"min-width": "30",
align: "center",
fixed: ""
}, {
default: withCtx((scope) => [
createBaseVNode("span", null, toDisplayString((queryFormData.page_no - 1) * queryFormData.page_size + scope.$index + 1), 1)
]),
_: 1
})) : createCommentVNode("", true),
((_c = tableColumns.value.find((col) => col.prop === "table_name")) == null ? void 0 : _c.show) ? (openBlock(), createBlock(_component_el_table_column, {
key: 2,
label: "表名称",
prop: "table_name",
"show-overflow-tooltip": true
})) : createCommentVNode("", true),
((_d = tableColumns.value.find((col) => col.prop === "table_comment")) == null ? void 0 : _d.show) ? (openBlock(), createBlock(_component_el_table_column, {
key: 3,
label: "表描述",
prop: "table_comment",
"show-overflow-tooltip": true
})) : createCommentVNode("", true),
((_e = tableColumns.value.find((col) => col.prop === "class_name")) == null ? void 0 : _e.show) ? (openBlock(), createBlock(_component_el_table_column, {
key: 4,
label: "实体",
prop: "class_name",
"show-overflow-tooltip": true
})) : createCommentVNode("", true),
((_f = tableColumns.value.find((col) => col.prop === "created_time")) == null ? void 0 : _f.show) ? (openBlock(), createBlock(_component_el_table_column, {
key: 5,
label: "创建时间",
prop: "created_time"
})) : createCommentVNode("", true),
((_g = tableColumns.value.find((col) => col.prop === "updated_time")) == null ? void 0 : _g.show) ? (openBlock(), createBlock(_component_el_table_column, {
key: 6,
label: "更新时间",
prop: "updated_time"
})) : createCommentVNode("", true),
((_h = tableColumns.value.find((col) => col.prop === "operation")) == null ? void 0 : _h.show) ? (openBlock(), createBlock(_component_el_table_column, {
key: 7,
label: "操作",
align: "center",
"min-width": "120",
"class-name": "small-padding fixed-width"
}, {
default: withCtx((scope) => [
withDirectives((openBlock(), createBlock(_component_el_button, {
link: "",
type: "primary",
icon: unref(magic_stick_default),
onClick: ($event) => handlePreviewTable(scope.row)
}, {
default: withCtx(() => [..._cache[48] || (_cache[48] = [
createTextVNode(" 代码生成 ", -1)
])]),
_: 1
}, 8, ["icon", "onClick"])), [
[_directive_hasPerm, ["module_generator:gencode:update"]]
]),
withDirectives((openBlock(), createBlock(_component_el_button, {
link: "",
type: "danger",
icon: "Delete",
onClick: ($event) => handleDelete(scope.row)
}, {
default: withCtx(() => [..._cache[49] || (_cache[49] = [
createTextVNode(" 删除 ", -1)
])]),
_: 1
}, 8, ["onClick"])), [
[_directive_hasPerm, ["module_generator:gencode:delete"]]
]),
withDirectives((openBlock(), createBlock(_component_el_button, {
link: "",
type: "success",
icon: "Refresh",
onClick: ($event) => handleSynchDb(scope.row)
}, {
default: withCtx(() => [..._cache[50] || (_cache[50] = [
createTextVNode(" 同步 ", -1)
])]),
_: 1
}, 8, ["onClick"])), [
[_directive_hasPerm, ["module_generator:db:sync"]]
])
]),
_: 1
})) : createCommentVNode("", true)
];
}),
_: 1
}, 8, ["data"])), [
[_directive_loading, loading.value]
])
]),
_: 1
}),
createVNode(_component_el_dialog, {
modelValue: createTableVisible.value,
"onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => createTableVisible.value = $event),
title: "创建表",
"append-to-body": ""
}, {
footer: withCtx(() => [
createBaseVNode("div", _hoisted_8, [
createVNode(_component_el_button, {
type: "primary",
loading: loading.value,
onClick: _cache[9] || (_cache[9] = ($event) => handleCreateTable(createContent.value))
}, {
default: withCtx(() => [..._cache[54] || (_cache[54] = [
createTextVNode(" 确 定 ", -1)
])]),
_: 1
}, 8, ["loading"]),
createVNode(_component_el_button, {
onClick: _cache[10] || (_cache[10] = ($event) => handleCreateTableCancel())
}, {
default: withCtx(() => [..._cache[55] || (_cache[55] = [
createTextVNode("取 消", -1)
])]),
_: 1
})
])
]),
default: withCtx(() => [
_cache[56] || (_cache[56] = createBaseVNode("span", null, "创建表语句(支持多个建表sql语句)", -1)),
createVNode(_component_el_button, {
type: "warning",
size: "small",
class: "ml-1 mb-1",
onClick: loadExampleMysql
}, {
default: withCtx(() => [..._cache[51] || (_cache[51] = [
createTextVNode(" 加载MySQL示例 ", -1)
])]),
_: 1
}),
createVNode(_component_el_button, {
type: "primary",
size: "small",
class: "ml-1 mb-1",
onClick: loadExamplePostgres
}, {
default: withCtx(() => [..._cache[52] || (_cache[52] = [
createTextVNode(" 加载Postgres示例 ", -1)
])]),
_: 1
}),
createVNode(_component_el_scrollbar, { "max-height": "72vh" }, {
default: withCtx(() => [
createBaseVNode("div", _hoisted_7, [
createVNode(_component_el_link, {
type: "primary",
onClick: handleCopyCode
}, {
default: withCtx(() => [
createVNode(_component_el_icon, null, {
default: withCtx(() => [
createVNode(unref(copy_document_default))
]),
_: 1
}),
_cache[53] || (_cache[53] = createTextVNode(" 复制代码 ", -1))
]),
_: 1
})
]),
createVNode(unref(R), {
ref_key: "sqlRef",
ref: sqlRef,
value: createContent.value,
"onUpdate:value": _cache[8] || (_cache[8] = ($event) => createContent.value = $event),
options: sqlOptions,
border: "",
height: "400px",
width: "100%"
}, null, 8, ["value"])
]),
_: 1
})
]),
_: 1
}, 8, ["modelValue"]),
createVNode(_component_el_dialog, {
modelValue: importVisible.value,
"onUpdate:modelValue": _cache[17] || (_cache[17] = ($event) => importVisible.value = $event),
title: "导入表",
width: "800px",
top: "5vh",
"append-to-body": ""
}, {
footer: withCtx(() => [
createBaseVNode("div", _hoisted_9, [
createVNode(_component_el_button, {
type: "primary",
loading: importLoading.value,
onClick: handleImportTable
}, {
default: withCtx(() => [..._cache[59] || (_cache[59] = [
createTextVNode(" 确 定 ", -1)
])]),
_: 1
}, 8, ["loading"]),
createVNode(_component_el_button, {
onClick: _cache[16] || (_cache[16] = ($event) => importVisible.value = false)
}, {
default: withCtx(() => [..._cache[60] || (_cache[60] = [
createTextVNode("取 消", -1)
])]),
_: 1
})
])
]),
default: withCtx(() => [
createVNode(_component_el_form, {
ref_key: "queryRef",
ref: queryRef,
model: importQueryFormData,
inline: true
}, {
default: withCtx(() => [
createVNode(_component_el_form_item, {
label: "表名称",
prop: "table_name"
}, {
default: withCtx(() => [
createVNode(_component_el_input, {
modelValue: importQueryFormData.table_name,
"onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => importQueryFormData.table_name = $event),
placeholder: "请输入表名称",
clearable: "",
style: { "width": "180px" },
onKeyup: withKeys(handleImportQuery, ["enter"])
}, null, 8, ["modelValue"])
]),
_: 1
}),
createVNode(_component_el_form_item, {
label: "表描述",
prop: "table_comment"
}, {
default: withCtx(() => [
createVNode(_component_el_input, {
modelValue: importQueryFormData.table_comment,
"onUpdate:modelValue": _cache[13] || (_cache[13] = ($event) => importQueryFormData.table_comment = $event),
placeholder: "请输入表描述",
clearable: "",
style: { "width": "180px" },
onKeyup: withKeys(handleImportQuery, ["enter"])
}, null, 8, ["modelValue"])
]),
_: 1
}),
createVNode(_component_el_form_item, null, {
default: withCtx(() => [
withDirectives((openBlock(), createBlock(_component_el_button, {
type: "primary",
icon: "Search",
onClick: handleImportQuery
}, {
default: withCtx(() => [..._cache[57] || (_cache[57] = [
createTextVNode(" 搜索 ", -1)
])]),
_: 1
})), [
[_directive_hasPerm, ["module_generator:dblist:query"]]
]),
withDirectives((openBlock(), createBlock(_component_el_button, {
icon: "Refresh",
onClick: handleImportReset
}, {
default: withCtx(() => [..._cache[58] || (_cache[58] = [
createTextVNode(" 重置 ", -1)
])]),
_: 1
})), [
[_directive_hasPerm, ["module_generator:dblist:query"]]
])
]),
_: 1
})
]),
_: 1
}, 8, ["model"]),
createVNode(_component_el_row, null, {
default: withCtx(() => [
createVNode(_component_el_table, {
ref_key: "table",
ref: table,
data: dbTableList.value,
height: "300px",
border: "",
onRowClick: clickRow,
onSelectionChange: handleImportTableSelectionChange
}, {
empty: withCtx(() => [
createVNode(_component_el_empty, {
"image-size": 80,
description: "暂无数据"
})
]),
default: withCtx(() => [
createVNode(_component_el_table_column, {
type: "selection",
width: "55"
}),
createVNode(_component_el_table_column, {
label: "序号",
type: "index",
"min-width": "30",
align: "center",
fixed: ""
}, {
default: withCtx((scope) => [
createBaseVNode("span", null, toDisplayString((importQueryFormData.page_no - 1) * importQueryFormData.page_size + scope.$index + 1), 1)
]),
_: 1
}),
createVNode(_component_el_table_column, {
prop: "database_name",
label: "数据库名称",
"show-overflow-tooltip": true
}),
createVNode(_component_el_table_column, {
prop: "table_name",
label: "表名称",
"show-overflow-tooltip": true
}),
createVNode(_component_el_table_column, {
prop: "table_comment",
label: "表描述",
"show-overflow-tooltip": true
}),
createVNode(_component_el_table_column, {
prop: "table_type",
label: "表类型"
})
]),
_: 1
}, 8, ["data"]),
createVNode(_component_pagination, {
page: importQueryFormData.page_no,
"onUpdate:page": _cache[14] || (_cache[14] = ($event) => importQueryFormData.page_no = $event),
limit: importQueryFormData.page_size,
"onUpdate:limit": _cache[15] || (_cache[15] = ($event) => importQueryFormData.page_size = $event),
total: importTotal.value,
onPagination: getDbList
}, null, 8, ["page", "limit", "total"])
]),
_: 1
})
]),
_: 1
}, 8, ["modelValue"]),
createVNode(_component_el_drawer, {
modelValue: editVisible.value,
"onUpdate:modelValue": _cache[40] || (_cache[40] = ($event) => editVisible.value = $event),
title: "【代码生成】" + info.table_name,
size: "85%",
onClose: handleClose
}, {
footer: withCtx(() => [
createVNode(_component_el_button, {
icon: unref(close_default),
onClick: close
}, {
default: withCtx(() => [..._cache[87] || (_cache[87] = [
createTextVNode("关闭", -1)
])]),
_: 1
}, 8, ["icon"]),
activeStep.value != 0 ? (openBlock(), createBlock(_component_el_button, {
key: 0,
type: "success",
icon: unref(back_default),
onClick: prevStep
}, {
default: withCtx(() => [..._cache[88] || (_cache[88] = [
createTextVNode(" 上一步 ", -1)
])]),
_: 1
}, 8, ["icon"])) : createCommentVNode("", true),
activeStep.value != 2 ? withDirectives((openBlock(), createBlock(_component_el_button, {
key: 1,
type: "warning",
icon: unref(edit_default),
loading: loading.value,
onClick: submitForm
}, {
default: withCtx(() => [..._cache[89] || (_cache[89] = [
createTextVNode(" 保存配置 ", -1)
])]),
_: 1
}, 8, ["icon", "loading"])), [
[_directive_hasPerm, ["module_generator:gencode:update"]]
]) : createCommentVNode("", true),
activeStep.value != 2 ? (openBlock(), createBlock(_component_el_button, {
key: 2,
type: "primary",
onClick: nextStep
}, {
default: withCtx(() => [
_cache[90] || (_cache[90] = createTextVNode(" 下一步 ", -1)),
createVNode(_component_el_icon, { class: "el-icon--right" }, {
default: withCtx(() => [
createVNode(unref(right_default))
]),
_: 1
})
]),
_: 1
})) : createCommentVNode("", true),
activeStep.value === 2 ? (openBlock(), createBlock(_component_el_button, {
key: 3,
type: "warning",
icon: unref(download_default),
loading: loading.value,
onClick: _cache[38] || (_cache[38] = ($event) => handleGenTable("0", info))
}, {
default: withCtx(() => [..._cache[91] || (_cache[91] = [
createTextVNode(" 下载代码 ", -1)
])]),
_: 1
}, 8, ["icon", "loading"])) : createCommentVNode("", true),
activeStep.value === 2 ? (openBlock(), createBlock(_component_el_button, {
key: 4,
type: "primary",
icon: unref(folder_opened_default),
loading: loading.value,
onClick: _cache[39] || (_cache[39] = ($event) => handleGenTable("1", info))
}, {
default: withCtx(() => [..._cache[92] || (_cache[92] = [
createTextVNode(" 写入本地 ", -1)
])]),
_: 1
}, 8, ["icon", "loading"])) : createCommentVNode("", true)
]),
default: withCtx(() => [
createVNode(_component_el_steps, {
active: activeStep.value,
"finish-status": "success",
simple: ""
}, {
default: withCtx(() => [
createVNode(_component_el_step, { title: "基础配置" }),
createVNode(_component_el_step, { title: "字段配置" }),
createVNode(_component_el_step, { title: "预览代码" })
]),
_: 1
}, 8, ["active"]),
createBaseVNode("div", _hoisted_10, [
withDirectives(createVNode(_component_el_form, {
ref_key: "basicInfo",
ref: basicInfo,
model: info,
rules,
"label-width": "150px"
}, {
default: withCtx(() => [
createVNode(_component_el_row, null, {
default: withCtx(() => [
createVNode(_component_el_col, { span: 12 }, {
default: withCtx(() => [
createVNode(_component_el_form_item, {
label: "表名称",
prop: "table_name"
}, {
default: withCtx(() => [
createVNode(_component_el_input, {
modelValue: info.table_name,
"onUpdate:modelValue": _cache[18] || (_cache[18] = ($event) => info.table_name = $event),
placeholder: "请输入表名称"
}, null, 8, ["modelValue"])
]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_col, { span: 12 }, {
default: withCtx(() => [
createVNode(_component_el_form_item, {
label: "表描述",
prop: "table_comment"
}, {
default: withCtx(() => [
createVNode(_component_el_input, {
modelValue: info.table_comment,
"onUpdate:modelValue": _cache[19] || (_cache[19] = ($event) => info.table_comment = $event),
placeholder: "请输入表描述"
}, null, 8, ["modelValue"])
]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_col, { span: 12 }, {
default: withCtx(() => [
createVNode(_component_el_form_item, {
label: "实体类名称",
prop: "class_name"
}, {
default: withCtx(() => [
createVNode(_component_el_input, {
modelValue: info.class_name,
"onUpdate:modelValue": _cache[20] || (_cache[20] = ($event) => info.class_name = $event),
placeholder: "请输入"
}, null, 8, ["modelValue"])
]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_col, { span: 12 }, {
default: withCtx(() => [
createVNode(_component_el_form_item, { prop: "package_name" }, {
label: withCtx(() => [
_cache[61] || (_cache[61] = createTextVNode(" 包名 ", -1)),
createVNode(_component_el_tooltip, {
content: "生成在哪个python模块下例如 module_gencode",
placement: "top"
}, {
default: withCtx(() => [
createVNode(_component_el_icon, null, {
default: withCtx(() => [
createVNode(unref(question_filled_default))
]),
_: 1
})
]),
_: 1
})
]),
default: withCtx(() => [
createVNode(_component_el_input, {
modelValue: info.package_name,
"onUpdate:modelValue": _cache[21] || (_cache[21] = ($event) => info.package_name = $event)
}, {
prepend: withCtx(() => [..._cache[62] || (_cache[62] = [
createTextVNode("接口路径: api/v1/", -1)
])]),
append: withCtx(() => [
createTextVNode("/" + toDisplayString(info.business_name), 1)
]),
_: 1
}, 8, ["modelValue"])
]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_col, { span: 12 }, {
default: withCtx(() => [
createVNode(_component_el_form_item, { prop: "module_name" }, {
label: withCtx(() => [
_cache[63] || (_cache[63] = createTextVNode(" 模块名 ", -1)),
createVNode(_component_el_tooltip, {
content: "可理解为子系统名,例如 system",
placement: "top"
}, {
default: withCtx(() => [
createVNode(_component_el_icon, null, {
default: withCtx(() => [
createVNode(unref(question_filled_default))
]),
_: 1
})
]),
_: 1
})
]),
default: withCtx(() => [
createVNode(_component_el_input, {
modelValue: info.module_name,
"onUpdate:modelValue": _cache[22] || (_cache[22] = ($event) => info.module_name = $event)
}, null, 8, ["modelValue"])
]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_col, { span: 12 }, {
default: withCtx(() => [
createVNode(_component_el_form_item, { prop: "business_name" }, {
label: withCtx(() => [
_cache[64] || (_cache[64] = createTextVNode(" 业务名 ", -1)),
createVNode(_component_el_tooltip, {
content: "可理解为功能英文名,例如 user",
placement: "top"
}, {
default: withCtx(() => [
createVNode(_component_el_icon, null, {
default: withCtx(() => [
createVNode(unref(question_filled_default))
]),
_: 1
})
]),
_: 1
})
]),
default: withCtx(() => [
createVNode(_component_el_input, {
modelValue: info.business_name,
"onUpdate:modelValue": _cache[23] || (_cache[23] = ($event) => info.business_name = $event)
}, null, 8, ["modelValue"])
]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_col, { span: 12 }, {
default: withCtx(() => [
createVNode(_component_el_form_item, { prop: "function_name" }, {
label: withCtx(() => [
_cache[65] || (_cache[65] = createTextVNode(" 功能名 ", -1)),
createVNode(_component_el_tooltip, {
content: "用作类描述,例如 用户",
placement: "top"
}, {
default: withCtx(() => [
createVNode(_component_el_icon, null, {
default: withCtx(() => [
createVNode(unref(question_filled_default))
]),
_: 1
})
]),
_: 1
})
]),
default: withCtx(() => [
createVNode(_component_el_input, {
modelValue: info.function_name,
"onUpdate:modelValue": _cache[24] || (_cache[24] = ($event) => info.function_name = $event)
}, null, 8, ["modelValue"])
]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_col, { span: 12 }, {
default: withCtx(() => [
createVNode(_component_el_form_item, null, {
label: withCtx(() => [
_cache[66] || (_cache[66] = createTextVNode(" 上级菜单 ", -1)),
createVNode(_component_el_tooltip, {
content: "分配到指定菜单下,例如 系统管理",
placement: "top"
}, {
default: withCtx(() => [
createVNode(_component_el_icon, null, {
default: withCtx(() => [
createVNode(unref(question_filled_default))
]),
_: 1
})
]),
_: 1
})
]),
default: withCtx(() => [
createVNode(_component_el_tree_select, {
modelValue: info.parent_menu_id,
"onUpdate:modelValue": _cache[25] || (_cache[25] = ($event) => info.parent_menu_id = $event),
data: menuOptions.value,
placeholder: "请选择系统菜单,不选创建目录",
"check-strictly": "",
"show-checkbox": "",
filterable: "",
"render-after-expand": false,
clearable: ""
}, null, 8, ["modelValue", "data"])
]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_col, { span: 24 }, {
default: withCtx(() => [
createVNode(_component_el_form_item, {
label: "备注",
prop: "description"
}, {
default: withCtx(() => [
createVNode(_component_el_input, {
modelValue: info.description,
"onUpdate:modelValue": _cache[26] || (_cache[26] = ($event) => info.description = $event),
type: "textarea",
rows: 3
}, null, 8, ["modelValue"])
]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_divider, null, {
default: withCtx(() => [..._cache[67] || (_cache[67] = [
createTextVNode("生成文件路径", -1)
])]),
_: 1
}),
createVNode(_component_el_col, { span: 24 }, {
default: withCtx(() => [
createVNode(_component_el_descriptions, {
column: 2,
border: ""
}, {
default: withCtx(() => [
createVNode(_component_el_descriptions_item, {
label: info.function_name + "功能,后端控制层"
}, {
default: withCtx(() => [
createTextVNode(" backend/app/api/v1/" + toDisplayString(info.module_name) + "/" + toDisplayString(info.business_name) + "/controller.py ", 1)
]),
_: 1
}, 8, ["label"]),
createVNode(_component_el_descriptions_item, {
label: info.function_name + "功能,后端业务层"
}, {
default: withCtx(() => [
createTextVNode(" backend/app/api/v1/" + toDisplayString(info.module_name) + "/" + toDisplayString(info.business_name) + "/service.py ", 1)
]),
_: 1
}, 8, ["label"]),
createVNode(_component_el_descriptions_item, {
label: info.function_name + "功能,后端数据层"
}, {
default: withCtx(() => [
createTextVNode(" backend/app/api/v1/" + toDisplayString(info.module_name) + "/" + toDisplayString(info.business_name) + "/crud.py ", 1)
]),
_: 1
}, 8, ["label"]),
createVNode(_component_el_descriptions_item, {
label: info.function_name + "功能,后端实体层"
}, {
default: withCtx(() => [
createTextVNode(" backend/app/api/v1/" + toDisplayString(info.module_name) + "/" + toDisplayString(info.business_name) + "/model.py ", 1)
]),
_: 1
}, 8, ["label"]),
createVNode(_component_el_descriptions_item, {
label: info.function_name + "功能,后端序列化层"
}, {
default: withCtx(() => [
createTextVNode(" backend/app/api/v1/" + toDisplayString(info.module_name) + "/" + toDisplayString(info.business_name) + "/schema.py ", 1)
]),
_: 1
}, 8, ["label"]),
createVNode(_component_el_descriptions_item, {
label: info.function_name + "功能,后端初始化"
}, {
default: withCtx(() => [
createTextVNode(" backend/app/api/v1/" + toDisplayString(info.module_name) + "/" + toDisplayString(info.business_name) + "/__init__.py ", 1)
]),
_: 1
}, 8, ["label"]),
createVNode(_component_el_descriptions_item, {
label: info.function_name + "功能,前端接口层"
}, {
default: withCtx(() => [
createTextVNode(" frontend/src/api/" + toDisplayString(info.module_name) + "/" + toDisplayString(info.business_name) + ".ts ", 1)
]),
_: 1
}, 8, ["label"]),
createVNode(_component_el_descriptions_item, {
label: info.function_name + "功能,前端视图层"
}, {
default: withCtx(() => [
createTextVNode(" frontend/src/views/" + toDisplayString(info.module_name) + "/" + toDisplayString(info.business_name) + "/index.vue ", 1)
]),
_: 1
}, 8, ["label"])
]),
_: 1
})
]),
_: 1
})
]),
_: 1
})
]),
_: 1
}, 8, ["model"]), [
[vShow, activeStep.value == 0]
]),
withDirectives(createBaseVNode("div", _hoisted_11, [
createBaseVNode("div", _hoisted_12, [
createVNode(_component_el_tag, {
size: "small",
type: "info"
}, {
default: withCtx(() => [..._cache[68] || (_cache[68] = [
createTextVNode("批量设置", -1)
])]),
_: 1
}),
createVNode(_component_el_space, { size: "small" }, {
default: withCtx(() => [
createVNode(_component_el_dropdown, null, {
dropdown: withCtx(() => [
createVNode(_component_el_dropdown_menu, null, {
default: withCtx(() => [
createVNode(_component_el_dropdown_item, {
onClick: _cache[27] || (_cache[27] = ($event) => bulkSet("is_query", true))
}, {
default: withCtx(() => [..._cache[70] || (_cache[70] = [
createTextVNode("全选", -1)
])]),
_: 1
}),
createVNode(_component_el_dropdown_item, {
onClick: _cache[28] || (_cache[28] = ($event) => bulkSet("is_query", false))
}, {
default: withCtx(() => [..._cache[71] || (_cache[71] = [
createTextVNode("全不选", -1)
])]),
_: 1
})
]),
_: 1
})
]),
default: withCtx(() => [
createVNode(_component_el_button, {
size: "small",
type: "primary",
plain: ""
}, {
default: withCtx(() => [..._cache[69] || (_cache[69] = [
createTextVNode("查询", -1)
])]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_dropdown, null, {
dropdown: withCtx(() => [
createVNode(_component_el_dropdown_menu, null, {
default: withCtx(() => [
createVNode(_component_el_dropdown_item, {
onClick: _cache[29] || (_cache[29] = ($event) => bulkSet("is_list", true))
}, {
default: withCtx(() => [..._cache[73] || (_cache[73] = [
createTextVNode("全选", -1)
])]),
_: 1
}),
createVNode(_component_el_dropdown_item, {
onClick: _cache[30] || (_cache[30] = ($event) => bulkSet("is_list", false))
}, {
default: withCtx(() => [..._cache[74] || (_cache[74] = [
createTextVNode("全不选", -1)
])]),
_: 1
})
]),
_: 1
})
]),
default: withCtx(() => [
createVNode(_component_el_button, {
size: "small",
type: "success",
plain: ""
}, {
default: withCtx(() => [..._cache[72] || (_cache[72] = [
createTextVNode("列表", -1)
])]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_dropdown, null, {
dropdown: withCtx(() => [
createVNode(_component_el_dropdown_menu, null, {
default: withCtx(() => [
createVNode(_component_el_dropdown_item, {
onClick: _cache[31] || (_cache[31] = ($event) => bulkSet("is_insert", true))
}, {
default: withCtx(() => [..._cache[76] || (_cache[76] = [
createTextVNode("全选", -1)
])]),
_: 1
}),
createVNode(_component_el_dropdown_item, {
onClick: _cache[32] || (_cache[32] = ($event) => bulkSet("is_insert", false))
}, {
default: withCtx(() => [..._cache[77] || (_cache[77] = [
createTextVNode("全不选", -1)
])]),
_: 1
})
]),
_: 1
})
]),
default: withCtx(() => [
createVNode(_component_el_button, {
size: "small",
type: "warning",
plain: ""
}, {
default: withCtx(() => [..._cache[75] || (_cache[75] = [
createTextVNode("新增", -1)
])]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_dropdown, null, {
dropdown: withCtx(() => [
createVNode(_component_el_dropdown_menu, null, {
default: withCtx(() => [
createVNode(_component_el_dropdown_item, {
onClick: _cache[33] || (_cache[33] = ($event) => bulkSet("is_edit", true))
}, {
default: withCtx(() => [..._cache[79] || (_cache[79] = [
createTextVNode("全选", -1)
])]),
_: 1
}),
createVNode(_component_el_dropdown_item, {
onClick: _cache[34] || (_cache[34] = ($event) => bulkSet("is_edit", false))
}, {
default: withCtx(() => [..._cache[80] || (_cache[80] = [
createTextVNode("全不选", -1)
])]),
_: 1
})
]),
_: 1
})
]),
default: withCtx(() => [
createVNode(_component_el_button, {
size: "small",
type: "danger",
plain: ""
}, {
default: withCtx(() => [..._cache[78] || (_cache[78] = [
createTextVNode("编辑", -1)
])]),
_: 1
})
]),
_: 1
})
]),
_: 1
})
]),
withDirectives((openBlock(), createBlock(_component_el_table, {
ref_key: "dragTable",
ref: dragTable,
data: info.columns,
"row-key": "id",
"max-height": "680",
"highlight--currentrow": "",
class: "data-table__content",
border: "",
stripe: ""
}, {
empty: withCtx(() => [
createVNode(_component_el_empty, {
"image-size": 80,
description: "暂无数据"
})
]),
default: withCtx(() => [
createVNode(_component_el_table_column, {
label: "序号",
type: "index",
width: "60",
fixed: ""
}),
createVNode(_component_el_table_column, {
label: "列名",
prop: "column_name",
"min-width": "60",
"show-overflow-tooltip": true
}),
createVNode(_component_el_table_column, {
label: "类型",
prop: "column_type",
"min-width": "60",
"show-overflow-tooltip": true
}),
createVNode(_component_el_table_column, {
label: "长度",
prop: "column_length",
width: "80",
"show-overflow-tooltip": true
}, {
default: withCtx((scope) => [
createVNode(_component_el_input, {
modelValue: scope.row.column_length,
"onUpdate:modelValue": ($event) => scope.row.column_length = $event,
disabled: scope.row.is_pk === "1"
}, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "注释",
"min-width": "60"
}, {
default: withCtx((scope) => [
createVNode(_component_el_input, {
modelValue: scope.row.column_comment,
"onUpdate:modelValue": ($event) => scope.row.column_comment = $event
}, null, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "后端类型",
"min-width": "60"
}, {
default: withCtx((scope) => [
createVNode(_component_el_select, {
modelValue: scope.row.python_type,
"onUpdate:modelValue": ($event) => scope.row.python_type = $event
}, {
default: withCtx(() => [
createVNode(_component_el_option, {
label: "str",
value: "str"
}),
createVNode(_component_el_option, {
label: "int",
value: "int"
}),
createVNode(_component_el_option, {
label: "float",
value: "float"
}),
createVNode(_component_el_option, {
label: "Decimal",
value: "Decimal"
}),
createVNode(_component_el_option, {
label: "date",
value: "date"
}),
createVNode(_component_el_option, {
label: "time",
value: "time"
}),
createVNode(_component_el_option, {
label: "datetime",
value: "datetime"
}),
createVNode(_component_el_option, {
label: "bytes",
value: "bytes"
}),
createVNode(_component_el_option, {
label: "dict",
value: "dict"
}),
createVNode(_component_el_option, {
label: "list",
value: "list"
})
]),
_: 1
}, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "后端属性",
"min-width": "60"
}, {
default: withCtx((scope) => [
createVNode(_component_el_input, {
modelValue: scope.row.python_field,
"onUpdate:modelValue": ($event) => scope.row.python_field = $event
}, null, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "新增",
width: "60"
}, {
default: withCtx((scope) => [
createVNode(_component_el_checkbox, {
modelValue: scope.row.is_insert,
"onUpdate:modelValue": ($event) => scope.row.is_insert = $event
}, null, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "编辑",
width: "60"
}, {
default: withCtx((scope) => [
createVNode(_component_el_checkbox, {
modelValue: scope.row.is_edit,
"onUpdate:modelValue": ($event) => scope.row.is_edit = $event
}, null, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "列表",
width: "60"
}, {
default: withCtx((scope) => [
createVNode(_component_el_checkbox, {
modelValue: scope.row.is_list,
"onUpdate:modelValue": ($event) => scope.row.is_list = $event
}, null, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "查询",
width: "60"
}, {
default: withCtx((scope) => [
createVNode(_component_el_checkbox, {
modelValue: scope.row.is_query,
"onUpdate:modelValue": ($event) => scope.row.is_query = $event
}, null, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "查询方式",
"min-width": "60"
}, {
default: withCtx((scope) => [
createVNode(_component_el_select, {
modelValue: scope.row.query_type,
"onUpdate:modelValue": ($event) => scope.row.query_type = $event
}, {
default: withCtx(() => [
createVNode(_component_el_option, {
label: "=",
value: "EQ"
}),
createVNode(_component_el_option, {
label: "!=",
value: "NE"
}),
createVNode(_component_el_option, {
label: ">",
value: "GT"
}),
createVNode(_component_el_option, {
label: ">=",
value: "GTE"
}),
createVNode(_component_el_option, {
label: "<",
value: "LT"
}),
createVNode(_component_el_option, {
label: "<=",
value: "LTE"
}),
createVNode(_component_el_option, {
label: "LIKE",
value: "LIKE"
}),
createVNode(_component_el_option, {
label: "BETWEEN",
value: "BETWEEN"
})
]),
_: 1
}, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "默认值",
prop: "column_default",
"min-width": "60",
"show-overflow-tooltip": true
}, {
default: withCtx((scope) => [
createVNode(_component_el_input, {
modelValue: scope.row.column_default,
"onUpdate:modelValue": ($event) => scope.row.column_default = $event,
disabled: scope.row.is_pk === "1"
}, null, 8, ["modelValue", "onUpdate:modelValue", "disabled"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "自增",
width: "60"
}, {
default: withCtx((scope) => [
createVNode(_component_el_checkbox, {
modelValue: scope.row.is_increment,
"onUpdate:modelValue": ($event) => scope.row.is_increment = $event
}, null, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "可空",
width: "60"
}, {
default: withCtx((scope) => [
createVNode(_component_el_checkbox, {
modelValue: scope.row.is_nullable,
"onUpdate:modelValue": ($event) => scope.row.is_nullable = $event
}, null, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "唯一",
width: "60"
}, {
default: withCtx((scope) => [
createVNode(_component_el_checkbox, {
modelValue: scope.row.is_unique,
"onUpdate:modelValue": ($event) => scope.row.is_unique = $event
}, null, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "主键",
width: "60"
}, {
default: withCtx((scope) => [
createVNode(_component_el_checkbox, {
modelValue: scope.row.is_pk,
"onUpdate:modelValue": ($event) => scope.row.is_pk = $event
}, null, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(_component_el_table_column, { label: "表单类型" }, {
default: withCtx((scope) => [
createVNode(_component_el_select, {
modelValue: scope.row.html_type,
"onUpdate:modelValue": ($event) => scope.row.html_type = $event
}, {
default: withCtx(() => [
createVNode(_component_el_option, {
label: "文本框",
value: "input"
}),
createVNode(_component_el_option, {
label: "文本域",
value: "textarea"
}),
createVNode(_component_el_option, {
label: "下拉框",
value: "select"
}),
createVNode(_component_el_option, {
label: "单选框",
value: "radio"
}),
createVNode(_component_el_option, {
label: "复选框",
value: "checkbox"
}),
createVNode(_component_el_option, {
label: "日期控件",
value: "datetime"
}),
createVNode(_component_el_option, {
label: "图片上传",
value: "imageUpload"
}),
createVNode(_component_el_option, {
label: "文件上传",
value: "fileUpload"
}),
createVNode(_component_el_option, {
label: "富文本控件",
value: "editor"
})
]),
_: 1
}, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
}),
createVNode(_component_el_table_column, {
label: "字典类型",
fixed: "right"
}, {
default: withCtx((scope) => [
createVNode(_component_el_select, {
modelValue: scope.row.dict_type,
"onUpdate:modelValue": ($event) => scope.row.dict_type = $event,
clearable: "",
filterable: "",
placeholder: "请选择"
}, {
default: withCtx(() => [
(openBlock(true), createElementBlock(Fragment, null, renderList(dictOptions.value, (dict) => {
return openBlock(), createBlock(_component_el_option, {
key: dict.dict_type,
label: dict.dict_name,
value: dict.dict_type || ""
}, {
default: withCtx(() => [
createBaseVNode("span", _hoisted_13, toDisplayString(dict.dict_name), 1),
createBaseVNode("span", _hoisted_14, toDisplayString(dict.dict_type), 1)
]),
_: 2
}, 1032, ["label", "value"]);
}), 128))
]),
_: 1
}, 8, ["modelValue", "onUpdate:modelValue"])
]),
_: 1
})
]),
_: 1
}, 8, ["data"])), [
[_directive_loading, loading.value]
])
], 512), [
[vShow, activeStep.value == 1]
]),
withDirectives(createVNode(_component_el_row, null, {
default: withCtx(() => [
createVNode(_component_el_col, {
span: 24,
class: "mb-2"
}, {
default: withCtx(() => [
createBaseVNode("div", _hoisted_15, [
_cache[84] || (_cache[84] = createBaseVNode("span", { class: "text-sm color-#909399" }, "预览范围", -1)),
createVNode(_component_el_radio_group, {
modelValue: previewScope.value,
"onUpdate:modelValue": _cache[35] || (_cache[35] = ($event) => previewScope.value = $event),
size: "small"
}, {
default: withCtx(() => [
createVNode(_component_el_radio_button, { value: "all" }, {
default: withCtx(() => [..._cache[81] || (_cache[81] = [
createTextVNode("全部", -1)
])]),
_: 1
}),
createVNode(_component_el_radio_button, { value: "frontend" }, {
default: withCtx(() => [..._cache[82] || (_cache[82] = [
createTextVNode("前端", -1)
])]),
_: 1
}),
createVNode(_component_el_radio_button, { value: "backend" }, {
default: withCtx(() => [..._cache[83] || (_cache[83] = [
createTextVNode("后端", -1)
])]),
_: 1
})
]),
_: 1
}, 8, ["modelValue"]),
_cache[85] || (_cache[85] = createBaseVNode("span", { class: "ml-3 text-sm color-#909399" }, "类型", -1)),
createVNode(_component_el_checkbox_group, {
modelValue: previewTypes.value,
"onUpdate:modelValue": _cache[36] || (_cache[36] = ($event) => previewTypes.value = $event),
size: "small"
}, {
default: withCtx(() => [
(openBlock(), createElementBlock(Fragment, null, renderList(previewTypeOptions, (t) => {
return createVNode(_component_el_checkbox_button, {
key: t,
value: t
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(t), 1)
]),
_: 2
}, 1032, ["value"]);
}), 64))
]),
_: 1
}, 8, ["modelValue"])
])
]),
_: 1
}),
createVNode(_component_el_col, { span: 6 }, {
default: withCtx(() => [
createVNode(_component_el_scrollbar, { "max-height": "72vh" }, {
default: withCtx(() => [
createVNode(_component_el_tree, {
data: filteredTreeData.value,
"default-expand-all": "",
"highlight-current": "",
onNodeClick: handleFileTreeNodeClick
}, {
default: withCtx(({ data }) => [
createBaseVNode("div", {
class: normalizeClass(`i-svg:${getFileTreeNodeIcon(data.label)}`)
}, null, 2),
createBaseVNode("span", _hoisted_16, toDisplayString(data.label), 1)
]),
_: 1
}, 8, ["data"])
]),
_: 1
})
]),
_: 1
}),
createVNode(_component_el_col, { span: 18 }, {
default: withCtx(() => [
createVNode(_component_el_scrollbar, { "max-height": "72vh" }, {
default: withCtx(() => [
createBaseVNode("div", _hoisted_17, [
createVNode(_component_el_link, {
type: "primary",
onClick: handleCopyCode
}, {
default: withCtx(() => [
createVNode(_component_el_icon, null, {
default: withCtx(() => [
createVNode(unref(copy_document_default))
]),
_: 1
}),
_cache[86] || (_cache[86] = createTextVNode(" 复制代码 ", -1))
]),
_: 1
})
]),
createVNode(unref(R), {
ref_key: "cmRef",
ref: cmRef,
value: code.value,
"onUpdate:value": _cache[37] || (_cache[37] = ($event) => code.value = $event),
options: cmOptions,
border: "",
readonly: true,
height: "100%",
width: "100%"
}, null, 8, ["value"])
]),
_: 1
})
]),
_: 1
})
]),
_: 1
}, 512), [
[vShow, activeStep.value == 2]
])
])
]),
_: 1
}, 8, ["modelValue", "title"])
]);
};
}
});
export {
_sfc_main as default
};