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

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,13 @@
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')
86
- const [selectedReviewId, setSelectedReviewId] = React.useState(null)
69
+ const [activePage, setActivePage] = React.useState('overview-page')
70
+ const [selectedIds, setSelectedIds] = React.useState([])
71
+ const [statusFilter, setStatusFilter] = React.useState('all')
87
72
  const [busy, setBusy] = React.useState(false)
88
73
  const [notice, setNotice] = React.useState('')
89
74
  const [query, setQuery] = React.useState('')
75
+ const [showManualForm, setShowManualForm] = React.useState(false)
90
76
  const [form, setForm] = React.useState({ productName: '', hsCode: '', keywords: '', controlNote: '', enabled: true })
91
77
 
92
78
  React.useEffect(() => {
@@ -103,11 +89,20 @@
103
89
  }
104
90
  }, [])
105
91
 
106
- React.useEffect(reportResize, [data, activePage, selectedReviewId, busy, notice])
92
+ React.useEffect(reportResize, [data, activePage, selectedIds, statusFilter, busy, notice, showManualForm])
107
93
 
108
- const reviewItems = data.reviewItems
94
+ const reviewItems = data.reviewItems.filter((item) => !isPlaceholderReviewItem(item))
109
95
  const pendingItems = reviewItems.filter((item) => (item.reviewStatus || 'pending') === 'pending')
110
- const selectedReview = reviewItems.find((item) => item.id === selectedReviewId) || pendingItems[0] || reviewItems[0] || null
96
+ const controlledReviewRows = reviewItems.filter((item) => item.type === 'controlled_goods')
97
+ const controlledRows = controlledReviewRows.concat(data.controlledGoods.map(toControlledGoodsReviewRow))
98
+ const controlledReviews = applyStatusFilter(filterItems(controlledRows, query, reviewSearchKeys), statusFilter)
99
+ const pendingControlledReviews = controlledReviews.filter((item) => (item.reviewStatus || 'pending') === 'pending')
100
+ const supplierReviewRows = reviewItems.filter((item) => item.type === 'supplier_product')
101
+ const supplierRows = supplierReviewRows.concat(data.products.map(toSupplierProductReviewRow))
102
+ const supplierReviews = applyStatusFilter(filterItems(supplierRows, query, reviewSearchKeys), statusFilter)
103
+ const pendingSupplierReviews = supplierReviews.filter((item) => (item.reviewStatus || 'pending') === 'pending')
104
+ const salesReviews = applyStatusFilter(filterItems(reviewItems.filter((item) => item.type === 'customs_workbook'), query, reviewSearchKeys), statusFilter)
105
+ const pendingSalesReviews = salesReviews.filter((item) => (item.reviewStatus || 'pending') === 'pending')
111
106
  const filteredControlledGoods = filterItems(data.controlledGoods, query, ['productName', 'hsCode', 'controlNote'])
112
107
  const filteredProducts = filterItems(data.products, query, ['supplierName', 'productName', 'model', 'enrichedHsCode', 'englishName'])
113
108
  const filteredWorkbooks = filterItems(data.workbookGenerations, query, ['fileName', 'invoiceNo', 'contractNo', 'sourceFileName'])
@@ -117,7 +112,7 @@
117
112
  if (!activeContext) return
118
113
  setBusy(true)
119
114
  try {
120
- const response = await request('requestData', { query: { page: 1, pageSize: 100, search: query, parameters: {} } })
115
+ const response = await request('requestData', { query: { page: 1, pageSize: 200, search: query, parameters: {} } })
121
116
  setData(normalizeData(getResponsePayload(response)))
122
117
  } catch (error) {
123
118
  showNotice('刷新失败:' + getErrorMessage(error), 'error')
@@ -133,7 +128,7 @@
133
128
  const response = await executeFileAction(actionKey, file, { name: file.name, fileName: file.name }, {})
134
129
  assertActionSuccess(response)
135
130
  const dispatched = await dispatchAssistantCommands(getActionDataPayload(response))
136
- showNotice(dispatched ? '文件已发送给智能体解析,识别结果会进入待审核列表。' : '文件已提交,识别结果会进入待审核列表。', 'success')
131
+ showNotice(dispatched ? '文件已发送给智能体解析,识别结果会进入待审核列表。' : '文件已登记,等待识别结果。', 'success')
137
132
  await reload()
138
133
  } catch (error) {
139
134
  showNotice(getErrorMessage(error), 'error')
@@ -156,6 +151,7 @@
156
151
  }, {})
157
152
  assertActionSuccess(response)
158
153
  setForm({ productName: '', hsCode: '', keywords: '', controlNote: '', enabled: true })
154
+ setShowManualForm(false)
159
155
  showNotice('管控商品已保存。', 'success')
160
156
  await reload()
