Ver Fonte

Merge branch 'dev_v2'

zh há 2 anos atrás
pai
commit
5e8b02a0ca

+ 22 - 18
src/mixin/print.js

@@ -102,19 +102,17 @@ export default {
         panelData = panel2
         this.dataLength = 4
       }
-  
-        // eslint-disable-next-line no-undef
-        hiprint.PrintElementTypeManager.buildByHtml($('.ep-draggable-item'))
-        this.hiprintTemplate = new hiprint.PrintTemplate({
-          template: panelData,
-          settingContainer: '#PrintElementOptionSetting',
-          paginationContainer: '.hiprint-printPagination'
-        })
-        // this.hiprintTemplate.design('#hiprint-printTemplate')
-        // 获取当前放大比例, 当zoom时传true 才会有
-        // this.scaleValue = hiprintTemplate.editingPanel.scale || 1;
-  
-     
+
+      // eslint-disable-next-line no-undef
+      hiprint.PrintElementTypeManager.buildByHtml($('.ep-draggable-item'))
+      this.hiprintTemplate = new hiprint.PrintTemplate({
+        template: panelData,
+        settingContainer: '#PrintElementOptionSetting',
+        paginationContainer: '.hiprint-printPagination'
+      })
+      // this.hiprintTemplate.design('#hiprint-printTemplate')
+      // 获取当前放大比例, 当zoom时传true 才会有
+      // this.scaleValue = hiprintTemplate.editingPanel.scale || 1;
     },
     /**
      * 获取需要打印数据详情
@@ -216,8 +214,11 @@ export default {
       return date.slice(0, 10)
     },
     // 添加次数
-    addPrint(funcType = 'getDeliverDetail') {
+    async addPrint(funcType = 'getDeliverDetail') {
       let ids = []
+      console.log(this.clonelData);
+      console.log(this.addIds);
+
       for (let i = this.clonelData.length; i > 0; i--) {
         const tempData = this.clonelData[i - 1].invoicePickBeans
         if (tempData.length) {
@@ -243,16 +244,19 @@ export default {
           }
           funcType = addPrints
         }
-
-        funcType(requestParams)
+        console.log(requestParams,'ddsd');
+        const promise = await funcType(requestParams)
         // 清空当前克隆数据,避免重复添加次数
         this.clonelData = []
+        this.addIds =[]
+        return promise
       } catch (error) {
         // console.error('添加打印次数失败')
         this.clonelData = []
-        this.$errorMsg('添加打印次数失败' + JSON.stringify(requestParams))
+        this.addIds =[]
+        // this.$errorMsg('添加打印次数失败' + JSON.stringify(requestParams))
+        return Promise.reject(error.message)
       }
-      return Promise.resolve()
     },
     /**
      * 设置纸张大小

+ 18 - 12
src/views/supply/apply/components/design/preview.vue

@@ -30,14 +30,14 @@ import { addPrint } from './print-data'
 import { detailArr } from './print-data'
 
 export default {
-    name: 'PrintPreview',
+  name: 'PrintPreview',
   props: {
     addPrint: {
       type: Function,
       default: null
-    },
+    }
   },
- 
+
   data() {
     return {
       visible: false,
@@ -81,7 +81,6 @@ export default {
       }, 500)
     },
     print() {
-
       try {
         if (typeof this.addPrint === 'function') {
           this.addPrint('addPrints').then(() => {
@@ -96,25 +95,32 @@ export default {
                   //   // this.$successMsg('更新成功')
                   // }, 1000)
                   setTimeout(() => {
-                    console.error('更新发货汇总列表')
+                    this.hideModal()
                     this.$emit('refreshList')
                   }, 1000)
                 }
               }
             )
-
+          }).catch((err) => {
+            this.$confirm(err, '提示', {
+              confirmButtonText: '确定',
+              showCancelButton: false,
+              showClose: false,
+
+              type: 'warning',
+              center: true
+            }).then(() => {
+              this.hideModal()
+              this.$emit('refreshList')
+            })
           })
         } else {
-          throw new Error('加载失败,刷新重试')
+          // throw new Error('加载失败,刷新重试')
         }
       } catch (e) {
-        this.$errorMsg(e)
+        // this.$errorMsg(e)
         // '调用打印次数接口失败'
       }
-
-      setTimeout(() => {
-        this.hideModal()
-      }, 2000)
     }
     // toPdf() {
     //   downloadPDF(this.$refs.printDom);

+ 18 - 10
src/views/supply/deliver/components/design/preview.vue

@@ -87,32 +87,40 @@ export default {
               this.printData,
               {},
               {
-                callback: async () => {
+                callback: async() => {
                   this.hiprintTemplate = {}
                   // setTimeout(() => {
                   //   console.error('更新发货汇总列表')
                   //   // this.$successMsg('更新成功')
                   // }, 1000)
                   this.$emit('refreshList')
-                    console.log(33);
+                  console.log(33)
                   setTimeout(() => {
-                    console.error('更新发货汇总列表')
-                  }, 1000)
+                    this.hideModal()
+                  }, 2000)
                 }
               }
             )
+          }).catch((err) => {
+            this.$confirm(err, '提示', {
+              confirmButtonText: '确定',
+              showCancelButton: false,
+              showClose: false,
+
+              type: 'warning',
+              center: true
+            }).then(() => {
+              this.hideModal()
+              this.$emit('refreshList')
+            })
           })
         } else {
-          throw new Error('加载失败,刷新重试')
+          // throw new Error('加载失败,刷新重试')
         }
       } catch (e) {
-        this.$errorMsg(e)
+        // this.$errorMsg(e)
         // '调用打印次数接口失败'
       }
-
-      setTimeout(() => {
-        this.hideModal()
-      }, 2000)
     }
     // toPdf() {
     //   downloadPDF(this.$refs.printDom);

+ 117 - 83
src/views/supply/pickup/check.vue

@@ -24,11 +24,11 @@
                 <el-form-item label="物流公司" prop="logisticsId">
                   <el-select v-model="screenForm.logisticsId" placeholder="全部" style="width: 100%">
                     <el-option
-                      :label="item.logisticsCompany"
-                      :value="item.id"
                       v-for="(item, index) in companyList"
                       :key="index"
-                    ></el-option>
+                      :label="item.logisticsCompany"
+                      :value="item.id"
+                    />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -36,16 +36,14 @@
                 <el-form-item label="经销商" prop="customerId">
                   <!-- v-select-loadmore:[myData]="loadmore" -->
                   <el-select v-model="screenForm.customerId" placeholder="选择经销商" clearable filterable>
-                    <el-option v-for="item in dealerList2" :key="item.id" :label="item.name" :value="item.id">
-                    </el-option>
+                    <el-option v-for="item in dealerList2" :key="item.id" :label="item.name" :value="item.id" />
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="8" :lg="6">
                 <el-form-item label="仓库" prop="warehouse">
                   <el-select v-model="screenForm.warehouse" placeholder="选择仓库" clearable filterable>
-                    <el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id">
-                    </el-option>
+                    <el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id" />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -58,17 +56,21 @@
             <el-row :gutter="20">
               <el-col :xs="24" :sm="8" :lg="6">
                 <el-form-item label="提货人手机号" prop="phone">
-                  <el-input v-model="screenForm.phone" placeholder="请输入提货人手机号"></el-input>
+                  <el-input v-model="screenForm.phone" placeholder="请输入提货人手机号" />
                 </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="3" :lg="3">
-                <el-button size="mini" type="primary" @click="getCode" :disabled="!screenForm.phone || countDown != 60"
-                  >{{ countDown == 60 ? getCodeText : '重新获取(' + countDown + 's)' }}
+                <el-button
+                  size="mini"
+                  type="primary"
+                  :disabled="!screenForm.phone || countDown != 60"
+                  @click="getCode"
+                >{{ countDown == 60 ? getCodeText : '重新获取(' + countDown + 's)' }}
                 </el-button>
               </el-col>
               <el-col :xs="24" :sm="8" :lg="8">
                 <el-form-item label="验证码" prop="code">
-                  <el-input v-model="screenForm.code" placeholder="请输入验证码"></el-input>
+                  <el-input v-model="screenForm.code" placeholder="请输入验证码" />
                 </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="3" :lg="3">
@@ -77,7 +79,7 @@
                   type="primary"
                   :disabled="!screenForm.phone || !screenForm.code"
                   @click="getPickupManInfo"
-                  >确 认
+                >确 认
                 </el-button>
               </el-col>
             </el-row>
@@ -86,8 +88,8 @@
                 <el-form-item label="提货人姓名" prop="name">
                   <!-- <el-input v-model="screenForm.name" placeholder="请通过手机验证获取" ></el-input> -->
                   <el-select
-                    style="width: 100%"
                     v-model="screenForm.name"
+                    style="width: 100%"
                     placeholder="请选提货人姓名"
                     clearable
                     filterable
@@ -98,21 +100,20 @@
                       :key="item.id"
                       :label="`${item.takerName} - ${item.customerName}`"
                       :value="item.id"
-                    >
-                    </el-option>
+                    />
                   </el-select>
                 </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="8" :lg="8">
                 <el-form-item label="提货人身份证" prop="idCard">
-                  <el-input v-model="screenForm.idCard" placeholder="请通过手机验证获取" readonly></el-input>
+                  <el-input v-model="screenForm.idCard" placeholder="请通过手机验证获取" readonly />
                 </el-form-item>
               </el-col>
             </el-row>
             <el-row :gutter="20">
               <el-col :xs="24" :sm="8" :lg="8">
                 <el-form-item label="经销商" prop="customerName">
-                  <el-input v-model="screenForm.customerName" placeholder="经销商" readonly></el-input>
+                  <el-input v-model="screenForm.customerName" placeholder="经销商" readonly />
                 </el-form-item>
               </el-col>
               <el-col :xs="24" :sm="8" :lg="8">
@@ -125,11 +126,11 @@
                     style="width: 100%"
                   >
                     <el-option
-                      :label="item.name"
-                      :value="item.id"
                       v-for="(item, index) in warehouseList"
                       :key="index"
-                    ></el-option>
+                      :label="item.name"
+                      :value="item.id"
+                    />
                   </el-select>
                 </el-form-item>
               </el-col>
@@ -142,8 +143,11 @@
             <el-col :xs="24" :sm="24" :lg="24">
               <el-form-item prop="status" label-width="0">
                 <el-radio-group v-model="screenForm.status" size="mini" @change="getList()">
-                  <el-radio-button v-for="(item, index) in statusList" :key="index" :label="item.value"
-                    >{{ item.label }}
+                  <el-radio-button
+                    v-for="(item, index) in statusList"
+                    :key="index"
+                    :label="item.value"
+                  >{{ item.label }}
                   </el-radio-button>
                 </el-radio-group>
               </el-form-item>
@@ -152,11 +156,11 @@
         </el-form>
       </div>
       <div>
-        <el-form :model="screenForm" ref="form" label-width="120px" size="mini">
+        <el-form ref="form" :model="screenForm" label-width="120px" size="mini">
           <el-row :gutter="20">
             <el-col :xs="24" :sm="8" :lg="8">
               <el-form-item label="申请发货单号">
-                <el-input v-model="screenForm.invoiceId" clearable></el-input>
+                <el-input v-model="screenForm.invoiceId" clearable />
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="8" :lg="8">
@@ -168,7 +172,7 @@
       <div class="main-title">
         <div class="title">提货单</div>
         <div class="fr">
-          <ExportButton :disabled="disableExport" :exUrl="'pick/storeExport'" :exParams="exParams" />
+          <ExportButton :disabled="disableExport" :ex-url="'pick/storeExport'" :ex-params="exParams" />
         </div>
       </div>
 
@@ -186,7 +190,7 @@
             @select="handleSelect"
             @select-all="handleSelectAll"
           >
-            <el-table-column align="left" type="selection" width="55"></el-table-column>
+            <el-table-column align="left" type="selection" width="55" />
             <!-- <el-table-column align="left" label="操作" width="100" fixed="left">
               <template slot-scope="scope">
                 <el-button type="text" @click="toPrint(scope.row)">打印</el-button>
@@ -209,7 +213,7 @@
             </el-table-column>
             <el-table-column align="left" label="信息密钥" prop="informationKey" min-width="120" show-overflow-tooltip>
               <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.informationKey" />
+                <CopyButton :copy-text="scope.row.informationKey" />
                 <span>{{ scope.row.informationKey }}</span>
               </template>
             </el-table-column>
@@ -221,13 +225,13 @@
               show-overflow-tooltip
             >
               <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.customerNumber" />
+                <CopyButton :copy-text="scope.row.customerNumber" />
                 <span>{{ scope.row.customerNumber }}</span>
               </template>
             </el-table-column>
             <el-table-column align="left" label="经销商名称" prop="customerName" min-width="250" show-overflow-tooltip>
               <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.customerName" />
+                <CopyButton :copy-text="scope.row.customerName" />
                 <span>{{ scope.row.customerName }}</span>
               </template>
             </el-table-column>
@@ -244,20 +248,20 @@
             <el-table-column align="left" label="销售订单号" prop="mainOrderId" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
                 <CopyButton
-                  :copyText="
+                  :copy-text="
                     scope.row.orderType === 'TRADE' ||
-                    scope.row.orderType === 'HOME' ||
-                    scope.row.orderType === 'REQUISITION_TRADE' ||
-                    scope.row.orderType === 'REQUISITION_HOME'
+                      scope.row.orderType === 'HOME' ||
+                      scope.row.orderType === 'REQUISITION_TRADE' ||
+                      scope.row.orderType === 'REQUISITION_HOME'
                       ? scope.row.enginOrderNo
                       : scope.row.mainOrderId
                   "
                 />
                 <span>{{
                   scope.row.orderType === 'TRADE' ||
-                  scope.row.orderType === 'HOME' ||
-                  scope.row.orderType === 'REQUISITION_TRADE' ||
-                  scope.row.orderType === 'REQUISITION_HOME'
+                    scope.row.orderType === 'HOME' ||
+                    scope.row.orderType === 'REQUISITION_TRADE' ||
+                    scope.row.orderType === 'REQUISITION_HOME'
                     ? scope.row.enginOrderNo
                     : scope.row.mainOrderId
                 }}</span>
@@ -265,7 +269,7 @@
             </el-table-column>
             <el-table-column align="left" label="发货申请单号" prop="invoiceId" min-width="130" show-overflow-tooltip>
               <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.invoiceId" />
+                <CopyButton :copy-text="scope.row.invoiceId" />
                 <span>{{ scope.row.invoiceId }}</span>
               </template>
             </el-table-column>
@@ -275,10 +279,10 @@
               prop="saleTypeName"
               min-width="100"
               show-overflow-tooltip
-            ></el-table-column>
+            />
             <el-table-column align="left" label="物料编码" prop="materialCode" min-width="120" show-overflow-tooltip>
               <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.materialCode" />
+                <CopyButton :copy-text="scope.row.materialCode" />
                 <span>{{ scope.row.materialCode }}</span>
               </template>
             </el-table-column>
@@ -290,19 +294,19 @@
               show-overflow-tooltip
             >
               <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.materialOldNumber" />
+                <CopyButton :copy-text="scope.row.materialOldNumber" />
                 <span>{{ scope.row.materialOldNumber }}</span>
               </template>
             </el-table-column>
             <el-table-column align="left" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip>
               <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.materialName" />
+                <CopyButton :copy-text="scope.row.materialName" />
                 <span>{{ scope.row.materialName }}</span>
               </template>
             </el-table-column>
             <el-table-column align="left" label="规格型号" prop="specification" min-width="350" show-overflow-tooltip>
               <template slot-scope="scope">
-                <CopyButton :copyText="scope.row.specification" />
+                <CopyButton :copy-text="scope.row.specification" />
                 <span>{{ scope.row.specification }}</span>
               </template>
             </el-table-column>
@@ -312,14 +316,14 @@
               prop="unit"
               min-width="100"
               show-overflow-tooltip
-            ></el-table-column>
+            />
             <el-table-column
               align="left"
               label="数量"
               prop="refundableQty"
               min-width="100"
               show-overflow-tooltip
-            ></el-table-column>
+            />
             <!-- <el-table-column align="left" label="单价" prop="price" min-width="100" show-overflow-tooltip></el-table-column>
             <el-table-column align="left" label="金额" prop="payAmount" min-width="100" show-overflow-tooltip></el-table-column>
             <el-table-column align="left" label="使用返利金额" prop="payRebateAmount" min-width="120" show-overflow-tooltip></el-table-column>
@@ -330,7 +334,7 @@
               prop="correspondName"
               min-width="160"
               show-overflow-tooltip
-            ></el-table-column>
+            />
             <el-table-column align="left" label="提货方式" prop="pickType" min-width="100" show-overflow-tooltip>
               <template slot-scope="scope">
                 {{ scope.row.pickType == '1' ? '自提' : '物流快递' }}
@@ -353,26 +357,25 @@
       <div class="pagination clearfix">
         <div class="fr">
           <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
             :current-page="currentPage"
             :page-sizes="[200, 300, 500]"
             :page-size="10"
             layout="total, sizes, prev, pager, next, jumper"
             :total="listTotal"
-          >
-          </el-pagination>
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+          />
         </div>
       </div>
 
       <div class="page-footer">
         <div class="footer">
           <el-button
+            v-if="$checkBtnRole('print', $route.meta.roles)"
             type="primary"
-            @click="toPrint"
             :disabled="tableSelection.length < 1"
-            v-if="$checkBtnRole('print', $route.meta.roles)"
-            >打印发货单
+            @click="toPrint"
+          >打印发货单
           </el-button>
         </div>
       </div>
@@ -389,12 +392,12 @@
         <el-row :gutter="20">
           <el-col :xs="24" :sm="24" :lg="24">
             <el-form-item label="密码" prop="password">
-              <el-input v-model="dialogForm.password" autocomplete="off" placeholder="请输入密码"></el-input>
+              <el-input v-model="dialogForm.password" autocomplete="off" placeholder="请输入密码" />
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="12">
             <el-form-item label="操作人" prop="createMan">
-              <el-input v-model="dialogForm.createMan" readonly></el-input>
+              <el-input v-model="dialogForm.createMan" readonly />
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :lg="12" style="height: 51px">
@@ -406,8 +409,7 @@
                 value-format="yyyy-MM-dd"
                 style="width: 100%"
                 placeholder="选择日期"
-              >
-              </el-date-picker>
+              />
             </el-form-item>
           </el-col>
         </el-row>
@@ -417,7 +419,7 @@
         <el-button type="primary" @click="submitDialogForm">确 定</el-button>
       </div>
     </el-dialog>
-    <print-preview ref="preView" @initPrint="handleInitPrint" @refreshList="handleRefreshList" :addPrint="addPrint" />
+    <print-preview ref="preView" :add-print="addPrint" :get-oval-dateil="getOvalDateil" :get-new-detail-print-dis-string="getNewDetailPrintDisString" @refreshTableSelection="refreshTableSelection" @initPrint="handleInitPrint" @refreshList="handleRefreshList" />
 
     <!-- <PickupPrint :listItem="queryItem" v-if="isShowPrint" @backListFormDetail="backList" /> -->
   </div>
@@ -440,6 +442,7 @@ import { getDealerList, getListCustomer } from '@/api/basic_data/dealer'
 import PickupPrint from '@/views/supply/pickup/components/pickup_print'
 
 import printPreview from './components/design/preview.vue'
+import { async } from 'q'
 
 export default {
   components: {
@@ -576,7 +579,7 @@ export default {
       this.listTotal = res.data.total
     },
     loadmore() {
-      let len = Math.ceil(this.listTotal / 50)
+      const len = Math.ceil(this.listTotal / 50)
       if (this.pageNum <= len) {
         this.pageNum++
         this.getDealerList()
@@ -691,7 +694,12 @@ export default {
         logisticsId: this.screenForm.logisticsId,
         invoiceId: this.screenForm.invoiceId
       }
-      getPickupList(params).then(res => {
+      // getPickupList(params).then(res => {
+      //   this.dataList = res.data.records
+      //   this.listTotal = res.data.total
+      //   this.listLoading = false
+      // })
+      return getPickupList(params).then(res => {
         this.dataList = res.data.records
         this.listTotal = res.data.total
         this.listLoading = false
@@ -733,7 +741,7 @@ export default {
     // 检查是否一致
     isAllEqual(array) {
       if (array.length > 0) {
-        return !array.some(function (item, index) {
+        return !array.some(function(item, index) {
           return item.informationKey !== array[0].informationKey
         })
       } else {
@@ -743,6 +751,52 @@ export default {
 
     // 点击打印
     async toPrint() {
+      this.getList().then(async res => {
+        if (this.dataList.length) {
+          const ids = this.tableSelection.map(k => k.id)
+          for (let i = 0; i < ids.length; i++) {
+            console.log(this.dataList.some(e => e.id === ids[i]))
+            if (!this.dataList.some(e => e.id === ids[i])) {
+              this.tableSelection= []
+              this.$errorMsg(`单被商家取消预约,重新选择`)
+              return
+            }
+          }
+        } else {
+          this.tableSelection= []
+          this.$errorMsg(`单被商家取消预约,重新选择`)
+          return
+        }
+        const { data } = await this.getNewDetailPrintDisString()
+        if (data) {
+          this.$confirm(<p class='text'>{data}</p>, '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            customClass: 'text'
+          }).then(() => {
+            if (this.tableSelection[0].printNum) {
+              this.dialogForm.createMan = JSON.parse(localStorage.getItem('supply_user')).nickName
+              this.dialogForm.createDate = this.getDate()
+              this.isShowDialog = true
+            }
+          })
+        } else {
+          this.getOvalDateil()
+        }
+      })
+    },
+    getOvalDateil() {
+      this.getDateil(this.tableSelection, 'getDtailPrintDis', this.check).then(res => {
+        this.$endLoading()
+        this.$refs.preView.show(this.hiprintTemplate, this.outputData)
+      })
+    },
+    refreshTableSelection() {
+     this.$refs.table.clearSelection()
+      this.tableSelection = []
+      console.log(333,'清空');
+    },
+    async getNewDetailPrintDisString() {
       const params = []
       const len = this.tableSelection.length
       this.queryItem = this.tableSelection
@@ -752,29 +806,9 @@ export default {
           invoiceId: this.tableSelection[i - 1].invoiceId
         })
       }
-      const { data } = await getDetailPrintDisString(params)
-      console.log(data)
-      if (data) {
-        this.$confirm(<p class="text">{data}</p>, '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          customClass: 'text'
-        }).then(() => {
-          if (this.tableSelection[0].printNum) {
-            this.dialogForm.createMan = JSON.parse(localStorage.getItem('supply_user')).nickName
-            this.dialogForm.createDate = this.getDate()
-            this.isShowDialog = true
-          }
-        })
-      } else {
-        this.getDateil(this.tableSelection, 'getDtailPrintDis', this.check).then(res => {
-          this.tableSelection = []
-          this.$endLoading()
-          this.$refs.preView.show(this.hiprintTemplate, this.outputData)
-        })
-      }
+      console.log(params, this.tableSelection)
+      return await getDetailPrintDisString(params)
     },
-
     // 关闭弹窗
     cancelDialogForm() {
       this.isShowDialog = false
@@ -785,7 +819,7 @@ export default {
     submitDialogForm() {
       this.$refs.dialogForm.validate(valid => {
         if (valid) {
-          let params = {
+          const params = {
             shipId: this.queryItem[0].invoiceId,
             password: this.dialogForm.password
           }

+ 78 - 42
src/views/supply/pickup/components/design/preview.vue

@@ -30,14 +30,22 @@ import { addPrint } from './print-data'
 import { detailArr } from './print-data'
 
 export default {
-    name: 'PrintPreview',
+  name: 'PrintPreview',
   props: {
     addPrint: {
       type: Function,
       default: null
     },
+    getNewDetailPrintDisString: {
+      type: Function,
+      default: null
+    },
+    getOvalDateil: {
+      type: Function,
+      default: null
+    }
   },
- 
+
   data() {
     return {
       visible: false,
@@ -49,15 +57,14 @@ export default {
       hiprintTemplate: {},
       // 数据
       printData: {},
-      loading: true
+      loading: true,
+      flag: false
     }
   },
   computed: {},
   watch: {},
-  created() {
-  },
-  mounted() {
-  },
+  created() {},
+  mounted() {},
   methods: {
     // handleExport() {
     //   downloadPDF(this.$refs.printDom);
@@ -66,6 +73,8 @@ export default {
       this.visible = false
       this.waitShowPrinter = false
       this.$emit('initPrint')
+      this.$emit('refreshTableSelection')
+      this.$emit('refreshList')
       // console.log(this.$parent);
     },
     show(hiprintTemplate, printData, width = '210') {
@@ -80,46 +89,73 @@ export default {
         this.spinning = false
       }, 500)
     },
-    print() {
-
-      try {
-        if (typeof this.addPrint === 'function') {
-          this.addPrint('getDtailPrintDis').then(() => {
-            this.hiprintTemplate.print(
-              this.printData,
-              {},
-              {
-                callback: async() => {
-                  this.hiprintTemplate = {}
-                  // setTimeout(() => {
-                  //   console.error('更新发货汇总列表')
-                  //   // this.$successMsg('更新成功')
-                  // }, 1000)
-                  setTimeout(() => {
-                    console.error('更新发货汇总列表')
-                    this.$emit('refreshList')
-                  }, 1000)
-                }
-              }
-            )
+    async print() {
+      if (this.getNewDetailPrintDisString) {
+        try {
+          const { data } = await this.getNewDetailPrintDisString()
 
-          })
-        } else {
-          throw new Error('加载失败,刷新重试')
+          if (!data || this.flag) {
+            try {
+              if (typeof this.addPrint === 'function') {
+                this.addPrint('getDtailPrintDis')
+                  .then(res => {
+                    this.hiprintTemplate.print(
+                      this.printData,
+                      {},
+                      {
+                        callback: async() => {
+                          this.hiprintTemplate = {}
+                          setTimeout(() => {
+                            this.flag = false
+                            this.hideModal()
+                            this.$emit('refreshTableSelection')
+                            this.$emit('refreshList')
+                          }, 1000)
+                        }
+                      }
+                    )
+                  })
+                  .catch(err => {
+                    this.myConfirm(err)
+                  })
+              } else {
+                console.log(333)
+                // throw new Error('加载失败,刷新重试')
+              }
+            } catch (e) {
+              this.$errorMsg(e)
+              // '调用打印次数接口失败'
+            }
+          } else {
+            this.$confirm(data, '提示', {
+              showClose: false,
+              confirmButtonText: '确定',
+              showCancelButton: false,
+              type: 'warning',
+              center: true
+            }).then(() => {
+              this.getOvalDateil()
+              this.flag = true
+            })
+          }
+        } catch (error) {
+          this.myConfirm()
         }
-      } catch (e) {
-        this.$errorMsg(e)
-        // '调用打印次数接口失败'
       }
-
-      setTimeout(() => {
+    },
+    myConfirm(err) {
+      this.$confirm(err || '请刷新页面,重新选择打印', '提示', {
+        showClose: false,
+        confirmButtonText: '确定',
+        showCancelButton: false,
+        type: 'warning',
+        center: true
+      }).then(() => {
         this.hideModal()
-      }, 2000)
+        this.$emit('refreshTableSelection')
+        this.$emit('refreshList')
+      })
     }
-    // toPdf() {
-    //   downloadPDF(this.$refs.printDom);
-    //   this.hiprintTemplate.toPdf({}, '打印预览');
-    // },
   }
 }
 </script>