@nocobase/app-plugin-office-flows-example 0.0.0-stage → 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/README.md +55 -2
  3. package/dist/client/components/flow-ui.d.ts +111 -0
  4. package/dist/client/components/flow-ui.d.ts.map +1 -0
  5. package/dist/client/components/flow-ui.js +175 -0
  6. package/dist/client/components/flow-ui.js.map +1 -0
  7. package/dist/client/components/page-container.d.ts +4 -0
  8. package/dist/client/components/page-container.d.ts.map +1 -0
  9. package/dist/client/components/page-container.js +6 -0
  10. package/dist/client/components/page-container.js.map +1 -0
  11. package/dist/client/components/page-header.d.ts +8 -0
  12. package/dist/client/components/page-header.d.ts.map +1 -0
  13. package/dist/client/components/page-header.js +5 -0
  14. package/dist/client/components/page-header.js.map +1 -0
  15. package/dist/client/components/ui/badge.d.ts +7 -0
  16. package/dist/client/components/ui/badge.d.ts.map +1 -0
  17. package/dist/client/components/ui/badge.js +19 -0
  18. package/dist/client/components/ui/badge.js.map +1 -0
  19. package/dist/client/components/ui/button.d.ts +8 -0
  20. package/dist/client/components/ui/button.d.ts.map +1 -0
  21. package/dist/client/components/ui/button.js +25 -0
  22. package/dist/client/components/ui/button.js.map +1 -0
  23. package/dist/client/components/ui/card.d.ts +11 -0
  24. package/dist/client/components/ui/card.d.ts.map +1 -0
  25. package/dist/client/components/ui/card.js +19 -0
  26. package/dist/client/components/ui/card.js.map +1 -0
  27. package/dist/client/components/ui/input.d.ts +4 -0
  28. package/dist/client/components/ui/input.d.ts.map +1 -0
  29. package/dist/client/components/ui/input.js +8 -0
  30. package/dist/client/components/ui/input.js.map +1 -0
  31. package/dist/client/components/ui/select.d.ts +16 -0
  32. package/dist/client/components/ui/select.d.ts.map +1 -0
  33. package/dist/client/components/ui/select.js +36 -0
  34. package/dist/client/components/ui/select.js.map +1 -0
  35. package/dist/client/index.d.ts +2 -0
  36. package/dist/client/index.d.ts.map +1 -0
  37. package/dist/client/index.js +4 -0
  38. package/dist/client/index.js.map +1 -0
  39. package/dist/client/lib/api.d.ts +93 -0
  40. package/dist/client/lib/api.d.ts.map +1 -0
  41. package/dist/client/lib/api.js +67 -0
  42. package/dist/client/lib/api.js.map +1 -0
  43. package/dist/client/lib/format.d.ts +4 -0
  44. package/dist/client/lib/format.d.ts.map +1 -0
  45. package/dist/client/lib/format.js +8 -0
  46. package/dist/client/lib/format.js.map +1 -0
  47. package/dist/client/lib/labels.d.ts +5 -0
  48. package/dist/client/lib/labels.d.ts.map +1 -0
  49. package/dist/client/lib/labels.js +38 -0
  50. package/dist/client/lib/labels.js.map +1 -0
  51. package/dist/client/lib/use-loader.d.ts +10 -0
  52. package/dist/client/lib/use-loader.d.ts.map +1 -0
  53. package/dist/client/lib/use-loader.js +43 -0
  54. package/dist/client/lib/use-loader.js.map +1 -0
  55. package/dist/client/lib/utils.d.ts +2 -0
  56. package/dist/client/lib/utils.d.ts.map +1 -0
  57. package/dist/client/lib/utils.js +2 -0
  58. package/dist/client/lib/utils.js.map +1 -0
  59. package/dist/client/locales/en-US.d.ts +99 -0
  60. package/dist/client/locales/en-US.d.ts.map +1 -0
  61. package/dist/client/locales/en-US.js +92 -0
  62. package/dist/client/locales/en-US.js.map +1 -0
  63. package/dist/client/locales/index.d.ts +4 -0
  64. package/dist/client/locales/index.d.ts.map +1 -0
  65. package/dist/client/locales/index.js +7 -0
  66. package/dist/client/locales/index.js.map +1 -0
  67. package/dist/client/locales/zh-CN.d.ts +4 -0
  68. package/dist/client/locales/zh-CN.d.ts.map +1 -0
  69. package/dist/client/locales/zh-CN.js +92 -0
  70. package/dist/client/locales/zh-CN.js.map +1 -0
  71. package/dist/client/pages/configuration.d.ts +4 -0
  72. package/dist/client/pages/configuration.d.ts.map +1 -0
  73. package/dist/client/pages/configuration.js +34 -0
  74. package/dist/client/pages/configuration.js.map +1 -0
  75. package/dist/client/pages/data-requests.d.ts +3 -0
  76. package/dist/client/pages/data-requests.d.ts.map +1 -0
  77. package/dist/client/pages/data-requests.js +216 -0
  78. package/dist/client/pages/data-requests.js.map +1 -0
  79. package/dist/client/pages/incoming.d.ts +3 -0
  80. package/dist/client/pages/incoming.d.ts.map +1 -0
  81. package/dist/client/pages/incoming.js +128 -0
  82. package/dist/client/pages/incoming.js.map +1 -0
  83. package/dist/client/pages/tasks.d.ts +3 -0
  84. package/dist/client/pages/tasks.d.ts.map +1 -0
  85. package/dist/client/pages/tasks.js +116 -0
  86. package/dist/client/pages/tasks.js.map +1 -0
  87. package/dist/client/plugin.d.ts +4 -0
  88. package/dist/client/plugin.d.ts.map +1 -0
  89. package/dist/client/plugin.js +10 -0
  90. package/dist/client/plugin.js.map +1 -0
  91. package/dist/client/routes.d.ts +4 -0
  92. package/dist/client/routes.d.ts.map +1 -0
  93. package/dist/client/routes.js +51 -0
  94. package/dist/client/routes.js.map +1 -0
  95. package/dist/database/migrations/.manifest.json +9 -0
  96. package/dist/database/migrations/202610010001_office_flows_example_create_collections.d.ts +4 -0
  97. package/dist/database/migrations/202610010001_office_flows_example_create_collections.d.ts.map +1 -0
  98. package/dist/database/migrations/202610010001_office_flows_example_create_collections.js +280 -0
  99. package/dist/database/migrations/202610010001_office_flows_example_create_collections.js.map +1 -0
  100. package/dist/database/seeds/.manifest.json +9 -0
  101. package/dist/database/seeds/202610010002_office_flows_example_seed_configuration.d.ts +10 -0
  102. package/dist/database/seeds/202610010002_office_flows_example_seed_configuration.d.ts.map +1 -0
  103. package/dist/database/seeds/202610010002_office_flows_example_seed_configuration.js +104 -0
  104. package/dist/database/seeds/202610010002_office_flows_example_seed_configuration.js.map +1 -0
  105. package/dist/server/calendar.d.ts +35 -0
  106. package/dist/server/calendar.d.ts.map +1 -0
  107. package/dist/server/calendar.js +103 -0
  108. package/dist/server/calendar.js.map +1 -0
  109. package/dist/server/index.d.ts +2 -0
  110. package/dist/server/index.d.ts.map +1 -0
  111. package/dist/server/index.js +2 -0
  112. package/dist/server/index.js.map +1 -0
  113. package/dist/server/lifecycles/data-request.d.ts +36 -0
  114. package/dist/server/lifecycles/data-request.d.ts.map +1 -0
  115. package/dist/server/lifecycles/data-request.js +182 -0
  116. package/dist/server/lifecycles/data-request.js.map +1 -0
  117. package/dist/server/lifecycles/extraction.d.ts +21 -0
  118. package/dist/server/lifecycles/extraction.d.ts.map +1 -0
  119. package/dist/server/lifecycles/extraction.js +60 -0
  120. package/dist/server/lifecycles/extraction.js.map +1 -0
  121. package/dist/server/lifecycles/incoming.d.ts +27 -0
  122. package/dist/server/lifecycles/incoming.d.ts.map +1 -0
  123. package/dist/server/lifecycles/incoming.js +177 -0
  124. package/dist/server/lifecycles/incoming.js.map +1 -0
  125. package/dist/server/lifecycles/index.d.ts +8 -0
  126. package/dist/server/lifecycles/index.d.ts.map +1 -0
  127. package/dist/server/lifecycles/index.js +20 -0
  128. package/dist/server/lifecycles/index.js.map +1 -0
  129. package/dist/server/lifecycles/tasks.d.ts +63 -0
  130. package/dist/server/lifecycles/tasks.d.ts.map +1 -0
  131. package/dist/server/lifecycles/tasks.js +259 -0
  132. package/dist/server/lifecycles/tasks.js.map +1 -0
  133. package/dist/server/plugin.d.ts +4 -0
  134. package/dist/server/plugin.d.ts.map +1 -0
  135. package/dist/server/plugin.js +16 -0
  136. package/dist/server/plugin.js.map +1 -0
  137. package/dist/server/providers/index.d.ts +4 -0
  138. package/dist/server/providers/index.d.ts.map +1 -0
  139. package/dist/server/providers/index.js +6 -0
  140. package/dist/server/providers/index.js.map +1 -0
  141. package/dist/server/providers/office-flows.d.ts +23 -0
  142. package/dist/server/providers/office-flows.d.ts.map +1 -0
  143. package/dist/server/providers/office-flows.js +90 -0
  144. package/dist/server/providers/office-flows.js.map +1 -0
  145. package/dist/server/routes/index.d.ts +8 -0
  146. package/dist/server/routes/index.d.ts.map +1 -0
  147. package/dist/server/routes/index.js +553 -0
  148. package/dist/server/routes/index.js.map +1 -0
  149. package/dist/server/routes/schemas.d.ts +157 -0
  150. package/dist/server/routes/schemas.d.ts.map +1 -0
  151. package/dist/server/routes/schemas.js +188 -0
  152. package/dist/server/routes/schemas.js.map +1 -0
  153. package/dist/server/scope.d.ts +23 -0
  154. package/dist/server/scope.d.ts.map +1 -0
  155. package/dist/server/scope.js +23 -0
  156. package/dist/server/scope.js.map +1 -0
  157. package/dist/server/services/office-flows.d.ts +151 -0
  158. package/dist/server/services/office-flows.d.ts.map +1 -0
  159. package/dist/server/services/office-flows.js +603 -0
  160. package/dist/server/services/office-flows.js.map +1 -0
  161. package/dist/server/services/store.d.ts +119 -0
  162. package/dist/server/services/store.d.ts.map +1 -0
  163. package/dist/server/services/store.js +389 -0
  164. package/dist/server/services/store.js.map +1 -0
  165. package/dist/server/tokens.d.ts +4 -0
  166. package/dist/server/tokens.d.ts.map +1 -0
  167. package/dist/server/tokens.js +3 -0
  168. package/dist/server/tokens.js.map +1 -0
  169. package/dist/shared/data-request.d.ts +73 -0
  170. package/dist/shared/data-request.d.ts.map +1 -0
  171. package/dist/shared/data-request.js +182 -0
  172. package/dist/shared/data-request.js.map +1 -0
  173. package/dist/shared/fields.d.ts +12 -0
  174. package/dist/shared/fields.d.ts.map +1 -0
  175. package/dist/shared/fields.js +48 -0
  176. package/dist/shared/fields.js.map +1 -0
  177. package/dist/shared/people.d.ts +29 -0
  178. package/dist/shared/people.d.ts.map +1 -0
  179. package/dist/shared/people.js +54 -0
  180. package/dist/shared/people.js.map +1 -0
  181. package/dist/shared/routes.d.ts +7 -0
  182. package/dist/shared/routes.d.ts.map +1 -0
  183. package/dist/shared/routes.js +7 -0
  184. package/dist/shared/routes.js.map +1 -0
  185. package/dist/shared/text.d.ts +3 -0
  186. package/dist/shared/text.d.ts.map +1 -0
  187. package/dist/shared/text.js +9 -0
  188. package/dist/shared/text.js.map +1 -0
  189. package/package.json +72 -3