161
157
  } catch (error) {
@@ -172,7 +168,39 @@
172
168
  const confirmedData = Object.assign({}, item.defaultData || {}, item.extractedData || {}, item.confirmedData || {})
173
169
  const response = await executeAction('confirm_review_item', item.id, { itemId: item.id, confirmedData }, {})
174
170
  assertActionSuccess(response)
175
- showNotice('审核项已确认。', 'success')
171
+ showNotice('审核项已确认并写入业务列表。', 'success')
172
+ await reload()
173
+ } catch (error) {
174
+ showNotice(getErrorMessage(error), 'error')
175
+ } finally {
176
+ setBusy(false)
177
+ }
178
+ }
179
+
180
+ async function rejectReview(item) {
181
+ if (!item || !item.id || busy) return
182
+ setBusy(true)
183
+ try {
184
+ const response = await executeAction('reject_review_item', item.id, { itemId: item.id }, {})
185
+ assertActionSuccess(response)
186
+ setSelectedIds(selectedIds.filter((id) => id !== item.id))
187
+ showNotice('审核项已驳回。', 'success')
188
+ await reload()
189
+ } catch (error) {
190
+ showNotice(getErrorMessage(error), 'error')
191
+ } finally {
192
+ setBusy(false)
193
+ }
194
+ }
195
+
196
+ async function batchApproveSelected() {
197
+ if (!selectedIds.length || busy) return
198
+ setBusy(true)
199
+ try {
200
+ const response = await executeAction('confirm_review_items', null, { itemIds: selectedIds }, {})
201
+ assertActionSuccess(response)
202
+ setSelectedIds([])
203
+ showNotice(`已批量审核 ${selectedIds.length} 条记录。`, 'success')
176
204
  await reload()
177
205
  } catch (error) {
178
206
  showNotice(getErrorMessage(error), 'error')
@@ -183,10 +211,10 @@
183
211
 
184
212
  async function generateWorkbook() {
185
213
  if (busy) return
186
- const salesItem = reviewItems.find((item) => item.type === 'customs_workbook')
214
+ const salesItem = salesReviews.find((item) => item.reviewStatus === 'confirmed') || salesReviews[0]
187
215
  setBusy(true)
188
216
  try {
189
- const base = Object.assign({}, salesItem && salesItem.defaultData, salesItem && salesItem.extractedData, salesItem && salesItem.confirmedData)
217
+ const base = readMerged(salesItem || {})
190
218
  const invoiceNo = base.invoiceNo || ('INV-' + new Date().toISOString().slice(0, 10).replace(/-/g, ''))
191
219
  const response = await executeAction('generate_customs_workbook', null, {
192
220
  invoiceNo,
@@ -208,173 +236,199 @@
208
236
  function showNotice(message, level) {
209
237
  setNotice((level === 'error' ? '错误:' : '') + message)
210
238
  notify(level || 'info', message)
211
- setTimeout(() => setNotice(''), 4000)
239
+ setTimeout(() => setNotice(''), 4500)
212
240
  }
213
241
 
214
242
  return h('div', { className: 'tcw-shell' },
215
243
  h('header', { className: 'tcw-header' },
216
244
  h('div', { className: 'tcw-title-block' },
217
245
  h('span', { className: 'tcw-kicker' }, '外贸合规工作台'),
218
- h('h1', null, 'Trade Compliance Workbench'),
219
- h('p', null, '管控商品维护、供应商商品审核、销售发票生成')
246
+ h('h1', null, pageTitle(activePage)),
247
+ h('p', null, pageSubtitle(activePage))
220
248
  ),
221
249
  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
- }),
250
+ h('input', { className: 'tcw-search', value: query, placeholder: '搜索商品、供应商、海关编码、文件名', onChange: (event) => setQuery(event.target.value) }),
228
251
  h('button', { className: 'tcw-btn tcw-btn-soft', disabled: busy, onClick: () => reload() }, busy ? '处理中' : '刷新')
229
252
  )
230
253
  ),
231
254
  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
255
  h('nav', { className: 'tcw-tabs' }, [
239
- tab('controlled-goods-page', '管控商品管理'),
240
- tab('products-page', '商品管理'),
241
- tab('workbooks-page', '生成销售发票')
256
+ tab('overview-page', '工作台总览'),
257
+ tab('controlled-goods-page', '管控商品'),
258
+ tab('products-page', '供应商商品'),
259
+ tab('workbooks-page', '销售发票')
242
260
  ]),
243
261
  h('main', { className: 'tcw-main' },
244
262
  h('section', { className: 'tcw-content' },
263
+ activePage === 'overview-page' ? renderOverviewPage() : null,
245
264
  activePage === 'controlled-goods-page' ? renderControlledGoodsPage() : null,
246
265
  activePage === 'products-page' ? renderProductsPage() : null,
247
266
  activePage === 'workbooks-page' ? renderWorkbooksPage() : null
248
- ),
249
- renderReviewDrawer(selectedReview)
267
+ )
250
268
  )
251
269
  )
252
270
 
253
271
  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)
272
+ return h('button', { key, className: key === activePage ? 'tcw-tab active' : 'tcw-tab', onClick: () => setActivePage(key) }, label)
273
+ }
274
+
275
+ function renderOverviewPage() {
276
+ return h('div', { className: 'tcw-page overview-page' },
277
+ h('section', { className: 'tcw-metrics' },
278
+ metric('待审核', pendingItems.length),
279
+ metric('管控识别待审', pendingControlledReviews.length),
280
+ metric('供应商商品待审', pendingSupplierReviews.length),
281
+ metric('销售合同待审', pendingSalesReviews.length),
282
+ metric('已入库管控商品', data.controlledGoods.length),
283
+ metric('已入库供应商商品', data.products.length),
284
+ metric('销售发票历史', data.workbookGenerations.length),
285
+ metric('全部审核记录', reviewItems.length)
286
+ ),
287
+ panel('最近待审核', pendingItems.slice(0, 12).length
288
+ ? compactReviewList(pendingItems.slice(0, 12))
289
+ : empty('暂无待审核记录。智能体识别结果会先出现在这里。'))
290
+ )
259
291
  }
260
292
 
261
293
  function renderControlledGoodsPage() {
262
294
  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
- ], '暂无管控商品,先上传目录或手动新增。')
295
+ pageToolbar('管控商品', '智能体识别结果先进入待审核,确认后写入正式管控商品库。', [
296
+ uploadButton('upload_controlled_goods_file', '上传管控商品文件'),
297
+ h('button', { className: 'tcw-btn tcw-btn-soft', onClick: () => setShowManualForm(!showManualForm) }, showManualForm ? '收起新增' : '手动新增')
298
+ ]),
299
+ showManualForm ? renderControlledGoodsForm() : null,
300
+ renderListPanel('管控商品列表', 'pending-controlled-goods confirmed-controlled-goods', controlledReviews, ['商品名称', '海关编码', '关键词', '管控说明', '来源'], (item) => {
301
+ const row = readMerged(item)
302
+ return [
303
+ value(row.productName || item.title),
304
+ value(row.hsCode),
305
+ Array.isArray(row.keywords) ? row.keywords.join('') : value(row.keywords),
306
+ value(row.controlNote),
307
+ value(item.sourceLocation || row.sourceFileName)
308
+ ]
309
+ }, '暂无管控商品识别结果。上传目录并等待智能体调用工具后会显示在这里。')
282
310
  )
283
311
  }
284
312
 
285
313
  function renderProductsPage() {
286
314
  const groups = groupBy(filteredProducts, (item) => value(item.supplierName, '未识别供应商'))
287
315
  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('暂无供应商商品,上传供应商合同后在这里审核。')
294
- : Object.keys(groups).sort().map((supplier) =>
295
- h('section', { className: 'tcw-supplier-block', key: supplier },
296
- h('div', { className: 'tcw-supplier-head' }, h('strong', null, supplier), h('span', null, groups[supplier].length + ' 个商品')),
297
- table(['商品', '型号', '海关编码', '退税率', '英文品名', '管控状态'], groups[supplier], (item) => [
298
- value(item.productName),
299
- value(item.model),
300
- value(item.enrichedHsCode || item.contractHsCode),
301
- value(item.taxRefundRate),
302
- value(item.englishName),
303
- status(controlStatusText(item.controlledStatus), controlStatusLevel(item.controlledStatus))
304
- ])
305
- )
306
- )
316
+ pageToolbar('供应商商品', '供应商合同识别结果先进入待审核,确认后按供应商归类入库。', [
317
+ uploadButton('upload_supplier_contract', '上传供应商合同')
318
+ ]),
319
+ renderListPanel('供应商商品列表', 'pending-supplier-products', supplierReviews, ['供应商', '商品', '型号', '海关编码', '退税率', '英文品名', '管控状态'], (item) => {
320
+ const row = readMerged(item)
321
+ return [
322
+ value(row.supplierName),
323
+ value(row.productName || item.title),
324
+ value(row.model),
325
+ value(row.enrichedHsCode || row.contractHsCode),
326
+ value(row.taxRefundRate),
327
+ value(row.englishName),
328
+ status(controlStatusText(row.controlledStatus), controlStatusLevel(row.controlledStatus))
329
+ ]
330
+ }, '暂无供应商商品识别结果。上传供应商合同并等待智能体识别后会显示在这里。')
307
331
  )
