@chenchaolong/plugin-trade-compliance-workbench 1.0.5 → 1.0.7

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 (196) hide show
  1. package/dist/index.d.ts +18 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +20 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/adapters/hsbianma.provider.d.ts +6 -8
  6. package/dist/lib/adapters/hsbianma.provider.d.ts.map +1 -1
  7. package/dist/lib/adapters/hsbianma.provider.js +159 -53
  8. package/dist/lib/adapters/hsbianma.provider.js.map +1 -1
  9. package/dist/lib/adapters/translation.provider.d.ts +7 -1
  10. package/dist/lib/adapters/translation.provider.d.ts.map +1 -1
  11. package/dist/lib/adapters/translation.provider.js +15 -5
  12. package/dist/lib/adapters/translation.provider.js.map +1 -1
  13. package/dist/lib/domain/catalog-localization.d.ts +14 -0
  14. package/dist/lib/domain/catalog-localization.d.ts.map +1 -0
  15. package/dist/lib/domain/catalog-localization.js +19 -0
  16. package/dist/lib/domain/catalog-localization.js.map +1 -0
  17. package/dist/lib/domain/file-name.d.ts +8 -0
  18. package/dist/lib/domain/file-name.d.ts.map +1 -0
  19. package/dist/lib/domain/file-name.js +111 -0
  20. package/dist/lib/domain/file-name.js.map +1 -0
  21. package/dist/lib/domain/import-issues.d.ts +4 -0
  22. package/dist/lib/domain/import-issues.d.ts.map +1 -1
  23. package/dist/lib/domain/import-issues.js +14 -3
  24. package/dist/lib/domain/import-issues.js.map +1 -1
  25. package/dist/lib/entities/catalog.entity.d.ts +5 -1
  26. package/dist/lib/entities/catalog.entity.d.ts.map +1 -1
  27. package/dist/lib/entities/catalog.entity.js +16 -0
  28. package/dist/lib/entities/catalog.entity.js.map +1 -1
  29. package/dist/lib/entities/customer.entity.d.ts +3 -0
  30. package/dist/lib/entities/customer.entity.d.ts.map +1 -1
  31. package/dist/lib/entities/customer.entity.js +12 -0
  32. package/dist/lib/entities/customer.entity.js.map +1 -1
  33. package/dist/lib/entities/shared.entity.d.ts +9 -0
  34. package/dist/lib/entities/shared.entity.d.ts.map +1 -1
  35. package/dist/lib/entities/shared.entity.js +33 -0
  36. package/dist/lib/entities/shared.entity.js.map +1 -1
  37. package/dist/lib/import-jobs/agent-handoff.dispatcher.d.ts +15 -0
  38. package/dist/lib/import-jobs/agent-handoff.dispatcher.d.ts.map +1 -0
  39. package/dist/lib/import-jobs/agent-handoff.dispatcher.js +114 -0
  40. package/dist/lib/import-jobs/agent-handoff.dispatcher.js.map +1 -0
  41. package/dist/lib/import-jobs/contracts.d.ts +76 -0
  42. package/dist/lib/import-jobs/contracts.d.ts.map +1 -0
  43. package/dist/lib/import-jobs/contracts.js +31 -0
  44. package/dist/lib/import-jobs/contracts.js.map +1 -0
  45. package/dist/lib/import-jobs/import-command.builder.d.ts +30 -0
  46. package/dist/lib/import-jobs/import-command.builder.d.ts.map +1 -0
  47. package/dist/lib/import-jobs/import-command.builder.js +97 -0
  48. package/dist/lib/import-jobs/import-command.builder.js.map +1 -0
  49. package/dist/lib/import-jobs/import-job-callback.processor.d.ts +15 -0
  50. package/dist/lib/import-jobs/import-job-callback.processor.d.ts.map +1 -0
  51. package/dist/lib/import-jobs/import-job-callback.processor.js +107 -0
  52. package/dist/lib/import-jobs/import-job-callback.processor.js.map +1 -0
  53. package/dist/lib/import-jobs/import-job.coordinator.d.ts +17 -0
  54. package/dist/lib/import-jobs/import-job.coordinator.d.ts.map +1 -0
  55. package/dist/lib/import-jobs/import-job.coordinator.js +256 -0
  56. package/dist/lib/import-jobs/import-job.coordinator.js.map +1 -0
  57. package/dist/lib/import-jobs/import-job.processor.d.ts +24 -0
  58. package/dist/lib/import-jobs/import-job.processor.d.ts.map +1 -0
  59. package/dist/lib/import-jobs/import-job.processor.js +213 -0
  60. package/dist/lib/import-jobs/import-job.processor.js.map +1 -0
  61. package/dist/lib/import-jobs/import-timeout.processor.d.ts +12 -0
  62. package/dist/lib/import-jobs/import-timeout.processor.d.ts.map +1 -0
  63. package/dist/lib/import-jobs/import-timeout.processor.js +37 -0
  64. package/dist/lib/import-jobs/import-timeout.processor.js.map +1 -0
  65. package/dist/lib/import-jobs/organization-lease.d.ts +39 -0
  66. package/dist/lib/import-jobs/organization-lease.d.ts.map +1 -0
  67. package/dist/lib/import-jobs/organization-lease.js +136 -0
  68. package/dist/lib/import-jobs/organization-lease.js.map +1 -0
  69. package/dist/lib/plugin-context.token.d.ts +4 -0
  70. package/dist/lib/plugin-context.token.d.ts.map +1 -0
  71. package/dist/lib/plugin-context.token.js +2 -0
  72. package/dist/lib/plugin-context.token.js.map +1 -0
  73. package/dist/lib/public-dto.d.ts +6 -0
  74. package/dist/lib/public-dto.d.ts.map +1 -0
  75. package/dist/lib/public-dto.js +33 -0
  76. package/dist/lib/public-dto.js.map +1 -0
  77. package/dist/lib/remote-components/trade-compliance-workbench/app.css +1 -1
  78. package/dist/lib/remote-components/trade-compliance-workbench/app.js +5 -5
  79. package/dist/lib/remote-ui/action-execution.d.ts +26 -0
  80. package/dist/lib/remote-ui/action-execution.d.ts.map +1 -0
  81. package/dist/lib/remote-ui/action-execution.js +85 -0
  82. package/dist/lib/remote-ui/action-execution.js.map +1 -0
  83. package/dist/lib/remote-ui/analytics-contracts.d.ts +3 -2
  84. package/dist/lib/remote-ui/analytics-contracts.d.ts.map +1 -1
  85. package/dist/lib/remote-ui/analytics-contracts.js.map +1 -1
  86. package/dist/lib/remote-ui/app-source.d.ts.map +1 -1
  87. package/dist/lib/remote-ui/app-source.js +426 -169
  88. package/dist/lib/remote-ui/app-source.js.map +1 -1
  89. package/dist/lib/remote-ui/company-logo-lifecycle.d.ts +14 -0
  90. package/dist/lib/remote-ui/company-logo-lifecycle.d.ts.map +1 -0
  91. package/dist/lib/remote-ui/company-logo-lifecycle.js +52 -0
  92. package/dist/lib/remote-ui/company-logo-lifecycle.js.map +1 -0
  93. package/dist/lib/remote-ui/components/data-grid.d.ts +9 -4
  94. package/dist/lib/remote-ui/components/data-grid.d.ts.map +1 -1
  95. package/dist/lib/remote-ui/components/data-grid.js +41 -9
  96. package/dist/lib/remote-ui/components/data-grid.js.map +1 -1
  97. package/dist/lib/remote-ui/components/forms.d.ts +6 -1
  98. package/dist/lib/remote-ui/components/forms.d.ts.map +1 -1
  99. package/dist/lib/remote-ui/components/forms.js +6 -1
  100. package/dist/lib/remote-ui/components/forms.js.map +1 -1
  101. package/dist/lib/remote-ui/components/layout.d.ts.map +1 -1
  102. package/dist/lib/remote-ui/components/layout.js +3 -3
  103. package/dist/lib/remote-ui/components/layout.js.map +1 -1
  104. package/dist/lib/remote-ui/contract-import.d.ts +37 -32
  105. package/dist/lib/remote-ui/contract-import.d.ts.map +1 -1
  106. package/dist/lib/remote-ui/contract-import.js +51 -59
  107. package/dist/lib/remote-ui/contract-import.js.map +1 -1
  108. package/dist/lib/remote-ui/contracts.d.ts +20 -27
  109. package/dist/lib/remote-ui/contracts.d.ts.map +1 -1
  110. package/dist/lib/remote-ui/contracts.js +8 -0
  111. package/dist/lib/remote-ui/contracts.js.map +1 -1
  112. package/dist/lib/remote-ui/customer-contract-contracts.d.ts +5 -11
  113. package/dist/lib/remote-ui/customer-contract-contracts.d.ts.map +1 -1
  114. package/dist/lib/remote-ui/customer-contract-contracts.js.map +1 -1
  115. package/dist/lib/remote-ui/date-time.d.ts +3 -0
  116. package/dist/lib/remote-ui/date-time.d.ts.map +1 -0
  117. package/dist/lib/remote-ui/date-time.js +58 -0
  118. package/dist/lib/remote-ui/date-time.js.map +1 -0
  119. package/dist/lib/remote-ui/model.d.ts +26 -1
  120. package/dist/lib/remote-ui/model.d.ts.map +1 -1
  121. package/dist/lib/remote-ui/model.js +151 -15
  122. package/dist/lib/remote-ui/model.js.map +1 -1
  123. package/dist/lib/remote-ui/pages/analytics.d.ts +2 -0
  124. package/dist/lib/remote-ui/pages/analytics.d.ts.map +1 -1
  125. package/dist/lib/remote-ui/pages/analytics.js +11 -6
  126. package/dist/lib/remote-ui/pages/analytics.js.map +1 -1
  127. package/dist/lib/remote-ui/pages/catalogs.d.ts +37 -14
  128. package/dist/lib/remote-ui/pages/catalogs.d.ts.map +1 -1
  129. package/dist/lib/remote-ui/pages/catalogs.js +149 -91
  130. package/dist/lib/remote-ui/pages/catalogs.js.map +1 -1
  131. package/dist/lib/remote-ui/pages/contracts.d.ts +11 -6
  132. package/dist/lib/remote-ui/pages/contracts.d.ts.map +1 -1
  133. package/dist/lib/remote-ui/pages/contracts.js +45 -33
  134. package/dist/lib/remote-ui/pages/contracts.js.map +1 -1
  135. package/dist/lib/remote-ui/pages/files.d.ts +29 -3
  136. package/dist/lib/remote-ui/pages/files.d.ts.map +1 -1
  137. package/dist/lib/remote-ui/pages/files.js +60 -16
  138. package/dist/lib/remote-ui/pages/files.js.map +1 -1
  139. package/dist/lib/remote-ui/pages/home.d.ts.map +1 -1
  140. package/dist/lib/remote-ui/pages/home.js +18 -18
  141. package/dist/lib/remote-ui/pages/home.js.map +1 -1
  142. package/dist/lib/remote-ui/pages/procurement.d.ts +29 -4
  143. package/dist/lib/remote-ui/pages/procurement.d.ts.map +1 -1
  144. package/dist/lib/remote-ui/pages/procurement.js +58 -63
  145. package/dist/lib/remote-ui/pages/procurement.js.map +1 -1
  146. package/dist/lib/remote-ui/pages/sales.d.ts +47 -1
  147. package/dist/lib/remote-ui/pages/sales.d.ts.map +1 -1
  148. package/dist/lib/remote-ui/pages/sales.js +60 -20
  149. package/dist/lib/remote-ui/pages/sales.js.map +1 -1
  150. package/dist/lib/remote-ui/pages/settings.d.ts +34 -1
  151. package/dist/lib/remote-ui/pages/settings.d.ts.map +1 -1
  152. package/dist/lib/remote-ui/pages/settings.js +120 -94
  153. package/dist/lib/remote-ui/pages/settings.js.map +1 -1
  154. package/dist/lib/remote-ui/polling.d.ts +41 -0
  155. package/dist/lib/remote-ui/polling.d.ts.map +1 -0
  156. package/dist/lib/remote-ui/polling.js +148 -0
  157. package/dist/lib/remote-ui/polling.js.map +1 -0
  158. package/dist/lib/remote-ui/procurement-contracts.d.ts +4 -9
  159. package/dist/lib/remote-ui/procurement-contracts.d.ts.map +1 -1
  160. package/dist/lib/remote-ui/sales-contracts.d.ts +2 -2
  161. package/dist/lib/remote-ui/sales-contracts.d.ts.map +1 -1
  162. package/dist/lib/remote-ui/settings-contracts.d.ts +9 -1
  163. package/dist/lib/remote-ui/settings-contracts.d.ts.map +1 -1
  164. package/dist/lib/remote-ui/settings-contracts.js.map +1 -1
  165. package/dist/lib/remote-ui/toast-queue.d.ts +29 -0
  166. package/dist/lib/remote-ui/toast-queue.d.ts.map +1 -0
  167. package/dist/lib/remote-ui/toast-queue.js +71 -0
  168. package/dist/lib/remote-ui/toast-queue.js.map +1 -0
  169. package/dist/lib/sales-file.service.d.ts.map +1 -1
  170. package/dist/lib/sales-file.service.js +5 -5
  171. package/dist/lib/sales-file.service.js.map +1 -1
  172. package/dist/lib/types.d.ts +5 -0
  173. package/dist/lib/types.d.ts.map +1 -1
  174. package/dist/lib/types.js +3 -0
  175. package/dist/lib/types.js.map +1 -1
  176. package/dist/lib/workbench-action-contract.d.ts +4 -0
  177. package/dist/lib/workbench-action-contract.d.ts.map +1 -0
  178. package/dist/lib/workbench-action-contract.js +43 -0
  179. package/dist/lib/workbench-action-contract.js.map +1 -0
  180. package/dist/lib/workbench-view.provider.d.ts +57 -78
  181. package/dist/lib/workbench-view.provider.d.ts.map +1 -1
  182. package/dist/lib/workbench-view.provider.js +89 -91
  183. package/dist/lib/workbench-view.provider.js.map +1 -1
  184. package/dist/lib/workbench.middleware.d.ts +129 -72
  185. package/dist/lib/workbench.middleware.d.ts.map +1 -1
  186. package/dist/lib/workbench.middleware.js +16 -3
  187. package/dist/lib/workbench.middleware.js.map +1 -1
  188. package/dist/lib/workbench.plugin.d.ts +3 -1
  189. package/dist/lib/workbench.plugin.d.ts.map +1 -1
  190. package/dist/lib/workbench.plugin.js +13 -4
  191. package/dist/lib/workbench.plugin.js.map +1 -1
  192. package/dist/lib/workbench.service.d.ts +136 -40
  193. package/dist/lib/workbench.service.d.ts.map +1 -1
  194. package/dist/lib/workbench.service.js +985 -71
  195. package/dist/lib/workbench.service.js.map +1 -1
  196. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"file":"sales.js","sourceRoot":"","sources":["../../../../src/lib/remote-ui/pages/sales.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sales.js","sourceRoot":"","sources":["../../../../src/lib/remote-ui/pages/sales.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,21 @@
1
1
  import type { BankSettings, CompanySettings, MonthlyRateSettings, ProfitRuleSettings, SettingsData, SettingsDeleteRateRequest, SettingsHistoryOperationType, SettingsHistoryTransition, SettingsHistoryType, SettingsRestoreRequest, SettingsSaveRequest } from '../settings-contracts.js';
2
+ import type { Notify } from '../toast-queue.js';
3
+ import type { PaginationPageSize } from '../contracts.js';
4
+ import './settings.css';
2
5
  export type SettingsPageProps = {
3
6
  data: SettingsData;
4
7
  busy: boolean;
5
8
  onSave: (request: SettingsSaveRequest) => void | Promise<void>;
6
9
  onRestoreDefault: (request: SettingsRestoreRequest) => void | Promise<void>;
7
10
  onDeleteRate: (request: SettingsDeleteRateRequest) => void | Promise<void>;
11
+ onRateQuery?: (query: {
12
+ page: number;
13
+ pageSize: PaginationPageSize;
14
+ }) => void | Promise<void>;
8
15
  onUploadLogo: (file: File) => string | Promise<string>;
9
16
  onDiscardLogo: (logoFileId: string) => void | Promise<void>;
17
+ initialTab?: SettingsTab;
18
+ onNotify?: Notify;
10
19
  };
11
20
  export declare function createSettingsActionApi({ onSave, onRestoreDefault, onDeleteRate }: Pick<SettingsPageProps, 'onSave' | 'onRestoreDefault' | 'onDeleteRate'>): {
12
21
  saveCompany: (value: CompanySettings) => void | Promise<void>;
@@ -25,7 +34,31 @@ export declare function reconcileRevisionedSettings<T extends {
25
34
  revision: number;
26
35
  }>(local: T, incoming: T): T;
27
36
  export declare function completeRateDeletion(request: SettingsDeleteRateRequest, confirmed: boolean, onDelete: (request: SettingsDeleteRateRequest) => void | Promise<void>): Promise<void>;
28
- export declare function SettingsPage({ data, busy, onSave, onRestoreDefault, onDeleteRate, onUploadLogo, onDiscardLogo }: SettingsPageProps): import("react/jsx-runtime").JSX.Element;
37
+ export declare function closeAfterSuccessfulAction(action: () => boolean | Promise<boolean>, close: () => void): Promise<boolean>;
38
+ type SettingsTab = 'COMPANY' | 'BANK' | 'MONTHLY_RATE';
39
+ export declare function nextSettingsTab(active: SettingsTab, key: string): SettingsTab;
40
+ export declare function SettingsPage({ data, busy, onSave, onRestoreDefault, onDeleteRate, onRateQuery, onUploadLogo, onDiscardLogo, initialTab, onNotify }: SettingsPageProps): import("react/jsx-runtime").JSX.Element;
41
+ export declare function createMonthlyRateQueryScheduler(query: (request: {
42
+ page: number;
43
+ pageSize: PaginationPageSize;
44
+ }) => void | Promise<void>): {
45
+ page: (page: number, pageSize: PaginationPageSize) => void | Promise<void>;
46
+ pageSize: (pageSize: PaginationPageSize) => void | Promise<void>;
47
+ };
48
+ export declare function RateDialog({ value, busy, onClose, onSave }: {
49
+ value: MonthlyRateSettings;
50
+ busy: boolean;
51
+ onClose: () => void;
52
+ onSave: (value: MonthlyRateSettings) => Promise<boolean>;
53
+ }): import("react/jsx-runtime").JSX.Element;
54
+ export declare function RestoreDialog({ request, data, busy, onClose, onConfirm }: {
55
+ request: SettingsRestoreRequest;
56
+ data: SettingsData;
57
+ busy: boolean;
58
+ onClose: () => void;
59
+ onConfirm: () => void;
60
+ }): import("react/jsx-runtime").JSX.Element;
29
61
  export declare function validateBankSettings(value: BankSettings): string | null;
30
62
  export declare function validateMonthlyRate(value: Pick<MonthlyRateSettings, 'year' | 'month' | 'usdToCnyRate' | 'sourceType' | 'sourceReference'>): string | null;
63
+ export {};
31
64
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-ui/pages/settings.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,YAAY,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,mBAAmB,EAAmB,MAAM,0BAA0B,CAAA;AAI5T,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,gBAAgB,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3E,YAAY,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1E,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACtD,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5D,CAAA;AAED,wBAAgB,uBAAuB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,QAAQ,GAAG,kBAAkB,GAAG,cAAc,CAAC;yBAElI,eAAe;sBAClB,YAAY;wBACV,kBAAkB;uBACnB,mBAAmB;+BACX,MAAM;yBACZ,YAAY;8BACP,MAAM;wBACZ,mBAAmB;EAE1C;AAED,wBAAgB,8BAA8B,CAAC,CAAC,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,4BAA4B,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,yBAAyB,CAAC,CAAC,CAAC,CAK/M;AAED,wBAAgB,2BAA2B,CAAC,CAAC,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAEpG;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,iBAExK;AAWD,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,iBAAiB,2CA6BlI;AAwJD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAGvE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,YAAY,GAAG,iBAAiB,CAAC,GAAG,MAAM,GAAG,IAAI,CASzJ"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../../src/lib/remote-ui/pages/settings.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import React from 'react';
3
3
  import { DataGrid, InfoNotice, RiskNotice } from '../components/data-grid.js';
4
- import { ConfirmDialog, FieldGrid, FormField, Modal, Toast } from '../components/forms.js';
4
+ import { Modal } from '../components/forms.js';
5
+ import { runNotifiedOperation } from '../toast-queue.js';
6
+ import { createCompanyLogoLifecycle } from '../company-logo-lifecycle.js';
7
+ import { formatBeijingDateTime } from '../date-time.js';
8
+ import './settings.css';
5
9
  export function createSettingsActionApi({ onSave, onRestoreDefault, onDeleteRate }) {
6
10
  return {
7
11
  saveCompany: (value) => { const { revision, ...values } = value; return onSave({ settingsType: 'company', expectedRevision: revision, values }); },
@@ -27,98 +31,100 @@ export async function completeRateDeletion(request, confirmed, onDelete) {
27
31
  if (confirmed)
28
32
  await onDelete(request);
29
33
  }
30
- const sectionItems = [
31
- { key: 'COMPANY', label: '企业信息', icon: 'ri-building-line' },
32
- { key: 'BANK', label: '银行信息', icon: 'ri-bank-line', note: 'OVERSEAS_CNY · OVERSEAS_USD' },
33
- { key: 'PROFIT', label: '利润与换汇规则', icon: 'ri-funds-line', note: 'COMPLIANCE_V1 · 公式固定,不可编辑' },
34
- { key: 'MONTHLY_RATE', label: '月度美元汇率', icon: 'ri-exchange-dollar-line' }
34
+ export async function closeAfterSuccessfulAction(action, close) {
35
+ const succeeded = await action();
36
+ if (succeeded)
37
+ close();
38
+ return succeeded;
39
+ }
40
+ const tabs = [
41
+ { key: 'COMPANY', label: '公司信息' }, { key: 'BANK', label: '银行信息' }, { key: 'MONTHLY_RATE', label: '月度汇率' }
35
42
  ];
36
- export function SettingsPage({ data, busy, onSave, onRestoreDefault, onDeleteRate, onUploadLogo, onDiscardLogo }) {
37
- const [active, setActive] = React.useState('BANK');
43
+ export function nextSettingsTab(active, key) {
44
+ if (key !== 'ArrowLeft' && key !== 'ArrowRight')
45
+ return active;
46
+ const index = tabs.findIndex(tab => tab.key === active);
47
+ return tabs[(index + (key === 'ArrowRight' ? 1 : tabs.length - 1)) % tabs.length].key;
48
+ }
49
+ function tabSlug(tab) { return tab.toLowerCase().replace('_', '-'); }
50
+ export function SettingsPage({ data, busy, onSave, onRestoreDefault, onDeleteRate, onRateQuery, onUploadLogo, onDiscardLogo, initialTab = 'COMPANY', onNotify }) {
51
+ const [active, setActive] = React.useState(initialTab);
38
52
  const [restore, setRestore] = React.useState(null);
39
- const [feedback, setFeedback] = React.useState(null);
53
+ const [editingBank, setEditingBank] = React.useState(null);
54
+ const tabRefs = React.useRef({});
40
55
  const run = async (operation, successMessage) => {
41
- try {
42
- await operation();
43
- setFeedback({ message: successMessage, tone: 'success' });
44
- }
45
- catch (error) {
46
- setFeedback({ message: error instanceof Error ? `保存失败:${error.message}` : '保存失败,请稍后重试', tone: 'error' });
47
- }
56
+ return runNotifiedOperation(operation, onNotify, { success: successMessage, error: '设置操作失败,请稍后重试' });
48
57
  };
49
58
  const confirmRestore = async () => {
50
59
  if (!restore)
51
60
  return;
52
- await run(() => onRestoreDefault(restore), '已恢复系统默认配置');
53
- setRestore(null);
61
+ const api = createSettingsActionApi({ onSave, onRestoreDefault, onDeleteRate });
62
+ const operation = restore.settingsType === 'company' ? () => api.restoreCompany(restore.expectedRevision)
63
+ : restore.settingsType === 'bank' ? () => api.restoreBank(bankOf(data, restore.bankType))
64
+ : () => api.restoreProfit(restore.expectedRevision);
65
+ await closeAfterSuccessfulAction(() => run(operation, '已恢复系统默认配置'), () => setRestore(null));
54
66
  };
55
- return _jsxs("section", { className: "tcw-settings-page", "data-settings-page": "typed", children: [_jsx("aside", { className: "tcw-settings-navigation", "aria-label": "\u8BBE\u7F6E\u5206\u533A", children: sectionItems.map(item => _jsxs("button", { type: "button", className: active === item.key ? 'is-active' : '', "aria-current": active === item.key ? 'page' : undefined, onClick: () => setActive(item.key), children: [_jsx("i", { className: item.icon, "aria-hidden": "true" }), _jsxs("span", { children: [item.label, item.note && _jsx("small", { children: item.note })] })] }, item.key)) }), _jsxs("div", { className: "tcw-settings-content", children: [active === 'COMPANY' && _jsx(CompanySection, { value: data.company, busy: busy, onSave: async (values) => { try {
56
- await onSave({ settingsType: 'company', expectedRevision: data.company.revision, values });
57
- setFeedback({ message: '企业信息保存成功', tone: 'success' });
58
- return true;
59
- }
60
- catch (error) {
61
- setFeedback({ message: error instanceof Error ? `保存失败:${error.message}` : '保存失败,请稍后重试', tone: 'error' });
62
- return false;
63
- } }, onUploadLogo: onUploadLogo, onDiscardLogo: onDiscardLogo, onRestore: () => setRestore({ settingsType: 'company', expectedRevision: data.company.revision }) }), active === 'BANK' && _jsx(BankOverviewSection, { data: data, busy: busy, onEdit: bankType => setActive(bankEditSection(bankType)), onRestore: bankType => { const bank = bankOf(data, bankType); setRestore({ settingsType: 'bank', bankType, expectedRevision: bank.revision }); } }), active === 'BANK_CNY' && _jsx(BankSection, { bankType: "OVERSEAS_CNY", value: bankOf(data, 'OVERSEAS_CNY'), busy: busy, onSave: values => run(() => onSave({ settingsType: 'bank', expectedRevision: bankOf(data, 'OVERSEAS_CNY').revision, values }), '人民币收款银行保存成功'), onRestore: () => setRestore({ settingsType: 'bank', bankType: 'OVERSEAS_CNY', expectedRevision: bankOf(data, 'OVERSEAS_CNY').revision }), onBack: () => setActive('BANK') }), active === 'BANK_USD' && _jsx(BankSection, { bankType: "OVERSEAS_USD", value: bankOf(data, 'OVERSEAS_USD'), busy: busy, onSave: values => run(() => onSave({ settingsType: 'bank', expectedRevision: bankOf(data, 'OVERSEAS_USD').revision, values }), '美元收款银行保存成功'), onRestore: () => setRestore({ settingsType: 'bank', bankType: 'OVERSEAS_USD', expectedRevision: bankOf(data, 'OVERSEAS_USD').revision }), onBack: () => setActive('BANK') }), active === 'PROFIT' && _jsx(ProfitSection, { value: data.profit, busy: busy, onSave: values => run(() => onSave({ settingsType: 'profit', expectedRevision: data.profit.revision, values }), '利润与换汇规则保存成功'), onRestore: () => setRestore({ settingsType: 'profit', expectedRevision: data.profit.revision }) }), active === 'MONTHLY_RATE' && _jsx(MonthlyRateSection, { rates: data.rates, busy: busy, onSave: values => run(() => onSave({ settingsType: 'rate', expectedRevision: values.revision ?? 0, values }), '月度美元汇率保存成功'), onDelete: request => run(() => onDeleteRate(request), '月度美元汇率删除成功') })] }), _jsx(ConfirmDialog, { open: Boolean(restore), title: "\u6062\u590D\u7CFB\u7EDF\u9ED8\u8BA4", message: "\u5F53\u524D\u81EA\u5B9A\u4E49\u5185\u5BB9\u5C06\u88AB\u7CFB\u7EDF\u9ED8\u8BA4\u503C\u8986\u76D6\uFF0C\u539F\u914D\u7F6E\u4ECD\u4F1A\u4FDD\u7559\u5728\u8BBE\u7F6E\u5386\u53F2\u4E2D\u3002", confirmText: "\u786E\u8BA4\u6062\u590D\u9ED8\u8BA4", onCancel: () => setRestore(null), onConfirm: () => void confirmRestore() }), feedback && _jsx(Toast, { message: feedback.message, tone: feedback.tone, onClose: () => setFeedback(null) })] });
64
- }
65
- function CompanySection({ value, busy, onSave, onUploadLogo, onDiscardLogo, onRestore }) {
67
+ const selectTabFromKey = (event, tab) => {
68
+ const next = nextSettingsTab(tab, event.key);
69
+ if (next === tab)
70
+ return;
71
+ event.preventDefault();
72
+ setActive(next);
73
+ tabRefs.current[next]?.focus();
74
+ };
75
+ const activeSlug = tabSlug(active);
76
+ return _jsxs("section", { className: "tcw-settings-page", "data-settings-page": "typed", children: [active === 'COMPANY' && _jsx(InfoNotice, { children: "\u516C\u53F8\u914D\u7F6E\u5141\u8BB8\u4FDD\u5B58\u4E0D\u5B8C\u6574\u5185\u5BB9\uFF0C\u751F\u6210\u6587\u4EF6\u65F6\u4F18\u5148\u5199\u5165\u975E\u7A7A\u914D\u7F6E\uFF0C\u7F3A\u5931\u5B57\u6BB5\u4FDD\u7559\u6A21\u677F\u9ED8\u8BA4\u503C\u3002" }), _jsx("div", { className: "tcw-settings-tabs", role: "tablist", "aria-label": "\u7CFB\u7EDF\u8BBE\u7F6E", children: tabs.map(tab => { const slug = tabSlug(tab.key); return _jsxs("button", { ref: node => { tabRefs.current[tab.key] = node; }, id: `settings-tab-${slug}`, type: "button", role: "tab", "aria-selected": active === tab.key, "aria-controls": `settings-panel-${slug}`, tabIndex: active === tab.key ? 0 : -1, className: active === tab.key ? 'is-active' : '', onClick: () => setActive(tab.key), onKeyDown: event => selectTabFromKey(event, tab.key), children: [_jsx("i", { className: tab.key === 'COMPANY' ? 'ri-building-line' : tab.key === 'BANK' ? 'ri-bank-line' : 'ri-exchange-dollar-line', "aria-hidden": "true" }), tab.label] }, tab.key); }) }), _jsxs("div", { className: "tcw-settings-content", id: `settings-panel-${activeSlug}`, role: "tabpanel", "aria-labelledby": `settings-tab-${activeSlug}`, tabIndex: 0, children: [active === 'COMPANY' && _jsx(CompanySection, { value: data.company, busy: busy, onSave: values => run(() => onSave({ settingsType: 'company', expectedRevision: data.company.revision, values }), '企业信息保存成功'), onUploadLogo: onUploadLogo, onDiscardLogo: onDiscardLogo, onNotify: onNotify, onRestore: () => setRestore({ settingsType: 'company', expectedRevision: data.company.revision }) }), active === 'BANK' && _jsx(BankOverviewSection, { data: data, busy: busy, onEdit: setEditingBank, onRestore: bankType => { const bank = bankOf(data, bankType); setRestore({ settingsType: 'bank', bankType, expectedRevision: bank.revision }); } }), active === 'MONTHLY_RATE' && _jsx(MonthlyRateSection, { profit: data.profit, rates: data.rates, busy: busy, onQuery: onRateQuery ?? (() => undefined), onSaveProfit: value => run(() => createSettingsActionApi({ onSave, onRestoreDefault, onDeleteRate }).saveProfit(value), '利润与换汇规则保存成功'), onRestoreProfit: () => setRestore({ settingsType: 'profit', expectedRevision: data.profit.revision }), onSave: values => run(() => onSave({ settingsType: 'rate', expectedRevision: values.revision ?? 0, values }), '月度美元汇率保存成功'), onDelete: request => run(() => onDeleteRate(request), '月度美元汇率删除成功') })] }), editingBank && _jsx(BankDialog, { bankType: editingBank, value: bankOf(data, editingBank), busy: busy, onClose: () => setEditingBank(null), onSave: values => run(() => onSave({ settingsType: 'bank', expectedRevision: bankOf(data, editingBank).revision, values }), `${editingBank === 'OVERSEAS_CNY' ? '人民币' : '美元'}收款银行保存成功`) }), restore && _jsx(RestoreDialog, { request: restore, data: data, busy: busy, onClose: () => setRestore(null), onConfirm: () => void confirmRestore() })] });
77
+ }
78
+ function CompanySection({ value, busy, onSave, onUploadLogo, onDiscardLogo, onRestore, onNotify }) {
66
79
  const [form, setForm] = React.useState(value);
67
- const [uploadError, setUploadError] = React.useState(null);
68
- const draftLogoRef = React.useRef(null);
69
80
  const revisionRef = React.useRef(value.revision);
81
+ const callbacksRef = React.useRef({ onUploadLogo, onDiscardLogo, onNotify });
82
+ callbacksRef.current = { onUploadLogo, onDiscardLogo, onNotify };
83
+ const lifecycleRef = React.useRef(null);
84
+ if (!lifecycleRef.current) {
85
+ lifecycleRef.current = createCompanyLogoLifecycle({
86
+ upload: file => callbacksRef.current.onUploadLogo(file),
87
+ discard: logoFileId => {
88
+ void Promise.resolve(callbacksRef.current.onDiscardLogo(logoFileId)).catch(error => callbacksRef.current.onNotify?.({ message: error instanceof Error ? error.message : '公司 Logo 清理失败', tone: 'error' }));
89
+ },
90
+ apply: logoFileId => setForm(current => ({ ...current, logoFileId })),
91
+ notify: toast => callbacksRef.current.onNotify?.(toast)
92
+ });
93
+ }
70
94
  React.useEffect(() => {
71
95
  if (revisionRef.current !== value.revision) {
72
96
  revisionRef.current = value.revision;
73
- const draft = draftLogoRef.current;
74
- draftLogoRef.current = null;
75
- if (draft)
76
- void Promise.resolve(onDiscardLogo(draft)).catch(() => undefined);
97
+ lifecycleRef.current?.discardDraft();
77
98
  }
78
99
  setForm(current => reconcileRevisionedSettings(current, value));
79
- }, [value, onDiscardLogo]);
80
- React.useEffect(() => () => { if (draftLogoRef.current)
81
- void Promise.resolve(onDiscardLogo(draftLogoRef.current)).catch(() => undefined); }, [onDiscardLogo]);
82
- const uploadLogo = async (file) => {
83
- setUploadError(null);
84
- try {
85
- const logoFileId = await onUploadLogo(file);
86
- const previous = draftLogoRef.current;
87
- draftLogoRef.current = logoFileId;
88
- if (previous && previous !== logoFileId)
89
- void Promise.resolve(onDiscardLogo(previous)).catch(() => undefined);
90
- setForm(current => ({ ...current, logoFileId }));
91
- }
92
- catch (error) {
93
- setUploadError(error instanceof Error ? error.message : '公司 Logo 上传失败');
94
- }
95
- };
100
+ }, [value]);
101
+ React.useEffect(() => () => lifecycleRef.current?.dispose(), []);
102
+ const uploadLogo = (file) => lifecycleRef.current?.upload(file);
96
103
  const save = async () => {
97
- const draft = draftLogoRef.current;
98
104
  const { revision: _, ...values } = form;
99
- if (await onSave(values) && draftLogoRef.current === draft)
100
- draftLogoRef.current = null;
105
+ if (await onSave(values))
106
+ lifecycleRef.current?.markSaved(form.logoFileId ?? null);
101
107
  };
102
108
  const field = (key) => ({ value: String(form[key] ?? ''), onChange: (event) => setForm(current => ({ ...current, [key]: event.target.value || null })) });
103
- return _jsxs(SettingsPanel, { title: "\u4F01\u4E1A\u4FE1\u606F", revision: value.revision, actions: _jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: "tcw-button tcw-button--primary", disabled: busy, onClick: () => void save(), children: [_jsx("i", { className: "ri-save-line", "aria-hidden": "true" }), "\u4FDD\u5B58"] }), _jsx(RestoreButton, { busy: busy, onClick: onRestore })] }), children: [_jsx(InfoNotice, { children: "\u4F01\u4E1A\u914D\u7F6E\u5141\u8BB8\u4FDD\u7559\u7A7A\u503C\uFF1B\u751F\u6210\u6587\u4EF6\u65F6\u7F3A\u5931\u5B57\u6BB5\u4FDD\u7559\u6A21\u677F\u9ED8\u8BA4\u503C\u3002" }), _jsxs(FieldGrid, { columns: 2, children: [_jsxs(FormField, { label: "\u516C\u53F8 Logo", full: true, hint: form.logoFileId ? `已上传:${form.logoFileId}` : '支持 PNG、JPG/JPEG,最大 2 MB', children: [_jsx("input", { type: "file", accept: "image/png,image/jpeg", disabled: busy, onChange: event => { const file = event.target.files?.[0]; event.currentTarget.value = ''; if (file)
104
- void uploadLogo(file); } }), uploadError && _jsx("small", { className: "tcw-field-error", children: uploadError })] }), _jsx(FormField, { label: "\u516C\u53F8\u4E2D\u6587\u540D\u79F0", children: _jsx("input", { ...field('companyNameZh') }) }), _jsx(FormField, { label: "\u516C\u53F8\u82F1\u6587\u540D\u79F0", children: _jsx("input", { ...field('companyNameEn') }) }), _jsx(FormField, { label: "\u7EDF\u4E00\u793E\u4F1A\u4FE1\u7528\u4EE3\u7801", children: _jsx("input", { ...field('unifiedSocialCreditCode') }) }), _jsx(FormField, { label: "\u7535\u8BDD", children: _jsx("input", { ...field('phone') }) }), _jsx(FormField, { label: "\u4E2D\u6587\u5730\u5740", full: true, children: _jsx("textarea", { ...field('addressZh') }) }), _jsx(FormField, { label: "\u82F1\u6587\u5730\u5740", full: true, children: _jsx("textarea", { ...field('addressEn') }) }), _jsx(FormField, { label: "\u90AE\u7BB1", children: _jsx("input", { type: "email", ...field('email') }) })] })] });
109
+ return _jsxs("div", { className: "tcw-settings-company-form", children: [_jsxs("div", { className: "tcw-settings-card tcw-settings-company-card", children: [_jsx(SettingsRow, { label: "\u516C\u53F8 Logo", children: _jsxs("label", { className: "tcw-settings-upload", children: [_jsx("input", { type: "file", accept: "image/png,image/jpeg", disabled: busy, onChange: event => { const file = event.target.files?.[0]; event.currentTarget.value = ''; if (file)
110
+ void uploadLogo(file); } }), _jsx("i", { className: "ri-upload-cloud-2-line", "aria-hidden": "true" }), _jsxs("span", { children: ["\u70B9\u51FB\u4E0A\u4F20\u6216\u62D6\u62FD\u6587\u4EF6\u5230\u6B64\u5904", _jsx("small", { children: form.logoFileId ? `已上传:${form.logoFileId}` : '支持 JPG、PNG 格式,建议尺寸 200×200px 以内' })] })] }) }), _jsx(SettingsRow, { label: "\u516C\u53F8\u4E2D\u6587\u540D\u79F0", children: _jsx("input", { ...field('companyNameZh') }) }), _jsx(SettingsRow, { label: "\u516C\u53F8\u82F1\u6587\u540D\u79F0", children: _jsx("input", { ...field('companyNameEn') }) }), _jsx(SettingsRow, { label: "\u7EDF\u4E00\u793E\u4F1A\u4FE1\u7528\u4EE3\u7801", children: _jsx("input", { ...field('unifiedSocialCreditCode') }) }), _jsx(SettingsRow, { label: "\u4E2D\u6587\u5730\u5740", children: _jsx("textarea", { maxLength: 200, placeholder: "\u8BF7\u586B\u5199\u4E2D\u6587\u5730\u5740\uFF08\u9009\u586B\uFF09", ...field('addressZh') }) }), _jsx(SettingsRow, { label: "\u82F1\u6587\u5730\u5740", children: _jsx("textarea", { maxLength: 300, ...field('addressEn') }) }), _jsx(SettingsRow, { label: "\u7535\u8BDD", children: _jsx("input", { ...field('phone') }) }), _jsx(SettingsRow, { label: "\u90AE\u7BB1", children: _jsx("input", { type: "email", ...field('email') }) }), _jsx(SettingsRow, { label: "\u4FEE\u8BA2\u53F7", hint: true, children: _jsx("input", { value: value.revision, readOnly: true }) }), _jsx(SettingsRow, { label: "\u6700\u540E\u4FEE\u6539\u65F6\u95F4", children: _jsx("input", { value: "\u2014", readOnly: true }) })] }), _jsxs("div", { className: "tcw-settings-form-actions", children: [_jsxs("button", { type: "button", className: "tcw-button tcw-button--primary", disabled: busy, onClick: () => void save(), children: [_jsx("i", { className: "ri-save-line", "aria-hidden": "true" }), "\u4FDD\u5B58"] }), _jsx(RestoreButton, { busy: busy, onClick: onRestore })] })] });
105
111
  }
