oa-api.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. import { get, post, request } from './request.js'
  2. import { getToken } from './auth.js'
  3. function authHeader() {
  4. const token = getToken()
  5. return token ? { Authorization: 'Bearer ' + token } : {}
  6. }
  7. /** 小程序侧无 URLSearchParams 时用手写 query */
  8. function buildQuery(params) {
  9. const parts = []
  10. Object.keys(params || {}).forEach((k) => {
  11. const v = params[k]
  12. if (v == null || v === '') return
  13. parts.push(encodeURIComponent(k) + '=' + encodeURIComponent(String(v)))
  14. })
  15. return parts.join('&')
  16. }
  17. function withQuery(path, params) {
  18. const qs = buildQuery(params)
  19. return qs ? path + '?' + qs : path
  20. }
  21. export function fetchOaGroupList() {
  22. return get('/web/admin/oa-approval/groups', authHeader())
  23. }
  24. export function fetchOaTemplates() {
  25. return get('/web/admin/oa-approval/templates', authHeader())
  26. }
  27. export function fetchOaTemplateDetail(appId) {
  28. return get(
  29. '/web/admin/oa-approval/templates/' + encodeURIComponent(appId),
  30. authHeader()
  31. )
  32. }
  33. // —— drafts ——
  34. export function fetchOaInstanceDraftList(params) {
  35. const p = params || {}
  36. return get(
  37. withQuery('/web/admin/oa-approval/drafts', {
  38. keyword: p.keyword,
  39. groupId: p.groupId,
  40. updateTimeFrom: p.updateTimeFrom,
  41. updateTimeTo: p.updateTimeTo,
  42. page: p.page != null ? p.page : 1,
  43. pageSize: p.pageSize != null ? p.pageSize : 20
  44. }),
  45. authHeader()
  46. )
  47. }
  48. export function fetchOaInstanceDraftCount() {
  49. return get('/web/admin/oa-approval/drafts/count', authHeader())
  50. }
  51. export function fetchDeleteOaInstanceDraft(id) {
  52. return request({
  53. url: '/web/admin/oa-approval/drafts/' + encodeURIComponent(id),
  54. method: 'DELETE',
  55. header: authHeader()
  56. })
  57. }
  58. export function fetchBatchDeleteOaInstanceDrafts(ids) {
  59. return post(
  60. '/web/admin/oa-approval/drafts/batch-delete',
  61. { ids: ids || [] },
  62. authHeader()
  63. )
  64. }
  65. export function fetchSubmitOaInstanceDraft(id, data) {
  66. return post(
  67. '/web/admin/oa-approval/drafts/' + encodeURIComponent(id) + '/submit',
  68. data || {},
  69. authHeader()
  70. )
  71. }
  72. // —— tasks ——
  73. export function fetchOaTasks(kind, params) {
  74. const p = params || {}
  75. const keyword = (p.keyword || '').trim()
  76. const appName = (p.appName || '').trim()
  77. const initiatorName = (p.initiatorName || '').trim()
  78. const query = {
  79. page: p.page != null ? p.page : 1,
  80. pageSize: p.pageSize != null ? p.pageSize : 20
  81. }
  82. if (kind === 'cc') {
  83. query.readStatus = p.readStatus != null && p.readStatus !== '' ? p.readStatus : 'unread'
  84. }
  85. if (keyword) query.keyword = keyword
  86. if (appName) query.appName = appName
  87. if (initiatorName) query.initiatorName = initiatorName
  88. return get(
  89. withQuery('/web/admin/oa-approval/tasks/' + encodeURIComponent(kind), query),
  90. authHeader()
  91. )
  92. }
  93. export function fetchOaPendingTaskCount() {
  94. return get('/web/admin/oa-approval/tasks/pending/count', authHeader())
  95. }
  96. export function fetchOaCcUnreadCount() {
  97. return get('/web/admin/oa-approval/tasks/cc/unread-count', authHeader())
  98. }
  99. export function fetchMarkOaCcTaskRead(taskId) {
  100. return post(
  101. '/web/admin/oa-approval/tasks/' + encodeURIComponent(taskId) + '/read',
  102. {},
  103. authHeader()
  104. )
  105. }
  106. export function fetchBatchMarkOaCcTasksRead(ids) {
  107. return post(
  108. '/web/admin/oa-approval/tasks/cc/read-batch',
  109. { ids: ids || [] },
  110. authHeader()
  111. )
  112. }
  113. export function fetchApproveOaTask(taskId, comment) {
  114. return post(
  115. '/web/admin/oa-approval/tasks/' + encodeURIComponent(taskId) + '/approve',
  116. { comment: comment || undefined },
  117. authHeader()
  118. )
  119. }
  120. export function fetchReturnOaTask(taskId, comment) {
  121. return post(
  122. '/web/admin/oa-approval/tasks/' + encodeURIComponent(taskId) + '/return',
  123. { comment: comment || undefined },
  124. authHeader()
  125. )
  126. }