订单信息相关的页面提交

This commit is contained in:
Ygb 2025-09-03 09:56:11 +08:00
parent eea20a2a23
commit 4c7d329a63
9 changed files with 2047 additions and 17 deletions

View File

@ -0,0 +1,50 @@
import instance from '../../utils/axios.js'
// 过滤设置相关API
const depotOrderApi = {
//listDepotOrder, getDepotOrder, delDepotOrder, addDepotOrder, updateDepotOrder, getMailNo, getPdf, getMailNoByYuanTong,
// getPdfByYuanTong, getMailNoByShenTong, getPdfByShenTong, getMailNoByZhongTong, getPdfByZhongTong
///** 查询仓库订单信息列表 */
listDepotOrder: (params) => instance.get('/depotOrder/list', { params }),
// 查询仓库订单信息详细
getDepotOrder: (id) => instance.get(`/depotOrder/${id}`),
//删除仓库订单信息(单个)
delDepotOrder: (id) => instance.delete(`/depotOrder/${id}`),
//新增仓库订单信息 addDepotOrder
addDepotOrder: (data) => instance.post('/depotOrder', data),
//修改仓库订单信息
updateDepotOrder: (data) => instance.put('/depotOrder', data),
//韵达发货获取订单号
getMailNo: (mailNo) => instance.get(`/depotOrder/getMailNo/${mailNo}`),
//getPdf韵达获取pdf
getPdf: (mailNo) => instance.get(`/depotOrder/getPdf/${mailNo}`),
//getMailNoByYuanTong
getMailNoByYuanTong: (id) => instance.get(`/depotOrder/getMailNoByYuanTong/${id}`),
//getPdfByYuanTong
getPdfByYuanTong: (waybillNo) => instance.get(`/depotOrder/getPdfByYuanTong/${waybillNo}`),
//getMailNoByShenTong 申通获取运单号
getMailNoByShenTong: (id) => instance.get(`/depotOrder/getPdfByYuanTong/${id}`),
//getPdfByShenTong 申通获取pdf
getMailNoByShenTong: (id) => instance.get(`/depotOrder/getPdfByShenTong/${id}`),
//getMailNoByZhongTong 中通获取运单号
getMailNoByZhongTong: (id) => instance.get(`/depotOrder/getMailNoByZhongTong/${id}`),
//getPdfByZhongTong 中通 获取pdf
getPdfByZhongTong: (waybillNo) => instance.get(`/depotOrder/getPdfByZhongTong/${waybillNo}`),
//二次发货 addDepotOrder
orderReshipment : (data) => instance.post('/depotOrder/reshipment', data),
//import { DepotOrderVO, DepotOrderQuery, DepotOrderForm } from '@/api/zhishu/depotOrder/types'
};
// 导出模块
export { depotOrderApi };

View File

View File