106
112
  function BankOverviewSection({ data, busy, onEdit, onRestore }) {
107
- return _jsx(SettingsPanel, { title: "\u94F6\u884C\u4FE1\u606F", actions: null, children: bankTypes.map(bankType => {
108
- const bank = bankOf(data, bankType);
109
- return _jsxs("section", { className: "tcw-settings-panel", "aria-labelledby": `bank-overview-${bankType}`, children: [_jsxs("header", { children: [_jsxs("div", { children: [_jsx("h2", { id: `bank-overview-${bankType}`, children: bankTitle(bankType) }), _jsx("span", { className: "tcw-tag", children: bankType }), _jsxs("small", { children: ["\u4FEE\u8BA2\u53F7 ", bank.revision] })] }), _jsxs("div", { className: "tcw-page-commands", children: [_jsxs("button", { type: "button", className: "tcw-button tcw-button--primary", disabled: busy, onClick: () => onEdit(bankType), children: [_jsx("i", { className: "ri-edit-line", "aria-hidden": "true" }), "\u7F16\u8F91"] }), _jsx(RestoreButton, { busy: busy, onClick: () => onRestore(bankType) })] })] }), _jsx(FieldGrid, { columns: 2, children: bankFields.map(item => _jsx(FormField, { label: item.label, full: item.key === 'bankAddress', children: _jsx("input", { value: bank[item.key], readOnly: true }) }, item.key)) })] }, bankType);
110
- }) });
113
+ return _jsxs("div", { className: "tcw-settings-bank-list", children: [bankTypes.map(bankType => {
114
+ const bank = bankOf(data, bankType);
115
+ return _jsxs("section", { className: "tcw-settings-card tcw-settings-bank-card", "aria-labelledby": `bank-overview-${bankType}`, children: [_jsxs("header", { children: [_jsxs("h2", { id: `bank-overview-${bankType}`, children: [bankTitle(bankType), " ", _jsxs("span", { children: ["/ ", bankType] })] }), _jsxs("div", { children: [_jsxs("button", { type: "button", className: "tcw-button tcw-button--outline", disabled: busy, onClick: () => onEdit(bankType), children: [_jsx("i", { className: "ri-edit-line", "aria-hidden": "true" }), "\u7F16\u8F91"] }), _jsx(RestoreButton, { busy: busy, onClick: () => onRestore(bankType) })] })] }), _jsxs("div", { className: "tcw-settings-bank-grid", children: [_jsx(BankValue, { label: "Beneficiary", value: bank.beneficiary }), _jsx(BankValue, { label: "CNAPS Code", value: bank.cnapsCode }), _jsx(BankValue, { label: "Bank Name", value: bank.bankName }), _jsx(BankValue, { label: "Account No.", value: bank.accountNo }), _jsx(BankValue, { label: "Bank Address", value: bank.bankAddress, multiline: true }), _jsx(BankValue, { label: "Swift Code", value: bank.swiftCode }), _jsx(BankValue, { label: "\u4FEE\u8BA2\u53F7", value: String(bank.revision) }), _jsx(BankValue, { label: "\u6700\u540E\u4FEE\u6539\u65F6\u95F4", value: "\u2014" })] })] }, bankType);
116
+ }), _jsx(InfoNotice, { children: "\u7CFB\u7EDF\u4EC5\u7EF4\u62A4\u4EE5\u4E0A\u4E24\u7C7B\u56FA\u5B9A\u6536\u6B3E\u94F6\u884C\u4FE1\u606F\uFF08\u4EBA\u6C11\u5E01\u3001\u7F8E\u5143\uFF09\uFF0C\u4E0D\u652F\u6301\u65B0\u589E\u6216\u7EF4\u62A4\u591A\u6761\u8BB0\u5F55\u3002\u751F\u6210\u7684\u6587\u4EF6\u5C06\u4FDD\u5B58\u5F53\u524D\u94F6\u884C\u4FE1\u606F\u5FEB\u7167\uFF0C\u8BF7\u5728\u4FEE\u6539\u540E\u91CD\u65B0\u751F\u6210\u4EE5\u786E\u4FDD\u6587\u4EF6\u4FE1\u606F\u51C6\u786E\u3002" })] });
111
117
  }
