ソースを参照

Merge branch 'develop_yh13' of http://git.chelingzhu.com/jianguan-web/jg-ocs-html into develop_yh13

chenrui 2 年 前
コミット
eea4ec4b6e

+ 19 - 13
src/libs/JGPrint.js

@@ -110,26 +110,31 @@ export const jGPrint = function (data, type, callback, printLogParams, printPage
   }
   LODOP.SET_SHOW_MODE('HIDE_PAPER_BOARD', 1) //  隐藏底图上有模拟走纸板的条纹线
   // 执行该语句之后,PRINT指令不再返回那个所谓“打印成功”,才能获取到打印状态
-  LODOP.SET_PRINT_MODE('CATCH_PRINT_STATUS', true)
+  // LODOP.SET_PRINT_MODE('CATCH_PRINT_STATUS', true)
   // TaskID:任务id,Value:job代码
   LODOP.On_Return = function (TaskID, Value) {
-    console.log(TaskID, Value)
+    console.log(TaskID, Value, printLogParams)
     // 已打印
-    if (Value && printLogParams) {
-      console.log('已打印,统计打印次数')
-      printLog(printLogParams, callback)
+    if (Value) {
+      if(printLogParams){
+        console.log('已打印,统计打印次数')
+        printLog(printLogParams, callback)
+      }else{
+        callback({status:200,message:'已打印'})
+      }
     } else {
+      // 取消打印
       callback()
     }
   }
   if (printPageSize) {
-    LODOP.ADD_PRINT_HTM(0, 0, '100%', '99%', data)
     LODOP.SET_PRINT_PAGESIZE(3, '210mm', 100, '')
   } else {
-    LODOP.SET_PRINT_PAGESIZE(1,'210mm','297mm',"");
-    LODOP.ADD_PRINT_HTM(0, 0, '100%', '99%', data)
     LODOP.SET_SHOW_MODE('BKIMG_PRINT', 0)
+    LODOP.SET_PRINT_PAGESIZE(1,'210mm','297mm',"");
   }
+  LODOP.ADD_PRINT_HTM(0, 0, '100%', '99%', data)
+
   if (type == 'preview') { //  预览
     LODOP.PREVIEW()
   } else if (type == 'print') { //  打印
@@ -138,7 +143,7 @@ export const jGPrint = function (data, type, callback, printLogParams, printPage
 }
 
 // 批量打印销售收款单html
-export const jGPlPrint = function (data, type, callback, printLogParams, orginData) {
+export const jGPlPrint = function (data, type, callback, printLogParams, taskName) {
   if (!data) {
     return
   }
@@ -161,12 +166,13 @@ export const jGPlPrint = function (data, type, callback, printLogParams, orginDa
     })
     return
   }
+  LODOP.PRINT_INIT(taskName)
   LODOP.SET_SHOW_MODE('HIDE_PAPER_BOARD', 1) //  隐藏底图上有模拟走纸板的条纹线
   // 执行该语句之后,PRINT指令不再返回那个所谓“打印成功”,才能获取到打印状态
-  LODOP.SET_PRINT_MODE('CATCH_PRINT_STATUS', true)
+  // LODOP.SET_PRINT_MODE('CATCH_PRINT_STATUS', true)
   // TaskID:任务id,Value:job代码
   LODOP.On_Return = function (TaskID, Value) {
-    console.log(TaskID, Value)
+    console.log(TaskID, Value, printLogParams)
     // 已打印
     if (Value) {
       if(printLogParams){
@@ -292,14 +298,14 @@ export const jGPrintPdf = function (data, type, taskName, printLogParams, callba
     LODOP.PRINT_INIT(taskName)
     LODOP.SET_SHOW_MODE('HIDE_PAPER_BOARD', 1) //  隐藏底图上有模拟走纸板的条纹线
     // 执行该语句之后,PRINT指令不再返回那个所谓“打印成功”,才能获取到打印状态
-    LODOP.SET_PRINT_MODE('CATCH_PRINT_STATUS', true)
+    // LODOP.SET_PRINT_MODE('CATCH_PRINT_STATUS', true)
     // 隐藏打印按钮
     if (hidePrint) {
       LODOP.SET_SHOW_MODE('HIDE_PBUTTIN_PREVIEW', true)
     }
     // TaskID:任务id,Value:job代码
     LODOP.On_Return = function (TaskID, Value) {
-      console.log(TaskID, Value)
+      console.log(TaskID, Value, printLogParams)
       // 已打印
       if (Value && printLogParams) {
         console.log('已打印,统计打印次数')

+ 9 - 6
src/views/allocationManagement/transferOut/basicInfoModal.vue

@@ -7,7 +7,7 @@
     :title="isEdit?'编辑':'新增'"
     v-model="isShow"
     @cancel="isShow = false"
-    :width="800">
+    :width="900">
     <a-spin :spinning="spinning" tip="Loading...">
       <a-form-model
         id="allocateBill-basicInfo-form"
@@ -26,7 +26,7 @@
             </a-form-model-item>
           </a-col>
           <a-col :md="12" :sm="24" v-if="!isEdit">
-            <a-form-model-item label="调往对象名称" :prop="isDealer ? 'targetSn' : 'targetName'">
+            <a-form-model-item label="调往对象名称" :prop="isDealer||isDepartment ? 'targetSn' : 'targetName'">
               <a-select
                 v-if="isDealer"
                 show-search
@@ -41,7 +41,8 @@
                 <a-spin v-if="fetching" slot="notFoundContent" size="small" />
                 <a-select-option v-for="item in dealerData" :key="item.dealerSn" :value="item.dealerSn">{{ item.dealerName }}</a-select-option>
               </a-select>
-              <department v-if="!isDealer" style="width: 100%;" placeholder="请选择部门" @change="departementChange" v-model="form.targetSn"></department>
+              <department v-else-if="isDepartment" style="width: 100%;" placeholder="请选择部门" @change="departementChange" v-model="form.targetSn"></department>
+              <a-input v-else v-model="form.targetName" placeholder="请输入调往对象名称(最多30个字符)" :maxLength="30"></a-input>
             </a-form-model-item>
           </a-col>
           <a-col :md="12" :sm="24">
@@ -170,6 +171,9 @@ export default {
     // 当前所选调往对象是否为经销商
     isDealer () {
       return this.form.targetType == 'DEALER'
+    },
+    isDepartment () {
+      return this.form.targetType == 'DEPARTMENT'
     }
   },
   methods: {
@@ -254,12 +258,11 @@ export default {
               _this.$message.success(res.message)
               _this.isShow = false
               _this.$emit('ok', res.data)
-            } else {
-              _this.spinning = false
             }
+            _this.spinning = false
           })
         } else {
-          console.log('error submit!!')
+          _this.spinning = false
           return false
         }
       })

+ 11 - 2
src/views/allocationManagement/transferReturn/basicInfoModal.vue

@@ -42,7 +42,8 @@
             <a-spin v-if="fetching" slot="notFoundContent" size="small" />
             <a-select-option v-for="item in dealerData" :key="item.dealerSn" :value="item.dealerSn">{{ item.dealerName }}</a-select-option>
           </a-select>
-          <a-input v-if="!isDealer" v-model.trim="form.targetName" placeholder="请输入调拨退货对象名称(最多30个字符)" allowClear :maxLength="30" />
+          <department v-else-if="isDepartment" style="width: 100%;" placeholder="请选择部门" @change="departementChange" v-model="form.targetSn"></department>
+          <a-input v-else v-model.trim="form.targetName" placeholder="请输入调拨退货对象名称(最多30个字符)" allowClear :maxLength="30" />
         </a-form-model-item>
         <a-form-model-item label="费用/调拨退货类型" prop="costTypeSn">
           <AllocateType id="allocateBill-basicInfo-allocateTypeSn" v-model="allocateTypeVal" placeholder="请选择费用/调拨退货类型" @change="allocateTypeChange"></AllocateType>
@@ -74,11 +75,12 @@ import { commonMixin } from '@/utils/mixin'
 import debounce from 'lodash/debounce'
 import { VSelect } from '@/components'
 import { allocateReturnSave, allocateReturnQueryBySn } from '@/api/allocateReturn'
+import department from '@/views/expenseManagement/expenseReimbursement/department.js'
 import { dealerSubareaScopeList } from '@/api/dealer'
 import AllocateType from '@/views/common/allocateType.js'
 export default {
   name: 'TransferOutBasicInfoModal',
-  components: { VSelect, AllocateType },
+  components: { VSelect, AllocateType, department },
   mixins: [commonMixin],
   props: {
     openModal: {
@@ -122,6 +124,9 @@ export default {
     // 当前所选调往对象是否为经销商
     isDealer () {
       return this.form.targetType == 'DEALER'
+    },
+    isDepartment () {
+      return this.form.targetType == 'DEPARTMENT'
     }
   },
   methods: {
@@ -144,6 +149,10 @@ export default {
       const ind = this.dealerData.findIndex(item => item.dealerSn == value)
       this.form.targetName = this.dealerData[ind].dealerName
     },
+    departementChange (v, row) {
+       console.log(v,row)
+       this.form.targetName = row.name
+    },
     // 调拨类别 change
     allocateTypeChange (val, opt) {
       console.log(val, opt, '------------')

+ 2 - 1
src/views/expenseManagement/expenseReimbursement/add.vue

@@ -198,7 +198,8 @@ export default {
         { title: '序号', dataIndex: 'no', width: '5%', align: 'center' },
         { title: '记账类型', dataIndex: 'accountTypeDictValue', align: 'center', width: '8%', customRender: function (text) { return text || '--' } },
         { title: '记账名称', dataIndex: 'accountName', scopedSlots: { customRender: 'jzname' }, align: 'center', width: '10%' },
-        { title: '所属区域', dataIndex: 'subareaNames', align: 'center', width: '8%', customRender: function (text) { return text || '--' } },
+        { title: '所属区域', dataIndex: 'subareaArea.subareaName', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
+        { title: '所属分区', dataIndex: 'subareaArea.subareaAreaName', width: '6%', align: 'center', customRender: function (text) { return text || '--' } },
         { title: '所属省份', dataIndex: 'provinceName', align: 'center', width: '8%', customRender: function (text) { return text || '--' } },
         { title: '所属城市', dataIndex: 'cityName', align: 'center', width: '8%', customRender: function (text) { return text || '--' } },
         { title: '记账费用', dataIndex: 'expense', align: 'center', width: '10%', customRender: function (text) { return (text == 0 || text) ? _this.toThousands(text) : '--' } },

+ 30 - 7
src/views/expenseManagement/expenseReimbursement/detail.vue

@@ -39,6 +39,7 @@
               <a-descriptions-item label="费用发生月份">{{ detailData&&detailData.expenseDate?detailData.expenseDate.substring(0, 7) : '--' }}</a-descriptions-item>
               <a-descriptions-item label="合计金额">{{ (detailData.applyExpenseTotal || detailData.applyExpenseTotal == 0) ? toThousands(detailData.applyExpenseTotal)+' 元' : '--' }}</a-descriptions-item>
               <a-descriptions-item label="状态">{{ detailData&&detailData.stateDictValue || '--' }}</a-descriptions-item>
+              <a-descriptions-item label="打印状态">{{ detailData&&detailData.printStatusDictValue || '--' }}</a-descriptions-item>
               <a-descriptions-item label="创建时间">{{ detailData&&detailData.createDate || '--' }}</a-descriptions-item>
               <a-descriptions-item label="审核时间">{{ detailData&&detailData.finishDate || '--' }}</a-descriptions-item>
               <a-descriptions-item label="主题" :span="3">{{ detailData&&detailData.title || '--' }}</a-descriptions-item>
@@ -98,26 +99,35 @@
       </a-card>
     </a-spin>
     <!-- 打印预览 -->
-    <previewModal ref="previewModal" @printOk="printOk"></previewModal>
+    <commonModal modalTit="费用报销单打印预览" width="700pt" okText="立即打印" :openModal="showTipModal" @cancel="showTipModal=false" @ok="$refs.printModal.prints()">
+      <previewModal v-if="printType=='preview'" ref="printModal" @printOk="printOk"></previewModal>
+    </commonModal>
+    <!-- 快捷打印 -->
+    <div style="height:0;overflow: hidden;">
+      <previewModal v-if="printType=='print'" ref="printModal" @printOk="printOk"></previewModal>
+    </div>
   </div>
 </template>
 
 <script>
 import { commonMixin } from '@/utils/mixin'
 import { STable } from '@/components'
+import commonModal from '@/views/common/commonModal.vue'
 import { expenseAccountDetail, expenseAcctDetailFindList, getProcessInstance, expenseAccountUpdateBatch } from '@/api/expenseManagement'
 import previewModal from './previewModal.vue'
 
 export default {
   name: 'ExpenseReimbursementListDetail',
   mixins: [commonMixin],
-  components: { STable, previewModal },
+  components: { STable, previewModal, commonModal },
   data () {
     let _this=this
     return {
       spinning: false,
       disabled: false,
       baseData: null,
+      showTipModal: false,
+      printType:'',
       count: 0,
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -162,16 +172,28 @@ export default {
     },
     // 打印
     async handlePrint (type) {
+      this.printType = type
       this.spinning = true
       // 费用明细
       const fyListData = await expenseAcctDetailFindList({ expenseAccountSn: this.$route.params.sn }).then(res => res.data)
       // 审核明细,待提交状态不获取
       const spListData = this.detailData.state != 'WAIT_SUBMIT' ? await getProcessInstance({ businessType: 'EXPENSES', businessSn: this.$route.params.sn }).then(res => res.data) : null
-      this.$refs.previewModal.setData([{
-        expenseInfo: this.detailData,
-        fyListData,
-        spListData
-      }])
+      // 打印预览弹框
+      if(type == 'preview'){
+        this.showTipModal = true
+      } 
+      this.$nextTick(()=>{
+        this.$refs.printModal.setData([{
+          expenseInfo: this.detailData,
+          fyListData,
+          spListData
+        }])
+        // 立即打印
+        if(type == 'print'){
+          this.$refs.printModal.prints()
+        }
+        this.spinning = false
+      })
     },
     printOk(data){
       if(data&&data.status == 200){
@@ -183,6 +205,7 @@ export default {
              this.getDetail()
           }
           this.spinning = false
+          this.showTipModal = false
         })
       }else{
         this.spinning = false

+ 13 - 3
src/views/expenseManagement/expenseReimbursement/list.vue

@@ -161,7 +161,9 @@
     <!-- 新增 -->
     <baseDataModal :show="openBaseModal" @close="openBaseModal=false"></baseDataModal>
     <!-- 打印预览 -->
-    <previewModal ref="printModal" @printOk="printOk"></previewModal>
+    <commonModal modalTit="费用报销单打印预览" width="700pt" okText="立即打印" :openModal="showTipModal" @cancel="showTipModal=false" @ok="$refs.printModal.prints()">
+      <previewModal ref="printModal" @printOk="printOk"></previewModal>
+    </commonModal>
   </a-card>
 </template>
 
@@ -174,6 +176,7 @@ import employee from './employee.js'
 import { STable, VSelect } from '@/components'
 import verifyModal from './verifyModal.vue'
 import previewModal from './previewModal.vue'
+import commonModal from '@/views/common/commonModal.vue'
 import expenseType from '@/views/common/expenseType.js'
 import { getBatchLastProcessInstance } from '@/api/financeBook'
 import { expenseAccountList, expenseAccountDelete, expenseAccountAgainEdit, expenseAcctDetailFindList, expenseAccountUpdateBatch } from '@/api/expenseManagement'
@@ -181,7 +184,7 @@ import baseDataModal from './baseDataModal.vue'
 export default {
   name: 'ExpenseReimbursementList',
   mixins: [commonMixin],
-  components: { STable, VSelect, subarea, verifyModal, baseDataModal, employee, expenseType, previewModal },
+  components: { STable, VSelect, subarea, verifyModal, baseDataModal, employee, expenseType, previewModal, commonModal },
   data () {
     let _this=this
     return {
@@ -191,6 +194,7 @@ export default {
       disabled: false, //  查询、重置按钮是否可操作
       openModal: false, // 审核进度弹框是否显示
       openBaseModal: false, // 基础信息新建
+      showTipModal: false,
       itemSn: '', // 费用单sn
       tableHeight: 0,
       expenseTypes: [],
@@ -268,6 +272,7 @@ export default {
             this.$refs.table.clearSelected()
           }
           this.spinning = false
+          this.showTipModal = false
         })
       }else{
         this.spinning = false
@@ -306,7 +311,12 @@ export default {
         item.spListData = sp ? sp.taskVOList : []
       })
       console.log(pageData)
-      this.$refs.printModal.setData(pageData)
+      // 打开预览弹框
+      this.showTipModal = true
+      this.$nextTick(()=>{
+        this.$refs.printModal.setData(pageData)
+        this.spinning = false
+      })
     },
     onChange (date, dateString) {
       this.queryParam.expenseDate = dateString

+ 4 - 7
src/views/expenseManagement/expenseReimbursement/previewModal.vue

@@ -1,9 +1,9 @@
 <template>
   <div class="container-print-view" 
-  style="width:100%;font-size: 12pt;position: fixed;font-family: auto;left:-1000000px;padding:0;margin:0 auto;background-color: #fff;" 
+  style="width:100%;font-size: 12pt;height: 600px;overflow: auto;" 
   >
   <div class="expense-detail-print" style="width:564pt;margin:0 auto;" v-for="item in list" :key="item.expenseInfo.expenseAccountSn">
-    <p class="container-title" style="text-align: center;font-size: 24px;font-weight: 600;">箭冠汽配企业费用报销单</p>
+    <div class="container-title" style="text-align: center;font-size: 24px;font-weight: 600;margin: 20px 0;">箭冠汽配企业费用报销单</div>
     <div class="container-info" style="width:564pt;border: 1px solid #000000;">
       <div class="container-info-basics" v-if="item.expenseInfo">
         <div class="basics-item" style="width: 100%;border-bottom: 1px solid #000000;padding:0;margin:0;">
@@ -137,9 +137,6 @@ export default {
   methods: {
     setData (list) {
       this.list = list
-      setTimeout(()=>{
-        this.prints()
-      },100)
     },
     // 打印
     prints(){
@@ -169,10 +166,10 @@ export default {
       this.$store.state.app.curActionPermission = 'B_eRPrint'
       // html, type, callback, printLogParams
       // console.log(htmlStr)
-      jGPlPrint(htmlStr, 'preview', function (res) {
+      jGPlPrint(htmlStr, 'print', function (res) {
         _this.$store.state.app.curActionPermission = ''
         _this.$emit('printOk', res)
-      })
+      },null,'费用报销单')
     }
   }
 }

+ 9 - 9
src/views/financialManagement/financialCollection/fcDetailModal.vue

@@ -328,6 +328,7 @@ export default {
     handleChange (v) {
       console.log(v)
       if(v){
+        this.form.bankAccount = v
         const row = this.bankList.find(item => item.bankAccount == v)
         this.bankNameList = row.bankName
         this.form.bankName = undefined  
@@ -427,12 +428,15 @@ export default {
       })
     },
     setDetail (data) {
-      this.handleChange(data.bankAccount)
       this.form = Object.assign(this.form, { payerTypeDictValue: data.payerTypeDictValue, payerType: data.payerType, dealerSn: data.dealerSn, payerName: data.payerName })
       this.$nextTick(() => {
         if(this.form.dealerSn){
           // this.$refs.settleClientName.getDetail(this.form.dealerSn)
           this.getDealerDetail(this.form.dealerSn)
+        }else{
+          this.form.bankAccount = '张丽添'
+          this.form.bankName = '农业银行'
+          this.bankNameList = ['农业银行']
         }
       })
     },
@@ -469,11 +473,12 @@ export default {
     pageInit () {
       this.$nextTick(() => {
         this.title = '新增收款明细'
-        // if (this.$refs.settleClientName) {
-        //   this.$refs.settleClientName.resetForm()
-        // }
       })
       this.bankNameList = []
+      this.bankNameList = ['东莞银行']
+      if(this.$refs.ruleForm){
+        this.$refs.ruleForm.resetFields()
+      }
       this.form = {
         payerType: 'DEALER',
         payerAccountType: 'PUBLIC',
@@ -496,16 +501,11 @@ export default {
         fullPaymentFlag: '1',
         explainInfo: ''
       }
-      this.bankNameList = ['东莞银行']
-      this.$refs.ruleForm.resetFields()
     }
   },
   watch: {
     show (newValue, oldValue) {
       this.opened = newValue
-      if (!newValue) {
-        this.pageInit()
-      }
     }
   }
 }

+ 11 - 6
src/views/salesManagement/receiptPrint/list.vue

@@ -109,7 +109,9 @@
         </s-table>
 
         <!-- 收款打印 -->
-        <printModel ref="printModel" @cancel="closeTipModal" @printOk="printOk"></printModel>
+        <commonModal modalTit="收款打印预览" width="700pt" :showFooter="false" :openModal="showTipModal" @cancel="closeTipModal">
+           <printModel ref="printModel" @cancel="closeTipModal" @printOk="printOk"></printModel>
+        </commonModal>
         <!-- 打印记录 -->
         <recordModal v-drag ref="recordModal" modalTit="打印记录" :openModal="showRecordModal" @cancel="showRecordModal=false"></recordModal>
         <!-- 操作提示 -->
@@ -169,6 +171,7 @@ export default {
       showTipModal: false,
       showRecordModal: false,
       showPrintModal: false,
+      showViewModal: false,
       tipData: null,
       // 加载数据方法 必须为 Promise 对象
       loadData: parameter => {
@@ -298,11 +301,12 @@ export default {
         this.$refs.printModel.getData(type ? row : [{ audit: auditStr, detail: detailItemUseStr, subList: [row] }], type ? list : [list])
       })
     },
-    printOk () {
-      this.spinning = false
-      console.log(1)
-      this.$refs.table.refresh()
-      this.$refs.table.clearSelected()
+    printOk (res) {
+      if(res){
+        this.spinning = false
+        this.$refs.table.refresh()
+        this.$refs.table.clearSelected()
+      }
     },
     //  时间  change
     dateChange (date) {
@@ -336,6 +340,7 @@ export default {
         }
       })
     },
+    // 关闭打印预览
     closeTipModal () {
       this.showTipModal = false
       this.spinning = false

+ 13 - 14
src/views/salesManagement/receiptPrint/printModel.vue

@@ -1,7 +1,7 @@
 <template>
   <!-- 发货打印 -->
-  <div style="position:absolute;left:-10000px;top:-10000px;height:0;overflow: hidden;">
-    <div id="sendGood-print" v-if="financeBookList&&financeBookList.length">
+  <div>
+    <div id="sendGood-print" style="height:500px;overflow:auto;" v-if="financeBookList&&financeBookList.length">
       <div
         v-for="(fcItem,index) in financeBookList"
         class="sendGood-print-box"
@@ -74,10 +74,10 @@
         </table>
       </div>
     </div>
-    <!-- <div class="btn-box" style="display:flex;align-item:center;justify-content: center;">
+    <div class="btn-box" style="display:flex;align-item:center;justify-content: center;" v-if="financeBookList&&financeBookList.length">
       <a-button @click="handleCommonCancel">取消</a-button>
       <a-button :loading="spinning" type="primary" @click="handleCommonOk">立即打印</a-button>
-    </div> -->
+    </div>
   </div>
 </template>
 
@@ -87,7 +87,7 @@ import moment from 'moment'
 export default {
   data () {
     return {
-      // spinning: false,
+      spinning: false,
       detail: null,
       financeBookList: [],
       printNums: []
@@ -131,10 +131,14 @@ export default {
       }
       this.$store.state.app.curActionPermission = 'B_SkPrint'
       // html, type, callback, printLogParams
-      jGPlPrint(htmlStr, 'preview', function (res) {
-        _this.handleCommonCancel()
-        _this.$emit('printOk')
-      }, this.printNums, this.financeBookList)
+      this.spinning = true
+      jGPlPrint(htmlStr, 'print', function (res) {
+        if(res){
+          _this.handleCommonCancel()
+        }
+        _this.$emit('printOk', res)
+        _this.spinning = false
+      }, this.printNums, '收款单')
     },
     getData (data, list) {
       console.log(data, list)
@@ -147,11 +151,6 @@ export default {
           printType: '收款打印'
         })
       })
-
-      // 打印预览
-      this.$nextTick(() => {
-        this.handleCommonOk()
-      })
     },
     handleCommonCancel () {
       this.$emit('cancel')

+ 14 - 8
src/views/salesManagement/sendOutOrder/detailModal.vue

@@ -11,10 +11,10 @@
     <a-spin :spinning="spinning" tip="Loading...">
       <div class="common-main">
         <div style="display: flex;align-items: center;justify-content: space-between;padding-bottom: 10px;">
-          <a-alert type="info" v-if="sendBillStockOutList.length" style="margin-bottom:10px">
+          <a-alert type="info" v-if="sendBillStockOutList.length">
             <div slot="message">{{ customeName||'' }},共 {{ sendBillStockOutList && sendBillStockOutList.length }} 个出库单,产品款数合计 <span>{{ productTotal&&productTotal.totalCategory }}</span> ,产品数量合计 <span>{{ productTotal&&productTotal.totalQty }}</span>。</div>
           </a-alert>
-          <a-button size="small" v-if="type==1" @click="printOrder" type="primary">发货单打印</a-button>
+          <a-button size="small" v-if="type==1" @click="showTipModal = true" type="primary">发货单打印</a-button>
         </div>
         <div>
           <a-table class="sTable" :columns="outColumns" :pagination="false" :data-source="sendBillStockOutList" bordered></a-table>
@@ -69,7 +69,9 @@
         <a-button type="primary" @click="handleCommonOk">{{ okText }}</a-button>
       </div>
       <!-- 发货打印 -->
-      <printModel ref="printModel" :detail="detail"></printModel>
+      <commonModal modalTit="发货打印预览" width="700pt" okText="立即打印" :openModal="showTipModal" @cancel="showTipModal=false" @ok="$refs.printModel.printDom()">
+        <printModel ref="printModel" :detail="detail" @ok="printOk"></printModel>
+      </commonModal>
     </a-spin>
   </a-modal>
 </template>
@@ -79,11 +81,12 @@ import { commonMixin } from '@/utils/mixin'
 import moment from 'moment'
 import { STable, VSelect } from '@/components'
 import printModel from './printModel.vue'
+import commonModal from '@/views/common/commonModal.vue'
 import { updateTransportInfo, sendBillFindBySn } from '@/api/sendBill'
 export default {
   name: 'SendOutDetailModal',
   mixins: [commonMixin],
-  components: { STable, VSelect, printModel },
+  components: { STable, VSelect, printModel, commonModal },
   props: {
     openModal: { //  弹框显示状态
       type: Boolean,
@@ -144,7 +147,8 @@ export default {
         { title: '收款时间', dataIndex: 'settleTime', width: '10%', align: 'center', customRender: function (text) { return text || '--' } }
       ],
       sendBillSn: null,
-      customeName: ''
+      customeName: '',
+      showTipModal: false
     }
   },
   methods: {
@@ -153,9 +157,11 @@ export default {
       const v = e.target.checked
       this.form.receiveDate = v ? moment() : ''
     },
-    // 打印
-    printOrder () {
-      this.$refs.printModel.printDom()
+    // 打印回调
+    printOk(res){
+      if(res){
+        this.showTipModal = false
+      }
     },
     // 编辑
     getDetail (data, type, title) {

+ 17 - 14
src/views/salesManagement/sendOutOrder/printModel.vue

@@ -1,14 +1,14 @@
 <template>
   <!-- 发货打印 -->
-  <div id="sendGood-print" style="height:0;overflow: hidden;" v-if="detail">
-    <div class="print-box" style="width: 574pt;font-size: 12pt;">
+  <div id="sendGood-print" style="height:500px;overflow: auto;" v-if="detail">
+    <div class="print-box" style="width: 564pt;font-size: 12pt;margin:0 auto;">
       <div style="display: flex;align-items: center;justify-content: center;">
         <img src="@/assets/logo.png" height="50px"/>
-        <h1 style="margin:0;">东莞市箭冠汽车配件制造有限公司</h1>
+        <h2 style="margin:0;font-size: 22pt;">东莞市箭冠汽车配件制造有限公司</h2>
       </div>
-      <div style="text-align: center;padding: 5px 0;position: relative;">
-        <h2 style="margin:0;">托运单</h2>
-        <span style="position: absolute;top: 10px;right: 0;">No:{{ detail.sendBillNo }}</span>
+      <div style="text-align: center;padding: 0 0 15px 0;position: relative;">
+        <h3 style="margin:0;font-size: 18pt;">托运单</h3>
+        <span style="position: absolute;top: 6px;right: 0;">No:{{ detail.sendBillNo }}</span>
       </div>
       <div style="display: flex;align-items: center;justify-content:space-between;padding: 5px;">
         <span style="width: 70%;">托运日期:{{ detail.sendDate }}</span>
@@ -24,10 +24,10 @@
             <span>详细地址:{{ detail.customerAddressDetail }}</span>
           </div>
         </div>
-        <table border="1" style="width: 574pt;border-collapse: collapse;text-align: center;border-color:#000;">
+        <table border="1" style="width: 564pt;border-collapse: collapse;text-align: center;border-color:#000;">
           <tr style="padding: 0;">
-            <td style="padding: 5px 0;width:70pt;">货物名称</td>
-            <td style="padding: 0;width:56pt;">件数</td>
+            <td style="padding: 5px 0;width:66pt;">货物名称</td>
+            <td style="padding: 0;width:50pt;">件数</td>
             <td style="padding: 0;width:56pt;">体积(m³)</td>
             <td style="padding: 0;width:56pt;">重量(kg)</td>
             <td style="padding: 0;width:56pt;">计费单价(元)</td>
@@ -38,8 +38,8 @@
             <td style="padding: 0;width:60pt;">合计</td>
           </tr>
           <tr style="padding: 0;" v-for="item in detail.detailList" :key="item.id">
-            <td style="padding: 5px 0;width:70pt;">{{ item.goodsName }}</td>
-            <td style="padding: 0;width:56pt;">{{ item.goodsQty }}</td>
+            <td style="padding: 5px 0;width:66pt;">{{ item.goodsName }}</td>
+            <td style="padding: 0;width:50pt;">{{ item.goodsQty }}</td>
             <td style="padding: 0;width:56pt;">{{ item.goodsVolume.toFixed(2) }}</td>
             <td style="padding: 0;width:56pt;">{{ item.goodsWeight.toFixed(2) }}</td>
             <td style="padding: 0;width:56pt;">{{ item.unitPrice.toFixed(2) }}</td>
@@ -57,8 +57,8 @@
           </div>
           <div style="border-bottom: 1px solid #000;display: flex;align-items: center;justify-content:space-between;">
             <div style="border-right: 1px solid #000;flex:1;text-align: center;padding: 5px;">付款方式:</div>
-            <div style="border-right: 1px solid #000;flex:2;padding: 5px;text-align:center;">{{ detail.payTypeDictValue }}</div>
-            <div style="border-right: 1px solid #000;flex:1;text-align: center;padding: 5px;">交货方式:</div>
+            <div style="flex:2;padding: 5px;text-align:center;">{{ detail.payTypeDictValue }}</div>
+            <div style="border-left: 1px solid #000;border-right: 1px solid #000;flex:1;text-align: center;padding: 5px;">交货方式:</div>
             <div style="flex:2;padding: 5px;text-align:center;">{{ detail.handoverTypeDictValue }}</div>
           </div>
           <div style="border-bottom: 1px solid #000;display: flex;align-items: center;justify-content:space-between;">
@@ -108,7 +108,10 @@ export default {
     dealBigMoney: dealBigMoney,
     printDom () {
       const html = document.getElementById('sendGood-print').innerHTML
-      jGPrint(html, 'preview', function () {}, null, 3)
+      const _this = this
+      jGPrint(html, 'print', function (res) {
+        _this.$emit('ok',res)
+      }, null, 3)
     }
   }
 }

+ 1 - 1
vue.config.js

@@ -107,7 +107,7 @@ const vueConfig = {
     // If you want to turn on the proxy, please remosve the mockjs /src/main.jsL11
     proxy: {
       '/api': {
-        // target: 'http://192.168.2.113:8602/ocs-admin',
+        // target: 'http://192.168.2.113:8660/ocs-admin',
         // target: 'https://t.ocs.360arrow.com/ocs-admin', //  练习
         target: 'http://p.ocs.360arrow.com/ocs-admin', //  预发布
         ws: false,