308
332
  }
309
333
 
310
334
  function renderWorkbooksPage() {
311
- const salesReviews = reviewItems.filter((item) => item.type === 'customs_workbook')
312
335
  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) => [
336
+ pageToolbar('销售发票', '上传购销合同后审核发票字段,审核通过后生成固定模板 Excel。', [
337
+ uploadButton('upload_sales_contract', '上传购销合同'),
338
+ h('button', { className: 'tcw-btn tcw-btn-primary', disabled: busy, onClick: generateWorkbook }, '生成销售发票')
339
+ ]),
340
+ renderListPanel('购销合同识别列表', 'pending-sales-contracts', salesReviews, ['文件/标题', '发票号', '合同号', '买方', '卖方'], (item) => {
341
+ const row = readMerged(item)
342
+ return [
324
343
  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
- )
344
+ value(row.invoiceNo),
345
+ value(row.contractNo),
346
+ value(row.buyerName),
347
+ value(row.sellerName)
348
+ ]
349
+ }, '暂无购销合同识别结果。'),
350
+ panel('已生成销售发票', table(['文件名', '发票号', '合同号', '模板工作表', '状态'], filteredWorkbooks, (item) => [
351
+ value(item.fileName),
352
+ value(item.invoiceNo),
353
+ value(item.contractNo),
354
+ Array.isArray(item.sheetNames) ? item.sheetNames.join('、') : '-',
355
+ status(value(item.status, 'generated'), 'ok')
356
+ ], '暂无销售发票生成历史。'))
341
357
  )
342
358
  }
343
359
 
344
- function renderReviewDrawer(item) {
345
- return h('aside', { className: 'tcw-drawer' },
346
- 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
349
- ),
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))
360
+ function renderControlledGoodsForm() {
361
+ return h('form', { className: 'tcw-form', onSubmit: saveControlledGoods },
362
+ field('商品名称', h('input', { value: form.productName, onChange: updateForm('productName'), placeholder: '例如:高性能服务器' })),
363
+ field('海关编码', h('input', { value: form.hsCode, onChange: updateForm('hsCode'), placeholder: '例如:8471501010' })),
364
+ field('关键词', h('input', { value: form.keywords, onChange: updateForm('keywords'), placeholder: '逗号或空格分隔' })),
365
+ field('管控说明', h('input', { value: form.controlNote, onChange: updateForm('controlNote'), placeholder: '许可证、两用物项、禁限说明' })),
366
+ h('label', { className: 'tcw-check' }, h('input', { type: 'checkbox', checked: form.enabled, onChange: (event) => setForm(Object.assign({}, form, { enabled: event.target.checked })) }), '启用'),
367
+ h('button', { className: 'tcw-btn tcw-btn-primary', disabled: busy || !form.productName.trim(), type: 'submit' }, '保存')
368
+ )
369
+ }
370
+
371
+ function compactReviewList(items) {
372
+ return h('div', { className: 'tcw-compact-list' }, items.map((item) =>
373
+ h('div', { className: 'tcw-compact-row', key: item.id || item.title },
374
+ h('span', null, reviewTypeText(item.type)),
375
+ h('strong', null, item.title),
376
+ h('em', null, reviewStatusText(item.reviewStatus))
377
+ )
378
+ ))
379
+ }
380
+
381
+ function renderListPanel(title, className, rows, headers, mapRow, emptyText) {
382
+ return panel(title, h('div', { className },
383
+ h('div', { className: 'tcw-list-toolbar' },
384
+ h('label', { className: 'tcw-filter' },
385
+ h('span', null, '状态'),
386
+ h('select', { className: 'status-filter', value: statusFilter, onChange: (event) => { setStatusFilter(event.target.value); setSelectedIds([]) } },
387
+ h('option', { value: 'all' }, '全部'),
388
+ h('option', { value: 'pending' }, '待审核'),
389
+ h('option', { value: 'confirmed' }, '已审核'),
390
+ h('option', { value: 'rejected' }, '已驳回')
358
391
  )
359
392
  ),
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
- ]
393
+ h('button', { className: 'tcw-btn tcw-btn-primary', disabled: busy || selectedIds.length === 0, onClick: batchApproveSelected }, `批量审核${selectedIds.length ? ` (${selectedIds.length})` : ''}`)
394
+ ),
395
+ reviewTable(headers, rows, mapRow, emptyText)
396
+ ))
397
+ }
398
+
399
+ function reviewTable(headers, rows, mapRow, emptyText) {
400
+ return table(['', ...headers, '状态', '操作'], rows, (row) => [
401
+ h('input', {
402
+ className: 'row-selection-checkbox',
403
+ type: 'checkbox',
404
+ checked: selectedIds.includes(row.id),
405
+ disabled: !row.id || row.materializedOnly || row.reviewStatus === 'confirmed',
406
+ onChange: (event) => toggleSelected(row.id, event.target.checked)
407
+ }),
408
+ ...mapRow(row),
409
+ status(reviewStatusText(row.reviewStatus), row.reviewStatus === 'confirmed' ? 'ok' : row.reviewStatus === 'rejected' ? 'danger' : 'warn'),
410
+ h('div', { className: 'tcw-row-actions' },
411
+ h('button', { className: 'tcw-mini-btn', disabled: busy || row.materializedOnly || row.reviewStatus === 'confirmed', onClick: () => confirmReview(row) }, '审核'),
412
+ h('button', { className: 'tcw-mini-btn danger', disabled: busy || row.materializedOnly || row.reviewStatus === 'rejected', onClick: () => rejectReview(row) }, '驳回')
413
+ )
414
+ ], emptyText)
415
+ }
416
+
417
+ function toggleSelected(id, checked) {
418
+ if (!id) return
419
+ setSelectedIds(checked ? Array.from(new Set([...selectedIds, id])) : selectedIds.filter((item) => item !== id))
420
+ }
421
+
422
+ function pageToolbar(title, subtitle, actions) {
423
+ return h('div', { className: 'tcw-page-head' },
424
+ h('div', null, h('h2', null, title), h('p', null, subtitle)),
425
+ h('div', { className: 'tcw-button-row' }, actions)
369
426
  )
370
427
  }
371
428
 
