| | |
| | | // 因此统一由后端下发(/public/mes/trace/config),禁止在此硬编码。 |
| | | var COMPANY_NAME = ''; |
| | | var TRACE_URL = ''; |
| | | var TRACE_LOCATION_URL = ''; |
| | | var IS_IMPORTED = false; |
| | | |
| | | // 拉取溯源页配置;失败时不阻断查询(查询结果本身也带生产经营者与追溯网址) |
| | |
| | | if (res && res.code === 0 && res.data) { |
| | | COMPANY_NAME = res.data.operatorName || ''; |
| | | TRACE_URL = res.data.traceUrl || ''; |
| | | TRACE_LOCATION_URL = res.data.traceLocationUrl || ''; |
| | | IS_IMPORTED = !!res.data.imported; |
| | | } |
| | | }) |
| | |
| | | // 生产经营者与追溯网址优先取查询结果(与标签印刷内容同源),退回页面配置 |
| | | var operatorName = d.operatorName || COMPANY_NAME; |
| | | var traceUrl = d.traceUrl || TRACE_URL; |
| | | var locationUrl = new URL(TRACE_LOCATION_URL || location.pathname.replace(/trace\.html$/, 'trace-location.html'), location.href); |
| | | locationUrl.searchParams.set('code', code || ''); |
| | | var operatorLabel = IS_IMPORTED ? '进口商名称' : '生产经营者'; |
| | | // 只有袋码才是「最小销售单元」,其码值才称「单元识别代码」; |
| | | // 托盘码/批次码不属于最小销售单元标识,按实际类型展示,避免误导消费者 |
| | |
| | | kv(operatorLabel, text(operatorName)) + |
| | | kv(codeLabel, text(code || '-')) + |
| | | kv('追溯网址', traceUrl |
| | | ? '<a class="link" target="_top" href="' + esc(location.pathname.replace(/trace\.html$/, 'trace-location.html') + '?code=' + encodeURIComponent(code || '')) + '">' + esc(traceUrl) + '</a>' |
| | | ? '<a class="link" target="_top" href="' + esc(locationUrl.href) + '">' + esc(traceUrl) + '</a>' |
| | | : '-') + |
| | | kv('计量单位', text(d.itemUnitMeasureName)) + |
| | | kv('追溯类型', esc(SOURCE_TYPE[d.sourceType] || '追溯码')) + |
| | |
| | | })(); |
| | | |
| | | // 先拉取页面配置(生产经营者名称、追溯网址),再执行查询;查询结果中同样带有这两项,互为兜底 |
| | | loadTraceConfig(); |
| | | |
| | | var initialCode = new URLSearchParams(location.search).get('code') || ''; |
| | | CODE_INPUT.value = initialCode; |
| | | loadTraceConfig().then(function () { |
| | | if (initialCode) { |
| | | query(initialCode); |
| | | } else { |
| | | renderState('<div class="empty-tip">扫码或输入追溯码,即可查询产品全程溯源信息</div>'); |
| | | } |
| | | }); |
| | | })(); |
| | | </script> |
| | | </body> |