@ -0,0 +1,158 @@
/**
* 仓库订单视图对象对应 TypeScript DepotOrderVO 接口
* @typedef {Object} DepotOrderVO
* @property {string|number} id - 主键字符串或数字
* @property {string|number} shopOrderId - 店铺订单 ID字符串或数字
* @property {string|number} userId - 处理人 ID字符串或数字
* @property {string} itemList - 商品信息字符串可能为序列化后的对象
* @property {string} status - 仓库订单状态0:待发货,1:已发货,2:无库存,3:转发任务
* @property {number} createBy - 创建者 ID数字
* @property {string} createTime - 创建时间时间戳或日期字符串
* @property {string|number} shopId - 店铺 ID字符串或数字
* @property {string} shopName - 店铺名称字符串
* @property {string} address - 地址字符串
* @property {string} addressMask - 详细地址脱敏字符串
* @property {number} afterSalesStatus - 售后状态0-33 具体含义见注释
* @property {string} buyerMemo - 买家留言信息字符串
* @property {number} confirmStatus - 成交状态0:未成交,1:已成交,2:已取消
* @property {string} confirmTime - 成交时间时间戳或日期字符串
* @property {string} createdTime - 订单创建时间可能与 createTime 重复字符串
* @property {string} deliveryOneDay - 是否当日发货1:,0:字符串
* @property {string} discountAmount - 折扣金额平台+商家+团长优惠总和字符串
* @property {number} duoDuoPayReduction - 多多支付立减金额数字
* @property {number} duoduoWholesale - 是否多多批发1:,0:数字
* @property {number} goodsAmount - 商品金额数字
* @property {string} depotCode - 仓库编码字符串
* @property {string|number} depotId - 仓库 ID字符串或数字
* @property {string} depotName - 支付申报订单号字符串
* @property {number} depotType - 仓库类型1:自有仓,2:订阅仓数字
* @property {string|number} wareId - 货品 ID字符串或数字
* @property {string} wareName - 货品名称字符串
* @property {string} wareSn - 货品编码字符串
* @property {string} wareType - 货品类型0:普通货品,1:组合货品字符串
* @property {string} orderSn - 订单编号字符串
* @property {number} orderStatus - 订单状态具体含义需业务确认数字
* @property {number} payAmount - 支付金额数字
* @property {number} payNo - 支付单号数字可能应为字符串需确认业务
* @property {string} payTime - 支付时间时间戳或日期字符串
* @property {string} payType - 支付方式如支付宝微信字符串
* @property {number} platformDiscount - 平台优惠金额数字
* @property {number} postage - 邮费数字
* @property {string} preSaleTime - 预售时间时间戳或日期字符串
* @property {string} promiseDeliveryTime - 承诺送达时间时间戳或日期字符串
* @property {string} province - 省份字符串
* @property {string|number} provinceId - 省份编码字符串或数字
* @property {string} receiveTime - 确认收货时间时间戳或日期字符串
* @property {string} city - 字符串
* @property {string} cityId - 市编码字符串
* @property {string} receiverAddress - 收件人地址字符串
* @property {string} receiverAddressMask - 收件人地址脱敏字符串
* @property {string} receiverName - 收件人姓名字符串
* @property {string} receiverNameMask - 收件人姓名脱敏字符串
* @property {string} receiverPhone - 收件人手机号原始字符串
* @property {string} receiverPhoneMask - 收件人手机号打码字符串
* @property {number} refundStatus - 退款状态0-18 具体含义见注释数字
* @property {string} remark - 订单备注字符串
* @property {string} remarkTag - 备注标记颜色1-5 对应红-字符串
* @property {string} remarkTagName - 备注标记名称字符串
* @property {number} returnFreightPayer - 退货包运费1:,0:数字
* @property {number} riskControlStatus - 订单审核状态0:正常,1:审核中数字
* @property {number} selfContained - 是否门店自提1:,0:数字
* @property {number} sellerDiscount - 商家优惠金额数字
* @property {number} stockOutHandleStatus - 缺货处理状态-1:,-0:待处理,1:已处理数字
* @property {string|number} supportNationwideWarranty - 全国联保1:,0:字符串或数字
* @property {string} town - /乡镇字符串
* @property {string|number} townId - 区县编码字符串或数字
* @property {string} trackingNumber - 快递单号字符串
* @property {string|number} tradeInNationalSubsidyAmount - 以旧换新国家补贴金额字符串或数字
* @property {number} tradeType - 订单类型0:普通订单,1:定金订单数字
* @property {string} updatedAt - 订单更新时间时间戳或日期字符串
* @property {string} urgeShippingTime - 催发货时间时间戳或日期字符串
* @property {string} yypsDate - 预约配送日期时间戳或日期字符串
* @property {string} yypsTime - 预约配送时段时间戳或日期字符串
* @property {string|number} openAddressId2 - 合单 ID2字符串或数字
* @property {string[]} orderExceptionTypeList - 订单异常类型状态列表字符串数组
* @property {number} orderSourceType - 订单来源类型数字
* @property {OrderItem} orderItemList - 商品详细信息OrderItem 对象
* @property {string} artNo - 货号字符串可能与 OrderItem 重复需确认业务
*/
const DepotOrderVO = {
// 基础信息
id: '', // 主键(初始为空)
shopOrderId: '', // 店铺订单 ID
userId: '', // 处理人 ID
itemList: '', // 商品信息(字符串)
status: '', // 仓库订单状态(初始为空)
// 身份与时间信息
createBy: 0, // 创建者 ID初始为 0
createTime: '', // 创建时间(初始为空)
shopId: '', // 店铺 ID
shopName: '', // 店铺名称
address: '', // 地址
addressMask: '', // 详细地址(脱敏)
afterSalesStatus: 0, // 售后状态(初始为 0
buyerMemo: '', // 买家留言信息
confirmStatus: 0, // 成交状态(初始为 0
confirmTime: '', // 成交时间
createdTime: '', // 订单创建时间(可能与 createTime 重复)
deliveryOneDay: '', // 是否当日发货(初始为空)
discountAmount: '', // 折扣金额(初始为空)
duoDuoPayReduction: 0, // 多多支付立减金额(初始为 0
duoduoWholesale: 0, // 是否多多批发(初始为 0
goodsAmount: 0, // 商品金额(初始为 0
depotCode: '', // 仓库编码
depotId: '', // 仓库 ID
depotName: '', // 支付申报订单号
depotType: 0, // 仓库类型(初始为 0
wareId: '', // 货品 ID
wareName: '', // 货品名称
wareSn: '', // 货品编码
wareType: '', // 货品类型(初始为空)
orderSn: '', // 订单编号
orderStatus: 0, // 订单状态(初始为 0
payAmount: 0, // 支付金额(初始为 0
payNo: 0, // 支付单号(初始为 0
payTime: '', // 支付时间
payType: '', // 支付方式(初始为空)
platformDiscount: 0, // 平台优惠金额(初始为 0
postage: 0, // 邮费(初始为 0
preSaleTime: '', // 预售时间
promiseDeliveryTime: '', // 承诺送达时间
province: '', // 省份
provinceId: '', // 省份编码
receiveTime: '', // 确认收货时间
city: '', // 市
cityId: '', // 市编码
receiverAddress: '', // 收件人地址
receiverAddressMask: '', // 收件人地址(脱敏)
receiverName: '', // 收件人姓名
receiverNameMask: '', // 收件人姓名(脱敏)
receiverPhone: '', // 收件人手机号(原始)
receiverPhoneMask: '', // 收件人手机号(打码)
refundStatus: 0, // 退款状态(初始为 0
remark: '', // 订单备注
remarkTag: '', // 备注标记颜色(初始为空)
remarkTagName: '', // 备注标记名称(初始为空)
returnFreightPayer: 0, // 退货包运费(初始为 0
riskControlStatus: 0, // 订单审核状态(初始为 0
selfContained: 0, // 是否门店自提(初始为 0
sellerDiscount: 0, // 商家优惠金额(初始为 0
stockOutHandleStatus: -1, // 缺货处理状态(初始为 -1
supportNationwideWarranty: '', // 全国联保(初始为空)
town: '', // 区/乡镇
townId: '', // 区县编码
trackingNumber: '', // 快递单号
tradeInNationalSubsidyAmount: '', // 以旧换新国家补贴金额(初始为空)
tradeType: 0, // 订单类型(初始为 0
updatedAt: '', // 订单更新时间
urgeShippingTime: '', // 催发货时间
yypsDate: '', // 预约配送日期
yypsTime: '', // 预约配送时段
openAddressId2: '', // 合单 ID2初始为空
orderExceptionTypeList: [], // 订单异常类型状态列表(初始为空数组)
orderSourceType: 0, // 订单来源类型(初始为 0
orderItemList: OrderItem, // 商品详细信息(引用 OrderItem 对象)
artNo: '' // 货号(初始为空)
};
export default DepotOrderVO; // 默认导出

