| | |
| | | <div class="print-page" v-for="(item, index) in printData" :key="index"> |
| | | <div class="material-card"> |
| | | <div class="dual-column header-section"> |
| | | <div class="header">ååè½ç©ææ è¯å¡(å°å
)</div> |
| | | <!-- 卿ç»å®æå°åºåæ é¢ --> |
| | | <div class="header">{{ getHeaderTitle(item.factoryArea) }}</div> |
| | | <VueQrcode :value="generateQr(item)" :size="60" class="qrcode" /> |
| | | </div> |
| | | <div class="content"> |
| | |
| | | <div class="column"> |
| | | <span class="label">ä¾åºåç¼ç </span> |
| | | <span class="value full-width">{{ item.suplierCode }}</span> |
| | | </div> |
| | | <div class="column"> |
| | | <span class="label">æ°é/æ»æ°</span> |
| | | <span class="value full-width">{{ item.quantity }}</span> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <span class="label">è§æ ¼</span> |
| | | <span class="value full-width">{{ item.materialSpec }}</span> |
| | | </div> |
| | | <div class="column"> |
| | | <span class="label">æ°é/æ»æ°</span> |
| | | <span class="value full-width">{{ item.quantity }}</span> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | <div class="row dual-column"> |
| | |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- é¢è§åºåä¿æä¸å --> |
| | | <div id="previewContent" class="preview-container"> |
| | | <div class="preview-header">ååè½ç©ææ è¯å¡(å°å
) - é¢è§ (å
±{{ printData.length }}个)</div> |
| | | <!-- 卿ç»å®é¢è§åºåæ»æ é¢ --> |
| | | <div class="preview-header">{{ printData.length > 0 ? getHeaderTitle(printData[0].factoryArea) : 'ç©ææ è¯å¡' }} - é¢è§ (å
±{{ printData.length }}个)</div> |
| | | <div class="preview-scroll"> |
| | | <div v-for="(item, idx) in printData" :key="idx" class="preview-card"> |
| | | <div class="dual-column preview-card-header-qrcode"> |
| | | <div class="preview-card-header">ååè½ç©ææ è¯å¡(å°å
)</div> |
| | | <!-- 卿ç»å®é¢è§å¡çæ é¢ --> |
| | | <div class="preview-card-header">{{ getHeaderTitle(item.factoryArea) }}</div> |
| | | <VueQrcode :value="generateQr(item)" :size="40" class="qrcode-preview" /> |
| | | </div> |
| | | <div class="preview-wrapper"> |
| | |
| | | <div class="column-preview"> |
| | | <span class="label-preview">ä¾åºåç¼ç </span> |
| | | <span class="value-preview full-width">{{ item.suplierCode }}</span> |
| | | </div> |
| | | <div class="column-preview"> |
| | | <span class="label-preview">æ°é/æ»æ°</span> |
| | | <span class="value-preview full-width">{{ item.quantity }}</span> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <span class="label-preview">è§æ ¼</span> |
| | | <span class="value-preview full-width">{{ item.materialSpec }}</span> |
| | | </div> |
| | | <div class="column-preview"> |
| | | <span class="label-preview">æ°é/æ»æ°</span> |
| | | <span class="value-preview full-width">{{ item.quantityTotal }}</span> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | <div class="row-preview dual-column"> |
| | |
| | | <span class="print-count">å
± {{ printData.length }} ä¸ªç©æå¡å¾
æå°</span> |
| | | <div> |
| | | <el-button type="primary" size="small" @click="print">æå°å
¨é¨</el-button> |
| | | <el-button type="danger" size="small" @click="showDetialBox = false">å
³é</el-button> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | getHeaderTitle(factoryArea) { |
| | | if (!factoryArea) return 'ç©ææ è¯å¡(å°å
)' |
| | | return factoryArea === '04' |
| | | ? 'æ ¼é¾ç©ææ è¯å¡(å°å
)' |
| | | : 'ååè½ç©ææ è¯å¡(å°å
)' |
| | | }, |
| | | |
| | | generateQr(item) { |
| | | return `${item.barcode}` |
| | | }, |
| | |
| | | this.$message.error('æ æ³æå¼æå°çªå£ï¼è¯·æ£æ¥æµè§å¨å¼¹çªè®¾ç½®') |
| | | return |
| | | } |
| | | |
| | | |
| | | printWindow.document.write(` |
| | | <!DOCTYPE html> |
| | |
| | | } |
| | | |
| | | .content { |
| | | height: calc(100% - 10mm) !important; |
| | | position: relative !important; |
| | | } |
| | | |
| | | .row { |
| | | display: flex !important; |
| | | margin-bottom: 1.2mm !important; |
| | | min-height: 6.5mm !important; |
| | | min-height: 5.5mm !important; |
| | | align-items: stretch !important; |
| | | } |
| | | |
| | |
| | | flex: 1 !important; |
| | | display: flex !important; |
| | | align-items: center !important; |
| | | min-height: 5mm !important; |
| | | min-height: 4mm !important; |
| | | } |
| | | |
| | | .column:first-child { |
| | | margin-right: 2.5mm !important; |
| | | } |
| | | |
| | | .label { |
| | | flex: 0 0 8mm !important; |
| | | white-space: nowrap !important; |
| | | font-size: 2.5mm !important; |
| | | line-height: 1.3 !important; |
| | |
| | | color: #409eff; |
| | | font-weight: bold; |
| | | } |
| | | </style> |
| | | </style> |