112
- function BankSection({ bankType, value, busy, onSave, onRestore, onBack }) {
118
+ function BankDialog({ bankType, value, busy, onSave, onClose }) {
113
119
  const [form, setForm] = React.useState(value);
114
120
  const [error, setError] = React.useState(null);
115
121
  React.useEffect(() => setForm(current => reconcileRevisionedSettings(current, value)), [value]);
116
122
  const update = (key, next) => setForm(current => ({ ...current, [key]: next }));
117
- const save = () => { const message = validateBankSettings(form); setError(message); if (!message) {
123
+ const save = async () => { const message = validateBankSettings(form); setError(message); if (!message) {
118
124
  const { revision: _, ...values } = form;
119
- onSave(values);
125
+ await closeAfterSuccessfulAction(() => onSave(values), onClose);
120
126
  } };
121
- return _jsxs(SettingsPanel, { title: bankTitle(bankType), revision: value.revision, badge: bankType, actions: _jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: "tcw-button tcw-button--secondary", onClick: onBack, children: [_jsx("i", { className: "ri-arrow-left-line", "aria-hidden": "true" }), "\u8FD4\u56DE\u94F6\u884C\u603B\u89C8"] }), _jsxs("button", { type: "button", className: "tcw-button tcw-button--primary", disabled: busy, onClick: save, children: [_jsx("i", { className: "ri-save-line", "aria-hidden": "true" }), "\u4FDD\u5B58"] }), _jsx(RestoreButton, { busy: busy, onClick: onRestore })] }), children: [error && _jsx(RiskNotice, { children: error }), _jsx(FieldGrid, { columns: 2, children: bankFields.map(item => _jsx(FormField, { label: item.label, required: true, full: item.key === 'bankAddress', children: _jsx("input", { value: form[item.key], onChange: event => update(item.key, event.target.value) }) }, item.key)) })] });
127
+ return _jsx(Modal, { open: true, title: "\u7F16\u8F91\u94F6\u884C\u4FE1\u606F", onClose: onClose, footer: _jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: "tcw-button tcw-button--secondary", onClick: onClose, children: [_jsx("i", { className: "ri-close-line", "aria-hidden": "true" }), "\u53D6\u6D88"] }), _jsxs("button", { type: "button", className: "tcw-button tcw-button--primary", disabled: busy, onClick: save, children: [_jsx("i", { className: "ri-save-line", "aria-hidden": "true" }), "\u4FDD\u5B58"] })] }), children: _jsxs("div", { className: "tcw-settings-bank-dialog", children: [_jsxs("p", { children: [bankTitle(bankType), " ", _jsxs("b", { children: ["/ ", bankType] })] }), error && _jsx(RiskNotice, { children: error }), bankFields.map(item => _jsx(SettingsRow, { label: item.label.split('(')[0], required: true, children: item.key === 'bankAddress' ? _jsx("textarea", { value: form[item.key], onChange: event => update(item.key, event.target.value) }) : _jsx("input", { value: form[item.key], onChange: event => update(item.key, event.target.value) }) }, item.key)), _jsx(SettingsRow, { label: "\u4FEE\u8BA2\u53F7", hint: true, children: _jsx("input", { value: value.revision, readOnly: true }) }), _jsx(InfoNotice, { children: "\u4FDD\u5B58\u540E\u5C06\u66F4\u65B0\u5F53\u524D\u94F6\u884C\u914D\u7F6E\u4FE1\u606F\uFF0C\u5E76\u81EA\u52A8\u5C06\u4FEE\u8BA2\u53F7\u52A0 1\u3002\u7CFB\u7EDF\u4E2D\u5DF2\u751F\u6210\u7684\u5386\u53F2\u6587\u4EF6\u5C06\u4E0D\u53D7\u6B64\u53D8\u66F4\u5F71\u54CD\u3002" })] }) });
122
128
  }
