base.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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. export function addStatusScope (data) {
  23. switch (data.status) {
  24. case State.RESOLVED:
  25. data.tenant = store.getters.tenant
  26. break
  27. case State.REVIEW:
  28. data.status = State.SUBMITTED
  29. if (store.getters.isGroupAdmin) {
  30. if (store.getters.isTopGroupAdmin) {
  31. data.tenant = store.getters.tenant
  32. } else {
  33. data.org = store.getters.org
  34. }
  35. }
  36. break
  37. default:
  38. data.user = store.getters.userId
  39. break
  40. }
  41. return data
  42. }
  43. export function addScope (data) {
  44. if (store.getters.isGroupAdmin) {
  45. if (store.getters.isTopGroupAdmin) {
  46. data.tenant = store.getters.tenant
  47. } else {
  48. data.org = store.getters.org
  49. }
  50. } else {
  51. data.user = store.getters.userId
  52. }
  53. return data
  54. }
  55. export function addOrg (data) {
  56. data.tenant = store.getters.tenant
  57. data.org = store.getters.org
  58. return data
  59. }
  60. export function addUser (data) {
  61. data.user = store.getters.userId
  62. return data
  63. }
  64. export function canDel ({ createBy, org }) {
  65. if (store.getters.isSuperAdmin) {
  66. return true
  67. }
  68. if (store.getters.isGroupAdmin) {
  69. if (store.getters.isTopGroupAdmin) {
  70. return true
  71. }
  72. return new RegExp(`^${store.getters.org}`).test(org)
  73. }
  74. if (store.getters.accesses.has(Access.MANAGE_CALENDAR)) {
  75. return createBy === store.getters.userId
  76. }
  77. return false
  78. }
  79. export function send (config, service = request) {
  80. const loading = showLoading()
  81. return service(config).finally(() => {
  82. closeLoading(loading)
  83. })
  84. }
  85. export function messageSend (config, message, service = request) {
  86. return (config.onUploadProgress ? service(config) : send(config, service)).then(data => {
  87. message && Message({
  88. type: 'success',
  89. message: `${message}成功`
  90. })
  91. return data
  92. })
  93. }
  94. export function confirm (message) {
  95. return MessageBox.confirm(message, { type: 'warning' })
  96. }
  97. export function confirmAndSend (type, tip, config, service = request) {
  98. return confirm(
  99. tip ? `${type} ${tip} ?` : `确定${type}?`
  100. ).then(() => messageSend(config, type, service))
  101. }
  102. export function add (config, service = request) {
  103. return messageSend(config, '新增', service)
  104. }
  105. export function update (config, message, service = request) {
  106. return messageSend(config, message || '更新', service)
  107. }
  108. export function submit (config, tip, service = request) {
  109. return confirmAndSend('提交', tip, config, service)
  110. }
  111. export function del (config, tip, service = request) {
  112. return confirmAndSend('删除', tip, config, service)
  113. }
  114. export function resolve (config, tip, service = request) {
  115. return confirmAndSend('通过', tip, config, service)
  116. }
  117. export function reject (config, tip, service = request) {
  118. return confirmAndSend('驳回', tip, config, service)
  119. }