lilei 2 vuotta sitten
vanhempi
commit
a3897af72e

+ 5 - 6
src/views/salesReturnManagement/receiveCheck/list.vue

@@ -82,7 +82,7 @@
                 type="link"
                 class="button-warning"
                 @click="handleOpenPrintModal(record)"
-                id="salesReturn-eexamine-btn">打印</a-button>
+                id="salesReturn-print-btn">打印</a-button>
           </div>
         </template>
       </s-table>
@@ -90,11 +90,11 @@
     <commonModal
       modalTit="品检打印预览"
       bodyPadding="10px"
-      width="600px"
+      width="700pt"
       :showFooter="false"
       :openModal="showTipModal"
       @cancel="canselPrintView">
-      <printModel ref="printModel" @cancel="showTipModal=false"></printModel>
+      <printModal ref="printModel" @cancel="showTipModal=false"></printModal>
     </commonModal>
   </a-card>
 </template>
@@ -225,11 +225,10 @@ export default {
       this.showTipModal = false
       this.$refs.printModel.handleCommonCancel()
     },
-    handleOpenPrintModal(con){
+    handleOpenPrintModal(row){
       this.showTipModal=true
-      let arr = [{num:1,code:'编码',name:'名称',danwei:'个',numInfo:1,allNum:2,reson:'原因',desc:'备注'},{num:1,code:'编码',name:'名称',danwei:'个',numInfo:1,allNum:2,reson:'原因',desc:'备注'},{num:1,code:'编码',name:'名称',danwei:'个',numInfo:1,allNum:2,reson:'原因',desc:'备注'}]
       this.$nextTick(() => {
-        this.$refs.printModel.getData(con, arr)
+        this.$refs.printModel.getData(row)
       })
     }
   },

+ 114 - 121
src/views/salesReturnManagement/receiveCheck/printModal.vue

@@ -1,156 +1,149 @@
 <template>
-  <!-- 发货打印 -->
-  <div style="position:absolute;left:-10000px;top:-10000px;height:0;overflow: hidden;">
-    <div id="sendGood-print" v-if="financeBookList && financeBookList.length">
-      <div v-for="(fcItem, index) in financeBookList" class="sendGood-print-box" :key="index + '-fcitem'" style="width:564pt;margin:0 auto;">
-        <table ref="printBox" cellspacing="0" cellpadding="0" style="border-collapse: collapse;width: 564pt;font-size:14px;">
-          <tr>
-            <td>
-              <div class="print-box" style="width: 564pt;margin-left:1.5pt;">
-                <div style="text-align:center;margin:15pt 0 5pt;font-size:22px;font-weight: bold;">箭冠退货单</div>
-                <div>
+  <div>
+    <a-spin :spinning="spinning" tip="Loading..." style="width: 100%;padding:20px 40px;">
+      <div style="height: 60vh;overflow: auto;">
+      <div id="sendGood-print" v-if="detailData">
+        <div class="sendGood-print-box" style="width:564pt;margin:0 auto;">
+          <table ref="printBox" cellspacing="0" cellpadding="0" style="border-collapse: collapse;width: 564pt;font-size:14px;">
+            <tr>
+              <td>
+                <div class="print-box" style="width: 564pt;margin-left:1.5pt;">
+                  <div style="text-align:center;margin:15pt 0 5pt;font-size:22px;font-weight: bold;">箭冠退货单</div>
+                  <div style="display:flex;align-item:center;justify-content: space-between;flex-wrap: wrap;line-height: 20pt;margin:15pt 0;">
+                    <div style="width: 100%;">客户名称:{{ detailData.buyerName||'--' }}</div>
+                    <div style="width: 50%;">退货单号:{{ detailData.salesReturnBillNo||'--' }}</div>
+                    <div style="width: 50%;">退货日期:{{ detailData.createDate||'--' }}</div>
+                  </div>
                   <div>
