chenlu
2025-01-08 3a06ce5786fb65f4a015a18b82e867b288a60032
north-glass-erp/northglass-erp/src/components/sd/delivery/PrintSheet1.vue
@@ -5,6 +5,8 @@
import companyInfo from "@/stores/sd/companyInfo"
import deepClone from "@/utils/deepClone";
import {ElMessage} from "element-plus";
import {add,multiply,multiplyAuto,divideAuto} from '@/utils/decimal';
const company = companyInfo()
let produceList = ref([])
let otherMoney = []
@@ -14,7 +16,7 @@
let otherMoneys = 0
let sumMoney = 0
let takeCare = "注意:请妥善保管好我司的玻璃架,如有丢失或损坏,按1500元只赔偿。谢谢配合!"
let remark = "备注:本批玻璃为优等合格品,请在卸货时,当面消点验收、如有质量问题在一周内与本公司联系,否则概不负责!"
let remark = company.deliveryRemark
@@ -23,6 +25,10 @@
})
const form = ref({
})
let produceList2 = ref([])
const getData = () => {
  if(props.deliveryId===null  || props.deliveryId===undefined || props.deliveryId===''){
    return
@@ -32,39 +38,54 @@
  request.post(`/delivery/getSelectDeliveryPrinting`,form.value).then((res) => {
    if(res.code==200){
      produceList.value = deepClone(res.data.data)
      delivery.value=deepClone(res.data.delivery)
      money.value=deepClone(res.data.money)
      otherMoney.value=deepClone(res.data.otherMoney)
      produceList.value.forEach(item => {
        sumMoney+=item.DeliveryDetail.money
      })
      produceList.value = deepClone(res.data)
      for(let i=0;i<produceList.value.length;i++){
        let produceList1= ({
          data:null,
          otherMoney:null,
          otherMoney1:null,
          delivery:null,
          money:null,
          otherMoneys:0,
          sumMoney:0
        })
        produceList1.data=produceList.value[i].data
        produceList1.delivery=produceList.value[i].delivery
        produceList1.money=produceList.value[i].money
        produceList1.otherMoney=produceList.value[i].otherMoney
        for(let j=0;j<produceList1.data.length;j++){
          produceList1.sumMoney+=produceList1.data[j].DeliveryDetail.money
        }
        otherMoney1=[]
        for(let i=0;i<produceList1.otherMoney.length;i++){
          if(produceList1.otherMoney[i].DeliveryDetailOtherMoney.monery!=null){
            produceList1.otherMoneys+=produceList1.otherMoney[i].DeliveryDetailOtherMoney.monery
            if(otherMoney1.length===0){
              otherMoney1.push(produceList1.otherMoney[i])
            }
            else{
              for(let s=0;s<otherMoney1.length;s++){
                if(produceList1.otherMoney[i].DeliveryDetailOtherMoney.alias===otherMoney1[s].DeliveryDetailOtherMoney.alias){
      otherMoney1=[]
      otherMoney=deepClone(res.data.otherMoney)
      for(let i=0;i<otherMoney.length;i++){
        if(otherMoney[i].DeliveryDetailOtherMoney.monery!=null){
          otherMoneys+=otherMoney[i].DeliveryDetailOtherMoney.monery
          if(otherMoney1.length===0){
            otherMoney1.push(otherMoney[i])
          }
          else{
            for(let s=0;s<otherMoney1.length;s++){
              if(otherMoney[i].DeliveryDetailOtherMoney.alias===otherMoney1[s].DeliveryDetailOtherMoney.alias){
                otherMoney1[s].DeliveryDetailOtherMoney.count=otherMoney[i].DeliveryDetailOtherMoney.count+otherMoney1[s].DeliveryDetailOtherMoney.count
                otherMoney1[s].DeliveryDetailOtherMoney.monery =otherMoney[i].DeliveryDetailOtherMoney.monery+otherMoney1[s].DeliveryDetailOtherMoney.monery
                break
                  otherMoney1[s].DeliveryDetailOtherMoney.count=add(produceList1.otherMoney[i].DeliveryDetailOtherMoney.count,otherMoney1[s].DeliveryDetailOtherMoney.count)
                  otherMoney1[s].DeliveryDetailOtherMoney.monery =add(produceList1.otherMoney[i].DeliveryDetailOtherMoney.monery,otherMoney1[s].DeliveryDetailOtherMoney.monery)
                  break
                }
                if(s+1===otherMoney1.length){
                  otherMoney1.push(produceList1.otherMoney[i])
                  break
                }
              }
              if(s+1===otherMoney1.length){
                otherMoney1.push(otherMoney[i])
                break
              }
            }
          }
        }
        }
        produceList1.otherMoney1=otherMoney1
        produceList2.value.push(produceList1)
      }
    }else{
      ElMessage.warning(res.msg)
      router.push("/login")
@@ -121,7 +142,7 @@
<template>
  <div id="sheet">
    <table >
    <table class="pages" v-for="(itme1, index) in produceList2" :key="index" >
      <thead>
      <tr class="title-s">
        <th colspan="9">
@@ -136,24 +157,24 @@
        <th colspan="5" style="width: 40%;">
          <h3>销售发货单</h3>
        </th>
        <th colspan="2" style="width: 30%;text-align: left;">发货单号:<span>{{delivery.deliveryId}}</span></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>{{delivery.customerName}}</span></th>
        <th style="text-align: left;border:none;" colspan="3">项目名称:<span>{{delivery.project}}</span></th>
        <th style="text-align: left;border:none;" colspan="2">联系人:<span>{{delivery.contacts}}</span></th>
        <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>{{delivery.deliveryAddress}}</span></th>
        <th style="text-align: left;border:none;" colspan="2">联系电话:<span>{{delivery.contactNumber}}</span></th>
        <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 produceList" :key="index" >
          <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>
@@ -170,7 +191,7 @@
              </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">对方单号:</td>
                <td v-if="company.showDeliveryCreator" style="font-size: 15px;text-align: left" colspan="2">对方单号:</td>
                <td style="font-size: 15px;text-align: left" colspan="3">订单编号:<span>{{item.DeliveryDetail.orderDetail.orderId}}</span></td>
              </tr>
@@ -197,39 +218,39 @@
            </template>
            <tr class="day-in">
              <td style="font-size: 15px;" colspan="3">合计:</td>
              <td>{{delivery.quantity}}</td>
              <td>{{delivery.area}}</td>
              <td>{{itme1.delivery.quantity}}</td>
              <td>{{itme1.delivery.area}}</td>
              <td></td>
              <td>{{parseFloat(sumMoney.toFixed(2))}}</td>
              <td>{{parseFloat(itme1.sumMoney.toFixed(2))}}</td>
              <td colspan="2"></td>
            </tr>
            <tr class="day-in">
              <td style="text-align: left;border-width: 0 1px 0 0; border-style: solid; border-color: #d3dce6" colspan="4">
                <div style="display: flex;font-size: 10px;text-align: center;">
                  <div style="width: 25%">加工费用</div>
                  <div  style="width: 25%">单价</div>
                  <div  style="width: 25%">数量</div>
                  <div  style="width: 25%">金额</div>
                  <span style="width: 25%">加工费用</span>&nbsp;
                  <span  style="width: 25%">单价</span>&nbsp;
                  <span  style="width: 25%">数量</span>&nbsp;
                  <span  style="width: 25%">金额</span>
                </div>
              </td>
              <td style="text-align: left;border:none;font-size: 15px;" colspan="5">总金额:&nbsp;&nbsp;&nbsp;&nbsp;{{delivery.money}}</td>
              <td style="text-align: left;border:none;font-size: 15px;" colspan="5">总金额:&nbsp;&nbsp;&nbsp;&nbsp;{{itme1.delivery.money}}</td>
            </tr>
            <tr class="day-in">
              <td style="text-align: left;border-width: 0 1px 0 0; border-style: solid; border-color: #d3dce6;" colspan="4" >
                <div style="display: flex;font-size: 10px;text-align: center" v-for="(item, index2) in otherMoney1" :key="index2">
                  <div style="width: 25%">{{item.DeliveryDetailOtherMoney.alias}}</div>
                  <div  style="width: 25%">{{item.DeliveryDetailOtherMoney.price}}</div>
                  <div  style="width: 25%">{{item.DeliveryDetailOtherMoney.count}}</div>
                  <div  style="width: 25%">{{parseFloat(item.DeliveryDetailOtherMoney.monery.toFixed(2))}}</div>
                <div style="display: flex;font-size: 10px;text-align: center" v-for="(item, index2) in itme1.otherMoney1" :key="index2">
                  <span style="width: 25%">{{item.DeliveryDetailOtherMoney.alias}}</span>&nbsp;
                  <span  style="width: 25%">{{item.DeliveryDetailOtherMoney.price}}</span>&nbsp;
                  <span  style="width: 25%">{{item.DeliveryDetailOtherMoney.count}}</span>&nbsp;
                  <span  style="width: 25%">{{parseFloat(item.DeliveryDetailOtherMoney.monery).toFixed(2)}}</span>
                </div>
                <div style="display: flex;font-size: 10px;text-align: center" v-if="delivery.freight>0">
                  <div style="width: 25%">运费</div>
                  <div  style="width: 25%">{{delivery.freightPrice}}</div>
                  <div  style="width: 25%">{{delivery.freightQuantity}}</div>
                  <div  style="width: 25%">{{delivery.freight}}</div>
                <div style="display: flex;font-size: 10px;text-align: center" v-if="itme1.delivery.freight>0">
                  <span style="width: 25%">运费</span>&nbsp;
                  <span  style="width: 25%">{{itme1.delivery.freightPrice}}</span>&nbsp;
                  <span  style="width: 25%">{{itme1.delivery.freightQuantity}}</span>&nbsp;
                  <span  style="width: 25%">{{itme1.delivery.freight}}</span>
                </div>
              </td>
              <td style="text-align: left;border:none;font-size: 15px;" colspan="5">大写金额:&nbsp;&nbsp;&nbsp;&nbsp;{{money}}</td>
              <td style="text-align: left;border:none;font-size: 15px;" colspan="5">大写金额:&nbsp;&nbsp;&nbsp;&nbsp;{{itme1.money}}</td>
            </tr>
@@ -241,35 +262,51 @@
                    <el-col :span="4"><div style="font-size: 12px" class="bottom">打印人:{{username}}</div></el-col>
                  </el-row>-->
            <tr class="day-in" style="border: 0;">
              <td colspan="9" style="border: 0;">
                <div style="display:flex;;text-align: left"  class="bottom">
                  <div style="width: 15%">制单员:{{ delivery.creator }}</div>
                  <div style="width: 25%">制单日期:{{ delivery.createTime }}</div>
            <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;">
            <tr class="day-in" style="border: 0;" v-if="company.showDeliveryCreator">
              <td colspan="9" style="border: 0;">
                <div style="display:flex;" class="bottom">
                  架子&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;只&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                  {{takeCare}}
                </div>
              </td>
            </tr>
            <tr class="day-in" style="border: 0;">
              <td colspan="9" style="border: 0;">
                <div style="display:flex;" class="bottom">
                  {{remark}}
                <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: 15%">制单日期:{{ itme1.delivery.createTime1 }}</div>
                  <div style="width: 15%">发货员:</div>
                  <div style="width: 15%">司机:</div>
                  <div style="width: 15%">客户签字:</div>
                  <div style="width: 15%">签收日期:</div>
                </div>
              </td>
            </tr>
@@ -434,6 +471,12 @@
<style scoped>
@media print {
  .pages {
    page-break-after: always;
  }
}
h1,h3{
  left:0;
  right:0;
@@ -485,7 +528,6 @@
  margin: 0;
  padding: 0;
}