Merge remote-tracking branch 'origin/dev' into warm-flw-future

# Conflicts:
#	src/views/system/user/index.vue
This commit is contained in:
疯狂的狮子Li 2024-12-27 13:49:08 +08:00
commit c0c5c8d7d4
5 changed files with 32 additions and 19 deletions

View File

@ -16,7 +16,12 @@
// ele // ele
--brder-color: #e8e8e8; --brder-color: #e8e8e8;
// 添加 tag 相关变量
--tags-view-active-bg: var(--el-color-primary);
--tags-view-active-border-color: var(--el-color-primary);
} }
html.dark { html.dark {
--menuBg: #1d1e1f; --menuBg: #1d1e1f;
--menuColor: #bfcbd9; --menuColor: #bfcbd9;
@ -36,6 +41,25 @@ html.dark {
.el-tree-node__content { .el-tree-node__content {
--el-color-primary-light-9: #262727; --el-color-primary-light-9: #262727;
} }
.el-button--primary {
--el-button-bg-color: var(--el-color-primary-dark-6);
--el-button-border-color: var(--el-color-primary-light-2);
}
.el-switch {
--el-switch-on-color: var(--el-color-primary-dark-6);
--el-switch-border-color: var(--el-color-primary-light-2);
}
.el-tag--primary {
--el-tag-bg-color: var(--el-color-primary-dark-6);
--el-tag-border-color: var(--el-color-primary-light-2);
}
// 在深色模式下使用更深的颜色
--tags-view-active-bg: var(--el-color-primary-dark-6);
--tags-view-active-border-color: var(--el-color-primary-light-2);
// vxe-table 主题 // vxe-table 主题
--vxe-font-color: #98989e; --vxe-font-color: #98989e;
--vxe-primary-color: #2c7ecf; --vxe-primary-color: #2c7ecf;
@ -108,4 +132,4 @@ $base-sidebar-width: 200px;
dangerColor: $--color-danger; dangerColor: $--color-danger;
infoColor: $--color-info; infoColor: $--color-info;
warningColor: $--color-warning; warningColor: $--color-warning;
} }

View File

@ -91,8 +91,8 @@ const activeMenu = computed(() => {
let activePath = path; let activePath = path;
if (path !== undefined && path.lastIndexOf('/') > 0 && hideList.indexOf(path) === -1) { if (path !== undefined && path.lastIndexOf('/') > 0 && hideList.indexOf(path) === -1) {
const tmpPath = path.substring(1, path.length); const tmpPath = path.substring(1, path.length);
activePath = '/' + tmpPath.substring(0, tmpPath.indexOf('/'));
if (!route.meta.link) { if (!route.meta.link) {
activePath = '/' + tmpPath.substring(0, tmpPath.indexOf('/'));
appStore.toggleSideBarHide(false); appStore.toggleSideBarHide(false);
} }
} else if (!route.children) { } else if (!route.children) {

View File

@ -31,7 +31,7 @@ export const hasRoles: Directive = {
const { roles } = useUserStore(); const { roles } = useUserStore();
if (value && value instanceof Array && value.length > 0) { if (value && value instanceof Array && value.length > 0) {
const hasRole = roles.some((role: string) => { const hasRole = roles.some((role: string) => {
return role === 'admin' || value.includes(role); return role === 'superadmin' || role === 'admin' || value.includes(role);
}); });
if (!hasRole) { if (!hasRole) {
el.parentNode && el.parentNode.removeChild(el); el.parentNode && el.parentNode.removeChild(el);

View File

@ -70,8 +70,8 @@ const isActive = (r: RouteLocationNormalized): boolean => {
const activeStyle = (tag: RouteLocationNormalized) => { const activeStyle = (tag: RouteLocationNormalized) => {
if (!isActive(tag)) return {}; if (!isActive(tag)) return {};
return { return {
'background-color': theme.value, 'background-color': 'var(--tags-view-active-bg)',
'border-color': theme.value 'border-color': 'var(--tags-view-active-border-color)'
}; };
}; };
const isAffix = (tag: RouteLocationNormalized) => { const isAffix = (tag: RouteLocationNormalized) => {

View File

@ -68,7 +68,7 @@
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button v-has-permi="['system:user:delete']" type="danger" plain :disabled="multiple" icon="Delete" @click="handleDelete()"> <el-button v-has-permi="['system:user:remove']" type="danger" plain :disabled="multiple" icon="Delete" @click="handleDelete()">
删除 删除
</el-button> </el-button>
</el-col> </el-col>
@ -81,8 +81,8 @@
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item icon="Download" @click="importTemplate">下载模板</el-dropdown-item> <el-dropdown-item icon="Download" @click="importTemplate">下载模板</el-dropdown-item>
<el-dropdown-item icon="Top" @click="handleImport">导入数据</el-dropdown-item> <el-dropdown-item v-has-permi="['system:user:import']" icon="Top" @click="handleImport">导入数据</el-dropdown-item>
<el-dropdown-item icon="Download" @click="handleExport"> 导出数据</el-dropdown-item> <el-dropdown-item v-has-permi="['system:user:export']" icon="Download" @click="handleExport">导出数据</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>
</el-dropdown> </el-dropdown>
@ -579,15 +579,6 @@ function submitFileForm() {
uploadRef.value?.submit(); uploadRef.value?.submit();
} }
/** 初始化部门数据 */
const initTreeData = async () => {
//
if (deptOptions.value === undefined) {
const row = await treeselect();
deptOptions.value = row.data;
}
};
/** 重置操作表单 */ /** 重置操作表单 */
const reset = () => { const reset = () => {
form.value = { ...initFormData }; form.value = { ...initFormData };
@ -605,7 +596,6 @@ const handleAdd = async () => {
const { data } = await api.getUser(); const { data } = await api.getUser();
dialog.visible = true; dialog.visible = true;
dialog.title = '新增用户'; dialog.title = '新增用户';
await initTreeData();
postOptions.value = data.posts; postOptions.value = data.posts;
roleOptions.value = data.roles; roleOptions.value = data.roles;
form.value.password = initPassword.value.toString(); form.value.password = initPassword.value.toString();
@ -618,7 +608,6 @@ const handleUpdate = async (row?: UserForm) => {
const { data } = await api.getUser(userId); const { data } = await api.getUser(userId);
dialog.visible = true; dialog.visible = true;
dialog.title = '修改用户'; dialog.title = '修改用户';
await initTreeData();
Object.assign(form.value, data.user); Object.assign(form.value, data.user);
postOptions.value = data.posts; postOptions.value = data.posts;
roleOptions.value = data.roles; roleOptions.value = data.roles;