逆水行舟 5 dní pred
rodič
commit
bc17963d12
5 zmenil súbory, kde vykonal 1015 pridanie a 500 odobranie
  1. 1 0
      .gitignore
  2. 608 189
      package-lock.json
  3. 270 229
      src/api/omsOrder.ts
  4. 14 15
      src/benyun/utils/auth.ts
  5. 122 67
      src/views/oms/cackCallLog/index.vue

+ 1 - 0
.gitignore

@@ -1,3 +1,4 @@
+.history
 .DS_Store
 node_modules
 /dist

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 608 - 189
package-lock.json


+ 270 - 229
src/api/omsOrder.ts

@@ -1,306 +1,347 @@
-import request from '@/benyun/utils/request'
+import request from "@/benyun/utils/request";
 
 //查询数据
-export function query(params:any,data?:any) {
-	return request({
-		url: '/omsOrder/omsOrder/query',
-		method: 'POST',
-		params:params,
-		data: data
-	})
+export function query(params: any, data?: any) {
+  return request({
+    url: "/omsOrder/omsOrder/query",
+    method: "POST",
+    params: params,
+    data: data,
+  });
 }
 //获取地址
-export function getProvince(data:any){
-	return request({
-		url:'/omsOrder/omsArea/getByPid',
-		method:'Get',
-		params:data
-	})
+export function getProvince(data: any) {
+  return request({
+    url: "/omsOrder/omsArea/getByPid",
+    method: "Get",
+    params: data,
+  });
 }
 //手工添加订单
-export function addOrder(data:any){
-	return request({
-		url: '/omsOrder/omsOrder/manual',
-		method: 'POST',
-		data: data
-	})
+export function addOrder(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/manual",
+    method: "POST",
+    data: data,
+  });
 }
 //保存订单基本信息
-export function saveBaseOrder(data:any){
-	return request({
-		url: '/omsOrder/omsOrder/updateInfo',
-		method: 'POST',
-		data: data
-	})
+export function saveBaseOrder(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/updateInfo",
+    method: "POST",
+    data: data,
+  });
 }
 //提交
-export function smt(data:any){
-	return request({
-		url: '/omsOrder/omsOrder/submit',
-		method: 'POST',
-		params: data
-	})
+export function smt(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/submit",
+    method: "POST",
+    params: data,
+  });
 }
 //反提交
-export function unSmt(data:any){
-	return request({
-		url: '/omsOrder/omsOrder/unSubmit',
-		method: 'POST',
-		params: data
-	})
+export function unSmt(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/unSubmit",
+    method: "POST",
+    params: data,
+  });
 }
 //获取单条订单
-export function getSingleData(params:any){
-	return request({
-    url: '/omsOrder/omsOrder/single/',
-		params:params,
-    method: 'GET'
-  })
+export function getSingleData(params: any) {
+  return request({
+    url: "/omsOrder/omsOrder/single/",
+    params: params,
+    method: "GET",
+  });
 }
 //下载订单
-export function pullOrder(data:any){
-	return request({
-		url: '/omsOrder/omsOrder/pullOrder',
-		method: 'POST',
-		data: data
-	})
+export function pullOrder(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/pullOrder",
+    method: "POST",
+    data: data,
+  });
 }
 //生成采购单之前获取可采购数量
-export function purchaseQty(params:any){
-	return request({
-		url:'/omsOrder/omsOrder/purchaseQty',
-		method:'Get',
-		params:params
-	})
+export function purchaseQty(params: any) {
+  return request({
+    url: "/omsOrder/omsOrder/purchaseQty",
+    method: "Get",
+    params: params,
+  });
 }
 //生成采购单
-export function toPurchaseOrder(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/toPurchaseOrder',
-		method:'POST',
-		data:data
-	})
+export function toPurchaseOrder(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/toPurchaseOrder",
+    method: "POST",
+    data: data,
+  });
 }
 //合并订单
