ymy 1 rok temu
rodzic
commit
0b6636bb8a

+ 24 - 0
src/api/jstOrder.ts

@@ -50,3 +50,27 @@ export function outStoreProduct(params:any){
 		method: 'GET'
 	})
 }
+
+export function printHandle(data:any){
+	return request({
+		url: '/wms/print/waybillGet',
+		method: 'GET',
+    params:data
+	})
+}
+export function d3Print(params:any,data:any){
+	return request({
+		url: 'http://d3.diansan.com/app-web/open/router/rest.json',
+		method: 'POST',
+    params:params,
+		data: data
+	})
+}
+
+export function waybillPrintData(data:any){
+	return request({
+		url: '/wms/print/waybillPrintData',
+		method: 'GET',
+    params:data
+	})
+}

+ 9 - 0
src/api/omsOrder.ts

@@ -294,4 +294,13 @@ export function dsCallbackLog(params:any){
 		params:params,
 		method: 'GET'
 	})
+}
+
+//wms电子面单
+export function dswWaybill(params:any){
+	return request({
+		url: '/omsOrder/dswWaybill/page',
+		params:params,
+		method: 'GET'
+	})
 }

+ 13 - 1
src/views/oms/B2COrder/components/orderTable.vue

@@ -128,8 +128,9 @@
       <template #default="{ row }">
         <!-- <el-button type="text" size="mini" v-if="showMerge(row)" @click="mergeHandle(row)">合并</el-button>
         <el-button type="text" size="mini" v-if="showSplit(row)" @click="splitHandle(row)">拆分</el-button> -->
-        <!-- <el-button type="text" size="mini" v-if="showSend(row)" @click="sendGoods(row)">发货</el-button> -->
+        <!-- <el-button type="text" size="mini" v-if="showPring(row)" @click="printHandle(row)">打印</el-button> -->
         <el-button type="text" size="mini" v-if="(row.status == 'Delivering'  || row.status == 'Sent') && row.isSubmitted == 1" @click="sendGoodsDetail(row)">发货明细</el-button>
+        <!-- <h1><a href="jdprint://">打开组件</a></h1> -->
       </template>
     </vxe-column>
   </vxe-table>
@@ -182,6 +183,17 @@ export default class OrderTable extends Vue {
     }
     return false
   }