@@ -0,0 +1,216 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { useApiClient } from '@nocobase/app-client';
4
+ import { useTranslation } from '@nocobase/i18n/client';
5
+ import { consumerOptions, emptyDataRequest, FREQUENCIES, SCOPES, validateDataRequest, visibility, VOLUMES, WEEKDAYS, } from '../../shared/data-request.js';
6
+ import { pickEditable, EXTRACTION_FIELDS } from '../../shared/fields.js';
7
+ import { DATA_REQUEST_ROLES, personName } from '../../shared/people.js';
8
+ import { Actions, Choice, Field, FilesField, History, MultiChoice, PersonaSelect, ReadField, RecordList, Section, StateBar, TextArea, } from '../components/flow-ui.js';
9
+ import { NAMESPACE, names } from '../lib/format.js';
10
+ import { PageContainer } from '../components/page-container.js';
11
+ import { PageHeader } from '../components/page-header.js';
12
+ import { Badge } from '../components/ui/badge.js';
13
+ import { Button } from '../components/ui/button.js';
14
+ import { Input } from '../components/ui/input.js';
15
+ import { api, errorMessage, list, } from '../lib/api.js';
16
+ import { stateLabel } from '../lib/labels.js';
17
+ import { useLoader } from '../lib/use-loader.js';
18
+ import { text } from '../../shared/text.js';
19
+ const YES_NO = [
20
+ { value: true, label: '是' },
21
+ { value: false, label: '否' },
22
+ ];
23
+ function label(options, value) {
24
+ return options.find((item) => item.value === value)?.label ?? '—';
25
+ }
26
+ /** The applicant's form; hidden questions appear as the choices ask for them. */
27
+ function RequestEditor({ form, onChange, errors, }) {
28
+ const shown = visibility(form);
29
+ const set = (key, value) => onChange({ ...form, [key]: value });
30
+ const number = (value) => value === '' ? null : Number(value);
31
+ return (_jsxs("div", { className: 'grid gap-4 sm:grid-cols-2', children: [_jsx(Field, { label: '\u4E3B\u9898', required: true, error: errors.subject, wide: true, children: _jsx(Input, { value: form.subject, onChange: (event) => set('subject', event.target.value) }) }), _jsx(Field, { label: '\u539F\u56E0', required: true, error: errors.reason, wide: true, children: _jsx(TextArea, { label: '\u539F\u56E0', value: form.reason, onChange: (value) => set('reason', value) }) }), _jsx(Field, { label: '\u9884\u4F30\u6570\u636E\u91CF\uFF08\u8BB0\u5F55\u6761\u6570\uFF09', required: true, error: errors.volume, wide: true, children: _jsx(Choice, { options: VOLUMES.map((value) => ({ value, label: value })), value: form.volume, onChange: (value) => set('volume', value) }) }), _jsx(Field, { label: '\u6570\u636E\u4F7F\u7528\u9891\u6B21', required: true, error: errors.frequency, wide: true, children: _jsx(Choice, { options: FREQUENCIES, value: form.frequency, onChange: (value) => set('frequency', value) }) }), shown.deliveryDate ? (_jsx(Field, { label: '\u6570\u636E\u4EA4\u4ED8\u65E5\u671F', required: true, error: errors.deliveryDate, children: _jsx(Input, { type: 'date', value: form.deliveryDate, onChange: (event) => set('deliveryDate', event.target.value) }) })) : null, shown.periodDates ? (_jsxs(_Fragment, { children: [_jsx(Field, { label: '\u6570\u636E\u9996\u6B21\u4F7F\u7528\u65E5\u671F', required: true, error: errors.firstUseDate, children: _jsx(Input, { type: 'date', value: form.firstUseDate, onChange: (event) => set('firstUseDate', event.target.value) }) }), _jsx(Field, { label: '\u6700\u540E\u4E00\u6B21\u4EA4\u4ED8\u65E5\u671F', required: true, error: errors.lastDeliveryDate, children: _jsx(Input, { type: 'date', value: form.lastDeliveryDate, onChange: (event) => set('lastDeliveryDate', event.target.value) }) })] })) : null, shown.quarterDay ? (_jsx(Field, { label: '\u6BCF\u5B63\u5EA6\u7684\u7B2C\u51E0\u5929', required: true, error: errors.quarterDay, children: _jsx(Input, { type: 'number', min: 1, max: 92, value: form.quarterDay ?? '', onChange: (event) => set('quarterDay', number(event.target.value)) }) })) : null, shown.monthDay ? (_jsx(Field, { label: '\u6BCF\u6708\u51E0\u53F7', required: true, error: errors.monthDay, children: _jsx(Input, { type: 'number', min: 1, max: 31, value: form.monthDay ?? '', onChange: (event) => set('monthDay', number(event.target.value)) }) })) : null, shown.weekDay ? (_jsx(Field, { label: '\u6BCF\u5468\u5468\u51E0', required: true, error: errors.weekDay, wide: true, children: _jsx(Choice, { options: WEEKDAYS.map((name, index) => ({
32
+ value: index + 1,
33
+ label: name,
34
+ })), value: form.weekDay, onChange: (value) => set('weekDay', value) }) })) : null, shown.frequencyNote ? (_jsx(Field, { label: '\u5176\u4ED6\u9891\u6B21\u63CF\u8FF0', required: true, error: errors.frequencyNote, wide: true, children: _jsx(Input, { value: form.frequencyNote, onChange: (event) => set('frequencyNote', event.target.value) }) })) : null, _jsx(Field, { label: '\u6570\u636E\u4F7F\u7528\u8303\u56F4', required: true, error: errors.scope, wide: true, children: _jsx(Choice, { options: SCOPES, value: form.scope,
35
+ // Changing the scope changes the consumer types it offers.
36
+ onChange: (value) => onChange({ ...form, scope: value, consumers: [] }) }) }), _jsx(Field, { label: '\u4F7F\u7528\u65B9\u7C7B\u578B\uFF08\u591A\u9009\uFF09', required: true, error: errors.consumers, wide: true, children: form.scope ? (_jsx(MultiChoice, { options: consumerOptions(form.scope), values: form.consumers, onChange: (value) => set('consumers', value) })) : (_jsx("p", { className: 'text-sm text-muted-foreground', children: "\u8BF7\u5148\u9009\u62E9\u6570\u636E\u4F7F\u7528\u8303\u56F4" })) }), shown.fileShield ? (_jsxs("fieldset", { className: 'grid gap-4 rounded-lg border p-3 sm:col-span-2 sm:grid-cols-2', children: [_jsx("legend", { className: 'px-1 text-sm font-medium', children: "\u6587\u4EF6\u76FE\u6743\u9650\u9700\u6C42\uFF08\u5185\u90E8\u5458\u5DE5\uFF09" }), _jsx(Field, { label: '\u7533\u8BF7\u4EBA\u662F\u5426\u63A5\u53D7\u4F7F\u7528\u6587\u4EF6\u76FE', required: true, error: errors.fileShieldAccepted, children: _jsx(Choice, { options: YES_NO, value: form.fileShieldAccepted, onChange: (value) => set('fileShieldAccepted', value) }) }), _jsx(Field, { label: '\u590D\u5236\u6743\u9650', required: true, error: errors.fileShieldCopy, children: _jsx(Choice, { options: YES_NO, value: form.fileShieldCopy, onChange: (value) => set('fileShieldCopy', value) }) }), _jsx(Field, { label: '\u6388\u6743\u4EBA\u5458\u8303\u56F4', required: true, error: errors.fileShieldScope, children: _jsx(Input, { value: form.fileShieldScope, onChange: (event) => set('fileShieldScope', event.target.value) }) }), _jsx(Field, { label: '\u6570\u636E\u6709\u6548\u622A\u81F3\u65E5\u671F', required: true, error: errors.fileShieldValidUntil, children: _jsx(Input, { type: 'date', value: form.fileShieldValidUntil, onChange: (event) => set('fileShieldValidUntil', event.target.value) }) })] })) : null, shown.thirdParty ? (_jsxs("fieldset", { className: 'grid gap-4 rounded-lg border p-3 sm:col-span-2 sm:grid-cols-2', children: [_jsx("legend", { className: 'px-1 text-sm font-medium', children: "\u7B2C\u4E09\u65B9" }), _jsx(Field, { label: '\u7B2C\u4E09\u65B9\u4FDD\u5BC6\u534F\u8BAE\uFF08\u4FDD\u5BC6\u6846\u67B6\u534F\u8BAE\u6216\u5408\u540C\u4E2D\u7684\u4FDD\u5BC6\u6761\u6B3E\u626B\u63CF\u4EF6\uFF09', required: true, error: errors.ndaFiles, children: _jsx(FilesField, { label: '\u7B2C\u4E09\u65B9\u4FDD\u5BC6\u534F\u8BAE', value: form.ndaFiles, onChange: (value) => set('ndaFiles', value) }) }), _jsx(Field, { label: '\u7B2C\u4E09\u65B9\u5B89\u5168\u8BC4\u4F30\uFF08\u6309\u8BC4\u4F30\u6A21\u677F\u9644\u4E0A\u5B89\u5168\u8BC4\u4F30\u7ED3\u679C\uFF09', children: _jsx(FilesField, { label: '\u7B2C\u4E09\u65B9\u5B89\u5168\u8BC4\u4F30', value: form.securityFiles, onChange: (value) => set('securityFiles', value) }) })] })) : null] }));
37
+ }
38
+ function RequestSummary({ form, }) {
39
+ const shown = visibility(form);
40
+ return (_jsxs("div", { className: 'grid gap-3 sm:grid-cols-2', children: [_jsx(ReadField, { label: '\u4E3B\u9898', value: form.subject, wide: true }), _jsx(ReadField, { label: '\u539F\u56E0', value: form.reason, wide: true }), _jsx(ReadField, { label: '\u9884\u4F30\u6570\u636E\u91CF', value: form.volume }), _jsx(ReadField, { label: '\u6570\u636E\u4F7F\u7528\u9891\u6B21', value: label(FREQUENCIES, form.frequency) }), shown.deliveryDate ? (_jsx(ReadField, { label: '\u6570\u636E\u4EA4\u4ED8\u65E5\u671F', value: form.deliveryDate })) : null, shown.periodDates ? (_jsx(ReadField, { label: '\u9996\u6B21\u4F7F\u7528 / \u6700\u540E\u4E00\u6B21\u4EA4\u4ED8', value: `${form.firstUseDate} 至 ${form.lastDeliveryDate}` })) : null, shown.quarterDay ? (_jsx(ReadField, { label: '\u6BCF\u5B63\u5EA6\u7B2C\u51E0\u5929', value: text(form.quarterDay) })) : null, shown.monthDay ? (_jsx(ReadField, { label: '\u6BCF\u6708\u51E0\u53F7', value: text(form.monthDay) })) : null, shown.weekDay ? (_jsx(ReadField, { label: '\u6BCF\u5468\u5468\u51E0', value: WEEKDAYS[(form.weekDay ?? 1) - 1] })) : null, shown.frequencyNote ? (_jsx(ReadField, { label: '\u5176\u4ED6\u9891\u6B21\u63CF\u8FF0', value: form.frequencyNote })) : null, _jsx(ReadField, { label: '\u6570\u636E\u4F7F\u7528\u8303\u56F4', value: label(SCOPES, form.scope) }), _jsx(ReadField, { label: '\u4F7F\u7528\u65B9\u7C7B\u578B', value: form.consumers.join('、') }), shown.fileShield ? (_jsx(ReadField, { label: '\u6587\u4EF6\u76FE\u6743\u9650\u9700\u6C42', wide: true, value: `接受文件盾:${label(YES_NO, form.fileShieldAccepted)};授权人员范围:${form.fileShieldScope};复制权限:${label(YES_NO, form.fileShieldCopy)};有效截至:${form.fileShieldValidUntil}` })) : null, shown.thirdParty ? (_jsx(ReadField, { label: '\u7B2C\u4E09\u65B9\u4FDD\u5BC6\u534F\u8BAE / \u5B89\u5168\u8BC4\u4F30', wide: true, value: `${form.ndaFiles.join('、') || '—'} / ${form.securityFiles.join('、') || '—'}` })) : null] }));
41
+ }
42
+ const CATEGORY = ['一次性清单数据抽取', '一次性分析数据整理'].map((value) => ({
43
+ value,
44
+ label: value,
45
+ }));
46
+ const COMPLEXITY = ['简单', '复杂'].map((value) => ({ value, label: value }));
47
+ /** 抽数子流程: the processing fields, then submit or void. */
48
+ function ExtractionPanel({ id, actor, onChanged, }) {
49
+ const { t } = useTranslation(NAMESPACE);
50
+ const client = api(useApiClient());
51
+ const { data: view, reload } = useLoader(() => client.get(`extractions/${id}`, actor), `${id}:${actor}`);
52
+ const [draft, setDraft] = useState({});
53
+ const [busy, setBusy] = useState(false);
54
+ const [error, setError] = useState('');
55
+ if (!view)
56
+ return (_jsx("p", { className: 'text-sm text-muted-foreground', children: t('common.loading') }));
57
+ const record = { ...view.record, ...draft };
58
+ const editable = view.record.status === 'pending' &&
59
+ (list(view.record.executorIds).includes(actor) ||
60
+ actor === DATA_REQUEST_ROLES.acceptor);
61
+ const set = (key, value) => setDraft({ ...draft, [key]: value });
62
+ const field = (key) => text(record[key]);
63
+ async function act(work) {
64
+ setBusy(true);
65
+ setError('');
66
+ try {
67
+ await work();
68
+ setDraft({});
69
+ await reload();
70
+ onChanged();
71
+ }
72
+ catch (cause) {
73
+ setError(errorMessage(cause));
74
+ }
75
+ finally {
76
+ setBusy(false);
77
+ }
78
+ }
79
+ return (_jsxs(Section, { title: `${text(view.record.number)} · ${text(view.record.topic)}`, actions: _jsx(Badge, { children: stateLabel('extractions', view.record.status) }), children: [_jsxs("div", { className: 'grid gap-4 sm:grid-cols-2', children: [_jsx(ReadField, { label: '\u62BD\u6570\u65E5\u671F', value: text(view.record.scheduledDate) }), _jsx(ReadField, { label: '\u62BD\u6570\u6267\u884C\u4EBA\u5458', value: names(view.record.executorIds) }), _jsx(ReadField, { label: '\u62BD\u6570\u4EFB\u52A1\u5EFA\u8BAE\u6216\u8981\u6C42', value: text(view.record.requirement ?? ''), wide: true }), _jsx(Field, { label: '\u6570\u636E\u5B9E\u65BD\u5206\u7C7B', required: true, children: _jsx(Choice, { options: CATEGORY, value: field('category'), disabled: !editable, onChange: (value) => set('category', value) }) }), _jsx(Field, { label: '\u53D6\u6570\u903B\u8F91\u590D\u6742\u7A0B\u5EA6', required: true, children: _jsx(Choice, { options: COMPLEXITY, value: field('complexity'), disabled: !editable, onChange: (value) => set('complexity', value) }) }), _jsx(Field, { label: '\u4E0E\u7528\u6237\u534F\u5546\u4E00\u81F4\u7684\u6570\u636E\u4EA4\u4ED8\u65F6\u95F4', required: true, children: _jsx(Input, { type: 'date', disabled: !editable, value: field('agreedDeliveryAt'), onChange: (event) => set('agreedDeliveryAt', event.target.value) }) }), _jsx(Field, { label: '\u6570\u636E\u6240\u5C5E\u7CFB\u7EDF', required: true, children: _jsx(Input, { disabled: !editable, value: field('sourceSystem'), onChange: (event) => set('sourceSystem', event.target.value) }) }), _jsx(Field, { label: '\u662F\u5426\u9700\u8981\u4E0B\u8F7D\u6570\u636E', required: true, children: _jsx(Choice, { options: YES_NO, value: record.needsDownload === null ||
80
+ record.needsDownload === undefined
81
+ ? null
82
+ : Boolean(record.needsDownload), disabled: !editable, onChange: (value) => set('needsDownload', value) }) }), _jsx(Field, { label: '\u53CD\u9988\u9644\u4EF6', children: _jsx(FilesField, { label: '\u53CD\u9988\u9644\u4EF6', disabled: !editable, value: list(record.feedbackFiles), onChange: (value) => set('feedbackFiles', value) }) }), _jsx(Field, { label: '\u53CD\u9988\u8BF4\u660E', required: true, wide: true, children: _jsx(TextArea, { label: '\u53CD\u9988\u8BF4\u660E', disabled: !editable, value: field('feedbackNote'), onChange: (value) => set('feedbackNote', value) }) }), _jsx(Field, { label: '\u5F00\u53D1\u4EBA\u5458\u590D\u6838', children: _jsx(Input, { disabled: !editable, value: field('reviewerId'), onChange: (event) => set('reviewerId', event.target.value) }) }), _jsx(Field, { label: '\u62BD\u6570\u4E00\u7EA7\u4E3B\u7BA1', required: true, children: _jsx(Input, { disabled: !editable, value: field('managerId'), onChange: (event) => set('managerId', event.target.value) }) }), _jsx(Field, { label: '\u4E1A\u52A1\u90E8\u95E8\u786E\u8BA4\u903B\u8F91', required: true, children: _jsx(Input, { disabled: !editable, value: field('confirmerId'), onChange: (event) => set('confirmerId', event.target.value) }) }), view.record.voidReason ? (_jsx(ReadField, { label: '\u4F5C\u5E9F\u539F\u56E0', value: text(view.record.voidReason) })) : null] }), error ? (_jsx("p", { role: 'alert', className: 'text-sm text-destructive', children: error })) : null, _jsxs("div", { className: 'flex flex-wrap items-start gap-2', children: [editable ? (_jsx(Button, { variant: 'outline', disabled: busy || !Object.keys(draft).length, onClick: () => void act(() => client.patch(`extractions/${id}`, {
83
+ actAs: actor,
84
+ values: pickEditable(draft, EXTRACTION_FIELDS),
85
+ })), children: t('common.save') })) : null, _jsx(Actions, { available: view.available, busy: busy, needsReason: ['void'], onFire: (transition, input) => void act(async () => {
86
+ if (Object.keys(draft).length)
87
+ await client.patch(`extractions/${id}`, {
88
+ actAs: actor,
89
+ values: pickEditable(draft, EXTRACTION_FIELDS),
90
+ });
91
+ await client.post(`extractions/${id}/fire`, {
92
+ actAs: actor,
93
+ transition,
94
+ input,
95
+ });
96
+ }) })] }), _jsx(History, { lifecycle: 'extractions', view: view })] }));
97
+ }
98
+ /** 创建抽数子流程 / 已作废抽数执行数据, the schedule and a manual task. */
99
+ function Extractions({ detail, actor, onChanged, }) {
100
+ const { t } = useTranslation(NAMESPACE);
101
+ const client = api(useApiClient());
102
+ const [tab, setTab] = useState('active');
103
+ const [open, setOpen] = useState();
104
+ const [manual, setManual] = useState({
105
+ topic: '',
106
+ scheduledDate: '',
107
+ requirement: '',
108
+ });
109
+ const [error, setError] = useState('');
110
+ const canCreate = detail.record.status === 'accepting' &&
111
+ actor === DATA_REQUEST_ROLES.acceptor;
112
+ const shown = detail.extractions.filter((task) => tab === 'voided' ? task.status === 'voided' : task.status !== 'voided');
113
+ return (_jsxs(Section, { title: '\u62BD\u6570\u5B50\u6D41\u7A0B', children: [_jsxs("div", { className: 'space-y-1 text-sm', children: [_jsxs("p", { children: [_jsx("span", { className: 'text-muted-foreground', children: "\u62BD\u6570\u65E5\u7A0B\uFF1A" }), detail.schedule.due.length
114
+ ? detail.schedule.due.join('、')
115
+ : '无自动日程(其他固定频次请手动创建)'] }), detail.schedule.shifted.length ? (_jsxs("p", { className: 'text-xs text-muted-foreground', children: ["\u9047\u5468\u672B\u6216\u6CD5\u5B9A\u8282\u5047\u65E5\u987A\u5EF6\uFF1A", detail.schedule.shifted
116
+ .map((item) => `${item.date} → ${item.to}`)
117
+ .join(';')] })) : null] }), _jsxs("div", { className: 'flex flex-wrap gap-1.5', role: 'tablist', children: [_jsx(Button, { size: 'sm', role: 'tab', "aria-selected": tab === 'active', variant: tab === 'active' ? 'default' : 'outline', onClick: () => setTab('active'), children: "\u521B\u5EFA\u62BD\u6570\u5B50\u6D41\u7A0B" }), _jsx(Button, { size: 'sm', role: 'tab', "aria-selected": tab === 'voided', variant: tab === 'voided' ? 'default' : 'outline', onClick: () => setTab('voided'), children: "\u5DF2\u4F5C\u5E9F\u62BD\u6570\u6267\u884C\u6570\u636E" })] }), _jsx("div", { className: 'overflow-x-auto rounded-lg border', children: _jsxs("table", { className: 'w-full text-sm', children: [_jsx("thead", { className: 'bg-muted/50 text-left text-xs text-muted-foreground', children: _jsxs("tr", { children: [_jsx("th", { className: 'px-3 py-2 font-medium', children: "\u62BD\u6570\u4EFB\u52A1\u4E3B\u9898" }), _jsx("th", { className: 'px-3 py-2 font-medium', children: "\u62BD\u6570\u65E5\u671F" }), _jsx("th", { className: 'px-3 py-2 font-medium', children: "\u6765\u6E90" }), _jsx("th", { className: 'px-3 py-2 font-medium', children: "\u62BD\u6570\u6267\u884C\u4EBA" }), _jsx("th", { className: 'px-3 py-2 font-medium', children: "\u6D41\u7A0B\u73AF\u8282" })] }) }), _jsx("tbody", { children: shown.length ? (shown.map((task) => (_jsxs("tr", { className: 'border-t', children: [_jsx("td", { className: 'px-3 py-2', children: _jsx("button", { type: 'button', className: 'text-primary hover:underline', onClick: () => setOpen(text(task.id)), children: text(task.topic) }) }), _jsx("td", { className: 'px-3 py-2', children: text(task.scheduledDate) }), _jsx("td", { className: 'px-3 py-2', children: { scheduled: '定期', once: '一次性', manual: '手动' }[text(task.origin)] }), _jsx("td", { className: 'px-3 py-2', children: names(task.executorIds) }), _jsx("td", { className: 'px-3 py-2', children: stateLabel('extractions', task.status) })] }, text(task.id))))) : (_jsx("tr", { children: _jsx("td", { colSpan: 5, className: 'px-3 py-4 text-center text-muted-foreground', children: "\u6682\u65E0\u4EFB\u52A1\u6570\u636E" }) })) })] }) }), canCreate && tab === 'active' ? (_jsxs("div", { className: 'grid gap-3 rounded-lg border border-dashed p-3 sm:grid-cols-3', children: [_jsx(Input, { placeholder: '\u62BD\u6570\u4EFB\u52A1\u4E3B\u9898', "aria-label": '\u62BD\u6570\u4EFB\u52A1\u4E3B\u9898', value: manual.topic, onChange: (event) => setManual({ ...manual, topic: event.target.value }) }), _jsx(Input, { type: 'date', "aria-label": '\u9996\u62BD\u65F6\u95F4', value: manual.scheduledDate, onChange: (event) => setManual({ ...manual, scheduledDate: event.target.value }) }), _jsx(Input, { placeholder: '\u62BD\u6570\u4EFB\u52A1\u5EFA\u8BAE\u6216\u8981\u6C42', "aria-label": '\u62BD\u6570\u4EFB\u52A1\u5EFA\u8BAE\u6216\u8981\u6C42', value: manual.requirement, onChange: (event) => setManual({ ...manual, requirement: event.target.value }) }), _jsxs("div", { className: 'flex items-center gap-2 sm:col-span-3', children: [_jsx(Button, { size: 'sm', onClick: () => void client
118
+ .post(`dataRequests/${text(detail.record.id)}/extractions`, {
119
+ actAs: actor,
120
+ ...manual,
121
+ executorIds: [],
122
+ })
123
+ .then(() => {
124
+ setManual({
125
+ topic: '',
126
+ scheduledDate: '',
127
+ requirement: '',
128
+ });
129
+ setError('');
130
+ onChanged();
131
+ })
132
+ .catch((cause) => setError(errorMessage(cause))), children: t('extractions.create') }), error ? (_jsx("span", { className: 'text-sm text-destructive', children: error })) : null] })] })) : null, open ? (_jsx(ExtractionPanel, { id: open, actor: actor, onChanged: onChanged })) : null] }));
133
+ }
134
+ export default function DataRequestsPage() {
135
+ const { t } = useTranslation(NAMESPACE);
136
+ const client = api(useApiClient());
137
+ const [actor, setActor] = useState(DATA_REQUEST_ROLES.applicant);
138
+ const [selected, setSelected] = useState();
139
+ const [form, setForm] = useState();
140
+ const [showErrors, setShowErrors] = useState(false);
141
+ const [busy, setBusy] = useState(false);
142
+ const [error, setError] = useState('');
143
+ const [tick, setTick] = useState(0);
144
+ const records = useLoader(() => client.list('dataRequests'), `list:${tick}`);
145
+ const detailId = selected && selected !== 'new' ? selected : undefined;
146
+ const detail = useLoader(detailId
147
+ ? () => client.get(`dataRequests/${detailId}`, actor)
148
+ : undefined, `${detailId}:${actor}:${tick}`);
149
+ const view = detail.data;
150
+ const editing = selected === 'new' ||
151
+ (view?.record.status === 'draft' && view.record.applicantId === actor);
152
+ const current = form ?? (selected === 'new' ? emptyDataRequest() : view?.form);
153
+ const errors = showErrors && current ? validateDataRequest(current) : {};
154
+ function pick(id) {
155
+ setSelected(id);
156
+ setForm(undefined);
157
+ setShowErrors(false);
158
+ setError('');
159
+ }
160
+ async function act(work) {
161
+ setBusy(true);
162
+ setError('');
163
+ try {
164
+ await work();
165
+ setForm(undefined);
166
+ setTick((value) => value + 1);
167
+ }
168
+ catch (cause) {
169
+ setError(errorMessage(cause));
170
+ }
171
+ finally {
172
+ setBusy(false);
173
+ }
174
+ }
175
+ /** Saves the form, creating the request first when it is new; returns its id. */
176
+ async function save() {
177
+ if (!current)
178
+ throw new Error('nothing to save');
179
+ if (selected === 'new') {
180
+ const created = await client.post('dataRequests', {
181
+ actAs: actor,
182
+ form: { ...current },
183
+ });
184
+ setSelected(text(created.id));
185
+ return text(created.id);
186
+ }
187
+ await client.patch(`dataRequests/${text(selected)}`, {
188
+ actAs: actor,
189
+ form: { ...current },
190
+ });
191
+ return text(selected);
192
+ }
193
+ return (_jsxs(PageContainer, { children: [_jsx(PageHeader, { title: t('dataRequests.title'), description: t('dataRequests.description'), actions: _jsx(PersonaSelect, { value: actor, onChange: setActor }) }), _jsxs("div", { className: 'grid gap-6 lg:grid-cols-[minmax(0,1fr)_minmax(0,2fr)]', children: [_jsx(Section, { title: t('dataRequests.list'), actions: actor === DATA_REQUEST_ROLES.applicant ? (_jsx(Button, { size: 'sm', onClick: () => pick('new'), children: t('dataRequests.create') })) : null, children: _jsx(RecordList, { records: records.data ?? [], lifecycle: 'dataRequests', selected: selected, summarize: (record) => `${text(record.subject)} · ${personName(text(record.approverId ?? record.applicantId))}`, onSelect: pick, empty: t('common.empty') }) }), _jsx("div", { className: 'min-w-0 space-y-6', children: !selected ? (_jsx("p", { className: 'rounded-lg border border-dashed p-12 text-center text-sm text-muted-foreground', children: t('common.pick') })) : (_jsxs(_Fragment, { children: [_jsxs(Section, { title: selected === 'new'
194
+ ? t('dataRequests.create')
195
+ : `${text(view?.record.number ?? '')} · ${text(view?.record.subject ?? '')}`, actions: view ? (_jsx(Badge, { children: stateLabel('dataRequests', view.record.status) })) : null, children: [view ? (_jsx(StateBar, { lifecycle: 'dataRequests', view: view })) : null, view?.record.returnReason && view.record.status === 'draft' ? (_jsxs("p", { className: 'text-sm text-destructive', children: ["\u9000\u56DE\u539F\u56E0\uFF1A", text(view.record.returnReason)] })) : null, view && view.record.approverId ? (_jsxs("p", { className: 'text-sm text-muted-foreground', children: ["\u5F53\u524D\u5904\u7406\u4EBA\uFF1A", personName(text(view.record.approverId))] })) : null, current && editing ? (_jsx(RequestEditor, { form: current, onChange: setForm, errors: errors })) : current ? (_jsx(RequestSummary, { form: current })) : (_jsx("p", { className: 'text-sm text-muted-foreground', children: t('common.loading') })), error || detail.error ? (_jsx("p", { role: 'alert', className: 'text-sm text-destructive', children: error || detail.error })) : null, _jsxs("div", { className: 'flex flex-wrap items-start gap-2', children: [editing ? (_jsxs(_Fragment, { children: [_jsx(Button, { variant: 'outline', disabled: busy, onClick: () => void act(async () => void (await save())), children: t('common.save') }), _jsx(Button, { disabled: busy, onClick: () => {
196
+ setShowErrors(true);
197
+ if (current &&
198
+ Object.keys(validateDataRequest(current)).length)
199
+ return;
200
+ void act(async () => {
201
+ const id = await save();
202
+ await client.post(`dataRequests/${id}/fire`, {
203
+ actAs: actor,
204
+ transition: 'submit',
205
+ input: {},
206
+ });
207
+ });
208
+ }, children: t('dataRequests.submit') })] })) : null, view ? (_jsx(Actions, { available: view.available, busy: busy, hidden: ['submit'], needsReason: ['returnToApplicant', 'acceptanceReturn'], onFire: (transition, input) => void act(() => client.post(`dataRequests/${detailId}/fire`, {
209
+ actAs: actor,
210
+ transition,
211
+ input,
212
+ })) })) : null] }), view?.record.status === 'accepting' ? (_jsx("p", { className: 'text-xs text-muted-foreground', children: "\u6709\u62BD\u6570\u5B50\u5355\uFF08\u8FDB\u884C\u4E2D\u6216\u5DF2\u7ED3\u675F\uFF09\u65F6\u4E0D\u80FD\u201C\u8FD4\u56DE\u7533\u8BF7\u4EBA\u201D\uFF1B\u6709\u8FDB\u884C\u4E2D\u7684\u62BD\u6570\u5B50\u5355\u65F6\u4E0D\u80FD\u201C\u63D0\u4EA4\u529E\u7ED3\u201D\u3002" })) : null] }), view &&
213
+ (view.record.status === 'accepting' ||
214
+ view.extractions.length) ? (_jsx(Extractions, { detail: view, actor: actor, onChanged: () => setTick((value) => value + 1) })) : null, view ? (_jsx(Section, { title: t('common.history'), children: _jsx(History, { lifecycle: 'dataRequests', view: view }) })) : null] })) })] })] }));
215
+ }
216
+ //# sourceMappingURL=data-requests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-requests.js","sourceRoot":"","sources":["../../../client/pages/data-requests.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type ReactElement } from 'react';
2
+ export default function IncomingPage(): ReactElement;
3
+ //# sourceMappingURL=incoming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incoming.d.ts","sourceRoot":"","sources":["../../../client/pages/incoming.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AA6SpD,MAAM,CAAC,OAAO,UAAU,YAAY,IAAI,YAAY,CAoPnD"}
@@ -0,0 +1,128 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { useApiClient } from '@nocobase/app-client';
4
+ import { useTranslation } from '@nocobase/i18n/client';
5
+ import { INCOMING_ROLES, PEOPLE, personName } from '../../shared/people.js';
6
+ import { pickEditable, INCOMING_FIELDS } from '../../shared/fields.js';
7
+ import { Actions, Choice, Field, FilesField, History, MultiChoice, PersonaSelect, Processing, ReadField, RecordList, RowsTable, Section, StateBar, TextArea, } from '../components/flow-ui.js';
8
+ import { NAMESPACE, names } from '../lib/format.js';
9
+ import { PageContainer } from '../components/page-container.js';
10
+ import { PageHeader } from '../components/page-header.js';
11
+ import { Badge } from '../components/ui/badge.js';
12
+ import { Button } from '../components/ui/button.js';
13
+ import { Input } from '../components/ui/input.js';
14
+ import { api, errorMessage, list, } from '../lib/api.js';
15
+ import { stateLabel } from '../lib/labels.js';
16
+ import { useLoader } from '../lib/use-loader.js';
17
+ import { text } from '../../shared/text.js';
18
+ const DISTRIBUTION = [
19
+ { value: 'review', label: '呈阅处' },
20
+ { value: 'circulate', label: '传阅' },
21
+ ];
22
+ const TEXT_FIELDS = [
23
+ ['code', '收文编码'],
24
+ ['sender', '来文单位'],
25
+ ['senderRef', '来文文号'],
26
+ ];
27
+ function IncomingEditor({ values, onChange, }) {
28
+ const field = (key) => text(values[key]);
29
+ const set = (key, value) => onChange({ ...values, [key]: value });
30
+ return (_jsxs("div", { className: 'grid gap-4 sm:grid-cols-3', children: [_jsx("div", { className: 'sm:col-span-3', children: _jsx(Field, { label: '\u6807\u9898', required: true, children: _jsx(Input, { value: field('title'), onChange: (event) => set('title', event.target.value) }) }) }), TEXT_FIELDS.map(([key, label]) => (_jsx(Field, { label: label, required: true, children: _jsx(Input, { value: field(key), onChange: (event) => set(key, event.target.value) }) }, key))), _jsx("div", { className: 'sm:col-span-3', children: _jsx(Field, { label: '\u6458\u8981', required: true, children: _jsx(TextArea, { label: '\u6458\u8981', value: field('summary'), onChange: (value) => set('summary', value) }) }) }), _jsx("div", { className: 'sm:col-span-3', children: _jsx(Field, { label: '\u529E\u516C\u5BA4\u610F\u89C1', required: true, children: _jsx(TextArea, { label: '\u529E\u516C\u5BA4\u610F\u89C1', value: field('officeOpinion'), onChange: (value) => set('officeOpinion', value) }) }) }), _jsx("div", { className: 'sm:col-span-3', children: _jsx(Field, { label: '\u6765\u6587', children: _jsx(FilesField, { label: '\u6765\u6587', value: list(values.attachments), onChange: (value) => set('attachments', value) }) }) }), _jsx(Field, { label: '\u5206\u53D1\u7C7B\u578B', required: true, children: _jsx(Choice, { options: DISTRIBUTION, value: field('distributionType'), onChange: (value) => set('distributionType', value) }) }), _jsx(ReadField, { label: '\u529E\u516C\u5BA4\u90E8\u95E8\u4E3B\u7BA1', value: personName(field('officeHeadId') || INCOMING_ROLES.officeHead) }), _jsx(ReadField, { label: '\u529E\u516C\u5BA4\u5206\u7BA1\u9886\u5BFC', value: personName(field('officeLeaderId') || INCOMING_ROLES.officeLeader) })] }));
31
+ }
32
+ function IncomingSummary({ record }) {
33
+ return (_jsxs("div", { className: 'grid gap-3 sm:grid-cols-3', children: [_jsx(ReadField, { label: '\u6807\u9898', value: text(record.title), wide: true }), TEXT_FIELDS.map(([key, label]) => (_jsx(ReadField, { label: label, value: text(record[key] ?? '') }, key))), _jsx(ReadField, { label: '\u6458\u8981', value: text(record.summary ?? ''), wide: true }), _jsx(ReadField, { label: '\u529E\u516C\u5BA4\u610F\u89C1', value: text(record.officeOpinion ?? ''), wide: true }), _jsx(ReadField, { label: '\u6765\u6587', value: list(record.attachments).join('、') }), _jsx(ReadField, { label: '\u5206\u53D1\u7C7B\u578B', value: DISTRIBUTION.find((item) => item.value === record.distributionType)
34
+ ?.label ?? '' }), _jsx(ReadField, { label: '\u529E\u516C\u5BA4\u90E8\u95E8\u4E3B\u7BA1 / \u5206\u7BA1\u9886\u5BFC', value: `${personName(text(record.officeHeadId))} / ${personName(text(record.officeLeaderId))}` })] }));
35
+ }
36
+ /** 公司管理层信息: rows from configuration, or a group typed in with people picked. */
37
+ function Management({ detail, config, editable, busy, onAdd, onRemove, onForward, }) {
38
+ const [groupName, setGroupName] = useState('');
39
+ const [members, setMembers] = useState([]);
40
+ const pending = detail.management.filter((row) => !row.forwarded).length;
41
+ const options = PEOPLE.filter((person) => person.title.includes('管理层') || person.title.includes('领导'));
42
+ return (_jsxs("div", { className: 'space-y-3', children: [_jsx("div", { className: 'overflow-x-auto rounded-lg border', children: _jsxs("table", { className: 'w-full text-sm', children: [_jsx("thead", { className: 'bg-muted/50 text-left text-xs text-muted-foreground', children: _jsxs("tr", { children: [_jsx("th", { className: 'px-3 py-2 font-medium', children: "\u7FA4\u7EC4" }), _jsx("th", { className: 'px-3 py-2 font-medium', children: "\u6284\u9001\u4EBA\u5458" }), _jsx("th", { className: 'px-3 py-2 font-medium', children: "\u662F\u5426\u8F6C\u53D1" }), _jsx("th", { className: 'px-3 py-2' })] }) }), _jsx("tbody", { children: detail.management.length ? (detail.management.map((row) => (_jsxs("tr", { className: 'border-t', children: [_jsxs("td", { className: 'px-3 py-2', children: [text(row.groupName), row.fromConfig ? null : (_jsx("span", { className: 'ml-1 text-xs text-muted-foreground', children: "\uFF08\u81EA\u884C\u6DFB\u52A0\uFF09" }))] }), _jsx("td", { className: 'px-3 py-2', children: names(row.members) }), _jsx("td", { className: 'px-3 py-2', children: _jsx(Badge, { variant: row.forwarded ? 'default' : 'outline', children: row.forwarded ? '是' : '否' }) }), _jsx("td", { className: 'px-3 py-2 text-right', children: editable && !row.forwarded ? (_jsx(Button, { size: 'sm', variant: 'ghost', onClick: () => onRemove(text(row.id)), children: "\u5220\u9664" })) : null })] }, text(row.id))))) : (_jsx("tr", { children: _jsx("td", { colSpan: 4, className: 'px-3 py-4 text-center text-muted-foreground', children: "\u6682\u65E0\u7FA4\u7EC4" }) })) })] }) }), editable ? (_jsxs("div", { className: 'space-y-3 rounded-lg border border-dashed p-3', children: [_jsxs("div", { className: 'flex flex-wrap items-center gap-2', children: [_jsx("span", { className: 'text-sm text-muted-foreground', children: "\u4ECE\u914D\u7F6E\u9009\u62E9\uFF1A" }), (config?.managementGroups ?? []).map((group) => (_jsxs(Button, { size: 'sm', variant: 'outline', disabled: busy, onClick: () => onAdd({ groupId: group.id }), children: [group.name, "\uFF08", names(group.members), "\uFF09"] }, group.id)))] }), _jsxs("div", { className: 'flex flex-wrap items-center gap-2', children: [_jsx(Input, { className: 'w-40', "aria-label": '\u7FA4\u7EC4', placeholder: '\u81EA\u884C\u6DFB\u52A0\uFF1A\u7FA4\u7EC4', value: groupName, onChange: (event) => setGroupName(event.target.value) }), _jsx(MultiChoice, { options: options.map((person) => person.name), values: members.map(personName), onChange: (picked) => setMembers(options
43
+ .filter((person) => picked.includes(person.name))
44
+ .map((person) => person.id)) }), _jsx(Button, { size: 'sm', variant: 'secondary', disabled: busy || !groupName.trim() || !members.length, onClick: () => {
45
+ onAdd({ groupName, members });
46
+ setGroupName('');
47
+ setMembers([]);
48
+ }, children: "\u6DFB\u52A0\u884C" }), _jsxs(Button, { size: 'sm', disabled: busy || !pending, onClick: onForward, children: ["\u8F6C\u53D1\u7BA1\u7406\u4EBA\u5458\uFF08", pending, "\uFF09"] })] })] })) : null] }));
49
+ }
50
+ export default function IncomingPage() {
51
+ const { t } = useTranslation(NAMESPACE);
52
+ const client = api(useApiClient());
53
+ const [actor, setActor] = useState(INCOMING_ROLES.registrar);
54
+ const [selected, setSelected] = useState();
55
+ const [values, setValues] = useState();
56
+ const [busy, setBusy] = useState(false);
57
+ const [error, setError] = useState('');
58
+ const [tick, setTick] = useState(0);
59
+ const config = useLoader(() => client.get('config'), 'config');
60
+ const records = useLoader(() => client.list('incoming'), `list:${tick}`);
61
+ const detailId = selected && selected !== 'new' ? selected : undefined;
62
+ const detail = useLoader(detailId
63
+ ? () => client.get(`incoming/${detailId}`, actor)
64
+ : undefined, `${detailId}:${actor}:${tick}`);
65
+ const view = detail.data;
66
+ const editing = selected === 'new' ||
67
+ (view?.record.status === 'draft' && view.record.registrarId === actor);
68
+ const current = values ?? (selected === 'new' ? { distributionType: '' } : view?.record);
69
+ const dispatcher = view?.record.status === 'dispatching' && view.record.registrarId === actor;
70
+ function pick(id) {
71
+ setSelected(id);
72
+ setValues(undefined);
73
+ setError('');
74
+ }
75
+ async function act(work) {
76
+ setBusy(true);
77
+ setError('');
78
+ try {
79
+ await work();
80
+ setValues(undefined);
81
+ setTick((value) => value + 1);
82
+ }
83
+ catch (cause) {
84
+ setError(errorMessage(cause));
85
+ }
86
+ finally {
87
+ setBusy(false);
88
+ }
89
+ }
90
+ async function save() {
91
+ if (selected === 'new') {
92
+ const created = await client.post('incoming', {
93
+ actAs: actor,
94
+ values: pickEditable(current ?? {}, INCOMING_FIELDS),
95
+ });
96
+ setSelected(text(created.id));
97
+ return text(created.id);
98
+ }
99
+ await client.patch(`incoming/${text(selected)}`, {
100
+ actAs: actor,
101
+ values: pickEditable(current ?? {}, INCOMING_FIELDS),
102
+ });
103
+ return text(selected);
104
+ }
105
+ const fire = (transition, input = {}) => act(() => client.post(`incoming/${detailId}/fire`, {
106
+ actAs: actor,
107
+ transition,
108
+ input,
109
+ }));
110
+ return (_jsxs(PageContainer, { children: [_jsx(PageHeader, { title: t('incoming.title'), description: t('incoming.description'), actions: _jsx(PersonaSelect, { value: actor, onChange: setActor }) }), _jsxs("div", { className: 'grid gap-6 lg:grid-cols-[minmax(0,1fr)_minmax(0,2fr)]', children: [_jsx(Section, { title: t('incoming.list'), actions: actor === INCOMING_ROLES.registrar ? (_jsx(Button, { size: 'sm', onClick: () => pick('new'), children: t('incoming.create') })) : null, children: _jsx(RecordList, { records: records.data ?? [], lifecycle: 'incoming', selected: selected, summarize: (record) => text(record.title || '(未填写标题)'), onSelect: pick, empty: t('common.empty') }) }), _jsx("div", { className: 'min-w-0 space-y-6', children: !selected ? (_jsx("p", { className: 'rounded-lg border border-dashed p-12 text-center text-sm text-muted-foreground', children: t('common.pick') })) : (_jsxs(_Fragment, { children: [_jsxs(Section, { title: selected === 'new'
111
+ ? t('incoming.create')
112
+ : `${text(view?.record.number ?? '')} · ${text(view?.record.title ?? '')}`, actions: view ? (_jsx(Badge, { children: stateLabel('incoming', view.record.status) })) : null, children: [view ? _jsx(StateBar, { lifecycle: 'incoming', view: view }) : null, view?.record.returnReason && view.record.status === 'draft' ? (_jsxs("p", { className: 'text-sm text-destructive', children: ["\u9000\u56DE\u539F\u56E0\uFF1A", text(view.record.returnReason)] })) : null, current && editing ? (_jsx(IncomingEditor, { values: current, onChange: setValues })) : current ? (_jsx(IncomingSummary, { record: current })) : null, error || detail.error ? (_jsx("p", { role: 'alert', className: 'text-sm text-destructive', children: error || detail.error })) : null, _jsxs("div", { className: 'flex flex-wrap items-start gap-2', children: [editing ? (_jsxs(_Fragment, { children: [_jsx(Button, { variant: 'outline', disabled: busy, onClick: () => void act(async () => void (await save())), children: t('common.save') }), _jsx(Button, { disabled: busy, onClick: () => void act(async () => {
113
+ const id = await save();
114
+ await client.post(`incoming/${id}/fire`, {
115
+ actAs: actor,
116
+ transition: 'submit',
117
+ input: {},
118
+ });
119
+ }), children: t('incoming.submit') })] })) : null, view ? (_jsx(Actions, { available: view.available, busy: busy, hidden: ['submit', 'dispatchClerks', 'forwardManagement'], needsReason: ['returnToRegistrar'], onFire: (transition, input) => void fire(transition, input) })) : null] })] }), view &&
120
+ ['dispatching', 'closed'].includes(text(view.record.status)) ? (_jsxs(_Fragment, { children: [_jsxs(Section, { title: '\u529E\u4E8B\u4EBA\u5458\u4FE1\u606F', children: [_jsx("p", { className: 'text-xs text-muted-foreground', children: "\u9009\u90E8\u95E8\u540E\u52FE\u9009\u8981\u5E26\u5165\u7684\u4EBA\u5458\uFF0C\u6309\u90E8\u95E8\u914D\u7F6E\u5E26\u51FA\u3002\u6D3E\u53D1\u65F6\u540C\u4E00\u6284\u9001\u4EBA\u53EA\u6536\u5230\u4E00\u6B21\u63D0\u9192\uFF0C\u91CD\u65B0\u5BA1\u6279\u5206\u6D3E\u540E\u518D\u6D3E\u53D1\u4E5F\u4E0D\u4F1A\u91CD\u590D\u63D0\u9192\u3002" }), _jsx(RowsTable, { rows: view.rows, config: config.data, editable: Boolean(dispatcher), dispatchLabel: '\u6D3E\u53D1\u529E\u4E8B\u4EBA\u5458', busy: busy, onAdd: (row) => void act(() => client.post(`incoming/${detailId}/rows`, {
121
+ actAs: actor,
122
+ ...row,
123
+ })), onRemove: (rowId) => void act(() => client.remove(`rows/${rowId}`, actor)), onDispatch: () => void fire('dispatchClerks') })] }), _jsx(Section, { title: '\u516C\u53F8\u7BA1\u7406\u5C42\u4FE1\u606F', children: _jsx(Management, { detail: view, config: config.data, editable: Boolean(dispatcher), busy: busy, onAdd: (row) => void act(() => client.post(`incoming/${detailId}/managementRows`, {
124
+ actAs: actor,
125
+ ...row,
126
+ })), onRemove: (rowId) => void act(() => client.remove(`managementRows/${rowId}`, actor)), onForward: () => void fire('forwardManagement') }) }), _jsx(Section, { title: '\u5904\u7406\u5217\u8868', children: _jsx(Processing, { levels: view.processing }) })] })) : null, view ? (_jsxs(Section, { title: t('common.history'), children: [_jsx("p", { className: 'text-xs text-muted-foreground', children: "\u4E3B\u5355\u7559\u75D5\u5305\u62EC\u5404\u529E\u4E8B\u4EBA\u5458\u5B50\u5355\u7684\u4E8C\u6B21\u6D3E\u53D1\uFF08\u6267\u884C\u56E2\u961F\u3001\u5176\u4ED6\u90E8\u95E8\u534F\u52A9\uFF09\uFF1B\u5B50\u5B50\u5355\u7684\u53CD\u9988\u53EA\u7559\u5728\u5B50\u5355\u3002" }), _jsx(History, { lifecycle: 'incoming', view: view })] })) : null] })) })] })] }));
127
+ }
128
+ //# sourceMappingURL=incoming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"incoming.js","sourceRoot":"","sources":["../../../client/pages/incoming.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type ReactElement } from 'react';
2
+ export default function TasksPage(): ReactElement;
3
+ //# sourceMappingURL=tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../client/pages/tasks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAkVpD,MAAM,CAAC,OAAO,UAAU,SAAS,IAAI,YAAY,CA4HhD"}