refactor: 优化代码规范和可读性

This commit is contained in:
Ray.Hao
2026-05-25 22:22:42 +08:00
parent e3e5b87f89
commit 2a538d7da7
56 changed files with 324 additions and 294 deletions

View File

@@ -111,7 +111,7 @@
<el-table-column label="字段信息" min-width="360">
<template #default="{ row }">
<div class="flex items-start gap-3">
<div class="field-info" style=" flex-shrink: 0;width: 140px">
<div class="field-info" style="flex-shrink: 0; width: 140px">
<div class="flex items-center gap-2">
<span class="font-medium text-sm">{{ row.columnName }}</span>
<el-tag v-if="row.isPrimaryKey" size="small" type="warning" effect="dark">

View File

@@ -30,8 +30,8 @@
@filter-change="handleFilterChange"
>
<template #status="scope">
<el-tag :type="scope.row[scope.prop] == 1 ? 'success' : 'info'">
{{ scope.row[scope.prop] == 1 ? "启用" : "禁用" }}
<el-tag :type="scope.row[scope.prop] === 1 ? 'success' : 'info'">
{{ scope.row[scope.prop] === 1 ? "启用" : "禁用" }}
</el-tag>
</template>
<template #gender="scope">
@@ -187,13 +187,11 @@ const contentConfig: IContentConfig<UserQueryParams, UserItem> = reactive({
},
exportAction: UserAPI.export,
importTemplate: UserAPI.downloadTemplate,
importsAction(data: any) {
console.log("importsAction", data);
importsAction() {
return Promise.resolve();
},
async exportsAction(params: any) {
const data = await UserAPI.getPage(params);
console.log("exportsAction", data.list);
return data.list;
},
pk: "id",
@@ -299,9 +297,6 @@ const addModalConfig: IModalConfig<UserForm> = reactive({
labelWidth: 100,
},
formAction: UserAPI.create,
beforeSubmit(data: any) {
console.log("提交之前处理", data);
},
formItems: [
{
label: "用户名",
@@ -415,9 +410,6 @@ const editModalConfig: IModalConfig<UserForm> = reactive({
size: useAppStore().device === DeviceEnum.MOBILE ? "80%" : 500,
},
pk: "id",
beforeSubmit(data: any) {
console.log("beforeSubmit", data);
},
formAction(data: any) {
return UserAPI.update(data.id as string, data);
},
@@ -539,7 +531,6 @@ const {
// 其他工具
function handleToolbarClick(name: string) {
console.log(name);
if (name === "custom1") {
ElMessage.success("点击了自定义1按钮");
}

View File

@@ -14,9 +14,6 @@ const modalConfig: IModalConfig<UserForm> = {
labelWidth: 100,
},
formAction: UserAPI.create,
beforeSubmit(data) {
console.log("提交之前处理", data);
},
formItems: [
{
label: "用户名",

View File

@@ -24,15 +24,13 @@ const contentConfig: IContentConfig<UserQueryParams, UserItem> = {
},
exportAction: UserAPI.export,
importTemplate: UserAPI.downloadTemplate,
importsAction(data) {
importsAction() {
// 模拟导入数据
console.log("importsAction", data);
return Promise.resolve();
},
async exportsAction(params) {
// 模拟获取到的是全量数据
const data = await UserAPI.getPage(params);
console.log("exportsAction", data.list);
return data.list;
},
pk: "id",

View File

@@ -13,9 +13,6 @@ const modalConfig: IModalConfig<UserForm> = {
size: useAppStore().device === DeviceEnum.MOBILE ? "80%" : 500,
},
pk: "id",
beforeSubmit(data) {
console.log("beforeSubmit", data);
},
formAction(data) {
return UserAPI.update(data.id as string, data);
},

View File

@@ -30,7 +30,6 @@ const contentConfig: IContentConfig<DemoQueryParams, DemoItem> = {
toolbar: [],
indexAction(params) {
// 模拟发起网络请求获取列表数据
console.log("indexAction:", params);
const list = [
{
id: 1,
@@ -74,7 +73,6 @@ const contentConfig: IContentConfig<DemoQueryParams, DemoItem> = {
},
modifyAction(data) {
// 模拟发起网络请求修改字段
// console.log("modifyAction:", data);
ElMessage.success(JSON.stringify(data));
return Promise.resolve(null);
},

View File

@@ -12,9 +12,6 @@ const modalConfig: IModalConfig = {
size: useAppStore().device === DeviceEnum.MOBILE ? "80%" : 500,
},
form: { labelPosition: "right", labelWidth: "auto" },
beforeSubmit(data) {
console.log("beforeSubmit", data);
},
formAction(data) {
// return UserAPI.update(data.id as string, data);
// 模拟发起网络请求修改字段

View File

@@ -15,8 +15,7 @@ const searchConfig: ISearchConfig = {
prop: "testInput",
attrs: { placeholder: "请输入", clearable: true },
events: {
change: (e) => {
console.log("输入框的值: ", e);
change: () => {
// 级联操作示例需要使用reactive提前定义数组
// selectOptions.push({ label: e, value: e });
},
@@ -35,9 +34,7 @@ const searchConfig: ISearchConfig = {
attrs: { placeholder: "全部", clearable: true },
options: stateArr as any,
events: {
change(e) {
console.log("选中的值: ", e);
},
change() {},
},
},
{

View File

@@ -33,8 +33,8 @@
@filter-change="handleFilterChange"
>
<template #status="scope">
<el-tag :type="scope.row[scope.prop] == 1 ? 'success' : 'info'">
{{ scope.row[scope.prop] == 1 ? "启用" : "禁用" }}
<el-tag :type="scope.row[scope.prop] === 1 ? 'success' : 'info'">
{{ scope.row[scope.prop] === 1 ? "启用" : "禁用" }}
</el-tag>
</template>
<template #gender="scope">
@@ -91,8 +91,8 @@
@operate-click="handleOperateClick2"
>
<template #status="scope">
<el-tag :type="scope.row[scope.prop] == 1 ? 'success' : 'info'">
{{ scope.row[scope.prop] == 1 ? "启用" : "禁用" }}
<el-tag :type="scope.row[scope.prop] === 1 ? 'success' : 'info'">
{{ scope.row[scope.prop] === 1 ? "启用" : "禁用" }}
</el-tag>
</template>
</page-content>
@@ -145,7 +145,6 @@ const {
// 其他工具
function handleToolbarClick(name: string) {
console.log(name);
if (name === "custom1") {
ElMessage.success("点击了自定义1按钮");
}
@@ -203,8 +202,7 @@ const addModalRef2 = ref();
const openSecondModal = () => {
handleAddClick(addModalRef2 as Ref<PageModalInstance>);
};
const secondSubmit = (formData: any) => {
console.log("secondSubmit", formData);
const secondSubmit = () => {
ElMessage.success("二级弹窗提交成功");
};

View File

@@ -11,7 +11,6 @@ defineOptions({
});
const route = useRoute();
console.log(route);
const value = ref("");
</script>

View File

@@ -17,7 +17,4 @@ import MultiLevel2 from "../level2.vue";
defineOptions({ name: "MultiLevel31" });
const value = ref("");
onMounted(() => {
console.log("Multilevel31 onMounted");
});
</script>

View File

@@ -17,7 +17,4 @@ import MultiLevel2 from "../level2.vue";
defineOptions({ name: "MultiLevel32" });
const value = ref("");
onMounted(() => {
console.log("Multilevel32 onMounted");
});
</script>

View File

@@ -6,8 +6,4 @@
defineOptions({ name: "MultiLevel2" });
const value = ref("");
onMounted(() => {
console.log("MultiLevel2 mounted");
});
</script>

View File

@@ -3,8 +3,4 @@
</template>
<script setup lang="ts">
defineOptions({ name: "MultiLevel1" });
onMounted(() => {
console.log("MultiLevel1 mounted");
});
</script>

View File

@@ -104,7 +104,7 @@ const isCanvasBlank = (canvas: HTMLCanvasElement) => {
const blank = document.createElement("canvas"); //系统获取一个空canvas对象
blank.width = canvas.width;
blank.height = canvas.height;
return canvas.toDataURL() == blank.toDataURL(); //比较值相等则为空
return canvas.toDataURL() === blank.toDataURL(); //比较值相等则为空
};
// 保存为图片

View File

@@ -11,8 +11,8 @@
</el-link>
<table-select :text="text" :select-config="selectConfig" @confirm-click="handleConfirm">
<template #status="scope">
<el-tag :type="scope.row[scope.prop] == 1 ? 'success' : 'info'">
{{ scope.row[scope.prop] == 1 ? "启用" : "禁用" }}
<el-tag :type="scope.row[scope.prop] === 1 ? 'success' : 'info'">
{{ scope.row[scope.prop] === 1 ? "启用" : "禁用" }}
</el-tag>
</template>
<template #gender="scope">
@@ -46,7 +46,9 @@ function handleConfirm(data: IUser[]) {
const text = computed(() => {
// 获取字典数据
const dictData = dictStore.getDictItems("gender");
const genderLabel = dictData.find((item: any) => item.value == selectedUser.value?.gender)?.label;
const genderLabel = dictData.find(
(item) => String(item.value) === String(selectedUser.value?.gender)
)?.label;
return selectedUser.value
? `${selectedUser.value.username} - ${genderLabel} - ${selectedUser.value.deptName}`
: "";

View File

@@ -348,8 +348,7 @@ const gridOptions = reactive<VxeGridProps<RowMeta>>({
},
ajax: {
// 接收 Promise
query: ({ page: { currentPage, pageSize }, form, filters, sort, sorts }) => {
console.log({ currentPage, pageSize, form, filters, sort, sorts });
query: ({ page: { currentPage, pageSize } }) => {
return new Promise<{ total: number; result: RowMeta[] }>((resolve) => {
setTimeout(() => {
const list = [
@@ -465,9 +464,7 @@ const gridOptions = reactive<VxeGridProps<RowMeta>>({
});
const gridEvents: VxeGridListeners<RowMeta> = {
// 只对 form-config 配置时有效,表单重置时会触发该事件
formReset() {
console.log("Form Reset");
},
formReset() {},
};
// #endregion
@@ -593,7 +590,10 @@ const curd = {
},
/** 确定并保存 */
onSubmitForm: () => {
console.log("提交表单");
VXETable.modal.message({
content: "提交成功",
status: "success",
});
},
onDelete: (row?: RowMeta) => {
let ids = [];
@@ -614,7 +614,10 @@ const curd = {
VXETable.modal.confirm("确定要删除吗?").then((type) => {
if (type === "confirm") {
// 执行删除操作
console.log("删除的ID", ids);
VXETable.modal.message({
content: `已删除 ${ids.length} 条数据`,
status: "success",
});
}
});
},

View File

@@ -186,7 +186,7 @@
<footer class="login-card__footer">
<el-text size="small">
Copyright © 2021 - 2025 youlai.tech
Copyright © 2021 - 2026 youlai.tech
<a href="http://beian.miit.gov.cn/" target="_blank">皖ICP备00064962号</a>
</el-text>
</footer>

View File

@@ -53,7 +53,7 @@
<el-table-column align="center" label="发布人" prop="publisherName" width="150" />
<el-table-column align="center" label="状态" width="100">
<template #default="scope">
<el-tag v-if="scope.row.isRead == 1" type="success">已读</el-tag>
<el-tag v-if="scope.row.isRead === 1" type="success">已读</el-tag>
<el-tag v-else type="info">未读</el-tag>
</template>
</el-table-column>

View File

@@ -62,7 +62,7 @@
<el-table-column prop="code" label="部门编号" width="200" />
<el-table-column prop="status" label="状态" width="100">
<template #default="scope">
<el-tag v-if="scope.row.status == 1" type="success">正常</el-tag>
<el-tag v-if="scope.row.status === 1" type="success">正常</el-tag>
<el-tag v-else type="info">禁用</el-tag>
</template>
</el-table-column>

View File

@@ -89,7 +89,7 @@
<el-table-column fixed="right" align="center" label="操作" width="220">
<template #default="scope">
<el-button
v-if="scope.row.type == MenuTypeEnum.CATALOG || scope.row.type == MenuTypeEnum.MENU"
v-if="scope.row.type === MenuTypeEnum.CATALOG || scope.row.type === MenuTypeEnum.MENU"
v-hasPerm="['sys:menu:create']"
type="primary"
link
@@ -155,7 +155,10 @@
</el-radio-group>
</el-form-item>
<el-form-item v-if="formData.type == MenuTypeEnum.MENU && !isExternalLink" prop="routeName">
<el-form-item
v-if="formData.type === MenuTypeEnum.MENU && !isExternalLink"
prop="routeName"
>
<template #label>
<div class="flex-y-center">
路由名称
@@ -173,7 +176,7 @@
</el-form-item>
<el-form-item
v-if="formData.type == MenuTypeEnum.CATALOG || formData.type == MenuTypeEnum.MENU"
v-if="formData.type === MenuTypeEnum.CATALOG || formData.type === MenuTypeEnum.MENU"
prop="routePath"
>
<template #label>
@@ -191,14 +194,17 @@
</div>
</template>
<el-input
v-if="formData.type == MenuTypeEnum.CATALOG"
v-if="formData.type === MenuTypeEnum.CATALOG"
v-model="formData.routePath"
placeholder="system"
/>
<el-input v-else v-model="formData.routePath" placeholder="user 或 https://example.com" />
</el-form-item>
<el-form-item v-if="formData.type == MenuTypeEnum.MENU && !isExternalLink" prop="component">
<el-form-item
v-if="formData.type === MenuTypeEnum.MENU && !isExternalLink"
prop="component"
>
<template #label>
<div class="flex-y-center">
组件路径
@@ -214,12 +220,12 @@
</template>
<el-input v-model="formData.component" placeholder="system/user/index" style="width: 95%">
<template v-if="formData.type == MenuTypeEnum.MENU" #prepend>src/views/</template>
<template v-if="formData.type == MenuTypeEnum.MENU" #append>.vue</template>
<template v-if="formData.type === MenuTypeEnum.MENU" #prepend>src/views/</template>
<template v-if="formData.type === MenuTypeEnum.MENU" #append>.vue</template>
</el-input>
</el-form-item>
<el-form-item v-if="formData.type == MenuTypeEnum.MENU && !isExternalLink">
<el-form-item v-if="formData.type === MenuTypeEnum.MENU && !isExternalLink">
<template #label>
<div class="flex-y-center">
路由参数
@@ -332,7 +338,7 @@
</el-form-item>
<!-- 权限标识 -->
<el-form-item v-if="formData.type == MenuTypeEnum.BUTTON" label="权限标识" prop="perm">
<el-form-item v-if="formData.type === MenuTypeEnum.BUTTON" label="权限标识" prop="perm">
<el-input v-model="formData.perm" placeholder="sys:user:create" />
</el-form-item>
@@ -341,7 +347,7 @@
<icon-select v-model="formData.icon" />
</el-form-item>
<el-form-item v-if="formData.type == MenuTypeEnum.CATALOG" label="跳转路由">
<el-form-item v-if="formData.type === MenuTypeEnum.CATALOG" label="跳转路由">
<el-input v-model="formData.redirect" placeholder="跳转路由" />
</el-form-item>
</el-form>
@@ -529,7 +535,7 @@ function handleSubmit(): void {
if (isValid) {
const menuId = formData.value.id;
if (menuId) {
if (formData.value.parentId == menuId) {
if (formData.value.parentId === menuId) {
ElMessage.error("父级菜单不能为当前菜单");
return;
}

View File

@@ -77,15 +77,15 @@
</el-table-column>
<el-table-column align="center" label="通告目标类型" prop="targetType" min-width="100">
<template #default="scope">
<el-tag v-if="scope.row.targetType == 1" type="warning">全体</el-tag>
<el-tag v-if="scope.row.targetType == 2" type="success">指定</el-tag>
<el-tag v-if="scope.row.targetType === 1" type="warning">全体</el-tag>
<el-tag v-if="scope.row.targetType === 2" type="success">指定</el-tag>
</template>
</el-table-column>
<el-table-column align="center" label="发布状态" min-width="100">
<template #default="scope">
<el-tag v-if="scope.row.publishStatus == 0" type="info">未发布</el-tag>
<el-tag v-if="scope.row.publishStatus == 1" type="success">已发布</el-tag>
<el-tag v-if="scope.row.publishStatus == -1" type="warning">已撤回</el-tag>
<el-tag v-if="scope.row.publishStatus === 0" type="info">未发布</el-tag>
<el-tag v-if="scope.row.publishStatus === 1" type="success">已发布</el-tag>
<el-tag v-if="scope.row.publishStatus === -1" type="warning">已撤回</el-tag>
</template>
</el-table-column>
<el-table-column label="操作时间" width="250">
@@ -111,7 +111,7 @@
查看
</el-button>
<el-button
v-if="scope.row.publishStatus != 1"
v-if="scope.row.publishStatus !== 1"
v-hasPerm="['sys:notice:publish']"
type="primary"
size="small"
@@ -121,7 +121,7 @@
发布
</el-button>
<el-button
v-if="scope.row.publishStatus == 1"
v-if="scope.row.publishStatus === 1"
v-hasPerm="['sys:notice:revoke']"
type="primary"
size="small"
@@ -131,7 +131,7 @@
撤回
</el-button>
<el-button
v-if="scope.row.publishStatus != 1"
v-if="scope.row.publishStatus !== 1"
v-hasPerm="['sys:notice:update']"
type="primary"
size="small"
@@ -141,7 +141,7 @@
编辑
</el-button>
<el-button
v-if="scope.row.publishStatus != 1"
v-if="scope.row.publishStatus !== 1"
v-hasPerm="['sys:notice:delete']"
type="danger"
size="small"
@@ -207,7 +207,7 @@
<el-radio :value="2">指定</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="formData.targetType == 2" label="指定用户" prop="targetUsers">
<el-form-item v-if="formData.targetType === 2" label="指定用户" prop="targetUsers">
<el-select v-model="formData.targetUsers" multiple search placeholder="请选择指定用户">
<el-option
v-for="item in userOptions"
@@ -252,9 +252,9 @@
{{ currentNotice.title }}
</el-descriptions-item>
<el-descriptions-item label="发布状态:">
<el-tag v-if="currentNotice.publishStatus == 0" type="info">未发布</el-tag>
<el-tag v-else-if="currentNotice.publishStatus == 1" type="success">已发布</el-tag>
<el-tag v-else-if="currentNotice.publishStatus == -1" type="warning">已撤回</el-tag>
<el-tag v-if="currentNotice.publishStatus === 0" type="info">未发布</el-tag>
<el-tag v-else-if="currentNotice.publishStatus === 1" type="success">已发布</el-tag>
<el-tag v-else-if="currentNotice.publishStatus === -1" type="warning">已撤回</el-tag>
</el-descriptions-item>
<el-descriptions-item label="发布人:">
{{ currentNotice.publisherName }}