mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-20 20:39:55 +00:00
fix: 修复表单标签样式和部署脚本顺序问题
refactor: 统一表单组件标签样式为冒号后缀 style: 调整按钮颜色和表单布局 fix(frontend): 添加取消强退的提示信息 chore: 调整部署脚本步骤顺序
This commit is contained in:
@@ -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('已取消强退');
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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>
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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="请输入描述" />
|
||||
|
||||
@@ -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,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", // watchEffect会在DOM挂载或者更新之前就会触发,此属性控制在DOM元素更新后运行
|
||||
}
|
||||
);
|
||||
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 */
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user