base.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. import store from '@/store'
  2. import {
  3. MessageBox,
  4. Message
  5. } from 'element-ui'
  6. import {
  7. Access,
  8. State
  9. } from '@/constant'
  10. import request from '@/utils/request'
  11. import {
  12. showLoading,
  13. closeLoading
  14. } from '@/utils/pop'
  15. export function addTenant (data) {
  16. if (data.tenant && store.getters.isSuperAdmin) {
  17. return data
  18. }
  19. data.tenant = store.getters.tenant
  20. return data
  21. }
  22. const Status = {
  23. [State.READY]: [0],
  24. [State.SUBMITTED]: [1],
  25. [State.RESOLVED]: [2],
  26. [State.REJECTED]: [3, 4, 5],
  27. [State.REVIEW]: [1],
  28. [State.AVAILABLE]: [0, 1, 2],
  29. [State.EDITABLE]: [0, 1, 3, 4, 5]
  30. }
  31. export function addStatusScope ({ status, ...data }) {
  32. switch (status) {
  33. case State.RESOLVED:
  34. data.tenant = store.getters.tenant
  35. break
  36. case State.REVIEW:
  37. if (store.getters.isGroupAdmin) {
  38. if (store.getters.isTopGroupAdmin) {
  39. data.tenant = store.getters.tenant
  40. } else {
  41. data.org = store.getters.org
  42. }
  43. }
  44. break
  45. case State.AVAILABLE:
  46. data.tenant = store.getters.tenant
  47. data.user = store.getters.userId
  48. break
  49. default:
  50. data.user = store.getters.userId
  51. break
  52. }
  53. data.statusList = Status[status]
  54. return data
  55. }
  56. export function addScope (data) {
  57. if (store.getters.isGroupAdmin) {
  58. if (store.getters.isTopGroupAdmin) {
  59. data.tenant = store.getters.tenant
  60. } else {
  61. data.org = store.getters.org
  62. }
  63. } else {
  64. data.user = store.getters.userId
  65. }
  66. return data
  67. }
  68. export function addOrg (data) {
  69. data.tenant = store.getters.tenant
  70. data.org = store.getters.org
  71. return data
  72. }
  73. export function addUser (data) {
  74. data.user = store.getters.userId
  75. return data
  76. }
  77. export function canDel ({ status, org, createBy }) {
  78. if (store.getters.isSuperAdmin) {
  79. return true
  80. }
  81. if (status === State.SUBMITTED) {
  82. return false
  83. }
  84. if (store.getters.isGroupAdmin) {
  85. if (store.getters.isTopGroupAdmin) {
  86. return true
  87. }
  88. return new RegExp(`^${store.getters.org}`).test(org)
  89. }
  90. if (store.getters.accesses.has(Access.MANAGE_CALENDAR)) {
  91. return createBy === store.getters.userId
  92. }
  93. return false
  94. }
  95. export function send (config, service = request) {
  96. const loading = showLoading()
  97. return service(config).finally(() => {
  98. closeLoading(loading)
  99. })
  100. }
  101. export function messageSend (config, message, service = request) {
  102. return (config.onUploadProgress ? service(config) : send(config, service)).then(data => {
  103. message && Message({
  104. type: 'success',
  105. message: `${message}成功`
  106. })
  107. return data
  108. })
  109. }
  110. export function confirm (message) {
  111. return MessageBox.confirm(message, { type: 'warning' })
  112. }
  113. export function confirmAndSend (type, tip, config, service = request) {
  114. return confirm(
  115. tip ? `${type} ${tip} ?` : `确定${type}?`
  116. ).then(() => messageSend(config, type, service))
  117. }
  118. export function add (config, service = request) {
  119. return messageSend(config, '新增', service)
  120. }
  121. export function update (config, message, service = request) {
  122. return messageSend(config, message || '更新', service)
  123. }
  124. export function submit (config, tip, service = request) {
  125. return confirmAndSend('提交', tip, config, service)
  126. }
  127. export function del (config, tip, service = request) {
  128. return confirmAndSend('删除', tip, config, service)
  129. }
  130. export function resolve (config, tip, service = request) {
  131. return confirmAndSend('通过', tip, config, service)
  132. }
  133. export function reject (config, tip, service = request) {
  134. return confirmAndSend('驳回', tip, config, service)
  135. }