123
129
  const bankFields = [
124
130
  { key: 'beneficiary', label: 'Beneficiary(收款人)' }, { key: 'bankName', label: 'Bank Name(银行名称)' }, { key: 'bankAddress', label: 'Bank Address(银行地址)' },
@@ -131,50 +137,70 @@ function bankTitle(bankType) {
131
137
  case 'OVERSEAS_USD': return '国外收款银行(美元)';
132
138
  }
133
139
  }
134
- function bankEditSection(bankType) {
135
- switch (bankType) {
136
- case 'OVERSEAS_CNY': return 'BANK_CNY';
137
- case 'OVERSEAS_USD': return 'BANK_USD';
138
- }
139
- }
140
- function ProfitSection({ value, busy, onSave, onRestore }) {
141
- const [form, setForm] = React.useState(value);
142
- const [error, setError] = React.useState(null);
143
- React.useEffect(() => setForm(current => reconcileRevisionedSettings(current, value)), [value]);
144
- const save = () => { const message = validateProfitRule(form); setError(message); if (!message)
145
- onSave(form); };
146
- return _jsxs(SettingsPanel, { title: "\u5229\u6DA6\u4E0E\u6362\u6C47\u89C4\u5219", revision: value.revision, actions: _jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: "tcw-button tcw-button--primary", disabled: busy, onClick: save, children: [_jsx("i", { className: "ri-save-line", "aria-hidden": "true" }), "\u4FDD\u5B58"] }), _jsx(RestoreButton, { busy: busy, onClick: onRestore })] }), children: [_jsx(InfoNotice, { children: "\u5408\u89C4\u5229\u6DA6\u516C\u5F0F\u56FA\u5B9A\uFF0C\u4E0D\u53EF\u7F16\u8F91\uFF1B\u6708\u5EA6\u7F8E\u5143\u6C47\u7387\u4EC5\u7528\u4E8E\u6362\u6C47\u6210\u672C\uFF0C\u4E0D\u7528\u4E8E\u4E1A\u52A1\u91D1\u989D\u5E01\u79CD\u8F6C\u6362\u3002" }), error && _jsx(RiskNotice, { children: error }), _jsxs(FieldGrid, { columns: 2, children: [_jsx(FormField, { label: "\u914D\u7F6E\u72B6\u6001", required: true, children: _jsxs("select", { value: form.status, onChange: event => setForm(current => ({ ...current, status: event.target.value })), children: [_jsx("option", { value: "ACTIVE", children: "ACTIVE" }), _jsx("option", { value: "UNCONFIGURED", children: "UNCONFIGURED" })] }) }), _jsx(FormField, { label: "\u56FA\u5B9A\u516C\u5F0F\u7248\u672C", children: _jsx("input", { value: form.ruleVersion, readOnly: true }) }), _jsx(FormField, { label: "\u6700\u4F4E\u6574\u5355\u5229\u6DA6\u7387", required: true, hint: "\u5C0F\u6570 0.05 \u8868\u793A 5%", children: _jsx("input", { type: "number", min: "0", step: "0.0001", value: form.minimumOrderProfitRate, onChange: event => setForm(current => ({ ...current, minimumOrderProfitRate: event.target.value })) }) }), _jsx(FormField, { label: "\u6362\u6C47\u6210\u672C\u4E0B\u9650", required: true, children: _jsx("input", { type: "number", step: "0.01", value: form.exchangeCostMinimum, onChange: event => setForm(current => ({ ...current, exchangeCostMinimum: event.target.value })) }) }), _jsx(FormField, { label: "\u6362\u6C47\u6210\u672C\u4E0A\u9650", required: true, children: _jsx("input", { type: "number", step: "0.01", value: form.exchangeCostMaximum, onChange: event => setForm(current => ({ ...current, exchangeCostMaximum: event.target.value })) }) })] })] });
140
+ export function createMonthlyRateQueryScheduler(query) {
141
+ return {
142
+ page: (page, pageSize) => query({ page, pageSize }),
143
+ pageSize: (pageSize) => query({ page: 1, pageSize })
144
+ };
147
145
  }
