Commit e52f1687 by zhuzhequan

Merge branch 'dev' into 'master'

Dev

See merge request !178
parents cc86aa8e 0f011c9a
......@@ -2,6 +2,8 @@ import router from '@/router'
import Axios from 'axios'
import { showError } from '@/utils/ui.ts'
import { v4 as uuidv4 } from 'uuid'
import dayjs from 'dayjs'
import {findRequestItemByUUID,deleteRequestByUUID,addRequestItem,getTimeDifferenceInMilliseconds} from './requestLog.ts'
const axios = Axios.create({
baseURL: import.meta.env.VITE_API_BASE,
timeout: 60 * 60 * 1000, //半小时
......@@ -22,9 +24,15 @@ axios.interceptors.request.use(
const token = getToken()
if (token) {
config.headers['jwt-token'] = token
}
config.headers.timestamp = new Date().getTime()
config.headers.uuid = uuidv4().replace(/-/g, '')
}
addRequestItem({
url: config.url || '',
method: config.method || '',
startTime: dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'),
uuid: config.headers.uuid
})
return config
},
(error) => {
......@@ -35,6 +43,23 @@ axios.interceptors.response.use(
(response) => {
// 1. 判断响应码
const data = response.data
const uuid = response.config?.headers?.uuid
const item = findRequestItemByUUID(uuid)
item.url = `${import.meta.env.VITE_API_BASE}${response.config?.url}`
const fm = new FormData()
const processTime = response.headers['processtime']
const endTime = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss')
const clientResponseTime = getTimeDifferenceInMilliseconds(item.startTime, endTime)
console.log(item)
if((clientResponseTime as number)>=3000){
fm.append('processTime', processTime)
fm.append('url', item.url)
fm.append('method', item.method)
fm.append('requestId', response.data.requestId)
fm.append('clientResponseTime', String(clientResponseTime)+'ms')
navigator.sendBeacon(`${import.meta.env.VITE_API_BASE}/factory/ops/report-data`, fm)
}
deleteRequestByUUID(uuid)
if (data && typeof data === 'object' && typeof data.code === 'number') {
// token 过期
if (data.code === 403) {
......
export interface ApiRequestItem {
url: string;
method: string;
startTime: string;
uuid: string;
}
const apiRequestKey = 'apiRequestStorage'
export const getRequestData = () => {
return JSON.parse(localStorage.getItem(apiRequestKey) || '[]')
}
export const getTimeDifferenceInMilliseconds = (time1:string, time2:string): number | null => {
const date1 = new Date(time1);
const date2 = new Date(time2);
// 检查日期是否有效
if (isNaN(date1.getTime()) || isNaN(date2.getTime())) {
return null; // 返回 null 或者其他你想要的错误处理
}
return date2.getTime() - date1.getTime();
}
export const findRequestItemByUUID = (uuid: string) => {
const data = getRequestData()
return data.find((d: ApiRequestItem) => d.uuid === uuid)
}
export const deleteRequestByUUID = (uuid: string) => {
let data = getRequestData()
data= data.filter((d: ApiRequestItem) => d.uuid !== uuid)
localStorage.setItem(apiRequestKey,JSON.stringify(data))
}
export const addRequestItem = (item?:ApiRequestItem) => {
const data = getRequestData()
data.push(item)
localStorage.setItem(apiRequestKey,JSON.stringify(data))
return data
}
......@@ -102,7 +102,7 @@
<div>{{ getStatus(row.orderStatus) }}</div>
</template>
<template #shipmentType="{ row }">
{{ ['自有物流', '工厂物流'][row.shipmentType] }}
{{ ['自有物流', '九猫统筹物流'][row.shipmentType] }}
</template>
<template #shippingAge="{ row }">
{{ getShippingAge(row) }}
......
......@@ -879,7 +879,7 @@ onMounted(() => {
style="width: 150px"
>
<ElOption
v-for="(item, index) in ['自有物流', '工厂物流']"
v-for="(item, index) in ['自有物流', '九猫统筹物流']"
:key="index"
:value="index"
:label="item"
......@@ -1175,7 +1175,7 @@ onMounted(() => {
<div>{{ getStatus(row.status) }}</div>
</template>
<template #shipmentType="{ row }">
{{ ['自有物流', '工厂物流'][row.shipmentType] }}
{{ ['自有物流', '九猫统筹物流'][row.shipmentType] }}
</template>
</TableView>
</div>
......
......@@ -1156,7 +1156,7 @@ onMounted(() => {
<ElOption
v-for="(item, index) in searchForm.replaceShipment === 0
? ['自提', '快递']
: ['自有物流', '工厂物流']"
: ['自有物流', '九猫统筹物流']"
:key="index"
:value="index"
:label="item"
......@@ -1267,7 +1267,7 @@ onMounted(() => {
{{
(row.replaceShipment === 0
? ['自提', '快递']
: ['自有物流', '工厂物流'])[row.shipmentType]
: ['自有物流', '九猫统筹物流'])[row.shipmentType]
}}
</template>
<template #replaceShipment="{ row }">
......
......@@ -475,7 +475,7 @@
style="width: 150px"
>
<ElOption
v-for="(item, index) in ['自有物流', '工厂物流']"
v-for="(item, index) in ['自有物流', '九猫统筹物流']"
:key="index"
:value="index"
:label="item"
......@@ -806,7 +806,7 @@
>
</ElDropdownMenu>
</template> -->
<!-- 代发:0.自有物流 1.工厂物流; 不代发: 0.自提 1.快递-->
<!-- 代发:0.自有物流 1.九猫统筹物流; 不代发: 0.自提 1.快递-->
<template
v-if="
status === 'CREATE_LOGISTICS' || status === 'WAIT_SHIPMENT'
......@@ -1644,7 +1644,7 @@
>
{{
row.replaceShipment === 1
? ['自有物流', '工厂物流'][row.shipmentType]
? ['自有物流', '九猫统筹物流'][row.shipmentType]
: ['自提', '快递'][row.shipmentType]
}}
</span>
......
......@@ -425,7 +425,7 @@
shipmentList=['自提','快递']
searchForm.shipmentType=0
}else{
shipmentList=['自有物流', '工厂物流']
shipmentList=['自有物流', '九猫统筹物流']
searchForm.shipmentType=''
}
}
......@@ -1695,7 +1695,7 @@
{{
row.shipmentType == 0 && row.replaceShipment == 0
? '自提'
: ['自有物流', '工厂物流'][row.shipmentType]
: ['自有物流', '九猫统筹物流'][row.shipmentType]
}}
</span>
</div>
......@@ -3759,7 +3759,7 @@ const handleBatchDelete = async (type: string, id?: string) => {
}
}
const shipmentList = ref(['自有物流', '工厂物流'])
const shipmentList = ref(['自有物流', '九猫统筹物流'])
// 批量下载 重新排版
const handleReComposingDesign = async () => {
......
......@@ -777,7 +777,7 @@
>
<template #default="{ row }">
<span v-if="row.order">{{
row.order.shipment_type == 1 ? '工厂物流' : '自我物流'
row.order.shipment_type == 1 ? '九猫统筹物流' : '自我物流'
}}</span>
</template>
</el-table-column>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment