@chenchaolong/plugin-trade-compliance-workbench 0.1.4 → 0.1.5

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.
@@ -8,10 +8,6 @@
8
8
 
9
9
  injectStyles()
10
10
 
11
- function isObject(value) {
12
- return value && typeof value === 'object' && !Array.isArray(value)
13
- }
14
-
15
11
  function post(type, body, transfer) {
16
12
  if (!instanceId && type !== 'ready') return
17
13
  parent.postMessage(Object.assign({ channel: CHANNEL, protocolVersion: VERSION, instanceId, type }, body || {}), '*', transfer || [])
@@ -31,20 +27,13 @@
31
27
  }
32
28
 
33
29
  function reportResize() {
34
- const height = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, 720)
35
- post('resize', { height })
30
+ post('resize', { height: Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, 720) })
36
31
  }
37
32
 
38
33
  async function toFilePayload(file) {
39
34
  const buffer = await file.arrayBuffer()
40
35
  return {
41
- payload: {
42
- name: file.name,
43
- type: file.type,
44
- size: file.size,
45
- lastModified: file.lastModified,
46
- buffer
47
- },
36
+ payload: { name: file.name, type: file.type, size: file.size, lastModified: file.lastModified, buffer },
48
37
  transfer: [buffer]
49
38
  }
50
39
  }
@@ -66,14 +55,9 @@
66
55
  const commands = collectAssistantCommands(payload)
67
56
  let dispatched = 0
68
57
  for (const command of commands) {
69
- const response = await request('invokeClientCommand', {
70
- commandKey: command.commandKey,
71
- payload: command.payload
72
- })
58
+ const response = await request('invokeClientCommand', { commandKey: command.commandKey, payload: command.payload })
73
59
  const result = getResponsePayload(response)
74
- if (result && result.success === false) {
75
- throw new Error(resolveMessage(result.message) || '智能体消息发送失败')
76
- }
60
+ if (result && result.success === false) throw new Error(resolveMessage(result.message) || '智能体消息发送失败')
77
61
  dispatched += 1
78
62
  }
79
63
  return dispatched
@@ -82,11 +66,12 @@
82
66
  function App() {
83
67
  const [context, setContext] = React.useState(null)
84
68
  const [data, setData] = React.useState(normalizeData(null))
85
- const [activePage, setActivePage] = React.useState('controlled-goods-page')
69
+ const [activePage, setActivePage] = React.useState('overview-page')
86
70
  const [selectedReviewId, setSelectedReviewId] = React.useState(null)
87
71
  const [busy, setBusy] = React.useState(false)
88
72
  const [notice, setNotice] = React.useState('')
89
73
  const [query, setQuery] = React.useState('')
74
+ const [showManualForm, setShowManualForm] = React.useState(false)
90
75
  const [form, setForm] = React.useState({ productName: '', hsCode: '', keywords: '', controlNote: '', enabled: true })
91
76
 
92
77
  React.useEffect(() => {
@@ -103,21 +88,27 @@
103
88
  }
104
89
  }, [])
105
90
 
106
- React.useEffect(reportResize, [data, activePage, selectedReviewId, busy, notice])
91
+ React.useEffect(reportResize, [data, activePage, selectedReviewId, busy, notice, showManualForm])
107
92
 
108
93
  const reviewItems = data.reviewItems
109
94
  const pendingItems = reviewItems.filter((item) => (item.reviewStatus || 'pending') === 'pending')
110
- const selectedReview = reviewItems.find((item) => item.id === selectedReviewId) || pendingItems[0] || reviewItems[0] || null
95
+ const controlledReviews = filterItems(reviewItems.filter((item) => item.type === 'controlled_goods'), query, reviewSearchKeys)
96
+ const pendingControlledReviews = controlledReviews.filter((item) => (item.reviewStatus || 'pending') === 'pending')
97
+ const supplierReviews = filterItems(reviewItems.filter((item) => item.type === 'supplier_product'), query, reviewSearchKeys)
98
+ const pendingSupplierReviews = supplierReviews.filter((item) => (item.reviewStatus || 'pending') === 'pending')
99
+ const salesReviews = filterItems(reviewItems.filter((item) => item.type === 'customs_workbook'), query, reviewSearchKeys)
100
+ const pendingSalesReviews = salesReviews.filter((item) => (item.reviewStatus || 'pending') === 'pending')
111
101
  const filteredControlledGoods = filterItems(data.controlledGoods, query, ['productName', 'hsCode', 'controlNote'])
112
102
  const filteredProducts = filterItems(data.products, query, ['supplierName', 'productName', 'model', 'enrichedHsCode', 'englishName'])
113
103
  const filteredWorkbooks = filterItems(data.workbookGenerations, query, ['fileName', 'invoiceNo', 'contractNo', 'sourceFileName'])
104
+ const selectedReview = reviewItems.find((item) => item.id === selectedReviewId) || null
114
105
 
115
106
  async function reload(nextContext) {
116
107
  const activeContext = nextContext || context
117
108
  if (!activeContext) return
118
109
  setBusy(true)
119
110
  try {
120
- const response = await request('requestData', { query: { page: 1, pageSize: 100, search: query, parameters: {} } })
111
+ const response = await request('requestData', { query: { page: 1, pageSize: 200, search: query, parameters: {} } })
121
112
  setData(normalizeData(getResponsePayload(response)))
122
113
  } catch (error) {
123
114
  showNotice('刷新失败:' + getErrorMessage(error), 'error')
@@ -133,7 +124,7 @@
133
124
  const response = await executeFileAction(actionKey, file, { name: file.name, fileName: file.name }, {})
134
125
  assertActionSuccess(response)
135
126
  const dispatched = await dispatchAssistantCommands(getActionDataPayload(response))
136
- showNotice(dispatched ? '文件已发送给智能体解析,识别结果会进入待审核列表。' : '文件已提交,识别结果会进入待审核列表。', 'success')
127
+ showNotice(dispatched ? '文件已发送给智能体解析,识别结果会进入待审核列表。' : '文件已登记,等待识别结果。', 'success')
137
128
  await reload()
138
129
  } catch (error) {
139
130
  showNotice(getErrorMessage(error), 'error')
@@ -156,6 +147,7 @@
156
147
  }, {})
157
148
  assertActionSuccess(response)
158
149
  setForm({ productName: '', hsCode: '', keywords: '', controlNote: '', enabled: true })
150
+ setShowManualForm(false)
159
151
  showNotice('管控商品已保存。', 'success')
160
152
  await reload()
