Merge remote-tracking branch 'origin/dev' into warm-flw-future
# Conflicts: # src/views/system/user/index.vue
This commit is contained in:
commit
c0c5c8d7d4
@ -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;
|
||||||
}
|
}
|
@ -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) {
|
||||||
|
@ -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);
|
||||||
|
@ -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) => {
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user