lilei 3 anni fa
parent
commit
590fd482c3

+ 1 - 1
public/version.json

@@ -1,5 +1,5 @@
 {
   "message": "发现有新版本发布,确定更新系统?",
   "vendorJsVersion": "",
-  "version": 1653876436066
+  "version": 1653892249164
 }

+ 24 - 12
src/components/tools/UserMenu.vue

@@ -9,8 +9,8 @@
       <notice-icon class="action"/>
       <!-- 皮肤设置 -->
       <a-popover trigger="click">
-        <div slot="content" :style="{width: fontSize=='small'?'300px':'370px'}">
-          <a-form-model :label-col="{ span: 5 }" :wrapper-col="{ span: 19 }">
+        <div slot="content" :style="{width: '300px'}">
+          <a-form-model :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
             <a-form-model-item label="主题">
               <a-radio-group :value="theme" @change="changeTheme">
                 <a-radio-button value="dark">
@@ -34,15 +34,21 @@
                 </a-radio-button>
               </a-radio-group>
             </a-form-model-item>
-            <a-form-model-item label="打印设置">
-              <a-radio-group :value="printUseDefault" @change="changePrintUseDefault">
-                <a-radio-button value="0">
-                  手动选择打印机
+            <a-form-model-item label="默认针式打印机">
+              <div style="line-height: normal;padding-top: 10px;">
+                <span>{{ printName ||'还未设置默认打印机' }}</span>
+                <div style="padding-top: 10px;">
+                  <a-button type="danger" ghost @click="changePrintType('NEEDLE')" size="small">{{ printName ? '点击修改' : '选择打印机' }}</a-button>
+                </div>
+              </div>
+              <!-- <a-radio-group @change="changePrintType">
+                <a-radio-button value="NEEDLE">
+                  选择针式打印机
                 </a-radio-button>
-                <a-radio-button value="1">
-                  使用默认打印机
+                <a-radio-button value="INK">
+                  选择喷墨打印机
                 </a-radio-button>
-              </a-radio-group>
+              </a-radio-group> -->
             </a-form-model-item>
           </a-form-model>
         </div>
@@ -96,7 +102,7 @@ export default {
     NoticeIcon
   },
   computed: {
-    ...mapGetters(['nickname', 'avatar', 'authOrgs', 'userInfo', 'nowRoute', 'theme', 'fontSize', 'printUseDefault']),
+    ...mapGetters(['nickname', 'avatar', 'authOrgs', 'userInfo', 'nowRoute', 'theme', 'fontSize']),
     authOrgsList () { //  过滤掉当前登录账户(不可由自己切换为自己)
       const _this = this
       const arr = []
@@ -116,6 +122,9 @@ export default {
       const isPurchaseOrder = this.nowRoute.indexOf('purchaseOrder') > -1 // 当前展示是否为采购单管理模块
       const isPurchaseReturn = this.nowRoute.indexOf('purchaseReturn') > -1 // 当前展示是否为采购退货模块
       return isSaleOrder || isSalesReturn || isPurchaseOrder || isPurchaseReturn
+    },
+    printName () {
+      return this.$store.state.app.printDefNeedle
     }
   },
   data () {
@@ -192,8 +201,11 @@ export default {
       this.$store.dispatch('ToggleFontSize', e.target.value)
     },
     // 设置打印机
-    changePrintUseDefault (e) {
-      this.$store.dispatch('TogglePrintDef', e.target.value)
+    changePrintType (type) {
+      this.$store.dispatch('TogglePrintUseing', 0)
+      this.$store.dispatch('TogglePrintSettingType', type)
+      // 选择打印机
+      this.$store.commit('SET_showSelectPrint', true)
     }
   }
 }

+ 3 - 1
src/layouts/BasicLayout.vue

@@ -238,7 +238,9 @@ export default {
     this.$store.commit('SET_pdfPrintList', [])
     this.$store.commit('SET_showPdfPrint', false)
     this.$store.commit('SET_showSelectPrint', false)
-    this.$store.commit('SET_printUseDefault', localStorage.getItem('DEFAULT_PRINT') || '0')
+    this.$store.commit('SET_printLoading', false)
+    this.$store.commit('SET_printDefNeedle', localStorage.getItem('DEFAULT_PRINT_NEEDLE') || undefined)
+    this.$store.commit('SET_printDefInk', localStorage.getItem('DEFAULT_PRINT_INK') || undefined)
   },
   mounted () {
     const userAgent = navigator.userAgent

+ 15 - 12
src/libs/JGPrint.js

@@ -129,7 +129,7 @@ export const lodopPrintView = function(data){
   if(dlen > 1){
     LODOP.SET_SHOW_MODE("HIDE_PBUTTIN_PREVIEW",1);//隐藏打印按钮
   }
-  LODOP.SET_PRINTER_INDEX(store.state.app.defaultPrint)
+  LODOP.SET_PRINTER_INDEX(store.state.app.printDefNeedle)
   LODOP.ADD_PRINT_PDF(0, 0, '100%', '100%', data[0])
   LODOP.SET_PRINT_PAGESIZE(3,2090,dlen>1?0:50,"");
   LODOP.PREVIEW()
@@ -145,7 +145,6 @@ export const getPrintList = function(){
       printList.push({name:pname,value:i})
     }
   }
-  console.log(printList)
   return printList
 }
 // 获取打印机状态
@@ -184,12 +183,9 @@ export const pdfPrint = function (data,index){
        store.commit('SET_printLoading',false)
      }
   };
