diff --git a/src/bg-ui/bg-permission-option.vue b/src/bg-ui/bg-permission-option.vue new file mode 100644 index 0000000000000000000000000000000000000000..048ea8905454f9754ea148f7a4d38979d8d91271 --- /dev/null +++ b/src/bg-ui/bg-permission-option.vue @@ -0,0 +1,98 @@ + + + + + + {{ option.name }} + + + + + + + + + + diff --git a/src/bg-ui/bg-permission.vue b/src/bg-ui/bg-permission.vue new file mode 100644 index 0000000000000000000000000000000000000000..a6309e34c5c12a4cb65448e22d1cdbf7791048da --- /dev/null +++ b/src/bg-ui/bg-permission.vue @@ -0,0 +1,231 @@ + + + + + 全选 + + + + 暂无数据 + + + + + + + + diff --git a/src/bg-ui/bg-table.vue b/src/bg-ui/bg-table.vue index 1239ccb9236e5c6737083b117aed0025f779180a..441ab57974ea29bcf8588efd04577beb36897386 100644 --- a/src/bg-ui/bg-table.vue +++ b/src/bg-ui/bg-table.vue @@ -25,8 +25,7 @@ @@ -103,9 +102,9 @@ export default { type: Boolean, default: false, }, - selectable: { - type: Function, - }, + // selectable: { + // type: Function, + // }, isIndex: { type: Boolean, default: false @@ -120,8 +119,16 @@ export default { }, paddingLeft: { type: [Number, String], - default: () => 33, + default: () => 12, }, + canEdit: { + type: Boolean, + default: false + }, // 多选框是否禁用 + canEditFlag: { + typr : Boolean, + default: "" + }, // 决定多选框是否禁用的字段 }, /* filters: { ellipsis(value, max) { @@ -190,6 +197,17 @@ export default { return "stripe-row"; } }, + selectable(row,index) { + if (this.canEdit) { + if (row[this.canEditFlag] && row[this.canEditFlag] == 1) { + return false + }else { + return true + } + }else { + return true + } + } }, }; diff --git a/src/bg-ui/index.js b/src/bg-ui/index.js index 7b487be6e3786ac62c369c86c1f25c72b7a861f3..730d4b196f8ffd84cf8cde6f17f80677caf62e14 100644 --- a/src/bg-ui/index.js +++ b/src/bg-ui/index.js @@ -35,6 +35,7 @@ import BgFilterGroup from './bg-filter-group.vue' import BgSwitchEle from './bg-switch-ele.vue' import BgTableBtns from './bg-table-btns.vue' + import BgPermission from './bg-permission.vue' const components = { BgIcon,//字体图标 @@ -69,8 +70,9 @@ const components = { BgPagination,// 分页组件 BgInnerTabs,//内部tab BgFilterGroup,//高级搜索 - BgSwitchEle, - BgTableBtns, + BgSwitchEle,// 基于element-plus封装的switch + BgTableBtns,// 表格按钮组 + BgPermission,// 菜单选择 }; const install = (Vue) => { diff --git a/src/bg-ui/index.scss b/src/bg-ui/index.scss index 380b31ad9407adc2138d8a905e9f54b94aec2ca2..6f0070d912b7115a1d02aa5adc47914e7edf0d86 100644 --- a/src/bg-ui/index.scss +++ b/src/bg-ui/index.scss @@ -2535,4 +2535,98 @@ a { .el-switch__core { width: 100%; } +} +.bg-permission { + border-top: solid 1px #dadee7; + border-left: solid 1px #dadee7; + width: 100%; + + .el-checkbox { + .el-checkbox__label { + overflow: hidden; + text-overflow: ellipsis; + word-break: break-all; + white-space: nowrap; + width: 8em; + display: inline-block; + vertical-align: middle; + line-height: 16px; + color: #202531; + } + } + + >.permission-header { + padding: 0 16px; + height: 48px; + line-height: 48px; + background-color: #f2f3f7; + border-bottom: solid 1px #dadee7; + border-right: solid 1px #dadee7; + } + + >.permission-null { + padding: 8px 16px; + border-bottom: solid 1px #dadee7; + border-right: solid 1px #dadee7; + + >p { + font-size: 14px; + line-height: 16px; + color: #333; + text-align: center; + } + } + + >.bg-permission-option--list { + width: 100%; + } +} + +.bg-permission-option { + display: flex; + justify-content: flex-start; + align-items: stretch; + + >.bg-permission-option--self { + flex-shrink: 0; + padding: 8px 16px; + border-right: solid 1px #dadee7; + border-bottom: solid 1px #dadee7; + display: flex; + justify-content: flex-start; + align-items: center; + } + + >.bg-permission-option--list { + flex-shrink: 0; + } +} + +.bg-permission-option--self { + width: 168px; + + &.full-option { + width: 100%; + } +} + +.bg-permission-option--list { + width: calc(100% - 168px); + + &.flex-wrap { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + align-items: stretch; + border-right: solid 1px #dadee7; + border-bottom: solid 1px #dadee7; + + >.bg-permission-option { + >.bg-permission-option--self { + width: 168px; + border-right: none; + border-bottom: none; + } + } + } } \ No newline at end of file diff --git a/src/page/main/config/dict/index.vue b/src/page/main/config/dict/index.vue index 463da1190d4bb11f674c087bcf94ced219af46f7..ecbea23f93b6cbd43b26bb8b35f032ea8cd82191 100644 --- a/src/page/main/config/dict/index.vue +++ b/src/page/main/config/dict/index.vue @@ -56,25 +56,19 @@ - - - {{ row.updated_time.split("+")[0].replace("T", " ").replace("Z", " ") }} - - - - - - - - - + + + + {{ row.updated_time.split("+")[0].replace("T", " ").replace("Z", " ") }} + + + + + + + + + + + + + + diff --git a/src/page/main/system/role/add/role_form.vue b/src/page/main/system/role/add/role_form.vue new file mode 100644 index 0000000000000000000000000000000000000000..c8121e1d32eddf533c96411cf450a8416fa92033 --- /dev/null +++ b/src/page/main/system/role/add/role_form.vue @@ -0,0 +1,258 @@ + + + + + + 系统管理 + 角色管理 + 新建 + + + + + + + + + + + + + + + 全平台所有 + 本组织所有 + 仅自己 + + + + + + + + + + + + + + 取消 + + + 保存 + + + + + + + + + \ No newline at end of file diff --git a/src/page/main/system/role/edit/index.vue b/src/page/main/system/role/edit/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..e8794963ec7a63bf6ba8ba9e61593ad7d4bc3e88 --- /dev/null +++ b/src/page/main/system/role/edit/index.vue @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/src/page/main/system/role/index.vue b/src/page/main/system/role/index.vue index 2a662dcbfbb9c9a62291691ae62a41972701bd94..f1e1edaebfc16e964bb7a4b8dbaa96fdb9316bdc 100644 --- a/src/page/main/system/role/index.vue +++ b/src/page/main/system/role/index.vue @@ -1,30 +1,303 @@ + - 角色管理 + + + 系统管理 + 角色管理 + + + + + + + + + 新建 + + + 批量删除 + + + + + + + + + + + + {{ row.created_time.split("+")[0].replace("T", " ").replace("Z", " ") }} + + + + 编辑 + + + 分配用户 + + + 删除 + + + + + + + + + + + 确定要选中的数据吗? + + + 取 消 + 确 定 + + + -s +onBeforeMount(() => { + getRoleRows() +}) + +const { + filter, + headers, + tableRows, + tableTotal, + delDialog, +} = toRefs(state) + \ No newline at end of file diff --git a/src/router/function.js b/src/router/function.js index e5e8f6922cac204509ccb199c7c6d41f33798b7a..1f6bbb6ee109d1128d0b4743fb77d2e92d7fd1b7 100644 --- a/src/router/function.js +++ b/src/router/function.js @@ -264,8 +264,22 @@ var adminMenu = [ menuType:'manager', show:true, path: "/system/role", + linkPath: ["/system/role/add","/system/role/edit"] + }, + { + name: "role-add-manage", + menuName:'新增角色', + parentPath: "/system/role", + menuType:'manager', + path: "/system/role/add", + }, + { + name: "role-edit-manage", + menuName:'编辑角色', + parentPath: "/system/role", + menuType:'manager', + path: "/system/role/edit", }, - ] }, {
暂无数据