-                    <table border="1" style="width: 564pt;border-collapse: collapse;text-align: center;">
-                      <tr>
-                        <th style="line-height: 20pt;width: 56pt;background:#f6f6f6;">日期</th>
-                        <th style="line-height: 20pt;width: 62pt;background:#f6f6f6;">客户名称</th>
-                        <th style="line-height: 20pt;width: 62pt;background:#f6f6f6;">营业执照名称</th>
-                        <th style="line-height: 20pt;width: 54pt;background:#f6f6f6;">订单金额</th>
-                        <th style="line-height: 20pt;width: 54pt;background:#f6f6f6;">收款金额</th>
-                        <th style="line-height: 20pt;width: 54pt;background:#f6f6f6;">使用授信</th>
-                        <th style="line-height: 20pt;width: 54pt;background:#f6f6f6;">余款抵扣</th>
-                        <th style="line-height: 20pt;width: 54pt;background:#f6f6f6;">汇入银行</th>
-                        <th style="line-height: 20pt;width: 54pt;background:#f6f6f6;">足额打款</th>
-                        <th style="line-height: 20pt;width: 60pt;background:#f6f6f6;">说明</th>
-                      </tr>
-                      <tr v-for="item in fcItem.subList" :key="item.bookDetailSn">
-                        <td style="padding:3pt;width: 50pt;">{{ moment(item.receiptDate).format('YYYY/MM/DD') }}</td>
-                        <td style="padding:3pt;width: 56pt;text-align:left;">
-                          {{ item.payerName }}
-                          <div>{{ item.dealerEntity ? item.dealerEntity.kdMidCustomerFnumber : '' }}</div>
-                        </td>
-                        <td style="padding:3pt;width: 56pt;text-align:left;">{{ item.payerAccountInfo }}</td>
-                        <td style="padding:3pt;width: 48pt;text-align:center;">{{ item.orderAmount ? item.orderAmount.toFixed(2) : '0.00' }}</td>
-                        <td style="padding:3pt;width: 48pt;text-align:center;">{{ item.receiptAmount ? item.receiptAmount.toFixed(2) : '0.00' }}</td>
-                        <td style="padding:3pt;width: 48pt;text-align:center;">{{ getTotal(item.detailItemUseList || []) }}</td>
-                        <td style="padding:3pt;width: 48pt;text-align:center;">{{ item.balanceAmount ? item.balanceAmount.toFixed(2) : '0.00' }}</td>
-                        <td style="padding:3pt;width: 48pt;">
-                          {{ item.bankAccount }}
-                          <br />
-                          {{ item.bankName }}
-                        </td>
-                        <td style="padding:3pt;width: 48pt;">{{ item.fullPaymentFlagDictValue }}</td>
-                        <td style="padding:3pt;width: 54pt;word-break:break-all;">{{ item.explainInfo }}</td>
-                      </tr>
-                    </table>
-
-                    <div style="padding:5pt 0;border-bottom: 1px solid #333;">使用授信明细:{{ fcItem.detail || '暂无。' }}</div>
-                    <div style="padding:5pt 0;" v-if="fcItem.audit && fcItem.audit.taskVOList">
-                      审批人员:
-                      <span v-for="audit in fcItem.audit.taskVOList" :key="audit.processInstanceId" v-if="audit.userType == '审批人'">
-                        {{ audit.userName }}({{ audit.state }});
-                      </span>
+                    <div>
+                      <table border="1" style="width: 564pt;border-collapse: collapse;text-align: center;">
+                        <tr>
+                          <th style="line-height: 20pt;width: 40pt;background:#f6f6f6;">序号</th>
+                          <th style="line-height: 20pt;width: 65pt;background:#f6f6f6;">产品编码</th>
+                          <th style="line-height: 20pt;width: 80pt;background:#f6f6f6;">产品名称</th>
+                          <th style="line-height: 20pt;width: 40pt;background:#f6f6f6;">单位</th>
+                          <th style="line-height: 20pt;width: 58pt;background:#f6f6f6;">退货数量</th>
+                          <th style="line-height: 20pt;width: 58pt;background:#f6f6f6;">实收数量</th>
+                          <th style="line-height: 20pt;width: 66pt;background:#f6f6f6;">退货原因</th>
+                          <th style="line-height: 20pt;width: 80pt;background:#f6f6f6;">实际原因</th>
+                          <th style="line-height: 20pt;width: 78pt;background:#f6f6f6;">备注</th>
+                        </tr>
+                        <tr v-for="(item,index) in list" :key="item.id">
+                          <td style="padding:3pt;width: 34pt;">{{index+1}}</td>
+                          <td style="padding:3pt;width: 59pt;text-align:center;">{{ item.productEntity.code }}</td>
+                          <td style="padding:3pt;width: 74pt;text-align:center;word-break:break-all;">{{ item.productEntity.name }}</td>
+                          <td style="padding:3pt;width: 34pt;text-align:center;">{{ item.productEntity.unit }}</td>
+                          <td style="padding:3pt;width: 52pt;text-align:center;">{{ item.initialQty }}</td>
+                          <td style="padding:3pt;width: 52pt;text-align:center;">{{ item.receiveQty }}</td>
+                          <td style="padding:3pt;width: 60pt;text-align:center;word-break:break-all;">{{ item.returnReason }}</td>
+                          <td style="padding:3pt;width: 74pt;text-align:center;word-break:break-all;"></td>
+                          <td style="padding:3pt;width: 72pt;word-break:break-all;"></td>
+                        </tr>
+                        </table>
+                        <table border="0" style="width: 564pt;border-collapse: collapse;text-align: center;margin-top:5pt;">
+                        <tr>
+                          <td style="padding:3pt;width: 34pt;border:0;">&nbsp;</td>
+                          <td style="padding:3pt;width: 59pt;border:0;">&nbsp;</td>
+                          <td style="padding:3pt;width: 74pt;border:0;">&nbsp;</td>
+                          <td style="padding:3pt;width: 34pt;text-align:center;border:0;">合计:</td>
+                          <td style="padding:3pt;width: 52pt;text-align:center;border:0;">{{ totalNums }}</td>
+                          <td style="padding:3pt;width: 52pt;border:0;">&nbsp;</td>
+                          <td style="padding:3pt;width: 60pt;border:0;">&nbsp;</td>
+                          <td style="padding:3pt;width: 74pt;border:0;">&nbsp;</td>
+                          <td style="padding:3pt;width: 72pt;border:0;">&nbsp;</td>
+                        </tr>
+                      </table>
                     </div>
