<script setup>
|
import request from "@/utils/request"
|
import {computed, onMounted, ref} from "vue"
|
import PrintFoot from "@/components/sd/order/PrintFoot.vue"
|
import companyInfo from "@/stores/sd/companyInfo"
|
import deepClone from "@/utils/deepClone";
|
import {ElMessage} from "element-plus";
|
const company = companyInfo()
|
let produceList = ref([])
|
let otherMoney = ref([])
|
let delivery = ref([])
|
let money = ref("")
|
let otherMoneys = 0
|
let takeCare = "注意:请妥善保管好我司的玻璃架,如有丢失或损坏,按1500元只赔偿。谢谢配合!"
|
let remark = company.deliveryRemark
|
|
|
let produceList2 = ref([])
|
let props = defineProps({
|
deliveryId:null
|
})
|
const form = ref({
|
})
|
const getData = () => {
|
if(props.deliveryId===null || props.deliveryId===undefined || props.deliveryId===''){
|
return
|
}
|
form.value.deliveryId=props.deliveryId
|
form.value.type=company.productName
|
|
|
request.post(`/delivery/getSelectDeliveryPrinting`,form.value).then((res) => {
|
if(res.code==200){
|
produceList.value = deepClone(res.data)
|
for(let i=0;i<produceList.value.length;i++){
|
let produceList1= ({
|
data:null,
|
delivery:null,
|
})
|
produceList1.data=produceList.value[i].data
|
produceList1.delivery=produceList.value[i].delivery
|
|
|
produceList2.value.push(produceList1)
|
}
|
|
}else{
|
ElMessage.warning(res.msg)
|
router.push("/login")
|
}
|
})
|
}
|
|
onMounted(() => {
|
getData()
|
})
|
|
const stringToJson = (productList) => {
|
productList.forEach(item => {
|
item.otherColumns = JSON.parse(item.otherColumns)
|
})
|
}
|
|
const getQuantity = (productList) => {
|
let quantity = 0
|
productList.forEach(item => {
|
quantity += item.quantity
|
})
|
return parseFloat(quantity.toFixed(3))
|
|
}
|
|
const getArea = (productList) => {
|
let area = 0
|
productList.forEach(item => {
|
area += item.grossArea
|
})
|
return parseFloat(area.toFixed(3))
|
|
}
|
|
const getPerimeter = (productList) => {
|
let perimeter = 0
|
productList.forEach(item => {
|
perimeter += item.perimeter
|
})
|
return parseFloat(perimeter.toFixed(3))
|
}
|
|
const printSheet = () => {
|
}
|
|
|
|
|
defineExpose({
|
printSheet
|
});
|
</script>
|
|
<template>
|
<div id="sheet">
|
<table class="pages" v-for="(itme1, index) in produceList2" :key="index" >
|
<thead>
|
<tr class="title-s">
|
<th colspan="9">
|
<h1>
|
{{company.companyName}}
|
</h1>
|
</th>
|
</tr>
|
|
<tr class="title-s">
|
<th colspan="2" style="width: 30%"></th>
|
<th colspan="5" style="width: 40%;">
|
<h3>销售发货单</h3>
|
</th>
|
<th colspan="2" style="width: 30%;text-align: left;">发货单号:<span>{{itme1.delivery.deliveryId}}</span></th>
|
</tr>
|
<tr>
|
<th style="text-align: left;border:none;" colspan="4">客户名称:<span>{{itme1.delivery.customerName}}</span></th>
|
<th style="text-align: left;border:none;" colspan="3">项目名称:<span>{{itme1.delivery.project}}</span></th>
|
<th style="text-align: left;border:none;" colspan="2">联系人:<span>{{itme1.delivery.contacts}}</span></th>
|
</tr>
|
<tr>
|
<th style="text-align: left;border:none;" colspan="7">送货地址:<span>{{itme1.delivery.deliveryAddress}}</span></th>
|
<th style="text-align: left;border:none;" colspan="2">联系电话:<span>{{itme1.delivery.contactNumber}}</span></th>
|
</tr>
|
|
|
</thead>
|
<tr style="border-style: none">
|
<td colspan="9" style="border-style: none">
|
<table style="border-style: none;width: 100%;height: 100%">
|
<template v-for="(item, index) in itme1.data" :key="index" >
|
<thead>
|
<tr v-if="index===0">
|
<th style="width: 6%;">序号</th>
|
<th style="width: 20%;">楼层编号</th>
|
<th style="width: 20%;" colspan="2">宽X高</th>
|
<th style="width: 10%;">数量</th>
|
<th style="width: 10%;">面积</th>
|
<th style="width: 32%;" colspan="3">加工要求</th>
|
</tr>
|
|
|
</thead>
|
<tr>
|
<td style="font-size: 15px;text-align: left" colspan="4">产品名称:<span>{{item.DeliveryDetail.orderDetail.productName}}</span></td>
|
<td style="font-size: 15px;text-align: left" colspan="2">订货日期:<span>{{item.DeliveryDetail.order.contractId}}</span></td>
|
<td style="font-size: 15px;text-align: left" colspan="3">订单编号:<span>{{item.DeliveryDetail.orderDetail.orderId}}</span></td>
|
</tr>
|
|
<tr class="day-in" v-for="(items, index1) in item.DeliveryDetailList" :key="index1">
|
<td>{{items.order_number}}</td>
|
<td>{{items.buildingNumber}}</td>
|
<td colspan="2" style="font-size: 15px;font-weight: bold;" v-if="items.other_columns!=null&&(JSON.parse(items.other_columns).S02!=null)">{{JSON.parse(items.other_columns).S02}}</td>
|
<td colspan="2" style="font-size: 15px;font-weight: bold;" v-else>{{items.width}}x{{items.height}}</td>
|
<td>{{items.quantity}}</td>
|
<td>{{items.area}}</td>
|
<td colspan="3">{{items.processingNote}}</td>
|
</tr>
|
<tr class="day-in" >
|
<td style="font-size: 15px;" colspan="4">小计:</td>
|
<td>{{item.DeliveryDetail.quantity}}</td>
|
<td>{{item.DeliveryDetail.area}}</td>
|
</tr>
|
|
</template>
|
<tr class="day-in">
|
<td style="font-size: 15px;" colspan="4">合计:</td>
|
<td>{{itme1.delivery.quantity}}</td>
|
<td>{{itme1.delivery.area}}</td>
|
</tr>
|
|
|
|
<!-- <el-row :gutter="24">
|
<el-col :span="4"><div style="font-size: 12px" class="bottom">制单员:{{data.order.creator}}<span style="font-size: 10px"></span></div></el-col>
|
<el-col :span="6"><div style="font-size: 12px" class="bottom">制单日期:{{data.order.createTime}}<span style="font-size: 10px"></span></div></el-col>
|
<el-col :span="4"><div style="font-size: 12px" class="bottom">审核员:{{data.order.verifier}}</div></el-col>
|
<el-col :span="6"><div style="font-size: 12px" class="bottom">审核日期:{{data.order.updateTime}}</div></el-col>
|
<el-col :span="4"><div style="font-size: 12px" class="bottom">打印人:{{username}}</div></el-col>
|
|
</el-row>-->
|
<tr class="day-in" style="border: 0;" v-if="company.showDeliveryCreator">
|
<td colspan="9" style="border: 0;">
|
<div style="display:flex;;text-align: left" class="bottom">
|
<div style="width: 15%">制单员:{{ itme1.delivery.creator }}</div>
|
<div style="width: 25%">制单日期:{{ itme1.delivery.createTime }}</div>
|
<div style="width: 10%">发货员:</div>
|
<div style="width: 10%">司机:</div>
|
<div style="width: 15%">客户签字:</div>
|
<div style="width: 15%">签收日期:</div>
|
</div>
|
|
|
</td>
|
</tr>
|
<tr class="day-in" style="border: 0;" v-if="company.showDeliveryCreator">
|
<td colspan="9" style="border: 0;">
|
<div style="display:flex;" class="bottom">
|
架子 只
|
{{takeCare}}
|
</div>
|
|
</td>
|
</tr>
|
<tr class="day-in" style="border: 0;">
|
<td colspan="9" style="border: 0;">
|
<div style="display:flex;text-align: left" class="bottom" v-for="item in remark">
|
{{item}}
|
</div>
|
|
</td>
|
</tr>
|
|
<tr class="day-in" style="border: 0" v-if="!company.showDeliveryCreator">
|
<td colspan="9" style="border: 0">
|
<div style="width: 100%;height: 50px"></div>
|
</td>
|
</tr>
|
|
<tr class="day-in" style="border: 0;" v-if="!company.showDeliveryCreator">
|
<td colspan="9" style="border: 0;">
|
<div style="display:flex;;text-align: left" class="bottom">
|
<div style="width: 15%">制单员:{{ itme1.delivery.creator }}</div>
|
<div style="width: 25%">制单日期:{{ itme1.delivery.createTime }}</div>
|
<div style="width: 10%">发货员:</div>
|
<div style="width: 10%">司机:</div>
|
<div style="width: 15%">客户签字:</div>
|
<div style="width: 15%">签收日期:</div>
|
</div>
|
|
|
</td>
|
</tr>
|
|
</table>
|
</td>
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
</template>
|
|
|
|
|
<style scoped>
|
@media print {
|
|
.pages {
|
page-break-after: always;
|
}
|
}
|
h1,h3{
|
left:0;
|
right:0;
|
top:0;
|
bottom:0;
|
margin:auto;
|
}
|
h1{
|
font-size: 1.5rem;
|
}
|
h3{
|
font-size: 1.2rem;
|
font-weight: bolder;
|
}
|
|
|
table{
|
border-collapse: collapse;
|
width: 100%;
|
text-align: center;
|
}
|
tr,td,th{
|
border: 1px solid black;
|
}
|
|
th,.no-change-row {
|
white-space: nowrap;
|
}
|
|
.title-1{
|
width: 76px;
|
}
|
.title-s,.title-s th{
|
border:0
|
}
|
table {
|
border-collapse: collapse;
|
width: 100%;
|
|
}
|
td > table {
|
margin: 0;
|
padding: 0;
|
}
|
|
.hr-border{
|
height: 2px;
|
width: 100%;
|
background-color: black;
|
color: black;
|
}
|
|
|
|
|
</style>
|