372
- function uploadButton(actionKey, label, inputClass) {
373
- const id = actionKey + '-input'
429
+ function uploadButton(actionKey, label) {
374
430
  return h('label', { className: 'tcw-upload' },
375
431
  h('input', {
376
- id,
377
- className: inputClass,
378
432
  type: 'file',
379
433
  disabled: busy,
380
434
  onChange: (event) => {
@@ -396,25 +450,33 @@
396
450
  return h('div', { className: 'tcw-metric' }, h('span', null, label), h('strong', null, valueText))
397
451
  }
398
452
 
453
+ function panel(title, content) {
454
+ return h('section', { className: 'tcw-panel' }, h('h3', null, title), content)
455
+ }
456
+
399
457
  function field(label, child) {
400
458
  return h('label', { className: 'tcw-field' }, h('span', null, label), child)
401
459
  }
402
460
 
403
- function table(headers, rows, mapRow, emptyText) {
461
+ function table(headers, rows, mapRow, emptyText, onRowClick) {
404
462
  if (!rows || rows.length === 0) return empty(emptyText || '暂无数据。')
405
463
  return h('div', { className: 'tcw-table-wrap' },
406
464
  h('table', { className: 'tcw-table' },
407
465
  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)))))
466
+ h('tbody', null, rows.map((row, index) =>
467
+ h('tr', { key: row.id || index, className: onRowClick ? 'clickable' : '', onClick: onRowClick ? () => onRowClick(row) : undefined },
468
+ mapRow(row).map((cell, cellIndex) => h('td', { key: cellIndex }, cell))
469
+ )
470
+ ))
409
471
  )
410
472
  )
411
473
  }
412
474
 
413
475
  function compareBlock(label, data) {
414
476
  const entries = Object.entries(isObject(data) ? data : {})
415
- return h('section', { className: 'tcw-compare', key: label },
477
+ return h('section', { className: 'tcw-compare' },
416
478
  h('h3', null, label),
417
- entries.length === 0 ? h('p', null, '暂无') : entries.slice(0, 12).map(([key, val]) =>
479
+ entries.length === 0 ? h('p', null, '暂无') : entries.slice(0, 16).map(([key, val]) =>
418
480
  h('div', { className: 'tcw-kv', key }, h('span', null, key), h('strong', null, stringify(val)))
419
481
  )
420
482
  )
@@ -428,6 +490,8 @@
428
490
  return h('div', { className: 'tcw-empty' }, text)
429
491
  }
430
492
 
493
+ const reviewSearchKeys = ['title', 'sourceLocation']
494
+
431
495
  function normalizeData(payload) {
432
496
  const body = payload && payload.summary ? payload.summary : payload || {}
433
497
  return {
@@ -438,6 +502,34 @@
438
502
  }
439
503
  }
440
504
 
505
+ function toControlledGoodsReviewRow(item) {
506
+ return {
507
+ id: `controlled:${item.id || item.productName || item.hsCode}`,
508
+ type: 'controlled_goods',
509
+ title: item.productName || item.hsCode || '管控商品',
510
+ reviewStatus: 'confirmed',
511
+ extractedData: item,
512
+ defaultData: {},
513
+ confirmedData: item,
514
+ sourceLocation: item.sourceLocation || item.sourceFileName,
515
+ materializedOnly: true
516
+ }
517
+ }
518
+
519
+ function toSupplierProductReviewRow(item) {
520
+ return {
521
+ id: `product:${item.id || item.productName || item.model}`,
522
+ type: 'supplier_product',
523
+ title: item.productName || item.model || '供应商商品',
524
+ reviewStatus: 'confirmed',
525
+ extractedData: item,
526
+ defaultData: {},
527
+ confirmedData: item,
528
+ sourceLocation: item.sourceFileName,
529
+ materializedOnly: true
530
+ }
531
+ }
532
+
441
533
  function getResponsePayload(response) {
442
534
  if (!response) return null
443
535
  if (Object.prototype.hasOwnProperty.call(response, 'payload')) return response.payload
@@ -448,43 +540,32 @@
448
540
 
449
541
  function getActionDataPayload(response) {
450
542
  const result = getResponsePayload(response)
451
- if (result && typeof result === 'object' && Object.prototype.hasOwnProperty.call(result, 'data')) {
452
- return result.data
453
- }
543
+ if (result && typeof result === 'object' && Object.prototype.hasOwnProperty.call(result, 'data')) return result.data
454
544
  return result
455
545
  }
456
546
 
457
547
  function assertActionSuccess(response) {
458
548
  const payload = getResponsePayload(response)
459
- if (payload && payload.success === false) {
460
- throw new Error(resolveMessage(payload.message) || '操作失败')
461
- }
549
+ if (payload && payload.success === false) throw new Error(resolveMessage(payload.message) || '操作失败')
462
550
  }
463
551
 
464
552
  function collectAssistantCommands(payload) {
465
553
  if (!payload || typeof payload !== 'object') return []
466
554
  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
- }
555
+ if (Array.isArray(payload.messages)) payload.messages.forEach((message) => {
556
+ const command = normalizeAssistantCommand(message)
557
+ if (command) commands.push(command)
558
+ })
473
559
  const directCommand = normalizeAssistantCommand(payload)
474
560
  if (directCommand) commands.push(directCommand)
475
561
  return commands
476
562
  }
477
563
 
478
564
  function normalizeAssistantCommand(value) {
479
- if (!value || typeof value !== 'object' || value.commandKey !== 'assistant.chat.send_message' || !value.payload) {
480
- return null
481
- }
565
+ if (!value || typeof value !== 'object' || value.commandKey !== 'assistant.chat.send_message' || !value.payload) return null
482
566
  const text = typeof value.payload.text === 'string' && value.payload.text.trim() ? value.payload.text : ''
483
567
  if (!text) return null
484
- return {
485
- commandKey: value.commandKey,
486
- payload: Object.assign({}, value.payload, { text })
487
- }
568
+ return { commandKey: value.commandKey, payload: Object.assign({}, value.payload, { text }) }
488
569
  }
489
570
 
490
571
  function resolveMessage(message) {
@@ -502,7 +583,24 @@
502
583
  function filterItems(items, query, keys) {
503
584
  const keyword = String(query || '').trim().toLowerCase()
504
585
  if (!keyword) return items
505
- return items.filter((item) => keys.some((key) => String(item && item[key] || '').toLowerCase().includes(keyword)))
586
+ return items.filter((item) => {
587
+ const merged = Object.assign({}, item || {}, readMerged(item || {}))
588
+ return keys.some((key) => String(merged[key] || '').toLowerCase().includes(keyword))
589
+ })
590
+ }
591
+
592
+ function applyStatusFilter(items, statusFilter) {
593
+ if (!statusFilter || statusFilter === 'all') return items
594
+ return items.filter((item) => (item.reviewStatus || 'pending') === statusFilter)
595
+ }
596
+
597
+ function isPlaceholderReviewItem(item) {
598
+ const merged = readMerged(item || {})
599
+ if (!item || !item.type) return true
600
+ if (item.type === 'controlled_goods' && !merged.productName && !merged.hsCode && String(item.title || '').startsWith('管控商品文件:')) return true
601
+ if (item.type === 'supplier_product' && !merged.productName && !merged.supplierName && String(item.title || '').startsWith('供应商合同:')) return true
602
+ if (item.type === 'customs_workbook' && !merged.invoiceNo && !merged.contractNo && String(item.title || '').startsWith('购销合同:')) return true
603
+ return false
506
604
  }
507
605
 
508
606
  function groupBy(items, keyFn) {
@@ -557,31 +655,36 @@
557
655
  return 'muted'
558
656
  }
559
657
 
658
+ function pageTitle(key) {
659
+ if (key === 'overview-page') return '工作台总览'
660
+ if (key === 'controlled-goods-page') return '管控商品'
661
+ if (key === 'products-page') return '供应商商品'
662
+ return '销售发票'
663
+ }
664
+
665
+ function pageSubtitle(key) {
666
+ if (key === 'overview-page') return '查看处理进度、待审核数量和最近识别结果。'
667
+ if (key === 'controlled-goods-page') return '上传管控目录、审核识别结果、维护正式管控商品库。'
668
+ if (key === 'products-page') return '上传供应商合同,审核商品、HS Code、退税率和管控状态。'
669
+ return '上传购销合同,审核发票字段并生成固定模板 Excel。'
670
+ }
671
+
672
+ function isObject(value) {
673
+ return value && typeof value === 'object' && !Array.isArray(value)
674
+ }
675
+
560
676
  function injectStyles() {
561
677
  const style = document.createElement('style')
562
678
  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
- }
679
+ :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
680
  * { box-sizing: border-box; }
578
681
  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
682
  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; }
683
+ .tcw-shell { display: grid; gap: 12px; min-height: 100vh; padding: 14px 16px 18px; }
684
+ .tcw-header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 520px); gap: 12px; align-items: end; }
685
+ .tcw-title-block { display: grid; gap: 3px; }
686
+ .tcw-kicker { color: var(--tcw-primary); font-size: 12px; font-weight: 900; }
687
+ .tcw-title-block h1 { margin: 0; font-size: 22px; line-height: 1.22; }
585
688
  .tcw-title-block p, .tcw-page-head p, .tcw-drawer-head p { margin: 0; color: var(--tcw-muted); font-size: 13px; }
586
689
  .tcw-header-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
587
690
  .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 +692,74 @@ button, input { font: inherit; letter-spacing: 0; }
589
692
  .tcw-btn:disabled, .tcw-upload:has(input:disabled) { cursor: not-allowed; opacity: .55; }
590
693
  .tcw-btn-primary { border-color: var(--tcw-primary); background: var(--tcw-primary); color: #fff; }
591
694
  .tcw-btn-primary:hover:not(:disabled) { background: var(--tcw-primary-dark); }
592
- .tcw-btn-soft { background: var(--tcw-card-soft); }
695
+ .tcw-btn-soft { background: var(--tcw-soft); }
593
696
  .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; }
697
+ .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
698
  .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; }
