permissions.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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,roles){
  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. if(roles){
  76. if(typeof roles == 'string'){
  77. roles = [roles]
  78. }
  79. return roles.some(element1 =>
  80. obj.includes(element1)
  81. );
  82. }
  83. // 0创建人 1负责人 3被分享人 2参与人
  84. if(obj.includes('0')||obj.includes('1')||obj.includes('2')){
  85. return true
  86. }
  87. if(obj.includes('3')){
  88. return false
  89. }else{
  90. return 0
  91. }
  92. },
  93. /**
  94. * 功能权限
  95. * @param {String} str
  96. */
  97. FunPermissions(str){
  98. // return true
  99. const user = Store.state.user.userinfo
  100. if(user.roleType == 1){
  101. return true
  102. }
  103. const permissionList = Store.state.permission.permission
  104. return permissionList.includes(str)
  105. },
  106. /**
  107. * 产品权限
  108. * @param {*} id //产品id或者产品类别id
  109. * @param {*} type //类型,1是产品类别,2是产品
  110. */
  111. async producePermission(id,type){
  112. const user = Store.state.user.userinfo
  113. if(user.roleType = 1 || user.roleType == 2){
  114. return true
  115. }
  116. if(!id || !type){
  117. return false
  118. }
  119. var data = {}
  120. // if(type == 2){
  121. // var str = sessionStorage.getItem('product')
  122. // if(str){
  123. // data = JSON.parse(str)
  124. // }
  125. // }else if(type == 1){
  126. // var str = sessionStorage.getItem('productCategory')
  127. // if(str){
  128. // data = JSON.parse(str)
  129. // }
  130. // }
  131. var obj = data[id]
  132. if(!obj){
  133. var searchQuery = ''
  134. var api = ''
  135. if(type == 2){
  136. api = 'queryProduct'
  137. searchQuery = `product_id=${id}`
  138. }else if(type == 1){
  139. api = 'queryProductCategory'
  140. searchQuery = `category_id=${id}`
  141. }
  142. var params = {
  143. searchQuery:searchQuery
  144. }
  145. await Api[api](params).then(response=>{
  146. if(response.code == 200){
  147. var d = response.data.data
  148. if(d && d.length>0){
  149. data[d[0].id] = d[0]
  150. // if(type == 2){
  151. // sessionStorage.setItem('product',JSON.stringify(data))
  152. // }else if(type == 1){
  153. // sessionStorage.setItem('productCategory',JSON.stringify(data))
  154. // }
  155. obj = d[0]
  156. }
  157. }
  158. })
  159. }
  160. if(!obj){
  161. return false
  162. }
  163. if(obj.createId == user.id){
  164. return true
  165. }
  166. if(obj.adminIds && obj.adminIds.includes(user.id)){
  167. return true
  168. }
  169. return false
  170. }
  171. }