+  showPring(row:any){
+    let r = false;
+    let noStatus = ['Delivering','Merged','Split','Question','Sent','Cancelled'];
+    if(row.isSubmitted == 1 && noStatus.indexOf(row.status) == -1){
+      r = true;
+    }
+    return r;
+  }
+  printHandle(row:any){
+    this.$emit('printEvent',row)
+  }
   //合并按钮是否显示
   showMerge(item:any){
     let r = false;

+ 31 - 1
src/views/oms/B2COrder/index.vue

@@ -104,7 +104,7 @@
       </div>
       <div class="table">
         <order-table :data="data" ref="orderTable" class="order-table" @detail="detail" @mergeHandle="mergeHandle" @splitHandle="splitHandle" @sendGoods="sendGoods" 
-        @sendGoodsDetail="sendGoodsDetail"/>
+        @sendGoodsDetail="sendGoodsDetail" @printEvent="printEvent"/>
         <div class="page">
           <el-pagination v-if="page.total > 0" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page.pageNo" :page-size="page.pageSize"
             :layout="'total, sizes, prev, pager, next, jumper'" :total="page.total"></el-pagination>
@@ -472,6 +472,36 @@ export default class Order extends Vue {
     this.getQuestionList();
     this.getQuesttion();
   }
+  //打印
+  printEvent(row:any){
+    let source:any = new WebSocket('ws://127.0.0.1:9113')
+    let that:any = this;
+    source.onopen = function () {
+      console.log('开始连接...')
+      const data = {"orderType":"GET_Printers"}
+      const jsonString = JSON.stringify(data)
+      source.send(jsonString)
+    }
+
+    source.addEventListener('finish', function(e:any) {
+      console.log(e.data)
+      source.close()
+      console.log('关闭连接')
+    })
+    source.addEventListener('error', function(e:any) {
+      if (e.readyState === EventSource.CLOSED) {
+        console.log('WebSocket连接已关闭')
+      } else {
+        that.$message("请检查打印组件是否已打开!")
+        console.error('连接错误:', e)
+      }
+    })
+    source.addEventListener('message', function(e:any) {
+      console.log('接收到的数据:', e)
+      let data = JSON.parse(e.data)
+      console.log(data)
+    })
+  }
   //获取订单异常并提示
   getQuesttion(){
     let params:any={};

+ 132 - 0
src/views/oms/WMSPrintLog/index.vue

@@ -0,0 +1,132 @@
+<template>
+  <div class="view" v-loading="load">
+    <module-view :propConfig="config" ref="view"  @pagination="getList" @onRefresh="getList"/>
+  </div>
+  
+</template>
+
+<script lang="ts">
+import { Component, Prop, Vue, Watch } from "vue-property-decorator";
+import {dswWaybill} from '@/api/omsOrder'
+@Component
+export default class WMSPrintLog extends Vue {
+  config:any={
+    attr:{
+      calculateH:true
+    },
+    tool:{
+      tools:{
+        // search:true,
+        refresh:true
+      }
+    },
+    table:{
+      attr:{
+        size:'mini',
+        seq:true,
+        align:'center',
+        triggerRowCheck:'row'
+      },
+      columns:[{
+        title:'创建时间',
+        field:'createTime',
+        width:150
+      },{
+        title:'方法',
+        field:'method',
+        width:100
+      },{
+        title:'响应结果',
+        field:'responseInfo',
+        ellipsis:true,
+        width:270
+      },{
+        title:'wms单据编码',
+        field:'outerCode',
+        width:110,
+      },{
+        title:'wms单据编码',
+        field:'waybillCode',
+        width:110
+      },{
+        title:'物流单号',
+        field:'waybillCode',
+        width:110
+      },{
+        title:'商家物流编码',
+        field:'cpCode',
+        // ellipsis:true,
+        width:110
+      },{
+        title:'发货人信息',
+        field:'send',
+        width:130
+      },{
+        title:'订单包裹信息',
+        field:'packages',
+        width:130
+      },{
+        title:'菜鸟必传',
+        field:'templateUrl',
+        width:130
+      },{
+        title:'面单平台',
+        field:'platformType',
+        width:130
+      },{
+        title:'面单打印数据',
+        field:'props',
+        ellipsis:true,
+        width:300
+      }]
+    }
+  }
+  time:any;
+  timeNum = 0;
+  data:Array<any>=[]
+  load = false;
+
+
+  getList(){
+    if(!this.$refs.view){
+      if(this.timeNum > 5){
+        return
+      }
+      this.timeNum ++;
+      setTimeout(()=>{
+        this.getList()
+      },500) 
+      return
+    }
+    let query:any = (this.$refs.view as any).getQuery();
+    this.load = true;
+    dswWaybill(query).then((res:any) =>{
+      this.load = false;
+      (this.$refs.view as any).setTableValue(res.data.records);
+      let page={
+        pageNo: res.data.current, //当前页
+        pageSize: res.data.size, //每页条数
+        total: res.data.total //总条数
+      };
+      (this.$refs.view as any).setPage(page)
+    }).catch(()=>{
+      this.load = false;
+    });
+    
+  }
+
+  mounted(){
+    this.$nextTick(()=>{
+      this.getList()
+    })
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.view{
+  width: 100%;
+  height: 100%;
+  overflow-y: hidden;
+}
+</style>

+ 2 - 2
src/views/oms/cackCallLog/index.vue

@@ -1,6 +1,6 @@
 <template>
-  <div class="view">
-    <module-view :propConfig="config" ref="view"  @pagination="getList" @resert="getList"/>
+  <div class="view" v-loading="load">
+    <module-view :propConfig="config" ref="view"  @pagination="getList" @onRefresh="getList"/>
   </div>
   
 </template>

Plik diff jest za duży
+ 100 - 1
src/views/oms/jushuitanOrder/compoments/sendGoods.vue


Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików