Merge branch 'master' of http://yun.pashanhoo.com:9090/bdc/bdcjg-web
Showing
8 changed files
with
547 additions
and
356 deletions
| ... | @@ -16,7 +16,7 @@ export const getRolesById = categoryId => { | ... | @@ -16,7 +16,7 @@ export const getRolesById = categoryId => { |
| 16 | conditions: [ | 16 | conditions: [ |
| 17 | { | 17 | { |
| 18 | property: 'category', | 18 | property: 'category', |
| 19 | value:categoryId, | 19 | value: categoryId, |
| 20 | operator: 'EQ' | 20 | operator: 'EQ' |
| 21 | } | 21 | } |
| 22 | ], | 22 | ], |
| ... | @@ -81,3 +81,43 @@ export const getParentMenuListAction = (id) => { | ... | @@ -81,3 +81,43 @@ export const getParentMenuListAction = (id) => { |
| 81 | const params = getParams(conditionGroup) | 81 | const params = getParams(conditionGroup) |
| 82 | return getAction(api.menus, params) | 82 | return getAction(api.menus, params) |
| 83 | } | 83 | } |
| 84 | // 获取权限列表 | ||
| 85 | export const getAuthorityListAction = (productId, subsystemCode) => { | ||
| 86 | const conditionGroup = { | ||
| 87 | conditions: [ | ||
| 88 | { | ||
| 89 | property: 'productId', | ||
| 90 | value: productId, | ||
| 91 | operator: 'EQ' | ||
| 92 | }, | ||
| 93 | { | ||
| 94 | property: 'code', | ||
| 95 | value: subsystemCode + '_MENU', | ||
| 96 | operator: 'EQ' | ||
| 97 | } | ||
| 98 | ], | ||
| 99 | queryRelation: 'AND' | ||
| 100 | } | ||
| 101 | const params = getParams(conditionGroup) | ||
| 102 | return getAction(api.resourceCategory, params) | ||
| 103 | } | ||
| 104 | /** | ||
| 105 | * 获取角色的权限 id operationCodes resourceCategoryCode | ||
| 106 | * id 授权id | ||
| 107 | * operationCodes 操作符集合 | ||
| 108 | * resourceCategoryCode 菜单默认MENU | ||
| 109 | */ | ||
| 110 | export const getRoleAuthorityList = ( | ||
| 111 | id, | ||
| 112 | operationCodes, | ||
| 113 | resourceCategoryCode | ||
| 114 | ) => { | ||
| 115 | return getAction(`${api.rolePermissions}/${id}`, { | ||
| 116 | operationCodes: operationCodes, | ||
| 117 | resourceCategoryCode: resourceCategoryCode | ||
| 118 | }) | ||
| 119 | } | ||
| 120 | // 角色授权 | ||
| 121 | export const roleAuthority = (id, permissionDtos) => { | ||
| 122 | return putAction(`${api.rolePermissions}/${id}`, permissionDtos) | ||
| 123 | } | ... | ... |
| 1 | import Vue from 'vue' | 1 | import Vue from 'vue' |
| 2 | 2 | ||
| 3 | // 下载,导出 | 3 | // 下载,导出 |
| 4 | Vue.prototype.$download = function(name, href) { | 4 | Vue.prototype.$download = function (name, href) { |
| 5 | var a = document.createElement('a') // 创建a标签 | 5 | var a = document.createElement('a') // 创建a标签 |
| 6 | var e = document.createEvent('MouseEvents') // 创建鼠标事件对象 | 6 | var e = document.createEvent('MouseEvents') // 创建鼠标事件对象 |
| 7 | e.initEvent('click', false, false) // 初始化事件对象 | 7 | e.initEvent('click', false, false) // 初始化事件对象 |
| ... | @@ -10,7 +10,7 @@ Vue.prototype.$download = function(name, href) { | ... | @@ -10,7 +10,7 @@ Vue.prototype.$download = function(name, href) { |
| 10 | a.dispatchEvent(e) // 给指定的元素,执行事件click事件 | 10 | a.dispatchEvent(e) // 给指定的元素,执行事件click事件 |
| 11 | } | 11 | } |
| 12 | // 导出json文件 | 12 | // 导出json文件 |
| 13 | Vue.prototype.$downloadJson = function(data, name) { | 13 | Vue.prototype.$downloadJson = function (data, name) { |
| 14 | // 1 生成文件的 blob 对象 | 14 | // 1 生成文件的 blob 对象 |
| 15 | const blobData = new Blob([JSON.stringify(data)], { | 15 | const blobData = new Blob([JSON.stringify(data)], { |
| 16 | type: 'application/octet-stream' | 16 | type: 'application/octet-stream' |
| ... | @@ -84,7 +84,7 @@ const checkCode = (rule, value, callback) => { | ... | @@ -84,7 +84,7 @@ const checkCode = (rule, value, callback) => { |
| 84 | // } | 84 | // } |
| 85 | // } | 85 | // } |
| 86 | // 日期格式转换 "yyyy-MM-dd HH:mm:ss" | 86 | // 日期格式转换 "yyyy-MM-dd HH:mm:ss" |
| 87 | Vue.prototype.$formdate = function(date) { | 87 | Vue.prototype.$formdate = function (date) { |
| 88 | if (!date) { | 88 | if (!date) { |
| 89 | return "" | 89 | return "" |
| 90 | } | 90 | } |
| ... | @@ -95,22 +95,22 @@ Vue.prototype.$formdate = function(date) { | ... | @@ -95,22 +95,22 @@ Vue.prototype.$formdate = function(date) { |
| 95 | var hh = (d.getHours() < 10 ? '0' + d.getHours() : d.getHours()) + ':'; | 95 | var hh = (d.getHours() < 10 ? '0' + d.getHours() : d.getHours()) + ':'; |
| 96 | var mm = (d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes()) + ':'; | 96 | var mm = (d.getMinutes() < 10 ? '0' + d.getMinutes() : d.getMinutes()) + ':'; |
| 97 | var ss = (d.getSeconds() < 10 ? '0' + d.getSeconds() : d.getSeconds()); | 97 | var ss = (d.getSeconds() < 10 ? '0' + d.getSeconds() : d.getSeconds()); |
| 98 | return YY + MM + DD +" "+hh + mm + ss | 98 | return YY + MM + DD + " " + hh + mm + ss |
| 99 | } | 99 | } |
| 100 | // 时间格式过滤 | 100 | // 时间格式过滤 |
| 101 | Vue.filter('timeFilter', function(timeStr) { | 101 | Vue.filter('timeFilter', function (timeStr) { |
| 102 | if (timeStr) { | 102 | if (timeStr) { |
| 103 | return timeStr.substring(0, 10) | 103 | return timeStr.substring(0, 10) |
| 104 | } | 104 | } |
| 105 | }) | 105 | }) |
| 106 | export function getType(o) { | 106 | export function getType (o) { |
| 107 | return Object.prototype.toString.call(o).slice(8, -1) | 107 | return Object.prototype.toString.call(o).slice(8, -1) |
| 108 | } | 108 | } |
| 109 | export function isKeyType(o, type) { | 109 | export function isKeyType (o, type) { |
| 110 | return getType(o).toLowerCase() === type.toLowerCase() | 110 | return getType(o).toLowerCase() === type.toLowerCase() |
| 111 | } | 111 | } |
| 112 | // 深拷贝全局挂载 | 112 | // 深拷贝全局挂载 |
| 113 | Vue.prototype.$deepCopy = function(sth) { | 113 | Vue.prototype.$deepCopy = function (sth) { |
| 114 | // 深度复制数组 | 114 | // 深度复制数组 |
| 115 | // if (Object.prototype.toString.call(obj) === "[object Array]") { | 115 | // if (Object.prototype.toString.call(obj) === "[object Array]") { |
| 116 | // const object = []; | 116 | // const object = []; |
| ... | @@ -196,7 +196,7 @@ Vue.prototype.$dealArrNotDisabled = arr => { | ... | @@ -196,7 +196,7 @@ Vue.prototype.$dealArrNotDisabled = arr => { |
| 196 | } | 196 | } |
| 197 | } | 197 | } |
| 198 | } | 198 | } |
| 199 | function nodeDeal(arr) { | 199 | function nodeDeal (arr) { |
| 200 | arr.forEach(item => { | 200 | arr.forEach(item => { |
| 201 | delete item.disabled | 201 | delete item.disabled |
| 202 | if (item.children) { | 202 | if (item.children) { |
| ... | @@ -222,7 +222,7 @@ Vue.prototype.$dealArrDisabled = (arr, id) => { | ... | @@ -222,7 +222,7 @@ Vue.prototype.$dealArrDisabled = (arr, id) => { |
| 222 | } | 222 | } |
| 223 | } | 223 | } |
| 224 | } | 224 | } |
| 225 | function nodeDeal(arr) { | 225 | function nodeDeal (arr) { |
| 226 | arr.forEach(item => { | 226 | arr.forEach(item => { |
| 227 | item['disabled'] = true | 227 | item['disabled'] = true |
| 228 | if (item.children) { | 228 | if (item.children) { |
| ... | @@ -249,10 +249,9 @@ Vue.prototype.$getNodeRoute = (val, id) => { | ... | @@ -249,10 +249,9 @@ Vue.prototype.$getNodeRoute = (val, id) => { |
| 249 | } | 249 | } |
| 250 | } | 250 | } |
| 251 | }) | 251 | }) |
| 252 | function nodefun(newVal, newId, newCid_list) { | 252 | function nodefun (newVal, newId, newCid_list) { |
| 253 | let flag = false | 253 | let flag = false |
| 254 | newVal.forEach(j => { | 254 | newVal.forEach(j => { |
| 255 | // console.log(j) | ||
| 256 | if (j.id === newId) { | 255 | if (j.id === newId) { |
| 257 | newCid_list.push(j.id) | 256 | newCid_list.push(j.id) |
| 258 | flag = true | 257 | flag = true |
| ... | @@ -272,7 +271,7 @@ Vue.prototype.$getNodeRoute = (val, id) => { | ... | @@ -272,7 +271,7 @@ Vue.prototype.$getNodeRoute = (val, id) => { |
| 272 | return newCid_list | 271 | return newCid_list |
| 273 | } | 272 | } |
| 274 | } | 273 | } |
| 275 | function result(cid_list) { | 274 | function result (cid_list) { |
| 276 | const arr = cid_list.concat() | 275 | const arr = cid_list.concat() |
| 277 | arr.pop() | 276 | arr.pop() |
| 278 | return arr | 277 | return arr |
| ... | @@ -325,7 +324,7 @@ Vue.prototype.$findParent = (list, id) => { | ... | @@ -325,7 +324,7 @@ Vue.prototype.$findParent = (list, id) => { |
| 325 | Vue.prototype.$findChildren = (list, nodeId) => { | 324 | Vue.prototype.$findChildren = (list, nodeId) => { |
| 326 | let newArray = [] | 325 | let newArray = [] |
| 327 | let flag = false | 326 | let flag = false |
| 328 | function dealList(list, nodeId) { | 327 | function dealList (list, nodeId) { |
| 329 | if (list.length !== 0) { | 328 | if (list.length !== 0) { |
| 330 | list.forEach(item => { | 329 | list.forEach(item => { |
| 331 | if (!flag) { | 330 | if (!flag) { | ... | ... |
| 1 | <template> | ||
| 2 | <Dialog :title="title" class="tableClass" :show.sync="visible" :width="'715px'" @close="close()"> | ||
| 3 | <template slot="content"> | ||
| 4 | <lb-table ref="multipleTable" | ||
| 5 | :pagination="false" | ||
| 6 | :column="tableData.column" | ||
| 7 | :data="tableData.data" | ||
| 8 | @selection-change="handleSelectionChange"> | ||
| 9 | </lb-table> | ||
| 10 | </template> | ||
| 11 | <template slot="footer"> | ||
| 12 | <el-button type="primary" class="save" @click="handleSaveMember()" | ||
| 13 | >保存</el-button | ||
| 14 | > | ||
| 15 | <el-button class="cancel-button" @click="close()">取消</el-button> | ||
| 16 | </template> | ||
| 17 | </Dialog> | ||
| 18 | </template> | ||
| 19 | |||
| 20 | <script> | ||
| 21 | import Dialog from "@/components/Dialog/"; | ||
| 22 | export default { | ||
| 23 | name: "", | ||
| 24 | components: { Dialog }, | ||
| 25 | props: {}, | ||
| 26 | data() { | ||
| 27 | return { | ||
| 28 | title: "人员配置", | ||
| 29 | visible: false, | ||
| 30 | tableData: { | ||
| 31 | column: [ | ||
| 32 | { | ||
| 33 | type: 'selection' | ||
| 34 | }, | ||
| 35 | { | ||
| 36 | prop: 'name', | ||
| 37 | label: '角色名称' | ||
| 38 | }, | ||
| 39 | { | ||
| 40 | prop: 'type', | ||
| 41 | label: '角色类型' | ||
| 42 | }, | ||
| 43 | { | ||
| 44 | prop: 'departmentName', | ||
| 45 | label: '角色描述' | ||
| 46 | }, | ||
| 47 | ], | ||
| 48 | data: [ | ||
| 49 | { | ||
| 50 | id: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
| 51 | createdAt: null, | ||
| 52 | updatedAt: "2022-08-04T03:38:27.626+0000", | ||
| 53 | createdBy: null, | ||
| 54 | updatedBy: "3127e455-43ba-45ff-9326-0e02ef89485e", | ||
| 55 | sort: 1, | ||
| 56 | name: "超级管理员", | ||
| 57 | loginName: "admin", | ||
| 58 | password: "05eb15777e8fd1d61c840472e7267f61d432f63340d86b59", | ||
| 59 | passwordSalt: "5178114777136485", | ||
| 60 | email: null, | ||
| 61 | lastLoginTime: null, | ||
| 62 | mobilePhone: "18291003568", | ||
| 63 | status: "ACTIVE", | ||
| 64 | passwordChangeTime: "2021-12-10T08:01:01.569+0000", | ||
| 65 | idCard: "612725202111021521", | ||
| 66 | departmentId: "2eae5304-544f-4f5b-b354-8f5d47433c9b", | ||
| 67 | organizationId: "0bca67ae-1d9e-4b41-b057-f165586d24aa", | ||
| 68 | sex: "0", | ||
| 69 | isDuty: true, | ||
| 70 | type:"", | ||
| 71 | code: "123324", | ||
| 72 | jobLevel: null, | ||
| 73 | telephone: "028-87720898", | ||
| 74 | address: "办公地点修改测试", | ||
| 75 | isLocked: false, | ||
| 76 | departmentName: "研发部", | ||
| 77 | _X_ROW_KEY: "row_276", | ||
| 78 | }, | ||
| 79 | { | ||
| 80 | name: '数据管理员', | ||
| 81 | type:"1", | ||
| 82 | }, | ||
| 83 | { | ||
| 84 | name: '数据管理员2', | ||
| 85 | type:"d", | ||
| 86 | } | ||
| 87 | ] | ||
| 88 | }, | ||
| 89 | multipleSelection: [] | ||
| 90 | |||
| 91 | } | ||
| 92 | }, | ||
| 93 | computed: {}, | ||
| 94 | watch: {}, | ||
| 95 | created() {}, | ||
| 96 | mounted() {}, | ||
| 97 | methods: { | ||
| 98 | authorization() { | ||
| 99 | this.visible = true; | ||
| 100 | }, | ||
| 101 | close() { | ||
| 102 | // this.resetForm() | ||
| 103 | this.visible = false; | ||
| 104 | }, | ||
| 105 | // 保存事件 | ||
| 106 | handleSaveMember() { | ||
| 107 | // if (this.memberList.length === 0) { | ||
| 108 | // this.$message.warning("请添加待选人员"); | ||
| 109 | // return false; | ||
| 110 | // } | ||
| 111 | // const idList = this.memberList.map(item => item.id) | ||
| 112 | // updateUser(this.roleId, idList).then(res => { | ||
| 113 | // if (res.status === 1) { | ||
| 114 | // this.$message.success({ message: '保存成功', showClose: true }) | ||
| 115 | // this.showMemberConfigDialog = false | ||
| 116 | // this.$emit('setUsers', this.roleId) | ||
| 117 | // this.resetMemberConfig() | ||
| 118 | // } else this.$message.error({ message: res.message, showClose: true }) | ||
| 119 | // }) | ||
| 120 | }, | ||
| 121 | handleSelectionChange (val) { | ||
| 122 | this.multipleSelection = val | ||
| 123 | } | ||
| 124 | } | ||
| 125 | }; | ||
| 126 | </script> | ||
| 127 | <style scoped lang="scss"> | ||
| 128 | /deep/.el-dialog__header{ | ||
| 129 | text-align: center; | ||
| 130 | margin-bottom: 10px; | ||
| 131 | .el-dialog__title{ | ||
| 132 | color: white; | ||
| 133 | } | ||
| 134 | } | ||
| 135 | </style> |
| ... | @@ -166,6 +166,7 @@ export default { | ... | @@ -166,6 +166,7 @@ export default { |
| 166 | methods: { | 166 | methods: { |
| 167 | // 获取父级菜单 | 167 | // 获取父级菜单 |
| 168 | getParentMenuList(id) { | 168 | getParentMenuList(id) { |
| 169 | |||
| 169 | getParentMenuListAction(id).then((res) => { | 170 | getParentMenuListAction(id).then((res) => { |
| 170 | if (res.status === 1) { | 171 | if (res.status === 1) { |
| 171 | const list = this.$dealArrChildren(res.content) | 172 | const list = this.$dealArrChildren(res.content) |
| ... | @@ -195,7 +196,7 @@ export default { | ... | @@ -195,7 +196,7 @@ export default { |
| 195 | }, | 196 | }, |
| 196 | // 新增菜单 | 197 | // 新增菜单 |
| 197 | add() { | 198 | add() { |
| 198 | this.getParentMenuList(this.productId) | 199 | this.getParentMenuList("2925fdeb-ddeb-4c15-8ee0-7bc3aa75ec2b") |
| 199 | this.visible = true | 200 | this.visible = true |
| 200 | this.type = 0 | 201 | this.type = 0 |
| 201 | this.form.jumpMode = 1 | 202 | this.form.jumpMode = 1 | ... | ... |
| ... | @@ -19,33 +19,32 @@ | ... | @@ -19,33 +19,32 @@ |
| 19 | :data="tablelistData" | 19 | :data="tablelistData" |
| 20 | row-key="id" | 20 | row-key="id" |
| 21 | default-expand-all | 21 | default-expand-all |
| 22 | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" | 22 | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> |
| 23 | > | ||
| 24 | </lb-table> | 23 | </lb-table> |
| 25 | </div> | 24 | </div> |
| 26 | <edit-dialog ref="dialogForm" | 25 | <edit-dialog ref="dialogForm" |
| 27 | :product-id="productId" | 26 | :product-id="productId" |
| 28 | :resource-category-id="resourceCategoryId" | 27 | :resource-category-id="resourceCategoryId" |
| 29 | @ok="reloadTableData"/> | 28 | @ok="reloadTableData" /> |
| 30 | <!-- <authorizationdiglog ref="rolesForm" /> --> | 29 | <!-- <authorizationdiglog ref="rolesForm" /> --> |
| 31 | </div> | 30 | </div> |
| 32 | </template> | 31 | </template> |
| 33 | <script> | 32 | <script> |
| 34 | // 定时任务 | 33 | // 定时任务 |
| 35 | import data from "./data"; | 34 | import data from "./data"; |
| 36 | import { deleteAction, getAction, api } from "@/api/manageApi"; | 35 | import { deleteAction, getAction, api } from "@/api/manageApi"; |
| 37 | import EditDialog from "./edit-dialog.vue"; | 36 | import EditDialog from "./edit-dialog.vue"; |
| 38 | // import authorizationdiglog from "./authorizationdiglog.vue"; | 37 | // import authorizationdiglog from "./authorizationdiglog.vue"; |
| 39 | export default { | 38 | export default { |
| 40 | name: "menus", | 39 | name: "menus", |
| 41 | components: { | 40 | components: { |
| 42 | EditDialog, | 41 | EditDialog, |
| 43 | // authorizationdiglog, | 42 | // authorizationdiglog, |
| 44 | }, | 43 | }, |
| 45 | data() { | 44 | data () { |
| 46 | return { | 45 | return { |
| 47 | tablelistData: [], | 46 | tablelistData: [], |
| 48 | resourceCategoryId:"", | 47 | resourceCategoryId: "", |
| 49 | taskData: null, | 48 | taskData: null, |
| 50 | form: { | 49 | form: { |
| 51 | job_name: "", | 50 | job_name: "", |
| ... | @@ -106,15 +105,15 @@ export default { | ... | @@ -106,15 +105,15 @@ export default { |
| 106 | }, | 105 | }, |
| 107 | tableUrl: api.menus, // 菜单接口地址 | 106 | tableUrl: api.menus, // 菜单接口地址 |
| 108 | meumurlid: api.subsystem,// 项目id接口地址 | 107 | meumurlid: api.subsystem,// 项目id接口地址 |
| 109 | productId:""//项目id | 108 | productId: ""//项目id |
| 110 | }; | 109 | }; |
| 111 | }, | 110 | }, |
| 112 | created() { | 111 | created () { |
| 113 | this.getTableList(); | 112 | this.getTableList(); |
| 114 | }, | 113 | }, |
| 115 | methods: { | 114 | methods: { |
| 116 | // 加载表格数据 | 115 | // 加载表格数据 |
| 117 | getTableList() { | 116 | getTableList () { |
| 118 | 117 | ||
| 119 | const queryOptionsid = { | 118 | const queryOptionsid = { |
| 120 | conditionGroup: { | 119 | conditionGroup: { |
| ... | @@ -134,7 +133,7 @@ export default { | ... | @@ -134,7 +133,7 @@ export default { |
| 134 | // 获取系统id | 133 | // 获取系统id |
| 135 | getAction(this.meumurlid, params) | 134 | getAction(this.meumurlid, params) |
| 136 | .then((res) => { | 135 | .then((res) => { |
| 137 | this.productId=res.content[0].id; | 136 | this.productId = res.content[0].id; |
| 138 | let queryOptions = { | 137 | let queryOptions = { |
| 139 | conditionGroup: { | 138 | conditionGroup: { |
| 140 | conditions: [ | 139 | conditions: [ |
| ... | @@ -161,34 +160,33 @@ export default { | ... | @@ -161,34 +160,33 @@ export default { |
| 161 | if (res.status === 1) { | 160 | if (res.status === 1) { |
| 162 | this.loading = false; | 161 | this.loading = false; |
| 163 | this.tablelistData = res.content; | 162 | this.tablelistData = res.content; |
| 164 | console.log("this.tablelistData", this.tablelistData); | ||
| 165 | } else { | 163 | } else { |
| 166 | this.$message.error({ message: res.message, showClose: true }); | 164 | this.$message.error({ message: res.message, showClose: true }); |
| 167 | this.loading = false; | 165 | this.loading = false; |
| 168 | } | 166 | } |
| 169 | }) | 167 | }) |
| 170 | .catch((error) => { | 168 | .catch((error) => { |
| 171 | console.log("errrrrrorrrrr", error); | 169 | console.log("er", error); |
| 172 | this.loading = false; | 170 | this.loading = false; |
| 173 | }); | 171 | }); |
| 174 | }) | 172 | }) |
| 175 | .catch((error) => { | 173 | .catch((error) => { |
| 176 | console.log("errrrrrorrrrr", error); | 174 | console.log("er", error); |
| 177 | }); | 175 | }); |
| 178 | }, | 176 | }, |
| 179 | // 新增菜单 | 177 | // 新增菜单 |
| 180 | handleAdd() { | 178 | handleAdd () { |
| 181 | this.$refs.dialogForm.add(); | 179 | this.$refs.dialogForm.add(); |
| 182 | this.$refs.dialogForm.title = "添加"; | 180 | this.$refs.dialogForm.title = "添加"; |
| 183 | }, | 181 | }, |
| 184 | 182 | ||
| 185 | // 修改 | 183 | // 修改 |
| 186 | handleEdit(record) { | 184 | handleEdit (record) { |
| 187 | this.$refs.dialogForm.edit(record); | 185 | this.$refs.dialogForm.edit(record); |
| 188 | this.$refs.dialogForm.title = "修改"; | 186 | this.$refs.dialogForm.title = "修改"; |
| 189 | }, | 187 | }, |
| 190 | // 删除 | 188 | // 删除 |
| 191 | handleDelete(id,content) { | 189 | handleDelete (id, content) { |
| 192 | this.$confirm( | 190 | this.$confirm( |
| 193 | `<div class="customer-message-wrapper"> | 191 | `<div class="customer-message-wrapper"> |
| 194 | <h5 class="title">您确认要执行该操作用于以下信息:</h5> | 192 | <h5 class="title">您确认要执行该操作用于以下信息:</h5> |
| ... | @@ -225,22 +223,22 @@ export default { | ... | @@ -225,22 +223,22 @@ export default { |
| 225 | } | 223 | } |
| 226 | }) | 224 | }) |
| 227 | }) | 225 | }) |
| 228 | .catch(() => {}) | 226 | .catch(() => { }) |
| 229 | }, | 227 | }, |
| 230 | // 新增、编辑回显 | 228 | // 新增、编辑回显 |
| 231 | reloadTableData() { | 229 | reloadTableData () { |
| 232 | this.getTableList() | 230 | this.getTableList() |
| 233 | }, | 231 | }, |
| 234 | }, | 232 | }, |
| 235 | }; | 233 | }; |
| 236 | </script> | 234 | </script> |
| 237 | <style scoped lang="scss"> | 235 | <style scoped lang="scss"> |
| 238 | @import "~@/styles/mixin.scss"; | 236 | @import "~@/styles/mixin.scss"; |
| 239 | @import "~@/styles/public.scss"; | 237 | @import "~@/styles/public.scss"; |
| 240 | .btnColRight { | 238 | .btnColRight { |
| 241 | margin-top: 20px; | 239 | margin-top: 20px; |
| 242 | } | 240 | } |
| 243 | /deep/.el-table__expand-icon { | 241 | /deep/.el-table__expand-icon { |
| 244 | color: #fff; | 242 | color: #fff; |
| 245 | } | 243 | } |
| 246 | </style> | 244 | </style> | ... | ... |
| ... | @@ -22,8 +22,7 @@ | ... | @@ -22,8 +22,7 @@ |
| 22 | :column="tableData.columns" | 22 | :column="tableData.columns" |
| 23 | :data="listdata" | 23 | :data="listdata" |
| 24 | :expand-row-keys="keyList" | 24 | :expand-row-keys="keyList" |
| 25 | row-key="id" | 25 | row-key="id"> |
| 26 | > | ||
| 27 | </lb-table> | 26 | </lb-table> |
| 28 | </div> | 27 | </div> |
| 29 | <EditDialog ref="addEditDialog" @ok="reloadTableData" /> | 28 | <EditDialog ref="addEditDialog" @ok="reloadTableData" /> |
| ... | @@ -31,28 +30,35 @@ | ... | @@ -31,28 +30,35 @@ |
| 31 | </div> | 30 | </div> |
| 32 | </template> | 31 | </template> |
| 33 | <script> | 32 | <script> |
| 34 | import { | 33 | import { |
| 35 | getUuid, | 34 | getUuid, |
| 36 | judgeSort, | 35 | judgeSort, |
| 37 | realMove, | 36 | realMove, |
| 38 | findParents, | 37 | findParents, |
| 39 | removeTreeListItem, | 38 | removeTreeListItem, |
| 40 | } from "@/utils/operation"; | 39 | } from "@/utils/operation"; |
| 41 | import { getRolesById, getUserRoles } from "@/api/quanxianmanagement"; | 40 | import { getRolesById, getUserRoles, getAuthorityListAction } from "@/api/quanxianmanagement"; |
| 42 | import data from "./data"; | 41 | import data from "./data"; |
| 43 | import sjsbTask from "@/api/sjsbTask.js"; | 42 | // import { |
| 44 | import { api, getAction,deleteAction } from "@/api/manageApi"; | 43 | // getOrganizationAuthorityList, |
| 45 | import tableMixin from "@/mixins/tableMixin.js"; | 44 | // getDepartmentAuthorityList, |
| 46 | import EditDialog from "./edit-dialog.vue"; | 45 | // getRoleAuthorityList, |
| 47 | import Roleslistdiglog from "./roleslistdiglog.vue"; | 46 | // getUserAuthorityList, |
| 48 | export default { | 47 | // getAuthorityListAction |
| 48 | // } from '@/api/authorityManage' | ||
| 49 | import sjsbTask from "@/api/sjsbTask.js"; | ||
| 50 | import { api, getAction, deleteAction } from "@/api/manageApi"; | ||
| 51 | import tableMixin from "@/mixins/tableMixin.js"; | ||
| 52 | import EditDialog from "./edit-dialog.vue"; | ||
| 53 | import Roleslistdiglog from "./roleslistdiglog.vue"; | ||
| 54 | export default { | ||
| 49 | name: "menus", | 55 | name: "menus", |
| 50 | mixins: [tableMixin], | 56 | mixins: [tableMixin], |
| 51 | components: { | 57 | components: { |
| 52 | EditDialog, | 58 | EditDialog, |
| 53 | Roleslistdiglog, | 59 | Roleslistdiglog, |
| 54 | }, | 60 | }, |
| 55 | data() { | 61 | data () { |
| 56 | return { | 62 | return { |
| 57 | personlist: null, | 63 | personlist: null, |
| 58 | waitMemberList: [], | 64 | waitMemberList: [], |
| ... | @@ -67,6 +73,11 @@ export default { | ... | @@ -67,6 +73,11 @@ export default { |
| 67 | roleId: "", | 73 | roleId: "", |
| 68 | title: "", | 74 | title: "", |
| 69 | queryParam: {}, | 75 | queryParam: {}, |
| 76 | multipleSelection: [], | ||
| 77 | // 菜单列表 | ||
| 78 | menutablelistData: [], | ||
| 79 | tableUrl: api.menus, // 菜单接口地址 | ||
| 80 | meumurlid: api.subsystem, // 项目id接口地址 | ||
| 70 | selectType: "0", | 81 | selectType: "0", |
| 71 | queryName: "", | 82 | queryName: "", |
| 72 | organizationId: "", // 组织机构ID | 83 | organizationId: "", // 组织机构ID |
| ... | @@ -74,6 +85,8 @@ export default { | ... | @@ -74,6 +85,8 @@ export default { |
| 74 | departmentList: [], // 部门列表 | 85 | departmentList: [], // 部门列表 |
| 75 | levelList: [], // 职务级别 | 86 | levelList: [], // 职务级别 |
| 76 | sexList: [], | 87 | sexList: [], |
| 88 | operationCodes: null, // 操作符对象 | ||
| 89 | operationList: [], // 获取授权列表需要提交的操作符数组 | ||
| 77 | typeOptions: [ | 90 | typeOptions: [ |
| 78 | { | 91 | { |
| 79 | value: "0", | 92 | value: "0", |
| ... | @@ -141,10 +154,16 @@ export default { | ... | @@ -141,10 +154,16 @@ export default { |
| 141 | render: (h, scope) => { | 154 | render: (h, scope) => { |
| 142 | return ( | 155 | return ( |
| 143 | <div> | 156 | <div> |
| 144 | <el-tooltip class="item" effect="dark" disabled={scope.row.type !== 'Everyone'} content="没有点击的权限" placement="top"> | 157 | <el-tooltip |
| 158 | class="item" | ||
| 159 | effect="dark" | ||
| 160 | disabled={scope.row.type !== "Everyone"} | ||
| 161 | content="没有点击的权限" | ||
| 162 | placement="top" | ||
| 163 | > | ||
| 145 | <span> | 164 | <span> |
| 146 | <el-button | 165 | <el-button |
| 147 | disabled={scope.row.type === 'Everyone'} | 166 | disabled={scope.row.type === "Everyone"} |
| 148 | type="text" | 167 | type="text" |
| 149 | size="mini" | 168 | size="mini" |
| 150 | icon="el-icon-video-pause" | 169 | icon="el-icon-video-pause" |
| ... | @@ -156,7 +175,13 @@ export default { | ... | @@ -156,7 +175,13 @@ export default { |
| 156 | </el-button> | 175 | </el-button> |
| 157 | </span> | 176 | </span> |
| 158 | </el-tooltip> | 177 | </el-tooltip> |
| 159 | <el-tooltip class="item" effect="dark" disabled={scope.row.category !== 1} content="系统内置角色 不允许修改" placement="top"> | 178 | <el-tooltip |
| 179 | class="item" | ||
| 180 | effect="dark" | ||
| 181 | disabled={scope.row.category !== 1} | ||
| 182 | content="系统内置角色 不允许修改" | ||
| 183 | placement="top" | ||
| 184 | > | ||
| 160 | <span> | 185 | <span> |
| 161 | <el-button | 186 | <el-button |
| 162 | disabled={scope.row.category === 1} | 187 | disabled={scope.row.category === 1} |
| ... | @@ -171,7 +196,13 @@ export default { | ... | @@ -171,7 +196,13 @@ export default { |
| 171 | </el-button> | 196 | </el-button> |
| 172 | </span> | 197 | </span> |
| 173 | </el-tooltip> | 198 | </el-tooltip> |
| 174 | <el-tooltip class="item" effect="dark" disabled={scope.row.category !== 1} content="系统内置角色 不允许删除" placement="top"> | 199 | <el-tooltip |
| 200 | class="item" | ||
| 201 | effect="dark" | ||
| 202 | disabled={scope.row.category !== 1} | ||
| 203 | content="系统内置角色 不允许删除" | ||
| 204 | placement="top" | ||
| 205 | > | ||
| 175 | <span> | 206 | <span> |
| 176 | <el-button | 207 | <el-button |
| 177 | type="text" | 208 | type="text" |
| ... | @@ -201,15 +232,16 @@ export default { | ... | @@ -201,15 +232,16 @@ export default { |
| 201 | }, | 232 | }, |
| 202 | }; | 233 | }; |
| 203 | }, | 234 | }, |
| 204 | created() { | 235 | created () { |
| 205 | this.getTableData(); | 236 | this.getTableData(); |
| 237 | this.getTableList() | ||
| 206 | }, | 238 | }, |
| 207 | mounted() {}, | 239 | mounted () { }, |
| 208 | methods: { | 240 | methods: { |
| 209 | // 获取角色列表 | 241 | // 获取角色列表 |
| 210 | getTableData() { | 242 | getTableData () { |
| 211 | let Builtinrole=[] | 243 | let Builtinrole = []; |
| 212 | let Publicrole=[] | 244 | let Publicrole = []; |
| 213 | 245 | ||
| 214 | getRolesById(1) | 246 | getRolesById(1) |
| 215 | .then((res) => { | 247 | .then((res) => { |
| ... | @@ -225,11 +257,93 @@ export default { | ... | @@ -225,11 +257,93 @@ export default { |
| 225 | .catch((e) => console.error(e)); | 257 | .catch((e) => console.error(e)); |
| 226 | }) | 258 | }) |
| 227 | .catch((e) => console.error(e)); | 259 | .catch((e) => console.error(e)); |
| 260 | }, | ||
| 228 | 261 | ||
| 229 | 262 | // 获取菜单列表 | |
| 263 | getTableList () { | ||
| 264 | const queryOptionsid = { | ||
| 265 | conditionGroup: { | ||
| 266 | queryRelation: "AND", | ||
| 267 | conditions: [ | ||
| 268 | { | ||
| 269 | property: "code", | ||
| 270 | value: "BDCJGPT", | ||
| 271 | operator: "EQ", | ||
| 272 | }, | ||
| 273 | ], | ||
| 230 | }, | 274 | }, |
| 231 | // 人员配置 | 275 | }; |
| 232 | getUserList(row) { | 276 | const params = { |
| 277 | queryOptions: queryOptionsid, | ||
| 278 | }; | ||
| 279 | // 获取系统id | ||
| 280 | getAction(this.meumurlid, params) | ||
| 281 | .then((res) => { | ||
| 282 | this.productId = res.content[0].id; | ||
| 283 | this.getAuthorityList(res.content[0].id, res.content[0].code) | ||
| 284 | this.selectedSubsystemCode = res.content[0].code | ||
| 285 | let queryOptions = { | ||
| 286 | conditionGroup: { | ||
| 287 | conditions: [ | ||
| 288 | { | ||
| 289 | property: "productId", | ||
| 290 | value: this.productId, | ||
| 291 | operator: "EQ", | ||
| 292 | }, | ||
| 293 | ], | ||
| 294 | queryRelation: "AND", | ||
| 295 | }, | ||
| 296 | orderBys: [{ property: "sort", direction: "desc" }], | ||
| 297 | }; | ||
| 298 | if (!this.tableUrl) { | ||
| 299 | console.log("请设置tableUrl属性为接口地址!"); | ||
| 300 | return; | ||
| 301 | } | ||
| 302 | if (this.queryOptions !== "") { | ||
| 303 | this.queryParam.queryOptions = JSON.stringify(queryOptions); | ||
| 304 | } | ||
| 305 | // 查询系统菜单 | ||
| 306 | getAction(this.tableUrl, this.queryParam) | ||
| 307 | .then((res) => { | ||
| 308 | if (res.status === 1) { | ||
| 309 | this.loading = false; | ||
| 310 | this.menutablelistData = res.content; | ||
| 311 | } else { | ||
| 312 | this.$message.error({ message: res.message, showClose: true }); | ||
| 313 | this.loading = false; | ||
| 314 | } | ||
| 315 | }) | ||
| 316 | .catch((error) => { | ||
| 317 | console.log("er", error); | ||
| 318 | this.loading = false; | ||
| 319 | }); | ||
| 320 | }) | ||
| 321 | .catch((error) => { | ||
| 322 | console.log("er", error); | ||
| 323 | }); | ||
| 324 | }, | ||
| 325 | // 获取权限列表 | ||
| 326 | getAuthorityList (productId, code) { | ||
| 327 | getAuthorityListAction(productId, code).then( | ||
| 328 | res => { | ||
| 329 | if (res.status === 1) { | ||
| 330 | if (res.content.length !== 0) { | ||
| 331 | this.operationCodes = res.content[0].operations | ||
| 332 | this.operationList = [] | ||
| 333 | for (var k in this.operationCodes) { | ||
| 334 | this.operationList.push(k) | ||
| 335 | } | ||
| 336 | } | ||
| 337 | } else { | ||
| 338 | this.$message.error({ message: res.message, showClose: true }) | ||
| 339 | } | ||
| 340 | } | ||
| 341 | ) | ||
| 342 | }, | ||
| 343 | |||
| 344 | // 配置 | ||
| 345 | getUserList (row) { | ||
| 346 | this.getTableList() | ||
| 233 | const params = {}; | 347 | const params = {}; |
| 234 | const queryOptions = { | 348 | const queryOptions = { |
| 235 | conditionGroup: { | 349 | conditionGroup: { |
| ... | @@ -250,6 +364,7 @@ export default { | ... | @@ -250,6 +364,7 @@ export default { |
| 250 | orderBys: [{ property: "sort", direction: "desc" }], | 364 | orderBys: [{ property: "sort", direction: "desc" }], |
| 251 | }; | 365 | }; |
| 252 | params.queryOptions = JSON.stringify(queryOptions); | 366 | params.queryOptions = JSON.stringify(queryOptions); |
| 367 | |||
| 253 | getUserRoles(row.id).then((res) => { | 368 | getUserRoles(row.id).then((res) => { |
| 254 | if (res.status === 1) { | 369 | if (res.status === 1) { |
| 255 | this.personlist = res.content; | 370 | this.personlist = res.content; |
| ... | @@ -266,7 +381,10 @@ export default { | ... | @@ -266,7 +381,10 @@ export default { |
| 266 | }); | 381 | }); |
| 267 | } | 382 | } |
| 268 | 383 | ||
| 269 | this.$refs.rolesForm.adds(this.waitMemberList, row.id); | 384 | this.$refs.rolesForm.personlist(this.waitMemberList, row.id); |
| 385 | // this.$refs.rolesForm.getMenuData(); | ||
| 386 | |||
| 387 | this.$refs.rolesForm.menulist(this.operationList, row.id, this.selectedSubsystemCode, this.menutablelistData, this.operationCodes); | ||
| 270 | } else { | 388 | } else { |
| 271 | this.$message.error({ message: res.message, showClose: true }); | 389 | this.$message.error({ message: res.message, showClose: true }); |
| 272 | } | 390 | } |
| ... | @@ -276,7 +394,7 @@ export default { | ... | @@ -276,7 +394,7 @@ export default { |
| 276 | }); | 394 | }); |
| 277 | }, | 395 | }, |
| 278 | // 新增、修改角色 | 396 | // 新增、修改角色 |
| 279 | handleAddEdit(value) { | 397 | handleAddEdit (value) { |
| 280 | this.$refs.addEditDialog.menuType = this.menuType; | 398 | this.$refs.addEditDialog.menuType = this.menuType; |
| 281 | this.$refs.addEditDialog.roleId = value.id; | 399 | this.$refs.addEditDialog.roleId = value.id; |
| 282 | this.roleSort = value.sort ? value.sort : 0; | 400 | this.roleSort = value.sort ? value.sort : 0; |
| ... | @@ -289,13 +407,13 @@ export default { | ... | @@ -289,13 +407,13 @@ export default { |
| 289 | this.$refs.addEditDialog.dialogTitle = value.id ? "修改" : "新增"; | 407 | this.$refs.addEditDialog.dialogTitle = value.id ? "修改" : "新增"; |
| 290 | }, | 408 | }, |
| 291 | // 上移下移 | 409 | // 上移下移 |
| 292 | moveUpward(index, row) { | 410 | moveUpward (index, row) { |
| 293 | realMove(row.id, "UP", this.listdata); | 411 | realMove(row.id, "UP", this.listdata); |
| 294 | this.key++; | 412 | this.key++; |
| 295 | let id = findParents(this.listdata, row.id); | 413 | let id = findParents(this.listdata, row.id); |
| 296 | this.keyList = id; | 414 | this.keyList = id; |
| 297 | }, | 415 | }, |
| 298 | moveDown(index, row) { | 416 | moveDown (index, row) { |
| 299 | realMove(row.id, "DOWN", this.listdata); | 417 | realMove(row.id, "DOWN", this.listdata); |
| 300 | this.key++; | 418 | this.key++; |
| 301 | let id = findParents(this.listdata, row.id); | 419 | let id = findParents(this.listdata, row.id); |
| ... | @@ -303,7 +421,7 @@ export default { | ... | @@ -303,7 +421,7 @@ export default { |
| 303 | }, | 421 | }, |
| 304 | 422 | ||
| 305 | // 删除 | 423 | // 删除 |
| 306 | handleDelete: function(id, content = '') { | 424 | handleDelete: function (id, content = "") { |
| 307 | this.$confirm( | 425 | this.$confirm( |
| 308 | `<div class="customer-message-wrapper"> | 426 | `<div class="customer-message-wrapper"> |
| 309 | <h5 class="title">您确认要执行该操作用于以下信息:</h5> | 427 | <h5 class="title">您确认要执行该操作用于以下信息:</h5> |
| ... | @@ -313,47 +431,47 @@ export default { | ... | @@ -313,47 +431,47 @@ export default { |
| 313 | <span >无法恢复</span> | 431 | <span >无法恢复</span> |
| 314 | </p> | 432 | </p> |
| 315 | </div>`, | 433 | </div>`, |
| 316 | '执行确认', | 434 | "执行确认", |
| 317 | { | 435 | { |
| 318 | dangerouslyUseHTMLString: true, | 436 | dangerouslyUseHTMLString: true, |
| 319 | customClass: 'customer-delete', | 437 | customClass: "customer-delete", |
| 320 | confirmButtonText: '确定', | 438 | confirmButtonText: "确定", |
| 321 | cancelButtonText: '取消', | 439 | cancelButtonText: "取消", |
| 322 | type: 'warning' | 440 | type: "warning", |
| 323 | } | 441 | } |
| 324 | ) | 442 | ) |
| 325 | .then(() => { | 443 | .then(() => { |
| 326 | if (!this.tableUrl) { | 444 | if (!this.tableUrl) { |
| 327 | this.$message.error({ | 445 | this.$message.error({ |
| 328 | message: '请设置tableUrl属性为接口地址!', | 446 | message: "请设置tableUrl属性为接口地址!", |
| 329 | showClose: true | 447 | showClose: true, |
| 330 | }) | 448 | }); |
| 331 | return | 449 | return; |
| 332 | } | 450 | } |
| 333 | const url = this.tableUrl + '/' + id | 451 | const url = this.tableUrl + "/" + id; |
| 334 | deleteAction(url).then(res => { | 452 | deleteAction(url).then((res) => { |
| 335 | if (res.status === 1) { | 453 | if (res.status === 1) { |
| 336 | this.$message.success({ message: res.message, showClose: true }) | 454 | this.$message.success({ message: res.message, showClose: true }); |
| 337 | this.getTableData() | 455 | this.getTableData(); |
| 338 | } else { | 456 | } else { |
| 339 | this.$message.error({ message: res.message, showClose: true }) | 457 | this.$message.error({ message: res.message, showClose: true }); |
| 340 | } | 458 | } |
| 459 | }); | ||
| 341 | }) | 460 | }) |
| 342 | }) | 461 | .catch(() => { }); |
| 343 | .catch(() => {}) | ||
| 344 | }, | 462 | }, |
| 345 | // 新增回显 | 463 | // 新增回显 |
| 346 | reloadTableData() { | 464 | reloadTableData () { |
| 347 | this.getTableData() | 465 | this.getTableData(); |
| 348 | }, | 466 | }, |
| 349 | }, | 467 | }, |
| 350 | }; | 468 | }; |
| 351 | </script> | 469 | </script> |
| 352 | <style scoped lang="scss"> | 470 | <style scoped lang="scss"> |
| 353 | @import "~@/styles/mixin.scss"; | 471 | @import "~@/styles/mixin.scss"; |
| 354 | @import "~@/styles/public.scss"; | 472 | @import "~@/styles/public.scss"; |
| 355 | .btnColRight { | 473 | .btnColRight { |
| 356 | margin-left: -30px; | 474 | margin-left: -30px; |
| 357 | margin-top: 20px; | 475 | margin-top: 20px; |
| 358 | } | 476 | } |
| 359 | </style> | 477 | </style> | ... | ... |
| ... | @@ -5,8 +5,7 @@ | ... | @@ -5,8 +5,7 @@ |
| 5 | @click="close()" | 5 | @click="close()" |
| 6 | custom-class="dialogBox editDialogBox mainCenter" | 6 | custom-class="dialogBox editDialogBox mainCenter" |
| 7 | :visible.sync="visible" | 7 | :visible.sync="visible" |
| 8 | width="85%" | 8 | width="85%"> |
| 9 | > | ||
| 10 | <div slot="title" class="dialog_title" ref="dialogTitle"> | 9 | <div slot="title" class="dialog_title" ref="dialogTitle"> |
| 11 | {{ title || "标题" }} | 10 | {{ title || "标题" }} |
| 12 | </div> | 11 | </div> |
| ... | @@ -15,69 +14,89 @@ | ... | @@ -15,69 +14,89 @@ |
| 15 | <el-tab-pane label="人员配置" name="first"></el-tab-pane> | 14 | <el-tab-pane label="人员配置" name="first"></el-tab-pane> |
| 16 | <el-tab-pane label="菜单配置" name="second"></el-tab-pane> | 15 | <el-tab-pane label="菜单配置" name="second"></el-tab-pane> |
| 17 | </el-tabs> | 16 | </el-tabs> |
| 18 | <!-- <div class="editDialogBox-box" v-if="activeName == 'first'"> --> | ||
| 19 | <lb-table | 17 | <lb-table |
| 20 | v-if="activeName == 'first'" | 18 | v-show="activeName == 'first'" |
| 21 | ref="multipleTable" | 19 | ref="multipleTable" |
| 22 | :pagination="false" | 20 | :pagination="false" |
| 23 | :column="usertableData.column" | 21 | :column="usertableData.column" |
| 24 | :data="usertableData.data" | 22 | :data="usertableData.data" |
| 25 | @selection-change="handleSelectionChange" | 23 | @selection-change="handleSelectionChange" |
| 26 | @row-click="handleClickTableRow" | 24 | @row-click="handleClickTableRow"> |
| 27 | > | ||
| 28 | > | 25 | > |
| 29 | </lb-table> | 26 | </lb-table> |
| 30 | <!-- </div> --> | ||
| 31 | <!-- <div class="editDialogBox-box" v-else="activeName !== 'first'"> --> | ||
| 32 | <lb-table | 27 | <lb-table |
| 33 | v-else="activeName !== 'first'" | 28 | :key="menukey" |
| 29 | v-show="activeName == 'second'" | ||
| 30 | ref="multipleTable1" | ||
| 34 | :pagination="false" | 31 | :pagination="false" |
| 35 | :column="menutableData.columns" | 32 | :column="menutableData.column" |
| 36 | :data="menutableData" | 33 | :data="lastMenuList" |
| 37 | row-key="id" | 34 | row-key="id" |
| 38 | default-expand-all | 35 | default-expand-all |
| 39 | @selection-change="handleSelectionChanges" | 36 | :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> |
| 40 | @row-click="handleClickTableRows" | ||
| 41 | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" | ||
| 42 | > | ||
| 43 | </lb-table> | 37 | </lb-table> |
| 44 | <!-- </div> --> | ||
| 45 | </div> | 38 | </div> |
| 46 | <template slot="footer"> | 39 | <template slot="footer"> |
| 47 | <el-button type="primary" class="save" @click="handleSaveMember()" | 40 | <el-button type="primary" class="save" @click="handleSaveMember()">保存</el-button> |
| 48 | >保存</el-button | ||
| 49 | > | ||
| 50 | <el-button class="cancel-button" @click="close()">取消</el-button> | 41 | <el-button class="cancel-button" @click="close()">取消</el-button> |
| 51 | </template> | 42 | </template> |
| 52 | </el-dialog> | 43 | </el-dialog> |
| 53 | </template> | 44 | </template> |
| 54 | 45 | ||
| 55 | <script> | 46 | <script> |
| 56 | import { updateUser } from "@/api/quanxianmanagement"; | 47 | import { api } from "@/api/manageApi"; |
| 57 | export default { | 48 | import { updateUser, getRoleAuthorityList, roleAuthority } from "@/api/quanxianmanagement"; |
| 49 | export default { | ||
| 58 | name: "", | 50 | name: "", |
| 59 | data() { | 51 | data () { |
| 60 | return { | 52 | return { |
| 61 | title: "人员配置", | 53 | title: "人员配置", |
| 62 | visible: false, | 54 | visible: false, |
| 63 | menutableData: { | 55 | menutableData: { |
| 64 | column: [ | 56 | column: [ |
| 65 | { | 57 | { |
| 66 | type: "selection", | 58 | label: "序号", |
| 59 | type: "index", | ||
| 60 | width: "50", | ||
| 61 | // index: this.indexMethod, | ||
| 67 | }, | 62 | }, |
| 68 | { | 63 | { |
| 69 | prop: "name", | 64 | prop: "name", |
| 65 | width: 330, | ||
| 70 | label: "菜单名称", | 66 | label: "菜单名称", |
| 67 | } | ||
| 68 | ].concat([ | ||
| 69 | { | ||
| 70 | label: "权限", | ||
| 71 | render: (h, scope) => { | ||
| 72 | return ( | ||
| 73 | <div> | ||
| 74 | <el-checkbox v-model={scope.row.checkArr[0].value} | ||
| 75 | disabled={scope.row.checkArr[0].disabled} | ||
| 76 | label={scope.row.checkArr[0].name} onChange={(checked) => { | ||
| 77 | this.changeCheck(checked, scope.row.checkArr[0].id, scope); | ||
| 78 | }} /> | ||
| 79 | <el-checkbox v-model={scope.row.checkArr[1].value} | ||
| 80 | disabled={scope.row.checkArr[0].disabled} | ||
| 81 | label={scope.row.checkArr[1].name} | ||
| 82 | onChange={(checked) => { | ||
| 83 | this.changeCheck(checked, scope.row.checkArr[1].id, scope); | ||
| 84 | }} /> | ||
| 85 | </div> | ||
| 86 | ); | ||
| 71 | }, | 87 | }, |
| 72 | ], | 88 | }, |
| 89 | ]), | ||
| 73 | }, | 90 | }, |
| 74 | usertableData: { | 91 | usertableData: { |
| 75 | column: [ | 92 | column: [ |
| 76 | { | 93 | { |
| 77 | type: "selection", | 94 | type: "selection", |
| 95 | width: 330, | ||
| 78 | }, | 96 | }, |
| 79 | { | 97 | { |
| 80 | prop: "name", | 98 | prop: "name", |
| 99 | width: 330, | ||
| 81 | label: "姓名", | 100 | label: "姓名", |
| 82 | }, | 101 | }, |
| 83 | { | 102 | { |
| ... | @@ -85,101 +104,212 @@ export default { | ... | @@ -85,101 +104,212 @@ export default { |
| 85 | label: "用户名", | 104 | label: "用户名", |
| 86 | }, | 105 | }, |
| 87 | ], | 106 | ], |
| 107 | data: [] | ||
| 88 | }, | 108 | }, |
| 89 | // 角色id | 109 | // 角色id |
| 90 | roleId: "", | 110 | roleId: "", |
| 111 | menuList: [], // 菜单列表 | ||
| 112 | queryParam: {}, | ||
| 113 | menukey: 0, | ||
| 91 | activeName: "first", | 114 | activeName: "first", |
| 92 | multipleSelection: [], | 115 | lastMenuList: [], // 重构完成的菜单表格数据 |
| 116 | usermultipleSelection: [], | ||
| 117 | // 选中菜单列表 | ||
| 118 | menumultipleSelection: [], | ||
| 119 | tableUrl: api.menus, // 菜单接口地址 | ||
| 120 | meumurlid: api.subsystem,// 项目id接口地址 | ||
| 121 | checkArr: [], // 重构操作符列表 | ||
| 122 | authorityList: [], // 授权回显数组 | ||
| 123 | checklistbor: [], | ||
| 124 | // 授权对象数据 | ||
| 125 | menuprams: {}, | ||
| 126 | // 系统code | ||
| 127 | selectedSubsystemCode: "" | ||
| 93 | }; | 128 | }; |
| 94 | }, | 129 | }, |
| 95 | computed: {}, | 130 | computed: {}, |
| 96 | 131 | ||
| 97 | created() {}, | 132 | created () { |
| 98 | mounted() {}, | 133 | }, |
| 134 | mounted () { | ||
| 135 | }, | ||
| 99 | methods: { | 136 | methods: { |
| 100 | 137 | ||
| 101 | // 人员配置点击行勾选数据 | 138 | // 人员配置点击行勾选数据 |
| 102 | handleClickTableRow(row, event) { | 139 | handleClickTableRow (row, event) { |
| 103 | this.checkNum = 0; | 140 | this.checkNum1 = 0; |
| 104 | this.isCheck = false; | 141 | this.isCheck1 = false; |
| 105 | if (event.label == "操作") { | 142 | if (event.label == "操作") { |
| 106 | return; | 143 | return; |
| 107 | } else { | 144 | } else { |
| 108 | if (row.status == "0") { | 145 | if (row.status == "0") { |
| 109 | return; | 146 | return; |
| 110 | } else { | 147 | } else { |
| 111 | if (this.multipleSelection.length > 0) { | 148 | if (this.usermultipleSelection.length > 0) { |
| 112 | if ( | 149 | if ( |
| 113 | JSON.stringify(this.multipleSelection).indexOf( | 150 | JSON.stringify(this.usermultipleSelection).indexOf( |
| 114 | JSON.stringify(row) | 151 | JSON.stringify(row) |
| 115 | ) == -1 | 152 | ) == -1 |
| 116 | ) { | 153 | ) { |
| 117 | this.multipleSelection.push(row); | 154 | this.usermultipleSelection.push(row); |
| 118 | this.$refs.multipleTable.toggleRowSelection(row, true); | 155 | this.$refs.multipleTable.toggleRowSelection(row, true); |
| 119 | } else { | 156 | } else { |
| 120 | this.multipleSelection.map((item, index) => { | 157 | this.usermultipleSelection.map((item, index) => { |
| 121 | if (item.id == row.id) { | 158 | if (item.id == row.id) { |
| 122 | this.multipleSelection.splice(index, 1); | 159 | this.usermultipleSelection.splice(index, 1); |
| 123 | this.$refs.multipleTable.toggleRowSelection(row, false); | 160 | this.$refs.multipleTable.toggleRowSelection(row, false); |
| 124 | } | 161 | } |
| 125 | }); | 162 | }); |
| 126 | } | 163 | } |
| 127 | } else { | 164 | } else { |
| 128 | this.multipleSelection.push(row); | 165 | this.usermultipleSelection.push(row); |
| 129 | this.$refs.multipleTable.toggleRowSelection(row, true); | 166 | this.$refs.multipleTable.toggleRowSelection(row, true); |
| 130 | } | 167 | } |
| 131 | } | 168 | } |
| 132 | } | 169 | } |
| 133 | if (this.multipleSelection.length > 0) { | 170 | if (this.usermultipleSelection.length > 0) { |
| 134 | this.checkNum = this.multipleSelection.length; | 171 | this.checkNum1 = this.usermultipleSelection.length; |
| 135 | this.isCheck = true; | 172 | this.isCheck1 = true; |
| 136 | } else { | 173 | } else { |
| 137 | this.isCheck = false; | 174 | this.isCheck1 = false; |
| 138 | } | 175 | } |
| 139 | }, | 176 | }, |
| 140 | // 菜单配置点击行勾选数据 | 177 | // 获取授权主体的菜单权限 |
| 141 | handleClickTableRow(row, event) { | 178 | // getMenuAuthorityList |
| 142 | this.checkNum = 0; | 179 | menulist (operationList, id, Code, menutablelistData, operationCodes) { |
| 143 | this.isCheck = false; | 180 | this.selectedSubsystemCode = Code |
| 144 | if (event.label == "操作") { | 181 | this.menuList = menutablelistData; |
| 145 | return; | 182 | getRoleAuthorityList( |
| 146 | } else { | 183 | id, |
| 147 | if (row.status == "0") { | 184 | operationList.toString(), |
| 148 | return; | 185 | Code + '_MENU' |
| 186 | ).then(res => { | ||
| 187 | if (res.status === 1) { | ||
| 188 | this.authorityList = res.content | ||
| 189 | this.getRecursionTreeData(this.menuList, this.authorityList, operationCodes) | ||
| 190 | this.getAuthorizedInfo() | ||
| 191 | // this.setCheckAllArr() | ||
| 192 | // this.getAuthorizedInfo() | ||
| 149 | } else { | 193 | } else { |
| 150 | if (this.multipleSelection.length > 0) { | 194 | this.$message.error({ message: res.message, showClose: true }) |
| 195 | } | ||
| 196 | }) | ||
| 197 | |||
| 198 | |||
| 199 | }, | ||
| 200 | /** | ||
| 201 | * 递归渲染列表数据 | ||
| 202 | * list:原始数组 | ||
| 203 | * authorityList:已授权数组 | ||
| 204 | */ | ||
| 205 | getRecursionTreeData (list, authorityList, operationCodes) { | ||
| 206 | ++this.menukey | ||
| 207 | this.checkArr = [] | ||
| 208 | for (const k in operationCodes) { | ||
| 209 | const obj = {} | ||
| 210 | obj.name = operationCodes[k] | ||
| 211 | obj.id = k | ||
| 212 | obj.value = false | ||
| 213 | obj.disabled = false | ||
| 214 | // obj.isAll = false; | ||
| 215 | this.checkArr.push(obj) | ||
| 216 | } | ||
| 217 | for (const [index, item] of Object.entries(list)) { | ||
| 218 | this.setAuthorizedConditions( | ||
| 219 | authorityList, | ||
| 220 | this.$deepCopy(this.checkArr), | ||
| 221 | item | ||
| 222 | ) | ||
| 151 | if ( | 223 | if ( |
| 152 | JSON.stringify(this.multipleSelection).indexOf( | 224 | item.children && |
| 153 | JSON.stringify(row) | 225 | item.children !== null && |
| 154 | ) == -1 | 226 | item.children.length !== 0 |
| 155 | ) { | 227 | ) { |
| 156 | this.multipleSelection.push(row); | 228 | item.children.forEach((child, j) => { |
| 157 | this.$refs.multipleTable.toggleRowSelection(row, true); | 229 | this.setAuthorizedConditions( |
| 158 | } else { | 230 | authorityList, |
| 159 | this.multipleSelection.map((item, index) => { | 231 | this.$deepCopy(this.checkArr), |
| 160 | if (item.id == row.id) { | 232 | child |
| 161 | this.multipleSelection.splice(index, 1); | 233 | ) |
| 162 | this.$refs.multipleTable.toggleRowSelection(row, false); | 234 | }) |
| 235 | this.getRecursionTreeData(item.children, authorityList, operationCodes) | ||
| 163 | } | 236 | } |
| 164 | }); | ||
| 165 | } | 237 | } |
| 238 | this.lastMenuList = list | ||
| 239 | // this.setCheckAllArr(list) | ||
| 240 | }, | ||
| 241 | // 授权条件 | ||
| 242 | setAuthorizedConditions (authorityList, checkArr, item) { | ||
| 243 | if (this.roleId === '') { | ||
| 244 | checkArr.forEach(ele => { | ||
| 245 | ele.disabled = true | ||
| 246 | ele.value = false | ||
| 247 | }) | ||
| 166 | } else { | 248 | } else { |
| 167 | this.multipleSelection.push(row); | 249 | if (authorityList.length !== 0) { |
| 168 | this.$refs.multipleTable.toggleRowSelection(row, true); | 250 | if (authorityList[0].superPermission === true) { |
| 251 | checkArr.forEach(ele => { | ||
| 252 | ele.value = true | ||
| 253 | ele.disabled = true | ||
| 254 | }) | ||
| 255 | } else { | ||
| 256 | const repeatArr = authorityList.filter(authorityItem => { | ||
| 257 | return authorityItem.resourceUri === item.id | ||
| 258 | }) | ||
| 259 | repeatArr.forEach(element => { | ||
| 260 | checkArr.forEach(ele => { | ||
| 261 | if (element.operationCode === ele.id) { | ||
| 262 | ele.value = true | ||
| 263 | if (this.roleId !== element.subjectId) { | ||
| 264 | ele.disabled = true | ||
| 169 | } | 265 | } |
| 170 | } | 266 | } |
| 267 | }) | ||
| 268 | }) | ||
| 269 | } | ||
| 171 | } | 270 | } |
| 172 | if (this.multipleSelection.length > 0) { | 271 | } |
| 173 | this.checkNum = this.multipleSelection.length; | 272 | this.$set(item, 'checkArr', this.$deepCopy(checkArr)) |
| 174 | this.isCheck = true; | 273 | }, |
| 175 | } else { | 274 | // 获取拼接授权信息 |
| 176 | this.isCheck = false; | 275 | getAuthorizedInfo () { |
| 276 | const lastArr = [] | ||
| 277 | const authorizedList = [] | ||
| 278 | const wholeArr = this.$deepCopy(this.lastMenuList) | ||
| 279 | const arr = this.$treeConvertToArr(wholeArr) | ||
| 280 | arr.forEach(ele => { | ||
| 281 | ele.checkArr.forEach(val => { | ||
| 282 | if (val.value === true && val.disabled === false) { | ||
| 283 | const obj = { | ||
| 284 | operationCode: val.id, | ||
| 285 | name: ele.name, | ||
| 286 | id: ele.id | ||
| 287 | } | ||
| 288 | lastArr.push(obj) | ||
| 289 | } | ||
| 290 | }) | ||
| 291 | }) | ||
| 292 | lastArr.forEach(element => { | ||
| 293 | authorizedList.push({ | ||
| 294 | operationCode: element.operationCode, // 标识符 | ||
| 295 | productCode: this.selectedSubsystemCode, // 子系统code | ||
| 296 | resourceCategoryCode: this.selectedSubsystemCode + '_MENU', // 资源类别code默认为MENU | ||
| 297 | resourceName: element.name, | ||
| 298 | resourceUri: element.id, // 授权菜单id | ||
| 299 | subjectId: this.roleId, // 授权对象id | ||
| 300 | subjectType: 'ROLE' // 授权对象类别 | ||
| 301 | }) | ||
| 302 | }) | ||
| 303 | this.menuprams = { | ||
| 304 | subjectId: this.roleId, | ||
| 305 | authorizedList: authorizedList | ||
| 177 | } | 306 | } |
| 178 | }, | 307 | }, |
| 179 | // 获取人员列表做筛选 | 308 | // 获取人员列表做筛选 |
| 180 | adds(a, rid) { | 309 | personlist (a, rid) { |
| 181 | this.roleId = rid; | 310 | this.roleId = rid; |
| 182 | this.visible = true; | 311 | this.visible = true; |
| 312 | |||
| 183 | this.usertableData.data = a; | 313 | this.usertableData.data = a; |
| 184 | this.usertableData.data.forEach((item, index) => { | 314 | this.usertableData.data.forEach((item, index) => { |
| 185 | if (item.selectStatus === 0) { | 315 | if (item.selectStatus === 0) { |
| ... | @@ -191,41 +321,81 @@ export default { | ... | @@ -191,41 +321,81 @@ export default { |
| 191 | }); | 321 | }); |
| 192 | } | 322 | } |
| 193 | }); | 323 | }); |
| 324 | |||
| 194 | }, | 325 | }, |
| 195 | // 关闭事件 | 326 | // 关闭事件 |
| 196 | close() { | 327 | close () { |
| 197 | this.visible = false; | 328 | this.visible = false; |
| 198 | }, | 329 | }, |
| 199 | // 保存事件 | 330 | // 保存事件 |
| 200 | handleSaveMember() { | 331 | handleSaveMember () { |
| 201 | const idList = this.multipleSelection.map((item) => { | 332 | // 人员授权 |
| 333 | const idList = this.usermultipleSelection.map((item) => { | ||
| 202 | return item.id; | 334 | return item.id; |
| 203 | }); | 335 | }) |
| 204 | updateUser(this.roleId, idList).then((res) => { | 336 | updateUser(this.roleId, idList).then((res) => { |
| 205 | if (res.status === 1) { | 337 | if (res.status === 1) { |
| 206 | this.$message.success({ message: "保存成功", showClose: true }); | 338 | this.$message.success({ message: "保存成功", showClose: true }); |
| 207 | this.visible = false; | 339 | this.visible = false; |
| 208 | // this.$emit("setUsers", this.roleId); | ||
| 209 | // this.resetMemberConfig(); | ||
| 210 | } else this.$message.error({ message: res.message, showClose: true }); | 340 | } else this.$message.error({ message: res.message, showClose: true }); |
| 211 | }); | 341 | }); |
| 342 | // 菜单授权 | ||
| 343 | roleAuthority( | ||
| 344 | this.menuprams.subjectId, | ||
| 345 | this.menuprams.authorizedList | ||
| 346 | ).then((res) => { | ||
| 347 | if (res.status === 1) { | ||
| 348 | this.$message.success({ | ||
| 349 | message: res.message, | ||
| 350 | }) | ||
| 351 | // this.authorizedContChange() | ||
| 352 | } else { | ||
| 353 | this.$message.error({ message: res.message, showClose: true }) | ||
| 354 | } | ||
| 355 | }) | ||
| 212 | }, | 356 | }, |
| 213 | // 勾选人员事件 | 357 | // 勾选人员事件 |
| 214 | handleSelectionChange(val) { | 358 | handleSelectionChange (val) { |
| 215 | this.multipleSelection = val; | 359 | this.usermultipleSelection = val; |
| 360 | }, | ||
| 361 | // 数据筛选 | ||
| 362 | setarrdata (scope, arr) { | ||
| 363 | |||
| 364 | arr.forEach((item, index, arr) => { | ||
| 365 | if (item.id == scope.row.id) { | ||
| 366 | this.checklistbor = [...arr] | ||
| 367 | } else if (item.id !== scope.row.id && item.children) { | ||
| 368 | this.setarrdata(scope, item.children) | ||
| 369 | } | ||
| 370 | |||
| 371 | }) | ||
| 372 | |||
| 216 | }, | 373 | }, |
| 217 | // 勾选菜单事件 | 374 | // 勾选菜单事件 |
| 218 | handleSelectionChanges(val) { | 375 | changeCheck (flag, checkId, scope) { |
| 219 | this.multipleSelection = val; | 376 | this.checklistbor = [] |
| 377 | this.setarrdata(scope, this.lastMenuList) | ||
| 378 | const parents = this.$findParent(this.lastMenuList, scope.row.parentId) | ||
| 379 | const childs = this.$findChildren(this.lastMenuList, scope.row.id) | ||
| 380 | this.$setChildArr( | ||
| 381 | this.lastMenuList, | ||
| 382 | scope.row.id, | ||
| 383 | checkId, | ||
| 384 | flag, | ||
| 385 | this.checklistbor, | ||
| 386 | parents, | ||
| 387 | childs | ||
| 388 | ) | ||
| 389 | this.getAuthorizedInfo() | ||
| 220 | }, | 390 | }, |
| 221 | }, | 391 | }, |
| 222 | }; | 392 | }; |
| 223 | </script> | 393 | </script> |
| 224 | <style scoped lang="scss"> | 394 | <style scoped lang="scss"> |
| 225 | @import "~@/styles/mixin.scss"; | 395 | @import "~@/styles/mixin.scss"; |
| 226 | @import "~@/styles/dialogBox.scss"; | 396 | @import "~@/styles/dialogBox.scss"; |
| 227 | 397 | ||
| 228 | .editForm { | 398 | .editForm { |
| 229 | /deep/.el-textarea__inner { | 399 | /deep/.el-textarea__inner { |
| 230 | border: 1px solid #224c7c !important; | 400 | border: 1px solid #224c7c !important; |
| 231 | margin: 0 0 10px 0 !important; | 401 | margin: 0 0 10px 0 !important; |
| ... | @@ -241,25 +411,25 @@ export default { | ... | @@ -241,25 +411,25 @@ export default { |
| 241 | color: #dadde3 !important; | 411 | color: #dadde3 !important; |
| 242 | background: transparent !important; | 412 | background: transparent !important; |
| 243 | } | 413 | } |
| 244 | } | 414 | } |
| 245 | 415 | ||
| 246 | /deep/.el-dialog__body { | 416 | /deep/.el-dialog__body { |
| 247 | display: flex; | 417 | display: flex; |
| 248 | flex-direction: column; | 418 | flex-direction: column; |
| 249 | } | 419 | } |
| 250 | 420 | ||
| 251 | /deep/ .el-tabs { | 421 | /deep/ .el-tabs { |
| 252 | color: #cef8ff; | 422 | color: #cef8ff; |
| 253 | } | 423 | } |
| 254 | 424 | ||
| 255 | .sjmx { | 425 | .sjmx { |
| 256 | /deep/.el-tabs__item { | 426 | /deep/.el-tabs__item { |
| 257 | height: 50px; | 427 | height: 50px; |
| 258 | padding-top: 6px; | 428 | padding-top: 6px; |
| 259 | } | 429 | } |
| 260 | } | 430 | } |
| 261 | 431 | ||
| 262 | /deep/.el-tabs__item { | 432 | /deep/.el-tabs__item { |
| 263 | color: #cef8ff !important; | 433 | color: #cef8ff !important; |
| 264 | 434 | ||
| 265 | display: flex; | 435 | display: flex; |
| ... | @@ -268,75 +438,75 @@ export default { | ... | @@ -268,75 +438,75 @@ export default { |
| 268 | background: url("~@/image/tabitem.png") no-repeat; | 438 | background: url("~@/image/tabitem.png") no-repeat; |
| 269 | background-size: 100% 100%; | 439 | background-size: 100% 100%; |
| 270 | border: none !important; | 440 | border: none !important; |
| 271 | } | 441 | } |
| 272 | 442 | ||
| 273 | .obligee-item-name { | 443 | .obligee-item-name { |
| 274 | background: #05275b; | 444 | background: #05275b; |
| 275 | color: #ffffff; | 445 | color: #ffffff; |
| 276 | background: url("~@/image/itembg.png") no-repeat; | 446 | background: url("~@/image/itembg.png") no-repeat; |
| 277 | background-size: 100% 100%; | 447 | background-size: 100% 100%; |
| 278 | } | 448 | } |
| 279 | 449 | ||
| 280 | /deep/.el-tabs__nav-scroll { | 450 | /deep/.el-tabs__nav-scroll { |
| 281 | background: none; | 451 | background: none; |
| 282 | } | 452 | } |
| 283 | 453 | ||
| 284 | /deep/.el-tabs__nav { | 454 | /deep/.el-tabs__nav { |
| 285 | display: flex; | 455 | display: flex; |
| 286 | border: none !important; | 456 | border: none !important; |
| 287 | } | 457 | } |
| 288 | 458 | ||
| 289 | /deep/.el-tabs__item.is-top { | 459 | /deep/.el-tabs__item.is-top { |
| 290 | border: 1px solid #dfe4ed; | 460 | border: 1px solid #dfe4ed; |
| 291 | border-top: 1px solid #dfe4ed; | 461 | border-top: 1px solid #dfe4ed; |
| 292 | border-bottom: 1px solid transparent; | 462 | border-bottom: 1px solid transparent; |
| 293 | } | 463 | } |
| 294 | 464 | ||
| 295 | /deep/.el-tabs__header { | 465 | /deep/.el-tabs__header { |
| 296 | border: none; | 466 | border: none; |
| 297 | margin-bottom: 0; | 467 | margin-bottom: 0; |
| 298 | } | 468 | } |
| 299 | 469 | ||
| 300 | /deep/.el-tabs__item.is-top:not(:last-child) { | 470 | /deep/.el-tabs__item.is-top:not(:last-child) { |
| 301 | margin-right: 5px; | 471 | margin-right: 5px; |
| 302 | } | 472 | } |
| 303 | 473 | ||
| 304 | /deep/.el-tabs__item.is-top { | 474 | /deep/.el-tabs__item.is-top { |
| 305 | background-color: none !important; | 475 | background-color: none !important; |
| 306 | } | 476 | } |
| 307 | 477 | ||
| 308 | /deep/.el-tabs__item.is-active { | 478 | /deep/.el-tabs__item.is-active { |
| 309 | background: url("~@/image/tabitemse.png") no-repeat; | 479 | background: url("~@/image/tabitemse.png") no-repeat; |
| 310 | background-size: 100% 100%; | 480 | background-size: 100% 100%; |
| 311 | } | 481 | } |
| 312 | 482 | ||
| 313 | .success-images { | 483 | .success-images { |
| 314 | width: 30px; | 484 | width: 30px; |
| 315 | height: 30px; | 485 | height: 30px; |
| 316 | position: relative; | 486 | position: relative; |
| 317 | top: 10px; | 487 | top: 10px; |
| 318 | right: 3px; | 488 | right: 3px; |
| 319 | } | 489 | } |
| 320 | 490 | ||
| 321 | .tab-pane-item { | 491 | .tab-pane-item { |
| 322 | line-height: 20px; | 492 | line-height: 20px; |
| 323 | color: #02d9fd; | 493 | color: #02d9fd; |
| 324 | 494 | ||
| 325 | p { | 495 | p { |
| 326 | text-align: center; | 496 | text-align: center; |
| 327 | } | 497 | } |
| 328 | } | 498 | } |
| 329 | 499 | ||
| 330 | .edit-content { | 500 | .edit-content { |
| 331 | height: 450px; | 501 | height: 450px; |
| 332 | overflow-y: auto; | 502 | overflow-y: auto; |
| 333 | overflow-x: hidden; | 503 | overflow-x: hidden; |
| 334 | padding-right: 1px; | 504 | padding-right: 1px; |
| 335 | margin-bottom: 10px; | 505 | margin-bottom: 10px; |
| 336 | border-top: none; | 506 | border-top: none; |
| 337 | } | 507 | } |
| 338 | 508 | ||
| 339 | /deep/.editDialogBox { | 509 | /deep/.editDialogBox { |
| 340 | border-radius: 8px; | 510 | border-radius: 8px; |
| 341 | overflow: hidden; | 511 | overflow: hidden; |
| 342 | min-width: 1228px; | 512 | min-width: 1228px; |
| ... | @@ -414,12 +584,12 @@ export default { | ... | @@ -414,12 +584,12 @@ export default { |
| 414 | width: 100%; | 584 | width: 100%; |
| 415 | border-bottom: 1px solid #ccc; | 585 | border-bottom: 1px solid #ccc; |
| 416 | } | 586 | } |
| 417 | } | 587 | } |
| 418 | 588 | ||
| 419 | .el-dialog__wrapper { | 589 | .el-dialog__wrapper { |
| 420 | overflow: hidden; | 590 | overflow: hidden; |
| 421 | } | 591 | } |
| 422 | /deep/.el-table { | 592 | /deep/.el-table { |
| 423 | background: none; | 593 | background: none; |
| 424 | th.el-table__cell { | 594 | th.el-table__cell { |
| 425 | background-color: #073781; | 595 | background-color: #073781; |
| ... | @@ -432,7 +602,7 @@ export default { | ... | @@ -432,7 +602,7 @@ export default { |
| 432 | color: white; | 602 | color: white; |
| 433 | } | 603 | } |
| 434 | } | 604 | } |
| 435 | } | 605 | } |
| 436 | 606 | ||
| 437 | // #08346F !important; | 607 | // #08346F !important; |
| 438 | </style> | 608 | </style> | ... | ... |
-
Please register or sign in to post a comment