@chenchaolong/plugin-trade-compliance-workbench 0.1.3 → 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.
- package/dist/lib/remote-components/trade-compliance-workbench/app.js +259 -217
- package/dist/lib/trade-compliance-workbench-view.provider.d.ts +1 -0
- package/dist/lib/trade-compliance-workbench-view.provider.d.ts.map +1 -1
- package/dist/lib/trade-compliance-workbench-view.provider.js +149 -12
- package/dist/lib/trade-compliance-workbench-view.provider.js.map +1 -1
- package/package.json +2 -1
|
@@ -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
|
-
|
|
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('
|
|
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
|
|
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:
|
|
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')
|
|
@@ -132,8 +123,8 @@
|
|
|
132
123
|
try {
|
|
133
124
|
const response = await executeFileAction(actionKey, file, { name: file.name, fileName: file.name }, {})
|
|
134
125
|
assertActionSuccess(response)
|
|
135
|
-
const dispatched = await dispatchAssistantCommands(
|
|
136
|
-
showNotice(dispatched ? '文件已发送给智能体解析,识别结果会进入待审核列表。' : '
|
|
126
|
+
const dispatched = await dispatchAssistantCommands(getActionDataPayload(response))
|
|
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('
|
|
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 =
|
|
178
|
+
const salesItem = salesReviews.find((item) => item.reviewStatus === 'confirmed') || salesReviews[0]
|
|
187
179
|
setBusy(true)
|
|
188
180
|
try {
|
|
189
|
-
const base =
|
|
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(''),
|
|
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,
|
|
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('
|
|
240
|
-
tab('
|
|
241
|
-
tab('
|
|
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
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
},
|
|
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
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
),
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
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
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
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
|
-
|
|
314
|
-
|
|
315
|
-
h('
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
)
|
|
319
|
-
|
|
320
|
-
|
|
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),
|
|
326
|
-
value(
|
|
327
|
-
value(
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
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
|
|
348
|
-
|
|
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
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
h('
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
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' ? '已确认' : '确认并入库')
|
|
381
|
+
)
|
|
382
|
+
}
|
|
383
|
+
|
|
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)
|
|
369
406
|
)
|
|
370
407
|
}
|
|
371
408
|
|
|
372
|
-
function uploadButton(actionKey, label
|
|
373
|
-
const id = actionKey + '-input'
|
|
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) =>
|
|
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'
|
|
457
|
+
return h('section', { className: 'tcw-compare' },
|
|
416
458
|
h('h3', null, label),
|
|
417
|
-
entries.length === 0 ? h('p', null, '暂无') : entries.slice(0,
|
|
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 {
|
|
@@ -446,37 +490,34 @@
|
|
|
446
490
|
return response
|
|
447
491
|
}
|
|
448
492
|
|
|
493
|
+
function getActionDataPayload(response) {
|
|
494
|
+
const result = getResponsePayload(response)
|
|
495
|
+
if (result && typeof result === 'object' && Object.prototype.hasOwnProperty.call(result, 'data')) return result.data
|
|
496
|
+
return result
|
|
497
|
+
}
|
|
498
|
+
|
|
449
499
|
function assertActionSuccess(response) {
|
|
450
500
|
const payload = getResponsePayload(response)
|
|
451
|
-
if (payload && payload.success === false)
|
|
452
|
-
throw new Error(resolveMessage(payload.message) || '操作失败')
|
|
453
|
-
}
|
|
501
|
+
if (payload && payload.success === false) throw new Error(resolveMessage(payload.message) || '操作失败')
|
|
454
502
|
}
|
|
455
503
|
|
|
456
504
|
function collectAssistantCommands(payload) {
|
|
457
505
|
if (!payload || typeof payload !== 'object') return []
|
|
458
506
|
const commands = []
|
|
459
|
-
if (Array.isArray(payload.messages)) {
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
})
|
|
464
|
-
}
|
|
507
|
+
if (Array.isArray(payload.messages)) payload.messages.forEach((message) => {
|
|
508
|
+
const command = normalizeAssistantCommand(message)
|
|
509
|
+
if (command) commands.push(command)
|
|
510
|
+
})
|
|
465
511
|
const directCommand = normalizeAssistantCommand(payload)
|
|
466
512
|
if (directCommand) commands.push(directCommand)
|
|
467
513
|
return commands
|
|
468
514
|
}
|
|
469
515
|
|
|
470
516
|
function normalizeAssistantCommand(value) {
|
|
471
|
-
if (!value || typeof value !== 'object' || value.commandKey !== 'assistant.chat.send_message' || !value.payload)
|
|
472
|
-
return null
|
|
473
|
-
}
|
|
517
|
+
if (!value || typeof value !== 'object' || value.commandKey !== 'assistant.chat.send_message' || !value.payload) return null
|
|
474
518
|
const text = typeof value.payload.text === 'string' && value.payload.text.trim() ? value.payload.text : ''
|
|
475
519
|
if (!text) return null
|
|
476
|
-
return {
|
|
477
|
-
commandKey: value.commandKey,
|
|
478
|
-
payload: Object.assign({}, value.payload, { text })
|
|
479
|
-
}
|
|
520
|
+
return { commandKey: value.commandKey, payload: Object.assign({}, value.payload, { text }) }
|
|
480
521
|
}
|
|
481
522
|
|
|
482
523
|
function resolveMessage(message) {
|
|
@@ -494,7 +535,10 @@
|
|
|
494
535
|
function filterItems(items, query, keys) {
|
|
495
536
|
const keyword = String(query || '').trim().toLowerCase()
|
|
496
537
|
if (!keyword) return items
|
|
497
|
-
return items.filter((item) =>
|
|
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
|
+
})
|
|
498
542
|
}
|
|
499
543
|
|
|
500
544
|
function groupBy(items, keyFn) {
|
|
@@ -549,31 +593,36 @@
|
|
|
549
593
|
return 'muted'
|
|
550
594
|
}
|
|
551
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
|
+
|
|
552
614
|
function injectStyles() {
|
|
553
615
|
const style = document.createElement('style')
|
|
554
616
|
style.textContent = `
|
|
555
|
-
:root {
|
|
556
|
-
color-scheme: light;
|
|
557
|
-
--tcw-bg: #f4f6f8;
|
|
558
|
-
--tcw-card: #ffffff;
|
|
559
|
-
--tcw-card-soft: #f8fafb;
|
|
560
|
-
--tcw-text: #17202e;
|
|
561
|
-
--tcw-muted: #5d6b7a;
|
|
562
|
-
--tcw-border: #dbe2ea;
|
|
563
|
-
--tcw-primary: #176b87;
|
|
564
|
-
--tcw-primary-dark: #0f5167;
|
|
565
|
-
--tcw-success: #1b7f4c;
|
|
566
|
-
--tcw-warning: #a35f00;
|
|
567
|
-
--tcw-danger: #b42318;
|
|
568
|
-
}
|
|
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; }
|
|
569
618
|
* { box-sizing: border-box; }
|
|
570
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; }
|
|
571
620
|
button, input { font: inherit; letter-spacing: 0; }
|
|
572
|
-
.tcw-shell { display: grid; gap:
|
|
573
|
-
.tcw-header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(
|
|
574
|
-
.tcw-title-block { display: grid; gap:
|
|
575
|
-
.tcw-kicker { color: var(--tcw-primary); font-size: 12px; font-weight:
|
|
576
|
-
.tcw-title-block h1 { margin: 0; font-size:
|
|
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; }
|
|
577
626
|
.tcw-title-block p, .tcw-page-head p, .tcw-drawer-head p { margin: 0; color: var(--tcw-muted); font-size: 13px; }
|
|
578
627
|
.tcw-header-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
|
|
579
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; }
|
|
@@ -581,62 +630,66 @@ button, input { font: inherit; letter-spacing: 0; }
|
|
|
581
630
|
.tcw-btn:disabled, .tcw-upload:has(input:disabled) { cursor: not-allowed; opacity: .55; }
|
|
582
631
|
.tcw-btn-primary { border-color: var(--tcw-primary); background: var(--tcw-primary); color: #fff; }
|
|
583
632
|
.tcw-btn-primary:hover:not(:disabled) { background: var(--tcw-primary-dark); }
|
|
584
|
-
.tcw-btn-soft { background: var(--tcw-
|
|
633
|
+
.tcw-btn-soft { background: var(--tcw-soft); }
|
|
585
634
|
.tcw-wide { width: 100%; }
|
|
586
|
-
.tcw-upload { border-style: dashed; border-color: color-mix(in srgb, var(--tcw-primary) 42%, var(--tcw-border)); color: var(--tcw-primary); font-weight:
|
|
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; }
|
|
587
636
|
.tcw-upload input { display: none; }
|
|
588
|
-
.tcw-notice { border: 1px solid color-mix(in srgb, var(--tcw-primary)
|
|
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; }
|
|
589
650
|
.tcw-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
|
|
590
651
|
.tcw-metric { display: grid; gap: 4px; border: 1px solid var(--tcw-border); border-radius: 8px; background: var(--tcw-card); padding: 12px; }
|
|
591
652
|
.tcw-metric span { color: var(--tcw-muted); font-size: 12px; }
|
|
592
653
|
.tcw-metric strong { font-size: 22px; line-height: 1; }
|
|
593
|
-
.tcw-
|
|
594
|
-
.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; }
|
|
595
|
-
.tcw-tab.active { border-color: var(--tcw-primary); color: var(--tcw-primary); }
|
|
596
|
-
.tcw-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 390px); gap: 14px; align-items: start; }
|
|
597
|
-
.tcw-content, .tcw-drawer, .tcw-supplier-block { border: 1px solid var(--tcw-border); border-radius: 8px; background: var(--tcw-card); }
|
|
598
|
-
.tcw-content { min-width: 0; padding: 14px; }
|
|
599
|
-
.tcw-page { display: grid; gap: 14px; }
|
|
600
|
-
.tcw-page-head, .tcw-drawer-head, .tcw-supplier-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
|
|
601
|
-
.tcw-page-head h2, .tcw-drawer-head h2, .tcw-split h3 { margin: 0 0 5px; font-size: 17px; line-height: 1.35; }
|
|
602
|
-
.tcw-button-row { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
|
|
603
|
-
.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; }
|
|
604
655
|
.tcw-field { display: grid; gap: 5px; min-width: 0; }
|
|
605
|
-
.tcw-field span { color: var(--tcw-muted); font-size: 12px; font-weight:
|
|
656
|
+
.tcw-field span { color: var(--tcw-muted); font-size: 12px; font-weight: 800; }
|
|
606
657
|
.tcw-check { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; color: var(--tcw-muted); font-size: 13px; }
|
|
607
658
|
.tcw-table-wrap { overflow: auto; border: 1px solid var(--tcw-border); border-radius: 8px; }
|
|
608
|
-
.tcw-table { width: 100%; min-width:
|
|
659
|
+
.tcw-table { width: 100%; min-width: 840px; border-collapse: collapse; font-size: 12px; }
|
|
609
660
|
.tcw-table th, .tcw-table td { border-bottom: 1px solid var(--tcw-border); padding: 10px; text-align: left; vertical-align: top; }
|
|
610
|
-
.tcw-table th { background: var(--tcw-
|
|
661
|
+
.tcw-table th { background: var(--tcw-soft); color: var(--tcw-muted); font-size: 11px; font-weight: 900; }
|
|
611
662
|
.tcw-table tr:last-child td { border-bottom: 0; }
|
|
612
|
-
.tcw-
|
|
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; }
|
|
613
666
|
.tcw-supplier-block { display: grid; gap: 10px; padding: 12px; }
|
|
614
667
|
.tcw-supplier-head strong { font-size: 15px; }
|
|
615
668
|
.tcw-supplier-head span { color: var(--tcw-muted); font-size: 12px; }
|
|
616
|
-
.tcw-
|
|
617
|
-
.tcw-
|
|
618
|
-
.tcw-
|
|
619
|
-
.tcw-
|
|
620
|
-
.tcw-
|
|
621
|
-
.tcw-
|
|
622
|
-
.tcw-
|
|
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; }
|
|
623
676
|
.tcw-compare { display: grid; gap: 6px; border-top: 1px solid var(--tcw-border); padding-top: 10px; }
|
|
624
677
|
.tcw-compare h3 { margin: 0; font-size: 13px; }
|
|
625
|
-
.tcw-kv { display: grid; grid-template-columns: minmax(92px, .
|
|
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; }
|
|
626
679
|
.tcw-kv span { color: var(--tcw-muted); font-size: 11px; }
|
|
627
680
|
.tcw-kv strong { overflow-wrap: anywhere; font-size: 12px; font-weight: 700; }
|
|
628
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; }
|
|
629
|
-
.tcw-evidence span { color: var(--tcw-muted); font-size: 11px; font-weight:
|
|
682
|
+
.tcw-evidence span { color: var(--tcw-muted); font-size: 11px; font-weight: 900; }
|
|
630
683
|
.tcw-evidence strong { overflow-wrap: anywhere; font-size: 12px; }
|
|
631
684
|
.tcw-status { display: inline-flex; width: fit-content; align-items: center; border-radius: 999px; padding: 3px 8px; font-size: 11px; font-weight: 900; }
|
|
632
685
|
.tcw-status.ok { background: #e8f7ef; color: var(--tcw-success); }
|
|
633
686
|
.tcw-status.warn { background: #fff4df; color: var(--tcw-warning); }
|
|
634
687
|
.tcw-status.danger { background: #fde8e6; color: var(--tcw-danger); }
|
|
635
688
|
.tcw-status.muted { background: #eef2f6; color: var(--tcw-muted); }
|
|
636
|
-
@media (max-width:
|
|
637
|
-
.tcw-header, .tcw-main
|
|
689
|
+
@media (max-width: 1040px) {
|
|
690
|
+
.tcw-header, .tcw-main.with-drawer, .tcw-form { grid-template-columns: 1fr; }
|
|
638
691
|
.tcw-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
|
|
639
|
-
.tcw-drawer { position: static; }
|
|
692
|
+
.tcw-drawer { position: static; max-height: none; }
|
|
640
693
|
}
|
|
641
694
|
`
|
|
642
695
|
document.head.appendChild(style)
|
|
@@ -647,17 +700,9 @@ button, input { font: inherit; letter-spacing: 0; }
|
|
|
647
700
|
if (!isObject(message) || message.channel !== CHANNEL || message.protocolVersion !== VERSION) return
|
|
648
701
|
if (message.type === 'init') {
|
|
649
702
|
instanceId = message.instanceId
|
|
650
|
-
if (window.XpertRemoteUI && typeof window.XpertRemoteUI.applyTheme === 'function')
|
|
651
|
-
window.XpertRemoteUI.applyTheme(message.theme)
|
|
652
|
-
}
|
|
703
|
+
if (window.XpertRemoteUI && typeof window.XpertRemoteUI.applyTheme === 'function') window.XpertRemoteUI.applyTheme(message.theme)
|
|
653
704
|
if (window.__tradeComplianceSetContext) {
|
|
654
|
-
window.__tradeComplianceSetContext({
|
|
655
|
-
manifest: message.manifest,
|
|
656
|
-
payload: message.payload,
|
|
657
|
-
initialQuery: message.initialQuery || {},
|
|
658
|
-
locale: message.locale,
|
|
659
|
-
theme: message.theme
|
|
660
|
-
})
|
|
705
|
+
window.__tradeComplianceSetContext({ manifest: message.manifest, payload: message.payload, initialQuery: message.initialQuery || {}, locale: message.locale, theme: message.theme })
|
|
661
706
|
}
|
|
662
707
|
setTimeout(reportResize, 0)
|
|
663
708
|
return
|
|
@@ -670,11 +715,8 @@ button, input { font: inherit; letter-spacing: 0; }
|
|
|
670
715
|
if (message.requestId && pending.has(message.requestId)) {
|
|
671
716
|
const item = pending.get(message.requestId)
|
|
672
717
|
pending.delete(message.requestId)
|
|
673
|
-
if (message.type === 'error')
|
|
674
|
-
|
|
675
|
-
} else {
|
|
676
|
-
item.resolve(message)
|
|
677
|
-
}
|
|
718
|
+
if (message.type === 'error') item.reject(new Error(message.message || '远程请求失败'))
|
|
719
|
+
else item.resolve(message)
|
|
678
720
|
}
|
|
679
721
|
})
|
|
680
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":"
|
|
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"}
|
|
@@ -2,8 +2,10 @@ import { __decorate, __metadata } from "tslib";
|
|
|
2
2
|
import { Injectable } from '@nestjs/common';
|
|
3
3
|
import { readFile } from 'fs/promises';
|
|
4
4
|
import { createRequire } from 'module';
|
|
5
|
-
import { dirname, join } from 'path';
|
|
5
|
+
import { dirname, extname, join } from 'path';
|
|
6
6
|
import { fileURLToPath } from 'url';
|
|
7
|
+
import mammoth from 'mammoth';
|
|
8
|
+
import * as XLSX from 'xlsx';
|
|
7
9
|
import { renderRemoteReactIframeHtml, ViewExtensionProvider } from '@xpert-ai/plugin-sdk';
|
|
8
10
|
import { AGENT_WORKBENCH_FIXED_SLOT, AGENT_WORKBENCH_MAIN_SLOT, TRADE_COMPLIANCE_FEATURE, TRADE_COMPLIANCE_ICON, TRADE_COMPLIANCE_PLUGIN_NAME, TRADE_COMPLIANCE_PROVIDER_KEY, TRADE_COMPLIANCE_REMOTE_ENTRY_KEY, TRADE_COMPLIANCE_VIEW_KEY } from './constants.js';
|
|
9
11
|
import { TradeComplianceWorkbenchService } from './trade-compliance-workbench.service.js';
|
|
@@ -153,11 +155,13 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
|
|
|
153
155
|
if (!itemId) {
|
|
154
156
|
return failure('itemId is required', '缺少 itemId');
|
|
155
157
|
}
|
|
156
|
-
|
|
158
|
+
const item = await this.service.confirmReviewItem(scope, itemId, readRecord(request.input, 'confirmedData'));
|
|
159
|
+
return success(await this.materializeConfirmedReviewItem(scope, item));
|
|
157
160
|
}
|
|
158
161
|
if (actionKey === 'confirm_review_items') {
|
|
159
162
|
const itemIds = readStringArray(request.input, 'itemIds');
|
|
160
|
-
|
|
163
|
+
const items = await this.service.confirmReviewItems(scope, itemIds);
|
|
164
|
+
return success(await Promise.all(items.map((item) => this.materializeConfirmedReviewItem(scope, item))));
|
|
161
165
|
}
|
|
162
166
|
if (actionKey === 'refresh') {
|
|
163
167
|
return { success: true, message: text('Refreshed', '已刷新'), refresh: true };
|
|
@@ -206,6 +210,7 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
|
|
|
206
210
|
}
|
|
207
211
|
const scope = scopeFromContext(context);
|
|
208
212
|
const fileName = getFileDisplayName(file, request.input);
|
|
213
|
+
const extractedText = await extractUploadedFileText(file, fileName);
|
|
209
214
|
if (actionKey === 'upload_controlled_goods_file') {
|
|
210
215
|
const result = await this.service.createReviewBatch(scope, {
|
|
211
216
|
type: 'controlled_goods_file',
|
|
@@ -230,7 +235,7 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
|
|
|
230
235
|
fileName,
|
|
231
236
|
role: 'controlled_goods_file',
|
|
232
237
|
batchId: result.batch.id,
|
|
233
|
-
text: buildControlledGoodsParsePrompt(fileName, result.batch.id)
|
|
238
|
+
text: buildControlledGoodsParsePrompt(fileName, result.batch.id, extractedText)
|
|
234
239
|
}));
|
|
235
240
|
}
|
|
236
241
|
if (actionKey === 'upload_supplier_contract') {
|
|
@@ -262,7 +267,7 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
|
|
|
262
267
|
fileName,
|
|
263
268
|
role: 'supplier_contract',
|
|
264
269
|
batchId: result.batch.id,
|
|
265
|
-
text: buildSupplierContractParsePrompt(fileName, result.batch.id)
|
|
270
|
+
text: buildSupplierContractParsePrompt(fileName, result.batch.id, extractedText)
|
|
266
271
|
}));
|
|
267
272
|
}
|
|
268
273
|
if (actionKey === 'upload_sales_contract') {
|
|
@@ -291,11 +296,56 @@ let TradeComplianceWorkbenchViewProvider = class TradeComplianceWorkbenchViewPro
|
|
|
291
296
|
fileName,
|
|
292
297
|
role: 'sales_contract',
|
|
293
298
|
batchId: result.batch.id,
|
|
294
|
-
text: buildSalesContractParsePrompt(fileName, result.batch.id)
|
|
299
|
+
text: buildSalesContractParsePrompt(fileName, result.batch.id, extractedText)
|
|
295
300
|
}));
|
|
296
301
|
}
|
|
297
302
|
return failure('Unsupported file action', '不支持的文件操作');
|
|
298
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
|
+
}
|
|
299
349
|
};
|
|
300
350
|
TradeComplianceWorkbenchViewProvider = __decorate([
|
|
301
351
|
Injectable(),
|
|
@@ -356,6 +406,31 @@ function readBoolean(input, key) {
|
|
|
356
406
|
const value = typeof input === 'object' && input != null ? Reflect.get(input, key) : undefined;
|
|
357
407
|
return typeof value === 'boolean' ? value : undefined;
|
|
358
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
|
+
}
|
|
359
434
|
function getFileDisplayName(file, input) {
|
|
360
435
|
return readString(input, 'name') ?? readString(input, 'fileName') ?? getFileName(file) ?? 'uploaded-document';
|
|
361
436
|
}
|
|
@@ -381,6 +456,52 @@ function getFileSize(file) {
|
|
|
381
456
|
const record = file;
|
|
382
457
|
return typeof record.size === 'number' ? record.size : undefined;
|
|
383
458
|
}
|
|
459
|
+
async function extractUploadedFileText(file, fileName) {
|
|
460
|
+
const buffer = getFileBuffer(file);
|
|
461
|
+
if (!buffer)
|
|
462
|
+
return undefined;
|
|
463
|
+
const extension = extname(fileName).toLowerCase();
|
|
464
|
+
const mimeType = getFileMimeType(file)?.toLowerCase() ?? '';
|
|
465
|
+
try {
|
|
466
|
+
if (extension === '.docx' || mimeType.includes('wordprocessingml.document')) {
|
|
467
|
+
const result = await mammoth.extractRawText({ buffer });
|
|
468
|
+
return normalizeExtractedText(result.value);
|
|
469
|
+
}
|
|
470
|
+
if (extension === '.xlsx' || extension === '.xls' || extension === '.csv' || mimeType.includes('spreadsheet') || mimeType.includes('csv')) {
|
|
471
|
+
const workbook = XLSX.read(buffer, { type: 'buffer' });
|
|
472
|
+
const parts = workbook.SheetNames.map((sheetName) => {
|
|
473
|
+
const sheet = workbook.Sheets[sheetName];
|
|
474
|
+
return [`【${sheetName}】`, XLSX.utils.sheet_to_csv(sheet, { blankrows: false })].join('\n');
|
|
475
|
+
});
|
|
476
|
+
return normalizeExtractedText(parts.join('\n\n'));
|
|
477
|
+
}
|
|
478
|
+
if (extension === '.txt' || extension === '.md' || extension === '.json' || extension === '.csv' || mimeType.startsWith('text/')) {
|
|
479
|
+
return normalizeExtractedText(buffer.toString('utf8'));
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
catch (error) {
|
|
483
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
484
|
+
return `文件文本提取失败:${message}`;
|
|
485
|
+
}
|
|
486
|
+
return undefined;
|
|
487
|
+
}
|
|
488
|
+
function getFileBuffer(file) {
|
|
489
|
+
const value = file.buffer;
|
|
490
|
+
if (Buffer.isBuffer(value))
|
|
491
|
+
return value;
|
|
492
|
+
if (value instanceof ArrayBuffer)
|
|
493
|
+
return Buffer.from(value);
|
|
494
|
+
if (ArrayBuffer.isView(value))
|
|
495
|
+
return Buffer.from(value.buffer, value.byteOffset, value.byteLength);
|
|
496
|
+
return undefined;
|
|
497
|
+
}
|
|
498
|
+
function normalizeExtractedText(textValue) {
|
|
499
|
+
const value = textValue?.replace(/\r/g, '').replace(/[ \t]+\n/g, '\n').trim();
|
|
500
|
+
if (!value)
|
|
501
|
+
return undefined;
|
|
502
|
+
const limit = 50000;
|
|
503
|
+
return value.length > limit ? `${value.slice(0, limit)}\n...内容过长,已截断。` : value;
|
|
504
|
+
}
|
|
384
505
|
function buildAssistantCommand(input) {
|
|
385
506
|
const assistantFile = viewFileToAssistantFile(input.file, input.fileName, input.role);
|
|
386
507
|
const files = assistantFile.id || assistantFile.fileAssetId || assistantFile.fileId || assistantFile.storageFileId ? [assistantFile] : [];
|
|
@@ -452,16 +573,17 @@ function toChatReference(file, fileName, role) {
|
|
|
452
573
|
].join('\n')
|
|
453
574
|
};
|
|
454
575
|
}
|
|
455
|
-
function buildControlledGoodsParsePrompt(fileName, batchId) {
|
|
576
|
+
function buildControlledGoodsParsePrompt(fileName, batchId, extractedText) {
|
|
456
577
|
return [
|
|
457
578
|
`请解析我刚上传的管控商品文件《${fileName}》。`,
|
|
458
579
|
'目标:识别文件中的管控商品、关键词、海关编码、管控说明、来源页码或条款。',
|
|
459
580
|
`请调用工具 trade_compliance_save_controlled_goods_extraction 保存待审核结果,batchId 可记录为 ${batchId ?? '-'}。`,
|
|
460
581
|
'每个 items 条目的 type 必须是 controlled_goods;extractedData 中请包含 productName、hsCode、keywords、controlNote;sourceLocation 记录证据位置。',
|
|
461
|
-
'不要只回复文字,必须调用工具把识别结果写入插件。'
|
|
582
|
+
'不要只回复文字,必须调用工具把识别结果写入插件。',
|
|
583
|
+
buildExtractedTextSection(extractedText)
|
|
462
584
|
].join('\n');
|
|
463
585
|
}
|
|
464
|
-
function buildSupplierContractParsePrompt(fileName, batchId) {
|
|
586
|
+
function buildSupplierContractParsePrompt(fileName, batchId, extractedText) {
|
|
465
587
|
return [
|
|
466
588
|
`请解析我刚上传的供应商合同《${fileName}》。`,
|
|
467
589
|
'目标:识别供应商信息和商品信息,商品信息包括商品名称、型号、描述、数量、单位、含税单价、含税金额、合同里的海关编码。',
|
|
@@ -469,16 +591,31 @@ function buildSupplierContractParsePrompt(fileName, batchId) {
|
|
|
469
591
|
'再结合已有管控商品记录调用 trade_compliance_match_controlled_goods 判断是否为管控商品。',
|
|
470
592
|
`最后调用 trade_compliance_save_supplier_contract_extraction 保存待审核结果,batchId 可记录为 ${batchId ?? '-'}。`,
|
|
471
593
|
'每个 items 条目的 type 必须是 supplier_product;extractedData/defaultData 中请包含 supplierName、supplierCreditCode、supplierAddress、productName、model、description、quantity、unit、taxInclusiveUnitPrice、taxInclusiveTotalAmount、contractHsCode、enrichedHsCode、taxRefundRate、englishName、controlledStatus、controlNote。',
|
|
472
|
-
'不要只回复文字,必须调用工具把识别结果写入插件。'
|
|
594
|
+
'不要只回复文字,必须调用工具把识别结果写入插件。',
|
|
595
|
+
buildExtractedTextSection(extractedText)
|
|
473
596
|
].join('\n');
|
|
474
597
|
}
|
|
475
|
-
function buildSalesContractParsePrompt(fileName, batchId) {
|
|
598
|
+
function buildSalesContractParsePrompt(fileName, batchId, extractedText) {
|
|
476
599
|
return [
|
|
477
600
|
`请解析我刚上传的购销合同《${fileName}》。`,
|
|
478
601
|
'目标:识别销售发票和报关资料所需字段,包括发票号、合同号、买方、卖方、币种、贸易术语、付款方式、商品明细、数量、单价、金额、包装、毛重、净重等。',
|
|
479
602
|
`请调用 trade_compliance_save_sales_contract_extraction 保存待审核结果,batchId 可记录为 ${batchId ?? '-'}。`,
|
|
480
603
|
'每个 items 条目的 type 必须是 customs_workbook;extractedData 中请包含 invoiceNo、contractNo、buyerName、sellerName、currency、items 等字段。',
|
|
481
|
-
'不要只回复文字,必须调用工具把识别结果写入插件。'
|
|
604
|
+
'不要只回复文字,必须调用工具把识别结果写入插件。',
|
|
605
|
+
buildExtractedTextSection(extractedText)
|
|
606
|
+
].join('\n');
|
|
607
|
+
}
|
|
608
|
+
function buildExtractedTextSection(extractedText) {
|
|
609
|
+
if (!extractedText) {
|
|
610
|
+
return [
|
|
611
|
+
'',
|
|
612
|
+
'插件未能直接提取文件文本。如果消息中没有可读附件,请提示用户重新上传可解析的 docx、xlsx、csv 或 txt 文件。'
|
|
613
|
+
].join('\n');
|
|
614
|
+
}
|
|
615
|
+
return [
|
|
616
|
+
'',
|
|
617
|
+
'插件已从上传文件中提取到以下文本,请优先基于这些内容解析:',
|
|
618
|
+
extractedText
|
|
482
619
|
].join('\n');
|
|
483
620
|
}
|
|
484
621
|
//# sourceMappingURL=trade-compliance-workbench-view.provider.js.map
|
|
@@ -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.
|
|
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",
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
+
"mammoth": "^1.12.0",
|
|
46
47
|
"tslib": "^2.3.0",
|
|
47
48
|
"xlsx": "^0.18.5"
|
|
48
49
|
},
|