148
- function MonthlyRateSection({ rates, busy, onSave, onDelete }) {
146
+ function MonthlyRateSection({ profit, rates, busy, onQuery, onSaveProfit, onRestoreProfit, onSave, onDelete }) {
149
147
  const [editing, setEditing] = React.useState(null);
148
+ const [editingProfit, setEditingProfit] = React.useState(false);
150
149
  const [deleting, setDeleting] = React.useState(null);
151
- const completeDelete = (confirmed) => {
150
+ const scheduler = React.useMemo(() => createMonthlyRateQueryScheduler(onQuery), [onQuery]);
151
+ const completeDelete = async (confirmed) => {
152
152
  if (!deleting)
153
153
  return;
154
- const request = deleting;
155
- setDeleting(null);
156
- void completeRateDeletion(request, confirmed, onDelete);
154
+ const request = { settingsType: 'rate', id: deleting.id ?? '', expectedRevision: deleting.revision ?? 0 };
155
+ if (!confirmed) {
156
+ setDeleting(null);
157
+ return;
158
+ }
159
+ await closeAfterSuccessfulAction(() => onDelete(request), () => setDeleting(null));
157
160
  };
158
161
  const columns = [
159
- { type: 'text', key: 'year', header: '年份', width: 100 }, { type: 'text', key: 'month', header: '月份', width: 90 },
160
- { type: 'text', key: 'currencyCode', header: '币种', width: 90 }, { type: 'text', key: 'usdToCnyRate', header: '美元兑人民币汇率', width: 180 },
161
- { type: 'ellipsis', key: 'sourceReference', header: '来源', width: 220, maxWidth: 220 }, { type: 'text', key: 'revision', header: '修订号', width: 100 }
162
+ { type: 'text', key: 'year', header: '年份', width: 90, truncate: false },
163
+ { type: 'text', key: 'month', header: '月份', width: 90, truncate: false, format: value => `${String(value).padStart(2, '0')}月` },
164
+ { type: 'text', key: 'currencyCode', header: '币种代码', width: 100, truncate: false, format: value => String(value ?? 'USD') },
165
+ { type: 'text', key: 'usdToCnyRate', header: '美元兑人民币汇率', width: 170, align: 'right', truncate: false },
166
+ { type: 'text', key: 'sourceReference', header: '来源说明', width: 220, maxWidth: 220 },
167
+ { type: 'text', key: 'revision', header: '修订号', width: 90, align: 'right', truncate: false, format: value => String(value ?? 0) },
168
+ { type: 'text', key: 'updatedAt', header: '最后修改时间', width: 180, truncate: false, accessor: () => null }
162
169
  ];
163
- return _jsxs(SettingsPanel, { title: "\u6708\u5EA6\u7F8E\u5143\u6C47\u7387", actions: _jsxs("button", { type: "button", className: "tcw-button tcw-button--primary", disabled: busy, onClick: () => setEditing(defaultRate()), children: [_jsx("i", { className: "ri-add-line", "aria-hidden": "true" }), "\u65B0\u589E\u6708\u5EA6\u6C47\u7387"] }), children: [_jsx(InfoNotice, { children: "\u6BCF\u4E2A\u81EA\u7136\u6708\u4E00\u6761 USD \u4EBA\u5DE5\u6C47\u7387\uFF0C\u65B9\u5411\u56FA\u5B9A\u4E3A 1 \u7F8E\u5143\u5151\u6362\u4EBA\u6C11\u5E01\u3002" }), _jsx(DataGrid, { columns: columns, rows: rates, rowKey: row => row.id ?? `${row.year}-${row.month}`, emptyText: "\u6682\u65E0\u6708\u5EA6\u6C47\u7387", actionWidth: 120, actions: row => _jsxs(_Fragment, { children: [_jsxs("button", { type: "button", onClick: () => setEditing(row), children: [_jsx("i", { className: "ri-edit-line", "aria-hidden": "true" }), "\u7F16\u8F91"] }), row.id && _jsxs("button", { type: "button", className: "is-danger", onClick: () => setDeleting({ settingsType: 'rate', id: row.id, expectedRevision: row.revision ?? 0 }), children: [_jsx("i", { className: "ri-delete-bin-line", "aria-hidden": "true" }), "\u5220\u9664"] })] }) }), editing && _jsx(RateDialog, { value: editing, busy: busy, onClose: () => setEditing(null), onSave: value => { onSave(value); setEditing(null); } }), _jsx(ConfirmDialog, { open: Boolean(deleting), title: "\u5220\u9664\u6708\u5EA6\u6C47\u7387", message: "\u5220\u9664\u540E\uFF0C\u8BE5\u6708\u6C47\u7387\u5C06\u4E0D\u518D\u7528\u4E8E\u6362\u6C47\u6210\u672C\u8BA1\u7B97\u3002\u786E\u8BA4\u5220\u9664\u8FD9\u6761\u6708\u5EA6\u6C47\u7387\u5417\uFF1F", confirmText: "\u786E\u8BA4\u5220\u9664", danger: true, confirmDisabled: busy, onCancel: () => completeDelete(false), onConfirm: () => completeDelete(true) })] });
170
+ return _jsxs("div", { className: "tcw-settings-rate-page", children: [_jsxs("section", { className: "tcw-settings-card tcw-settings-profit-snapshot", children: [_jsxs("header", { children: [_jsx("h2", { children: "\u6708\u5EA6\u5916\u6C47\u7BA1\u7406\u5C40\u9996\u65E5\u6C47\u7387 - \u89C4\u5219\u5FEB\u7167\uFF08\u5F53\u524D\u751F\u6548\uFF09" }), _jsxs("div", { children: [_jsxs("button", { type: "button", className: "tcw-button tcw-button--outline", disabled: busy, onClick: () => setEditingProfit(true), children: [_jsx("i", { className: "ri-edit-line", "aria-hidden": "true" }), "\u7F16\u8F91\u89C4\u5219"] }), _jsxs("button", { type: "button", className: "tcw-button tcw-button--secondary", disabled: busy, onClick: onRestoreProfit, children: [_jsx("i", { className: "ri-restart-line", "aria-hidden": "true" }), "\u6062\u590D\u89C4\u5219\u9ED8\u8BA4"] })] })] }), _jsxs("div", { children: [_jsx(Metric, { label: "\u6700\u4F4E\u6574\u5355\u5408\u89C4\u5229\u6DA6\u7387", value: `${Number(profit.minimumOrderProfitRate) * 100}%` }), _jsx(Metric, { label: "\u6362\u6C47\u6210\u672C\u4E0B\u9650", value: profit.exchangeCostMinimum }), _jsx(Metric, { label: "\u6362\u6C47\u6210\u672C\u4E0A\u9650", value: profit.exchangeCostMaximum }), _jsx(Metric, { label: "\u72B6\u6001", value: profit.status, status: true }), _jsx(Metric, { label: "\u4FEE\u8BA2\u53F7", value: String(profit.revision) })] })] }), _jsxs("section", { className: "tcw-settings-card tcw-settings-rate-card", children: [_jsxs("header", { children: [_jsx("h2", { children: "\u6708\u5EA6\u5916\u6C47\u7BA1\u7406\u5C40\u9996\u65E5\u6C47\u7387" }), _jsxs("button", { type: "button", className: "tcw-button tcw-button--primary", disabled: busy, onClick: () => setEditing(defaultRate()), children: [_jsx("i", { className: "ri-add-line", "aria-hidden": "true" }), "\u65B0\u589E\u6708\u5EA6\u6C47\u7387"] })] }), _jsx(DataGrid, { columns: columns, rows: rates.items, rowKey: row => row.id ?? `${row.year}-${row.month}`, actionWidth: 140, actions: row => _jsxs(_Fragment, { children: [_jsxs("button", { type: "button", onClick: () => setEditing(row), children: [_jsx("i", { className: "ri-edit-line", "aria-hidden": "true" }), "\u7F16\u8F91"] }), row.id && _jsxs("button", { type: "button", className: "is-danger", onClick: () => setDeleting(row), children: [_jsx("i", { className: "ri-delete-bin-line", "aria-hidden": "true" }), "\u5220\u9664"] })] }), pagination: rates, onPageChange: page => void scheduler.page(page, rates.pageSize), onPageSizeChange: pageSize => void scheduler.pageSize(pageSize), emptyText: "\u6682\u65E0\u6708\u5EA6\u6C47\u7387" }), _jsxs(InfoNotice, { children: [_jsx("b", { children: "\u8BF4\u660E" }), _jsx("br", {}), "\u3000\u00B7 \u6BCF\u4E2A\u7EC4\u7EC7 + \u81EA\u7136\u6708 + \u5E01\u79CD\uFF0C\u53EA\u5141\u8BB8\u5B58\u5728\u4E00\u6761\u6709\u6548\u8BB0\u5F55\u3002", _jsx("br", {}), "\u3000\u00B7 \u5E01\u79CD\u56FA\u5B9A\u4E3A USD\u3002", _jsx("br", {}), "\u3000\u00B7 \u6C47\u7387\u542B\u4E49\u4E3A\uFF1A1 \u7F8E\u5143\u5151\u6362\u591A\u5C11\u4EBA\u6C11\u5E01\u3002", _jsx("br", {}), "\u3000\u00B7 \u82E5\u672A\u7EF4\u62A4\u5FC5\u586B\u6708\u4EFD\u7684\u6C47\u7387\uFF0C\u53EF\u80FD\u5BFC\u81F4\u542B\u53EF\u9000\u7A0E\u5546\u54C1\u7684\u8BA2\u5355\u65E0\u6CD5\u751F\u6210\u6587\u4EF6\u3002"] })] }), editing && _jsx(RateDialog, { value: editing, busy: busy, onClose: () => setEditing(null), onSave: onSave }), editingProfit && _jsx(ProfitDialog, { value: profit, busy: busy, onClose: () => setEditingProfit(false), onSave: onSaveProfit }), deleting && _jsx(RateDeleteDialog, { value: deleting, busy: busy, onCancel: () => void completeDelete(false), onConfirm: () => void completeDelete(true) })] });
164
171
  }
165
- function RateDialog({ value, busy, onClose, onSave }) {
172
+ export function RateDialog({ value, busy, onClose, onSave }) {
166
173
  const [form, setForm] = React.useState(value);
167
174
  const [error, setError] = React.useState(null);
168
- const save = () => { const message = validateMonthlyRate(form); setError(message); if (!message)
169
- onSave({ ...form, sourceType: 'MANUAL', currencyCode: 'USD' }); };
170
- return _jsxs(Modal, { open: true, title: form.id ? '编辑月度汇率' : '新增月度汇率', onClose: onClose, footer: _jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: "tcw-button tcw-button--secondary", onClick: onClose, children: [_jsx("i", { className: "ri-close-line", "aria-hidden": "true" }), "\u53D6\u6D88"] }), _jsxs("button", { type: "button", className: "tcw-button tcw-button--primary", disabled: busy, onClick: save, children: [_jsx("i", { className: "ri-save-line", "aria-hidden": "true" }), "\u4FDD\u5B58"] })] }), children: [error && _jsx(RiskNotice, { children: error }), _jsxs(FieldGrid, { columns: 2, children: [_jsx(FormField, { label: "\u5E74\u4EFD", required: true, children: _jsx("input", { type: "number", min: "2000", max: "9999", value: form.year, onChange: event => setForm(current => ({ ...current, year: Number(event.target.value) })) }) }), _jsx(FormField, { label: "\u6708\u4EFD", required: true, children: _jsx("input", { type: "number", min: "1", max: "12", value: form.month, onChange: event => setForm(current => ({ ...current, month: Number(event.target.value) })) }) }), _jsx(FormField, { label: "\u5E01\u79CD", children: _jsx("input", { value: "USD", readOnly: true }) }), _jsx(FormField, { label: "\u6765\u6E90", children: _jsx("input", { value: "\u4EBA\u5DE5\u6C47\u7387", readOnly: true }) }), _jsx(FormField, { label: "\u7F8E\u5143\u5151\u4EBA\u6C11\u5E01\u6C47\u7387", required: true, children: _jsx("input", { type: "number", min: "0", step: "0.00000001", value: form.usdToCnyRate, onChange: event => setForm(current => ({ ...current, usdToCnyRate: event.target.value })) }) }), _jsx(FormField, { label: "\u6765\u6E90\u8BF4\u660E", required: true, children: _jsx("input", { value: form.sourceReference, onChange: event => setForm(current => ({ ...current, sourceReference: event.target.value })) }) })] })] });
175
+ const save = async () => { const message = validateMonthlyRate(form); setError(message); if (!message)
176
+ await closeAfterSuccessfulAction(() => onSave({ ...form, sourceType: 'MANUAL', currencyCode: 'USD' }), onClose); };
177
+ return _jsx(Modal, { open: true, title: form.id ? '编辑月度汇率' : '新增月度汇率', onClose: onClose, footer: _jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: "tcw-button tcw-button--secondary", onClick: onClose, children: [_jsx("i", { className: "ri-close-line", "aria-hidden": "true" }), "\u53D6\u6D88"] }), _jsxs("button", { type: "button", className: "tcw-button tcw-button--primary", disabled: busy, onClick: save, children: [_jsx("i", { className: "ri-save-line", "aria-hidden": "true" }), "\u4FDD\u5B58"] })] }), children: _jsxs("div", { className: "tcw-settings-rate-dialog", children: [_jsx(InfoNotice, { children: "\u540C\u4E00\u81EA\u7136\u6708\u53EA\u5141\u8BB8\u4E00\u6761\u8BB0\u5F55\u3002" }), error && _jsx(RiskNotice, { children: error }), _jsx(SettingsRow, { label: "\u5E74\u4EFD", required: true, children: _jsx("input", { type: "number", min: "2000", max: "9999", step: "1", value: form.year, onChange: event => setForm(current => ({ ...current, year: Number(event.target.value) })) }) }), _jsx(SettingsRow, { label: "\u6708\u4EFD", required: true, children: _jsx("select", { value: form.month, onChange: event => setForm(current => ({ ...current, month: Number(event.target.value) })), children: Array.from({ length: 12 }, (_, index) => _jsx("option", { value: index + 1, children: String(index + 1).padStart(2, '0') }, index + 1)) }) }), _jsx(SettingsRow, { label: "\u5E01\u79CD\u4EE3\u7801", required: true, children: _jsx("input", { value: "USD", readOnly: true }) }), _jsx(SettingsRow, { label: "\u7F8E\u5143\u5151\u4EBA\u6C11\u5E01\u6C47\u7387", required: true, children: _jsx("input", { type: "number", min: "0", step: "0.00000001", value: form.usdToCnyRate, onChange: event => setForm(current => ({ ...current, usdToCnyRate: event.target.value })) }) }), _jsx(SettingsRow, { label: "\u6765\u6E90\u8BF4\u660E", required: true, children: _jsx("input", { value: form.sourceReference, onChange: event => setForm(current => ({ ...current, sourceReference: event.target.value })) }) }), _jsx(SettingsRow, { label: "\u4FEE\u8BA2\u53F7", hint: true, children: _jsx("input", { value: form.id ? form.revision ?? 0 : 'R00', readOnly: true }) }), _jsx(SettingsRow, { label: "\u751F\u6548\u8303\u56F4", children: _jsx("input", { value: `${form.year}-${String(form.month).padStart(2, '0')}-01 ~ ${form.year}-${String(form.month).padStart(2, '0')}-${new Date(form.year, form.month, 0).getDate()}`, readOnly: true }) })] }) });
178
+ }
179
+ function ProfitDialog({ value, busy, onClose, onSave }) {
180
+ const [form, setForm] = React.useState(value);
181
+ const [error, setError] = React.useState(null);
182
+ React.useEffect(() => setForm(current => reconcileRevisionedSettings(current, value)), [value]);
183
+ const save = async () => {
184
+ const message = validateProfitRule(form);
185
+ setError(message);
186
+ if (!message)
187
+ await closeAfterSuccessfulAction(() => onSave(form), onClose);
188
+ };
189
+ return _jsx(Modal, { open: true, title: "\u7F16\u8F91\u5229\u6DA6\u4E0E\u6362\u6C47\u89C4\u5219", onClose: onClose, footer: _jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: "tcw-button tcw-button--secondary", onClick: onClose, children: [_jsx("i", { className: "ri-close-line", "aria-hidden": "true" }), "\u53D6\u6D88"] }), _jsxs("button", { type: "button", className: "tcw-button tcw-button--primary", disabled: busy, onClick: save, children: [_jsx("i", { className: "ri-save-line", "aria-hidden": "true" }), "\u4FDD\u5B58\u89C4\u5219"] })] }), children: _jsxs("div", { className: "tcw-settings-profit-dialog", children: [error && _jsx(RiskNotice, { children: error }), _jsx(SettingsRow, { label: "\u914D\u7F6E\u72B6\u6001", required: true, children: _jsxs("select", { value: form.status, onChange: event => setForm(current => ({ ...current, status: event.target.value })), children: [_jsx("option", { value: "ACTIVE", children: "ACTIVE" }), _jsx("option", { value: "UNCONFIGURED", children: "UNCONFIGURED" })] }) }), _jsx(SettingsRow, { label: "\u56FA\u5B9A\u516C\u5F0F\u7248\u672C", children: _jsx("input", { value: form.ruleVersion, readOnly: true }) }), _jsx(SettingsRow, { label: "\u6700\u4F4E\u6574\u5355\u5229\u6DA6\u7387", required: true, children: _jsx("input", { type: "number", min: "0", step: "0.0001", value: form.minimumOrderProfitRate, onChange: event => setForm(current => ({ ...current, minimumOrderProfitRate: event.target.value })) }) }), _jsx(SettingsRow, { label: "\u6362\u6C47\u6210\u672C\u4E0B\u9650", required: true, children: _jsx("input", { type: "number", step: "0.01", value: form.exchangeCostMinimum, onChange: event => setForm(current => ({ ...current, exchangeCostMinimum: event.target.value })) }) }), _jsx(SettingsRow, { label: "\u6362\u6C47\u6210\u672C\u4E0A\u9650", required: true, children: _jsx("input", { type: "number", step: "0.01", value: form.exchangeCostMaximum, onChange: event => setForm(current => ({ ...current, exchangeCostMaximum: event.target.value })) }) }), _jsx(SettingsRow, { label: "\u4FEE\u8BA2\u53F7", hint: true, children: _jsx("input", { value: form.revision, readOnly: true }) }), _jsx(InfoNotice, { children: "\u6700\u4F4E\u6574\u5355\u5229\u6DA6\u7387\u4F7F\u7528\u5C0F\u6570\u8868\u793A\uFF0C\u4F8B\u5982 0.05 \u8868\u793A 5%\u3002\u4FDD\u5B58\u540E\u4FEE\u8BA2\u53F7\u81EA\u52A8\u589E\u52A0\u3002" })] }) });
190
+ }
191
+ export function RestoreDialog({ request, data, busy, onClose, onConfirm }) {
192
+ const bank = request.settingsType === 'bank' ? bankOf(data, request.bankType) : null;
193
+ return _jsx(Modal, { open: true, title: bank ? '确认恢复银行默认信息?' : '确认恢复系统默认配置?', onClose: onClose, footer: _jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: "tcw-button tcw-button--secondary", onClick: onClose, children: [_jsx("i", { className: "ri-close-line", "aria-hidden": "true" }), "\u53D6\u6D88"] }), _jsxs("button", { type: "button", className: "tcw-button tcw-button--primary", disabled: busy, onClick: onConfirm, children: [_jsx("i", { className: "ri-restart-line", "aria-hidden": "true" }), "\u786E\u8BA4\u6062\u590D\u9ED8\u8BA4"] })] }), children: _jsxs("div", { className: "tcw-settings-restore-dialog", children: [_jsxs(RiskNotice, { children: ["\u6B64\u64CD\u4F5C\u5C06\u8986\u76D6\u5F53\u524D\u81EA\u5B9A\u4E49\u7684\u914D\u7F6E\u4FE1\u606F\uFF0C\u6062\u590D\u4E3A\u7CFB\u7EDF\u9ED8\u8BA4\u914D\u7F6E\u3002", _jsx("br", {}), "\u539F\u6709\u914D\u7F6E\u5C06\u4FDD\u5B58\u5728\u5386\u53F2\u8BB0\u5F55\u4E2D\uFF0C\u60A8\u53EF\u4EE5\u968F\u65F6\u67E5\u770B\u3002"] }), bank ? _jsxs(_Fragment, { children: [_jsx("p", { children: "\u5C06\u6062\u590D\u4EE5\u4E0B\u76EE\u6807\u7684\u9ED8\u8BA4\u4FE1\u606F\uFF1A" }), _jsxs("h3", { children: [_jsx("i", { className: "ri-bank-line", "aria-hidden": "true" }), bankTitle(bank.bankType), "\u3000/ ", bank.bankType] }), _jsx("h4", { children: "\u7CFB\u7EDF\u5185\u7F6E\u9ED8\u8BA4" }), _jsx("p", { className: "tcw-settings-default-note", children: "\u9ED8\u8BA4\u94F6\u884C\u5B57\u6BB5\u7531\u670D\u52A1\u7AEF\u5185\u7F6E\u914D\u7F6E\u63D0\u4F9B\uFF0C\u5C06\u5728\u786E\u8BA4\u540E\u6574\u4F53\u6062\u590D\u3002\u5F53\u524D\u63A5\u53E3\u672A\u8FD4\u56DE\u9ED8\u8BA4\u503C\u9884\u89C8\uFF0C\u56E0\u6B64\u6B64\u5904\u4E0D\u5C55\u793A\u53EF\u80FD\u8FC7\u671F\u6216\u4E0D\u51C6\u786E\u7684\u4FE1\u606F\u3002" }), _jsxs("small", { children: [_jsx("i", { className: "ri-information-line", "aria-hidden": "true" }), "\u6062\u590D\u540E\uFF0C\u94F6\u884C\u4FE1\u606F\u7684\u6240\u6709\u5B57\u6BB5\u5C06\u91CD\u7F6E\u4E3A\u7CFB\u7EDF\u9ED8\u8BA4\u503C\u3002"] })] }) : _jsx("p", { children: "\u5F53\u524D\u81EA\u5B9A\u4E49\u5185\u5BB9\u5C06\u88AB\u7CFB\u7EDF\u9ED8\u8BA4\u503C\u8986\u76D6\uFF0C\u539F\u914D\u7F6E\u4ECD\u4F1A\u4FDD\u7559\u5728\u8BBE\u7F6E\u5386\u53F2\u4E2D\u3002" })] }) });
171
194
  }