-export function merge(params:any){
-	return request({
-		url:'/omsOrder/omsOrder/merge',
-		method:'POST',
-		params:params
-	})
+export function merge(params: any) {
+  return request({
+    url: "/omsOrder/omsOrder/merge",
+    method: "POST",
+    params: params,
+  });
 }
 //已拆分数量
-export function splitQtyQuery(params:any){
-	return request({
-		url:'/omsOrder/omsOrder/splitQtyQuery',
-		method:'Get',
-		params:params
-	})
+export function splitQtyQuery(params: any) {
+  return request({
+    url: "/omsOrder/omsOrder/splitQtyQuery",
+    method: "Get",
+    params: params,
+  });
 }
 //拆分
-export function split(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/split',
-		method:'POST',
-		data:data
-	})
+export function split(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/split",
+    method: "POST",
+    data: data,
+  });
 }
 //取消订单
-export function cancelOrder(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/cancel',
-		method:'POST',
-		data:data
-	})
+export function cancelOrder(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/cancel",
+    method: "POST",
+    data: data,
+  });
 }
 //反取消订单
-export function unCancel(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/unCancel',
-		method:'POST',
-		params:data
-	})
+export function unCancel(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/unCancel",
+    method: "POST",
+    params: data,
+  });
 }
 //转异常
-export function setQuestions(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/setQuestions',
-		method:'POST',
-		data:data
-	})
+export function setQuestions(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/setQuestions",
+    method: "POST",
+    data: data,
+  });
 }
 //转正常
-export function resetQuestion(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/resetQuestion',
-		method:'POST',
-		data:data
-	})
+export function resetQuestion(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/resetQuestion",
+    method: "POST",
+    data: data,
+  });
 }
 //改卖家备注
-export function updateRemark(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/updateRemark',
-		method:'POST',
-		data:data
-	})
+export function updateRemark(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/updateRemark",
+    method: "POST",
+    data: data,
+  });
 }
 //设置业务员
-export function setCreateUser(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/setCreateUser',
-		method:'POST',
-		data:data
-	})
+export function setCreateUser(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/setCreateUser",
+    method: "POST",
+    data: data,
+  });
 }
 //设置标签
-export function setLabels(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/setLabels',
-		method:'POST',
-		data:data
-	})
+export function setLabels(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/setLabels",
+    method: "POST",
+    data: data,
+  });
 }
 //批量添加赠品
-export function addGift(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/addGift',
-		method:'POST',
-		data:data
-	})
+export function addGift(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/addGift",
+    method: "POST",
+    data: data,
+  });
 }
 //批量添加商品
-export function addItem(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/addItem',
-		method:'POST',
-		data:data
-	})
+export function addItem(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/addItem",
+    method: "POST",
+    data: data,
+  });
 }
 //单条数据
-export function single(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/single',
-		method:'GET',
-		params:data
-	})
+export function single(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/single",
+    method: "GET",
+    params: data,
+  });
 }
 //删除商品
-export function delItem(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/delItem',
-		method:'POST',
-		params:data
-	})
+export function delItem(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/delItem",
+    method: "POST",
+    params: data,
+  });
 }
 //手工支付
-export function addPay(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/addPay',
-		method:'POST',
-		data:data
-	})
+export function addPay(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/addPay",
+    method: "POST",
+    data: data,
+  });
 }
 //修改运费
-export function editFreight(data:any){
-	return request({
-		url:'/omsOrder/omsOrder/editFreight',
-		method:'POST',
-		data:data
-	})
+export function editFreight(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/editFreight",
+    method: "POST",
+    data: data,
+  });
 }
 //编辑商品
-export const batchItem:any = (data:any) => {
-	return request({
-		url:'/omsOrder/omsOrder/batchItem',
-		method:'POST',
-		data:data
-	})
-}  
+export const batchItem: any = (data: any) => {
+  return request({
+    url: "/omsOrder/omsOrder/batchItem",
+    method: "POST",
+    data: data,
+  });
+};
 //修改支付状态
-export const updateStatus:any = (data:any) => {
-	return request({
-		url:'/omsOrder/omsOrderPay/updateStatus',
-		method:'POST',
-		params:data
-	})
-}  
+export const updateStatus: any = (data: any) => {
+  return request({
+    url: "/omsOrder/omsOrderPay/updateStatus",
+    method: "POST",
+    params: data,
+  });
+};
 //归档
