fix: 修复表单标签样式和部署脚本顺序问题

refactor: 统一表单组件标签样式为冒号后缀
style: 调整按钮颜色和表单布局
fix(frontend): 添加取消强退的提示信息
chore: 调整部署脚本步骤顺序
This commit is contained in:
zhangtao
2025-07-25 00:31:01 +08:00
parent 80179adb73
commit 48bbda2f55
23 changed files with 69 additions and 82 deletions
@@ -33,7 +33,7 @@
<!-- 弹出框内容 -->
<div ref="popoverContentRef">
<!-- 表单 -->
<el-form ref="formRef" :model="queryParams" :inline="true">
<el-form ref="formRef" :model="queryParams" :inline="true" >
<template v-for="item in selectConfig.formItems" :key="item.prop">
<el-form-item :label="item.label" :prop="item.prop">
<!-- Input 输入框 -->
@@ -214,6 +214,8 @@ function logout() {
userStore.logout().then(() => {
router.push(`/login?redirect=${route.fullPath}`);
});
}).catch(() => {
ElMessage.info('已取消强退');
});
}
+2 -2
View File
@@ -115,7 +115,7 @@
<span>基本设置</span>
</template>
<div>
<el-form ref="ruleFormRef" :model="infoFormState" :rules="rules" label-width="auto" :inline="true">
<el-form ref="ruleFormRef" :model="infoFormState" :rules="rules" :inline="true" label-suffix=":" label-width="auto" label-position="right">
<el-form-item label="姓名" name="name">
<el-input v-model:value="infoFormState.name" placeholder="请输入姓名" prefix-icon="User" clearable />
@@ -152,7 +152,7 @@
<span>安全设置</span>
</template>
<div>
<el-form ref="ruleFormRef" :model="passwordFormState" :rules="resetPasswordRules" label-width="auto">
<el-form ref="ruleFormRef" :model="passwordFormState" :rules="resetPasswordRules" label-suffix=":" label-width="auto" label-position="right">
<el-form-item label="当前密码" name="oldPassword">
<el-input v-model.trim="passwordFormState.oldPassword" :placeholder="t('login.password')" type="password" show-password clearable>
<template #prefix>
+7 -7
View File
@@ -216,15 +216,15 @@
</div>
</div>
</template>
<el-form :model="cacheForm" label-position="top">
<el-form-item label="缓存名称:">
<el-input v-model="cacheForm.cache_name" readonly />
<el-form :model="cacheForm" label-suffix=":" label-width="auto" label-position="top">
<el-form-item label="缓存名称">
<el-input v-model="cacheForm.cache_name" readonly placeholder="缓存名称" />
</el-form-item>
<el-form-item label="缓存键名:">
<el-input v-model="cacheForm.cache_key" readonly />
<el-form-item label="缓存键名">
<el-input v-model="cacheForm.cache_key" readonly placeholder="缓存键名" />
</el-form-item>
<el-form-item label="缓存内容:">
<el-input v-model="cacheForm.cache_value" type="textarea" :rows="18" readonly />
<el-form-item label="缓存内容">
<el-input v-model="cacheForm.cache_value" type="textarea" :rows="18" readonly placeholder="缓存内容" />
</el-form-item>
</el-form>
</el-card>
+1 -1
View File
@@ -3,7 +3,7 @@
<div class="app-container">
<!-- 搜索区域 -->
<div class="search-container">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true" label-suffix=":" >
<el-form-item prop="name" label="任务名称">
<el-input
v-model="queryFormData.name"
+1 -1
View File
@@ -3,7 +3,7 @@
<div class="app-container">
<!-- 搜索区域 -->
<div class="search-container">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true" label-suffix=":" >
<el-form-item prop="ipaddr" label="IP地址">
<el-input v-model="queryFormData.ipaddr" placeholder="请输入IP地址" clearable />
</el-form-item>
@@ -1,7 +1,7 @@
<template>
<div>
<h3 text-center m-0 mb-20px>{{ t("login.reg") }}</h3>
<el-form ref="formRef" :model="model" :rules="rules" size="large">
<el-form ref="formRef" :model="model" :rules="rules" size="large" label-suffix=":" >
<!-- 账号 -->
<el-form-item prop="username">
<el-input v-model.trim="model.username" :placeholder="t('login.username')" clearable>
@@ -1,7 +1,7 @@
<template>
<div>
<h3 text-center m-0 mb-20px>{{ t("login.resetPassword") }}</h3>
<el-form ref="formRef" :model="model" :rules="rules" size="large">
<el-form ref="formRef" :model="model" :rules="rules" size="large" label-suffix=":">
<!-- 用户名 -->
<el-form-item prop="username">
<el-input v-model.trim="model.username" :placeholder="t('login.username')" clearable>
@@ -1,6 +1,6 @@
<template>
<el-drawer v-model="drawerVisible" title="配置中心" :size="drawerSize">
<el-form :model="configState" label-width="auto" style="width: 100%">
<el-form :model="configState" label-suffix=":" label-width="auto" label-position="right">
<!-- 系统配置 -->
<el-divider>系统配置</el-divider>
<div v-for="(item, key) in systemConfigs" :key="key">
+2 -2
View File
@@ -3,7 +3,7 @@
<div class="app-container">
<!-- 搜索区域 -->
<div class="search-container">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true" label-suffix=":" >
<el-form-item prop="config_name" label="配置名称">
<el-input v-model="queryFormData.config_name" placeholder="请输入配置名称" clearable />
</el-form-item>
@@ -145,7 +145,7 @@
</template>
<!-- 新增编辑表单 -->
<template v-else>
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="100px">
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="auto" label-position="right">
<el-form-item label="配置名称" prop="config_name">
<el-input v-model="formData.config_name" placeholder="请输入配置名称" :maxlength="50" />
</el-form-item>
+2 -2
View File
@@ -3,7 +3,7 @@
<div class="app-container">
<!-- 搜索区域 -->
<div class="search-container">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true" label-suffix=":" >
<el-form-item prop="name" label="部门名称">
<el-input v-model="queryFormData.name" placeholder="请输入部门名称" clearable />
</el-form-item>
@@ -138,7 +138,7 @@
</template>
<!-- 新增编辑表单 -->
<template v-else>
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="100px">
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="auto" label-position="right">
<el-form-item label="部门名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入部门名称" :maxlength="50" />
</el-form-item>
@@ -3,7 +3,7 @@
<el-drawer v-model="drawerVisible" :title="'【' + props.dictLabel + '】字典数据'" :size="drawerSize">
<!-- 搜索区域 -->
<div class="search-container">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true" label-suffix=":" >
<el-form-item prop="dict_label" label="字典数据标签">
<el-input v-model="queryFormData.dict_label" placeholder="请输入字典标签" clearable />
@@ -174,7 +174,7 @@
</template>
<!-- 新增编辑表单 -->
<template v-else>
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="100px">
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="auto" label-position="right">
<el-form-item label="数据类型" prop="dict_type">
<el-input v-model="formData.dict_type" placeholder="请输入数据类型" :maxlength="50" :disabled="true" />
</el-form-item>
+4 -4
View File
@@ -3,7 +3,7 @@
<div class="app-container">
<!-- 搜索区域 -->
<div class="search-container">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true" label-suffix=":" >
<el-form-item prop="dict_name" label="字典名称">
<el-input v-model="queryFormData.dict_name" placeholder="请输入字典名称" clearable />
</el-form-item>
@@ -151,7 +151,7 @@
<el-descriptions-item label="字典类型" :span="2">
<el-tag type="primary">{{ detailFormData.dict_type }}</el-tag>
</el-descriptions-item>
<el-descriptions-item label="字典状态" :span="2">
<el-descriptions-item label="状态" :span="2">
<el-tag v-if="detailFormData.status" type="success">启用</el-tag>
<el-tag v-else type="danger">停用</el-tag>
</el-descriptions-item>
@@ -163,14 +163,14 @@
</template>
<!-- 新增编辑表单 -->
<template v-else>
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="100px">
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="auto" label-position="right">
<el-form-item label="字典名称" prop="dict_name">
<el-input v-model="formData.dict_name" placeholder="请输入字典名称" :maxlength="50" />
</el-form-item>
<el-form-item label="字典类型" prop="dict_type">
<el-input v-model="formData.dict_type" placeholder="请输入字典类型" :maxlength="50" />
</el-form-item>
<el-form-item label="字典状态" prop="status">
<el-form-item label="状态" prop="status">
<el-radio-group v-model="formData.status">
<el-radio :value="true">启用</el-radio>
<el-radio :value="false">停用</el-radio>
+1 -1
View File
@@ -3,7 +3,7 @@
<div class="app-container">
<!-- 搜索区域 -->
<div class="search-container">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true" label-suffix=":" >
<el-form-item prop="request_path" label="请求路径">
<el-input v-model="queryFormData.request_path" placeholder="请输入请求路径" clearable />
</el-form-item>
+2 -2
View File
@@ -3,7 +3,7 @@
<div class="app-container">
<!-- 搜索区域 -->
<div class="search-container">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true" label-suffix=":" >
<el-form-item prop="name" label="菜单名称">
<el-input v-model="queryFormData.name" placeholder="请输入菜单名称" clearable />
</el-form-item>
@@ -230,7 +230,7 @@
<!-- 新增编辑表单 -->
<template v-else>
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-width="100px">
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="auto" label-position="right">
<el-form-item label="父级菜单" prop="parent_id">
<el-tree-select v-model="formData.parent_id" placeholder="选择上级菜单" :data="menuOptions" filterable check-strictly :render-after-expand="false" />
</el-form-item>
+4 -4
View File
@@ -3,7 +3,7 @@
<div class="app-container">
<!-- 搜索区域 -->
<div class="search-container">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true" label-suffix=":">
<el-form-item prop="notice_title" label="标题">
<el-input v-model="queryFormData.notice_title" placeholder="请输入标题" clearable />
</el-form-item>
@@ -153,7 +153,7 @@
</el-card>
<!-- 弹窗区域 -->
<el-dialog v-model="dialogVisible.visible" :title="dialogVisible.title" @close="handleCloseDialog">
<el-dialog v-model="dialogVisible.visible" :title="dialogVisible.title" @close="handleCloseDialog">
<!-- 详情 -->
<template v-if="dialogVisible.type === 'detail'">
<el-descriptions :column="4" border>
@@ -189,7 +189,7 @@
</template>
<!-- 新增编辑表单 -->
<template v-else>
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="100px">
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="auto" label-position="right">
<el-form-item label="标题" prop="notice_title">
<el-input v-model="formData.notice_title" placeholder="请输入标题" :maxlength="50" />
</el-form-item>
@@ -210,7 +210,7 @@
</el-radio-group>
</el-form-item>
<el-form-item label="内容" prop="notice_content">
<WangEditor v-model="formData.notice_content" />
<WangEditor v-model="formData.notice_content" height="300px" />
</el-form-item>
<el-form-item label="描述" prop="description">
<el-input v-model="formData.description" :rows="4" :maxlength="100" show-word-limit type="textarea" placeholder="请输入描述" />
+2 -2
View File
@@ -3,7 +3,7 @@
<div class="app-container">
<!-- 搜索区域 -->
<div class="search-container">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true" label-suffix=":" >
<el-form-item prop="name" label="岗位名称">
<el-input v-model="queryFormData.name" placeholder="请输入岗位名称" clearable />
</el-form-item>
@@ -154,7 +154,7 @@
</template>
<!-- 新增编辑表单 -->
<template v-else>
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="100px">
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="auto" label-position="right">
<el-form-item label="岗位名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入岗位名称" :maxlength="50" />
</el-form-item>
+3 -3
View File
@@ -3,7 +3,7 @@
<div class="app-container">
<!-- 搜索区域 -->
<div class="search-container">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true" label-suffix=":" >
<el-form-item prop="name" label="角色名称">
<el-input v-model="queryFormData.name" placeholder="请输入角色名称" clearable />
</el-form-item>
@@ -130,7 +130,7 @@
<el-table-column v-if="tableColumns.find(col => col.prop === 'operation')?.show" fixed="right" label="操作" align="center" min-width="280">
<template #default="scope">
<el-button type="primary" size="small" link icon="position" @click="handleOpenAssignPermDialog(scope.row.id, scope.row.name)">分配权限</el-button>
<el-button type="warning" size="small" link icon="position" @click="handleOpenAssignPermDialog(scope.row.id, scope.row.name)">分配权限</el-button>
<el-button type="info" size="small" link icon="document" @click="handleOpenDialog('detail', scope.row.id)">详情</el-button>
<el-button type="primary" size="small" link icon="edit" @click="handleOpenDialog('update', scope.row.id)">编辑</el-button>
<el-button type="danger" size="small" link icon="delete" @click="handleDelete([scope.row.id])">删除</el-button>
@@ -173,7 +173,7 @@
</template>
<!-- 新增编辑表单 -->
<template v-else>
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-width="100px">
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="auto" label-position="right">
<el-form-item label="角色名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入角色名称" />
</el-form-item>
@@ -1,7 +1,7 @@
<!-- 部门树 -->
<template>
<el-card shadow="hover">
<el-input v-model="deptName" placeholder="部门名称" clearable>
<el-input v-model="deptName" placeholder="部门名称">
<template #prefix>
<el-icon>
<Search />
@@ -10,8 +10,11 @@
</el-input>
<el-tree ref="deptTreeRef" class="mt-2" :data="deptOptions"
:props="{ children: 'children', label: 'label', disabled: '' }" :expand-on-click-node="false"
:filter-node-method="handleFilter" default-expand-all @node-click="handleNodeClick" >
:props="{ children: 'children', label: 'label', disabled: '' }"
:expand-on-click-node="false"
:filter-node-method="handleFilter"
default-expand-all
@node-click="handleNodeClick" >
<template #empty>
<el-empty :image-size="80" description="暂无数据" />
</template>
@@ -22,6 +25,7 @@
<script setup lang="ts">
import DeptAPI, { DeptPageQuery } from "@/api/system/dept";
import { formatTree, listToTree } from "@/utils/common";
import type { FilterNodeMethodFunction, TreeInstance } from 'element-plus'
const props = defineProps({
modelValue: {
@@ -31,30 +35,27 @@ const props = defineProps({
});
const deptOptions = ref<OptionType[]>([]); //
const deptTreeRef = ref(); //
const deptTreeRef = ref<TreeInstance>(); //
const deptName = ref(); //
const emits = defineEmits(["node-click"]);
const deptId = useVModel(props, "modelValue", emits);
watchEffect(
() => {
deptTreeRef.value.filter(deptName.value);
},
{
flush: "post", // watchEffectDOMDOM
}
);
watch(deptName, (val) => {
deptTreeRef.value!.filter(val)
})
interface Tree {
[key: string]: any
}
/**
* 部门筛选
*/
function handleFilter(value: string, data: any) {
if (!value) {
return true;
}
return data.label.indexOf(value) !== -1;
const handleFilter: FilterNodeMethodFunction = (value: string, data: Tree) => {
if (!value) return true;
return data.label.includes(value)
}
/** 部门树节点 Click */
+2 -2
View File
@@ -11,7 +11,7 @@
<el-col :lg="20" :xs="24">
<!-- 搜索区域 -->
<div class="search-container">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true">
<el-form ref="queryFormRef" :model="queryFormData" :inline="true" label-suffix=":" >
<el-form-item prop="username" label="账号">
<el-input v-model="queryFormData.username" placeholder="请输入账号" clearable />
</el-form-item>
@@ -213,7 +213,7 @@
</template>
<!-- 新增编辑表单 -->
<template v-else>
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-width="80px">
<el-form ref="dataFormRef" :model="formData" :rules="rules" label-suffix=":" label-width="auto" label-position="right">
<el-form-item label="账号" prop="username">
<el-input v-model="formData.username" :readonly="!!formData.id" placeholder="请输入账号" />
</el-form-item>