699
+ .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; }
700
+ .tcw-tabs { display: flex; gap: 6px; overflow-x: auto; border-bottom: 1px solid var(--tcw-border); }
701
+ .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; }
702
+ .tcw-tab.active { border-color: var(--tcw-primary); color: var(--tcw-primary); }
703
+ .tcw-main { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; }
704
+ .tcw-main.with-drawer { grid-template-columns: minmax(0, 1fr) minmax(340px, 410px); }
705
+ .tcw-content, .tcw-drawer, .tcw-panel, .tcw-supplier-block { border: 1px solid var(--tcw-border); border-radius: 8px; background: var(--tcw-card); }
706
+ .tcw-content { min-width: 0; padding: 12px; }
707
+ .tcw-page { display: grid; gap: 12px; }
708
+ .tcw-page-head, .tcw-drawer-head, .tcw-supplier-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
709
+ .tcw-page-head h2, .tcw-drawer-head h2, .tcw-panel h3 { margin: 0 0 4px; font-size: 16px; line-height: 1.35; }
710
+ .tcw-button-row { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
711
+ .tcw-panel { display: grid; gap: 10px; padding: 12px; }
597
712
  .tcw-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
598
713
  .tcw-metric { display: grid; gap: 4px; border: 1px solid var(--tcw-border); border-radius: 8px; background: var(--tcw-card); padding: 12px; }
599
714
  .tcw-metric span { color: var(--tcw-muted); font-size: 12px; }
600
715
  .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; }
716
+ .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
717
  .tcw-field { display: grid; gap: 5px; min-width: 0; }
613
- .tcw-field span { color: var(--tcw-muted); font-size: 12px; font-weight: 700; }
718
+ .tcw-field span { color: var(--tcw-muted); font-size: 12px; font-weight: 800; }
614
719
  .tcw-check { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; color: var(--tcw-muted); font-size: 13px; }
615
720
  .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; }
721
+ .tcw-table { width: 100%; min-width: 840px; border-collapse: collapse; font-size: 12px; }
617
722
  .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; }
723
+ .tcw-table th { background: var(--tcw-soft); color: var(--tcw-muted); font-size: 11px; font-weight: 900; }
619
724
  .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; }
725
+ .tcw-table tr.clickable { cursor: pointer; }
726
+ .tcw-table tr.clickable:hover td { background: color-mix(in srgb, var(--tcw-primary) 5%, transparent); }
727
+ .tcw-list-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
728
+ .tcw-filter { display: inline-flex; align-items: center; gap: 8px; color: var(--tcw-muted); font-size: 13px; font-weight: 800; }
729
+ .tcw-filter select { min-height: 34px; border: 1px solid var(--tcw-border); border-radius: 6px; background: var(--tcw-card); color: var(--tcw-text); padding: 6px 28px 6px 9px; }
730
+ .tcw-row-actions { display: flex; flex-wrap: wrap; gap: 6px; }
731
+ .tcw-mini-btn { min-height: 28px; border: 1px solid color-mix(in srgb, var(--tcw-primary) 35%, var(--tcw-border)); border-radius: 6px; background: color-mix(in srgb, var(--tcw-primary) 6%, var(--tcw-card)); color: var(--tcw-primary); padding: 4px 8px; cursor: pointer; font-size: 12px; font-weight: 800; }
732
+ .tcw-mini-btn.danger { border-color: color-mix(in srgb, var(--tcw-danger) 35%, var(--tcw-border)); background: color-mix(in srgb, var(--tcw-danger) 6%, var(--tcw-card)); color: var(--tcw-danger); }
733
+ .tcw-mini-btn:disabled { cursor: not-allowed; opacity: .5; }
734
+ .row-selection-checkbox { width: 16px; height: 16px; }
735
+ .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
736
  .tcw-supplier-block { display: grid; gap: 10px; padding: 12px; }
622
737
  .tcw-supplier-head strong { font-size: 15px; }
623
738
  .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; }
