refactor(web-admin): extract PoundSlipQrcodeView for shared QR card
Keep admin dialog behavior while enabling public page and driver popup reuse. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
10183dabc2
commit
d7dec04cb3
2 files changed
+67
-38
No files matched your search
@@ -10,50 +10,25 @@
|
||||
append-to-body
|
||||
@close="handleClose"
|
||||
>
|
||||
<div v-loading="loading" class="db-qrcode-body pound-slip-capture-inline">
|
||||
<template v-if="captureRow">
|
||||
<div class="capture-card">
|
||||
<div class="capture-row capture-row-plate">
|
||||
<div class="vehicle-plate">
|
||||
<span class="vehicle-plate-dot vehicle-plate-dot-lt"></span>
|
||||
<span class="vehicle-plate-dot vehicle-plate-dot-lb"></span>
|
||||
<span class="vehicle-plate-text">{{ captureRow.vehicleNo }}</span>
|
||||
<span class="vehicle-plate-dot vehicle-plate-dot-rt"></span>
|
||||
<span class="vehicle-plate-dot vehicle-plate-dot-rb"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="capture-row capture-row-large">
|
||||
<span class="label">往来单位:</span>
|
||||
<span class="value">{{ captureRow.partnerCompany }}</span>
|
||||
</div>
|
||||
<div class="capture-row capture-row-large">
|
||||
<span class="label">物料名称:</span>
|
||||
<span class="value">
|
||||
{{ formatQrcodeProductLabel(captureRow) }}({{ captureRow.quantity }} {{ quantityUnitLabel }})
|
||||
</span>
|
||||
</div>
|
||||
<div v-if="captureRow.remarks" class="capture-row">
|
||||
<span class="label">备注:</span>
|
||||
<span class="value">{{ captureRow.remarks }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="capture-card capture-qrcode">
|
||||
<div class="capture-id">
|
||||
{{ captureRow.date }}
|
||||
{{ captureRow.businessType === '出库' ? '出库单ID:' : '入库单ID:' }}{{ captureRow.id }}
|
||||
</div>
|
||||
<div class="capture-qr-wrap">
|
||||
<img v-if="captureQrObjectUrl" :src="captureQrObjectUrl" alt="二维码" class="capture-qr-img" />
|
||||
</div>
|
||||
<div class="capture-desc">出入库单标识(扫码核验)</div>
|
||||
</div>
|
||||
</template>
|
||||
<div v-loading="loading" class="db-qrcode-body">
|
||||
<PoundSlipQrcodeView
|
||||
v-if="captureRow && captureQrObjectUrl"
|
||||
:vehicle-no="captureRow.vehicleNo"
|
||||
:partner-company="captureRow.partnerCompany"
|
||||
:product-line="formatProductLine(captureRow)"
|
||||
:remarks="captureRow.remarks || ''"
|
||||
:date-text="captureRow.date"
|
||||
:business-type="captureRow.businessType"
|
||||
:inventory-id="captureRow.id"
|
||||
:qr-object-url="captureQrObjectUrl"
|
||||
/>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { inventoryApi, type InventoryRecord } from '@/api/db/inventory'
|
||||
import PoundSlipQrcodeView from '@/components/business/db/PoundSlipQrcodeView.vue'
|
||||
|
||||
const props = defineProps<{
|
||||
visible: boolean
|
||||
@@ -92,6 +67,10 @@ function formatQrcodeProductLabel(row: InventoryRecord) {
|
||||
return `${product} ${specification}`
|
||||
}
|
||||
|
||||
function formatProductLine(row: InventoryRecord) {
|
||||
return `${formatQrcodeProductLabel(row)}(${row.quantity} ${quantityUnitLabel.value})`
|
||||
}
|
||||
|
||||
function getQrImageUrl(inventoryId: string) {
|
||||
return `https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(inventoryId)}`
|
||||
}
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<template>
|
||||
<div class="pound-slip-capture-inline">
|
||||
<div class="capture-card">
|
||||
<div class="capture-row capture-row-plate">
|
||||
<div class="vehicle-plate">
|
||||
<span class="vehicle-plate-dot vehicle-plate-dot-lt"></span>
|
||||
<span class="vehicle-plate-dot vehicle-plate-dot-lb"></span>
|
||||
<span class="vehicle-plate-text">{{ vehicleNo }}</span>
|
||||
<span class="vehicle-plate-dot vehicle-plate-dot-rt"></span>
|
||||
<span class="vehicle-plate-dot vehicle-plate-dot-rb"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="capture-row capture-row-large">
|
||||
<span class="label">往来单位:</span>
|
||||
<span class="value">{{ partnerCompany }}</span>
|
||||
</div>
|
||||
<div class="capture-row capture-row-large">
|
||||
<span class="label">物料名称:</span>
|
||||
<span class="value">{{ productLine }}</span>
|
||||
</div>
|
||||
<div v-if="remarks" class="capture-row">
|
||||
<span class="label">备注:</span>
|
||||
<span class="value">{{ remarks }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="capture-card capture-qrcode">
|
||||
<div class="capture-id">
|
||||
{{ dateText }}
|
||||
{{ businessType === '出库' ? '出库单ID:' : '入库单ID:' }}{{ inventoryId }}
|
||||
</div>
|
||||
<div class="capture-qr-wrap">
|
||||
<img :src="qrObjectUrl" alt="二维码" class="capture-qr-img" />
|
||||
</div>
|
||||
<div class="capture-desc">出入库单标识(扫码核验)</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
defineProps<{
|
||||
vehicleNo: string
|
||||
partnerCompany: string
|
||||
productLine: string
|
||||
remarks?: string
|
||||
dateText: string
|
||||
businessType: string
|
||||
inventoryId: string
|
||||
qrObjectUrl: string
|
||||
}>()
|
||||
</script>
|
||||
Reference in new issue
Block a user