-                    <div style="padding:5pt 0;" v-else>审批人员:</div>
                   </div>
                 </div>
-              </div>
-            </td>
-          </tr>
-        </table>
+              </td>
+            </tr>
+          </table>
+        </div>
+      </div>
+      </div>
+      <div class="btn-box" style="display:flex;align-item:center;justify-content: center;">
+        <a-button @click="handleCommonCancel">取消</a-button>
+        <a-button :loading="spinning" type="primary" @click="handleCommonOk">立即打印</a-button>
       </div>
-    </div>
-    <div class="btn-box" style="display:flex;align-item:center;justify-content: center;">
-      <a-button @click="handleCommonCancel">取消</a-button>
-      <a-button :loading="spinning" type="primary" @click="handleCommonOk">立即打印</a-button>
-    </div>
+    </a-spin>
   </div>
 </template>
 
 <script>
-import { jGPlPrint } from '@/libs/JGPrint.js';
-import moment from 'moment';
+import { jGPrint } from '@/libs/JGPrint.js';
+import { salesReturnDetail } from '@/api/salesReturn'
+import { salesReturnDetailList } from '@/api/salesReturnDetail'
 export default {
   data() {
     return {
-      // spinning: false,
-      detail: null,
-      financeBookList: [],
+      spinning: false,
+      detailData: null,
+      list: [],
       printNums: []
     };
   },
+  computed: {
+    totalNums() {
+      let ret = 0
+      this.list.map(item => {
+        ret = ret + item.initialQty
+      })
+      return ret
+    }
+  },
   methods: {
-    moment,
-    getTotal(data) {
-      let ret = 0;
-      data.map(item => {
-        ret = ret + item.itemAmount;
-        delete item.id;
-      });
-      return ret.toFixed(2);
+    //  详情
+    getDetail () {
+      this.spinning = true
+      salesReturnDetail({ sn: this.salesReturnBillSn }).then(res => {
+        if (res.status == 200) {
+          this.detailData = res.data
+        } else {
+          this.detailData = null
+        }
+        this.spinning = false
+      })
+    },
+    // 明细列表
+    getDetailList(){
+      salesReturnDetailList({
+        pageNo:1,
+        pageSize: 999999,
+        salesReturnBillSn: this.salesReturnBillSn
+      }).then(res => {
+        if (res.status == 200) {
+          this.list = res.data.list
+        } else {
+          this.list = null
+        }
+      })
     },
     handleCommonOk() {
       const _this = this;
-      const html = document.getElementsByClassName('sendGood-print-box');
-      const printCons = [];
-      for (let i = 0; i < html.length; i++) {
-        const h = html[i].clientHeight;
-        printCons.push({
-          h: h,
-          t: html[i].innerHTML
-        });
-      }
-
-      // 排序从小到大
-      printCons.sort((a, b) => {
-        return a['h'] - b['h'];
-      });
-
-      const htmlStr = [];
-      for (let i = 0; i < printCons.length; i++) {
-        if (printCons[i].h > 560) {
-          htmlStr.push('');
-        }
-        htmlStr.push(printCons[i].t);
-      }
-
-      // html, type, callback, printLogParams
-      jGPlPrint(
-        htmlStr,
+      const html = document.getElementById('sendGood-print').innerHTML;
+      _this.spinning = true
+      jGPrint(
+        html,
         'preview',
         function(res) {
-          _this.handleCommonCancel();
+          _this.spinning = false
           _this.$emit('printOk');
         },
-        this.printNums,
-        this.financeBookList
       );
     },
-    getData(data, list) {
-      console.log(data);
-      this.financeBookList = data;
-      list.map(item => {
-        this.printNums.push({
-          billType: 'FINANCE_BOOK_DETAIL',
-          billSn: item.num,
-          billNo: item.name,
-          printType: '收款打印'
-        });
-      });
-
-      // 打印预览
-      this.$nextTick(() => {
-        this.handleCommonOk();
-      });
+    getData(data) {
+       this.salesReturnBillSn = data.salesReturnBillSn
+       this.getDetail()
+       this.getDetailList()
     },
     handleCommonCancel() {
       this.$emit('cancel');
       this.clearData();
     },
     clearData() {
-      this.detail = null;
-      this.financeBookList = [];
-      this.printNums = [];
+      this.detailData = null;
+      this.list = [];
     }
   }
 };