oa-api.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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 appName = (p.appName || '').trim()
  76. const initiatorName = (p.initiatorName || '').trim()
  77. const query = {
  78. page: p.page != null ? p.page : 1,
  79. pageSize: p.pageSize != null ? p.pageSize : 20
  80. }
  81. if (kind === 'cc') {
  82. query.readStatus = p.readStatus != null && p.readStatus !== '' ? p.readStatus : 'unread'
  83. }
  84. if (appName) query.appName = appName
  85. if (initiatorName) query.initiatorName = initiatorName
  86. return get(
  87. withQuery('/web/admin/oa-approval/tasks/' + encodeURIComponent(kind), query),
  88. authHeader()
  89. )
  90. }
  91. export function fetchOaPendingTaskCount() {
  92. return get('/web/admin/oa-approval/tasks/pending/count', authHeader())
  93. }
  94. export function fetchOaCcUnreadCount() {
  95. return get('/web/admin/oa-approval/tasks/cc/unread-count', authHeader())
  96. }
  97. export function fetchMarkOaCcTaskRead(taskId) {
  98. return post(
  99. '/web/admin/oa-approval/tasks/' + encodeURIComponent(taskId) + '/read',
  100. {},
  101. authHeader()
  102. )
  103. }
  104. export function fetchBatchMarkOaCcTasksRead(ids) {
  105. return post(
  106. '/web/admin/oa-approval/tasks/cc/read-batch',
  107. { ids: ids || [] },
  108. authHeader()
  109. )
  110. }