permissions.js 4.1 KB

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