-export const archive:any = (data:any) => {
-	return request({
-		url:'/omsOrder/omsOrder/archive',
-		method:'POST',
-		params:data
-	})
-}  
-
+export const archive: any = (data: any) => {
+  return request({
+    url: "/omsOrder/omsOrder/archive",
+    method: "POST",
+    params: data,
+  });
+};
 
 //根据第三方系统查询记录
-export function queryBySys(params:any){
-	return request({
-		url: '/omsOrder/omsPartner/queryBySys',
-		params:params,
-		method: 'GET'
-	})
+export function queryBySys(params: any) {
+  return request({
+    url: "/omsOrder/omsPartner/queryBySys",
+    params: params,
+    method: "GET",
+  });
 }
 
 //根据第三方系统查询记录
-export function pullRecord(params:any){
-	return request({
-		url: '/omsOrder/jstOrderJobLog/page',
-		params:params,
-		method: 'GET'
-	})
+export function pullRecord(params: any) {
+  return request({
+    url: "/omsOrder/jstOrderJobLog/page",
+    params: params,
+    method: "GET",
+  });
 }
 
 //Excel导入
-export function importExc(data:any) {
-	return request({
-		url:'/omsOrder/omsOrder/import',
-		method:'post',
-		data:data,
-		headers:{
-      'Content-Type':'application/x-www-form-urlencoded'
-    }
-	})
+export function importExc(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/import",
+    method: "post",
+    data: data,
+    headers: {
+      "Content-Type": "application/x-www-form-urlencoded",
+    },
+  });
 }
 
 //下单模版
 export function loadDownModule() {
-	return request({
-		url:'/omsOrder/omsOrder/downTemplate',
-		method:'get',
-		responseType: 'blob'
-	})
+  return request({
+    url: "/omsOrder/omsOrder/downTemplate",
+    method: "get",
+    responseType: "blob",
+  });
 }
 
 //Excel导入B2C
-export function importB2cOrder(data:any) {
-	return request({
-		url:'/omsOrder/omsOrder/importB2cOrder',
-		method:'post',
-		data:data,
-		headers:{
-      'Content-Type':'application/x-www-form-urlencoded'
-    }
-	})
+export function importB2cOrder(data: any) {
+  return request({
+    url: "/omsOrder/omsOrder/importB2cOrder",
+    method: "post",
+    data: data,
+    headers: {
+      "Content-Type": "application/x-www-form-urlencoded",
+    },
+  });
 }
 
-
 //回调日志
-export function dsCallbackLog(params:any){
-	return request({
-		url: '/omsOrder/dsCallbackLog/page',
-		params:params,
-		method: 'GET'
-	})
+export function dsCallbackLog(params: any) {
+  return request({
+    url: "/omsOrder/dsCallbackLog/page",
+    params: params,
+    method: "GET",
+  });
 }
 
 //wms电子面单
-export function dswWaybill(params:any){
-	return request({
-		url: '/omsOrder/dswWaybill/page',
-		params:params,
-		method: 'GET'
-	})
-}
+export function dswWaybill(params: any) {
+  return request({
+    url: "/omsOrder/dswWaybill/page",
+    params: params,
+    method: "GET",
+  });
+}
+
+export interface IResponeData<T> {
+  msg: string;
+  code: number;
+  data: T;
+  total: number;
+  size: number;
+  current: number;
+  orders?: any;
+  optimizeCountSql: boolean;
+  searchCount: boolean;
+  maxLimit?: number;
+  countId?: string;
+  pages: number;
+}
+
+export interface ICallbackLog {
+  id: number;
+  tenantId: string;
+  createBy: string | null;
+  createTime: string;
+  updateBy: string | null;
+  updateTime: string;
+  deleteBy: string | null;
+  deleteTime: string | null;
+  isDeleted: number;
+  extData: any; // 可以替换为具体的类型
+  version: number;
+  dsMethod: string;
+  dsTag: string;
+  dsSign: string;
+  dsTimestamp: string;
+  dsParams: string; // 实际是JSON字符串,可能需要定义更具体的接口
+  dsBody: string; // 同上
+  isProcess: number;
+  respMsg: string;
+  orderTime: string;
+  getOrderTime: string;
+  pushWarehouseTime: string;
+  warehouseResponseTime: string;
+  finishTime: string | null;
+  orderNo: string | null;
+}

+ 14 - 15
src/benyun/utils/auth.ts

@@ -1,34 +1,33 @@
-import Cookies from 'js-cookie'
+import Cookies from "js-cookie";
 
-const TokenKey = 'AdminOMS-Token'
+const TokenKey = "AdminOMS-Token";
 
-const ExpiresInKey = 'AdminOMS-Expires-In'
+const ExpiresInKey = "AdminOMS-Expires-In";
 
 export function getToken() {
-  if(process.env.NODE_ENV === 'development'){
-    return 'eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6ImI0YjgwZjVjLTI3ODctNDAwZi05MzI2LTgxNzM0MzU3YjdiZSIsInVzZXJuYW1lIjoiYWRtaW4ifQ.lykgqxmyRK8of4KSzR0iAXC4AfVD5ef-GabF_8IkND_8pBFFgn5m09ALqhcyalY3dddhHm2ZUGUAhAnzh96EMA'
-  }else{
-    return Cookies.get(TokenKey)
+  if (process.env.NODE_ENV === "development") {
+    return "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6Ijk1YTgxNzM1LWRiMzYtNGU4Yi1hODQxLWQ3YjdhMjE2OWJiNiIsInVzZXJuYW1lIjoiYWRtaW4ifQ.iiw0Gavt1HTMceI1SokEEz0NBl9O-OCP3_LaNlzUq8b71TirmRT30TzkmvfxcFGIFHmQzmapNwopupwvoFvBhw";
+  } else {
+    return Cookies.get(TokenKey);
   }
-  
 }
 
-export function setToken(token:string) {
-  return Cookies.set(TokenKey, token)
+export function setToken(token: string) {
+  return Cookies.set(TokenKey, token);
 }
 
 export function removeToken() {
-  return Cookies.remove(TokenKey)
+  return Cookies.remove(TokenKey);
 }
 
 export function getExpiresIn() {
-  return Cookies.get(ExpiresInKey) || -1
+  return Cookies.get(ExpiresInKey) || -1;
 }
 
-export function setExpiresIn(time:any) {
-  return Cookies.set(ExpiresInKey, time)
+export function setExpiresIn(time: any) {
+  return Cookies.set(ExpiresInKey, time);
 }
 
 export function removeExpiresIn() {
-  return Cookies.remove(ExpiresInKey)
+  return Cookies.remove(ExpiresInKey);
 }

+ 122 - 67
src/views/oms/cackCallLog/index.vue

@@ -1,106 +1,161 @@
 <template>
   <div class="view" v-loading="load">
-    <module-view :propConfig="config" ref="view"  @pagination="getList" @onRefresh="getList"/>
+    <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 {dsCallbackLog} from '@/api/omsOrder'
+import { dsCallbackLog, IResponeData, ICallbackLog } from '@/api/omsOrder'
 @Component
 export default class BackCallLog extends Vue {
-  config:any={
-    attr:{
-      calculateH:true
+  config: any = {
+    attr: {
+      calculateH: true
     },
-    tool:{
-      tools:{
+    tool: {
+      tools: {
         // search:true,
-        refresh:true
+        refresh: true
       }
     },
-    table:{
-      attr:{
-        size:'mini',
-        seq:true,
-        align:'center',
-        triggerRowCheck:'row'
+    table: {
+      attr: {
+        size: 'mini',
+        seq: true,
+        align: 'center',
+        triggerRowCheck: 'row'
       },
-      columns:[{
-        title:'回调方法',
-        field:'dsMethod',
-        width:100
-      },{
-        title:'业务编码',
-        field:'dsTag',
-        width:100
-      },{
-        title:'参数签名',
-        field:'dsSign',
-        width:140,
-      },{
-        title:'请求时',
-        field:'dsTimestamp',
-        width:150
-      },{
-        title:'URL参数',
-        field:'dsParams',
-        ellipsis:true,
-        width:180
-      },{
-        title:'Body参数',
-        field:'dsBody',
-        ellipsis:true,
-        width:650
-      },{
-        title:'该回调是否已处理',
-        field:'isProcess',
-        width:130
-      },{
-        title:'响应信息',
-        field:'respMsg',
-        ellipsis:true,
-        width:200
+      columns: [{
+        title: '回调方法',
+        field: 'dsMethod',
+        width: 100
+      }, {
+        title: '业务编码',
+        field: 'dsTag',
+        width: 100
+      }, {
+        title: '参数签名',
+        field: 'dsSign',
+        width: 140,
+      }, {
+        title: '请求时',
+        field: 'dsTimestamp',
+        width: 150
+      }, {
+        title: 'URL参数',
+        field: 'dsParams',
+        ellipsis: true,
+        width: 180
+      }, {
+        title: 'Body参数',
+        field: 'dsBody',
+        ellipsis: true,
+        width: 650
+      }, {
+        title: '该回调是否已处理',
+        field: 'isProcess',
+        width: 130
+      }, {
+        title: '响应信息',
+        field: 'respMsg',
+        ellipsis: true,
+        width: 200
+      }, {
+        title: '上游订单时间',
+        field: 'orderTime',
+        ellipsis: true,
+        width: 150
+      }, {
+        title: '接收时间',
+        field: 'getOrderTime',
+        ellipsis: true,
+        width: 150
+      }, {
+        title: '推送仓库时间',
+        field: 'pushWarehouseTime',
+        ellipsis: true,
+        width: 150
+      }, {
+        title: '仓库响应时间',
+        field: 'warehouseResponseTime',
+        ellipsis: true,
+        width: 150
+      }, {
+        title: '完成耗时(秒)',
+        field: 'finishTime',
+        ellipsis: true,
+        width: 150
+      }, {
+        title: '订单编号',
+        field: 'orderNo',
+        ellipsis: true,
+        width: 150
       }]
     }
   }
-  time:any;
+  time: any;
   timeNum = 0;
-  data:Array<any>=[]
+  data: Array<any> = []
   load = false;
 
 
-  getList(){
-    if(!this.$refs.view){
-      if(this.timeNum > 5){
+  getList() {
+    if (!this.$refs.view) {
+      if (this.timeNum > 5) {
         return
       }
-      this.timeNum ++;
-      setTimeout(()=>{
+      this.timeNum++;
+      setTimeout(() => {
         this.getList()
-      },500) 
+      }, 500)
       return
     }
-    let query:any = (this.$refs.view as any).getQuery();
+    let query: any = (this.$refs.view as any).getQuery();
     this.load = true;
-    dsCallbackLog(query).then((res:any) =>{
+    dsCallbackLog(query).then((res: any) => {
       this.load = false;
-      (this.$refs.view as any).setTableValue(res.data.records);
-      let page={
+      (this.$refs.view as any).setTableValue(this.checkFinishTime(res.data.records as ICallbackLog[]));
+      let page = {
         pageNo: res.data.current, //当前页
         pageSize: res.data.size, //每页条数
         total: res.data.total //总条数
       };
       (this.$refs.view as any).setPage(page)
-    }).catch(()=>{
+    }).catch(() => {
       this.load = false;
     });
-    
+
+  }
+
+  //计算耗时
+  checkFinishTime(data: ICallbackLog[]): ICallbackLog[] {
+    //pushWarehouseTime-warehouseResponseTime
+    //小于1000毫秒显示单位为毫秒,大于1000毫秒小于60秒的显示秒,大于60秒的显示分钟
+    data.forEach((item: ICallbackLog) => {
+      if (!item.pushWarehouseTime || !item.warehouseResponseTime) {
+        item.finishTime = '-'
+        return
+      };
+
+      const start = new Date(item.pushWarehouseTime).getTime();
+      const end = new Date(item.warehouseResponseTime).getTime();
+      const diff = end - start;
+
+      if (diff < 1000) {
+        item.finishTime = `${diff}毫秒`;
+      } else if (diff < 60000) {
+        item.finishTime = `${Math.floor(diff / 1000)}秒`;
+      } else {
+        item.finishTime = `${Math.floor(diff / 60000)}分`;
+      }
+    })
+    return data
   }
 
-  mounted(){
-    this.$nextTick(()=>{
+  mounted() {
+    this.$nextTick(() => {
       this.getList()
     })
   }
@@ -108,7 +163,7 @@ export default class BackCallLog extends Vue {
 </script>
 
 <style lang="scss" scoped>
-.view{
+.view {
   width: 100%;
   height: 100%;
   overflow-y: hidden;

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov