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 @@
可把绩效应用的日常管理工作交给绩效子管理员,绩效子管理员可由绩效主管理员设置
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ {{handleGetChildeModel(scope.row.functionModel)}}
+
+
+
+ {{handleGetChildeMangeRange(scope.row.departmentId)}}
+
+ {{scope.row.canSee===0?'不可见':'可见'}}
+
+
+ {{scope.row.menuNames.join()}}
+
+
+
+
+ {{scope.row.evaluationGroupId===0?'全部考评组权限':'特定考评组权限'}}
+
+
+
+
+ 编辑
+ 删除
+
+
+
-
+
企业负责人
-
企业负责人可以看到全公司的绩效数据,可由钉钉主管理员在通讯录设置
+
企业负责人可以看到全公司的绩效数据,可由钉钉主管理员在通讯录设置
+
部门主管
@@ -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;