Explorar el Código

聚仁发货单打印模板及库存表格优化

yusheng hace 10 meses
padre
commit
294de944e1

+ 1 - 1
qiankun_config/store.js

@@ -28,7 +28,7 @@ export default function (state) {
     // store.dispatch('user/getCurrentUserAuthorityDept');
     // store.dispatch('user/getCurrentUserAuthorityDept');
   }
   }
   if (state.paramsSetData) {
   if (state.paramsSetData) {
-    store.dispatch('paramsSetData/setParamsDataInfo');
+    // store.dispatch('paramsSetData/setParamsDataInfo');
   }
   }
 }
 }
 
 

+ 22 - 16
src/BIZComponents/inventoryTable.vue

@@ -6,7 +6,8 @@
       :columns="columns"
       :columns="columns"
       :datasource="form.datasource"
       :datasource="form.datasource"
       class="time-form"
       class="time-form"
-      max-height="300"
+      height="300"
+      full-height="calc(100vh - 76px)"
       @columns-change="handleColumnChange"
       @columns-change="handleColumnChange"
       :cache-key="cacheKeyUrl"
       :cache-key="cacheKeyUrl"
       :selection.sync="selection"
       :selection.sync="selection"
@@ -783,7 +784,10 @@
   import commodityPriceListDialog from '@/views/commodityManagement/commodityPriceList/components/commodityPriceListDialog.vue';
   import commodityPriceListDialog from '@/views/commodityManagement/commodityPriceList/components/commodityPriceListDialog.vue';
   const dayjs = require('dayjs');
   const dayjs = require('dayjs');
   import { levelList } from '@/enum/dict.js';
   import { levelList } from '@/enum/dict.js';
