Compare commits

...

2 Commits

Author SHA1 Message Date
59f6d0d1c2 1 2025-04-09 17:18:26 +08:00
35abe52189 打印大盒子标签 2025-04-09 16:10:24 +08:00
2 changed files with 138 additions and 21 deletions

View File

@ -226,6 +226,14 @@ const clcNoPlanConfirmBack = (params) => {
data: params
})
}
// 打印大标签
const statisticsBoxNumByStation = (params) => {
return request({
url: '/task/statisticsBoxNumByStation',
method: 'post',
data: params
})
}
export {
sendGoodsInTask,
@ -255,5 +263,6 @@ export {
clcNoPlanConfirmBack,
finishSortBox,
getWorkGoodsList,
requestOldPrintData
requestOldPrintData,
statisticsBoxNumByStation
}

View File

@ -70,6 +70,13 @@
style="margin-left: 25px; align-self: center; font-weight: bold;font-size: 45px; writing-mode: vertical-lr;">整理结束</span>
</div>
</div>
<div style="margin: 10px;">
<div class="arrow" @click="print()">
<Printer style="display: none;" />
<span
style="margin-left: 25px; align-self: center; font-weight: bold;font-size: 45px; writing-mode: vertical-lr;">打印标签</span>
</div>
</div>
</div>
</el-form>
</fieldset>
@ -88,18 +95,47 @@
<el-table-column prop="boxQuantity" label="需要数量" min-width="120px" show-overflow-tooltip />
</el-table>
</el-dialog>
<div style="width: 0;height: 0;overflow: hidden">
<button ref="printBtn" style="display: none;" v-print="printObj"></button>
<div id="printArea" class="objectDialogFlowPrint">
<div class="myPrint">
<div class="pageWarp" v-for="item in printTabs">
<el-card :body-style="{ padding: '5px' }">
<div class="header-row">
<div style=" margin-top: 10px;">
<qrcode-vue
:value="item.name + '&' + item.quantity"
:size="100"
:foreground="color"
level="H"
/>
</div>
<div class="part-name">
<div>大盒号{{ item.name }}</div>
<div>站台号{{ item.standId }} </div>
</div>
</div>
</el-card>
</div>
</div>
</div>
</div>
</el-container>
</el-config-provider>
</template>
<script setup>
import store from '@/store'
import { requestSortBox, requestSumOfBox, finishSortBox } from '@/api/task'
import { requestSortBox, requestSumOfBox, finishSortBox, statisticsBoxNumByStation } from '@/api/task'
import { getBigBoxList } from '@/api/kateWork'
import { reactive, ref } from 'vue'
import { errorBox } from '@/utils/myMessageBox.js'
import { ElMessage } from 'element-plus'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
import QrcodeVue from 'qrcode.vue'
</script>
<script>
@ -108,6 +144,34 @@ export default {
data() {
return {
standId: store.getters.getStandId,
// standId: 'ASRS-#7',
printTabs: [],
printObj: {
id: "printArea", // ID
popTitle: "&nbsp", //
extraCss: "", // css
extraHead: "", //
preview: false, // false
previewTitle: '打印客户账单', //
previewPrintBtnLabel: '预览结束,开始打印', //
zIndex: 10002, // z-index20002
previewBeforeOpenCallback() {
// console.log('');
}, // callback
previewOpenCallback() { console.log('已经加载完预览窗口,预览打开了!') }, // callback
beforeOpenCallback() {
// console.log('')
}, // callback
openCallback() {
// console.log('')
}, // callback
closeCallback() {
// console.log('')
}, // callback(or)
clickMounted() {
// console.log('v-print')
},
},
// timer: '',
labelPosition: 'top',
workFormRef: ref(),
@ -202,6 +266,33 @@ export default {
console.log(err)
errorBox('请求发生异常。')
})
},
print(){
statisticsBoxNumByStation({ standId: this.standId}).then(res => {
const response = res.data
console.log(response)
if (response.code == 0) {
//
let this_ = this;
const printData = response.returnData.map(item => {
return {
name: item.bigBox, //
quantity: item.orderQuantity, //
standId: this_.standId //
}
})
this.printTabs = printData
this.$nextTick(() => {
this.$refs.printBtn.click()
});
} else {
errorBox(response.message)
}
}).catch(err => {
console.log(err)
errorBox('根据站台统计大盒子数量错误')
})
},
getCurrentRow(row) {
this.bigBoxNo = row.bigBoxNo
@ -367,27 +458,44 @@ export default {
margin-top: 25px;
}
.display-form-div-left {
display: inline-flex;
justify-content: center;
width: 240px;
margin: 5px;
padding: 5px;
border: 5px double #000000;
.header-row {
display: flex;
/* align-items: center; */
/* justify-content: space-between; */
/* margin-bottom: 10px; */
}
.display-form-div-right {
display: inline-flex;
justify-content: center;
width: 60px;
margin: 5px;
padding: 5px;
background-color: #CCCCCC;
}
.display-form-text-right {
align-self: center;
.part-name {
padding: 6px 20px;
font-size: 30px;
font-weight: bold;
font-size: 25px;
}
.stand-id {
font-size: 16px;
/* background-color: #f5f5f5; */
display: inline-block;
border-radius: 6px;
border: 1px solid #666;
/* color: #666; */
}
.qr-container {
display: flex;
align-items: flex-end;
}
.objectDialogFlowPrint .pageWarp {
page-break-after: always;
height: 100%;
width: 100%;
text-align: center;
margin: 5px auto;
padding: auto;
}
.objectDialogFlowPrint .myPrint {
print-color-adjust: exact;
}
</style>