739
+ .tcw-drawer { position: sticky; top: 10px; display: grid; gap: 12px; padding: 14px; max-height: calc(100vh - 24px); overflow: auto; }
740
+ .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; }
741
+ .tcw-compact-list { display: grid; gap: 7px; }
742
+ .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; }
743
+ .tcw-compact-row span { color: var(--tcw-primary); font-size: 12px; font-weight: 900; }
744
+ .tcw-compact-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
745
+ .tcw-compact-row em { color: var(--tcw-muted); font-size: 12px; font-style: normal; }
631
746
  .tcw-compare { display: grid; gap: 6px; border-top: 1px solid var(--tcw-border); padding-top: 10px; }
632
747
  .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; }
748
+ .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
749
  .tcw-kv span { color: var(--tcw-muted); font-size: 11px; }
635
750
  .tcw-kv strong { overflow-wrap: anywhere; font-size: 12px; font-weight: 700; }
636
751
  .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; }
752
+ .tcw-evidence span { color: var(--tcw-muted); font-size: 11px; font-weight: 900; }
638
753
  .tcw-evidence strong { overflow-wrap: anywhere; font-size: 12px; }
639
754
  .tcw-status { display: inline-flex; width: fit-content; align-items: center; border-radius: 999px; padding: 3px 8px; font-size: 11px; font-weight: 900; }
