diff --git a/src/common/config/constant.ts b/src/common/config/constant.ts
index f100ce5..f2df48c 100644
--- a/src/common/config/constant.ts
+++ b/src/common/config/constant.ts
@@ -15,5 +15,8 @@ export const GATEWAY_TIMEOUT_URL = "/500";
export const TEST_URL = "/test";
export const TEST_NAME = "test";
+export const PERMISSION_URL = "/systemset/permission";
+export const PERMISSION_NAME = "permission";
+
// 移动端最大宽度
export const mobileMaxWidthMedia = "(max-width: 960px)";
diff --git a/src/common/languages/locales/zh-CN.ts b/src/common/languages/locales/zh-CN.ts
index edf30ba..5b194a6 100644
--- a/src/common/languages/locales/zh-CN.ts
+++ b/src/common/languages/locales/zh-CN.ts
@@ -23,6 +23,7 @@ export default {
SYS: "系统管理",
SYSUSER: "用户管理",
+ PERMISSION: "权限管理",
warehouse: "仓库管理",
warehouse_item: "物料总表",
@@ -51,18 +52,33 @@ export default {
repair_record: "维修记录",
systemset: "系统管理",
- syschannel: "栏目管理",
+ syschannel: "权限管理",
key_account: "客户管理",
vendor: "供应商管理",
store: "仓库管理",
sysrecord: "日志列表",
sysrole: "角色管理",
+ sysuser: "用户管理",
},
_enum: {
outStockType: {
material: "物料",
finishedProduct: "成品",
},
+ permissionType: {
+ menu: "菜单",
+ tableTopButton: "表格顶部按钮",
+ tableOperateButton: "表格操作按钮",
+ statusButton: "状态栏按钮",
+ },
+ userType: {
+ normal: "普通用户",
+ admin: "系统管理员",
+ },
+ },
+ _common: {
+ yes: "是",
+ no: "否",
},
_prop: {
common: {
@@ -402,10 +418,36 @@ export default {
roleName: "角色名称",
roleType: "角色类型",
},
+ sysuser: {
+ loginName: "登录账号",
+ userName: "姓名",
+ password: "密码",
+ confirmPassword: "确认密码",
+ userType: "用户类型",
+ role: "角色",
+ roleNames: "角色",
+ },
+ permission: {
+ permissionName: "权限名称",
+ permissionI18n: "国际化键",
+ permissionType: "权限类型",
+ permissionCode: "权限编码",
+ pageLink: "页面路由",
+ viewLink: "组件路径",
+ eventName: "事件名称",
+ className: "样式类名",
+ iconName: "图标名称",
+ sort: "排序",
+ hidden: "是否隐藏",
+ parentId: "父级权限",
+ rootNode: "根节点",
+ selectParent: "选择父级",
+ },
},
},
_button: {
add: "新增",
+ addChild: "新增子级",
edit: "编辑",
remove: "删除",
batchRemove: "批量删除",
@@ -832,6 +874,32 @@ export default {
select_roleType: "请选择角色类型",
delete_message: "删除角色",
},
+ sysuser: {
+ input_loginName: "请输入登录账号",
+ input_userName: "请输入姓名",
+ input_password: "请输入密码",
+ input_password_edit: "不修改请留空",
+ input_confirmPassword: "请确认密码",
+ password_min_length: "密码长度不能少于6位",
+ password_not_match: "两次输入的密码不一致",
+ select_userType: "请选择用户类型",
+ select_role: "请选择角色",
+ delete_message: "删除用户",
+ },
+ permission: {
+ input_permissionName: "请输入权限名称",
+ input_permissionI18n: "请输入国际化键",
+ select_permissionType: "请选择权限类型",
+ input_permissionCode: "请输入权限编码",
+ input_pageLink: "请输入页面路由",
+ input_viewLink: "请输入组件路径",
+ input_eventName: "请输入事件名称",
+ input_className: "请输入样式类名",
+ input_iconName: "请输入图标名称",
+ input_sort: "请输入排序值",
+ input_parentId: "请输入父级权限ID,0表示根节点",
+ delete_message: "删除权限",
+ },
},
},
_title: {
@@ -961,6 +1029,15 @@ export default {
add: "添加角色",
edit: "编辑角色",
},
+ sysuser: {
+ add: "添加用户",
+ edit: "编辑用户",
+ },
+ permission: {
+ add: "添加权限",
+ addChild: "添加子权限",
+ edit: "编辑权限",
+ },
},
},
_tabNav: {
diff --git a/src/components/base/base-multi-select/BaseMultiSelect.vue b/src/components/base/base-multi-select/BaseMultiSelect.vue
new file mode 100644
index 0000000..0f62888
--- /dev/null
+++ b/src/components/base/base-multi-select/BaseMultiSelect.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
diff --git a/src/router/routes/dynamic.ts b/src/router/routes/dynamic.ts
index 448e556..d7e601b 100644
--- a/src/router/routes/dynamic.ts
+++ b/src/router/routes/dynamic.ts
@@ -39,7 +39,7 @@
*/
import { Compass } from "@element-plus/icons-vue";
-import { HOME_URL, HOME_NAME, TEST_URL, TEST_NAME } from "@/common/config";
+import { HOME_URL, HOME_NAME } from "@/common/config";
/**
* 扫描路由文件,获取默认暴露得路由信息
@@ -77,13 +77,4 @@ export const dynamicRoutes: RouterConfigRaw[] = [
tagProps: { type: "success" },
},
},
- {
- path: TEST_URL,
- name: TEST_NAME,
- component: "/systemset/vendor/form",
- meta: {
- title: "总表",
- icon: "ep:Compass",
- },
- },
];
diff --git a/src/router/routes/dynamic/sys.ts b/src/router/routes/dynamic/sys.ts
index 737ef1c..8689a9b 100644
--- a/src/router/routes/dynamic/sys.ts
+++ b/src/router/routes/dynamic/sys.ts
@@ -1,22 +1,22 @@
-import { Compass, Odometer } from "@element-plus/icons-vue";
-import { $t } from "@/common/languages";
+// import { Compass, Odometer } from "@element-plus/icons-vue";
+// import { $t } from "@/common/languages";
-export const sysRoutes: RouterConfigRaw = {
- path: "/sys",
- name: "sys",
- meta: {
- title: $t("{{ _route.SYS }}"),
- icon: Odometer,
- },
- children: [
- {
- path: "/sys/sysuser",
- name: "sysuser",
- component: "/sys/sysuser/index",
- meta: {
- title: $t("{{ _route.SYSUSER }}"),
- icon: Compass,
- },
- },
- ],
-};
+// export const sysRoutes: RouterConfigRaw = {
+// path: "/sys",
+// name: "sys",
+// meta: {
+// title: $t("{{ _route.SYS }}"),
+// icon: Odometer,
+// },
+// children: [
+// {
+// path: "/sys/sysuser",
+// name: "sysuser",
+// component: "/sys/sysuser/index",
+// meta: {
+// title: $t("{{ _route.SYSUSER }}"),
+// icon: Compass,
+// },
+// },
+// ],
+// };
diff --git a/src/views/sys/sysuser/FormView.vue b/src/views/sys/sysuser/FormView.vue
deleted file mode 100644
index b6300f5..0000000
--- a/src/views/sys/sysuser/FormView.vue
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/sys/sysuser/SysUserView.vue b/src/views/sys/sysuser/SysUserView.vue
new file mode 100644
index 0000000..727c8c5
--- /dev/null
+++ b/src/views/sys/sysuser/SysUserView.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.roleNames || "-" }}
+
+
+
+
+ {{ getUserTypeLabel(row.userType) }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/sys/sysuser/UserFormDialog.vue b/src/views/sys/sysuser/UserFormDialog.vue
new file mode 100644
index 0000000..ab4c434
--- /dev/null
+++ b/src/views/sys/sysuser/UserFormDialog.vue
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
diff --git a/src/views/sys/sysuser/index.vue b/src/views/sys/sysuser/index.vue
deleted file mode 100644
index a8aef2b..0000000
--- a/src/views/sys/sysuser/index.vue
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/views/systemset/key_account/KeyAccountView.vue b/src/views/systemset/key-account/KeyAccountView.vue
similarity index 100%
rename from src/views/systemset/key_account/KeyAccountView.vue
rename to src/views/systemset/key-account/KeyAccountView.vue
diff --git a/src/views/systemset/permission/PermissionView.vue b/src/views/systemset/permission/PermissionView.vue
new file mode 100644
index 0000000..ff1f9fe
--- /dev/null
+++ b/src/views/systemset/permission/PermissionView.vue
@@ -0,0 +1,286 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t("_common.yes") }}
+
+
+ {{ $t("_common.no") }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/systemset/sysrole/SysRoleView.vue b/src/views/systemset/sysrole/SysRoleView.vue
index 7396e03..56ec07f 100644
--- a/src/views/systemset/sysrole/SysRoleView.vue
+++ b/src/views/systemset/sysrole/SysRoleView.vue
@@ -21,7 +21,7 @@ const addUrl = "/sys/sysrole/addSysRole";
const editUrl = "/sys/sysrole/updateSysRole";
const removeUrl = "/sys/sysrole/deleteSysRole";
const statusUrl = "/sys/sysrole/setStatus";
-const treeUrl = "/sys/syschannel/getSysChannelTree";
+const treeUrl = "/sys/syspermission/getPermissionTree";
const searchers = [{ name: "roleName", type: "text" as const, placeholder: $t("_prop.systemset.sysrole.roleName") }];
const rules = reactive({
roleName: [{ required: true, message: $t("_message.systemset.sysrole.input_roleName"), trigger: "blur" }],
@@ -128,7 +128,7 @@ const operateButtonClick = (eventName: string, row: any) => {
-
+
diff --git a/src/views/systemset/sysuser/SysUserView.vue b/src/views/systemset/sysuser/SysUserView.vue
new file mode 100644
index 0000000..d42f328
--- /dev/null
+++ b/src/views/systemset/sysuser/SysUserView.vue
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+