From dc169c0b9a58c0b06816e402448e04aaff2fc1ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=BC=9F=E5=BA=9A?= Date: Thu, 27 Oct 2022 14:43:51 +0800 Subject: [PATCH] =?UTF-8?q?update=EF=BC=9A=E8=A7=92=E8=89=B2=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E9=83=A8=E5=88=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bg-ui/bg-permission-option.vue | 98 +++++++ src/bg-ui/bg-permission.vue | 231 +++++++++++++++ src/bg-ui/bg-table.vue | 30 +- src/bg-ui/index.js | 6 +- src/bg-ui/index.scss | 94 ++++++ src/page/main/config/dict/index.vue | 71 ++--- src/page/main/system/role/add/index.vue | 8 + src/page/main/system/role/add/role_form.vue | 258 +++++++++++++++++ src/page/main/system/role/edit/index.vue | 8 + src/page/main/system/role/index.vue | 305 +++++++++++++++++++- src/router/function.js | 16 +- 11 files changed, 1065 insertions(+), 60 deletions(-) create mode 100644 src/bg-ui/bg-permission-option.vue create mode 100644 src/bg-ui/bg-permission.vue create mode 100644 src/page/main/system/role/add/index.vue create mode 100644 src/page/main/system/role/add/role_form.vue create mode 100644 src/page/main/system/role/edit/index.vue diff --git a/src/bg-ui/bg-permission-option.vue b/src/bg-ui/bg-permission-option.vue new file mode 100644 index 0000000..048ea89 --- /dev/null +++ b/src/bg-ui/bg-permission-option.vue @@ -0,0 +1,98 @@ + + + diff --git a/src/bg-ui/bg-permission.vue b/src/bg-ui/bg-permission.vue new file mode 100644 index 0000000..a6309e3 --- /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 1239ccb..441ab57 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 7b487be..730d4b1 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 380b31a..6f0070d 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 463da11..ecbea23 100644 --- a/src/page/main/config/dict/index.vue +++ b/src/page/main/config/dict/index.vue @@ -56,25 +56,19 @@
- - - - - +
+ + + + + +
+ + + 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 0000000..c8121e1 --- /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 0000000..e879496 --- /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 2a662dc..f1e1eda 100644 --- a/src/page/main/system/role/index.vue +++ b/src/page/main/system/role/index.vue @@ -1,30 +1,303 @@ + -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 e5e8f69..1f6bbb6 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", }, - ] }, { -- 2.26.0