+  console.log(store.state.app.printDefNeedle)
   // 指定打印机
-  const isDefault = store.state.app.printUseDefault
-  // 手动选择,否则使用默认
-  if(isDefault=='0'){
-    LODOP.SET_PRINTER_INDEX(store.state.app.defaultPrint)
-  }
+  LODOP.SET_PRINTER_INDEX(store.state.app.printDefNeedle)
   LODOP.ADD_PRINT_PDF(0, 0, '100%', '100%', data[index])
   LODOP.SET_PRINT_PAGESIZE(3, 2090, (index==dlen-1)?50:0, '')
   LODOP.PRINT()
@@ -268,13 +264,20 @@ export const jGPrint = function (data, type, printerType, taskName) {
       store.commit('SET_printTaskName', taskName)
     } else if (type == 'print') { //  pdf 打印
       // 选择打印机
-      const isDefault = store.state.app.printUseDefault
-      if(isDefault == '0'){
+      const printDefNeedle = store.state.app.printDefNeedle
+      const hasPrint = getPrintList().find(item => item.name == printDefNeedle)
+      console.log(printDefNeedle,hasPrint)
+      // 已经设置默认打印机
+      if(hasPrint){
+        hasExitTaskByName(function () {
+          pdfPrint(data.data, 0)
+        })
+      }else{
+        // 没有设置默认打印机时,请选择打印机
         store.commit('SET_pdfPrintList', data.data)
-        store.commit('SET_showSelectPrint', true)
         store.commit('SET_printTaskName', taskName)
-      }else{
-        pdfPrint(data.data, 0)
+        store.commit('SET_printUseing', 1)
+        store.commit('SET_showSelectPrint', true)
       }
     }
   } else {

+ 4 - 1
src/store/getters.js

@@ -23,7 +23,10 @@ const getters = {
   isNewSubTab: state => state.app.isNewSubTab,
   closeTabPages: state => state.app.closeTabPages,
   loadingStatus: state => state.app.loadingStatus,
-  printUseDefault:state => state.app.printUseDefault
+  printDefNeedle:state => state.app.printDefNeedle,
+  printDefInk:state => state.app.printDefInk,
+  printUseing:state => state.app.printUseing,
+  printSettingType:state => state.app.printSettingType,
 }
 
 export default getters

+ 36 - 9
src/store/modules/app.js

@@ -39,11 +39,13 @@ const app = {
     showPdfPrintView: false, // pdf 打印预览
     pdfPrintList: [] ,// 打印的pdf 文件
     showSelectPrint: false, // 选择打印机
-    defaultPrint: undefined, // 已选的打印机
     printTaskName: '', // 打印任务名称
     printTaskID: '', // 打印任务id列表
     printLoading: false, // 正在打印中
-    printUseDefault: '0', // 是否始终使用默认打印机打印
+    printUseing: '0', // 选择打印机的用途 0 设置打印机,1打印时
+    printSettingType: '', // 设置打印机类型,0 针式,1 喷墨
+    printDefNeedle: undefined,// 默认针式打印机
+    printDefInk: undefined, // 默认喷墨打印机
   },
   mutations: {
     SET_SIDEBAR_TYPE: (state, type) => {
@@ -113,8 +115,8 @@ const app = {
     SET_loadingStatus: (state, val) => {
       state.loadingStatus = val
     },
+    // 打印
     SET_pdfPrintList: (state, val) => {
-		console.log('3-3-3')
       state.pdfPrintList = val
     },
     SET_showPdfPrint: (state, val) => {
@@ -132,9 +134,19 @@ const app = {
     SET_printLoading: (state, val) => {
       state.printLoading = val
     },
-    SET_printUseDefault: (state, val) => {
-      state.printUseDefault = val
-      localStorage.setItem('DEFAULT_PRINT',val)
+    SET_printDefNeedle: (state, val) => {
+      state.printDefNeedle = val
+      localStorage.setItem('DEFAULT_PRINT_NEEDLE',val)
+    },
+    SET_printDefInk: (state, val) => {
+      state.printDefInk = val
+      localStorage.setItem('DEFAULT_PRINT_INK',val)
+    },
+    SET_printUseing: (state, val) => {
+      state.printUseing = val
+    },
+    SET_printSettingType: (state, val) => {
+      state.printSettingType = val
     },
   },
   actions: {
@@ -163,10 +175,25 @@ const app = {
     }, size) {
       commit('TOGGLE_FONTSIZE', size)
     },
-    TogglePrintDef({
+    TogglePrintDefNeedle({
       commit
-    }, size) {
-      commit('SET_printUseDefault', size)
+    }, str) {
+      commit('SET_printDefNeedle', str)
+    },
+    TogglePrintDefInk({
+      commit
+    }, str) {
+      commit('SET_printDefInk', str)
+    },
+    TogglePrintUseing({
+      commit
+    }, str) {
+      commit('SET_printUseing', str)
+    },
+    TogglePrintSettingType({
+      commit
+    }, str) {
+      commit('SET_printSettingType', str)
     },
     ToggleLayoutMode ({
       commit

+ 1 - 1
src/views/common/outInDetialModal.vue

@@ -89,7 +89,7 @@ export default {
             const no = 0
             for (var i = 0; i < data.length; i++) {
               data[i].no = no + i + 1
-              data[i].totalCost = data[i].putCost * data[i].outQty
+              data[i].totalCost = Number(data[i].putCost * data[i].outQty).toFixed(2)
             }
             this.disabled = false
           }

+ 9 - 5
src/views/common/pdfViewModal.vue

@@ -43,7 +43,7 @@
 <script>
 import pdf from 'vue-pdf-signature'
 import CMapReaderFactory from 'vue-pdf-signature/src/CMapReaderFactory.js'
-import { pdfPrint } from '@/libs/JGPrint'
+import { pdfPrint, getPrintList, hasExitTaskByName } from '@/libs/JGPrint'
 export default {
   components: {
     pdf
@@ -121,12 +121,16 @@ export default {
     // 确定
     handleCommonOk () {
       const _this = this
-      const isDefault = _this.$store.state.app.printUseDefault
-      if (isDefault == '0') {
+      const printDefNeedle = _this.$store.state.app.printDefNeedle
+      const hasPrint = getPrintList().find(item => item.name == printDefNeedle)
+      // 已选择打印机
+      if (hasPrint) {
+        hasExitTaskByName(function () {
+          pdfPrint(_this.$store.state.app.pdfPrintList, 0)
+        })
+      } else {
         // 选择打印机
         _this.$store.commit('SET_showSelectPrint', true)
-      } else {
-        pdfPrint(_this.$store.state.app.pdfPrintList, 0)
       }
       _this.$emit('ok')
     },

+ 1 - 0
src/views/common/print.vue

@@ -47,6 +47,7 @@ export default {
   },
   methods: {
     handlePrint (type) {
+      this.$store.dispatch('TogglePrintSettingType', this.printerType)
       this.$emit('handlePrint', type, this.printerType)
     }
   }

+ 26 - 17
src/views/common/selectPrint.vue

@@ -6,14 +6,15 @@
     :maskClosable="false"
     :zIndex="1002"
     v-model="isShow"
-    :title="modalTit"
-    :bodyStyle="{padding: modalTit?'25px 32px 20px':'50px 32px 15px'}"
+    :title="title"
+    :bodyStyle="{padding: title?'25px 32px 20px':'50px 32px 15px'}"
     @cancel="handleCommonCancel"
     :width="416">
     <a-spin :spinning="spinning" tip="Loading...">
       <div class="common-main" v-if="printList&&printList.length">
+        <p style="color: #666;">选择打印机后,针式打印以后就会按这里设置的打印机去打印。<br>所以请正确选择打印机,如果选择错误,可以在顶部栏“设置”里面修改打印机。</p>
         <a-select v-model="printIndex" @change="changePrint" style="width: 100%" placeholder="选择打印机">
-          <a-select-option v-for="item in printList" :key="'print-'+item.value" :value="item.value">
+          <a-select-option v-for="item in printList" :key="'print-'+item.value" :value="item.name">
             {{ item.name }}
           </a-select-option>
         </a-select>
@@ -38,10 +39,6 @@ export default {
       type: Boolean,
       default: false
     },
-    modalTit: { // 弹框标题
-      type: String,
-      default: '请选择打印机'
-    },
     modalHtml: {
       type: String,
       default: ''
@@ -67,22 +64,30 @@ export default {
     return {
       isShow: this.openModal, //  是否打开弹框
       printIndex: undefined,
-      printList: []
-
+      printList: [],
+      isSetting: 0,
+      printType: '',
+      title: ''
     }
   },
   methods: {
     // 确定
     handleCommonOk () {
-      const pdfList = this.$store.state.app.pdfPrintList
-      if (this.printIndex >= 0) {
+      if (this.printIndex) {
+        // 保存默认设置
+        if (this.printType == 'NEEDLE') {
+          this.$store.commit('SET_printDefNeedle', this.printIndex)
+        }
+        // 继续打印
+        if (!this.isSetting) {
+          const pdfList = this.$store.state.app.pdfPrintList
+          hasExitTaskByName(function () {
+            pdfPrint(pdfList, 0)
+          })
+        }
         // 关闭弹框
         this.$store.commit('SET_showSelectPrint', false)
         this.$emit('cancel')
-        hasExitTaskByName(function () {
-          // 继续打印
-          pdfPrint(pdfList, 0)
-        })
       } else {
         this.$message.info('请选择打印机')
       }
@@ -94,12 +99,14 @@ export default {
       this.$store.commit('SET_showSelectPrint', false)
     },
     getPrintList () {
+      this.isSetting = this.$store.state.app.printUseing == 0
+      this.printType = this.$store.state.app.printSettingType
       this.printList = getPrintList()
-      this.printIndex = this.$store.state.app.defaultPrint
       this.printIndex = this.printIndex > 0 ? this.printIndex : undefined
+      console.log(this.printType)
+      this.title = this.printType == 'NEEDLE' ? '选择针式默认打印机' : '选择打印机'
     },
     changePrint (v) {
-      this.$store.state.app.defaultPrint = v
       this.$store.state.app.printTaskID = undefined
       this.printIndex = v
     }
@@ -113,6 +120,7 @@ export default {
     isShow (newValue, oldValue) {
       if (!newValue) {
         this.$emit('close')
+        this.printIndex = undefined
       } else {
         // 获取打印机列表
         this.getPrintList()
@@ -126,6 +134,7 @@ export default {
   .common-selectPrint-modal{
     .common-main{
       display: flex;
+      flex-direction: column;
       line-height: 24px;
       .common-cont{
       }