172
- function SettingsPanel({ title, revision, badge, actions, children }) {
173
- return _jsxs("section", { className: "tcw-settings-panel", children: [_jsxs("header", { children: [_jsxs("div", { children: [_jsx("h2", { children: title }), badge && _jsx("span", { className: "tcw-tag", children: badge }), revision != null && _jsxs("small", { children: ["\u4FEE\u8BA2\u53F7 ", revision] })] }), _jsx("div", { className: "tcw-page-commands", children: actions })] }), children] });
195
+ function RateDeleteDialog({ value, busy, onCancel, onConfirm }) {
196
+ return _jsx(Modal, { open: true, title: "\u786E\u8BA4\u5220\u9664\u6708\u5EA6\u6C47\u7387\uFF1F", onClose: onCancel, footer: _jsxs(_Fragment, { children: [_jsxs("button", { type: "button", className: "tcw-button tcw-button--secondary", onClick: onCancel, children: [_jsx("i", { className: "ri-close-line", "aria-hidden": "true" }), "\u53D6\u6D88"] }), _jsxs("button", { type: "button", className: "tcw-button tcw-button--danger", disabled: busy, onClick: onConfirm, children: [_jsx("i", { className: "ri-delete-bin-line", "aria-hidden": "true" }), "\u786E\u8BA4\u5220\u9664"] })] }), children: _jsxs("div", { className: "tcw-settings-delete-dialog", children: [_jsxs("p", { children: ["\u5220\u9664\u540E\uFF0C\u8BE5\u6708\u5EA6\u6C47\u7387\u5C06\u8FDB\u884C\u903B\u8F91\u5220\u9664\uFF0C\u540E\u7AEF\u8BB0\u5F55\u5C06\u6C38\u4E45\u4FDD\u7559\uFF0C\u4E0D\u53EF\u6062\u590D\u3002", _jsx("br", {}), "\u5DF2\u751F\u6210\u7684\u5386\u53F2\u6587\u4EF6\u6216\u8BB0\u5F55\u4E0D\u53D7\u5F71\u54CD\u3002"] }), _jsx("p", { children: "\u5F85\u5220\u9664\u7684\u6708\u5EA6\u6C47\u7387\u4FE1\u606F\u5982\u4E0B\uFF1A" }), _jsxs("dl", { children: [_jsxs("div", { children: [_jsx("dt", { children: "\u5E74\u4EFD" }), _jsx("dd", { children: value.year })] }), _jsxs("div", { children: [_jsx("dt", { children: "\u6708\u4EFD" }), _jsx("dd", { children: String(value.month).padStart(2, '0') })] }), _jsxs("div", { children: [_jsx("dt", { children: "\u5E01\u79CD" }), _jsx("dd", { children: value.currencyCode ?? 'USD' })] }), _jsxs("div", { children: [_jsx("dt", { children: "\u7F8E\u5143\u5151\u4EBA\u6C11\u5E01\u6C47\u7387" }), _jsx("dd", { children: value.usdToCnyRate })] }), _jsxs("div", { children: [_jsx("dt", { children: "\u6765\u6E90\u8BF4\u660E" }), _jsx("dd", { children: value.sourceReference })] }), _jsxs("div", { children: [_jsx("dt", { children: "\u4FEE\u8BA2\u53F7" }), _jsx("dd", { children: value.revision ?? 0 })] })] })] }) });
174
197
  }
198
+ function SettingsRow({ label, required, hint, children }) { return _jsxs("label", { className: "tcw-settings-row", children: [_jsxs("span", { children: [required && _jsx("b", { children: "*" }), label, hint && _jsx("i", { className: "ri-information-line", "aria-hidden": "true" })] }), _jsx("div", { children: children })] }); }
199
+ function BankValue({ label, value, multiline }) { return _jsxs("label", { className: `tcw-settings-bank-value${multiline ? ' is-multiline' : ''}`, children: [_jsx("span", { children: label }), multiline ? _jsx("textarea", { value: value, readOnly: true }) : _jsx("input", { value: value, readOnly: true })] }); }
200
+ function Metric({ label, value, status }) { return _jsxs("div", { children: [_jsx("span", { children: label }), _jsx("strong", { className: status ? 'is-status' : '', children: value })] }); }
175
201
  function RestoreButton({ busy, onClick }) { return _jsxs("button", { type: "button", className: "tcw-button tcw-button--secondary", disabled: busy, onClick: onClick, children: [_jsx("i", { className: "ri-restart-line", "aria-hidden": "true" }), "\u6062\u590D\u7CFB\u7EDF\u9ED8\u8BA4"] }); }
176
202
  function bankOf(data, bankType) { return data.banks.find(item => item.bankType === bankType) ?? { bankType, beneficiary: '', bankName: '', bankAddress: '', cnapsCode: '', accountNo: '', swiftCode: '', revision: 0 }; }
177
- function defaultRate() { const now = new Date(); return { year: now.getFullYear(), month: now.getMonth() + 1, currencyCode: 'USD', usdToCnyRate: '', sourceType: 'MANUAL', sourceReference: '人工汇率' }; }
203
+ function defaultRate() { const [date] = formatBeijingDateTime(new Date()).split(' '); const [year, month] = date.split('-').map(Number); return { year, month, currencyCode: 'USD', usdToCnyRate: '', sourceType: 'MANUAL', sourceReference: '人工汇率' }; }
178
204
  export function validateBankSettings(value) {
179
205
  for (const field of bankFields)
180
206
  if (!value[field.key].trim())