-  import { getGoodsPriceByCondition } from '@/api/goodsManage/index';
+  import {
+    getGoodsPriceByCondition,
+    getGoodsByCategoryId
+  } from '@/api/goodsManage/index';
   import { parameterGetByCode } from '@/api/main/index.js';
   import { parameterGetByCode } from '@/api/main/index.js';
 
 
   export default {
   export default {
@@ -1771,6 +1775,7 @@
           this.$set(parasm, 'pricingWay', 1);
           this.$set(parasm, 'pricingWay', 1);
           this.$set(parasm, 'goodsLevel', item.goodsLevel);
           this.$set(parasm, 'goodsLevel', item.goodsLevel);
           this.$set(parasm, 'guaranteePeriod', item.warrantyPeriod);
           this.$set(parasm, 'guaranteePeriod', item.warrantyPeriod);
+
           this.$set(
           this.$set(
             parasm,
             parasm,
             'guaranteePeriodUnitCode',
             'guaranteePeriodUnitCode',
@@ -1855,7 +1860,7 @@
         this.changeCount();
         this.changeCount();
       },
       },
       replaceTable(obj, idx) {
       replaceTable(obj, idx) {
-        obj.forEach((item, index) => {
+        obj.forEach(async (item, index) => {
           let i = idx == -1 ? index : idx;
           let i = idx == -1 ? index : idx;
           let row = JSON.parse(JSON.stringify(this.defaultForm));
           let row = JSON.parse(JSON.stringify(this.defaultForm));
           row.key = this.form.datasource.length + 1;
           row.key = this.form.datasource.length + 1;
@@ -1877,9 +1882,22 @@
           this.$set(parasm, 'singleWeight', item.weight);
           this.$set(parasm, 'singleWeight', item.weight);
           this.$set(parasm, 'pricingWay', 1);
           this.$set(parasm, 'pricingWay', 1);
           this.$set(parasm, 'arrivalWay', item.arrivalWay || 1);
           this.$set(parasm, 'arrivalWay', item.arrivalWay || 1);
-
+          this.$set(parasm, 'batchNo', item.batchNo);
           this.$set(parasm, 'imgCode', '');
           this.$set(parasm, 'imgCode', '');
           this.$set(parasm, 'produceType', item.componentAttribute);
           this.$set(parasm, 'produceType', item.componentAttribute);
+          let goodsData = await getGoodsByCategoryId(item.productId);
+          goodsData = goodsData.filter((item) => item.approvalStatus == 2);
+          if (goodsData?.length) {
+            let goodsPriceList = goodsData[0]?.goodsPriceList[0];
+            this.$set(parasm, 'goodsId', goodsData[0].id);
+            this.$set(parasm, 'goodsPriceId', goodsPriceList.id);
+            this.$set(parasm, 'goodsPriceType', goodsPriceList.priceType);
+            this.$set(parasm, 'singlePrice', goodsPriceList.unitPrice);
+            this.$set(parasm, 'notaxSinglePrice', goodsPriceList.excludeTaxPrice);
+            this.$set(parasm, 'taxRate', goodsPriceList.taxRate);
+            this.$set(parasm, 'discountSinglePrice', goodsPriceList.unitPrice);
+            this.$set(parasm, 'totalCount', '');
+          }
           if (this.isSupplier) {
           if (this.isSupplier) {
             this.$set(
             this.$set(
               parasm,
               parasm,
@@ -1923,18 +1941,6 @@
           }
           }
           this.$set(parasm, 'provenance', item.purchaseOrigins || []);
           this.$set(parasm, 'provenance', item.purchaseOrigins || []);
 
 
-          if (this.isSupplier) {
-            this.$set(
-              parasm,
-              'entrustedEnterpriseIdList',
-              item.entrustedEnterpriseIdList
-            );
-            this.$set(
-              parasm,
-              'entrustedEnterpriseId',
-              item.entrustedEnterpriseId
-            );
-          }
           if (idx == -1) {
           if (idx == -1) {
             this.form.datasource.push(row);
             this.form.datasource.push(row);
           }
           }

+ 6 - 6
src/BIZComponents/inventoryTableDetails.vue

@@ -5,11 +5,11 @@
       :needPage="false"
       :needPage="false"
       :columns="columns"
       :columns="columns"
       :datasource="form.datasource"
       :datasource="form.datasource"
+      height="350"
+      full-height="calc(100vh - 76px)"
       class="time-form"
       class="time-form"
       @columns-change="handleColumnChange"
       @columns-change="handleColumnChange"
       :cache-key="cacheKeyUrl"
       :cache-key="cacheKeyUrl"
-      :max-height="maxHeight"
-
     >
     >
       <template v-slot:technicalDrawings="scope">
       <template v-slot:technicalDrawings="scope">
         <el-form-item
         <el-form-item
@@ -157,8 +157,8 @@
         type: Boolean,
         type: Boolean,
         default: false
         default: false
       },
       },
-      maxHeight:{
-        default:350
+      maxHeight: {
+        default: 350
       },
       },
       countObj: {
       countObj: {
         type: Object,
         type: Object,
@@ -179,12 +179,12 @@
           discountTotalPrice: 0,
           discountTotalPrice: 0,
           datasource: []
           datasource: []
         },
         },
-        columnsVersion:1
+        columnsVersion: 1
       };
       };
     },
     },
     computed: {
     computed: {
       columns() {
       columns() {
-        let columnsVersion=this.columnsVersion
+        let columnsVersion = this.columnsVersion;
         let orderColumn = {
         let orderColumn = {
           width: 1,
           width: 1,
           show: false
           show: false

+ 28 - 13
src/BIZComponents/selectStockLedger/item-search.vue

@@ -29,6 +29,21 @@
             </template>
             </template>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
+        <el-col :span="6" style="height: 43px">
+          <el-form-item label="列表维度:" prop="dimension">
+            <template>
+              <el-select
+                style="width: 100%"
+                @change="search"
+                v-model="params.dimension"
+                placeholder="请选择"
+              >
+                <el-option label="批次维度" value="2"></el-option>
+                <el-option label="物品维度" value="1"></el-option>
+              </el-select>
+            </template>
+          </el-form-item>
+        </el-col>
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item label="物品编码:" prop="categoryCode">
           <el-form-item label="物品编码:" prop="categoryCode">
             <el-input
             <el-input
@@ -66,14 +81,14 @@
             ></el-input>
             ></el-input>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
-<!--        <el-col :span="6">-->
-<!--          <el-form-item label="组织机构:">-->
-<!--            <auth-selection-->
-<!--              v-model="params.deptIds"-->
-<!--              style="width: 100%"-->
-<!--            ></auth-selection>-->
-<!--          </el-form-item>-->
-<!--        </el-col>-->
+        <!--        <el-col :span="6">-->
+        <!--          <el-form-item label="组织机构:">-->
+        <!--            <auth-selection-->
+        <!--              v-model="params.deptIds"-->
+        <!--              style="width: 100%"-->
+        <!--            ></auth-selection>-->
+        <!--          </el-form-item>-->
+        <!--        </el-col>-->
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item label="所属工厂" prop="factoryId">
           <el-form-item label="所属工厂" prop="factoryId">
             <el-select
             <el-select
@@ -116,10 +131,8 @@
   </div>
   </div>
 </template>
 </template>
 <script>
 <script>
-
-
-  import {getFactoryarea} from "@/api/main";
-  import {getWarehouseList} from "@/api/wms";
+  import { getFactoryarea } from '@/api/main';
+  import { getWarehouseList } from '@/api/wms';
   export default {
   export default {
     data() {
     data() {
       // 默认表单数据
       // 默认表单数据
@@ -137,11 +150,13 @@
         categoryCode: '',
         categoryCode: '',
         assetName: '',
         assetName: '',
         qualityResult: '',
         qualityResult: '',
-        factoryId: ''
+        factoryId: '',
+        dimension: '2'
       };
       };
       return {
       return {
         // 表单数据
         // 表单数据
         params: { ...defaultParams },
         params: { ...defaultParams },
+
         qualityResultOption: [
         qualityResultOption: [
           {
           {
             value: 0,
             value: 0,

+ 19 - 2
src/BIZComponents/selectStockLedger/selectStockLedgerDialog.vue

@@ -10,6 +10,7 @@
     width="70%"
     width="70%"
     :maxable="true"
     :maxable="true"
     :resizable="true"
     :resizable="true"
+  
   >
   >
     <el-card shadow="never">
     <el-card shadow="never">
       <item-search @search="reload" ref="refSeavch"></item-search>
       <item-search @search="reload" ref="refSeavch"></item-search>
@@ -71,6 +72,7 @@
   import {
   import {
     getOutindetailtwoList,
     getOutindetailtwoList,
     getTreeByGroup,
     getTreeByGroup,
+    getBatchList,
     getCategoryPackageDisposition
     getCategoryPackageDisposition
   } from '@/api/wms';
   } from '@/api/wms';
   import ItemSearch from './item-search.vue';
   import ItemSearch from './item-search.vue';
@@ -100,6 +102,7 @@
         curNodeData: {},
         curNodeData: {},
         selection: [],
         selection: [],
         treeData: [],
         treeData: [],
+        dimension:'2',
         defaultProps: {
         defaultProps: {
           children: 'children',
           children: 'children',
           label: 'name'
           label: 'name'
@@ -162,6 +165,15 @@
             label: '牌号',
             label: '牌号',
             showOverflowTooltip: true
             showOverflowTooltip: true
           },
           },
+          this.dimension=="2"?
+          {
+            prop: 'batchNo',
+            label: '批次号',
+            align: 'center',
+            showOverflowTooltip: true
+          }:{
+              width:1
+          },
           {
           {
             prop: 'categoryModel',
             prop: 'categoryModel',
             label: '型号',
             label: '型号',
@@ -236,9 +248,12 @@
         }
         }
         this.treeLoading = false;
         this.treeLoading = false;
       },
       },
+
       /* 表格数据源 */
       /* 表格数据源 */
       datasource({ page, limit, where, order }) {
       datasource({ page, limit, where, order }) {
-        return getOutindetailtwoList({
+        this.dimension = where.dimension||'2';
+        let api = where.dimension == '1' ? getOutindetailtwoList : getBatchList;
+        return api({
           ...where,
           ...where,
           ...order,
           ...order,
           pageNum: page,
           pageNum: page,
@@ -337,7 +352,9 @@
           item.productBrand = item.brandNum;
           item.productBrand = item.brandNum;
           item.provenance = item.provenance || [];
           item.provenance = item.provenance || [];
           item['packageDispositionList'] = packingSpecification
           item['packageDispositionList'] = packingSpecification
-            .filter((ite) => item.categoryId == ite.categoryId && ite.conversionUnit)
+            .filter(
+              (ite) => item.categoryId == ite.categoryId && ite.conversionUnit
+            )
             .sort((a, b) => a.sort - b.sort);
             .sort((a, b) => a.sort - b.sort);
           this.$set(list[index], 'totalCount', 1);
           this.$set(list[index], 'totalCount', 1);
           // item.totalCount = 1;
           // item.totalCount = 1;

+ 9 - 0
src/api/goodsManage/index.js

@@ -94,3 +94,12 @@ export async function getGoodsPriceByCondition(data) {
   }
   }
   return Promise.reject(new Error(res.data.message));
   return Promise.reject(new Error(res.data.message));
 }
 }
+
+//通过物品id查询商品信息
+export async function getGoodsByCategoryId(id) {
+  const res = await request.get(`/eom/goods/getGoodsByCategoryId/${id}`);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 6 - 5
src/views/purchasingManage/purchaseNeedManage/components/detailDialog.vue

@@ -121,7 +121,8 @@
         ref="table"
         ref="table"
         :needPage="false"
         :needPage="false"
         :columns="columns"
         :columns="columns"
-        :max-height="500"
+        height="400"
+        full-height="calc(100vh - 76px)"
         :datasource="detailData.detailList"
         :datasource="detailData.detailList"
         @columns-change="handleColumnChange"
         @columns-change="handleColumnChange"
         :cache-key="cacheKeyUrl"
         :cache-key="cacheKeyUrl"
@@ -176,7 +177,7 @@
   import { levelList } from '@/enum/dict.js';
   import { levelList } from '@/enum/dict.js';
 
 
   export default {
   export default {
-    mixins: [dictMixins,tabMixins],
+    mixins: [dictMixins, tabMixins],
     props: {
     props: {
       isModal: {
       isModal: {
         default: true
         default: true
@@ -184,12 +185,12 @@
     },
     },
     components: {
     components: {
       bpmDetail,
       bpmDetail,
-      timeDialog,
+      timeDialog
       // fileMain
       // fileMain
     },
     },
     data() {
     data() {
       return {
       return {
-        cacheKeyUrl:'eos-purchaseNeedManage-inventoryTableDetail',
+        cacheKeyUrl: 'eos-purchaseNeedManage-inventoryTableDetail',
         activeComp: 'main',
         activeComp: 'main',
         tabOptions: [
         tabOptions: [
           { key: 'main', name: '需求详情' },
           { key: 'main', name: '需求详情' },
@@ -248,7 +249,7 @@
             label: '单位',
             label: '单位',
             align: 'center'
             align: 'center'
           },
           },
- 
+
           {
           {
             minWidth: 180,
             minWidth: 180,
             prop: 'packingSpecification',
             prop: 'packingSpecification',

+ 2 - 1
src/views/purchasingManage/purchaseNeedManage/components/inventoryTable.vue

@@ -4,7 +4,8 @@
       ref="table"
       ref="table"
       :needPage="false"
       :needPage="false"
       :columns="columns"
       :columns="columns"
-      max-height="500px"
+      height="400"
+      full-height="calc(100vh - 76px)"
       :datasource="form.datasource"
       :datasource="form.datasource"
       @columns-change="handleColumnChange"
       @columns-change="handleColumnChange"
       :cache-key="cacheKeyUrl"
       :cache-key="cacheKeyUrl"

+ 8 - 5
src/views/purchasingManage/purchasePlanManage/components/detailDialog.vue

@@ -67,7 +67,7 @@
             <el-form-item label="完结日期:" prop="receiveDate">
             <el-form-item label="完结日期:" prop="receiveDate">
               <el-input v-model="form.receiveDate" disabled></el-input>
               <el-input v-model="form.receiveDate" disabled></el-input>
             </el-form-item>
             </el-form-item>
-            
+
             <el-form-item prop="files" label="附件:">
             <el-form-item prop="files" label="附件:">
               <fileMain v-model="form.files" type="view"></fileMain>
               <fileMain v-model="form.files" type="view"></fileMain>
             </el-form-item>
             </el-form-item>
@@ -132,7 +132,8 @@
             :columns="columns"
             :columns="columns"
             @columns-change="handleColumnChange"
             @columns-change="handleColumnChange"
             :cache-key="cacheKeyUrl"
             :cache-key="cacheKeyUrl"
-            :max-height="500"
+            height="400"
+            full-height="calc(100vh - 76px)"
             :datasource="detailData.detailList"
             :datasource="detailData.detailList"
             row-key="id"
             row-key="id"
           >
           >
@@ -169,7 +170,8 @@
             :needPage="false"
             :needPage="false"
             :columns="columns"
             :columns="columns"
             :toolkit="[]"
             :toolkit="[]"
-            :max-height="500"
+            height="400"
+            full-height="calc(100vh - 76px)"
             :datasource="detailData.rawDetailList"
             :datasource="detailData.rawDetailList"
             row-key="id"
             row-key="id"
           >
           >
@@ -205,7 +207,8 @@
             ref="table"
             ref="table"
             :needPage="false"
             :needPage="false"
             :columns="columns"
             :columns="columns"
-            :max-height="500"
+            height="400"
+            full-height="calc(100vh - 76px)"
             :datasource="detailData.outputDetailList"
             :datasource="detailData.outputDetailList"
             row-key="id"
             row-key="id"
           >
           >
@@ -497,7 +500,7 @@
             label: '已核价重量',
             label: '已核价重量',
             align: 'center'
             align: 'center'
           },
           },
-     
+
           {
           {
             width: 130,
             width: 130,
             prop: 'modelType',
             prop: 'modelType',

+ 4 - 3
src/views/purchasingManage/purchasePlanManage/components/inventoryTable.vue

@@ -4,7 +4,8 @@
       ref="table"
       ref="table"
       :needPage="false"
       :needPage="false"
       :columns="columns"
       :columns="columns"
-      max-height="500px"
+      height="400"
+      full-height="calc(100vh - 76px)"
       @columns-change="handleColumnChange"
       @columns-change="handleColumnChange"
       :cache-key="cacheKeyUrl"
       :cache-key="cacheKeyUrl"
       :selection.sync="selection"
       :selection.sync="selection"
@@ -531,7 +532,7 @@
     },
     },
     computed: {
     computed: {
       columns() {
       columns() {
-      let columnsVersion=this.columnsVersion
+        let columnsVersion = this.columnsVersion;
         return [
         return [
           {
           {
             width: 45,
             width: 45,
@@ -810,7 +811,7 @@
         rules: {},
         rules: {},
         dictList: {},
         dictList: {},
         warehouseList: [],
         warehouseList: [],
-        columnsVersion:1
+        columnsVersion: 1
       };
       };
     },
     },
     created() {
     created() {

+ 220 - 0
src/views/saleManage/saleOrder/invoice/components/print-template-jr.vue

@@ -0,0 +1,220 @@
+<template>
+  <ele-modal title="出库单" :visible.sync="QRvisible" width="90%">
+    <div
+      id="printSection"
+      style="
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        flex-direction: column;
+        width: 1134px;
+        height: 415px;
+      "
+    >
+      <div style="height: 20px; width: 800px"> </div>
+      <div
+        style="width: 100%; font-size: 12px; display: flex; margin-bottom: 10px"
+      >
+        <span style="width: 48%">
+          <span style="width: 60px; display: inline-block">购货单位:</span>
+          {{ formData.contactName }}
+        </span>
+        <span>
+          <span style="width: 60px; display: inline-block">单据编码:</span>
+          {{ formData.docNo }}
+        </span>
+      </div>
+      <div
+        style="width: 100%; font-size: 12px; display: flex; margin-bottom: 10px"
+      >
+        <span style="width: 48%">
+          <span style="width: 170px; display: inline-block"
+            >生产厂家/上市许可持有人:</span
+          >
+          湖南聚仁中药饮片有限公司
+        </span>
+        <span style="width: 17%">
+          <span style="width: 60px; display: inline-block">发货仓库</span>
+          {{ formData.docNo }}
+        </span>
+        <span style="width: 17%">
+          <span style="width: 60px; display: inline-block">发货日期</span>
+          {{ formData.createTime }}
+        </span>
+        <span style="width: 17%">
+          <span style="width: 60px; display: inline-block">总计金额</span>
+          ¥{{ formData.totalPrice }}
+        </span>
+      </div>
+      <table
+        cellspacing="0"
+        border
+        style="
+          width: 100%;
+          height: 190px;
+          table-layout: fixed;
+          word-break: break-all;
+          word-wrap: break-word;
+          font-size: 12px;
+        "
+      >
+        <tbody>
+          <tr align="center" style="height: 30px">
+            <td style="width: 70px"> 商品编号 </td>
+            <td style="width: 70px"> 品名 </td>
+            <td style="width: 70px"> 规格 </td>
+            <td style="width: 70px"> 产地</td>
+            <td style="width: 40px"> 单位</td>
+            <td style="width: 60px"> 数量</td>
+            <td style="width: 60px"> 单价</td>
+            <td style="width: 75px"> 金额</td>
+            <td style="width: 90px"> 批号</td>
+            <td style="width: 85px"> 生产日期</td>
+            <td style="width: 85px"> 保质期至</td>
+            <td> 贮藏</td>
+            <td> 备注</td>
+          </tr>
+          <tr
+            align="center"
+            style="height: 22px"
+            v-for="(item, index) in [{}, {}, {}, {}, {}, {}]"
+          >
+            <td> {{ item.productCode }} </td>
+            <td> {{ item.productName }} </td>
+            <td> {{ item.totalWeight }}</td>
+            <td> {{ item.totalCount }}</td>
+            <td> {{ item.remark }}</td>
+            <td> {{ item.remark }}</td>
+            <td> {{ item.remark }}</td>
+            <td> {{ item.remark }}</td>
+            <td> {{ item.remark }}</td>
+            <td> {{ item.remark }}</td>
+            <td> {{ item.remark }}</td>
+            <td> {{ item.remark }}</td>
+            <td> {{ item.remark }}</td>
+          </tr>
+          <tr align="center" style="height: 30px">
+            <td :colspan="5">
+              <div style="margin-left: 35px"></div>
+            </td>
+            <td :colspan="3">
+              <div style="margin-left: 65px"></div>
+            </td>
+            <td :colspan="5">
+              <div style="margin-left: 65px"></div>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+      <div
+        style="
+          width: 100%;
+          font-size: 12px;
+          display: flex;
+          justify-content: space-between;
+          margin-top: 10px;
+        "
+      >
+        <div style="flex: 1">
+          <div>开票员:</div>
+        </div>
+        <div style="flex: 1">
+          <div>业务员:</div>
+        </div>
+         <div style="flex: 1">
+          <div>发货员:</div>
+        </div>
+          <div style="flex: 1">
+          <div>收货方:</div>
+        </div>
+          <div style="flex: 1">
+          <div>质量状况:</div>
+        </div>
+          <div style="flex: 1">
+          <div>提货方式:</div>
+        </div>
+      </div>
+    </div>
+
+    <div slot="footer">
+      <el-button @click="print">打印预览</el-button>
+      <el-button @click="close">关闭</el-button>
+    </div>
+  </ele-modal>
+</template>
+
+<script>
+  import { getSendSaleOrderrecordDetailSplit } from '@/api/saleManage/saleordersendrecord';
+  import { getInfoBySourceBizNoAll } from '@/api/wms';
+  import { mapGetters } from 'vuex';
+  export default {
+    name: 'print',
+    computed: {
+      ...mapGetters(['user'])
+    },
+    props: {
+      groupName: ''
+    },
+    data() {
+      return {
+        checked: '',
+        QRvisible: false,
+        isPrintPrice: false,
+        formData: {},
+        outBound: {}
+      };
+    },
+
+    methods: {
+      async open(id) {
+        this.formData = await getSendSaleOrderrecordDetailSplit(id);
+        this.QRvisible = true;
+        let dataArray = await getInfoBySourceBizNoAll(this.formData.docNo);
+        this.outBound = JSON.parse(JSON.stringify(dataArray[0]));
+        this.outBound['outInDetailRecordRequestList'] = [];
+
+        dataArray.forEach((item) => {
+          item.outInDetailList.forEach((val) => {
+            if (val.outInDetailRecordRequestList.length) {
+              val.outInDetailRecordRequestList.forEach((j) => {
+                j['categoryName'] = val.categoryName;
+                j['categoryModel'] = val.categoryModel;
+                j['specification'] = val.specification;
+                j['categoryCode'] = val.categoryCode;
+              });
+              this.outBound['outInDetailRecordRequestList'].push(
+                ...val.outInDetailRecordRequestList
+              );
+            } else {
+              this.outBound['outInDetailRecordRequestList'].push(val);
+            }
+          });
+        });
+        //包装维度
+      },
+      close() {
+        this.QRvisible = false;
+      },
+
+      print() {
+        const printSection = document.getElementById('printSection');
+        // 创建打印任务
+        const printWindow = window.open('', '_blank');
+        printWindow.document.open();
+        printWindow.document.write('<html><head><title>打印预览</title>');
+        printWindow.document.write(
+          '<link rel="stylesheet" href="your-stylesheet-url.css" type="text/css" />'
+        );
+        printWindow.document.write('</head><body>');
+        printWindow.document.write(printSection.innerHTML);
+        printWindow.document.write('</body></html>');
+        printWindow.document.close();
+        printWindow.onload = function () {
+          printWindow.print();
+        };
+      }
+    }
+  };
+</script>
+
+<style lang="scss"></style>

+ 11 - 1
src/views/saleManage/saleOrder/invoice/index.vue

@@ -73,6 +73,10 @@
                   @click.native="handlePrint('printTemplateBSRef')"
                   @click.native="handlePrint('printTemplateBSRef')"
                   >送货单模板</el-dropdown-item
                   >送货单模板</el-dropdown-item
                 >
                 >
+                <!-- <el-dropdown-item
+                  @click.native="handlePrint('printTemplateJrRef')"
+                  >发货单</el-dropdown-item
+                > -->
               </el-dropdown-menu>
               </el-dropdown-menu>
             </el-dropdown>
             </el-dropdown>
           </template>
           </template>
@@ -202,6 +206,10 @@
       ref="printTemplateWlRef"
       ref="printTemplateWlRef"
       :groupName="groupName"
       :groupName="groupName"
     ></printTemplateWl>
     ></printTemplateWl>
+    <printTemplateJr
+      ref="printTemplateJrRef"
+      :groupName="groupName"
+    ></printTemplateJr>
     <printTemplateBs
     <printTemplateBs
       ref="printTemplateBSRef"
       ref="printTemplateBSRef"
       :groupName="groupName"
       :groupName="groupName"
@@ -236,6 +244,7 @@
   import printTemplateJsYp from '@/views/saleManage/saleOrder/invoice/components/print-template-jsyp.vue';
   import printTemplateJsYp from '@/views/saleManage/saleOrder/invoice/components/print-template-jsyp.vue';
   import printTemplateWl from '@/views/saleManage/saleOrder/invoice/components/print-template-wl.vue';
   import printTemplateWl from '@/views/saleManage/saleOrder/invoice/components/print-template-wl.vue';
   import printTemplateBs from '@/views/saleManage/saleOrder/invoice/components/print-template-bs.vue';
   import printTemplateBs from '@/views/saleManage/saleOrder/invoice/components/print-template-bs.vue';
+  import printTemplateJr from '@/views/saleManage/saleOrder/invoice/components/print-template-jr.vue';
   import {
   import {
     deleteSendInformation,
     deleteSendInformation,
     getSendTableList,
     getSendTableList,
@@ -261,7 +270,8 @@
       printTemplateJs,
       printTemplateJs,
       printTemplateJsYp,
       printTemplateJsYp,
       printTemplateWl,
       printTemplateWl,
-      printTemplateBs
+      printTemplateBs,
+      printTemplateJr
     },
     },
 
 
     //客户管理数据
     //客户管理数据