auth.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. import store from '@/store'
  2. import {getUserData} from '@/utils/auth'
  3. /* 角色*/
  4. /*
  5. 创始人 creator
  6. 主管理员 masterAdministrator
  7. 子管理员 childAdministrator
  8. 部门管理员 deptManager
  9. 员工 employee
  10. */
  11. // 权限
  12. /*
  13. 1 绩效考核
  14. 2 OKR
  15. 3 管理范围 全公司
  16. 4 管理范围 所在部门以及下级部门
  17. 5 管理范围 特定部门
  18. 6 考核管理 可见考核结果
  19. 7 考核管理 发起考核
  20. 8 考核管理 开始评分
  21. 9 考核管理 调整结果
  22. 10 考核管理 调整等级
  23. 11 考核管理 导出报表
  24. 12 指标库管理
  25. 13 指定考评模板管理
  26. 14 全部考评模板管理
  27. 15 基础设置
  28. 16 绩效报表
  29. */
  30. // 获取当前登录者在绩效系统中的身份
  31. export function getRole(type) {
  32. /* type为判断哪些角色*/
  33. var role = window.plus ? JSON.parse(plus.storage.getItem('role')) : JSON.parse(localStorage.getItem('role'))
  34. let is = false;
  35. switch (type) {
  36. case 1: // 判断是否是主子管理员
  37. if (role == 'masterAdministrator' || role == 'childAdministrator') {
  38. is = true
  39. }
  40. break
  41. case 2: // 判断是否是部门管理员
  42. if (role == 'deptManager') {
  43. is = true
  44. }
  45. break
  46. case 3: // 判断是否是员工
  47. if (role == 'employee') {
  48. is = true
  49. }
  50. break
  51. case 4: // 判断是否是创始人
  52. if (role == 'creator') {
  53. is = true
  54. }
  55. break
  56. }
  57. return is
  58. }
  59. // 判断当前登录者是否有某项权限
  60. export function getPermis(type) {
  61. /* type为传入的权限id*/
  62. let jurisdictions = getUserData().per_permission.permission.map((item) => {
  63. return item.id
  64. })
  65. return jurisdictions.indexOf(type) >= 0
  66. }
  67. // 判断是否具有权限
  68. export function isAuthoritys_jx(id, arr) { // 判断是否为某项权限:id为权限ID,arr为数据源
  69. var jurisdictions
  70. if (arr) {
  71. jurisdictions = arr.map((item) => {
  72. return item.id
  73. })
  74. } else { // 当没有指定数据源,代表判断当前登录者,如果登陆者是创始人,直接返回真
  75. jurisdictions = getUserData().per_permission.permission.map((item) => {
  76. return item.id
  77. })
  78. }
  79. if (typeof(id) === 'number') { // 单个权限
  80. return jurisdictions.indexOf(id) >= 0
  81. } else { // 多个权限一起判断,如果有一个真就返回真
  82. const is = jurisdictions.some(item => {
  83. if (id.indexOf(item) >= 0) {
  84. return true
  85. }
  86. })
  87. return is
  88. }
  89. }
  90. // 自动积分相关
  91. export function returnStr3(item, index, arr = [], expression) { //列举 百分比
  92. let str = '';
  93. let point = returnPoint(item.point); //得分
  94. let Lieh = expression.compare == 1 ? '【结果值】' : expression.compare == 2 ? '【结果值/目标值】' : '【结果值-目标值】'
  95. let jiajian = item.selectVal == 1 ? '加' : '扣';
  96. // 公式开始
  97. if (index == 0) {
  98. str = `${Lieh}比【目标值】每增加${item.plusNum}时,【得分=${point}】${jiajian}${item.numVal},最多${jiajian}${item.maxNum}<br/>`
  99. return str
  100. }
  101. if (index == 1) { //公式中间
  102. str = `${Lieh}比【目标值】每减少${item.plusNum}时,【得分=${point}】${jiajian}${item.numVal},最多${jiajian}${item.maxNum}<br/>`
  103. return str
  104. }
  105. //公式结束
  106. if (index == 2) {
  107. str = `${Lieh}${item.selectVal=='1'?'>':'<'}${item.plusNum},得分=0<br/>`
  108. return str
  109. }
  110. };
  111. export function returnStr2(item, index, arr = [], expression) { //列举 公式
  112. let str = '';
  113. let point = returnPoint(item.point); //得分
  114. let Lieh = expression.compare == 1 ? '【结果值】' : expression.compare == 2 ? '【结果值/目标值】' : '【结果值-目标值】'
  115. let val = expression.reference == '1' ? item.selectRefer : '【' + item.referStr + '】'
  116. // 公式开始
  117. if (index == 0) {
  118. str = `${Lieh}==${val},得分=${point}<br/>`
  119. return str
  120. }
  121. //公式结束
  122. if (index == arr.length - 1) {
  123. str = `否在,得分=${point}<br/>`
  124. return str
  125. }
  126. if (index != 0 && index != arr.length - 1) { //公式中间
  127. str = `${Lieh}==${val},得分=${point}<br/>`
  128. return str
  129. }
  130. };
  131. export function returnStr(item, index, arr = [], expression) { //连续区间 公式
  132. let str = '';
  133. let point = returnPoint(item.point); //得分
  134. let Lieh = expression.compare == 1 ? '【结果值】' : expression.compare == 2 ? '【结果值/目标值】' : '【结果值-目标值】'
  135. let val = expression.reference == '1' ? item.selectRefer : '【' + item.referStr + '】'
  136. let slectSymbol = item.slectSymbol == '>' ? '>=' : item.slectSymbol == '≥' ? '>' : '='
  137. // 公式开始
  138. if (index == 0) {
  139. str = `${Lieh}${slectSymbol}${val},得分=${point}<br/>`
  140. return str
  141. }
  142. //公式结束
  143. if (index == arr.length - 1) {
  144. str = `${item.refer}${item.symbol}${Lieh},得分=${point}<br/>`
  145. return str
  146. }
  147. if (index != 0 && index != arr.length - 1) {
  148. let upItemVal = expression.reference == '1' ? arr[index - 1].selectRefer : '#' + arr[index - 1].referStr +
  149. '#'; //上一个数据
  150. //公式中间
  151. let symbol = item.symbol == '≥' ? '>=' : item.symbol
  152. if (item.slectSymbol == '=') {
  153. str = `${Lieh}==${val},得分=${point}<br/>`
  154. } else {
  155. str = `${upItemVal}${symbol}${Lieh}${slectSymbol}${val},得分=${point}<br/>`
  156. }
  157. return str
  158. }
  159. };
  160. export function returnPoint(point) {
  161. let str = '';
  162. if (!point) {
  163. return str
  164. }
  165. point.forEach(e => {
  166. str += e
  167. })
  168. return str
  169. };
  170. export function getExpressionStr(arr) {
  171. let expressionStr = '';
  172. if (arr.logic_type == 1) {
  173. let logic_section = JSON.parse(JSON.stringify(arr.logic_section))
  174. logic_section.forEach((item, index) => {
  175. expressionStr += returnStr(item, index, logic_section, arr)
  176. })
  177. }
  178. if (arr.logic_type == 2) {
  179. let logic_enum = JSON.parse(JSON.stringify(arr.logic_enum))
  180. logic_enum.forEach((item, index) => {
  181. expressionStr += returnStr2(item, index, logic_enum, arr)
  182. })
  183. }
  184. if (arr.logic_type == 3) {
  185. let logic_percent = JSON.parse(JSON.stringify(arr.logic_percent))
  186. logic_percent.forEach((item, index) => {
  187. expressionStr += returnStr3(item, index, logic_percent, arr)
  188. })
  189. }
  190. if (arr.logic_type == 4) {
  191. let logic_eq = JSON.parse(JSON.stringify(arr.logic_eq))
  192. expressionStr = `得分=${returnPoint(logic_eq)}`;
  193. }
  194. return expressionStr
  195. };