130
src/components/DictTag.vue Normal file
View File

@ -0,0 +1,130 @@
<template>
<div>
<template v-for="(item, index) in options">
<template v-if="values.includes(String(item.value))">
<span
v-if="(item.elTagType === 'default' || item.elTagType === '') && (item.elTagClass === '' || item.elTagClass == null)"
:key="item.value"
:index="index"
:class="item.elTagClass"
>
{{ item.label + ' ' }}
</span>
<el-tag
v-else
:key="item.value + ''"
:disable-transitions="true"
:index="index"
:type="
item.elTagType === 'primary' ||
item.elTagType === 'success' ||
item.elTagType === 'info' ||
item.elTagType === 'warning' ||
item.elTagType === 'danger'
? item.elTagType
: 'primary'
"
:class="item.elTagClass"
>
{{ item.label + ' ' }}
</el-tag>
</template>
</template>
<!-- <template v-if="unmatch && showValue">
{{ unmatchArray }}
</template> -->
</div>
</template>
<script setup>
import { computed } from 'vue'
// const props = withDefaults(defineProps(), {
// showValue: true,
// separator: ','
// })
const props = defineProps({
//
options: {
type: Array,
default: () => []
},
//
value: {
type: [String, Number, Array, Boolean],
default: ''
},
//
showValue: {
type: Boolean,
default: true
},
})
console.log("zhuxiaodong"+props)
console.log("zhuxiaodong"+props.options)
console.log("zhuxiaodongvalues"+props.values)
//
const values = computed(() => {
console.log(props.value+"1222zhuxiaodong")
if (props.value === '' || props.value === null || props.value === undefined) return []
return Array.isArray(props.value)
? props.value.map(item => item)
: String(props.value).split(props.separator)
})
console.log(values+"829")
//
const unmatch = computed(() => {
if (props.options?.length === 0 || props.value === '' || props.value === null || props.value === undefined) {
return false
}
// 使 some
return values.value.some(item =>
!props.options.some(v => v.value === item)
)
})
//
const unmatchArray = computed(() => {
const itemUnmatchArray = []
if (props.value !== '' && props.value !== null && props.value !== undefined) {
values.value.forEach(item => {
if (!props.options.some(v => v.value === item)) {
itemUnmatchArray.push(item)
}
})
}
return handleArray(itemUnmatchArray)
})
//
const handleArray = (array) => {
if (array.length === 0) return ''
return array.join(' ')
}
</script>
<style>
.el-tag + .el-tag {
margin-left: 10px;
}
</style>

