|
@@ -0,0 +1,165 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <div id="pdfDom" ref="pdfDom" style="padding: 20px 20px 0; font-size:12px;color:#333333" v-loading="loading">
|
|
|
+ <div class="title">
|
|
|
+ 销售出库单
|
|
|
+ </div>
|
|
|
+ <el-row style="margin:40px 0 20px 0">
|
|
|
+ <el-col :span="8">购货单位:{{pdfData.buyCorporationName}}</el-col>
|
|
|
+ <el-col :span="8">出货日期:<span v-if="pdfData.createTime">{{pdfData.createTime.slice(0,10)}}</span></el-col>
|
|
|
+ <el-col :span="8">订单编号:{{pdfData.code}}</el-col>
|
|
|
+ </el-row>
|
|
|
+ <table border="1" style="width: 100%;margin-top:15px" class="table">
|
|
|
+ <tr>
|
|
|
+ <td style="width:20%">产品名称</td>
|
|
|
+ <td style="width:25%">产品编号</td>
|
|
|
+ <td style="width:8%">净重</td>
|
|
|
+ <td style="width:8%">纹路</td>
|
|
|
+ <td style="width:15%">尺寸(cm)</td>
|
|
|
+ <td style="width:8%">单位</td>
|
|
|
+ <td style="width:8%">订购数量</td>
|
|
|
+ <td style="width:8%">发货数量</td>
|
|
|
+ </tr>
|
|
|
+ <template v-if="pdfData.salesList && pdfData.salesList.length > 0">
|
|
|
+ <tr v-for="(item, index) in pdfData.salesList" :key="item.id">
|
|
|
+ <td>{{item.productName}}</td>
|
|
|
+ <td>{{item.productCode}}</td>
|
|
|
+ <td>{{item.productNetWeight}}</td>
|
|
|
+ <td>{{dictKeyValue(item.productFrontalTexture,frontLinesData)}}</td>
|
|
|
+ <td>{{item.productLength}}*{{item.productWidth}}*{{item.productHeight}}</td>
|
|
|
+ <td>{{item.productUnit}}</td>
|
|
|
+ <td>{{item.orderQuantity}}</td>
|
|
|
+ <td>{{item.quantity}}</td>
|
|
|
+ </tr>
|
|
|
+ </template>
|
|
|
+ </table>
|
|
|
+ <el-row style="margin:20px 0 20px 0">
|
|
|
+ <el-col :span="6">收货人:</el-col>
|
|
|
+ <el-col :span="6">发货员:</el-col>
|
|
|
+ <el-col :span="6">车牌号:</el-col>
|
|
|
+ <el-col :span="6">业务员:{{pdfData.salesmanName}}</el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ <div style="text-align: center;margin-top:20px">
|
|
|
+ <el-button type="primary" v-print="printObj" size="default" v-debounce>打印</el-button>
|
|
|
+ <el-button type="primary" @click="clickDownload()" size="default" v-debounce>下载PDF</el-button>
|
|
|
+ <el-button type="primary" @click="exportExcel()" size="default" v-debounce>导出Excel</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup>
|
|
|
+import $ from "jquery";
|
|
|
+const frontLinesData = computed(
|
|
|
+ () => proxy.useUserStore().allDict["front_lines"]
|
|
|
+);
|
|
|
+const { proxy } = getCurrentInstance();
|
|
|
+const pdfData = ref({});
|
|
|
+const props = defineProps({
|
|
|
+ rowData: Object,
|
|
|
+});
|
|
|
+
|
|
|
+const loading = ref(false);
|
|
|
+const getPdfData = (query) => {
|
|
|
+ loading.value = true;
|
|
|
+ // proxy.post("/contract/detail", query).then((res) => {
|
|
|
+ // pdfData.value = res;
|
|
|
+ // if (props.rowData && props.rowData.arr && props.rowData.arr.length > 0) {
|
|
|
+ // pdfData.value.salesList = props.rowData.arr;
|
|
|
+ // pdfData.value.createTime = pdfData.value.salesList[0].createTime;
|
|
|
+ // for (let i = 0; i < pdfData.value.salesList.length; i++) {
|
|
|
+ // const iproduct = pdfData.value.salesList[i];
|
|
|
+ // for (let j = 0; j < res.contractProductList.length; j++) {
|
|
|
+ // const jproduct = res.contractProductList[j];
|
|
|
+ // if (iproduct.contractProductId == jproduct.id) {
|
|
|
+ // iproduct.orderQuantity = jproduct.quantity;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // loading.value = false;
|
|
|
+ // });
|
|
|
+ if (props.rowData.arr && props.rowData.arr.length > 0) {
|
|
|
+ let res = props.rowData;
|
|
|
+ pdfData.value = res;
|
|
|
+ pdfData.value.salesList = props.rowData.arr;
|
|
|
+ pdfData.value.createTime = pdfData.value.salesList[0].createTime;
|
|
|
+ for (let i = 0; i < pdfData.value.salesList.length; i++) {
|
|
|
+ const iproduct = pdfData.value.salesList[i];
|
|
|
+ for (let j = 0; j < res.contractProductList.length; j++) {
|
|
|
+ const jproduct = res.contractProductList[j];
|
|
|
+ if (iproduct.contractProductId == jproduct.id) {
|
|
|
+ iproduct.orderQuantity = jproduct.quantity;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ loading.value = false;
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+watch(
|
|
|
+ () => props.rowData,
|
|
|
+ (val) => {
|
|
|
+ if (props.rowData.id) {
|
|
|
+ getPdfData({ id: props.rowData.id });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ immediate: true,
|
|
|
+ deep: true,
|
|
|
+ }
|
|
|
+);
|
|
|
+
|
|
|
+const printObj = ref({
|
|
|
+ id: "pdfDom",
|
|
|
+ popTitle: "",
|
|
|
+ extraCss:
|
|
|
+ "https://cdn.bootcdn.net/ajax/libs/animate.css/4.1.1/animate.compat.css, https://cdn.bootcdn.net/ajax/libs/hover.css/2.3.1/css/hover-min.css",
|
|
|
+ extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>',
|
|
|
+});
|
|
|
+
|
|
|
+const clickDownload = () => {
|
|
|
+ proxy.getPdf("销售出库单PDF文件");
|
|
|
+};
|
|
|
+
|
|
|
+const pdfDom = ref(null);
|
|
|
+const exportExcel = () => {
|
|
|
+ // pdfDom.value.exportExcel();
|
|
|
+ // isShowImg.value = false;
|
|
|
+ loading.value = true;
|
|
|
+ setTimeout(() => {
|
|
|
+ $("#pdfDom").table2excel({
|
|
|
+ exclude: ".noExl",
|
|
|
+ sheetName: `${pdfData.value.code} 销售出库单`,
|
|
|
+ filename: `${pdfData.value.code} 销售出库单`,
|
|
|
+ exclude_img: false,
|
|
|
+ exclude_links: false,
|
|
|
+ exclude_inputs: true,
|
|
|
+ });
|
|
|
+ // isShowImg.value = true;
|
|
|
+ loading.value = false;
|
|
|
+ }, 500);
|
|
|
+};
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.title {
|
|
|
+ font-size: 28px;
|
|
|
+ // font-weight: 700;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
+.table {
|
|
|
+ border-collapse: collapse;
|
|
|
+ border-spacing: 0;
|
|
|
+ width: 100%;
|
|
|
+ td {
|
|
|
+ text-align: left;
|
|
|
+ padding: 4px;
|
|
|
+ font-size: 12px;
|
|
|
+ // padding: 5px 10px;
|
|
|
+ }
|
|
|
+ .align-right {
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|