640
755
  .tcw-status.ok { background: #e8f7ef; color: var(--tcw-success); }
641
756
  .tcw-status.warn { background: #fff4df; color: var(--tcw-warning); }
642
757
  .tcw-status.danger { background: #fde8e6; color: var(--tcw-danger); }
643
758
  .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; }
759
+ @media (max-width: 1040px) {
760
+ .tcw-header, .tcw-main.with-drawer, .tcw-form { grid-template-columns: 1fr; }
646
761
  .tcw-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
647
- .tcw-drawer { position: static; }
762
+ .tcw-drawer { position: static; max-height: none; }
648
763
  }
649
764
  `
650
765
  document.head.appendChild(style)
@@ -655,17 +770,9 @@ button, input { font: inherit; letter-spacing: 0; }
655
770
  if (!isObject(message) || message.channel !== CHANNEL || message.protocolVersion !== VERSION) return
656
771
  if (message.type === 'init') {
657
772
  instanceId = message.instanceId
658
- if (window.XpertRemoteUI && typeof window.XpertRemoteUI.applyTheme === 'function') {
659
- window.XpertRemoteUI.applyTheme(message.theme)
660
- }
773
+ if (window.XpertRemoteUI && typeof window.XpertRemoteUI.applyTheme === 'function') window.XpertRemoteUI.applyTheme(message.theme)
661
774
  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
- })
775
+ window.__tradeComplianceSetContext({ manifest: message.manifest, payload: message.payload, initialQuery: message.initialQuery || {}, locale: message.locale, theme: message.theme })
669
776
  }
670
777
  setTimeout(reportResize, 0)
671
778
  return
@@ -678,11 +785,8 @@ button, input { font: inherit; letter-spacing: 0; }
678
785
  if (message.requestId && pending.has(message.requestId)) {
679
786
  const item = pending.get(message.requestId)
680
787
  pending.delete(message.requestId)
681
- if (message.type === 'error') {
682
- item.reject(new Error(message.message || '远程请求失败'))
683
- } else {
684
- item.resolve(message)
685
- }
788
+ if (message.type === 'error') item.reject(new Error(message.message || '远程请求失败'))
789
+ else item.resolve(message)
686
790
  }
687
791
  })
688
792
 
@@ -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;IA+F9F,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;IAoE3B,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;YA8DnB,8BAA8B;CA+C7C"}
@@ -102,6 +102,8 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
102
102
  },
103
103
  { key: 'confirm_review_item', label: text('Confirm Item', '确认单条'), icon: 'ri-check-line', actionType: 'invoke' },
104
104
  { key: 'confirm_review_items', label: text('Confirm Selected', '批量确认'), icon: 'ri-check-double-line', actionType: 'invoke' },
105
+ { key: 'reject_review_item', label: text('Reject Item', '驳回单条'), icon: 'ri-close-line', actionType: 'invoke' },
106
+ { key: 'reject_review_items', label: text('Reject Selected', '批量驳回'), icon: 'ri-close-circle-line', actionType: 'invoke' },
105
107
  { key: 'save_controlled_goods', label: text('Save Controlled Goods', '保存管控商品'), icon: 'ri-save-line', actionType: 'invoke' },
106
108
  { key: 'generate_customs_workbook', label: text('Generate Workbook', '生成报关资料'), icon: 'ri-file-excel-line', actionType: 'invoke' }
107
109
  ]
@@ -155,11 +157,24 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
155
157
  if (!itemId) {
156
158
  return failure('itemId is required', '缺少 itemId');
157
159
  }
158
- return success(await this.service.confirmReviewItem(scope, itemId, readRecord(request.input, 'confirmedData')));
160
+ const item = await this.service.confirmReviewItem(scope, itemId, readRecord(request.input, 'confirmedData'));
161
+ return success(await this.materializeConfirmedReviewItem(scope, item));
159
162
  }
160
163
  if (actionKey === 'confirm_review_items') {
161
164
  const itemIds = readStringArray(request.input, 'itemIds');
162
- return success(await this.service.confirmReviewItems(scope, itemIds));
165
+ const items = await this.service.confirmReviewItems(scope, itemIds);
166
+ return success(await Promise.all(items.map((item) => this.materializeConfirmedReviewItem(scope, item))));
167
+ }
168
+ if (actionKey === 'reject_review_item') {
169
+ const itemId = readString(request.input, 'itemId');
170
+ if (!itemId) {
171
+ return failure('itemId is required', '缺少 itemId');
172
+ }
173
+ return success(await this.service.rejectReviewItem(scope, itemId));
174
+ }
175
+ if (actionKey === 'reject_review_items') {
176
+ const itemIds = readStringArray(request.input, 'itemIds');
177
+ return success(await this.service.rejectReviewItems(scope, itemIds));
163
178
  }
164
179
  if (actionKey === 'refresh') {
165
180
  return { success: true, message: text('Refreshed', '已刷新'), refresh: true };
@@ -214,18 +229,7 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
214
229
  type: 'controlled_goods_file',
215
230
  sourceFileName: fileName,
216
231
  metadata: { fileName, size: getFileSize(file), mimeType: getFileMimeType(file) },
217
- items: [{
218
- type: 'controlled_goods',
219
- title: `管控商品文件:${fileName}`,
220
- extractedData: { sourceFileName: fileName },
221
- defaultData: { enabled: true },
222
- fields: [
223
- { key: 'productName', label: '商品名称', required: true },
224
- { key: 'hsCode', label: '海关编码' },
225
- { key: 'controlNote', label: '管控说明' }
226
- ],
227
- sourceLocation: fileName
228
- }]
232
+ items: []
229
233
  });
230
234
  return parsingStarted(buildAssistantCommand({
231
235
  action: 'parse_controlled_goods_file',
@@ -241,23 +245,7 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
241
245
  type: 'supplier_contract',
242
246
  sourceFileName: fileName,
243
247
  metadata: { fileName, size: getFileSize(file), mimeType: getFileMimeType(file) },
244
- items: [{
245
- type: 'supplier_product',
246
- title: `供应商合同:${fileName}`,
247
- extractedData: { sourceFileName: fileName },
248
- defaultData: { controlledStatus: 'unchecked' },
249
- fields: [
250
- { key: 'supplierName', label: '供应商', required: true },
251
- { key: 'productName', label: '商品名称', required: true },
252
- { key: 'model', label: '型号' },
253
- { key: 'enrichedHsCode', label: '海关编码' },
254
- { key: 'taxRefundRate', label: '退税率' },
255
- { key: 'englishName', label: '英文品名' },
256
- { key: 'controlledStatus', label: '管控状态' },
257
- { key: 'controlNote', label: '管控说明' }
258
- ],
259
- sourceLocation: fileName
260
- }]
248
+ items: []
261
249
  });
262
250
  return parsingStarted(buildAssistantCommand({
263
251
  action: 'parse_supplier_contract',
@@ -273,20 +261,7 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
273
261
  type: 'sales_contract',
274
262
  sourceFileName: fileName,
275
263
  metadata: { fileName, size: getFileSize(file), mimeType: getFileMimeType(file) },
276
- items: [{
277
- type: 'customs_workbook',
278
- title: `购销合同:${fileName}`,
279
- extractedData: { sourceFileName: fileName },
280
- defaultData: { currency: 'USD' },
281
- fields: [
282
- { key: 'invoiceNo', label: '发票号' },
283
- { key: 'contractNo', label: '合同号' },
284
- { key: 'buyerName', label: '买方' },
285
- { key: 'sellerName', label: '卖方' },
286
- { key: 'items', label: '商品明细' }
287
- ],
288
- sourceLocation: fileName
289
- }]
264
+ items: []
290
265
  });
291
266
  return parsingStarted(buildAssistantCommand({
292
267
  action: 'parse_sales_contract',
@@ -299,6 +274,51 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
299
274
  }
300
275
  return failure('Unsupported file action', '不支持的文件操作');
301
276
  }
277
+ async materializeConfirmedReviewItem(scope, item) {
278
+ const data = mergeReviewData(item.defaultData, item.extractedData, item.confirmedData);
279
+ if (item.type === 'controlled_goods') {
280
+ const productName = readString(data, 'productName') ?? item.title;
281
+ return {
282
+ item,
283
+ materialized: await this.service.saveControlledGoods(scope, {
284
+ productName,
285
+ hsCode: readString(data, 'hsCode'),
286
+ keywords: readStringArray(data, 'keywords'),
287
+ controlNote: readString(data, 'controlNote'),
288
+ enabled: readBoolean(data, 'enabled') ?? true,
289
+ sourceFileName: readString(data, 'sourceFileName'),
290
+ sourceLocation: item.sourceLocation ?? readString(data, 'sourceLocation')
291
+ })
292
+ };
293
+ }
294
+ if (item.type === 'supplier_product') {
295
+ const supplierName = readString(data, 'supplierName') ?? '未识别供应商';
296
+ const productName = readString(data, 'productName') ?? item.title;
297
+ return {
298
+ item,
299
+ materialized: await this.service.saveSupplierProduct(scope, {
300
+ supplierName,
301
+ supplierCreditCode: readString(data, 'supplierCreditCode'),
302
+ supplierAddress: readString(data, 'supplierAddress'),
303
+ productName,
304
+ model: readString(data, 'model'),
305
+ description: readString(data, 'description'),
306
+ quantity: readNumber(data, 'quantity'),
307
+ unit: readString(data, 'unit'),
308
+ taxInclusiveUnitPrice: readNumber(data, 'taxInclusiveUnitPrice'),
309
+ taxInclusiveTotalAmount: readNumber(data, 'taxInclusiveTotalAmount'),
310
+ contractHsCode: readString(data, 'contractHsCode'),
311
+ enrichedHsCode: readString(data, 'enrichedHsCode'),
312
+ taxRefundRate: readString(data, 'taxRefundRate'),
313
+ englishName: readString(data, 'englishName'),
314
+ controlledStatus: readControlledGoodsStatus(data, 'controlledStatus'),
315
+ controlNote: readString(data, 'controlNote'),
316
+ matchedControlledGoods: readRecordArray(data, 'matchedControlledGoods')
317
+ })
318
+ };
319
+ }
320
+ return { item, materialized: null };
321
+ }
302
322
  };
303
323
  TradeComplianceWorkbenchViewProvider = __decorate([
304
324
  Injectable(),
@@ -359,6 +379,31 @@ function readBoolean(input, key) {
359
379
  const value = typeof input === 'object' && input != null ? Reflect.get(input, key) : undefined;
360
380
  return typeof value === 'boolean' ? value : undefined;
361
381
  }
382
+ function readNumber(input, key) {
383
+ const value = typeof input === 'object' && input != null ? Reflect.get(input, key) : undefined;
384
+ if (typeof value === 'number' && Number.isFinite(value))
385
+ return value;
386
+ if (typeof value === 'string' && value.trim()) {
387
+ const parsed = Number(value.replace(/,/g, ''));
388
+ return Number.isFinite(parsed) ? parsed : undefined;
389
+ }
390
+ return undefined;
391
+ }
392
+ function readRecordArray(input, key) {
393
+ const value = typeof input === 'object' && input != null ? Reflect.get(input, key) : undefined;
394
+ return Array.isArray(value)
395
+ ? value.filter((item) => typeof item === 'object' && item != null && !Array.isArray(item))
396
+ : undefined;
397
+ }
398
+ function readControlledGoodsStatus(input, key) {
399
+ const value = readString(input, key);
400
+ return value === 'unchecked' || value === 'not_controlled' || value === 'suspected' || value === 'controlled'
401
+ ? value
402
+ : undefined;
403
+ }
404
+ function mergeReviewData(...records) {
405
+ return Object.assign({}, ...records.filter(Boolean));
406
+ }
362
407
  function getFileDisplayName(file, input) {
363
408
  return readString(input, 'name') ?? readString(input, 'fileName') ?? getFileName(file) ?? 'uploaded-document';
364
409
  }
@@ -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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"}
@@ -66,6 +66,8 @@ export declare class TradeComplianceWorkbenchService {
66
66
  listReviewItems(scope: TradeComplianceScope, batchId?: string): Promise<TradeComplianceReviewItem[]>;
67
67
  confirmReviewItem(scope: TradeComplianceScope, itemId: string, confirmedData?: Record<string, unknown>): Promise<TradeComplianceReviewItem>;
68
68
  confirmReviewItems(scope: TradeComplianceScope, itemIds: string[]): Promise<TradeComplianceReviewItem[]>;
69
+ rejectReviewItem(scope: TradeComplianceScope, itemId: string): Promise<TradeComplianceReviewItem>;
70
+ rejectReviewItems(scope: TradeComplianceScope, itemIds: string[]): Promise<TradeComplianceReviewItem[]>;
69
71
  saveControlledGoods(scope: TradeComplianceScope, input: SaveControlledGoodsInput): Promise<ControlledGoodsRecord>;
70
72
  listControlledGoods(scope: TradeComplianceScope): Promise<ControlledGoodsRecord[]>;
71
73
  saveSupplierProduct(scope: TradeComplianceScope, input: SaveSupplierProductInput): Promise<TradeProduct>;
@@ -1 +1 @@
1
- {"version":3,"file":"trade-compliance-workbench.service.d.ts","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trade-compliance-workbench.service.d.ts","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench.service.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,26 @@ let TradeComplianceWorkbenchService = class TradeComplianceWorkbenchService {
62
62
  }
63
63
  return confirmed;
64
64
  }
65
+ async rejectReviewItem(scope, itemId) {
66
+ const item = await this.reviewItemRepository.findOne({
67
+ where: {
68
+ ...scopeWhere(scope),
69
+ id: itemId
70
+ }
71
+ });
72
+ if (!item) {
73
+ throw new NotFoundException(`Review item not found: ${itemId}`);
74
+ }
75
+ item.reviewStatus = 'rejected';
76
+ return this.reviewItemRepository.save(item);
77
+ }
78
+ async rejectReviewItems(scope, itemIds) {
79
+ const rejected = [];
80
+ for (const itemId of itemIds) {
81
+ rejected.push(await this.rejectReviewItem(scope, itemId));
82
+ }
83
+ return rejected;
84
+ }
65
85
  async saveControlledGoods(scope, input) {
66
86
  return this.controlledGoodsRepository.save(this.controlledGoodsRepository.create({
67
87
  ...scopeColumns(scope),
@@ -1 +1 @@
1
- {"version":3,"file":"trade-compliance-workbench.service.js","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench.service.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAElD,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,YAAY,EACZ,aAAa,EACd,MAAM,qBAAqB,CAAA;AA+DrB,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAC1C,YAEmB,eAAuD,EAEvD,oBAA2D,EAE3D,yBAA4D,EAE5D,kBAA6C,EAE7C,iBAA2C,EAE3C,kBAAyD;QAVzD,oBAAe,GAAf,eAAe,CAAwC;QAEvD,yBAAoB,GAApB,oBAAoB,CAAuC;QAE3D,8BAAyB,GAAzB,yBAAyB,CAAmC;QAE5D,uBAAkB,GAAlB,kBAAkB,CAA2B;QAE7C,sBAAiB,GAAjB,iBAAiB,CAA0B;QAE3C,uBAAkB,GAAlB,kBAAkB,CAAuC;IACzE,CAAC;IAEJ,KAAK,CAAC,iBAAiB,CAAC,KAA2B,EAAE,KAA6B;QAChF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAC3C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;YAC1B,GAAG,YAAY,CAAC,KAAK,CAAC;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,gBAAgB;YACxB,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CACH,CAAA;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAChD,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACvB,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC;YAC/B,GAAG,YAAY,CAAC,KAAK,CAAC;YACtB,OAAO,EAAE,KAAK,CAAC,EAAG;YAClB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,SAAS;YACvB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,CACH,CACF,CAAA;QAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAA2B,EAAE,OAAgB;QACjE,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YACpC,KAAK,EAAE;gBACL,GAAG,UAAU,CAAC,KAAK,CAAC;gBACpB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,KAA2B,EAAE,MAAc,EAAE,aAAuC;QAC1G,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;YACnD,KAAK,EAAE;gBACL,GAAG,UAAU,CAAC,KAAK,CAAC;gBACpB,EAAE,EAAE,MAAM;aACX;SACF,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,iBAAiB,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAA;QACjE,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,CAAA;QACxG,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAA2B,EAAE,OAAiB;QACrE,MAAM,SAAS,GAAgC,EAAE,CAAA;QACjD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,SAAS,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;QAC7D,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAA2B,EAAE,KAA+B;QACpF,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CACxC,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC;YACpC,GAAG,YAAY,CAAC,KAAK,CAAC;YACtB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;YAC9B,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,cAAc,EAAE,KAAK,CAAC,cAAc;SACrC,CAAC,CACH,CAAA;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAA2B;QACnD,OAAO,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC;YACzC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;SACzB,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAA2B,EAAE,KAA+B;QACpF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAC9D,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC5B,GAAG,YAAY,CAAC,KAAK,CAAC;YACtB,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,qBAAqB,EAAE,KAAK,CAAC,qBAAqB;YAClD,uBAAuB,EAAE,KAAK,CAAC,uBAAuB;YACtD,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,WAAW;YACvD,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;SACrD,CAAC,CACH,CAAA;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAA2B;QAC5C,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YACjC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;SACzB,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,KAA2B,EAAE,KAAoC;QAC9F,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CACjC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAC7B,GAAG,YAAY,CAAC,KAAK,CAAC;YACtB,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,WAAW;YACnB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC,CAAC,CACH,CAAA;IACH,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,KAA2B;QACvD,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAClC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;SACzB,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,KAA2B,EAAE,KAA+B;QAC7F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;YACrD,KAAK,EAAE;gBACL,GAAG,UAAU,CAAC,KAAK,CAAC;gBACpB,IAAI,EAAE,KAAK,CAAC,YAAY;aACzB;SACF,CAAC,CAAA;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAA;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CACjC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YAC7B,GAAG,YAAY,CAAC,KAAK,CAAC;YACtB,IAAI,EAAE,KAAK,CAAC,YAAY;YACxB,UAAU,EAAE,KAAK,CAAC,kBAAkB;YACpC,OAAO,EAAE,KAAK,CAAC,eAAe;SAC/B,CAAC,CACH,CAAA;IACH,CAAC;CACF,CAAA;AA5KY,+BAA+B;IAD3C,UAAU,EAAE;IAGR,WAAA,gBAAgB,CAAC,0BAA0B,CAAC,CAAA;IAE5C,WAAA,gBAAgB,CAAC,yBAAyB,CAAC,CAAA;IAE3C,WAAA,gBAAgB,CAAC,qBAAqB,CAAC,CAAA;IAEvC,WAAA,gBAAgB,CAAC,aAAa,CAAC,CAAA;IAE/B,WAAA,gBAAgB,CAAC,YAAY,CAAC,CAAA;IAE9B,WAAA,gBAAgB,CAAC,yBAAyB,CAAC,CAAA;;GAZnC,+BAA+B,CA4K3C;;AAED,SAAS,YAAY,CAAC,KAA2B;IAC/C,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,SAAS;QACjD,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;QAC3C,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;QAC3C,WAAW,EAAE,KAAK,CAAC,MAAM,IAAI,SAAS;KACvC,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAA2B;IAC7C,OAAO;QACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,SAAS;KAClD,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"trade-compliance-workbench.service.js","sourceRoot":"","sources":["../../src/lib/trade-compliance-workbench.service.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.6",
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",