View File

@ -143,6 +143,10 @@ const menuData = shallowRef([
{ {
title: '快递打单账号管理', title: '快递打单账号管理',
path: '/account/management' path: '/account/management'
},
{
title: '仓库订单信息',
path: '/depotOrder/information'
} }
] ]
}, },

View File

@ -188,12 +188,14 @@ const routes = [{
{ {
path: '/account/management', path: '/account/management',
component: () => import('@/views/fastMail/index.vue'), component: () => import('@/views/fastMail/index.vue'),
meta: { title: '货区管理', permission: 'warehouse:depot:view' } meta: { title: '快递打单账号管理', permission: 'warehouse:depot:view' }
},
//快递打单账号管理 src/views/fastMail
{
path: '/depotOrder/information',
component: () => import('@/views/depotOrder/index.vue'),
meta: { title: '仓库订单信息', permission: 'warehouse:depot:view' }
} }
] ]
}] }]

File diff suppressed because it is too large Load Diff

View File

@ -90,7 +90,8 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope"> <template #default="scope">
<el-tooltip content="修改" placement="top"> <el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['zhishu:fastMail:edit']"></el-button> <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['zhishu:fastMail:edit']"></el-button>
@ -99,7 +100,8 @@
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['zhishu:fastMail:remove']"></el-button> <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['zhishu:fastMail:remove']"></el-button>
</el-tooltip> </el-tooltip>
</template> </template>
</el-table-column> </el-table-column> -->
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" /> <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />

View File

@ -235,7 +235,7 @@
<el-table-column label="仓库信息" align="left" prop="shopName" width="150px"> <el-table-column label="仓库信息ZXD" align="left" prop="shopName" width="150px">
<template #default="scope"> <template #default="scope">
名称<span>{{ scope.row.depotName }}</span> 名称<span>{{ scope.row.depotName }}</span>
<br> <br>
@ -262,7 +262,7 @@
<!-- </el-table-column>--> <!-- </el-table-column>-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160px" fixed="right"> <el-table-column label="操作zxd" align="center" class-name="small-padding fixed-width" width="160px" fixed="right">
<template #default="scope"> <template #default="scope">
<el-button link type="primary" :disabled="scope.row.orderStatus !== 1 || displayStatus" <el-button link type="primary" :disabled="scope.row.orderStatus !== 1 || displayStatus"
@click="handleShipments(scope.row)"> @click="handleShipments(scope.row)">
@ -1320,15 +1320,23 @@ const displayStatus = ref(false);
const handleShipments = async (row) => { const handleShipments = async (row) => {
console.log(row, "========---------===========") console.log(row, "========---------===========")
console.log(row.id, "========---------===========") console.log(row.id, "========---------===========")
await checkOrderInfo(row.id);
try { try {
const res = await getShopShi(row.shopId, row.orderSourceType); debugger;
shiMethodList.value = res.data; const res = await checkOrderInfo(row.id);
formShops.orderSourceType = row.orderSourceType; debugger;
formShops.shopId = row.shopId; console.log(res);
formShops.orderSn = row.orderSn; if(res.code=='200'){
dialogShipments.title = "设置发货信息" ElMessage.success("下发成功")
dialogShipments.visible = true; }else{
ElMessage.error("下发失败,请联系管理员")
}
// shiMethodList.value = res.data;
// formShops.orderSourceType = row.orderSourceType;
// formShops.shopId = row.shopId;
// formShops.orderSn = row.orderSn;
// dialogShipments.title = ""
// dialogShipments.visible = true;
} catch (error) { } catch (error) {
console.error('数据加载失败:', error); console.error('数据加载失败:', error);
} }