From 103189eaa78e0bc7ddf993f0ad560aa062a44559 Mon Sep 17 00:00:00 2001 From: leave <> Date: Wed, 4 Nov 2020 18:33:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=83=E9=99=90=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/setPermissions.js | 34 ++++ src/utils/elementConfig.js | 4 +- src/views/kpi/set/authority/index.vue | 260 +++++++++++++++++++++++--- 3 files changed, 266 insertions(+), 32 deletions(-) create mode 100644 src/api/setPermissions.js diff --git a/src/api/setPermissions.js b/src/api/setPermissions.js new file mode 100644 index 0000000..14b13cf --- /dev/null +++ b/src/api/setPermissions.js @@ -0,0 +1,34 @@ +import request from '@/utils/request' +// 设置权限 +// 权限设置列表 +export function apiSetPermissionsInfo (query) { + return request({ + url: '/lz_management/user/lzstaffrole/role/set', + method: 'post', + params: query + }) +} +// 权限详情 +export function apiSetPermissionsRoleDetail (query) { + return request({ + url: '/lz_management/user/lzstaffrole/role/detail', + method: 'post', + params: query + }) +} +// 权限添加或更新 +export function apiSetPermissionsRoleChange (query) { + return request({ + url: '/lz_management/user/lzstaffrole/role/addOrUpdate', + method: 'post', + params: query + }) +} +// 删除管理员 +export function apiSetPermissionsRoleDelete (query) { + return request({ + url: '/lz_management/user/lzstaffrole/role/delete', + method: 'post', + params: query + }) +} diff --git a/src/utils/elementConfig.js b/src/utils/elementConfig.js index 2943ac8..0e1e3e5 100644 --- a/src/utils/elementConfig.js +++ b/src/utils/elementConfig.js @@ -34,7 +34,8 @@ import { Menu, MenuItem, Loading, - Image + Image, + Avatar } from 'element-ui' Vue.prototype.$loading = Loading @@ -75,3 +76,4 @@ Vue.use(Cascader) Vue.use(Menu) Vue.use(MenuItem) Vue.use(Image) +Vue.use(Avatar) diff --git a/src/views/kpi/set/authority/index.vue b/src/views/kpi/set/authority/index.vue index 17e688a..d6a24f9 100644 --- a/src/views/kpi/set/authority/index.vue +++ b/src/views/kpi/set/authority/index.vue @@ -13,8 +13,12 @@
绩效应用的主管理员,可由钉钉主管理员设置,绩效主管理员具有应用所有权限,且可以设置智能绩效应用子管理员
- -
阿三来了
+ +
{{mainData.masterFirst.name}}
@@ -30,21 +34,106 @@
可把绩效应用的日常管理工作交给绩效子管理员,绩效子管理员可由绩效主管理员设置
- - - - - - - + + + + + + + + + + + + + + + + + + + + + -
+
企业负责人
-
企业负责人可以看到全公司的绩效数据,可由钉钉主管理员在通讯录设置
+
企业负责人可以看到全公司的绩效数据,可由钉钉主管理员在通讯录设置
+
+
+ + {{item.name}} +
+
部门主管
@@ -59,12 +148,11 @@ + import dialogPersonnel from '@/components/getPersonnel' import popupRight from '@/components/PopupRight' - +import { apiSetPermissionsInfo, apiSetPermissionsRoleChange, apiSetPermissionsRoleDelete } from '@/api/setPermissions' export default { components: { dialogPersonnel, @@ -233,13 +321,18 @@ export default { }, data () { return { + mainData: { + masterFirst: { + headerUrl: '', + name: '', + id: '' + }, // 第一个主管理员 + childPm: [], // 子管理员 + masterPM: [], // 主管理员 + boss: []// 老板 + }, url: '', showDialogPersonnel: false, - tableDataList: [], - showData: { - list: [] - }, - depIds: '22', showPopupAddSub: false, // 显示添加子管理员 popupFromSub: { showChoosePerformance: true, // 选择绩效选择 @@ -263,9 +356,62 @@ export default { ] } }, + created () { + this.handleGetSetPageInfo() + }, methods: { - handleSubGetTableStyle () { - return { 'background-color': '#f5f4f5', 'text-align': 'center' } + handleGetChildeModel (type) { + let modelStr = '' + switch (type) { + case 1: + modelStr = '绩效考核' + break + default: + break + } + return modelStr + }, + handleGetChildeMangeRange (type) { + let typeStr = '' + switch (type) { + case 0: + typeStr = '全公司' + break + case 1: + typeStr = '所在部门及以下部门' + break + case 2: + typeStr = '特定部门' + break + default: + break + } + return typeStr + }, + handleGetChildeGroupPermissions (type) { + // 考评组权限 + let typeStr = '' + switch (type) { + case 0: + typeStr = '全部考评组权限' + break + case 1: + typeStr = '特定考评组权限' + break + default: + break + } + return typeStr + }, + handleSubGetTableStyle (row) { + let alignStr = 'center' + if (row.columnIndex === 1) { + alignStr = 'left' + } + return { 'height': '40px', 'background-color': '#f5f4f5', 'text-align': alignStr } + }, + handleSubGetTableCellStyle () { + return { 'padding': '5px 0px !important' } }, handleChangeDirector () { // 更换主管 @@ -283,13 +429,43 @@ export default { let msg = '是否将智能绩效主管理员变更为' + val.title this.$confirm(msg, '提示') .then(_ => { - this.showDialogPersonnel = false + let dicPara = { + departmentLevel: 'MASTER_PM', + staffId: val.value + } + apiSetPermissionsRoleChange(dicPara).then(res => { + if (res.code === 200) { + this.showDialogPersonnel = false + this.$router.push({name: 'workbench-home'}) + } + }) }) .catch(_ => { }) }, handleSubAdd () { this.showPopupAddSub = true }, + handleChildEdit (row) { + console.log('子管理员编辑', row) + }, + handleChildDelete (row) { + // 删除子管理员 + this.$confirm('确认删除该管理员,删除后该子管理员将失去智能绩效的子管理员权限', '提示').then(_ => { + console.log('删除子管理员', row) + apiSetPermissionsRoleDelete({id: row.id}).then(res => { + if (res.code === 200) { + // 删除成功 + this.$message({ + message: '删除子管理成功', + type: 'success' + }) // 刷新页面信息 + this.handleGetSetPageInfo() + } + }) + }).catch(_ => { + + }) + }, hundlePopupAddSubHide () { this.showPopupAddSub = false }, @@ -320,6 +496,22 @@ export default { }, handlePopupChooseGroup () { // 特定考评组 选择 + }, + handleGetSetPageInfo () { + let paraDic = { + currPage: 1, + pageSize: 400 + } + apiSetPermissionsInfo(paraDic).then(res => { + if (res.code !== 200) { + return + } + this.mainData.masterFirst = res.data.masterPM.length > 0 ? res.data.masterPM[0] : {} + this.mainData.childPm = res.data.childPm + this.mainData.boss = res.data.boss + this.masterPM = res.data.masterPM + console.log('权限设置页面====---', res) + }) } } } @@ -331,12 +523,6 @@ export default { .line-space { margin-bottom: 18px; } - .el-image { - width: 40px; - height: 40px; - border-radius: 20px; - overflow: hidden; - } &-main { &-header { display: flex; @@ -349,7 +535,6 @@ export default { align-items: center; height: 72px; width: 100%; - line-height: 72px; &-name { margin-left: 10px; } @@ -362,6 +547,19 @@ export default { justify-content: space-between; } } + &-ceo { + align-content: start; + &-info { + display: flex; + height: 72px; + &-item { + display: flex; + width: 100px; + align-content: center; + align-items: center; + } + } + } .popup { .el-radio-group { line-height: inherit !important;