permissions.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. import Store from '@/store'
  2. import Api from '@/api'
  3. // roleType:1是系统管理员,2是租户管理员,0是普通人员
  4. export default {
  5. //报告权限
  6. reportPermission(reportId, roles){
  7. // return true
  8. if(!reportId){
  9. return true
  10. }
  11. const role = Store.state.user.userinfo
  12. if(role.roleType === 1){
  13. return true
  14. }
  15. const permissions = Store.getters && Store.getters.permissions
  16. if(Object.keys(permissions).length==0){
  17. return true
  18. }
  19. const reportRole = permissions[reportId]
  20. if(!reportRole){
  21. return true
  22. }
  23. var result = false
  24. for(var item of reportRole){
  25. if(roles.includes(item)){
  26. result = true
  27. break
  28. }
  29. }
  30. return result
  31. },
  32. /**
  33. * 项目权限
  34. * @param {*} projectId 项目ID
  35. */
  36. async projectPermission(projectId){
  37. const user = Store.state.user.userinfo
  38. if(user.roleType == 1 || user.roleType == 2){
  39. return true
  40. }
  41. if(!projectId){
  42. return true
  43. }
  44. var data = {}
  45. // if(sessionStorage.getItem('projectPermission')){
  46. // data = JSON.parse(sessionStorage.getItem('projectPermission'))
  47. // }
  48. var obj = data[projectId]
  49. if(!obj){
  50. var projectIds = [projectId]
  51. await Api.getProjectPermissions(projectIds).then(response=>{
  52. if(response.code == 200){
  53. var d = response.data.data[projectId]
  54. data[projectId] = d
  55. // sessionStorage.setItem('projectPermission',JSON.stringify(data))
  56. obj = d
  57. }
  58. })
  59. }
  60. if(!obj){
  61. return 0
  62. }
  63. // 0创建人 1负责人 3被分享人 2参与人
  64. if(obj.includes('0')||obj.includes('1')||obj.includes('2')){
  65. return true
  66. }
  67. if(obj.includes('3')){
  68. return false
  69. }else{
  70. return 0
  71. }
  72. },
  73. /**
  74. * 功能权限
  75. * @param {String} str
  76. */
  77. FunPermissions(str){
  78. // return true
  79. const user = Store.state.user.userinfo
  80. if(user.roleType == 1){
  81. return true
  82. }
  83. const permissionList = Store.state.permission.permission
  84. return permissionList.includes(str)
  85. },
  86. /**
  87. * 产品权限
  88. * @param {*} id //产品id或者产品类别id
  89. * @param {*} type //类型,1是产品类别,2是产品
  90. */
  91. async producePermission(id,type){
  92. const user = Store.state.user.userinfo
  93. if(user.roleType == 1 || user.roleType == 2){
  94. return true
  95. }
  96. if(!id || !type){
  97. return false
  98. }
  99. var data = {}
  100. // if(type == 2){
  101. // var str = sessionStorage.getItem('product')
  102. // if(str){
  103. // data = JSON.parse(str)
  104. // }
  105. // }else if(type == 1){
  106. // var str = sessionStorage.getItem('productCategory')
  107. // if(str){
  108. // data = JSON.parse(str)
  109. // }
  110. // }
  111. var obj = data[id]
  112. if(!obj){
  113. var searchQuery = ''
  114. var api = ''
  115. if(type == 2){
  116. api = 'queryProduct'
  117. searchQuery = `product_id=${id}`
  118. }else if(type == 1){
  119. api = 'queryProductCategory'
  120. searchQuery = `category_id=${id}`
  121. }
  122. var params = {
  123. searchQuery:searchQuery
  124. }
  125. await Api[api](params).then(response=>{
  126. if(response.code == 200){
  127. var d = response.data.data
  128. if(d && d.length>0){
  129. data[d[0].id] = d[0]
  130. // if(type == 2){
  131. // sessionStorage.setItem('product',JSON.stringify(data))
  132. // }else if(type == 1){
  133. // sessionStorage.setItem('productCategory',JSON.stringify(data))
  134. // }
  135. obj = d[0]
  136. }
  137. }
  138. })
  139. }
  140. if(!obj){
  141. return false
  142. }
  143. if(obj.createId == user.id){
  144. return true
  145. }
  146. if(obj.adminIds && obj.adminIds.includes(user.id)){
  147. return true
  148. }
  149. return false
  150. }
  151. }