From ed066dc0bdfa9a7c3a3d55b8b4f70cd07e2e8d8a Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 30 五月 2025 09:26:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into dev
---
src/views/tool/build/index.vue | 2
src/views/system/user/index.vue | 107 +++++++-------------------
src/assets/styles/sidebar.scss | 46 +++++++++--
src/layout/components/Sidebar/index.vue | 2
src/layout/components/Settings/index.vue | 2
src/assets/styles/variables.module.scss | 6
src/layout/components/Sidebar/SidebarItem.vue | 32 ++++++-
src/store/modules/settings.js | 2
8 files changed, 100 insertions(+), 99 deletions(-)
diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss
index c2f4c4b..3135b4e 100644
--- a/src/assets/styles/sidebar.scss
+++ b/src/assets/styles/sidebar.scss
@@ -26,6 +26,7 @@
overflow: hidden;
-webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35);
box-shadow: none;
+ margin: 0 auto;
// reset element-ui css
.horizontal-collapse-transition {
@@ -53,24 +54,29 @@
.is-horizontal {
display: none;
}
-
a {
display: inline-block;
- width: 100%;
+ width: 80px;
+ height: 80px;
overflow: hidden;
+ margin-top: 20px;
}
+
.svg-icon {
- margin-right: 16px;
+ //margin-right: 16px;
}
.el-menu {
border: none;
height: 100%;
width: 100% !important;
+ padding: 0 20px !important;
}
.el-menu-item, .menu-title {
+ line-height: 20px;
+ font-size: 14px;
overflow: hidden !important;
text-overflow: ellipsis !important;
white-space: nowrap !important;
@@ -83,30 +89,47 @@
// menu hover
.sub-menu-title-noDropdown,
.el-sub-menu__title {
+ border-radius: 10px 10px 10px 10px;
&:hover {
background-color: #ffffff !important;
+ border-radius: 10px 10px 10px 10px;
+ color: $base-menu-color-active !important;
}
}
& .theme-dark .is-active > .el-sub-menu__title {
color: $base-menu-color-active !important;
}
-
+ & .nest-menu > a {
+ right: 20px;
+ position: relative;
+ }
+ & .nest-menu> .el-sub-menu > .el-sub-menu__title {
+ right: 20px;
+ position: relative;
+ }
& .nest-menu .el-sub-menu>.el-sub-menu__title,
& .el-sub-menu .el-menu-item {
- min-width: $base-sidebar-width !important;
+
+ height: 80px;
+ min-width: 80px !important;
+ border-radius: 10px 10px 10px 10px;
&:hover {
background-color: #ffffff !important;
+ border-radius: 10px 10px 10px 10px;
+ color: $base-menu-color-active !important;
}
}
& .theme-dark .nest-menu .el-sub-menu>.el-sub-menu__title,
& .theme-dark .el-sub-menu .el-menu-item {
background-color: $base-sub-menu-background;
-
+ border-radius: 10px 10px 10px 10px;
&:hover {
background-color: #ffffff !important;
+ border-radius: 10px 10px 10px 10px;
+ color: $base-menu-color-active !important;
}
}
}
@@ -121,14 +144,14 @@
}
.sub-menu-title-noDropdown {
- padding: 0 !important;
+ padding: 0 0 0 20px !important;
position: relative;
.el-tooltip {
padding: 0 !important;
.svg-icon {
- margin-left: 20px;
+ //margin-left: 20px;
}
}
}
@@ -140,7 +163,7 @@
padding: 0 !important;
.svg-icon {
- margin-left: 20px;
+ //margin-left: 20px;
}
}
@@ -205,15 +228,18 @@
.el-menu--vertical {
&>.el-menu {
.svg-icon {
- margin-right: 16px;
+ //margin-right: 16px;
}
}
.nest-menu .el-sub-menu>.el-sub-menu__title,
.el-menu-item {
+ border-radius: 10px 10px 10px 10px;
&:hover {
// you can use $sub-menuHover
background-color: #ffffff !important;
+ border-radius: 10px 10px 10px 10px;
+ color: $base-menu-color-active !important;
}
}
diff --git a/src/assets/styles/variables.module.scss b/src/assets/styles/variables.module.scss
index 13ffa62..678fe0d 100644
--- a/src/assets/styles/variables.module.scss
+++ b/src/assets/styles/variables.module.scss
@@ -21,12 +21,12 @@
$menuLightActiveText: #165DFF;
// 鍩虹鍙橀噺
-$base-sidebar-width: 200px;
-$sideBarWidth: 200px;
+$base-sidebar-width: 120px;
+$sideBarWidth: 120px;
// 鑿滃崟鏆楄壊鍙橀噺
$base-menu-color: #bfcbd9;
-$base-menu-color-active: #f4f4f5;
+$base-menu-color-active: #165DFF;
$base-menu-background: #165DFF;
$base-sub-menu-background: #1f2d3d;
$base-sub-menu-hover: #001528;
diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue
index 8232e76..0c3d72c 100644
--- a/src/layout/components/Settings/index.vue
+++ b/src/layout/components/Settings/index.vue
@@ -108,7 +108,7 @@
}
function themeChange(val) {
- settingsStore.theme = val
+ settingsStore.theme = '165DFF'
handleThemeStyle(val)
}
diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue
index 27f987c..4884381 100644
--- a/src/layout/components/Sidebar/SidebarItem.vue
+++ b/src/layout/components/Sidebar/SidebarItem.vue
@@ -2,8 +2,8 @@
<div v-if="!item.hidden">
<template v-if="hasOneShowingChild(item.children, item) && (!onlyOneChild.children || onlyOneChild.noShowingChildren) && !item.alwaysShow">
<app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path, onlyOneChild.query)">
- <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{ 'submenu-title-noDropdown': !isNest }">
- <svg-icon :icon-class="onlyOneChild.meta.icon || (item.meta && item.meta.icon)"/>
+ <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{ 'submenu-title-noDropdown': !isNest }" style="display: flex;flex-direction: column;justify-content: center;height: 80px;padding: 0;width: 80px">
+ <svg-icon :icon-class="onlyOneChild.meta.icon || (item.meta && item.meta.icon)" style="width: 30px;height: 30px;margin-bottom: 6px"/>
<template #title><span class="menu-title" :title="hasTitle(onlyOneChild.meta.title)">{{ onlyOneChild.meta.title }}</span></template>
</el-menu-item>
</app-link>
@@ -11,8 +11,8 @@
<el-sub-menu v-else ref="subMenu" :index="resolvePath(item.path)" teleported>
<template v-if="item.meta" #title>
- <svg-icon :icon-class="item.meta && item.meta.icon" />
- <span class="menu-title" :title="hasTitle(item.meta.title)">{{ item.meta.title }}</span>
+ <svg-icon :icon-class="item.meta && item.meta.icon" style="width: 30px;height: 30px;margin-bottom: 6px"/>
+ <span class="menu-title" :title="hasTitle(item.meta.title)">{{ item.meta.title}}</span>
</template>
<sidebar-item
@@ -99,5 +99,27 @@
}
</script>
<style scoped>
-
+:deep(.el-sub-menu__title) {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ padding: 0 !important;
+ height: 80px;
+ margin-top: 20px;
+}
+:deep(.submenu-title-noDropdown) {
+ padding: 0 !important;
+}
+:deep(.router-link-exact-active) {
+ width: 80px;
+ height: 80px;
+ background: #FFFFFF;
+ border-radius: 10px 10px 10px 10px;
+}
+:deep(.el-sub-menu__icon-arrow) {
+ right: -12px !important;
+ &:hover {
+ color: #ffffff !important;
+ }
+}
</style>
diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue
index c472bf3..db83af1 100644
--- a/src/layout/components/Sidebar/index.vue
+++ b/src/layout/components/Sidebar/index.vue
@@ -4,7 +4,7 @@
<el-scrollbar wrap-class="scrollbar-wrapper">
<el-menu
:default-active="activeMenu"
- :collapse="true"
+ :collapse="false"
:background-color="getMenuBackground"
:text-color="getMenuTextColor"
:unique-opened="true"
diff --git a/src/store/modules/settings.js b/src/store/modules/settings.js
index 194d678..51aaeb1 100644
--- a/src/store/modules/settings.js
+++ b/src/store/modules/settings.js
@@ -14,7 +14,7 @@
{
state: () => ({
title: '',
- theme: storageSetting.theme || '#409EFF',
+ theme: storageSetting.theme || '#165DFF',
sideTheme: storageSetting.sideTheme || sideTheme,
showSettings: showSettings,
topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 2cfb05e..11f482b 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -17,11 +17,8 @@
<pane size="84">
<el-col>
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
- <el-form-item label="鐢ㄦ埛鍚嶇О" prop="userName">
- <el-input v-model="queryParams.userName" placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" clearable style="width: 240px" @keyup.enter="handleQuery" />
- </el-form-item>
- <el-form-item label="鎵嬫満鍙风爜" prop="phonenumber">
- <el-input v-model="queryParams.phonenumber" placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" clearable style="width: 240px" @keyup.enter="handleQuery" />
+ <el-form-item label="鐧诲綍璐﹀彿" prop="userName">
+ <el-input v-model="queryParams.userName" placeholder="璇疯緭鍏�" clearable style="width: 240px" @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="鐘舵��" prop="status">
<el-select v-model="queryParams.status" placeholder="鐢ㄦ埛鐘舵��" clearable style="width: 240px">
@@ -59,10 +56,9 @@
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="鐢ㄦ埛缂栧彿" align="center" key="userId" prop="userId" v-if="columns[0].visible" />
- <el-table-column label="鐢ㄦ埛鍚嶇О" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
- <el-table-column label="鐢ㄦ埛鏄电О" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
+ <el-table-column label="鐧诲綍璐﹀彿" align="center" key="userName" prop="userName" v-if="columns[1].visible" :show-overflow-tooltip="true" />
+ <el-table-column label="鐢ㄦ埛濮撳悕" align="center" key="nickName" prop="nickName" v-if="columns[2].visible" :show-overflow-tooltip="true" />
<el-table-column label="閮ㄩ棬" align="center" key="deptName" prop="dept.deptName" v-if="columns[3].visible" :show-overflow-tooltip="true" />
- <el-table-column label="鎵嬫満鍙风爜" align="center" key="phonenumber" prop="phonenumber" v-if="columns[4].visible" width="120" />
<el-table-column label="鐘舵��" align="center" key="status" v-if="columns[5].visible">
<template #default="scope">
<el-switch
@@ -106,8 +102,22 @@
<el-form :model="form" :rules="rules" ref="userRef" label-width="80px">
<el-row>
<el-col :span="12">
- <el-form-item label="鐢ㄦ埛鏄电О" prop="nickName">
- <el-input v-model="form.nickName" placeholder="璇疯緭鍏ョ敤鎴锋樀绉�" maxlength="30" />
+ <el-form-item label="鐧诲綍璐﹀彿" prop="userName">
+ <el-input v-model="form.userName" placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" maxlength="30" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鐢ㄦ埛濮撳悕" prop="nickName">
+ <el-input v-model="form.nickName" placeholder="璇疯緭鍏ュ鍚�" maxlength="30" />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="瑙掕壊" prop="roleIds">
+ <el-select v-model="form.roleIds" multiple placeholder="璇烽�夋嫨">
+ <el-option v-for="item in roleOptions" :key="item.roleId" :label="item.roleName" :value="item.roleId" :disabled="item.status == 1"></el-option>
+ </el-select>
</el-form-item>
</el-col>
<el-col :span="12">
@@ -118,64 +128,15 @@
</el-row>
<el-row>
<el-col :span="12">
- <el-form-item label="鎵嬫満鍙风爜" prop="phonenumber">
- <el-input v-model="form.phonenumber" placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" maxlength="11" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="閭" prop="email">
- <el-input v-model="form.email" placeholder="璇疯緭鍏ラ偖绠�" maxlength="50" />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item v-if="form.userId == undefined" label="鐢ㄦ埛鍚嶇О" prop="userName">
- <el-input v-model="form.userName" placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" maxlength="30" />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item v-if="form.userId == undefined" label="鐢ㄦ埛瀵嗙爜" prop="password">
- <el-input v-model="form.password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" type="password" maxlength="20" show-password />
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="12">
- <el-form-item label="鐢ㄦ埛鎬у埆">
- <el-select v-model="form.sex" placeholder="璇烽�夋嫨">
- <el-option v-for="dict in sys_user_sex" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
<el-form-item label="鐘舵��">
<el-radio-group v-model="form.status">
<el-radio v-for="dict in sys_normal_disable" :key="dict.value" :value="dict.value">{{ dict.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
- </el-row>
- <el-row>
<el-col :span="12">
- <el-form-item label="宀椾綅">
- <el-select v-model="form.postIds" multiple placeholder="璇烽�夋嫨">
- <el-option v-for="item in postOptions" :key="item.postId" :label="item.postName" :value="item.postId" :disabled="item.status == 1"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="瑙掕壊">
- <el-select v-model="form.roleIds" multiple placeholder="璇烽�夋嫨">
- <el-option v-for="item in roleOptions" :key="item.roleId" :label="item.roleName" :value="item.roleId" :disabled="item.status == 1"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- </el-row>
- <el-row>
- <el-col :span="24">
- <el-form-item label="澶囨敞">
- <el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ唴瀹�"></el-input>
+ <el-form-item v-if="title === '娣诲姞鐢ㄦ埛'" label="鐢ㄦ埛瀵嗙爜" prop="password">
+ <el-input v-model="form.password" placeholder="璇疯緭鍏ョ敤鎴峰瘑鐮�" type="password" maxlength="20" show-password/>
</el-form-item>
</el-col>
</el-row>
@@ -259,8 +220,8 @@
// 鍒楁樉闅愪俊鎭�
const columns = ref([
{ key: 0, label: `鐢ㄦ埛缂栧彿`, visible: true },
- { key: 1, label: `鐢ㄦ埛鍚嶇О`, visible: true },
- { key: 2, label: `鐢ㄦ埛鏄电О`, visible: true },
+ { key: 1, label: `鐧诲綍璐﹀彿`, visible: true },
+ { key: 2, label: `鐢ㄦ埛濮撳悕`, visible: true },
{ key: 3, label: `閮ㄩ棬`, visible: true },
{ key: 4, label: `鎵嬫満鍙风爜`, visible: true },
{ key: 5, label: `鐘舵�乣, visible: true },
@@ -273,16 +234,15 @@
pageNum: 1,
pageSize: 10,
userName: undefined,
- phonenumber: undefined,
status: undefined,
deptId: undefined
},
rules: {
- userName: [{ required: true, message: "鐢ㄦ埛鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }, { min: 2, max: 20, message: "鐢ㄦ埛鍚嶇О闀垮害蹇呴』浠嬩簬 2 鍜� 20 涔嬮棿", trigger: "blur" }],
- nickName: [{ required: true, message: "鐢ㄦ埛鏄电О涓嶈兘涓虹┖", trigger: "blur" }],
+ userName: [{ required: true, message: "鐧诲綍璐﹀彿涓嶈兘涓虹┖", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", trigger: "blur" }],
+ nickName: [{ required: true, message: "鐢ㄦ埛濮撳悕涓嶈兘涓虹┖", trigger: "blur" }],
+ roleIds: [{ required: true, message: "瑙掕壊涓嶈兘涓虹┖", trigger: "change" }],
+ deptId: [{ required: true, message: "閮ㄩ棬涓嶈兘涓虹┖", trigger: "change" }],
password: [{ required: true, message: "鐢ㄦ埛瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" }, { min: 5, max: 20, message: "鐢ㄦ埛瀵嗙爜闀垮害蹇呴』浠嬩簬 5 鍜� 20 涔嬮棿", trigger: "blur" }, { pattern: /^[^<>"'|\\]+$/, message: "涓嶈兘鍖呭惈闈炴硶瀛楃锛�< > \" ' \\\ |", trigger: "blur" }],
- email: [{ type: "email", message: "璇疯緭鍏ユ纭殑閭鍦板潃", trigger: ["blur", "change"] }],
- phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "璇疯緭鍏ユ纭殑鎵嬫満鍙风爜", trigger: "blur" }]
}
})
@@ -466,13 +426,8 @@
deptId: undefined,
userName: undefined,
nickName: undefined,
- password: undefined,
- phonenumber: undefined,
- email: undefined,
- sex: undefined,
+ password: '123456',
status: "0",
- remark: undefined,
- postIds: [],
roleIds: []
}
proxy.resetForm("userRef")
@@ -492,7 +447,7 @@
roleOptions.value = response.roles
open.value = true
title.value = "娣诲姞鐢ㄦ埛"
- form.value.password = initPassword.value
+ form.value.password = '123456'
})
}
@@ -504,11 +459,9 @@
form.value = response.data
postOptions.value = response.posts
roleOptions.value = response.roles
- form.value.postIds = response.postIds
form.value.roleIds = response.roleIds
open.value = true
title.value = "淇敼鐢ㄦ埛"
- form.password = ""
})
}
diff --git a/src/views/tool/build/index.vue b/src/views/tool/build/index.vue
index e630740..92b807b 100644
--- a/src/views/tool/build/index.vue
+++ b/src/views/tool/build/index.vue
@@ -307,7 +307,7 @@
</script>
<style lang='scss'>
-$lighterBlue: #409EFF;
+$lighterBlue: #165DFF;
.container {
position: relative;
--
Gitblit v1.9.3