161
153
  } catch (error) {
@@ -172,7 +164,7 @@
172
164
  const confirmedData = Object.assign({}, item.defaultData || {}, item.extractedData || {}, item.confirmedData || {})
173
165
  const response = await executeAction('confirm_review_item', item.id, { itemId: item.id, confirmedData }, {})
174
166
  assertActionSuccess(response)
175
- showNotice('审核项已确认。', 'success')
167
+ showNotice('审核项已确认并写入业务列表。', 'success')
176
168
  await reload()
177
169
  } catch (error) {
178
170
  showNotice(getErrorMessage(error), 'error')
@@ -183,10 +175,10 @@
183
175
 
184
176
  async function generateWorkbook() {
185
177
  if (busy) return
186
- const salesItem = reviewItems.find((item) => item.type === 'customs_workbook')
178
+ const salesItem = salesReviews.find((item) => item.reviewStatus === 'confirmed') || salesReviews[0]
187
179
  setBusy(true)
188
180
  try {
189
- const base = Object.assign({}, salesItem && salesItem.defaultData, salesItem && salesItem.extractedData, salesItem && salesItem.confirmedData)
181
+ const base = readMerged(salesItem || {})
190
182
  const invoiceNo = base.invoiceNo || ('INV-' + new Date().toISOString().slice(0, 10).replace(/-/g, ''))
191
183
  const response = await executeAction('generate_customs_workbook', null, {
192
184
  invoiceNo,
@@ -208,89 +200,115 @@
208
200
  function showNotice(message, level) {
209
201
  setNotice((level === 'error' ? '错误:' : '') + message)
210
202
  notify(level || 'info', message)
211
- setTimeout(() => setNotice(''), 4000)
203
+ setTimeout(() => setNotice(''), 4500)
212
204
  }
213
205
 
214
206
  return h('div', { className: 'tcw-shell' },
215
207
  h('header', { className: 'tcw-header' },
216
208
  h('div', { className: 'tcw-title-block' },
217
209
  h('span', { className: 'tcw-kicker' }, '外贸合规工作台'),
218
- h('h1', null, 'Trade Compliance Workbench'),
219
- h('p', null, '管控商品维护、供应商商品审核、销售发票生成')
210
+ h('h1', null, pageTitle(activePage)),
211
+ h('p', null, pageSubtitle(activePage))
220
212
  ),
221
213
  h('div', { className: 'tcw-header-actions' },
222
- h('input', {
223
- className: 'tcw-search',
224
- value: query,
225
- placeholder: '搜索商品、供应商、海关编码',
226
- onChange: (event) => setQuery(event.target.value)
227
- }),
214
+ h('input', { className: 'tcw-search', value: query, placeholder: '搜索商品、供应商、海关编码、文件名', onChange: (event) => setQuery(event.target.value) }),
228
215
  h('button', { className: 'tcw-btn tcw-btn-soft', disabled: busy, onClick: () => reload() }, busy ? '处理中' : '刷新')
229
216
  )
230
217
  ),
231
218
  notice ? h('div', { className: 'tcw-notice' }, notice) : null,
232
- h('section', { className: 'tcw-metrics' },
233
- metric('待审核', pendingItems.length),
234
- metric('管控商品', data.controlledGoods.length),
235
- metric('供应商商品', data.products.length),
236
- metric('发票历史', data.workbookGenerations.length)
237
- ),
238
219
  h('nav', { className: 'tcw-tabs' }, [
239
- tab('controlled-goods-page', '管控商品管理'),
240
- tab('products-page', '商品管理'),
241
- tab('workbooks-page', '生成销售发票')
220
+ tab('overview-page', '工作台总览'),
221
+ tab('controlled-goods-page', '管控商品'),
222
+ tab('products-page', '供应商商品'),
223
+ tab('workbooks-page', '销售发票')
242
224
  ]),
243
- h('main', { className: 'tcw-main' },
225
+ h('main', { className: selectedReview ? 'tcw-main with-drawer' : 'tcw-main' },
244
226
  h('section', { className: 'tcw-content' },
227
+ activePage === 'overview-page' ? renderOverviewPage() : null,
245
228
  activePage === 'controlled-goods-page' ? renderControlledGoodsPage() : null,
246
229
  activePage === 'products-page' ? renderProductsPage() : null,
247
230
  activePage === 'workbooks-page' ? renderWorkbooksPage() : null
248
231
  ),
249
- renderReviewDrawer(selectedReview)
232
+ selectedReview ? renderReviewDrawer(selectedReview) : null
250
233
  )
251
234
  )
252
235
 
253
236
  function tab(key, label) {
254
- return h('button', {
255
- key,
256
- className: key === activePage ? 'tcw-tab active' : 'tcw-tab',
257
- onClick: () => setActivePage(key)
258
- }, label)
237
+ return h('button', { key, className: key === activePage ? 'tcw-tab active' : 'tcw-tab', onClick: () => setActivePage(key) }, label)
238
+ }
239
+
240
+ function renderOverviewPage() {
241
+ return h('div', { className: 'tcw-page overview-page' },
242
+ h('section', { className: 'tcw-metrics' },
243
+ metric('待审核', pendingItems.length),
244
+ metric('管控识别待审', pendingControlledReviews.length),
245
+ metric('供应商商品待审', pendingSupplierReviews.length),
246
+ metric('销售合同待审', pendingSalesReviews.length),
247
+ metric('已入库管控商品', data.controlledGoods.length),
248
+ metric('已入库供应商商品', data.products.length),
249
+ metric('销售发票历史', data.workbookGenerations.length),
250
+ metric('全部审核记录', reviewItems.length)
251
+ ),
252
+ panel('最近待审核', pendingItems.slice(0, 12).length
253
+ ? compactReviewList(pendingItems.slice(0, 12))
254
+ : empty('暂无待审核记录。智能体识别结果会先出现在这里。'))
255
+ )
259
256
  }
260
257
 
261
258
  function renderControlledGoodsPage() {
262
259
  return h('div', { className: 'tcw-page controlled-goods-page' },
263
- h('div', { className: 'tcw-page-head' },
264
- h('div', null, h('h2', null, '管控商品管理'), h('p', null, '上传目录文件识别管控商品,也可以人工维护规则。')),
265
- uploadButton('upload_controlled_goods_file', '上传管控商品文件', 'accept-pdf-doc-xls')
266
- ),
267
- h('form', { className: 'tcw-form', onSubmit: saveControlledGoods },
268
- field('商品名称', h('input', { value: form.productName, onChange: updateForm('productName'), placeholder: '例如:高性能服务器' })),
269
- field('海关编码', h('input', { value: form.hsCode, onChange: updateForm('hsCode'), placeholder: '例如:8471501010' })),
270
- field('关键词', h('input', { value: form.keywords, onChange: updateForm('keywords'), placeholder: '逗号或空格分隔' })),
271
- field('管控说明', h('input', { value: form.controlNote, onChange: updateForm('controlNote'), placeholder: '许可证、两用物项、禁限说明' })),
272
- h('label', { className: 'tcw-check' }, h('input', { type: 'checkbox', checked: form.enabled, onChange: (event) => setForm(Object.assign({}, form, { enabled: event.target.checked })) }), '启用'),
273
- h('button', { className: 'tcw-btn tcw-btn-primary', disabled: busy || !form.productName.trim(), type: 'submit' }, '保存')
274
- ),
275
- table(['商品名称', '海关编码', '关键词', '状态', '管控说明'], filteredControlledGoods, (item) => [
276
- value(item.productName),
277
- value(item.hsCode),
278
- Array.isArray(item.keywords) ? item.keywords.join('、') : '-',
279
- status(item.enabled === false ? '停用' : '启用', item.enabled === false ? 'muted' : 'ok'),
280
- value(item.controlNote)
281
- ], '暂无管控商品,先上传目录或手动新增。')
260
+ pageToolbar('管控商品', '智能体识别结果先进入待审核,确认后写入正式管控商品库。', [
261
+ uploadButton('upload_controlled_goods_file', '上传管控商品文件'),
262
+ h('button', { className: 'tcw-btn tcw-btn-soft', onClick: () => setShowManualForm(!showManualForm) }, showManualForm ? '收起新增' : '手动新增')
263
+ ]),
264
+ showManualForm ? renderControlledGoodsForm() : null,
265
+ panel('待审核识别结果', h('div', { className: 'pending-controlled-goods' },
266
+ reviewTable(['商品名称', '海关编码', '关键词', '管控说明', '来源', '状态'], pendingControlledReviews, (item) => {
267
+ const row = readMerged(item)
268
+ return [
269
+ value(row.productName || item.title),
270
+ value(row.hsCode),
271
+ Array.isArray(row.keywords) ? row.keywords.join('、') : value(row.keywords),
272
+ value(row.controlNote),
273
+ value(item.sourceLocation || row.sourceFileName),
274
+ status(reviewStatusText(item.reviewStatus), 'warn')
275
+ ]
276
+ }, '暂无待审核管控商品。上传目录并等待智能体调用工具后会显示在这里。')
277
+ )),
278
+ panel('已入库管控商品', h('div', { className: 'confirmed-controlled-goods' },
279
+ table(['商品名称', '海关编码', '关键词', '状态', '管控说明'], filteredControlledGoods, (item) => [
280
+ value(item.productName),
281
+ value(item.hsCode),
282
+ Array.isArray(item.keywords) ? item.keywords.join('、') : '-',
283
+ status(item.enabled === false ? '停用' : '启用', item.enabled === false ? 'muted' : 'ok'),
284
+ value(item.controlNote)
285
+ ], '暂无已入库管控商品。确认待审核记录后会进入这里。')
286
+ ))
282
287
  )
283
288
  }
284
289
 
285
290
  function renderProductsPage() {
286
291
  const groups = groupBy(filteredProducts, (item) => value(item.supplierName, '未识别供应商'))
287
292
  return h('div', { className: 'tcw-page products-page' },
288
- h('div', { className: 'tcw-page-head' },
289
- h('div', null, h('h2', null, '商品管理'), h('p', null, '上传供应商合同后,商品信息按供应商归类并进入审核。')),
290
- uploadButton('upload_supplier_contract', '上传供应商合同', 'accept-doc-xls-pdf')
291
- ),
292
- Object.keys(groups).length === 0
293
- ? empty('暂无供应商商品,上传供应商合同后在这里审核。')
293
+ pageToolbar('供应商商品', '供应商合同识别结果先进入待审核,确认后按供应商归类入库。', [
294
+ uploadButton('upload_supplier_contract', '上传供应商合同')
295
+ ]),
296
+ panel('待审核供应商商品', h('div', { className: 'pending-supplier-products' },
297
+ reviewTable(['供应商', '商品', '型号', '海关编码', '退税率', '英文品名', '管控状态'], pendingSupplierReviews, (item) => {
298
+ const row = readMerged(item)
299
+ return [
300
+ value(row.supplierName),
301
+ value(row.productName || item.title),
302
+ value(row.model),
303
+ value(row.enrichedHsCode || row.contractHsCode),
304
+ value(row.taxRefundRate),
305
+ value(row.englishName),
306
+ status(controlStatusText(row.controlledStatus), controlStatusLevel(row.controlledStatus))
307
+ ]
308
+ }, '暂无待审核供应商商品。上传供应商合同并等待智能体识别后会显示在这里。')
309
+ )),
310
+ panel('已入库供应商商品', Object.keys(groups).length === 0
311
+ ? empty('暂无已入库供应商商品。确认待审核商品后会按供应商展示。')
294
312
  : Object.keys(groups).sort().map((supplier) =>
295
313
  h('section', { className: 'tcw-supplier-block', key: supplier },
296
314
  h('div', { className: 'tcw-supplier-head' }, h('strong', null, supplier), h('span', null, groups[supplier].length + ' 个商品')),
@@ -304,77 +322,93 @@
304
322
  ])
305
323
  )
306
324
  )
325
+ )
307
326
  )
308
327
  }
309
328
 
310
329
  function renderWorkbooksPage() {
311
- const salesReviews = reviewItems.filter((item) => item.type === 'customs_workbook')
312
330
  return h('div', { className: 'tcw-page workbooks-page' },
313
- h('div', { className: 'tcw-page-head' },
314
- h('div', null, h('h2', null, '生成销售发票'), h('p', null, '上传购销合同识别发票字段,审核后生成固定模板 Excel。')),
315
- h('div', { className: 'tcw-button-row' },
316
- uploadButton('upload_sales_contract', '上传购销合同', 'accept-doc-xls-pdf'),
317
- h('button', { className: 'tcw-btn tcw-btn-primary', disabled: busy, onClick: generateWorkbook }, '生成销售发票')
318
- )
319
- ),
320
- h('div', { className: 'tcw-split' },
321
- h('section', null,
322
- h('h3', null, '购销合同识别历史'),
323
- table(['文件/标题', '审核状态', '发票号', '合同号'], salesReviews, (item) => [
331
+ pageToolbar('销售发票', '上传购销合同后审核发票字段,审核通过后生成固定模板 Excel。', [
332
+ uploadButton('upload_sales_contract', '上传购销合同'),
333
+ h('button', { className: 'tcw-btn tcw-btn-primary', disabled: busy, onClick: generateWorkbook }, '生成销售发票')
334
+ ]),
335
+ panel('待审核购销合同', h('div', { className: 'pending-sales-contracts' },
336
+ reviewTable(['文件/标题', '审核状态', '发票号', '合同号', '买方', '卖方'], pendingSalesReviews, (item) => {
337
+ const row = readMerged(item)
338
+ return [
324
339
  value(item.title),
325
- status(reviewStatusText(item.reviewStatus), item.reviewStatus === 'confirmed' ? 'ok' : 'warn'),
326
- value(readMerged(item).invoiceNo),
327
- value(readMerged(item).contractNo)
328
- ], '暂无购销合同上传记录。')
329
- ),
330
- h('section', null,
331
- h('h3', null, '已生成销售发票'),
332
- table(['文件名', '发票号', '合同号', '模板工作表', '状态'], filteredWorkbooks, (item) => [
333
- value(item.fileName),
334
- value(item.invoiceNo),
335
- value(item.contractNo),
336
- Array.isArray(item.sheetNames) ? item.sheetNames.join('、') : '-',
337
- status(value(item.status, 'generated'), 'ok')
338
- ], '暂无销售发票生成历史。')
339
- )
340
- )
340
+ status(reviewStatusText(item.reviewStatus), 'warn'),
341
+ value(row.invoiceNo),
342
+ value(row.contractNo),
343
+ value(row.buyerName),
344
+ value(row.sellerName)
345
+ ]
346
+ }, '暂无待审核购销合同。')
347
+ )),
348
+ panel('已生成销售发票', table(['文件名', '发票号', '合同号', '模板工作表', '状态'], filteredWorkbooks, (item) => [
349
+ value(item.fileName),
350
+ value(item.invoiceNo),
351
+ value(item.contractNo),
352
+ Array.isArray(item.sheetNames) ? item.sheetNames.join('') : '-',
353
+ status(value(item.status, 'generated'), 'ok')
354
+ ], '暂无销售发票生成历史。'))
355
+ )
356
+ }
357
+
358
+ function renderControlledGoodsForm() {
359
+ return h('form', { className: 'tcw-form', onSubmit: saveControlledGoods },
360
+ field('商品名称', h('input', { value: form.productName, onChange: updateForm('productName'), placeholder: '例如:高性能服务器' })),
361
+ field('海关编码', h('input', { value: form.hsCode, onChange: updateForm('hsCode'), placeholder: '例如:8471501010' })),
362
+ field('关键词', h('input', { value: form.keywords, onChange: updateForm('keywords'), placeholder: '逗号或空格分隔' })),
363
+ field('管控说明', h('input', { value: form.controlNote, onChange: updateForm('controlNote'), placeholder: '许可证、两用物项、禁限说明' })),
364
+ h('label', { className: 'tcw-check' }, h('input', { type: 'checkbox', checked: form.enabled, onChange: (event) => setForm(Object.assign({}, form, { enabled: event.target.checked })) }), '启用'),
365
+ h('button', { className: 'tcw-btn tcw-btn-primary', disabled: busy || !form.productName.trim(), type: 'submit' }, '保存')
341
366
  )
342
367
  }
343
368
 
344
369
  function renderReviewDrawer(item) {
345
370
  return h('aside', { className: 'tcw-drawer' },
346
371
  h('div', { className: 'tcw-drawer-head' },
347
- h('div', null, h('h2', null, '对比审核'), h('p', null, item ? item.title : '暂无待审核信息')),
348
- item ? status(reviewStatusText(item.reviewStatus), item.reviewStatus === 'confirmed' ? 'ok' : 'warn') : null
372
+ h('div', null, h('h2', null, '对比审核'), h('p', null, item.title)),
373
+ h('button', { className: 'tcw-icon-btn', onClick: () => setSelectedReviewId(null) }, '×')
349
374
  ),
350
- !item ? empty('上传文件或等待智能体识别后,审核项会显示在这里。') : [
351
- h('div', { className: 'tcw-review-list', key: 'list' },
352
- reviewItems.slice(0, 8).map((review) =>
353
- h('button', {
354
- className: review.id === item.id ? 'tcw-review-chip active' : 'tcw-review-chip',
355
- key: review.id || review.title,
356
- onClick: () => setSelectedReviewId(review.id || null)
357
- }, h('span', null, reviewTypeText(review.type)), h('strong', null, review.title))
358
- )
359
- ),
360
- compareBlock('识别值', item.extractedData),
361
- compareBlock('默认值', item.defaultData),
362
- compareBlock('人工确认值', item.confirmedData),
363
- h('div', { className: 'tcw-evidence', key: 'evidence' },
364
- h('span', null, '来源证据'),
365
- h('strong', null, value(item.sourceLocation || readMerged(item).sourceFileName))
366
- ),
367
- h('button', { className: 'tcw-btn tcw-btn-primary tcw-wide', key: 'confirm', disabled: busy || item.reviewStatus === 'confirmed', onClick: () => confirmReview(item) }, item.reviewStatus === 'confirmed' ? '已确认' : '确认当前记录')
368
- ]
375
+ status(reviewStatusText(item.reviewStatus), item.reviewStatus === 'confirmed' ? 'ok' : 'warn'),
376
+ compareBlock('识别值', item.extractedData),
377
+ compareBlock('系统补全值', item.defaultData),
378
+ compareBlock('人工确认值', item.confirmedData),
379
+ h('div', { className: 'tcw-evidence' }, h('span', null, '来源证据'), h('strong', null, value(item.sourceLocation || readMerged(item).sourceFileName))),
380
+ h('button', { className: 'tcw-btn tcw-btn-primary tcw-wide', disabled: busy || item.reviewStatus === 'confirmed', onClick: () => confirmReview(item) }, item.reviewStatus === 'confirmed' ? '已确认' : '确认并入库')
369
381
  )
370
382
  }
371
383
 
372
- function uploadButton(actionKey, label, inputClass) {
373
- const id = actionKey + '-input'
384
+ function compactReviewList(items) {
385
+ return h('div', { className: 'tcw-compact-list' }, items.map((item) =>
386
+ h('button', { className: 'tcw-compact-row', key: item.id || item.title, onClick: () => openReview(item) },
387
+ h('span', null, reviewTypeText(item.type)),
388
+ h('strong', null, item.title),
389
+ h('em', null, reviewStatusText(item.reviewStatus))
390
+ )
391
+ ))
392
+ }
393
+
394
+ function reviewTable(headers, rows, mapRow, emptyText) {
395
+ return table(headers, rows, (row) => mapRow(row), emptyText, (row) => openReview(row))
396
+ }
397
+
398
+ function openReview(item) {
399
+ setSelectedReviewId(item && item.id ? item.id : null)
400
+ }
401
+
402
+ function pageToolbar(title, subtitle, actions) {
403
+ return h('div', { className: 'tcw-page-head' },
404
+ h('div', null, h('h2', null, title), h('p', null, subtitle)),
405
+ h('div', { className: 'tcw-button-row' }, actions)
406
+ )
407
+ }
408
+
409
+ function uploadButton(actionKey, label) {
374
410
  return h('label', { className: 'tcw-upload' },
375
411
  h('input', {
376
- id,
377
- className: inputClass,
378
412
  type: 'file',
379
413
  disabled: busy,
380
414
  onChange: (event) => {
@@ -396,25 +430,33 @@
396
430
  return h('div', { className: 'tcw-metric' }, h('span', null, label), h('strong', null, valueText))
397
431
  }
398
432
 
433
+ function panel(title, content) {
434
+ return h('section', { className: 'tcw-panel' }, h('h3', null, title), content)
435
+ }
436
+
399
437
  function field(label, child) {
400
438
  return h('label', { className: 'tcw-field' }, h('span', null, label), child)
401
439
  }
402
440
 
403
- function table(headers, rows, mapRow, emptyText) {
441
+ function table(headers, rows, mapRow, emptyText, onRowClick) {
404
442
  if (!rows || rows.length === 0) return empty(emptyText || '暂无数据。')
405
443
  return h('div', { className: 'tcw-table-wrap' },
406
444
  h('table', { className: 'tcw-table' },
407
445
  h('thead', null, h('tr', null, headers.map((item) => h('th', { key: item }, item)))),
408
- h('tbody', null, rows.map((row, index) => h('tr', { key: row.id || index }, mapRow(row).map((cell, cellIndex) => h('td', { key: cellIndex }, cell)))))
446
+ h('tbody', null, rows.map((row, index) =>
447
+ h('tr', { key: row.id || index, className: onRowClick ? 'clickable' : '', onClick: onRowClick ? () => onRowClick(row) : undefined },
448
+ mapRow(row).map((cell, cellIndex) => h('td', { key: cellIndex }, cell))
449
+ )
450
+ ))
409
451
  )
410
452
  )
411
453
  }
412
454
 
413
455
  function compareBlock(label, data) {
414
456
  const entries = Object.entries(isObject(data) ? data : {})
415
- return h('section', { className: 'tcw-compare', key: label },
457
+ return h('section', { className: 'tcw-compare' },
416
458
  h('h3', null, label),
417
- entries.length === 0 ? h('p', null, '暂无') : entries.slice(0, 12).map(([key, val]) =>
459
+ entries.length === 0 ? h('p', null, '暂无') : entries.slice(0, 16).map(([key, val]) =>
418
460
  h('div', { className: 'tcw-kv', key }, h('span', null, key), h('strong', null, stringify(val)))
419
461
  )
420
462
  )
@@ -428,6 +470,8 @@
428
470
  return h('div', { className: 'tcw-empty' }, text)
429
471
  }
430
472
 
473
+ const reviewSearchKeys = ['title', 'sourceLocation']
474
+
431
475
  function normalizeData(payload) {
432
476
  const body = payload && payload.summary ? payload.summary : payload || {}
433
477
  return {
@@ -448,43 +492,32 @@
448
492
 
449
493
  function getActionDataPayload(response) {
450
494
  const result = getResponsePayload(response)
451
- if (result && typeof result === 'object' && Object.prototype.hasOwnProperty.call(result, 'data')) {
452
- return result.data
453
- }
495
+ if (result && typeof result === 'object' && Object.prototype.hasOwnProperty.call(result, 'data')) return result.data
454
496
  return result
455
497
  }
456
498
 
457
499
  function assertActionSuccess(response) {
458
500
  const payload = getResponsePayload(response)
459
- if (payload && payload.success === false) {
460
- throw new Error(resolveMessage(payload.message) || '操作失败')
461
- }
501
+ if (payload && payload.success === false) throw new Error(resolveMessage(payload.message) || '操作失败')
462
502
  }
463
503
 
464
504
  function collectAssistantCommands(payload) {
465
505
  if (!payload || typeof payload !== 'object') return []
466
506
  const commands = []
467
- if (Array.isArray(payload.messages)) {
468
- payload.messages.forEach((message) => {
469
- const command = normalizeAssistantCommand(message)
470
- if (command) commands.push(command)
471
- })
472
- }
507
+ if (Array.isArray(payload.messages)) payload.messages.forEach((message) => {
508
+ const command = normalizeAssistantCommand(message)
509
+ if (command) commands.push(command)
510
+ })
473
511
  const directCommand = normalizeAssistantCommand(payload)
474
512
  if (directCommand) commands.push(directCommand)
475
513
  return commands
476
514
  }
477
515
 
478
516
  function normalizeAssistantCommand(value) {
479
- if (!value || typeof value !== 'object' || value.commandKey !== 'assistant.chat.send_message' || !value.payload) {
480
- return null
481
- }
517
+ if (!value || typeof value !== 'object' || value.commandKey !== 'assistant.chat.send_message' || !value.payload) return null
482
518
  const text = typeof value.payload.text === 'string' && value.payload.text.trim() ? value.payload.text : ''
483
519
  if (!text) return null
484
- return {
485
- commandKey: value.commandKey,
486
- payload: Object.assign({}, value.payload, { text })
487
- }
520
+ return { commandKey: value.commandKey, payload: Object.assign({}, value.payload, { text }) }
488
521
  }
489
522
 
490
523
  function resolveMessage(message) {
@@ -502,7 +535,10 @@
502
535
  function filterItems(items, query, keys) {
503
536
  const keyword = String(query || '').trim().toLowerCase()
504
537
  if (!keyword) return items
505
- return items.filter((item) => keys.some((key) => String(item && item[key] || '').toLowerCase().includes(keyword)))
538
+ return items.filter((item) => {
539
+ const merged = Object.assign({}, item || {}, readMerged(item || {}))
540
+ return keys.some((key) => String(merged[key] || '').toLowerCase().includes(keyword))
541
+ })
506
542
  }
507
543
 
508
544
  function groupBy(items, keyFn) {
@@ -557,31 +593,36 @@
557
593
  return 'muted'
558
594
  }
559
595
 
596
+ function pageTitle(key) {
597
+ if (key === 'overview-page') return '工作台总览'
598
+ if (key === 'controlled-goods-page') return '管控商品'
599
+ if (key === 'products-page') return '供应商商品'
600
+ return '销售发票'
601
+ }
602
+
603
+ function pageSubtitle(key) {
604
+ if (key === 'overview-page') return '查看处理进度、待审核数量和最近识别结果。'
605
+ if (key === 'controlled-goods-page') return '上传管控目录、审核识别结果、维护正式管控商品库。'
606
+ if (key === 'products-page') return '上传供应商合同,审核商品、HS Code、退税率和管控状态。'
607
+ return '上传购销合同,审核发票字段并生成固定模板 Excel。'
608
+ }
609
+
610
+ function isObject(value) {
611
+ return value && typeof value === 'object' && !Array.isArray(value)
612
+ }
613
+
560
614
  function injectStyles() {
561
615
  const style = document.createElement('style')
562
616
  style.textContent = `
563
- :root {
564
- color-scheme: light;
565
- --tcw-bg: #f4f6f8;
566
- --tcw-card: #ffffff;
567
- --tcw-card-soft: #f8fafb;
568
- --tcw-text: #17202e;
569
- --tcw-muted: #5d6b7a;
570
- --tcw-border: #dbe2ea;
571
- --tcw-primary: #176b87;
572
- --tcw-primary-dark: #0f5167;
573
- --tcw-success: #1b7f4c;
574
- --tcw-warning: #a35f00;
575
- --tcw-danger: #b42318;
576
- }
617
+ :root { color-scheme: light; --tcw-bg:#f5f7fa; --tcw-card:#fff; --tcw-soft:#f8fafc; --tcw-text:#152033; --tcw-muted:#66758a; --tcw-border:#dbe3ed; --tcw-primary:#176b87; --tcw-primary-dark:#0f5167; --tcw-success:#147a46; --tcw-warning:#9a5b00; --tcw-danger:#b42318; }
577
618
  * { box-sizing: border-box; }
578
619
  body { margin: 0; background: var(--tcw-bg); color: var(--tcw-text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
579
620
  button, input { font: inherit; letter-spacing: 0; }
580
- .tcw-shell { display: grid; gap: 14px; min-height: 100vh; padding: 18px; }
581
- .tcw-header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 520px); gap: 16px; align-items: end; }
582
- .tcw-title-block { display: grid; gap: 5px; }
583
- .tcw-kicker { color: var(--tcw-primary); font-size: 12px; font-weight: 800; }
584
- .tcw-title-block h1 { margin: 0; font-size: 24px; line-height: 1.25; }
621
+ .tcw-shell { display: grid; gap: 12px; min-height: 100vh; padding: 14px 16px 18px; }
622
+ .tcw-header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 520px); gap: 12px; align-items: end; }
623
+ .tcw-title-block { display: grid; gap: 3px; }
624
+ .tcw-kicker { color: var(--tcw-primary); font-size: 12px; font-weight: 900; }
625
+ .tcw-title-block h1 { margin: 0; font-size: 22px; line-height: 1.22; }
585
626
  .tcw-title-block p, .tcw-page-head p, .tcw-drawer-head p { margin: 0; color: var(--tcw-muted); font-size: 13px; }
586
627
  .tcw-header-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
587
628
  .tcw-search, .tcw-field input { width: 100%; min-height: 36px; border: 1px solid var(--tcw-border); border-radius: 6px; background: var(--tcw-card); color: var(--tcw-text); padding: 8px 10px; }
@@ -589,62 +630,66 @@ button, input { font: inherit; letter-spacing: 0; }
589
630
  .tcw-btn:disabled, .tcw-upload:has(input:disabled) { cursor: not-allowed; opacity: .55; }
590
631
  .tcw-btn-primary { border-color: var(--tcw-primary); background: var(--tcw-primary); color: #fff; }
591
632
  .tcw-btn-primary:hover:not(:disabled) { background: var(--tcw-primary-dark); }
592
- .tcw-btn-soft { background: var(--tcw-card-soft); }
633
+ .tcw-btn-soft { background: var(--tcw-soft); }
593
634
  .tcw-wide { width: 100%; }
594
- .tcw-upload { border-style: dashed; border-color: color-mix(in srgb, var(--tcw-primary) 42%, var(--tcw-border)); color: var(--tcw-primary); font-weight: 700; }
635
+ .tcw-upload { border-style: dashed; border-color: color-mix(in srgb, var(--tcw-primary) 42%, var(--tcw-border)); color: var(--tcw-primary); font-weight: 800; }
595
636
  .tcw-upload input { display: none; }
596
- .tcw-notice { border: 1px solid color-mix(in srgb, var(--tcw-primary) 26%, var(--tcw-border)); border-radius: 6px; background: color-mix(in srgb, var(--tcw-primary) 8%, var(--tcw-card)); padding: 10px 12px; color: var(--tcw-primary-dark); font-size: 13px; }
637
+ .tcw-notice { border: 1px solid color-mix(in srgb, var(--tcw-primary) 24%, var(--tcw-border)); border-radius: 6px; background: color-mix(in srgb, var(--tcw-primary) 7%, var(--tcw-card)); padding: 10px 12px; color: var(--tcw-primary-dark); font-size: 13px; }
638
+ .tcw-tabs { display: flex; gap: 6px; overflow-x: auto; border-bottom: 1px solid var(--tcw-border); }
639
+ .tcw-tab { min-height: 38px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--tcw-muted); padding: 8px 12px; cursor: pointer; font-weight: 900; }
640
+ .tcw-tab.active { border-color: var(--tcw-primary); color: var(--tcw-primary); }
641
+ .tcw-main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; }
642
+ .tcw-main.with-drawer { grid-template-columns: minmax(0, 1fr) minmax(340px, 410px); }
643
+ .tcw-content, .tcw-drawer, .tcw-panel, .tcw-supplier-block { border: 1px solid var(--tcw-border); border-radius: 8px; background: var(--tcw-card); }
644
+ .tcw-content { min-width: 0; padding: 12px; }
645
+ .tcw-page { display: grid; gap: 12px; }
646
+ .tcw-page-head, .tcw-drawer-head, .tcw-supplier-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
647
+ .tcw-page-head h2, .tcw-drawer-head h2, .tcw-panel h3 { margin: 0 0 4px; font-size: 16px; line-height: 1.35; }
648
+ .tcw-button-row { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
649
+ .tcw-panel { display: grid; gap: 10px; padding: 12px; }
597
650
  .tcw-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
598
651
  .tcw-metric { display: grid; gap: 4px; border: 1px solid var(--tcw-border); border-radius: 8px; background: var(--tcw-card); padding: 12px; }
599
652
  .tcw-metric span { color: var(--tcw-muted); font-size: 12px; }
600
653
  .tcw-metric strong { font-size: 22px; line-height: 1; }
601
- .tcw-tabs { display: flex; gap: 8px; border-bottom: 1px solid var(--tcw-border); }
602
- .tcw-tab { min-height: 38px; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--tcw-muted); padding: 8px 12px; cursor: pointer; font-weight: 800; }
603
- .tcw-tab.active { border-color: var(--tcw-primary); color: var(--tcw-primary); }
604
- .tcw-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 390px); gap: 14px; align-items: start; }
605
- .tcw-content, .tcw-drawer, .tcw-supplier-block { border: 1px solid var(--tcw-border); border-radius: 8px; background: var(--tcw-card); }
606
- .tcw-content { min-width: 0; padding: 14px; }
607
- .tcw-page { display: grid; gap: 14px; }
608
- .tcw-page-head, .tcw-drawer-head, .tcw-supplier-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
609
- .tcw-page-head h2, .tcw-drawer-head h2, .tcw-split h3 { margin: 0 0 5px; font-size: 17px; line-height: 1.35; }
610
- .tcw-button-row { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
611
- .tcw-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto auto; gap: 10px; align-items: end; border: 1px solid var(--tcw-border); border-radius: 8px; background: var(--tcw-card-soft); padding: 12px; }
654
+ .tcw-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto auto; gap: 10px; align-items: end; border: 1px solid var(--tcw-border); border-radius: 8px; background: var(--tcw-soft); padding: 12px; }
612
655
  .tcw-field { display: grid; gap: 5px; min-width: 0; }
613
- .tcw-field span { color: var(--tcw-muted); font-size: 12px; font-weight: 700; }
656
+ .tcw-field span { color: var(--tcw-muted); font-size: 12px; font-weight: 800; }
614
657
  .tcw-check { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; color: var(--tcw-muted); font-size: 13px; }
615
658
  .tcw-table-wrap { overflow: auto; border: 1px solid var(--tcw-border); border-radius: 8px; }
616
- .tcw-table { width: 100%; min-width: 760px; border-collapse: collapse; font-size: 12px; }
659
+ .tcw-table { width: 100%; min-width: 840px; border-collapse: collapse; font-size: 12px; }
617
660
  .tcw-table th, .tcw-table td { border-bottom: 1px solid var(--tcw-border); padding: 10px; text-align: left; vertical-align: top; }
618
- .tcw-table th { background: var(--tcw-card-soft); color: var(--tcw-muted); font-size: 11px; font-weight: 900; }
661
+ .tcw-table th { background: var(--tcw-soft); color: var(--tcw-muted); font-size: 11px; font-weight: 900; }
619
662
  .tcw-table tr:last-child td { border-bottom: 0; }
620
- .tcw-empty { display: grid; place-items: center; min-height: 110px; border: 1px dashed var(--tcw-border); border-radius: 8px; background: var(--tcw-card-soft); color: var(--tcw-muted); padding: 18px; text-align: center; }
663
+ .tcw-table tr.clickable { cursor: pointer; }
664
+ .tcw-table tr.clickable:hover td { background: color-mix(in srgb, var(--tcw-primary) 5%, transparent); }
665
+ .tcw-empty { display: grid; place-items: center; min-height: 96px; border: 1px dashed var(--tcw-border); border-radius: 8px; background: var(--tcw-soft); color: var(--tcw-muted); padding: 18px; text-align: center; }
621
666
  .tcw-supplier-block { display: grid; gap: 10px; padding: 12px; }
622
667
  .tcw-supplier-head strong { font-size: 15px; }
623
668
  .tcw-supplier-head span { color: var(--tcw-muted); font-size: 12px; }
624
- .tcw-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
625
- .tcw-drawer { position: sticky; top: 12px; display: grid; gap: 12px; padding: 14px; }
626
- .tcw-review-list { display: grid; gap: 7px; max-height: 220px; overflow: auto; }
627
- .tcw-review-chip { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 8px; width: 100%; border: 1px solid var(--tcw-border); border-radius: 6px; background: var(--tcw-card-soft); padding: 8px; cursor: pointer; text-align: left; }
628
- .tcw-review-chip.active { border-color: var(--tcw-primary); background: color-mix(in srgb, var(--tcw-primary) 7%, var(--tcw-card)); }
629
- .tcw-review-chip span { color: var(--tcw-primary); font-size: 12px; font-weight: 900; }
630
- .tcw-review-chip strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
669
+ .tcw-drawer { position: sticky; top: 10px; display: grid; gap: 12px; padding: 14px; max-height: calc(100vh - 24px); overflow: auto; }
670
+ .tcw-icon-btn { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--tcw-border); border-radius: 6px; background: var(--tcw-card); cursor: pointer; }
671
+ .tcw-compact-list { display: grid; gap: 7px; }
672
+ .tcw-compact-row { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 8px; align-items: center; width: 100%; border: 1px solid var(--tcw-border); border-radius: 6px; background: var(--tcw-soft); padding: 9px; cursor: pointer; text-align: left; }
673
+ .tcw-compact-row span { color: var(--tcw-primary); font-size: 12px; font-weight: 900; }
674
+ .tcw-compact-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
675
+ .tcw-compact-row em { color: var(--tcw-muted); font-size: 12px; font-style: normal; }
631
676
  .tcw-compare { display: grid; gap: 6px; border-top: 1px solid var(--tcw-border); padding-top: 10px; }
632
677
  .tcw-compare h3 { margin: 0; font-size: 13px; }
633
- .tcw-kv { display: grid; grid-template-columns: minmax(92px, .38fr) minmax(0, 1fr); gap: 8px; border: 1px solid var(--tcw-border); border-radius: 6px; background: var(--tcw-card-soft); padding: 7px 8px; }
678
+ .tcw-kv { display: grid; grid-template-columns: minmax(92px, .34fr) minmax(0, 1fr); gap: 8px; border: 1px solid var(--tcw-border); border-radius: 6px; background: var(--tcw-soft); padding: 7px 8px; }
634
679
  .tcw-kv span { color: var(--tcw-muted); font-size: 11px; }
635
680
  .tcw-kv strong { overflow-wrap: anywhere; font-size: 12px; font-weight: 700; }
636
681
  .tcw-evidence { display: grid; gap: 4px; border: 1px solid color-mix(in srgb, var(--tcw-primary) 24%, var(--tcw-border)); border-radius: 6px; background: color-mix(in srgb, var(--tcw-primary) 6%, var(--tcw-card)); padding: 10px; }
637
- .tcw-evidence span { color: var(--tcw-muted); font-size: 11px; font-weight: 800; }
682
+ .tcw-evidence span { color: var(--tcw-muted); font-size: 11px; font-weight: 900; }
638
683
  .tcw-evidence strong { overflow-wrap: anywhere; font-size: 12px; }
639
684
  .tcw-status { display: inline-flex; width: fit-content; align-items: center; border-radius: 999px; padding: 3px 8px; font-size: 11px; font-weight: 900; }
640
685
  .tcw-status.ok { background: #e8f7ef; color: var(--tcw-success); }
641
686
  .tcw-status.warn { background: #fff4df; color: var(--tcw-warning); }
642
687
  .tcw-status.danger { background: #fde8e6; color: var(--tcw-danger); }
643
688
  .tcw-status.muted { background: #eef2f6; color: var(--tcw-muted); }
644
- @media (max-width: 980px) {
645
- .tcw-header, .tcw-main, .tcw-form, .tcw-split { grid-template-columns: 1fr; }
689
+ @media (max-width: 1040px) {
690
+ .tcw-header, .tcw-main.with-drawer, .tcw-form { grid-template-columns: 1fr; }
646
691
  .tcw-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
647
- .tcw-drawer { position: static; }
692
+ .tcw-drawer { position: static; max-height: none; }
648
693
  }
649
694
  `
650
695
  document.head.appendChild(style)
@@ -655,17 +700,9 @@ button, input { font: inherit; letter-spacing: 0; }
655
700
  if (!isObject(message) || message.channel !== CHANNEL || message.protocolVersion !== VERSION) return
656
701
  if (message.type === 'init') {
657
702
  instanceId = message.instanceId
658
- if (window.XpertRemoteUI && typeof window.XpertRemoteUI.applyTheme === 'function') {
659
- window.XpertRemoteUI.applyTheme(message.theme)
660
- }
703
+ if (window.XpertRemoteUI && typeof window.XpertRemoteUI.applyTheme === 'function') window.XpertRemoteUI.applyTheme(message.theme)
661
704
  if (window.__tradeComplianceSetContext) {
662
- window.__tradeComplianceSetContext({
663
- manifest: message.manifest,
664
- payload: message.payload,
665
- initialQuery: message.initialQuery || {},
666
- locale: message.locale,
667
- theme: message.theme
668
- })
705
+ window.__tradeComplianceSetContext({ manifest: message.manifest, payload: message.payload, initialQuery: message.initialQuery || {}, locale: message.locale, theme: message.theme })
669
706
  }
670
707
  setTimeout(reportResize, 0)
671
708
  return
@@ -678,11 +715,8 @@ button, input { font: inherit; letter-spacing: 0; }
678
715
  if (message.requestId && pending.has(message.requestId)) {
679
716
  const item = pending.get(message.requestId)
680
717
  pending.delete(message.requestId)
681
- if (message.type === 'error') {
682
- item.reject(new Error(message.message || '远程请求失败'))
683
- } else {
684
- item.resolve(message)
685
- }
718
+ if (message.type === 'error') item.reject(new Error(message.message || '远程请求失败'))
719
+ else item.resolve(message)
686
720
  }
687
721
  })
688
722
 
@@ -10,5 +10,6 @@ export declare class TradeComplianceWorkbenchViewProvider implements IXpertViewE
10
10
  getViewData(context: XpertResolvedViewHostContext, _viewKey: string, _query: XpertViewQuery): Promise<XpertViewDataResult>;
11
11
  executeViewAction(context: XpertResolvedViewHostContext, _viewKey: string, actionKey: string, request: XpertViewActionRequest): Promise<XpertViewActionResult>;
12
12
  executeViewFileAction(context: XpertResolvedViewHostContext, viewKey: string, actionKey: string, request: XpertViewActionRequest, file: XpertViewFileActionFile): Promise<XpertViewActionResult>;
13
+ private materializeConfirmedReviewItem;
13
14
  }
14
15
  //# sourceMappingURL=trade-compliance-workbench-view.provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"trade-compliance-workbench-view.provider.d.ts","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench-view.provider.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,2BAA2B,EAG3B,uBAAuB,EACxB,MAAM,sBAAsB,CAAA;AAW7B,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAA;AAQzF,qBAEa,oCAAqC,YAAW,2BAA2B;IAC1E,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,+BAA+B;IAErE,QAAQ,CAAC,OAAO,EAAE,4BAA4B;IAI9C,gBAAgB,CAAC,QAAQ,EAAE,4BAA4B,EAAE,IAAI,EAAE,MAAM,GAAG,0BAA0B,EAAE;IA6F9F,uBAAuB,CAC3B,QAAQ,EAAE,4BAA4B,EACtC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,8BAA8B,CAAC,WAAW,CAAC,GACrD,OAAO,CAAC,yBAAyB,CAAC;IAwB/B,WAAW,CACf,OAAO,EAAE,4BAA4B,EACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,mBAAmB,CAAC;IAoBzB,iBAAiB,CACrB,OAAO,EAAE,4BAA4B,EACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;IAuD3B,qBAAqB,CACzB,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;CAqGlC"}
1
+ {"version":3,"file":"trade-compliance-workbench-view.provider.d.ts","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench-view.provider.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,0BAA0B,EAC1B,yBAAyB,EACzB,8BAA8B,EAC9B,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,2BAA2B,EAG3B,uBAAuB,EACxB,MAAM,sBAAsB,CAAA;AAW7B,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAA;AAQzF,qBAEa,oCAAqC,YAAW,2BAA2B;IAC1E,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,+BAA+B;IAErE,QAAQ,CAAC,OAAO,EAAE,4BAA4B;IAI9C,gBAAgB,CAAC,QAAQ,EAAE,4BAA4B,EAAE,IAAI,EAAE,MAAM,GAAG,0BAA0B,EAAE;IA6F9F,uBAAuB,CAC3B,QAAQ,EAAE,4BAA4B,EACtC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,8BAA8B,CAAC,WAAW,CAAC,GACrD,OAAO,CAAC,yBAAyB,CAAC;IAwB/B,WAAW,CACf,OAAO,EAAE,4BAA4B,EACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,mBAAmB,CAAC;IAoBzB,iBAAiB,CACrB,OAAO,EAAE,4BAA4B,EACrC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC;IAyD3B,qBAAqB,CACzB,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,sBAAsB,EAC/B,IAAI,EAAE,uBAAuB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;YAsGnB,8BAA8B;CA+C7C"}
@@ -155,11 +155,13 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
155
155
  if (!itemId) {
156
156
  return failure('itemId is required', '缺少 itemId');
157
157
  }
158
- return success(await this.service.confirmReviewItem(scope, itemId, readRecord(request.input, 'confirmedData')));
158
+ const item = await this.service.confirmReviewItem(scope, itemId, readRecord(request.input, 'confirmedData'));
159
+ return success(await this.materializeConfirmedReviewItem(scope, item));
159
160
  }
160
161
  if (actionKey === 'confirm_review_items') {
161
162
  const itemIds = readStringArray(request.input, 'itemIds');
162
- return success(await this.service.confirmReviewItems(scope, itemIds));
163
+ const items = await this.service.confirmReviewItems(scope, itemIds);
164
+ return success(await Promise.all(items.map((item) => this.materializeConfirmedReviewItem(scope, item))));
163
165
  }
164
166
  if (actionKey === 'refresh') {
165
167
  return { success: true, message: text('Refreshed', '已刷新'), refresh: true };
@@ -299,6 +301,51 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
299
301
  }
300
302
  return failure('Unsupported file action', '不支持的文件操作');
301
303
  }
304
+ async materializeConfirmedReviewItem(scope, item) {
305
+ const data = mergeReviewData(item.defaultData, item.extractedData, item.confirmedData);
306
+ if (item.type === 'controlled_goods') {
307
+ const productName = readString(data, 'productName') ?? item.title;
308
+ return {
309
+ item,
310
+ materialized: await this.service.saveControlledGoods(scope, {
311
+ productName,
312
+ hsCode: readString(data, 'hsCode'),
313
+ keywords: readStringArray(data, 'keywords'),
314
+ controlNote: readString(data, 'controlNote'),
315
+ enabled: readBoolean(data, 'enabled') ?? true,
316
+ sourceFileName: readString(data, 'sourceFileName'),
317
+ sourceLocation: item.sourceLocation ?? readString(data, 'sourceLocation')
318
+ })
319
+ };
320
+ }
321
+ if (item.type === 'supplier_product') {
322
+ const supplierName = readString(data, 'supplierName') ?? '未识别供应商';
323
+ const productName = readString(data, 'productName') ?? item.title;
324
+ return {
325
+ item,
326
+ materialized: await this.service.saveSupplierProduct(scope, {
327
+ supplierName,
328
+ supplierCreditCode: readString(data, 'supplierCreditCode'),
329
+ supplierAddress: readString(data, 'supplierAddress'),
330
+ productName,
331
+ model: readString(data, 'model'),
332
+ description: readString(data, 'description'),
333
+ quantity: readNumber(data, 'quantity'),
334
+ unit: readString(data, 'unit'),
335
+ taxInclusiveUnitPrice: readNumber(data, 'taxInclusiveUnitPrice'),
336
+ taxInclusiveTotalAmount: readNumber(data, 'taxInclusiveTotalAmount'),
337
+ contractHsCode: readString(data, 'contractHsCode'),
338
+ enrichedHsCode: readString(data, 'enrichedHsCode'),
339
+ taxRefundRate: readString(data, 'taxRefundRate'),
340
+ englishName: readString(data, 'englishName'),
341
+ controlledStatus: readControlledGoodsStatus(data, 'controlledStatus'),
342
+ controlNote: readString(data, 'controlNote'),
343
+ matchedControlledGoods: readRecordArray(data, 'matchedControlledGoods')
344
+ })
345
+ };
346
+ }
347
+ return { item, materialized: null };
348
+ }
302
349
  };
303
350
  TradeComplianceWorkbenchViewProvider = __decorate([
304
351
  Injectable(),
@@ -359,6 +406,31 @@ function readBoolean(input, key) {
359
406
  const value = typeof input === 'object' && input != null ? Reflect.get(input, key) : undefined;
360
407
  return typeof value === 'boolean' ? value : undefined;
361
408
  }
409
+ function readNumber(input, key) {
410
+ const value = typeof input === 'object' && input != null ? Reflect.get(input, key) : undefined;
411
+ if (typeof value === 'number' && Number.isFinite(value))
412
+ return value;
413
+ if (typeof value === 'string' && value.trim()) {
414
+ const parsed = Number(value.replace(/,/g, ''));
415
+ return Number.isFinite(parsed) ? parsed : undefined;
416
+ }
417
+ return undefined;
418
+ }
419
+ function readRecordArray(input, key) {
420
+ const value = typeof input === 'object' && input != null ? Reflect.get(input, key) : undefined;
421
+ return Array.isArray(value)
422
+ ? value.filter((item) => typeof item === 'object' && item != null && !Array.isArray(item))
423
+ : undefined;
424
+ }
425
+ function readControlledGoodsStatus(input, key) {
426
+ const value = readString(input, key);
427
+ return value === 'unchecked' || value === 'not_controlled' || value === 'suspected' || value === 'controlled'
428
+ ? value
429
+ : undefined;
430
+ }
431
+ function mergeReviewData(...records) {
432
+ return Object.assign({}, ...records.filter(Boolean));
433
+ }
362
434
  function getFileDisplayName(file, input) {
363
435
  return readString(input, 'name') ?? readString(input, 'fileName') ?? getFileName(file) ?? 'uploaded-document';
364
436
  }
@@ -1 +1 @@
1
- {"version":3,"file":"trade-compliance-workbench-view.provider.js","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench-view.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trade-compliance-workbench-view.provider.js","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench-view.provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chenchaolong/plugin-trade-compliance-workbench",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Trade Compliance Workbench app plugin for controlled goods review, supplier product management, and customs workbook generation.",
5
5
  "author": {
6
6
  "name": "XpertAI",