This commit is contained in:
parent
eed20a11b2
commit
d57670c7d2
@ -28,9 +28,9 @@
|
|||||||
"@vueup/vue-quill": "1.2.0",
|
"@vueup/vue-quill": "1.2.0",
|
||||||
"@vueuse/core": "11.3.0",
|
"@vueuse/core": "11.3.0",
|
||||||
"animate.css": "4.1.1",
|
"animate.css": "4.1.1",
|
||||||
"countup.js": "^2.8.0",
|
|
||||||
"await-to-js": "3.0.0",
|
"await-to-js": "3.0.0",
|
||||||
"axios": "1.7.8",
|
"axios": "1.7.8",
|
||||||
|
"countup.js": "^2.8.0",
|
||||||
"crypto-js": "4.2.0",
|
"crypto-js": "4.2.0",
|
||||||
"diagram-js": "12.3.0",
|
"diagram-js": "12.3.0",
|
||||||
"didi": "9.0.2",
|
"didi": "9.0.2",
|
||||||
@ -54,7 +54,7 @@
|
|||||||
"vue-qr": "^4.0.9",
|
"vue-qr": "^4.0.9",
|
||||||
"vue-router": "4.4.5",
|
"vue-router": "4.4.5",
|
||||||
"vue-types": "5.1.3",
|
"vue-types": "5.1.3",
|
||||||
"vxe-table": "4.5.22"
|
"vxe-table": "^4.5.22"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "9.15.0",
|
"@eslint/js": "9.15.0",
|
||||||
|
63
src/api/amz/packingSpecs/index.ts
Normal file
63
src/api/amz/packingSpecs/index.ts
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
import request from '@/utils/request';
|
||||||
|
import { AxiosPromise } from 'axios';
|
||||||
|
import { PackingSpecsVO, PackingSpecsForm, PackingSpecsQuery } from '@/api/amz/packingSpecs/types';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询产品装箱规格列表
|
||||||
|
* @param query
|
||||||
|
* @returns {*}
|
||||||
|
*/
|
||||||
|
|
||||||
|
export const listPackingSpecs = (query?: PackingSpecsQuery): AxiosPromise<PackingSpecsVO[]> => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/packingSpecs/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询产品装箱规格详细
|
||||||
|
* @param id
|
||||||
|
*/
|
||||||
|
export const getPackingSpecs = (id: string | number): AxiosPromise<PackingSpecsVO> => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/packingSpecs/' + id,
|
||||||
|
method: 'get'
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增产品装箱规格
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export const addPackingSpecs = (data: PackingSpecsForm) => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/packingSpecs',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改产品装箱规格
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export const updatePackingSpecs = (data: PackingSpecsForm) => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/packingSpecs',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除产品装箱规格
|
||||||
|
* @param id
|
||||||
|
*/
|
||||||
|
export const delPackingSpecs = (id: string | number | Array<string | number>) => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/packingSpecs/' + id,
|
||||||
|
method: 'delete'
|
||||||
|
});
|
||||||
|
};
|
146
src/api/amz/packingSpecs/types.ts
Normal file
146
src/api/amz/packingSpecs/types.ts
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
export interface PackingSpecsVO {
|
||||||
|
/**
|
||||||
|
* 规格ID(主键)
|
||||||
|
*/
|
||||||
|
id: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联采购单明细项ID
|
||||||
|
*/
|
||||||
|
sendOrderId: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 规格名称(如规格A)
|
||||||
|
*/
|
||||||
|
specName: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱数(单位:箱)
|
||||||
|
*/
|
||||||
|
cartonCount: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每箱件数(单位:件)
|
||||||
|
*/
|
||||||
|
piecesPerCarton: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱子长度(单位:厘米)
|
||||||
|
*/
|
||||||
|
length: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱子宽度(单位:厘米)
|
||||||
|
*/
|
||||||
|
width: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱子高度(单位:厘米)
|
||||||
|
*/
|
||||||
|
height: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单箱重量(单位:千克)
|
||||||
|
*/
|
||||||
|
weight: number;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PackingSpecsForm extends BaseEntity {
|
||||||
|
/**
|
||||||
|
* 规格ID(主键)
|
||||||
|
*/
|
||||||
|
id?: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联采购单明细项ID
|
||||||
|
*/
|
||||||
|
sendOrderId?: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 规格名称(如规格A)
|
||||||
|
*/
|
||||||
|
specName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱数(单位:箱)
|
||||||
|
*/
|
||||||
|
cartonCount?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每箱件数(单位:件)
|
||||||
|
*/
|
||||||
|
piecesPerCarton?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱子长度(单位:厘米)
|
||||||
|
*/
|
||||||
|
length?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱子宽度(单位:厘米)
|
||||||
|
*/
|
||||||
|
width?: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱子高度(单位:厘米)
|
||||||
|
*/
|
||||||
|
height?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单箱重量(单位:千克)
|
||||||
|
*/
|
||||||
|
weight?: number;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PackingSpecsQuery extends PageQuery {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联采购单明细项ID
|
||||||
|
*/
|
||||||
|
sendOrderId?: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 规格名称(如规格A)
|
||||||
|
*/
|
||||||
|
specName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱数(单位:箱)
|
||||||
|
*/
|
||||||
|
cartonCount?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 每箱件数(单位:件)
|
||||||
|
*/
|
||||||
|
piecesPerCarton?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱子长度(单位:厘米)
|
||||||
|
*/
|
||||||
|
length?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱子宽度(单位:厘米)
|
||||||
|
*/
|
||||||
|
width?: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 箱子高度(单位:厘米)
|
||||||
|
*/
|
||||||
|
height?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单箱重量(单位:千克)
|
||||||
|
*/
|
||||||
|
weight?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 日期范围参数
|
||||||
|
*/
|
||||||
|
params?: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
76
src/api/amz/purchaseOutOrder/index.ts
Normal file
76
src/api/amz/purchaseOutOrder/index.ts
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
import request from '@/utils/request';
|
||||||
|
import { AxiosPromise } from 'axios';
|
||||||
|
import { PurchaseOutOrderVO, PurchaseOutOrderForm, PurchaseOutOrderQuery } from '@/api/amz/purchaseOutOrder/types';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询组合订单列表
|
||||||
|
* @param query
|
||||||
|
* @returns {*}
|
||||||
|
*/
|
||||||
|
|
||||||
|
export const listPurchaseOutOrder = (query?: PurchaseOutOrderQuery): AxiosPromise<PurchaseOutOrderVO[]> => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/purchaseOutOrder/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询组合订单详细
|
||||||
|
* @param tenantId
|
||||||
|
*/
|
||||||
|
export const getPurchaseOutOrder = (tenantId: string | number): AxiosPromise<PurchaseOutOrderVO> => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/purchaseOutOrder/' + tenantId,
|
||||||
|
method: 'get'
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增组合订单
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export const addPurchaseOutOrder = (data: PurchaseOutOrderForm) => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/purchaseOutOrder',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增组合订单
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export const createSendOrderByBo = (data: PurchaseOutOrderForm) => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/purchaseOutOrder/submit',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改组合订单
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export const updatePurchaseOutOrder = (data: PurchaseOutOrderForm) => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/purchaseOutOrder',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除组合订单
|
||||||
|
* @param tenantId
|
||||||
|
*/
|
||||||
|
export const delPurchaseOutOrder = (tenantId: string | number | Array<string | number>) => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/purchaseOutOrder/' + tenantId,
|
||||||
|
method: 'delete'
|
||||||
|
});
|
||||||
|
};
|
275
src/api/amz/purchaseOutOrder/types.ts
Normal file
275
src/api/amz/purchaseOutOrder/types.ts
Normal file
@ -0,0 +1,275 @@
|
|||||||
|
import { PurchaseOrderVO } from '@/api/amz/purchaseOrder/types';
|
||||||
|
import { OrderOutItemVO } from '@/api/amz/purchaseOutOrderItem/types';
|
||||||
|
|
||||||
|
export interface PurchaseOutOrderVO {
|
||||||
|
/**
|
||||||
|
* 订单唯一编号
|
||||||
|
*/
|
||||||
|
orderSn: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库名称
|
||||||
|
*/
|
||||||
|
warehouseName: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 外包仓库名称
|
||||||
|
*/
|
||||||
|
outsourceWarehouseName: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商名称
|
||||||
|
*/
|
||||||
|
supplierName: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务创建时间 (Jackson格式: yyyy-MM-dd HH:mm:ss)
|
||||||
|
*/
|
||||||
|
bizCreateTime: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态文本描述
|
||||||
|
*/
|
||||||
|
statusText: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人姓名
|
||||||
|
*/
|
||||||
|
createRealname: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PTP流水号
|
||||||
|
*/
|
||||||
|
ptpSn: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品名称
|
||||||
|
*/
|
||||||
|
productName: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标准SKU编码
|
||||||
|
*/
|
||||||
|
sku: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FNSKU编码
|
||||||
|
*/
|
||||||
|
fnsku: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 外包数量
|
||||||
|
*/
|
||||||
|
outsourceQuantity: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实收数量
|
||||||
|
*/
|
||||||
|
receiveQuantity: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预计到达时间
|
||||||
|
*/
|
||||||
|
expectArriveTime: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MSKU编码列表 (数组存储)
|
||||||
|
*/
|
||||||
|
msku: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联计划单号列表 (数组存储)
|
||||||
|
*/
|
||||||
|
planSn: string;
|
||||||
|
|
||||||
|
items?: OrderOutItemVO[];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 销售商名称
|
||||||
|
*/
|
||||||
|
sellerName: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PurchaseOutOrderForm extends BaseEntity {
|
||||||
|
/**
|
||||||
|
* 订单唯一编号
|
||||||
|
*/
|
||||||
|
orderSn?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库名称
|
||||||
|
*/
|
||||||
|
warehouseName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 外包仓库名称
|
||||||
|
*/
|
||||||
|
outsourceWarehouseName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商名称
|
||||||
|
*/
|
||||||
|
supplierName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务创建时间 (Jackson格式: yyyy-MM-dd HH:mm:ss)
|
||||||
|
*/
|
||||||
|
bizCreateTime?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态文本描述
|
||||||
|
*/
|
||||||
|
statusText?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人姓名
|
||||||
|
*/
|
||||||
|
createRealname?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PTP流水号
|
||||||
|
*/
|
||||||
|
ptpSn?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品名称
|
||||||
|
*/
|
||||||
|
productName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标准SKU编码
|
||||||
|
*/
|
||||||
|
sku?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FNSKU编码
|
||||||
|
*/
|
||||||
|
fnsku?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 外包数量
|
||||||
|
*/
|
||||||
|
outsourceQuantity?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实收数量
|
||||||
|
*/
|
||||||
|
receiveQuantity?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预计到达时间
|
||||||
|
*/
|
||||||
|
expectArriveTime?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MSKU编码列表 (数组存储)
|
||||||
|
*/
|
||||||
|
msku?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联计划单号列表 (数组存储)
|
||||||
|
*/
|
||||||
|
planSn?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 销售商名称
|
||||||
|
*/
|
||||||
|
sellerName?: string;
|
||||||
|
|
||||||
|
items?: OrderOutItemVO[];
|
||||||
|
|
||||||
|
quantityLeft?: number;
|
||||||
|
quantityShipped?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PurchaseOutOrderQuery extends PageQuery {
|
||||||
|
/**
|
||||||
|
* 订单唯一编号
|
||||||
|
*/
|
||||||
|
orderSn?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库名称
|
||||||
|
*/
|
||||||
|
warehouseName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 外包仓库名称
|
||||||
|
*/
|
||||||
|
outsourceWarehouseName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商名称
|
||||||
|
*/
|
||||||
|
supplierName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务创建时间 (Jackson格式: yyyy-MM-dd HH:mm:ss)
|
||||||
|
*/
|
||||||
|
bizCreateTime?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态文本描述
|
||||||
|
*/
|
||||||
|
statusText?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人姓名
|
||||||
|
*/
|
||||||
|
createRealname?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PTP流水号
|
||||||
|
*/
|
||||||
|
ptpSn?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品名称
|
||||||
|
*/
|
||||||
|
productName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标准SKU编码
|
||||||
|
*/
|
||||||
|
sku?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FNSKU编码
|
||||||
|
*/
|
||||||
|
fnsku?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 外包数量
|
||||||
|
*/
|
||||||
|
outsourceQuantity?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实收数量
|
||||||
|
*/
|
||||||
|
receiveQuantity?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预计到达时间
|
||||||
|
*/
|
||||||
|
expectArriveTime?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* MSKU编码列表 (数组存储)
|
||||||
|
*/
|
||||||
|
msku?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联计划单号列表 (数组存储)
|
||||||
|
*/
|
||||||
|
planSn?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 销售商名称
|
||||||
|
*/
|
||||||
|
sellerName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 日期范围参数
|
||||||
|
*/
|
||||||
|
params?: any;
|
||||||
|
}
|
196
src/api/amz/purchaseOutOrderItem/types.ts
Normal file
196
src/api/amz/purchaseOutOrderItem/types.ts
Normal file
@ -0,0 +1,196 @@
|
|||||||
|
import { PurchaseOrderVO } from '@/api/amz/purchaseOrder/types';
|
||||||
|
|
||||||
|
export interface OrderOutItemVO {
|
||||||
|
/**
|
||||||
|
* 明细项自增主键
|
||||||
|
*/
|
||||||
|
itemId: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联采购订单号 (外键)
|
||||||
|
*/
|
||||||
|
outOrderSn: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品名称
|
||||||
|
*/
|
||||||
|
productName: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SKU编码
|
||||||
|
*/
|
||||||
|
sku: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购需求数量
|
||||||
|
*/
|
||||||
|
quantityRequire: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务创建时间 (Jackson格式: yyyy-MM-dd HH:mm:ss)
|
||||||
|
*/
|
||||||
|
bizCreateTime: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人姓名
|
||||||
|
*/
|
||||||
|
createRealname: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预计到达时间
|
||||||
|
*/
|
||||||
|
expectArriveTime: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库名称
|
||||||
|
*/
|
||||||
|
warehouseName: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商名称
|
||||||
|
*/
|
||||||
|
supplierName: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实际到货数量
|
||||||
|
*/
|
||||||
|
quantityReal: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已入库数量
|
||||||
|
*/
|
||||||
|
quantityEntry: number;
|
||||||
|
|
||||||
|
ratio?: number;
|
||||||
|
|
||||||
|
order?: PurchaseOrderVO;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface OrderOutItemForm extends BaseEntity {
|
||||||
|
/**
|
||||||
|
* 明细项自增主键
|
||||||
|
*/
|
||||||
|
itemId?: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联采购订单号 (外键)
|
||||||
|
*/
|
||||||
|
outOrderSn?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品名称
|
||||||
|
*/
|
||||||
|
productName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SKU编码
|
||||||
|
*/
|
||||||
|
sku?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购需求数量
|
||||||
|
*/
|
||||||
|
quantityRequire?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务创建时间 (Jackson格式: yyyy-MM-dd HH:mm:ss)
|
||||||
|
*/
|
||||||
|
bizCreateTime?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人姓名
|
||||||
|
*/
|
||||||
|
createRealname?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预计到达时间
|
||||||
|
*/
|
||||||
|
expectArriveTime?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库名称
|
||||||
|
*/
|
||||||
|
warehouseName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商名称
|
||||||
|
*/
|
||||||
|
supplierName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实际到货数量
|
||||||
|
*/
|
||||||
|
quantityReal?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已入库数量
|
||||||
|
*/
|
||||||
|
quantityEntry?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface OrderOutItemQuery extends PageQuery {
|
||||||
|
/**
|
||||||
|
* 明细项自增主键
|
||||||
|
*/
|
||||||
|
itemId?: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联采购订单号 (外键)
|
||||||
|
*/
|
||||||
|
outOrderSn?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 产品名称
|
||||||
|
*/
|
||||||
|
productName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SKU编码
|
||||||
|
*/
|
||||||
|
sku?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购需求数量
|
||||||
|
*/
|
||||||
|
quantityRequire?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务创建时间 (Jackson格式: yyyy-MM-dd HH:mm:ss)
|
||||||
|
*/
|
||||||
|
bizCreateTime?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人姓名
|
||||||
|
*/
|
||||||
|
createRealname?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预计到达时间
|
||||||
|
*/
|
||||||
|
expectArriveTime?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库名称
|
||||||
|
*/
|
||||||
|
warehouseName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商名称
|
||||||
|
*/
|
||||||
|
supplierName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实际到货数量
|
||||||
|
*/
|
||||||
|
quantityReal?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已入库数量
|
||||||
|
*/
|
||||||
|
quantityEntry?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 日期范围参数
|
||||||
|
*/
|
||||||
|
params?: any;
|
||||||
|
}
|
@ -16,6 +16,15 @@ export const listSendOrder = (query?: SendOrderQuery): AxiosPromise<SendOrderVO[
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const coverSendOrder = (data?: SendOrderQuery) => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/sendOrder/cover/list',
|
||||||
|
method: 'post',
|
||||||
|
params: { pageNum: data?.pageNum, pageSize: data?.pageSize },
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询供应商创建的发货单详细
|
* 查询供应商创建的发货单详细
|
||||||
* @param id
|
* @param id
|
||||||
@ -39,6 +48,14 @@ export const addSendOrder = (data: SendOrderForm) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const transferSendOrder = (data: SendOrderVO) => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/sendOrder/transfer',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改供应商创建的发货单
|
* 修改供应商创建的发货单
|
||||||
* @param data
|
* @param data
|
||||||
@ -51,6 +68,18 @@ export const updateSendOrder = (data: SendOrderForm) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改供应商创建的发货单
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export const updateSendOrderData = (data: SendOrderForm) => {
|
||||||
|
return request({
|
||||||
|
url: '/amz/sendOrder/data',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除供应商创建的发货单
|
* 删除供应商创建的发货单
|
||||||
* @param id
|
* @param id
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
import { ShipmentPlanVO } from '@/api/amz/shipmentPlan/types';
|
import { ShipmentPlanVO } from '@/api/amz/shipmentPlan/types';
|
||||||
|
import { PackingSpecsVO } from '@/api/amz/packingSpecs/types';
|
||||||
|
import { SendOrderItemVO } from '@/api/amz/sendOrderItem/types';
|
||||||
|
|
||||||
export interface SendOrderVO {
|
export interface SendOrderVO {
|
||||||
/**
|
/**
|
||||||
@ -64,6 +66,7 @@ export interface SendOrderVO {
|
|||||||
createTime: string;
|
createTime: string;
|
||||||
|
|
||||||
sendName: string;
|
sendName: string;
|
||||||
|
items?: SendOrderItemVO[];
|
||||||
|
|
||||||
bizShipmentPlans: ShipmentPlanVO[];
|
bizShipmentPlans: ShipmentPlanVO[];
|
||||||
}
|
}
|
||||||
@ -131,7 +134,12 @@ export interface SendOrderForm extends BaseEntity {
|
|||||||
|
|
||||||
sendDetail?: string;
|
sendDetail?: string;
|
||||||
|
|
||||||
|
sendName?: string;
|
||||||
|
sku?: string | number;
|
||||||
|
|
||||||
orderDetailId?: string | number;
|
orderDetailId?: string | number;
|
||||||
|
|
||||||
|
packingSpecsList?: PackingSpecsVO[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SendOrderQuery extends PageQuery {
|
export interface SendOrderQuery extends PageQuery {
|
||||||
|
95
src/api/amz/sendOrderItem/types.ts
Normal file
95
src/api/amz/sendOrderItem/types.ts
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
export interface SendOrderItemVO {
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
id: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购单号
|
||||||
|
*/
|
||||||
|
orderSn: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货日期
|
||||||
|
*/
|
||||||
|
sendDate: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货日期
|
||||||
|
*/
|
||||||
|
storeName: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货日期
|
||||||
|
*/
|
||||||
|
productName: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货日期
|
||||||
|
*/
|
||||||
|
quantitySend: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SendOrderItemForm extends BaseEntity {
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
id?: string | number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采购单号
|
||||||
|
*/
|
||||||
|
orderSn?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货日期
|
||||||
|
*/
|
||||||
|
sendDate?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货日期
|
||||||
|
*/
|
||||||
|
storeName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货日期
|
||||||
|
*/
|
||||||
|
productName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货日期
|
||||||
|
*/
|
||||||
|
quantitySend?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SendOrderItemQuery extends PageQuery {
|
||||||
|
/**
|
||||||
|
* 采购单号
|
||||||
|
*/
|
||||||
|
orderSn?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货日期
|
||||||
|
*/
|
||||||
|
sendDate?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货日期
|
||||||
|
*/
|
||||||
|
storeName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货日期
|
||||||
|
*/
|
||||||
|
productName?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发货日期
|
||||||
|
*/
|
||||||
|
quantitySend?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 日期范围参数
|
||||||
|
*/
|
||||||
|
params?: any;
|
||||||
|
}
|
@ -157,11 +157,15 @@ export interface ShipmentPlanVO {
|
|||||||
|
|
||||||
sendOrders?: SendOrderVO[];
|
sendOrders?: SendOrderVO[];
|
||||||
|
|
||||||
|
amountPrice?: number | string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 供应商发货单id
|
* 供应商发货单id
|
||||||
*/
|
*/
|
||||||
sendOrderId?: string | number;
|
sendOrderId?: string | number;
|
||||||
sendOrderIds?: string[] | number[];
|
sendOrderIds?: string[] | number[];
|
||||||
|
|
||||||
|
itemVoList?: ShipmentItemVO[];
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Address {
|
interface Address {
|
||||||
|
@ -7,48 +7,63 @@
|
|||||||
.pt5 {
|
.pt5 {
|
||||||
padding-top: 5px;
|
padding-top: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pr5 {
|
.pr5 {
|
||||||
padding-right: 5px;
|
padding-right: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pb5 {
|
.pb5 {
|
||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mt5 {
|
.mt5 {
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mr5 {
|
.mr5 {
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mb5 {
|
.mb5 {
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mb8 {
|
.mb8 {
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ml5 {
|
.ml5 {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mt10 {
|
.mt10 {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mr10 {
|
.mr10 {
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mb10 {
|
.mb10 {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ml10 {
|
.ml10 {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mt20 {
|
.mt20 {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mr20 {
|
.mr20 {
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mb20 {
|
.mb20 {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ml20 {
|
.ml20 {
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
@ -74,6 +89,7 @@ h6 {
|
|||||||
.el-form .el-form-item__label {
|
.el-form .el-form-item__label {
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-dialog:not(.is-fullscreen) {
|
.el-dialog:not(.is-fullscreen) {
|
||||||
margin-top: 6vh !important;
|
margin-top: 6vh !important;
|
||||||
}
|
}
|
||||||
@ -96,6 +112,7 @@ h6 {
|
|||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-table__body-wrapper {
|
.el-table__body-wrapper {
|
||||||
.el-button [class*='el-icon-'] + span {
|
.el-button [class*='el-icon-'] + span {
|
||||||
margin-left: 1px;
|
margin-left: 1px;
|
||||||
@ -288,3 +305,72 @@ h6 {
|
|||||||
.top-right-btn {
|
.top-right-btn {
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* src/assets/styles/index.scss */
|
||||||
|
/* 拖拽列样式 */
|
||||||
|
.sortable-ghost {
|
||||||
|
opacity: 0.8;
|
||||||
|
color: #fff !important;
|
||||||
|
background: #42b983 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-right-btn {
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ================== 修改点:移除:deep() ================== */
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: light) {
|
||||||
|
.el-table__expanded-cell {
|
||||||
|
background: #f5fbfd !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
border-bottom: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table__expanded-cell .el-table {
|
||||||
|
--el-table-bg-color: #ebf3ff !important;
|
||||||
|
--el-table-tr-bg-color: #f5fbfd !important;
|
||||||
|
--el-table-header-bg-color: #cfe2ff !important;
|
||||||
|
--el-table-header-text-color: #2c3e50 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table__expanded-cell .el-table__body-wrapper {
|
||||||
|
background: #ebf3ff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table__expanded-cell .el-table__header th {
|
||||||
|
background-color: #cfe2ff !important;
|
||||||
|
border-bottom: 2px solid #a6c5ff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table__expanded-cell .el-table__header .cell {
|
||||||
|
color: #1a2b3c !important;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table__expanded-cell .el-table__body tr td {
|
||||||
|
background-color: transparent !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table__expanded-cell .el-card {
|
||||||
|
background: transparent !important;
|
||||||
|
border: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table__expanded-cell .el-table__body tr:hover > td {
|
||||||
|
background-color: #ffffff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table__expanded-cell .el-table__header tr:hover th {
|
||||||
|
background-color: #b6d4ff !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table__expanded-cell .el-table__header .sort-caret.ascending {
|
||||||
|
border-bottom-color: #1a2b3c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-table__expanded-cell .el-table__header .sort-caret.descending {
|
||||||
|
border-top-color: #1a2b3c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div>
|
|
||||||
<svg-icon icon-class="question" @click="goto" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
const url = ref('https://plus-doc.dromara.org/');
|
|
||||||
|
|
||||||
function goto() {
|
|
||||||
window.open(url.value);
|
|
||||||
}
|
|
||||||
</script>
|
|
@ -1,13 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div>
|
|
||||||
<svg-icon icon-class="github" @click="goto" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup>
|
|
||||||
const url = ref('https://gitee.com/');
|
|
||||||
|
|
||||||
function goto() {
|
|
||||||
window.open(url.value);
|
|
||||||
}
|
|
||||||
</script>
|
|
@ -81,7 +81,7 @@ export const usePermissionStore = defineStore('permission', () => {
|
|||||||
route.children.forEach((child) => {
|
route.children.forEach((child) => {
|
||||||
if (child.path === 'purchaseOrderConfirm') {
|
if (child.path === 'purchaseOrderConfirm') {
|
||||||
if (useUserStore().roles.includes('gengdan')) {
|
if (useUserStore().roles.includes('gengdan')) {
|
||||||
child.meta.title = '创建半成品转发';
|
child.meta.title = '创建发货';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -253,6 +253,10 @@ export const formatText = (text) => {
|
|||||||
return text.replace(/\n/g, '<br>');
|
return text.replace(/\n/g, '<br>');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const deepClone = <T>(obj: T): T => {
|
||||||
|
return JSON.parse(JSON.stringify(obj));
|
||||||
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
handleTree
|
handleTree
|
||||||
};
|
};
|
||||||
|
@ -16,9 +16,9 @@
|
|||||||
<el-form-item label="店铺名称" prop="storeName">
|
<el-form-item label="店铺名称" prop="storeName">
|
||||||
<el-input v-model="queryParams.storeName" placeholder="请输入店铺名称" clearable @keyup.enter="handleQuery" />
|
<el-input v-model="queryParams.storeName" placeholder="请输入店铺名称" clearable @keyup.enter="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="亚马逊店铺ID" prop="sellerId">-->
|
<el-form-item label="亚马逊店铺ID" prop="sellerId">
|
||||||
<!-- <el-input v-model="queryParams.sellerId" placeholder="请输入亚马逊店铺ID" clearable @keyup.enter="handleQuery" />-->
|
<el-input v-model="queryParams.sellerId" placeholder="请输入亚马逊店铺ID" clearable @keyup.enter="handleQuery" />
|
||||||
<!-- </el-form-item>-->
|
</el-form-item>
|
||||||
<!-- <el-form-item label="店铺账户" prop="accountName">-->
|
<!-- <el-form-item label="店铺账户" prop="accountName">-->
|
||||||
<!-- <el-input v-model="queryParams.accountName" placeholder="请输入店铺账户名称" clearable @keyup.enter="handleQuery" />-->
|
<!-- <el-input v-model="queryParams.accountName" placeholder="请输入店铺账户名称" clearable @keyup.enter="handleQuery" />-->
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
|
@ -307,7 +307,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="quoteForm.type === 'general'" label="基础价格" prop="price" required>
|
<el-form-item v-if="quoteForm.type === 'general'" label="基础价格" prop="price" required>
|
||||||
<div class="kgprice">
|
<div class="kgprice">
|
||||||
<el-input-number v-model="quoteForm.price" :precision="2" :step="0.1" :min="0" :max="100">
|
<el-input-number controls-position="right" v-model="quoteForm.price" :precision="2" :step="0.1" :min="0" :max="10000">
|
||||||
<template #suffix>
|
<template #suffix>
|
||||||
<span>元/kg</span>
|
<span>元/kg</span>
|
||||||
</template>
|
</template>
|
||||||
@ -316,7 +316,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-else label="货件总价" prop="totalPrice" required>
|
<el-form-item v-else label="货件总价" prop="totalPrice" required>
|
||||||
<div class="kgprice">
|
<div class="kgprice">
|
||||||
<el-input-number v-model="quoteForm.totalPrice" :precision="2" :step="0.1" :min="0" :max="100">
|
<el-input-number controls-position="right" v-model="quoteForm.totalPrice" :precision="2" :step="0.1" :min="0" :max="10000000">
|
||||||
<template #suffix>
|
<template #suffix>
|
||||||
<span>元</span>
|
<span>元</span>
|
||||||
</template>
|
</template>
|
||||||
@ -331,13 +331,13 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
<el-form-item label="时效" prop="leadTime">
|
<el-form-item label="时效" prop="leadTime">
|
||||||
<div class="kgprice">
|
<div class="kgprice">
|
||||||
<el-input-number v-model="quoteForm.minLeadTime" :min="1" :max="100">
|
<el-input-number controls-position="right" v-model="quoteForm.minLeadTime" :min="1" :max="10000">
|
||||||
<template #suffix>
|
<template #suffix>
|
||||||
<span>天</span>
|
<span>天</span>
|
||||||
</template>
|
</template>
|
||||||
</el-input-number>
|
</el-input-number>
|
||||||
到
|
到
|
||||||
<el-input-number v-model="quoteForm.leadTime" :min="1" :max="10000">
|
<el-input-number controls-position="right" v-model="quoteForm.leadTime" :min="1" :max="10000">
|
||||||
<template #suffix>
|
<template #suffix>
|
||||||
<span>天</span>
|
<span>天</span>
|
||||||
</template>
|
</template>
|
||||||
@ -345,7 +345,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="附加费" prop="surcharge">
|
<el-form-item label="附加费" prop="surcharge">
|
||||||
<el-input-number v-model="quoteForm.surcharge" :precision="2" :step="0.1" :min="0" :max="1000000">
|
<el-input-number controls-position="right" v-model="quoteForm.surcharge" :precision="2" :step="0.1" :min="0" :max="1000000">
|
||||||
<template #suffix>
|
<template #suffix>
|
||||||
<span>元</span>
|
<span>元</span>
|
||||||
</template>
|
</template>
|
||||||
@ -651,8 +651,6 @@ const submitQuoteForm = async () => {
|
|||||||
console.log('submitQuoteForm', quoteForm.value);
|
console.log('submitQuoteForm', quoteForm.value);
|
||||||
logisticsQuoteFormRef.value?.validate(async (valid: boolean) => {
|
logisticsQuoteFormRef.value?.validate(async (valid: boolean) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
console.log('quoteForm', quoteForm.value);
|
|
||||||
return;
|
|
||||||
const res = await checkPriceQuoteByBo(quoteForm.value);
|
const res = await checkPriceQuoteByBo(quoteForm.value);
|
||||||
console.log('submitQuoteForm', res);
|
console.log('submitQuoteForm', res);
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
|
@ -28,16 +28,16 @@
|
|||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<template #header>
|
<template #header>
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<!-- <el-col :span="1.5">-->
|
||||||
<el-button type="primary" plain icon="RefreshRight" @click="handleOrderAdd" v-hasPermi="['amz:purchaseOrder:add']">
|
<!-- <el-button type="primary" plain icon="RefreshRight" @click="handleOrderAdd" v-hasPermi="['amz:purchaseOrder:add']">-->
|
||||||
同步今天的采购单
|
<!-- 同步今天的采购单-->
|
||||||
</el-button>
|
<!-- </el-button>-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
<el-col :span="1.5">
|
<!-- <el-col :span="1.5">-->
|
||||||
<el-button type="success" plain icon="Refresh" @click="handleOrderUpdate()" v-hasPermi="['amz:purchaseOrder:edit']"
|
<!-- <el-button type="success" plain icon="Refresh" @click="handleOrderUpdate()" v-hasPermi="['amz:purchaseOrder:edit']"-->
|
||||||
>更新采购单状态
|
<!-- >更新采购单状态-->
|
||||||
</el-button>
|
<!-- </el-button>-->
|
||||||
</el-col>
|
<!-- </el-col>-->
|
||||||
<!-- <el-col :span="1.5">-->
|
<!-- <el-col :span="1.5">-->
|
||||||
<!-- <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['amz:purchaseOrder:remove']"-->
|
<!-- <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['amz:purchaseOrder:remove']"-->
|
||||||
<!-- >删除-->
|
<!-- >删除-->
|
||||||
@ -101,6 +101,11 @@
|
|||||||
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
||||||
<!-- <el-table-column label="自定义单号" align="center" prop="customOrderSn" />-->
|
<!-- <el-table-column label="自定义单号" align="center" prop="customOrderSn" />-->
|
||||||
<!-- <el-table-column label="供应商ID" align="center" prop="supplierId" />-->
|
<!-- <el-table-column label="供应商ID" align="center" prop="supplierId" />-->
|
||||||
|
<el-table-column label="订单类型" align="center" prop="sendStatus">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :options="send_order_type" :value="scope.row.type" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="供应商名称" align="center" prop="supplierName" />
|
<el-table-column label="供应商名称" align="center" prop="supplierName" />
|
||||||
<el-table-column label="店铺名称" align="center" prop="storeName" />
|
<el-table-column label="店铺名称" align="center" prop="storeName" />
|
||||||
<!-- <el-table-column label="采购员ID" align="center" prop="optUid" />-->
|
<!-- <el-table-column label="采购员ID" align="center" prop="optUid" />-->
|
||||||
@ -401,6 +406,8 @@ const { vendor_order_status } = toRefs<any>(proxy?.useDict('vendor_order_status'
|
|||||||
|
|
||||||
const { purchase_order_status } = toRefs<any>(proxy?.useDict('purchase_order_status'));
|
const { purchase_order_status } = toRefs<any>(proxy?.useDict('purchase_order_status'));
|
||||||
|
|
||||||
|
const { send_order_type } = toRefs<any>(proxy?.useDict('send_order_type'));
|
||||||
|
|
||||||
const purchaseOrderList = ref<PurchaseOrderVO[]>([]);
|
const purchaseOrderList = ref<PurchaseOrderVO[]>([]);
|
||||||
const buttonLoading = ref(false);
|
const buttonLoading = ref(false);
|
||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
@ -743,70 +750,21 @@ const handleExport = () => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const route = useRoute();
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => route.query.orderSn,
|
||||||
|
(newOrderSn) => {
|
||||||
|
if (typeof newOrderSn === 'string' && newOrderSn) {
|
||||||
|
queryParams.value.orderSn = newOrderSn;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ immediate: true } // 立即执行一次
|
||||||
|
);
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped></style>
|
||||||
/* 展开行容器 */
|
|
||||||
:deep(.el-table__expanded-cell) {
|
|
||||||
background: #f5fbfd !important;
|
|
||||||
padding: 0 !important;
|
|
||||||
border-bottom: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 内嵌表格容器 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table {
|
|
||||||
--el-table-bg-color: #ebf3ff !important;
|
|
||||||
--el-table-tr-bg-color: #f5fbfd !important;
|
|
||||||
--el-table-header-bg-color: #cfe2ff !important; /* 表头变量 */
|
|
||||||
--el-table-header-text-color: #2c3e50 !important; /* 新增文字颜色 */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表格主体容器 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__body-wrapper {
|
|
||||||
background: #ebf3ff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表头单元格精准控制 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header th {
|
|
||||||
background-color: #cfe2ff !important; /* 覆盖默认背景 */
|
|
||||||
border-bottom: 2px solid #a6c5ff !important; /* 表头下边框 */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表头文字样式 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .cell {
|
|
||||||
color: #1a2b3c !important;
|
|
||||||
font-weight: 600; /* 加粗字体 */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 单元格背景 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__body tr td {
|
|
||||||
background-color: transparent !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 消除卡片干扰 */
|
|
||||||
:deep(.el-card) {
|
|
||||||
background: transparent !important;
|
|
||||||
border: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 内嵌表格hover效果 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__body tr:hover > td {
|
|
||||||
background-color: #ffffff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表头hover状态 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header tr:hover th {
|
|
||||||
background-color: #b6d4ff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表头排序按钮颜色 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .sort-caret.ascending {
|
|
||||||
border-bottom-color: #1a2b3c;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .sort-caret.descending {
|
|
||||||
border-top-color: #1a2b3c;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
@ -79,6 +79,8 @@
|
|||||||
<!-- <el-table-column label="计划采购量" align="center" prop="quantityPlan" />-->
|
<!-- <el-table-column label="计划采购量" align="center" prop="quantityPlan" />-->
|
||||||
|
|
||||||
<el-table-column label="实际采购量" align="center" prop="quantityReal" width="90px" />
|
<el-table-column label="实际采购量" align="center" prop="quantityReal" width="90px" />
|
||||||
|
<el-table-column label="已下单数量" align="center" prop="quantityShipped" />
|
||||||
|
<el-table-column label="剩余数量" align="center" prop="quantityLeft" />
|
||||||
<el-table-column label="半成品可发货数量" align="center" prop="sfgAvlQty" width="100px" />
|
<el-table-column label="半成品可发货数量" align="center" prop="sfgAvlQty" width="100px" />
|
||||||
|
|
||||||
<!-- <el-table-column label="到货入库量" align="center" prop="quantityEntry" />-->
|
<!-- <el-table-column label="到货入库量" align="center" prop="quantityEntry" />-->
|
||||||
@ -136,6 +138,7 @@
|
|||||||
@click="handleForward(scope.row, props.row)"
|
@click="handleForward(scope.row, props.row)"
|
||||||
v-hasRoles="['superadmin', 'gengdan']"
|
v-hasRoles="['superadmin', 'gengdan']"
|
||||||
v-hasPermi="['amz:purchaseOrder:remove']"
|
v-hasPermi="['amz:purchaseOrder:remove']"
|
||||||
|
v-if="props.row.type == 'com'"
|
||||||
>
|
>
|
||||||
半成品转发
|
半成品转发
|
||||||
</el-button>
|
</el-button>
|
||||||
@ -154,8 +157,9 @@
|
|||||||
link
|
link
|
||||||
type="primary"
|
type="primary"
|
||||||
@click="handleShip(scope.row, props.row)"
|
@click="handleShip(scope.row, props.row)"
|
||||||
v-hasRoles="['superadmin', 'gongying']"
|
v-hasRoles="['superadmin', 'gengdan']"
|
||||||
v-hasPermi="['amz:purchaseOrder:remove']"
|
v-hasPermi="['amz:purchaseOrder:remove']"
|
||||||
|
v-if="props.row.type == 'ord'"
|
||||||
>
|
>
|
||||||
成品发货
|
成品发货
|
||||||
</el-button>
|
</el-button>
|
||||||
@ -167,6 +171,12 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
||||||
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
||||||
|
|
||||||
|
<el-table-column label="订单类型" align="center" prop="sendStatus">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :options="send_order_type" :value="scope.row.type" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<!-- <el-table-column label="自定义单号" align="center" prop="customOrderSn" />-->
|
<!-- <el-table-column label="自定义单号" align="center" prop="customOrderSn" />-->
|
||||||
<!-- <el-table-column label="供应商ID" align="center" prop="supplierId" />-->
|
<!-- <el-table-column label="供应商ID" align="center" prop="supplierId" />-->
|
||||||
<el-table-column label="供应商名称" align="center" prop="supplierName" />
|
<el-table-column label="供应商名称" align="center" prop="supplierName" />
|
||||||
@ -384,7 +394,7 @@
|
|||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button :loading="buttonLoading" type="primary" @click="submitDetailForm">确 定</el-button>
|
<el-button :loading="buttonLoading" type="primary" @click="submitDetailForm">确 定</el-button>
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="detaildialog.visible = false">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -525,106 +535,91 @@
|
|||||||
|
|
||||||
<el-dialog :title="shipDialog.title" v-model="shipDialog.visible" width="1000px" append-to-body>
|
<el-dialog :title="shipDialog.title" v-model="shipDialog.visible" width="1000px" append-to-body>
|
||||||
<el-form ref="sendOrderFormRef" :model="shipForm" :rules="rules3" label-width="120px">
|
<el-form ref="sendOrderFormRef" :model="shipForm" :rules="rules3" label-width="120px">
|
||||||
<!-- <el-form-item label="主键ID" prop="id">-->
|
|
||||||
<!-- <el-input v-model="form.id" placeholder="请输入主键ID" />-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<el-form-item label="采购单号" prop="orderSn">
|
<el-form-item label="采购单号" prop="orderSn">
|
||||||
<el-input v-model="shipForm.orderSn" placeholder="请输入采购单号" />
|
<el-input v-model="shipForm.orderSn" placeholder="请输入采购单号" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="发货日期" prop="sendDate">-->
|
|
||||||
<!-- <el-date-picker clearable v-model="form.sendDate" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择发货日期">-->
|
|
||||||
<!-- </el-date-picker>-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<!-- <el-form-item label="采购店铺" prop="storeName">-->
|
|
||||||
<!-- <el-input v-model="form.storeName" placeholder="请输入采购店铺" />-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<el-form-item label="产品名称" prop="productName">
|
<el-form-item label="产品名称" prop="productName">
|
||||||
<el-input v-model="shipForm.productName" placeholder="请输入产品名称" />
|
<el-input v-model="shipForm.productName" placeholder="请输入产品名称" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="发货总数" prop="quantitySend">
|
<el-form-item label="发货总数" prop="quantitySend">
|
||||||
<el-input v-model="shipForm.quantitySend" placeholder="请输入发货数量" />
|
<el-input-number :min="1" :max="quantity" controls-position="right" v-model="shipForm.quantitySend" placeholder="发货总数" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="总箱数" prop="boxCount">
|
|
||||||
<el-input v-model="shipForm.boxCount" placeholder="请输入总箱数" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-if="shipForm.quantitySend > 0 && shipForm.boxCount > 0" label="箱子明细" prop="quantityPerBox">
|
|
||||||
<div class="max-w-800px">
|
|
||||||
<div v-for="(group, index) in groups" :key="index" class="flex gap-12px mb-16px items-center">
|
|
||||||
<el-input
|
|
||||||
v-model.number="groups[index].boxCount"
|
|
||||||
placeholder="箱子数量"
|
|
||||||
type="number"
|
|
||||||
min="0"
|
|
||||||
class="flex-1"
|
|
||||||
@input="validateInput(index, 'boxCount')"
|
|
||||||
/>
|
|
||||||
X
|
|
||||||
<el-input
|
|
||||||
v-model.number="groups[index].itemCount"
|
|
||||||
placeholder="每箱个数"
|
|
||||||
type="number"
|
|
||||||
min="0"
|
|
||||||
class="flex-1"
|
|
||||||
@input="validateInput(index, 'itemCount')"
|
|
||||||
/>
|
|
||||||
<el-input v-model.number="groups[index].lengthPerBox" placeholder="长(cm)" type="number" min="0" class="flex-1" />
|
|
||||||
<el-input v-model.number="groups[index].widthPerBox" placeholder="宽(cm)" type="number" min="0" class="flex-1" />
|
|
||||||
<el-input v-model.number="groups[index].heightPerBox" placeholder="高(cm)" type="number" min="0" class="flex-1" />
|
|
||||||
<el-input v-model.number="groups[index].weightPerBox" placeholder="单箱重量(kg)" type="number" min="0" class="flex-1" />
|
|
||||||
|
|
||||||
<el-button v-if="index > 0" @click="removeGroup(index)" type="danger" :icon="Close" circle size="small" />
|
|
||||||
<div v-else class="w-8 h-8"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="mb-16px text-left">
|
|
||||||
<span :class="['mr-8px', Number(totalNum) === Number(shipForm.quantitySend) ? 'text-green-500' : 'text-red-500']">
|
|
||||||
当前总量:{{ totalNum }}/{{ shipForm.quantitySend }}
|
|
||||||
</span>
|
|
||||||
<el-button @click="addGroup" type="primary" :icon="Plus" :disabled="totalNum >= shipForm.quantitySend"> 添加一组 </el-button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
<!-- <el-form-item label="箱子尺寸" prop="boxDimensions">-->
|
|
||||||
<!-- <el-input v-model="form.boxDimensions" placeholder="请输入箱子尺寸" />-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<!-- <el-form-item label="箱子尺寸" prop="boxDimensions">-->
|
|
||||||
<!-- <el-row>-->
|
|
||||||
<!-- <el-col :span="8">-->
|
|
||||||
<!-- <el-input v-model="plength" placeholder="请输入长" />-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<!-- <el-col :span="8">-->
|
|
||||||
<!-- <el-input v-model="pwidth" placeholder="请输入宽" />-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<!-- <el-col :span="8">-->
|
|
||||||
<!-- <el-input v-model="pheight" placeholder="请输入高" />-->
|
|
||||||
<!-- </el-col>-->
|
|
||||||
<!-- </el-row>-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<el-form-item label="总重量" prop="weightPerBox">
|
|
||||||
<!-- <el-input v-model="totalWeight" placeholder="请输入总重量" disabled />-->
|
|
||||||
<el-input-number v-model="totalWeight" :min="0" :max="100000" disabled>
|
|
||||||
<template #suffix>
|
|
||||||
<span>kg</span>
|
|
||||||
</template>
|
|
||||||
</el-input-number>
|
|
||||||
</el-form-item>
|
|
||||||
<!-- <el-form-item label="实际采购店铺" prop="realStoreName">-->
|
|
||||||
<!-- <el-input v-model="form.realStoreName" placeholder="请输入实际采购店铺" />-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
<!-- <el-form-item label="发货状态" prop="sendStatus">-->
|
|
||||||
<!-- <el-select v-model="form.sendStatus" placeholder="请选择发货状态">-->
|
|
||||||
<!-- <el-option v-for="dict in send_status" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>-->
|
|
||||||
<!-- </el-select>-->
|
|
||||||
<!-- </el-form-item>-->
|
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button :loading="buttonLoading" type="primary" @click="shipSubmitForm">提 交</el-button>
|
<el-button :loading="buttonLoading" type="primary" @click="shipSubmitForm">提 交</el-button>
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="shipDialog.visible = false">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
<!-- <el-dialog :title="shipDialog.title" v-model="shipDialog.visible" width="1000px" append-to-body>-->
|
||||||
|
<!-- <el-form ref="sendOrderFormRef" :model="shipForm" :rules="rules3" label-width="120px">-->
|
||||||
|
<!-- <el-form-item label="采购单号" prop="orderSn">-->
|
||||||
|
<!-- <el-input v-model="shipForm.orderSn" placeholder="请输入采购单号" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- <el-form-item label="产品名称" prop="productName">-->
|
||||||
|
<!-- <el-input v-model="shipForm.productName" placeholder="请输入产品名称" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- <el-form-item label="发货总数" prop="quantitySend">-->
|
||||||
|
<!-- <el-input v-model="shipForm.quantitySend" placeholder="请输入发货数量" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- <el-form-item label="总箱数" prop="boxCount">-->
|
||||||
|
<!-- <el-input v-model="shipForm.boxCount" placeholder="请输入总箱数" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- <el-form-item v-if="shipForm.quantitySend > 0 && shipForm.boxCount > 0" label="箱子明细" prop="quantityPerBox">-->
|
||||||
|
<!-- <div class="max-w-800px">-->
|
||||||
|
<!-- <div v-for="(group, index) in groups" :key="index" class="flex gap-12px mb-16px items-center">-->
|
||||||
|
<!-- <el-input-->
|
||||||
|
<!-- v-model.number="groups[index].cartonCount"-->
|
||||||
|
<!-- placeholder="箱子数量"-->
|
||||||
|
<!-- type="number"-->
|
||||||
|
<!-- min="0"-->
|
||||||
|
<!-- class="flex-1"-->
|
||||||
|
<!-- @input="validateInput(index, 'boxCount')"-->
|
||||||
|
<!-- />-->
|
||||||
|
<!-- X-->
|
||||||
|
<!-- <el-input-->
|
||||||
|
<!-- v-model.number="groups[index].piecesPerCarton"-->
|
||||||
|
<!-- placeholder="每箱个数"-->
|
||||||
|
<!-- type="number"-->
|
||||||
|
<!-- min="0"-->
|
||||||
|
<!-- class="flex-1"-->
|
||||||
|
<!-- @input="validateInput(index, 'itemCount')"-->
|
||||||
|
<!-- />-->
|
||||||
|
<!-- <el-input v-model.number="groups[index].length" placeholder="长(cm)" type="number" min="0" class="flex-1" />-->
|
||||||
|
<!-- <el-input v-model.number="groups[index].width" placeholder="宽(cm)" type="number" min="0" class="flex-1" />-->
|
||||||
|
<!-- <el-input v-model.number="groups[index].height" placeholder="高(cm)" type="number" min="0" class="flex-1" />-->
|
||||||
|
<!-- <el-input v-model.number="groups[index].weight" placeholder="单箱重量(kg)" type="number" min="0" class="flex-1" />-->
|
||||||
|
|
||||||
|
<!-- <el-button v-if="index > 0" @click="removeGroup(index)" type="danger" :icon="Close" circle size="small" />-->
|
||||||
|
<!-- <div v-else class="w-8 h-8"></div>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
|
||||||
|
<!-- <div class="mb-16px text-left">-->
|
||||||
|
<!-- <span :class="['mr-8px', Number(totalNum) === Number(shipForm.quantitySend) ? 'text-green-500' : 'text-red-500']">-->
|
||||||
|
<!-- 当前总量:{{ totalNum }}/{{ shipForm.quantitySend }}-->
|
||||||
|
<!-- </span>-->
|
||||||
|
<!-- <el-button @click="addGroup" type="primary" :icon="Plus" :disabled="totalNum >= shipForm.quantitySend"> 添加一组 </el-button>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- <el-form-item label="总重量" prop="weightPerBox">-->
|
||||||
|
<!-- <!– <el-input v-model="totalWeight" placeholder="请输入总重量" disabled />–>-->
|
||||||
|
<!-- <el-input-number v-model="totalWeight" :min="0" :max="100000" disabled>-->
|
||||||
|
<!-- <template #suffix>-->
|
||||||
|
<!-- <span>kg</span>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-input-number>-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- </el-form>-->
|
||||||
|
<!-- <template #footer>-->
|
||||||
|
<!-- <div class="dialog-footer">-->
|
||||||
|
<!-- <el-button :loading="buttonLoading" type="primary" @click="shipSubmitForm">提 交</el-button>-->
|
||||||
|
<!-- <el-button @click="cancel">取 消</el-button>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-dialog>-->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -638,12 +633,17 @@ import { updateOrderItemDetail } from '@/api/amz/purchaseOrderItem';
|
|||||||
import { SendOrderForm } from '@/api/amz/sendOrder/types';
|
import { SendOrderForm } from '@/api/amz/sendOrder/types';
|
||||||
import { Close, Plus } from '@element-plus/icons-vue';
|
import { Close, Plus } from '@element-plus/icons-vue';
|
||||||
import { addSendOrder, updateSendOrder } from '@/api/amz/sendOrder';
|
import { addSendOrder, updateSendOrder } from '@/api/amz/sendOrder';
|
||||||
|
import { PackingSpecsVO } from '@/api/amz/packingSpecs/types';
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
const { vendor_order_status } = toRefs<any>(proxy?.useDict('vendor_order_status'));
|
const { vendor_order_status } = toRefs<any>(proxy?.useDict('vendor_order_status'));
|
||||||
const { sys_yes_no } = toRefs<any>(proxy?.useDict('sys_yes_no'));
|
const { sys_yes_no } = toRefs<any>(proxy?.useDict('sys_yes_no'));
|
||||||
const { forward_status } = toRefs<any>(proxy?.useDict('forward_status'));
|
const { forward_status } = toRefs<any>(proxy?.useDict('forward_status'));
|
||||||
|
|
||||||
|
const { send_order_type } = toRefs<any>(proxy?.useDict('send_order_type'));
|
||||||
|
|
||||||
|
const route = useRoute();
|
||||||
|
|
||||||
const plength = ref<string | number>();
|
const plength = ref<string | number>();
|
||||||
const pheight = ref<string | number>();
|
const pheight = ref<string | number>();
|
||||||
const pwidth = ref<string | number>();
|
const pwidth = ref<string | number>();
|
||||||
@ -904,34 +904,19 @@ const data = reactive<PageData<PurchaseOrderForm, PurchaseOrderQuery>>({
|
|||||||
// sendDate: [{ required: true, message: '发货日期不能为空', trigger: 'blur' }],
|
// sendDate: [{ required: true, message: '发货日期不能为空', trigger: 'blur' }],
|
||||||
storeName: [{ required: true, message: '采购店铺不能为空', trigger: 'blur' }],
|
storeName: [{ required: true, message: '采购店铺不能为空', trigger: 'blur' }],
|
||||||
productName: [{ required: true, message: '产品名称不能为空', trigger: 'blur' }],
|
productName: [{ required: true, message: '产品名称不能为空', trigger: 'blur' }],
|
||||||
quantitySend: [{ required: true, message: '发货数量不能为空', trigger: 'blur' }],
|
quantitySend: [{ required: true, message: '发货数量不能为空', trigger: 'blur' }]
|
||||||
quantityPerBox: [
|
// quantityPerBox: [
|
||||||
{
|
|
||||||
validator: (rule, value, callback) => {
|
|
||||||
if (totalBoxCount.value != shipForm.value.boxCount) {
|
|
||||||
console.log('totalBoxCount.value', totalBoxCount.value);
|
|
||||||
console.log('form.value.boxCount', shipForm.value.boxCount);
|
|
||||||
callback(new Error('明细箱数和总箱数不匹配,请调整'));
|
|
||||||
}
|
|
||||||
// 总量提示
|
|
||||||
if (totalNum.value > shipForm.value.quantitySend) {
|
|
||||||
const exceed = totalNum.value - shipForm.value.quantitySend;
|
|
||||||
callback(new Error('总量超出 ' + exceed + ',请调整'));
|
|
||||||
} else {
|
|
||||||
callback();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
trigger: 'blur'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
boxCount: [{ required: true, message: '箱数不能为空', trigger: 'blur' }],
|
|
||||||
// boxDimensions: [
|
|
||||||
// {
|
// {
|
||||||
// required: true,
|
|
||||||
// message: '长宽高都不能为空',
|
|
||||||
// validator: (rule, value, callback) => {
|
// validator: (rule, value, callback) => {
|
||||||
// if (!plength.value || !pwidth.value || !pheight.value) {
|
// if (totalBoxCount.value != shipForm.value.boxCount) {
|
||||||
// callback(new Error('长宽高都不能为空'));
|
// console.log('totalBoxCount.value', totalBoxCount.value);
|
||||||
|
// console.log('form.value.boxCount', shipForm.value.boxCount);
|
||||||
|
// callback(new Error('明细箱数和总箱数不匹配,请调整'));
|
||||||
|
// }
|
||||||
|
// // 总量提示
|
||||||
|
// if (totalNum.value > shipForm.value.quantitySend) {
|
||||||
|
// const exceed = totalNum.value - shipForm.value.quantitySend;
|
||||||
|
// callback(new Error('总量超出 ' + exceed + ',请调整'));
|
||||||
// } else {
|
// } else {
|
||||||
// callback();
|
// callback();
|
||||||
// }
|
// }
|
||||||
@ -939,9 +924,24 @@ const data = reactive<PageData<PurchaseOrderForm, PurchaseOrderQuery>>({
|
|||||||
// trigger: 'blur'
|
// trigger: 'blur'
|
||||||
// }
|
// }
|
||||||
// ],
|
// ],
|
||||||
weightPerBox: [{ required: true, message: '总重量不能为空', trigger: 'blur' }],
|
// boxCount: [{ required: true, message: '箱数不能为空', trigger: 'blur' }],
|
||||||
realStoreName: [{ required: true, message: '实际采购店铺不能为空', trigger: 'blur' }],
|
// // boxDimensions: [
|
||||||
sendStatus: [{ required: true, message: '发货状态不能为空', trigger: 'change' }]
|
// // {
|
||||||
|
// // required: true,
|
||||||
|
// // message: '长宽高都不能为空',
|
||||||
|
// // validator: (rule, value, callback) => {
|
||||||
|
// // if (!plength.value || !pwidth.value || !pheight.value) {
|
||||||
|
// // callback(new Error('长宽高都不能为空'));
|
||||||
|
// // } else {
|
||||||
|
// // callback();
|
||||||
|
// // }
|
||||||
|
// // },
|
||||||
|
// // trigger: 'blur'
|
||||||
|
// // }
|
||||||
|
// // ],
|
||||||
|
// weightPerBox: [{ required: true, message: '总重量不能为空', trigger: 'blur' }],
|
||||||
|
// realStoreName: [{ required: true, message: '实际采购店铺不能为空', trigger: 'blur' }],
|
||||||
|
// sendStatus: [{ required: true, message: '发货状态不能为空', trigger: 'change' }]
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1196,6 +1196,9 @@ const handleForward = async (row?, rowM?) => {
|
|||||||
// forwardForm.value.trackerId = row?.trackerId;
|
// forwardForm.value.trackerId = row?.trackerId;
|
||||||
// forwardForm.value.fwdStatus = row?.fwdStatus;
|
// forwardForm.value.fwdStatus = row?.fwdStatus;
|
||||||
// forwardForm.value.sendTime = row?.sendTime;
|
// forwardForm.value.sendTime = row?.sendTime;
|
||||||
|
forwardForm.value.quantitySend = null;
|
||||||
|
forwardForm.value.inSupplierName = null;
|
||||||
|
forwardForm.value.inOrderSn = null;
|
||||||
|
|
||||||
console.log('maxQuality', maxQuality.value);
|
console.log('maxQuality', maxQuality.value);
|
||||||
console.log('row', row);
|
console.log('row', row);
|
||||||
@ -1205,6 +1208,8 @@ const handleForward = async (row?, rowM?) => {
|
|||||||
forwardDialog.title = '添加转发数据';
|
forwardDialog.title = '添加转发数据';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const quantity = ref(0);
|
||||||
|
|
||||||
const handleShip = async (row?, rowM?) => {
|
const handleShip = async (row?, rowM?) => {
|
||||||
let isExist = false;
|
let isExist = false;
|
||||||
rowM.forwardList?.forEach((item) => {
|
rowM.forwardList?.forEach((item) => {
|
||||||
@ -1217,12 +1222,14 @@ const handleShip = async (row?, rowM?) => {
|
|||||||
proxy?.$modal.msgError('该订单已有转发订单,无法进行成品发货!');
|
proxy?.$modal.msgError('该订单已有转发订单,无法进行成品发货!');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
quantity.value = row?.quantityLeft;
|
||||||
shipForm.value.orderSn = row?.orderSn;
|
shipForm.value.orderSn = row?.orderSn;
|
||||||
shipForm.value.productName = row?.productName;
|
shipForm.value.productName = row?.productName;
|
||||||
shipForm.value.quantitySend = row?.quantityReal;
|
shipForm.value.quantitySend = row?.quantityReal;
|
||||||
shipForm.value.storeName = rowM?.storeName;
|
shipForm.value.storeName = rowM?.storeName;
|
||||||
shipForm.value.orderDetailId = row?.id;
|
shipForm.value.orderDetailId = row?.id;
|
||||||
|
shipForm.value.sendName = rowM?.supplierName;
|
||||||
|
shipForm.value.sku = row?.sku;
|
||||||
shipDialog.visible = true;
|
shipDialog.visible = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1312,37 +1319,40 @@ const handleExport = () => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const groups = ref([
|
const groups = ref<PackingSpecsVO[]>([
|
||||||
{
|
{
|
||||||
boxCount: null,
|
id: undefined,
|
||||||
itemCount: null,
|
sendOrderId: undefined,
|
||||||
lengthPerBox: null,
|
specName: undefined,
|
||||||
widthPerBox: null,
|
cartonCount: undefined,
|
||||||
heightPerBox: null,
|
piecesPerCarton: undefined,
|
||||||
weightPerBox: null
|
length: undefined,
|
||||||
|
width: undefined,
|
||||||
|
height: undefined,
|
||||||
|
weight: undefined
|
||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// 计算所有输入值的总和
|
// 计算所有输入值的总和
|
||||||
const totalNum = computed(() => {
|
const totalNum = computed(() => {
|
||||||
return groups.value.reduce((sum, group) => {
|
return groups.value.reduce((sum, group) => {
|
||||||
const box = Number(group.boxCount) || 0;
|
const box = Number(group.cartonCount) || 0;
|
||||||
const item = Number(group.itemCount) || 0;
|
const item = Number(group.piecesPerCarton) || 0;
|
||||||
return sum + box * item;
|
return sum + box * item;
|
||||||
}, 0);
|
}, 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
const totalWeight = computed(() => {
|
const totalWeight = computed(() => {
|
||||||
return groups.value.reduce((sum, group) => {
|
return groups.value.reduce((sum, group) => {
|
||||||
const box = Number(group.boxCount) || 0;
|
const box = Number(group.cartonCount) || 0;
|
||||||
return sum + box * group.weightPerBox;
|
return sum + box * group.weight;
|
||||||
}, 0);
|
}, 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
// 计算所有输入值的总和
|
// 计算所有输入值的总和
|
||||||
const totalBoxCount = computed(() => {
|
const totalBoxCount = computed(() => {
|
||||||
return groups.value.reduce((sum, group) => {
|
return groups.value.reduce((sum, group) => {
|
||||||
const box = Number(group.boxCount) || 0;
|
const box = Number(group.cartonCount) || 0;
|
||||||
return sum + box;
|
return sum + box;
|
||||||
}, 0);
|
}, 0);
|
||||||
});
|
});
|
||||||
@ -1409,24 +1419,26 @@ const shipSubmitForm = () => {
|
|||||||
'规格' +
|
'规格' +
|
||||||
numberToLetter(index) +
|
numberToLetter(index) +
|
||||||
': ' +
|
': ' +
|
||||||
group.boxCount +
|
group.cartonCount +
|
||||||
'箱x' +
|
'箱x' +
|
||||||
group.itemCount +
|
group.piecesPerCarton +
|
||||||
'件,长' +
|
'件,长' +
|
||||||
group.lengthPerBox +
|
group.length +
|
||||||
'cm宽' +
|
'cm宽' +
|
||||||
group.widthPerBox +
|
group.width +
|
||||||
'cm高' +
|
'cm高' +
|
||||||
group.heightPerBox +
|
group.height +
|
||||||
'cm,' +
|
'cm,' +
|
||||||
'单箱重量' +
|
'单箱重量' +
|
||||||
group.weightPerBox +
|
group.weight +
|
||||||
'kg' +
|
'kg' +
|
||||||
'\n'
|
'\n'
|
||||||
);
|
);
|
||||||
}, '');
|
}, '');
|
||||||
console.log('sendText: ', sendText);
|
console.log('sendText: ', sendText);
|
||||||
shipForm.value.sendDetail = sendText;
|
shipForm.value.sendDetail = null;
|
||||||
|
shipForm.value.packingSpecsList = groups.value;
|
||||||
|
console.log('shipForm', shipForm.value);
|
||||||
sendOrderFormRef.value?.validate(async (valid: boolean) => {
|
sendOrderFormRef.value?.validate(async (valid: boolean) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
buttonLoading.value = true;
|
buttonLoading.value = true;
|
||||||
@ -1447,70 +1459,19 @@ function numberToLetter(num: number): string {
|
|||||||
return String.fromCharCode(num + 65);
|
return String.fromCharCode(num + 65);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => route.query.orderSn,
|
||||||
|
(newOrderSn) => {
|
||||||
|
if (typeof newOrderSn === 'string' && newOrderSn) {
|
||||||
|
queryParams.value.orderSn = newOrderSn;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ immediate: true } // 立即执行一次
|
||||||
|
);
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped></style>
|
||||||
/* 展开行容器 */
|
|
||||||
:deep(.el-table__expanded-cell) {
|
|
||||||
background: #f5fbfd !important;
|
|
||||||
padding: 0 !important;
|
|
||||||
border-bottom: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 内嵌表格容器 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table {
|
|
||||||
--el-table-bg-color: #ebf3ff !important;
|
|
||||||
--el-table-tr-bg-color: #f5fbfd !important;
|
|
||||||
--el-table-header-bg-color: #cfe2ff !important; /* 表头变量 */
|
|
||||||
--el-table-header-text-color: #2c3e50 !important; /* 新增文字颜色 */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表格主体容器 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__body-wrapper {
|
|
||||||
background: #ebf3ff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表头单元格精准控制 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header th {
|
|
||||||
background-color: #cfe2ff !important; /* 覆盖默认背景 */
|
|
||||||
border-bottom: 2px solid #a6c5ff !important; /* 表头下边框 */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表头文字样式 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .cell {
|
|
||||||
color: #1a2b3c !important;
|
|
||||||
font-weight: 600; /* 加粗字体 */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 单元格背景 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__body tr td {
|
|
||||||
background-color: transparent !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 消除卡片干扰 */
|
|
||||||
:deep(.el-card) {
|
|
||||||
background: transparent !important;
|
|
||||||
border: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 内嵌表格hover效果 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__body tr:hover > td {
|
|
||||||
background-color: #ffffff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表头hover状态 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header tr:hover th {
|
|
||||||
background-color: #b6d4ff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表头排序按钮颜色 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .sort-caret.ascending {
|
|
||||||
border-bottom-color: #1a2b3c;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .sort-caret.descending {
|
|
||||||
border-top-color: #1a2b3c;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
@ -141,6 +141,11 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
||||||
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
||||||
|
<el-table-column label="订单类型" align="center" prop="sendStatus">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :options="send_order_type" :value="scope.row.type" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<!-- <el-table-column label="自定义单号" align="center" prop="customOrderSn" />-->
|
<!-- <el-table-column label="自定义单号" align="center" prop="customOrderSn" />-->
|
||||||
<!-- <el-table-column label="供应商ID" align="center" prop="supplierId" />-->
|
<!-- <el-table-column label="供应商ID" align="center" prop="supplierId" />-->
|
||||||
<el-table-column label="供应商名称" align="center" prop="supplierName" />
|
<el-table-column label="供应商名称" align="center" prop="supplierName" />
|
||||||
@ -374,6 +379,7 @@ import { roleSelectPost } from '@/api/system/user';
|
|||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
const { vendor_order_status } = toRefs<any>(proxy?.useDict('vendor_order_status'));
|
const { vendor_order_status } = toRefs<any>(proxy?.useDict('vendor_order_status'));
|
||||||
const { forward_status } = toRefs<any>(proxy?.useDict('forward_status'));
|
const { forward_status } = toRefs<any>(proxy?.useDict('forward_status'));
|
||||||
|
const { send_order_type } = toRefs<any>(proxy?.useDict('send_order_type'));
|
||||||
|
|
||||||
const purchaseOrderList = ref<PurchaseOrderVO[]>([]);
|
const purchaseOrderList = ref<PurchaseOrderVO[]>([]);
|
||||||
const shipForwardList = ref<ShipForwardVO[]>([]);
|
const shipForwardList = ref<ShipForwardVO[]>([]);
|
||||||
@ -885,66 +891,4 @@ onMounted(() => {
|
|||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped></style>
|
||||||
/* 展开行容器 */
|
|
||||||
:deep(.el-table__expanded-cell) {
|
|
||||||
background: #f5fbfd !important;
|
|
||||||
padding: 0 !important;
|
|
||||||
border-bottom: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 内嵌表格容器 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table {
|
|
||||||
--el-table-bg-color: #ebf3ff !important;
|
|
||||||
--el-table-tr-bg-color: #f5fbfd !important;
|
|
||||||
--el-table-header-bg-color: #cfe2ff !important; /* 表头变量 */
|
|
||||||
--el-table-header-text-color: #2c3e50 !important; /* 新增文字颜色 */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表格主体容器 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__body-wrapper {
|
|
||||||
background: #ebf3ff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表头单元格精准控制 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header th {
|
|
||||||
background-color: #cfe2ff !important; /* 覆盖默认背景 */
|
|
||||||
border-bottom: 2px solid #a6c5ff !important; /* 表头下边框 */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表头文字样式 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .cell {
|
|
||||||
color: #1a2b3c !important;
|
|
||||||
font-weight: 600; /* 加粗字体 */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 单元格背景 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__body tr td {
|
|
||||||
background-color: transparent !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 消除卡片干扰 */
|
|
||||||
:deep(.el-card) {
|
|
||||||
background: transparent !important;
|
|
||||||
border: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 内嵌表格hover效果 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__body tr:hover > td {
|
|
||||||
background-color: #ffffff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表头hover状态 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header tr:hover th {
|
|
||||||
background-color: #b6d4ff !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 表头排序按钮颜色 */
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .sort-caret.ascending {
|
|
||||||
border-bottom-color: #1a2b3c;
|
|
||||||
}
|
|
||||||
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .sort-caret.descending {
|
|
||||||
border-top-color: #1a2b3c;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
649
src/views/amz/purchaseOutOrder/index.vue
Normal file
649
src/views/amz/purchaseOutOrder/index.vue
Normal file
@ -0,0 +1,649 @@
|
|||||||
|
<template>
|
||||||
|
<div class="p-2">
|
||||||
|
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||||
|
<div v-show="showSearch" class="mb-[10px]">
|
||||||
|
<el-card shadow="hover">
|
||||||
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="110px">
|
||||||
|
<el-form-item label="组合订单号" prop="orderSn">
|
||||||
|
<el-input v-model="queryParams.orderSn" placeholder="请输入组合订单号" clearable @keyup.enter="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="仓库名称" prop="warehouseName">
|
||||||
|
<el-input v-model="queryParams.warehouseName" placeholder="请输入仓库名称" clearable @keyup.enter="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="外包仓库名称" prop="outsourceWarehouseName">-->
|
||||||
|
<!-- <el-input v-model="queryParams.outsourceWarehouseName" placeholder="请输入外包仓库名称" clearable @keyup.enter="handleQuery" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item label="供应商名称" prop="supplierName">
|
||||||
|
<el-input v-model="queryParams.supplierName" placeholder="请输入供应商名称" clearable @keyup.enter="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="创建时间" prop="bizCreateTime">-->
|
||||||
|
<!-- <el-date-picker clearable v-model="queryParams.bizCreateTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择业务创建时间" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- <el-form-item label="状态文本描述" prop="statusText">-->
|
||||||
|
<!-- <el-input v-model="queryParams.statusText" placeholder="请输入状态文本描述" clearable @keyup.enter="handleQuery" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item label="创建人姓名" prop="createRealname">
|
||||||
|
<el-input v-model="queryParams.createRealname" placeholder="请输入创建人姓名" clearable @keyup.enter="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="PTP流水号" prop="ptpSn">-->
|
||||||
|
<!-- <el-input v-model="queryParams.ptpSn" placeholder="请输入PTP流水号" clearable @keyup.enter="handleQuery" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item label="产品名称" prop="productName">
|
||||||
|
<el-input v-model="queryParams.productName" placeholder="请输入产品名称" clearable @keyup.enter="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="SKU" prop="sku">
|
||||||
|
<el-input v-model="queryParams.sku" placeholder="请输入SKU" clearable @keyup.enter="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="FNSKU编码" prop="fnsku">-->
|
||||||
|
<!-- <el-input v-model="queryParams.fnsku" placeholder="请输入FNSKU编码" clearable @keyup.enter="handleQuery" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- <el-form-item label="外包数量" prop="outsourceQuantity">-->
|
||||||
|
<!-- <el-input v-model="queryParams.outsourceQuantity" placeholder="请输入外包数量" clearable @keyup.enter="handleQuery" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- <el-form-item label="实收数量" prop="receiveQuantity">-->
|
||||||
|
<!-- <el-input v-model="queryParams.receiveQuantity" placeholder="请输入实收数量" clearable @keyup.enter="handleQuery" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- <el-form-item label="预计到达时间" prop="expectArriveTime">-->
|
||||||
|
<!-- <el-input v-model="queryParams.expectArriveTime" placeholder="请输入预计到达时间" clearable @keyup.enter="handleQuery" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- <el-form-item label="MSKU编码列表 (数组存储)" prop="msku">-->
|
||||||
|
<!-- <el-input v-model="queryParams.msku" placeholder="请输入MSKU编码列表 (数组存储)" clearable @keyup.enter="handleQuery" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- <el-form-item label="关联计划单号列表 (数组存储)" prop="planSn">-->
|
||||||
|
<!-- <el-input v-model="queryParams.planSn" placeholder="请输入关联计划单号列表 (数组存储)" clearable @keyup.enter="handleQuery" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item label="店铺名称" prop="sellerName">
|
||||||
|
<el-input v-model="queryParams.sellerName" placeholder="请输入店铺名称" clearable @keyup.enter="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
|
|
||||||
|
<el-card shadow="never">
|
||||||
|
<template #header>
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<!-- <el-col :span="1.5">-->
|
||||||
|
<!-- <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['amz:purchaseOutOrder:add']"> 新增 </el-button>-->
|
||||||
|
<!-- </el-col>-->
|
||||||
|
<!-- <el-col :span="1.5">-->
|
||||||
|
<!-- <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['amz:purchaseOutOrder:edit']"-->
|
||||||
|
<!-- >修改-->
|
||||||
|
<!-- </el-button>-->
|
||||||
|
<!-- </el-col>-->
|
||||||
|
<!-- <el-col :span="1.5">-->
|
||||||
|
<!-- <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['amz:purchaseOutOrder:remove']"-->
|
||||||
|
<!-- >删除-->
|
||||||
|
<!-- </el-button>-->
|
||||||
|
<!-- </el-col>-->
|
||||||
|
<!-- <el-col :span="1.5">-->
|
||||||
|
<!-- <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['amz:purchaseOutOrder:export']">导出 </el-button>-->
|
||||||
|
<!-- </el-col>-->
|
||||||
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="purchaseOutOrderList" @selection-change="handleSelectionChange">
|
||||||
|
<el-table-column type="expand">
|
||||||
|
<template #default="props">
|
||||||
|
<el-card shadow="never">
|
||||||
|
<el-table v-loading="loading" :data="props.row.items" :border="true" size="small" :header-cell-style="{ fontSize: '10px' }">
|
||||||
|
<el-table-column label="采购单号" align="center" prop="order.orderSn">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-link type="primary" plain size="small" @click="goToOrderDetail(scope.row.item?.orderStatus, scope.row.order?.orderSn)">
|
||||||
|
{{ scope.row.order?.orderSn }}
|
||||||
|
</el-link>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="供应商名称" align="center" prop="order.supplierName" />
|
||||||
|
<el-table-column label="店铺名称" align="center" prop="order.storeName" />
|
||||||
|
<el-table-column label="产品名称" align="center" prop="productName" />
|
||||||
|
<el-table-column label="SKU" align="center" prop="sku" />
|
||||||
|
<el-table-column width="150" label="转发详情" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-tag v-if="props.row.supplierName === row.order?.supplierName" type="success">收货方</el-tag>
|
||||||
|
<el-tag v-else-if="!row.forwards || row.forwards.length === 0" type="warning">无转发信息</el-tag>
|
||||||
|
<el-button v-else type="primary" plain size="small" @click="openDetailDialog(row.forwards)"> 查看详情 </el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="下单时间" align="center" prop="order.orderTime" width="180">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.order?.orderTime, '{y}-{m}-{d}') }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column v-hasRoles="['superadmin', 'gengdan']" label="采购单状态" align="center" prop="status">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :options="purchase_order_status" :value="scope.row.order?.status" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="采购数量" align="center" prop="quantityReal" />
|
||||||
|
<el-table-column label="已下单数量" align="center" prop="quantityShipped" />
|
||||||
|
<el-table-column label="剩余数量" align="center" prop="quantityLeft" />
|
||||||
|
<el-table-column label="订单状态" align="center" prop="item.orderStatus">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :options="vendor_order_status" :value="scope.row.item?.orderStatus" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="备注" align="center" prop="order.remark" />
|
||||||
|
</el-table>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
<el-table-column label="组合订单号" align="center" prop="orderSn" />
|
||||||
|
<el-table-column label="仓库" align="center" prop="warehouseName" />
|
||||||
|
<!-- <el-table-column label="外包仓库名称" align="center" prop="outsourceWarehouseName" />-->
|
||||||
|
<el-table-column label="供应商名称" align="center" prop="supplierName" />
|
||||||
|
<el-table-column label="创建时间" align="center" prop="bizCreateTime" width="180">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.bizCreateTime, '{y}-{m}-{d} {h}:{mm}:{ss}') }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column label="状态文本描述" align="center" prop="statusText" />-->
|
||||||
|
<el-table-column label="创建人姓名" align="center" prop="createRealname" />
|
||||||
|
<!-- <el-table-column label="PTP流水号" align="center" prop="ptpSn" />-->
|
||||||
|
<el-table-column label="产品名称" align="center" prop="productName" />
|
||||||
|
<el-table-column label="SKU" align="center" prop="sku" />
|
||||||
|
<!-- <el-table-column label="FNSKU" align="center" prop="fnsku" />-->
|
||||||
|
<el-table-column label="外包数量" align="center" prop="outsourceQuantity" />
|
||||||
|
<el-table-column label="已下单数量" align="center" prop="quantityShipped" />
|
||||||
|
<el-table-column label="剩余数量" align="center" prop="quantityLeft" />
|
||||||
|
<!-- <el-table-column label="实收数量" align="center" prop="receiveQuantity" />-->
|
||||||
|
<el-table-column label="预计到达时间" align="center" prop="expectArriveTime" />
|
||||||
|
<!-- <el-table-column label="MSKU编码列表 (数组存储)" align="center" prop="msku" />-->
|
||||||
|
<!-- <el-table-column label="关联计划单号列表 (数组存储)" align="center" prop="planSn" />-->
|
||||||
|
<el-table-column label="店铺名称" align="center" prop="sellerName" />
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-tooltip content="创建发货订单" placement="top">
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
icon="CircleCheck"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
v-hasPermi="['amz:purchaseOutOrder:edit']"
|
||||||
|
></el-button>
|
||||||
|
</el-tooltip>
|
||||||
|
<!-- <el-tooltip content="删除" placement="top">-->
|
||||||
|
<!-- <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['amz:purchaseOutOrder:remove']"></el-button>-->
|
||||||
|
<!-- </el-tooltip>-->
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||||
|
</el-card>
|
||||||
|
<!-- 添加或修改组合订单对话框 -->
|
||||||
|
<el-dialog :title="dialog.title" v-model="dialog.visible" width="1500px" append-to-body>
|
||||||
|
<el-form :inline="true" ref="purchaseOutOrderFormRef" :model="form" :rules="rules" label-width="120px">
|
||||||
|
<el-form-item label="委外订单号" prop="orderSn">
|
||||||
|
<el-input v-model="form.orderSn" placeholder="请输入订单唯一编号" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="仓库名称" prop="warehouseName">
|
||||||
|
<el-input v-model="form.warehouseName" placeholder="请输入仓库名称" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="外包仓库名称" prop="outsourceWarehouseName">-->
|
||||||
|
<!-- <el-input v-model="form.outsourceWarehouseName" placeholder="请输入外包仓库名称" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item label="供应商名称" prop="supplierName">
|
||||||
|
<el-input v-model="form.supplierName" placeholder="请输入供应商名称" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="创建时间" prop="bizCreateTime">
|
||||||
|
<el-date-picker
|
||||||
|
clearable
|
||||||
|
v-model="form.bizCreateTime"
|
||||||
|
type="datetime"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
placeholder="请选择业务创建时间"
|
||||||
|
disabled
|
||||||
|
>
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="状态" prop="statusText">
|
||||||
|
<el-input v-model="form.statusText" placeholder="请输入状态文本描述" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="创建人姓名" prop="createRealname">
|
||||||
|
<el-input v-model="form.createRealname" placeholder="请输入创建人姓名" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="PTP流水号" prop="ptpSn">-->
|
||||||
|
<!-- <el-input v-model="form.ptpSn" placeholder="请输入PTP流水号" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item label="产品名称" prop="productName">
|
||||||
|
<el-input v-model="form.productName" placeholder="请输入产品名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="SKU" prop="sku">
|
||||||
|
<el-input v-model="form.sku" placeholder="请输入标准SKU编码" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="FNSKU" prop="fnsku">-->
|
||||||
|
<!-- <el-input v-model="form.fnsku" placeholder="请输入FNSKU编码" disabled />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item label="外包数量" prop="outsourceQuantity">
|
||||||
|
<el-input-number
|
||||||
|
:min="1"
|
||||||
|
:max="quality"
|
||||||
|
controls-position="right"
|
||||||
|
v-model="form.outsourceQuantity"
|
||||||
|
placeholder="请输入外包数量"
|
||||||
|
@change="quantityAction(form.outsourceQuantity)"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="实收数量" prop="receiveQuantity">-->
|
||||||
|
<!-- <el-input v-model="form.receiveQuantity" placeholder="请输入实收数量" disabled />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- <el-form-item label="预计到达时间" prop="expectArriveTime">-->
|
||||||
|
<!-- <el-input v-model="form.expectArriveTime" placeholder="请输入预计到达时间" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item label="店铺名称" prop="sellerName">
|
||||||
|
<el-input v-model="form.sellerName" placeholder="请输入店铺名称" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<el-card shadow="never">
|
||||||
|
<vxe-table
|
||||||
|
ref="purchaseTable"
|
||||||
|
v-loading="loading"
|
||||||
|
:data="form.items"
|
||||||
|
border
|
||||||
|
size="mini"
|
||||||
|
:header-cell-style="{ fontSize: '10px' }"
|
||||||
|
:row-config="{ keyField: 'id' }"
|
||||||
|
:scroll-y="{ enabled: true, gt: 100 }"
|
||||||
|
>
|
||||||
|
<!-- 采购单号 -->
|
||||||
|
<vxe-column field="order.orderSn" title="采购单号" align="center" />
|
||||||
|
|
||||||
|
<!-- 供应商名称 -->
|
||||||
|
<vxe-column field="order.supplierName" title="供应商名称" align="center" />
|
||||||
|
|
||||||
|
<!-- 店铺名称 -->
|
||||||
|
<vxe-column field="order.storeName" title="店铺名称" align="center" />
|
||||||
|
|
||||||
|
<vxe-column field="productName" title="产品名称" align="center" />
|
||||||
|
|
||||||
|
<!-- 下单时间 (带格式化) -->
|
||||||
|
<vxe-column field="order.orderTime" title="下单时间" width="180" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<span>{{ parseTime(row.order.orderTime, '{y}-{m}-{d} {h}:{mm}:{ss}') }}</span>
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
|
||||||
|
<!-- 采购单状态 (带权限控制) -->
|
||||||
|
<vxe-column title="采购单状态" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<dict-tag :options="purchase_order_status" :value="row.order.status" />
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
|
||||||
|
<!-- 总金额 -->
|
||||||
|
<!-- <vxe-column field="order.totalPrice" title="总金额" align="center" />-->
|
||||||
|
|
||||||
|
<!-- 采购数量 -->
|
||||||
|
<vxe-column field="order.quantityReal" title="采购数量" :edit-render="{ name: 'input' }" align="center" />
|
||||||
|
|
||||||
|
<!-- 订单状态 -->
|
||||||
|
<vxe-column title="订单状态" align="center">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<dict-tag :options="vendor_order_status" :value="row.item.orderStatus" />
|
||||||
|
</template>
|
||||||
|
</vxe-column>
|
||||||
|
|
||||||
|
<!-- 备注 -->
|
||||||
|
<vxe-column field="order.remark" title="备注" align="center" />
|
||||||
|
</vxe-table>
|
||||||
|
</el-card>
|
||||||
|
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button :loading="buttonLoading" type="primary" @click="submitSendOrderForm">提交订单</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
<el-dialog :title="forwardTableDialog.title" v-model="forwardTableDialog.visible" width="1800px" append-to-body>
|
||||||
|
<el-table :data="shipForwardList">
|
||||||
|
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
||||||
|
|
||||||
|
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
||||||
|
<el-table-column label="采购店铺名称" align="center" prop="storeName" />
|
||||||
|
<el-table-column label="SKU" align="center" prop="sku" />
|
||||||
|
<el-table-column label="产品全称" align="center" prop="productName" />
|
||||||
|
<el-table-column label="实际发货数量" align="center" prop="quantitySend" />
|
||||||
|
<el-table-column label="发货方" align="center" prop="outSupplierName" />
|
||||||
|
<!-- <el-table-column label="发货供应商系统ID" align="center" prop="outSupplierId" />-->
|
||||||
|
<el-table-column label="收货方" align="center" prop="inSupplierName" />
|
||||||
|
<!-- <el-table-column label="收货供应商系统ID" align="center" prop="inSupplierId" />-->
|
||||||
|
<!-- <el-table-column label="计划发货起始时间" align="center" prop="shipmentStart" width="180">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <span>{{ parseTime(scope.row.shipmentStart, '{y}-{m}-{d}') }}</span>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<!-- <el-table-column label="计划发货截止时间" align="center" prop="shipmentEnd" width="180">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <span>{{ parseTime(scope.row.shipmentEnd, '{y}-{m}-{d}') }}</span-->
|
||||||
|
<!-- >1-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<el-table-column label="跟单人" align="center" prop="trackerName" />
|
||||||
|
<!-- <el-table-column label="跟单id" align="center" prop="trackerId" />-->
|
||||||
|
<el-table-column label="转发状态" align="center" prop="fwdStatus">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :options="forward_status" :value="scope.row.fwdStatus" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="发货时间" align="center" prop="sendTime" width="180">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.sendTime, '{y}-{m}-{d}') }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <el-tooltip content="修改" placement="top">-->
|
||||||
|
<!-- <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['amz:shipForward:edit']"></el-button>-->
|
||||||
|
<!-- </el-tooltip>-->
|
||||||
|
<!-- <el-tooltip content="删除" placement="top">-->
|
||||||
|
<!-- <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['amz:shipForward:remove']"></el-button>-->
|
||||||
|
<!-- </el-tooltip>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
</el-table>
|
||||||
|
<!-- <template #footer>-->
|
||||||
|
<!-- <div class="dialog-footer">-->
|
||||||
|
<!-- <el-button :loading="buttonLoading" type="primary" @click="forwardSubmitForm">确 定</el-button>-->
|
||||||
|
<!-- <el-button @click="cancel">取 消</el-button>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup name="PurchaseOutOrder" lang="ts">
|
||||||
|
import {
|
||||||
|
listPurchaseOutOrder,
|
||||||
|
getPurchaseOutOrder,
|
||||||
|
delPurchaseOutOrder,
|
||||||
|
addPurchaseOutOrder,
|
||||||
|
updatePurchaseOutOrder,
|
||||||
|
createSendOrderByBo
|
||||||
|
} from '@/api/amz/purchaseOutOrder';
|
||||||
|
import { PurchaseOutOrderVO, PurchaseOutOrderQuery, PurchaseOutOrderForm } from '@/api/amz/purchaseOutOrder/types';
|
||||||
|
import { VxeTable, VxeColumn } from 'vxe-table';
|
||||||
|
import type { VxeTablePropTypes } from 'vxe-table';
|
||||||
|
|
||||||
|
import 'vxe-table/lib/style.css';
|
||||||
|
import { ShipForwardVO } from '@/api/amz/shipForward/types';
|
||||||
|
|
||||||
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
|
|
||||||
|
const { vendor_order_status } = toRefs<any>(proxy?.useDict('vendor_order_status'));
|
||||||
|
|
||||||
|
const { purchase_order_status } = toRefs<any>(proxy?.useDict('purchase_order_status'));
|
||||||
|
const { forward_status } = toRefs<any>(proxy?.useDict('forward_status'));
|
||||||
|
|
||||||
|
const purchaseOutOrderList = ref<PurchaseOutOrderVO[]>([]);
|
||||||
|
const buttonLoading = ref(false);
|
||||||
|
const loading = ref(true);
|
||||||
|
const showSearch = ref(true);
|
||||||
|
const ids = ref<Array<string | number>>([]);
|
||||||
|
const single = ref(true);
|
||||||
|
const multiple = ref(true);
|
||||||
|
const total = ref(0);
|
||||||
|
const router = useRouter();
|
||||||
|
const queryFormRef = ref<ElFormInstance>();
|
||||||
|
const purchaseOutOrderFormRef = ref<ElFormInstance>();
|
||||||
|
|
||||||
|
const shipForwardList = ref<ShipForwardVO[]>([]);
|
||||||
|
|
||||||
|
const forwardTableDialog = reactive<DialogOption>({
|
||||||
|
visible: false,
|
||||||
|
title: '转发明细'
|
||||||
|
});
|
||||||
|
|
||||||
|
const dialog = reactive<DialogOption>({
|
||||||
|
visible: false,
|
||||||
|
title: ''
|
||||||
|
});
|
||||||
|
|
||||||
|
const editConfig: VxeTablePropTypes.EditConfig = {
|
||||||
|
trigger: 'dblclick',
|
||||||
|
mode: 'cell'
|
||||||
|
};
|
||||||
|
|
||||||
|
const initFormData: PurchaseOutOrderForm = {
|
||||||
|
orderSn: undefined,
|
||||||
|
warehouseName: undefined,
|
||||||
|
outsourceWarehouseName: undefined,
|
||||||
|
supplierName: undefined,
|
||||||
|
bizCreateTime: undefined,
|
||||||
|
statusText: undefined,
|
||||||
|
createRealname: undefined,
|
||||||
|
ptpSn: undefined,
|
||||||
|
productName: undefined,
|
||||||
|
sku: undefined,
|
||||||
|
fnsku: undefined,
|
||||||
|
outsourceQuantity: undefined,
|
||||||
|
receiveQuantity: undefined,
|
||||||
|
expectArriveTime: undefined,
|
||||||
|
msku: undefined,
|
||||||
|
planSn: undefined,
|
||||||
|
sellerName: undefined
|
||||||
|
};
|
||||||
|
const data = reactive<PageData<PurchaseOutOrderForm, PurchaseOutOrderQuery>>({
|
||||||
|
form: { ...initFormData },
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
orderSn: undefined,
|
||||||
|
warehouseName: undefined,
|
||||||
|
outsourceWarehouseName: undefined,
|
||||||
|
supplierName: undefined,
|
||||||
|
bizCreateTime: undefined,
|
||||||
|
statusText: undefined,
|
||||||
|
createRealname: undefined,
|
||||||
|
ptpSn: undefined,
|
||||||
|
productName: undefined,
|
||||||
|
sku: undefined,
|
||||||
|
fnsku: undefined,
|
||||||
|
outsourceQuantity: undefined,
|
||||||
|
receiveQuantity: undefined,
|
||||||
|
expectArriveTime: undefined,
|
||||||
|
msku: undefined,
|
||||||
|
planSn: undefined,
|
||||||
|
sellerName: undefined,
|
||||||
|
params: {}
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
orderSn: [{ required: true, message: '订单唯一编号不能为空', trigger: 'blur' }],
|
||||||
|
warehouseName: [{ required: true, message: '仓库名称不能为空', trigger: 'blur' }],
|
||||||
|
outsourceWarehouseName: [{ required: true, message: '外包仓库名称不能为空', trigger: 'blur' }],
|
||||||
|
supplierName: [{ required: true, message: '供应商名称不能为空', trigger: 'blur' }],
|
||||||
|
bizCreateTime: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '业务创建时间 (Jackson格式: yyyy-MM-dd HH:mm:ss)不能为空',
|
||||||
|
trigger: 'blur'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
statusText: [{ required: true, message: '状态文本描述不能为空', trigger: 'blur' }],
|
||||||
|
createRealname: [{ required: true, message: '创建人姓名不能为空', trigger: 'blur' }],
|
||||||
|
ptpSn: [{ required: true, message: 'PTP流水号不能为空', trigger: 'blur' }],
|
||||||
|
productName: [{ required: true, message: '产品名称不能为空', trigger: 'blur' }],
|
||||||
|
sku: [{ required: true, message: '标准SKU编码不能为空', trigger: 'blur' }],
|
||||||
|
// fnsku: [{ required: true, message: 'FNSKU编码不能为空', trigger: 'blur' }],
|
||||||
|
outsourceQuantity: [{ required: true, message: '外包数量不能为空', trigger: 'blur' }],
|
||||||
|
receiveQuantity: [{ required: true, message: '实收数量不能为空', trigger: 'blur' }],
|
||||||
|
expectArriveTime: [{ required: true, message: '预计到达时间不能为空', trigger: 'blur' }],
|
||||||
|
// msku: [{ required: true, message: 'MSKU编码列表 (数组存储)不能为空', trigger: 'blur' }],
|
||||||
|
// planSn: [{ required: true, message: '关联计划单号列表 (数组存储)不能为空', trigger: 'blur' }],
|
||||||
|
sellerName: [{ required: true, message: '销售商名称不能为空', trigger: 'blur' }]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
|
||||||
|
const quality = ref(0);
|
||||||
|
/** 查询组合订单列表 */
|
||||||
|
const getList = async () => {
|
||||||
|
loading.value = true;
|
||||||
|
const res = await listPurchaseOutOrder(queryParams.value);
|
||||||
|
purchaseOutOrderList.value = res.rows;
|
||||||
|
total.value = res.total;
|
||||||
|
loading.value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
const quantityAction = (quantity: number) => {
|
||||||
|
form.value.items.forEach((item) => {
|
||||||
|
item.order.quantityReal = quantity * item.ratio;
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 取消按钮 */
|
||||||
|
const cancel = () => {
|
||||||
|
reset();
|
||||||
|
dialog.visible = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 表单重置 */
|
||||||
|
const reset = () => {
|
||||||
|
form.value = { ...initFormData };
|
||||||
|
purchaseOutOrderFormRef.value?.resetFields();
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
const handleQuery = () => {
|
||||||
|
queryParams.value.pageNum = 1;
|
||||||
|
getList();
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
const resetQuery = () => {
|
||||||
|
queryFormRef.value?.resetFields();
|
||||||
|
handleQuery();
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 多选框选中数据 */
|
||||||
|
const handleSelectionChange = (selection: PurchaseOutOrderVO[]) => {
|
||||||
|
ids.value = selection.map((item) => item.orderSn);
|
||||||
|
single.value = selection.length != 1;
|
||||||
|
multiple.value = !selection.length;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
const handleAdd = () => {
|
||||||
|
reset();
|
||||||
|
dialog.visible = true;
|
||||||
|
dialog.title = '添加组合订单';
|
||||||
|
};
|
||||||
|
|
||||||
|
const goToOrderDetail = async (orderStatus?: string, orderSn?: string) => {
|
||||||
|
if (orderStatus === 'ord_unconfirmed') {
|
||||||
|
router.push({
|
||||||
|
path: '/demand/purchaseOrder',
|
||||||
|
query: {
|
||||||
|
orderSn: orderSn
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
router.push({
|
||||||
|
path: '/demand/purchaseOrderConfirm',
|
||||||
|
query: {
|
||||||
|
orderSn: orderSn
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
const handleUpdate = async (row?: PurchaseOutOrderVO) => {
|
||||||
|
reset();
|
||||||
|
// const orderSn = row?.orderSn || ids.value[0];
|
||||||
|
// const res = await getPurchaseOutOrder(orderSn);
|
||||||
|
if (row.quantityLeft <= 0) {
|
||||||
|
proxy?.$modal.msgError('该订单已全部发货');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (row.items.every((item) => item.order.orderStatus === 'ord_unconfirmed')) {
|
||||||
|
proxy?.$modal.msgError('有采购订单没有确认');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
form.value = deepClone(row);
|
||||||
|
quality.value = form.value.quantityLeft;
|
||||||
|
form.value.outsourceQuantity = form.value.quantityLeft;
|
||||||
|
console.log('quantity', quality.value);
|
||||||
|
console.log('form.value.outsourceQuantity', form.value.outsourceQuantity);
|
||||||
|
|
||||||
|
form.value.items.forEach((item) => {
|
||||||
|
// item.order.quantityReal = item.quantityLeft;
|
||||||
|
|
||||||
|
item.order.quantityReal = form.value.quantityLeft * item.ratio;
|
||||||
|
});
|
||||||
|
dialog.visible = true;
|
||||||
|
dialog.title = '提交可发货订单';
|
||||||
|
};
|
||||||
|
|
||||||
|
function deepClone<T>(obj: T): T {
|
||||||
|
return JSON.parse(JSON.stringify(obj));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 提交按钮 */
|
||||||
|
const submitForm = () => {
|
||||||
|
purchaseOutOrderFormRef.value?.validate(async (valid: boolean) => {
|
||||||
|
if (valid) {
|
||||||
|
buttonLoading.value = true;
|
||||||
|
if (form.value.orderSn) {
|
||||||
|
await updatePurchaseOutOrder(form.value).finally(() => (buttonLoading.value = false));
|
||||||
|
} else {
|
||||||
|
await addPurchaseOutOrder(form.value).finally(() => (buttonLoading.value = false));
|
||||||
|
}
|
||||||
|
proxy?.$modal.msgSuccess('操作成功');
|
||||||
|
dialog.visible = false;
|
||||||
|
await getList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const submitSendOrderForm = () => {
|
||||||
|
purchaseOutOrderFormRef.value?.validate(async (valid: boolean) => {
|
||||||
|
if (valid) {
|
||||||
|
buttonLoading.value = true;
|
||||||
|
if (form.value.orderSn) {
|
||||||
|
await createSendOrderByBo(form.value).finally(() => (buttonLoading.value = false));
|
||||||
|
}
|
||||||
|
proxy?.$modal.msgSuccess('操作成功');
|
||||||
|
dialog.visible = false;
|
||||||
|
await getList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const openDetailDialog = (detail) => {
|
||||||
|
shipForwardList.value = detail;
|
||||||
|
forwardTableDialog.visible = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
const handleDelete = async (row?: PurchaseOutOrderVO) => {
|
||||||
|
const _tenantIds = row?.orderSn || ids.value;
|
||||||
|
await proxy?.$modal.confirm('是否确认删除组合订单编号为"' + _tenantIds + '"的数据项?').finally(() => (loading.value = false));
|
||||||
|
await delPurchaseOutOrder(_tenantIds);
|
||||||
|
proxy?.$modal.msgSuccess('删除成功');
|
||||||
|
await getList();
|
||||||
|
};
|
||||||
|
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
const handleExport = () => {
|
||||||
|
proxy?.download(
|
||||||
|
'amz/purchaseOutOrder/export',
|
||||||
|
{
|
||||||
|
...queryParams.value
|
||||||
|
},
|
||||||
|
`purchaseOutOrder_${new Date().getTime()}.xlsx`
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
|
</script>
|
@ -57,10 +57,26 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="sendOrderList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="sendOrderList" @selection-change="handleSelectionChange">
|
||||||
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
<el-table-column type="expand">
|
||||||
|
<template #default="props">
|
||||||
|
<el-card shadow="never">
|
||||||
|
<el-table v-loading="loading" :data="props.row.items" :border="true" size="small" :header-cell-style="{ fontSize: '10px' }">
|
||||||
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
||||||
|
<el-table-column label="产品名称" align="center" prop="productName" />
|
||||||
|
<el-table-column label="SKU" align="center" prop="sku" />
|
||||||
|
<el-table-column label="采购数量" align="center" prop="quantitySend" />
|
||||||
|
</el-table>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
||||||
|
<el-table-column label="创建人" align="center" prop="createName" />
|
||||||
<el-table-column label="发货单号" align="center" prop="id" />
|
<el-table-column label="发货单号" align="center" prop="id" />
|
||||||
|
<el-table-column label="订单类型" align="center" prop="sendStatus">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :options="send_order_type" :value="scope.row.type" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="创建日期" align="center" prop="createTime" width="180">
|
<el-table-column label="创建日期" align="center" prop="createTime" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
||||||
@ -73,26 +89,33 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="采购店铺" align="center" prop="storeName" />
|
<el-table-column label="采购店铺" align="center" prop="storeName" />
|
||||||
<el-table-column label="供应商名称" align="center" prop="sendName" />
|
<el-table-column label="供应商名称" align="center" prop="sendName" />
|
||||||
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName">
|
<el-table-column label="FBA列表" align="center" prop="sendName">
|
||||||
<template #default="{ row }">
|
<template #default="scope">
|
||||||
<el-popover placement="top" title="物流商地址" :width="200" trigger="click">
|
<el-button link type="primary" @click="handleFbaList(scope.row)" v-hasPermi="['amz:sendOrder:remove']"> 查看详情 </el-button>
|
||||||
<template #reference>
|
|
||||||
<el-button v-if="row.logisticsProviderName !== null" text size="small" type="primary">
|
|
||||||
{{ row.logisticsProviderName }}
|
|
||||||
</el-button>
|
|
||||||
</template>
|
|
||||||
<div>{{ row.address || '暂无地址' }}</div>
|
|
||||||
</el-popover>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
|
<!-- <el-table-column label="物流商名称" align="center" prop="logisticsProviderName">-->
|
||||||
|
<!-- <template #default="{ row }">-->
|
||||||
|
<!-- <el-popover placement="top" title="物流商地址" :width="200" trigger="click">-->
|
||||||
|
<!-- <template #reference>-->
|
||||||
|
<!-- <el-button v-if="row.logisticsProviderName !== null" text size="small" type="primary">-->
|
||||||
|
<!-- {{ row.logisticsProviderName }}-->
|
||||||
|
<!-- </el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- <div>{{ row.address || '暂无地址' }}</div>-->
|
||||||
|
<!-- </el-popover>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
<el-table-column label="产品名称" align="center" prop="productName" />
|
<el-table-column label="产品名称" align="center" prop="productName" />
|
||||||
|
<el-table-column label="SKU" align="center" prop="sku" />
|
||||||
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
||||||
<!-- <el-table-column label="单箱产品数量" align="center" prop="quantityPerBox" />-->
|
|
||||||
<el-table-column label="箱数" align="center" prop="boxCount">
|
<el-table-column label="箱数" align="center" prop="boxCount">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-popover placement="top" title="装箱明细" :width="500" trigger="click">
|
<el-popover placement="top" title="装箱明细" :width="500" trigger="click">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button text size="small" type="primary"> {{ row.boxCount }}箱</el-button>
|
<el-button v-if="row.sendDetail !== null" text size="small" type="primary"> {{ row.boxCount }}箱 </el-button>
|
||||||
|
<el-tag type="info">暂无装箱数据</el-tag>
|
||||||
</template>
|
</template>
|
||||||
<div v-if="row.sendDetail !== null" v-html="formatText(row.sendDetail)"></div>
|
<div v-if="row.sendDetail !== null" v-html="formatText(row.sendDetail)"></div>
|
||||||
<div v-else>暂无数据</div>
|
<div v-else>暂无数据</div>
|
||||||
@ -102,18 +125,50 @@
|
|||||||
<!-- <el-table-column label="箱子尺寸" align="center" prop="boxDimensions" />-->
|
<!-- <el-table-column label="箱子尺寸" align="center" prop="boxDimensions" />-->
|
||||||
<el-table-column label="总重量" align="center" prop="weightPerBox" />
|
<el-table-column label="总重量" align="center" prop="weightPerBox" />
|
||||||
<el-table-column label="实际发货店铺" align="center" prop="realStoreName" />
|
<el-table-column label="实际发货店铺" align="center" prop="realStoreName" />
|
||||||
|
<el-table-column label="关联的采购单" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-tag v-if="scope.row.bizShipmentPlans != null" type="success">已关联</el-tag>
|
||||||
|
<el-tag v-else type="info">未关联</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="发货状态" align="center" prop="sendStatus">
|
<el-table-column label="发货状态" align="center" prop="sendStatus">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :options="send_status" :value="scope.row.sendStatus" />
|
<dict-tag :options="send_status" :value="scope.row.sendStatus" />
|
||||||
</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" v-if="scope.row.sendStatus === 'pending'">-->
|
<!-- <el-button-->
|
||||||
<!-- <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['amz:sendOrder:edit']"></el-button>-->
|
<!-- v-if="scope.row.sendStatus === 'confirm' || scope.row.sendStatus === 'set_store'"-->
|
||||||
<!-- </el-tooltip>-->
|
<!-- size="small"-->
|
||||||
|
<!-- link-->
|
||||||
|
<!-- type="primary"-->
|
||||||
|
<!-- @click="handleUpdate(scope.row)"-->
|
||||||
|
<!-- v-hasRoles="['superadmin', 'gengdan', 'yunying']"-->
|
||||||
|
<!-- >确认发货-->
|
||||||
|
<!-- </el-button>-->
|
||||||
|
<el-tooltip content="接受发货" placement="top">
|
||||||
|
<el-button
|
||||||
|
v-if="scope.row.sendStatus === 'unconfirm'"
|
||||||
|
size="small"
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
@click="handleConfirmSend(scope.row)"
|
||||||
|
v-hasRoles="['superadmin', 'gongying']"
|
||||||
|
>接受发货
|
||||||
|
</el-button>
|
||||||
|
</el-tooltip>
|
||||||
|
|
||||||
<el-tooltip content="删除" placement="top">
|
<el-tooltip content="删除" placement="top">
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['amz:sendOrder:remove']"></el-button>
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
icon="Delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-hasRoles="['superadmin']"
|
||||||
|
v-hasPermi="['amz:sendOrder:remove']"
|
||||||
|
></el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -123,12 +178,12 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<!-- 添加或修改供应商创建的发货单对话框 -->
|
<!-- 添加或修改供应商创建的发货单对话框 -->
|
||||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="1000px" append-to-body>
|
<el-dialog :title="dialog.title" v-model="dialog.visible" width="1000px" append-to-body>
|
||||||
<el-form ref="sendOrderFormRef" :model="form" :rules="rules" label-width="120px">
|
<el-form ref="sendOrderFormRef" :model="shipForm" :rules="rules" label-width="120px">
|
||||||
<!-- <el-form-item label="主键ID" prop="id">-->
|
<!-- <el-form-item label="主键ID" prop="id">-->
|
||||||
<!-- <el-input v-model="form.id" placeholder="请输入主键ID" />-->
|
<!-- <el-input v-model="form.id" placeholder="请输入主键ID" />-->
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="采购单号" prop="orderSn">
|
<el-form-item label="采购单号" prop="orderSn">
|
||||||
<el-input v-model="form.orderSn" placeholder="请输入采购单号" @blur="blurAction" />
|
<el-input v-model="shipForm.orderSn" placeholder="请输入采购单号" @blur="blurAction" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="发货日期" prop="sendDate">-->
|
<!-- <el-form-item label="发货日期" prop="sendDate">-->
|
||||||
<!-- <el-date-picker clearable v-model="form.sendDate" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择发货日期">-->
|
<!-- <el-date-picker clearable v-model="form.sendDate" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择发货日期">-->
|
||||||
@ -138,16 +193,16 @@
|
|||||||
<!-- <el-input v-model="form.storeName" placeholder="请输入采购店铺" />-->
|
<!-- <el-input v-model="form.storeName" placeholder="请输入采购店铺" />-->
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="产品名称" prop="productName">
|
<el-form-item label="产品名称" prop="productName">
|
||||||
<el-input v-model="form.productName" placeholder="请输入产品名称" />
|
<el-input v-model="shipForm.productName" placeholder="请输入产品名称" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="发货总数" prop="quantitySend">
|
<el-form-item label="发货总数" prop="quantitySend">
|
||||||
<el-input v-model="form.quantitySend" placeholder="请输入发货数量" />
|
<el-input v-model="shipForm.quantitySend" placeholder="请输入发货数量" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="总箱数" prop="boxCount">
|
<el-form-item label="总箱数" prop="boxCount">
|
||||||
<el-input v-model="form.boxCount" placeholder="请输入总箱数" />
|
<el-input v-model="shipForm.boxCount" placeholder="请输入总箱数" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="form.quantitySend > 0 && form.boxCount > 0" label="箱子明细" prop="quantityPerBox">
|
<el-form-item v-if="shipForm.quantitySend > 0 && shipForm.boxCount > 0" label="箱子明细" prop="quantityPerBox">
|
||||||
<div class="max-w-800px">
|
<div class="max-w-800px">
|
||||||
<div v-for="(group, index) in groups" :key="index" class="flex gap-12px mb-16px items-center">
|
<div v-for="(group, index) in groups" :key="index" class="flex gap-12px mb-16px items-center">
|
||||||
<el-input
|
<el-input
|
||||||
@ -177,9 +232,9 @@
|
|||||||
|
|
||||||
<div class="mb-16px text-left">
|
<div class="mb-16px text-left">
|
||||||
<span :class="['mr-8px', Number(totalNum) === Number(shipForm.quantitySend) ? 'text-green-500' : 'text-red-500']">
|
<span :class="['mr-8px', Number(totalNum) === Number(shipForm.quantitySend) ? 'text-green-500' : 'text-red-500']">
|
||||||
当前总量:{{ totalNum }}/{{ form.quantitySend }}
|
当前总量:{{ totalNum }}/{{ shipForm.quantitySend }}
|
||||||
</span>
|
</span>
|
||||||
<el-button @click="addGroup" type="primary" :icon="Plus" :disabled="totalNum >= form.quantitySend"> 添加一组 </el-button>
|
<el-button @click="addGroup" type="primary" :icon="Plus" :disabled="totalNum >= shipForm.quantitySend"> 添加一组 </el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -223,19 +278,98 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<el-dialog :title="fbaDialog.title" v-model="fbaDialog.visible" width="1200px" append-to-body>
|
||||||
|
<el-table :data="fbaDataList">
|
||||||
|
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
||||||
|
<el-table-column label="创建日期" align="center" prop="gmtCreate" width="180">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.gmtCreate, '{y}-{m}-{d}') }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column label="店铺名称" align="center" prop="sellerName" />-->
|
||||||
|
|
||||||
|
<el-table-column label="货件编号" align="center" prop="shipmentId" />
|
||||||
|
<!-- <el-table-column label="商品详情" align="center">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <el-popover placement="top" :width="750" trigger="hover">-->
|
||||||
|
<!-- <template #reference>-->
|
||||||
|
<!-- <el-button size="small" plain style="margin-right: 16px">查看</el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- <el-table :data="scope.row.itemVoList">-->
|
||||||
|
<!-- <el-table-column width="200" property="productName" label="品名" />-->
|
||||||
|
<!-- <el-table-column width="150" property="asin" label="asin" />-->
|
||||||
|
<!-- <el-table-column width="150" property="fnsku" label="fnsku" />-->
|
||||||
|
<!-- <el-table-column width="200" property="msku" label="msku" />-->
|
||||||
|
<!-- </el-table>-->
|
||||||
|
<!-- </el-popover>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<el-table-column label="国家" align="center" prop="shipToAddress.countryCode" />
|
||||||
|
<el-table-column label="物流中心编码" align="center" prop="destination" />
|
||||||
|
<el-table-column label="箱数" align="center" prop="boxQuantity" />
|
||||||
|
<el-table-column label="申报量" property="setTotal" width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.row.setTotal }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="物流商地址" align="center" prop="address" />
|
||||||
|
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName" />
|
||||||
|
<!-- <el-table-column label="关联的采购单" align="center">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <el-tag v-if="scope.row.sendOrders != null" type="success">已关联</el-tag>-->
|
||||||
|
<!-- <el-tag v-else type="info">未关联</el-tag>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<!-- <el-table-column width="150" label="仓库配送地址" align="center" prop="shipToAddress">-->
|
||||||
|
<!-- <template #default="{ row }">-->
|
||||||
|
<!-- <!– <el-button @click="openAddressDialog(row.shipToAddress)"> 查看详情</el-button>–>-->
|
||||||
|
<!-- <el-popover placement="left" :width="800" trigger="click">-->
|
||||||
|
<!-- <template #reference>-->
|
||||||
|
<!-- <!– <el-button style="margin-right: 16px">Click to activate</el-button>–>-->
|
||||||
|
<!-- <el-button plain size="small" type="success"> 点击查看详情</el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- <el-descriptions title="收货地址信息" :column="3" border>-->
|
||||||
|
<!-- <el-descriptions-item v-for="item in descriptItems" :key="item.prop" :label="item.label">-->
|
||||||
|
<!-- {{ row.shipToAddress[item.prop] || 'N/A' }}-->
|
||||||
|
<!-- </el-descriptions-item>-->
|
||||||
|
<!-- </el-descriptions>-->
|
||||||
|
<!-- </el-popover>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<!-- <el-table-column label="亚马逊货件状态" align="center" width="180">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <el-tag>{{ scope.row.shipmentStatus }}</el-tag>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <!– <el-tooltip content="修改" placement="top" v-if="scope.row.sendStatus === 'pending'">–>-->
|
||||||
|
<!-- <!– <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['amz:sendOrder:edit']"></el-button>–>-->
|
||||||
|
<!-- <!– </el-tooltip>–>-->
|
||||||
|
<!-- <el-tooltip content="删除" placement="top">-->
|
||||||
|
<!-- <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['amz:sendOrder:remove']"></el-button>-->
|
||||||
|
<!-- </el-tooltip>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
</el-table>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="SendOrder" lang="ts">
|
<script setup name="SendOrder" lang="ts">
|
||||||
import { listSendOrder, getSendOrder, delSendOrder, addSendOrder, updateSendOrder } from '@/api/amz/sendOrder';
|
import { listSendOrder, getSendOrder, delSendOrder, addSendOrder, updateSendOrder, updateSendOrderData } from '@/api/amz/sendOrder';
|
||||||
import { SendOrderVO, SendOrderQuery, SendOrderForm } from '@/api/amz/sendOrder/types';
|
import { SendOrderVO, SendOrderQuery, SendOrderForm } from '@/api/amz/sendOrder/types';
|
||||||
import { getPurchaseOrder } from '@/api/amz/purchaseOrder';
|
import { getPurchaseOrder } from '@/api/amz/purchaseOrder';
|
||||||
import { Close, Plus } from '@element-plus/icons-vue';
|
import { Close, Plus } from '@element-plus/icons-vue';
|
||||||
import { formatText } from '@/utils/asinkj';
|
import { formatText, parseTime } from '@/utils/asinkj';
|
||||||
|
import { ElTable } from 'element-plus';
|
||||||
|
import { ShipmentPlanVO } from '@/api/amz/shipmentPlan/types';
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
const { send_status } = toRefs<any>(proxy?.useDict('send_status'));
|
const { send_status } = toRefs<any>(proxy?.useDict('send_status'));
|
||||||
|
|
||||||
|
const { send_order_type } = toRefs<any>(proxy?.useDict('send_order_type'));
|
||||||
|
|
||||||
const sendOrderList = ref<SendOrderVO[]>([]);
|
const sendOrderList = ref<SendOrderVO[]>([]);
|
||||||
const buttonLoading = ref(false);
|
const buttonLoading = ref(false);
|
||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
@ -250,12 +384,18 @@ const pwidth = ref<string | number>();
|
|||||||
|
|
||||||
const queryFormRef = ref<ElFormInstance>();
|
const queryFormRef = ref<ElFormInstance>();
|
||||||
const sendOrderFormRef = ref<ElFormInstance>();
|
const sendOrderFormRef = ref<ElFormInstance>();
|
||||||
|
const fbaDataList = ref<ShipmentPlanVO[]>([]);
|
||||||
|
|
||||||
const dialog = reactive<DialogOption>({
|
const dialog = reactive<DialogOption>({
|
||||||
visible: false,
|
visible: false,
|
||||||
title: ''
|
title: ''
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const fbaDialog = reactive<DialogOption>({
|
||||||
|
visible: false,
|
||||||
|
title: ''
|
||||||
|
});
|
||||||
|
|
||||||
const initFormData: SendOrderForm = {
|
const initFormData: SendOrderForm = {
|
||||||
id: undefined,
|
id: undefined,
|
||||||
orderSn: undefined,
|
orderSn: undefined,
|
||||||
@ -271,6 +411,22 @@ const initFormData: SendOrderForm = {
|
|||||||
sendStatus: undefined,
|
sendStatus: undefined,
|
||||||
sendDetail: undefined
|
sendDetail: undefined
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const shipForm = ref<SendOrderForm>({
|
||||||
|
id: undefined,
|
||||||
|
orderSn: undefined,
|
||||||
|
sendDate: undefined,
|
||||||
|
storeName: undefined,
|
||||||
|
productName: undefined,
|
||||||
|
quantitySend: 0,
|
||||||
|
quantityPerBox: undefined,
|
||||||
|
boxCount: undefined,
|
||||||
|
boxDimensions: undefined,
|
||||||
|
weightPerBox: undefined,
|
||||||
|
realStoreName: undefined,
|
||||||
|
sendStatus: undefined,
|
||||||
|
sendDetail: undefined
|
||||||
|
});
|
||||||
const data = reactive<PageData<SendOrderForm, SendOrderQuery>>({
|
const data = reactive<PageData<SendOrderForm, SendOrderQuery>>({
|
||||||
form: { ...initFormData },
|
form: { ...initFormData },
|
||||||
queryParams: {
|
queryParams: {
|
||||||
@ -298,14 +454,14 @@ const data = reactive<PageData<SendOrderForm, SendOrderQuery>>({
|
|||||||
quantityPerBox: [
|
quantityPerBox: [
|
||||||
{
|
{
|
||||||
validator: (rule, value, callback) => {
|
validator: (rule, value, callback) => {
|
||||||
if (totalBoxCount.value != form.value.boxCount) {
|
if (totalBoxCount.value != shipForm.value.boxCount) {
|
||||||
console.log('totalBoxCount.value', totalBoxCount.value);
|
console.log('totalBoxCount.value', totalBoxCount.value);
|
||||||
console.log('form.value.boxCount', form.value.boxCount);
|
console.log('form.value.boxCount', shipForm.value.boxCount);
|
||||||
callback(new Error('明细箱数和总箱数不匹配,请调整'));
|
callback(new Error('明细箱数和总箱数不匹配,请调整'));
|
||||||
}
|
}
|
||||||
// 总量提示
|
// 总量提示
|
||||||
if (totalNum.value > form.value.quantitySend) {
|
if (totalNum.value > shipForm.value.quantitySend) {
|
||||||
const exceed = totalNum.value - form.value.quantitySend;
|
const exceed = totalNum.value - shipForm.value.quantitySend;
|
||||||
callback(new Error('总量超出 ' + exceed + ',请调整'));
|
callback(new Error('总量超出 ' + exceed + ',请调整'));
|
||||||
} else {
|
} else {
|
||||||
callback();
|
callback();
|
||||||
@ -416,6 +572,13 @@ const removeGroup = (index) => {
|
|||||||
ElMessage.warning('请调整剩余数值使总量不超过100');
|
ElMessage.warning('请调整剩余数值使总量不超过100');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleFbaList = async (row?: SendOrderVO) => {
|
||||||
|
fbaDataList.value = row.bizShipmentPlans;
|
||||||
|
fbaDialog.visible = true;
|
||||||
|
fbaDialog.title = 'FBA货件列表';
|
||||||
|
};
|
||||||
|
|
||||||
/** 查询供应商创建的发货单列表 */
|
/** 查询供应商创建的发货单列表 */
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
@ -489,10 +652,39 @@ const handleUpdate = async (row?: SendOrderVO) => {
|
|||||||
dialog.title = '修改供应商创建的发货单';
|
dialog.title = '修改供应商创建的发货单';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleConfirmSend = async (row?: SendOrderVO) => {
|
||||||
|
reset();
|
||||||
|
groups.value = [
|
||||||
|
{
|
||||||
|
boxCount: null,
|
||||||
|
itemCount: null,
|
||||||
|
lengthPerBox: null,
|
||||||
|
widthPerBox: null,
|
||||||
|
heightPerBox: null,
|
||||||
|
weightPerBox: null
|
||||||
|
}
|
||||||
|
];
|
||||||
|
const _id = row?.id || ids.value[0];
|
||||||
|
const res = await getSendOrder(_id);
|
||||||
|
console.log('res', res);
|
||||||
|
Object.assign(form.value, res.data);
|
||||||
|
|
||||||
|
shipForm.value.orderSn = row?.orderSn;
|
||||||
|
shipForm.value.productName = row?.productName;
|
||||||
|
shipForm.value.quantitySend = row?.quantitySend;
|
||||||
|
// shipForm.value.storeName = rowM?.storeName;
|
||||||
|
shipForm.value.id = row?.id;
|
||||||
|
|
||||||
|
// form.value.sendStatus = 'confirmed';
|
||||||
|
// await updateSendOrder(form.value).finally(() => (buttonLoading.value = false));
|
||||||
|
dialog.visible = true;
|
||||||
|
dialog.title = '接受发货';
|
||||||
|
};
|
||||||
|
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
const submitForm = () => {
|
const submitForm = () => {
|
||||||
form.value.weightPerBox = totalWeight.value;
|
shipForm.value.weightPerBox = totalWeight.value;
|
||||||
form.value.boxDimensions = `${pwidth.value} x ${pheight.value} x ${plength.value}`;
|
shipForm.value.boxDimensions = `${pwidth.value} x ${pheight.value} x ${plength.value}`;
|
||||||
const sendText = groups.value.reduce((sum, group, index) => {
|
const sendText = groups.value.reduce((sum, group, index) => {
|
||||||
return (
|
return (
|
||||||
sum +
|
sum +
|
||||||
@ -516,14 +708,15 @@ const submitForm = () => {
|
|||||||
);
|
);
|
||||||
}, '');
|
}, '');
|
||||||
console.log('sendText: ', sendText);
|
console.log('sendText: ', sendText);
|
||||||
form.value.sendDetail = sendText;
|
shipForm.value.sendDetail = sendText;
|
||||||
|
shipForm.value.sendStatus = 'confirmed';
|
||||||
sendOrderFormRef.value?.validate(async (valid: boolean) => {
|
sendOrderFormRef.value?.validate(async (valid: boolean) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
buttonLoading.value = true;
|
buttonLoading.value = true;
|
||||||
if (form.value.id) {
|
if (shipForm.value.id) {
|
||||||
await updateSendOrder(form.value).finally(() => (buttonLoading.value = false));
|
await updateSendOrderData(shipForm.value).finally(() => (buttonLoading.value = false));
|
||||||
} else {
|
} else {
|
||||||
await addSendOrder(form.value).finally(() => (buttonLoading.value = false));
|
await addSendOrder(shipForm.value).finally(() => (buttonLoading.value = false));
|
||||||
}
|
}
|
||||||
proxy?.$modal.msgSuccess('操作成功');
|
proxy?.$modal.msgSuccess('操作成功');
|
||||||
dialog.visible = false;
|
dialog.visible = false;
|
||||||
|
@ -62,72 +62,11 @@
|
|||||||
<el-table-column type="expand">
|
<el-table-column type="expand">
|
||||||
<template #default="props">
|
<template #default="props">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<el-table :data="props.row.bizShipmentPlans">
|
<el-table v-loading="loading" :data="props.row.items" :border="true" size="small" :header-cell-style="{ fontSize: '10px' }">
|
||||||
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
||||||
<!-- <el-table-column label="创建日期" align="center" prop="gmtCreate" width="180">-->
|
<el-table-column label="产品名称" align="center" prop="productName" />
|
||||||
<!-- <template #default="scope">-->
|
<el-table-column label="SKU" align="center" prop="sku" />
|
||||||
<!-- <span>{{ parseTime(scope.row.gmtCreate, '{y}-{m}-{d}') }}</span>-->
|
<el-table-column label="采购数量" align="center" prop="quantitySend" />
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<!-- <el-table-column label="店铺名称" align="center" prop="sellerName" />-->
|
|
||||||
|
|
||||||
<el-table-column label="货件编号" align="center" prop="shipmentId" />
|
|
||||||
<!-- <el-table-column label="商品详情" align="center">-->
|
|
||||||
<!-- <template #default="scope">-->
|
|
||||||
<!-- <el-popover placement="top" :width="750" trigger="hover">-->
|
|
||||||
<!-- <template #reference>-->
|
|
||||||
<!-- <el-button size="small" plain style="margin-right: 16px">查看</el-button>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- <el-table :data="scope.row.itemVoList">-->
|
|
||||||
<!-- <el-table-column width="200" property="productName" label="品名" />-->
|
|
||||||
<!-- <el-table-column width="150" property="asin" label="asin" />-->
|
|
||||||
<!-- <el-table-column width="150" property="fnsku" label="fnsku" />-->
|
|
||||||
<!-- <el-table-column width="200" property="msku" label="msku" />-->
|
|
||||||
<!-- </el-table>-->
|
|
||||||
<!-- </el-popover>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<el-table-column label="国家" align="center" prop="shipToAddress.countryCode" />
|
|
||||||
<el-table-column label="物流中心编码" align="center" prop="destination" />
|
|
||||||
<el-table-column label="物流商地址" align="center" prop="address" />
|
|
||||||
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName" />
|
|
||||||
<!-- <el-table-column label="关联的采购单" align="center">-->
|
|
||||||
<!-- <template #default="scope">-->
|
|
||||||
<!-- <el-tag v-if="scope.row.sendOrders != null" type="success">已关联</el-tag>-->
|
|
||||||
<!-- <el-tag v-else type="info">未关联</el-tag>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<!-- <el-table-column width="150" label="仓库配送地址" align="center" prop="shipToAddress">-->
|
|
||||||
<!-- <template #default="{ row }">-->
|
|
||||||
<!-- <!– <el-button @click="openAddressDialog(row.shipToAddress)"> 查看详情</el-button>–>-->
|
|
||||||
<!-- <el-popover placement="left" :width="800" trigger="click">-->
|
|
||||||
<!-- <template #reference>-->
|
|
||||||
<!-- <!– <el-button style="margin-right: 16px">Click to activate</el-button>–>-->
|
|
||||||
<!-- <el-button plain size="small" type="success"> 点击查看详情</el-button>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- <el-descriptions title="收货地址信息" :column="3" border>-->
|
|
||||||
<!-- <el-descriptions-item v-for="item in descriptItems" :key="item.prop" :label="item.label">-->
|
|
||||||
<!-- {{ row.shipToAddress[item.prop] || 'N/A' }}-->
|
|
||||||
<!-- </el-descriptions-item>-->
|
|
||||||
<!-- </el-descriptions>-->
|
|
||||||
<!-- </el-popover>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<el-table-column label="亚马逊货件状态" align="center" width="180">
|
|
||||||
<template #default="scope">
|
|
||||||
<el-tag>{{ scope.row.shipmentStatus }}</el-tag>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
|
||||||
<!-- <template #default="scope">-->
|
|
||||||
<!-- <!– <el-tooltip content="修改" placement="top" v-if="scope.row.sendStatus === 'pending'">–>-->
|
|
||||||
<!-- <!– <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['amz:sendOrder:edit']"></el-button>–>-->
|
|
||||||
<!-- <!– </el-tooltip>–>-->
|
|
||||||
<!-- <el-tooltip content="删除" placement="top">-->
|
|
||||||
<!-- <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['amz:sendOrder:remove']"></el-button>-->
|
|
||||||
<!-- </el-tooltip>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
@ -135,6 +74,11 @@
|
|||||||
|
|
||||||
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
||||||
<el-table-column label="发货单号" align="center" prop="id" />
|
<el-table-column label="发货单号" align="center" prop="id" />
|
||||||
|
<el-table-column label="订单类型" align="center" prop="sendStatus">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :options="send_order_type" :value="scope.row.type" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="创建日期" align="center" prop="createTime" width="180">
|
<el-table-column label="创建日期" align="center" prop="createTime" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
||||||
@ -147,25 +91,20 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="采购店铺" align="center" prop="storeName" />
|
<el-table-column label="采购店铺" align="center" prop="storeName" />
|
||||||
<el-table-column label="供应商名称" align="center" prop="sendName" />
|
<el-table-column label="供应商名称" align="center" prop="sendName" />
|
||||||
<!-- <el-table-column label="物流商名称" align="center" prop="logisticsProviderName">-->
|
<el-table-column label="FBA列表" align="center" prop="sendName">
|
||||||
<!-- <template #default="{ row }">-->
|
<template #default="scope">
|
||||||
<!-- <el-popover placement="top" title="物流商地址" :width="200" trigger="click">-->
|
<el-button link type="primary" @click="handleFbaList(scope.row)" v-hasPermi="['amz:sendOrder:remove']"> 查看详情 </el-button>
|
||||||
<!-- <template #reference>-->
|
</template>
|
||||||
<!-- <el-button v-if="row.logisticsProviderName" text size="small" type="primary">-->
|
</el-table-column>
|
||||||
<!-- {{ row.logisticsProviderName }}-->
|
|
||||||
<!-- </el-button>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- <div>{{ row.address || '暂无地址' }}</div>-->
|
|
||||||
<!-- </el-popover>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<el-table-column label="产品名称" align="center" prop="productName" />
|
<el-table-column label="产品名称" align="center" prop="productName" />
|
||||||
|
<el-table-column label="SKU" align="center" prop="sku" />
|
||||||
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
||||||
<el-table-column label="箱数" align="center" prop="boxCount">
|
<el-table-column label="箱数" align="center" prop="boxCount">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-popover placement="top" title="装箱明细" :width="500" trigger="click">
|
<el-popover placement="top" title="装箱明细" :width="500" trigger="click">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button text size="small" type="primary"> {{ row.boxCount }}箱</el-button>
|
<el-button v-if="row.sendDetail !== null" text size="small" type="primary"> {{ row.boxCount }}箱 </el-button>
|
||||||
|
<el-tag type="info">暂无装箱数据</el-tag>
|
||||||
</template>
|
</template>
|
||||||
<div v-if="row.sendDetail !== null" v-html="formatText(row.sendDetail)"></div>
|
<div v-if="row.sendDetail !== null" v-html="formatText(row.sendDetail)"></div>
|
||||||
<div v-else>暂无数据</div>
|
<div v-else>暂无数据</div>
|
||||||
@ -182,9 +121,12 @@
|
|||||||
</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" v-if="scope.row.sendStatus === 'pending'">
|
<el-tooltip content="推送" placement="top" v-if="scope.row.sendStatus === 'confirmed'">
|
||||||
<el-button circle icon="Top" @click="handleUpdate(scope.row)" v-hasRoles="['superadmin', 'gengdan']"></el-button>
|
<el-button circle icon="Top" @click="handleUpdate(scope.row)" v-hasRoles="['superadmin', 'gengdan']"></el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
|
<el-tooltip content="调拨" placement="top" v-if="scope.row.sendStatus === 'confirmed'">
|
||||||
|
<el-button circle icon="Sort" @click="handleTransfer(scope.row)" v-hasRoles="['superadmin', 'gengdan']"></el-button>
|
||||||
|
</el-tooltip>
|
||||||
<el-tooltip content="删除" placement="top" v-hasRoles="['superadmin']">
|
<el-tooltip content="删除" placement="top" v-hasRoles="['superadmin']">
|
||||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['amz:sendOrder:remove']"></el-button>
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['amz:sendOrder:remove']"></el-button>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
@ -232,7 +174,7 @@
|
|||||||
<!-- <el-input v-model="form.realStoreName" placeholder="请输入实际采购店铺" />-->
|
<!-- <el-input v-model="form.realStoreName" placeholder="请输入实际采购店铺" />-->
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="发货状态" prop="sendStatus">
|
<el-form-item label="发货状态" prop="sendStatus">
|
||||||
<el-select v-model="form.sendStatus" placeholder="请选择发货状态">
|
<el-select v-model="form.sendStatus" placeholder="请选择发货状态" disabled>
|
||||||
<!-- <el-option v-for="dict in confirm_status" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>-->
|
<!-- <el-option v-for="dict in confirm_status" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>-->
|
||||||
<template v-for="dict in send_status" :key="dict.value">
|
<template v-for="dict in send_status" :key="dict.value">
|
||||||
<el-option v-if="dict.value == 'confirm'" :label="dict.label" :key="dict.value" :value="dict.value"></el-option>
|
<el-option v-if="dict.value == 'confirm'" :label="dict.label" :key="dict.value" :value="dict.value"></el-option>
|
||||||
@ -242,22 +184,125 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
|
<el-button :loading="buttonLoading" type="primary" @click="submitForm">推送给运营</el-button>
|
||||||
<el-button @click="cancel">取 消</el-button>
|
<el-button @click="cancel">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<el-dialog :title="fbaDialog.title" v-model="fbaDialog.visible" width="1200px" append-to-body>
|
||||||
|
<el-table :data="fbaDataList">
|
||||||
|
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
||||||
|
<el-table-column label="创建日期" align="center" prop="gmtCreate" width="180">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.gmtCreate, '{y}-{m}-{d}') }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column label="店铺名称" align="center" prop="sellerName" />-->
|
||||||
|
|
||||||
|
<el-table-column label="货件编号" align="center" prop="shipmentId" />
|
||||||
|
<!-- <el-table-column label="商品详情" align="center">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <el-popover placement="top" :width="750" trigger="hover">-->
|
||||||
|
<!-- <template #reference>-->
|
||||||
|
<!-- <el-button size="small" plain style="margin-right: 16px">查看</el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- <el-table :data="scope.row.itemVoList">-->
|
||||||
|
<!-- <el-table-column width="200" property="productName" label="品名" />-->
|
||||||
|
<!-- <el-table-column width="150" property="asin" label="asin" />-->
|
||||||
|
<!-- <el-table-column width="150" property="fnsku" label="fnsku" />-->
|
||||||
|
<!-- <el-table-column width="200" property="msku" label="msku" />-->
|
||||||
|
<!-- </el-table>-->
|
||||||
|
<!-- </el-popover>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<el-table-column label="国家" align="center" prop="shipToAddress.countryCode" />
|
||||||
|
<el-table-column label="物流中心编码" align="center" prop="destination" />
|
||||||
|
<el-table-column label="箱数" align="center" prop="boxQuantity" />
|
||||||
|
<el-table-column label="申报量" property="setTotal" width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.row.setTotal }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="物流商地址" align="center" prop="address" />
|
||||||
|
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName" />
|
||||||
|
<!-- <el-table-column label="关联的采购单" align="center">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <el-tag v-if="scope.row.sendOrders != null" type="success">已关联</el-tag>-->
|
||||||
|
<!-- <el-tag v-else type="info">未关联</el-tag>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<!-- <el-table-column width="150" label="仓库配送地址" align="center" prop="shipToAddress">-->
|
||||||
|
<!-- <template #default="{ row }">-->
|
||||||
|
<!-- <!– <el-button @click="openAddressDialog(row.shipToAddress)"> 查看详情</el-button>–>-->
|
||||||
|
<!-- <el-popover placement="left" :width="800" trigger="click">-->
|
||||||
|
<!-- <template #reference>-->
|
||||||
|
<!-- <!– <el-button style="margin-right: 16px">Click to activate</el-button>–>-->
|
||||||
|
<!-- <el-button plain size="small" type="success"> 点击查看详情</el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- <el-descriptions title="收货地址信息" :column="3" border>-->
|
||||||
|
<!-- <el-descriptions-item v-for="item in descriptItems" :key="item.prop" :label="item.label">-->
|
||||||
|
<!-- {{ row.shipToAddress[item.prop] || 'N/A' }}-->
|
||||||
|
<!-- </el-descriptions-item>-->
|
||||||
|
<!-- </el-descriptions>-->
|
||||||
|
<!-- </el-popover>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<!-- <el-table-column label="亚马逊货件状态" align="center" width="180">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <el-tag>{{ scope.row.shipmentStatus }}</el-tag>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <!– <el-tooltip content="修改" placement="top" v-if="scope.row.sendStatus === 'pending'">–>-->
|
||||||
|
<!-- <!– <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['amz:sendOrder:edit']"></el-button>–>-->
|
||||||
|
<!-- <!– </el-tooltip>–>-->
|
||||||
|
<!-- <el-tooltip content="删除" placement="top">-->
|
||||||
|
<!-- <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['amz:sendOrder:remove']"></el-button>-->
|
||||||
|
<!-- </el-tooltip>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
</el-table>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
|
<el-dialog :title="transferDialog.title" v-model="transferDialog.visible" width="1000px" append-to-body>
|
||||||
|
<el-form ref="sendOrderFormRef" :model="transferForm" :rules="rules3" label-width="120px">
|
||||||
|
<el-form-item label="采购单号" prop="orderSn">
|
||||||
|
<el-input v-model="transferForm.orderSn" placeholder="请输入采购单号" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="产品名称" prop="productName">
|
||||||
|
<el-input v-model="transferForm.productName" placeholder="请输入产品名称" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="店铺名称" prop="productName">
|
||||||
|
<el-input v-model="transferForm.storeName" placeholder="请输入产品名称" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="发货总数" prop="quantitySend">
|
||||||
|
<el-input-number :min="1" :max="quantity" controls-position="right" v-model="transferForm.quantitySend" placeholder="发货总数" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button :loading="buttonLoading" type="primary" @click="transforSubmitForm">提 交</el-button>
|
||||||
|
<el-button @click="transferDialog.visible = false">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="SendOrder" lang="ts">
|
<script setup name="SendOrder" lang="ts">
|
||||||
import { listSendOrder, getSendOrder, delSendOrder, addSendOrder, updateSendOrder } from '@/api/amz/sendOrder';
|
import { listSendOrder, getSendOrder, delSendOrder, addSendOrder, updateSendOrder, transferSendOrder } from '@/api/amz/sendOrder';
|
||||||
import { SendOrderVO, SendOrderQuery, SendOrderForm } from '@/api/amz/sendOrder/types';
|
import { SendOrderVO, SendOrderQuery, SendOrderForm } from '@/api/amz/sendOrder/types';
|
||||||
import { formatText, parseTime } from '@/utils/asinkj';
|
import { deepClone, formatText, parseTime } from '@/utils/asinkj';
|
||||||
import { ElTable } from 'element-plus';
|
import { ElTable } from 'element-plus';
|
||||||
|
import { ShipmentPlanVO } from '@/api/amz/shipmentPlan/types';
|
||||||
|
import router from '@/router';
|
||||||
|
|
||||||
|
const route = useRoute();
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
const { send_status } = toRefs<any>(proxy?.useDict('send_status'));
|
const { send_status } = toRefs<any>(proxy?.useDict('send_status'));
|
||||||
|
const { send_order_type } = toRefs<any>(proxy?.useDict('send_order_type'));
|
||||||
|
|
||||||
const sendOrderList = ref<SendOrderVO[]>([]);
|
const sendOrderList = ref<SendOrderVO[]>([]);
|
||||||
const buttonLoading = ref(false);
|
const buttonLoading = ref(false);
|
||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
@ -267,14 +312,28 @@ const single = ref(true);
|
|||||||
const multiple = ref(true);
|
const multiple = ref(true);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
|
|
||||||
|
const quantity = ref(10);
|
||||||
|
|
||||||
const queryFormRef = ref<ElFormInstance>();
|
const queryFormRef = ref<ElFormInstance>();
|
||||||
const sendOrderFormRef = ref<ElFormInstance>();
|
const sendOrderFormRef = ref<ElFormInstance>();
|
||||||
|
|
||||||
|
const fbaDataList = ref<ShipmentPlanVO[]>([]);
|
||||||
|
|
||||||
const dialog = reactive<DialogOption>({
|
const dialog = reactive<DialogOption>({
|
||||||
visible: false,
|
visible: false,
|
||||||
title: ''
|
title: ''
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const fbaDialog = reactive<DialogOption>({
|
||||||
|
visible: false,
|
||||||
|
title: ''
|
||||||
|
});
|
||||||
|
|
||||||
|
const transferDialog = reactive<DialogOption>({
|
||||||
|
visible: false,
|
||||||
|
title: '创建调拨'
|
||||||
|
});
|
||||||
|
|
||||||
const initFormData: SendOrderForm = {
|
const initFormData: SendOrderForm = {
|
||||||
id: undefined,
|
id: undefined,
|
||||||
orderSn: undefined,
|
orderSn: undefined,
|
||||||
@ -319,10 +378,17 @@ const data = reactive<PageData<SendOrderForm, SendOrderQuery>>({
|
|||||||
weightPerBox: [{ required: true, message: '单箱重量不能为空', trigger: 'blur' }],
|
weightPerBox: [{ required: true, message: '单箱重量不能为空', trigger: 'blur' }],
|
||||||
realStoreName: [{ required: true, message: '实际采购店铺不能为空', trigger: 'blur' }],
|
realStoreName: [{ required: true, message: '实际采购店铺不能为空', trigger: 'blur' }],
|
||||||
sendStatus: [{ required: true, message: '发货状态不能为空', trigger: 'change' }]
|
sendStatus: [{ required: true, message: '发货状态不能为空', trigger: 'change' }]
|
||||||
|
},
|
||||||
|
rules3: {
|
||||||
|
orderSn: [{ required: true, message: '采购单号不能为空', trigger: 'blur' }],
|
||||||
|
// sendDate: [{ required: true, message: '发货日期不能为空', trigger: 'blur' }],
|
||||||
|
storeName: [{ required: true, message: '采购店铺不能为空', trigger: 'blur' }],
|
||||||
|
productName: [{ required: true, message: '产品名称不能为空', trigger: 'blur' }],
|
||||||
|
quantitySend: [{ required: true, message: '发货数量不能为空', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules, rules3 } = toRefs(data);
|
||||||
|
|
||||||
/** 查询供应商创建的发货单列表 */
|
/** 查询供应商创建的发货单列表 */
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
@ -358,6 +424,12 @@ const resetQuery = () => {
|
|||||||
handleQuery();
|
handleQuery();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleFbaList = async (row?: SendOrderVO) => {
|
||||||
|
fbaDataList.value = row.bizShipmentPlans;
|
||||||
|
fbaDialog.visible = true;
|
||||||
|
fbaDialog.title = 'FBA货件列表';
|
||||||
|
};
|
||||||
|
|
||||||
/** 多选框选中数据 */
|
/** 多选框选中数据 */
|
||||||
const handleSelectionChange = (selection: SendOrderVO[]) => {
|
const handleSelectionChange = (selection: SendOrderVO[]) => {
|
||||||
ids.value = selection.map((item) => item.id);
|
ids.value = selection.map((item) => item.id);
|
||||||
@ -383,6 +455,25 @@ const handleUpdate = async (row?: SendOrderVO) => {
|
|||||||
dialog.title = '推送发货单';
|
dialog.title = '推送发货单';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const transferForm = ref<SendOrderVO>();
|
||||||
|
|
||||||
|
const handleTransfer = async (row?: SendOrderVO) => {
|
||||||
|
//调拨
|
||||||
|
console.log('row', row);
|
||||||
|
transferForm.value = deepClone(row);
|
||||||
|
transferDialog.visible = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
const transforSubmitForm = async () => {
|
||||||
|
// 调拨后端接口
|
||||||
|
transferDialog.visible = false;
|
||||||
|
console.log('transferForm', transferForm.value);
|
||||||
|
// return;
|
||||||
|
const res = await transferSendOrder(transferForm.value);
|
||||||
|
proxy?.$modal.msgSuccess('操作成功');
|
||||||
|
await getList();
|
||||||
|
};
|
||||||
|
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
const submitForm = () => {
|
const submitForm = () => {
|
||||||
sendOrderFormRef.value?.validate(async (valid: boolean) => {
|
sendOrderFormRef.value?.validate(async (valid: boolean) => {
|
||||||
|
@ -60,78 +60,22 @@
|
|||||||
<el-table-column type="expand">
|
<el-table-column type="expand">
|
||||||
<template #default="props">
|
<template #default="props">
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<el-table :data="props.row.bizShipmentPlans">
|
<el-table v-loading="loading" :data="props.row.items" :border="true" size="small" :header-cell-style="{ fontSize: '10px' }">
|
||||||
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
||||||
<el-table-column label="创建日期" align="center" prop="gmtCreate" width="180">
|
<el-table-column label="产品名称" align="center" prop="productName" />
|
||||||
<template #default="scope">
|
<el-table-column label="SKU" align="center" prop="sku" />
|
||||||
<span>{{ parseTime(scope.row.gmtCreate, '{y}-{m}-{d}') }}</span>
|
<el-table-column label="采购数量" align="center" prop="quantitySend" />
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<!-- <el-table-column label="店铺名称" align="center" prop="sellerName" />-->
|
|
||||||
|
|
||||||
<el-table-column label="货件编号" align="center" prop="shipmentId" />
|
|
||||||
<!-- <el-table-column label="商品详情" align="center">-->
|
|
||||||
<!-- <template #default="scope">-->
|
|
||||||
<!-- <el-popover placement="top" :width="750" trigger="hover">-->
|
|
||||||
<!-- <template #reference>-->
|
|
||||||
<!-- <el-button size="small" plain style="margin-right: 16px">查看</el-button>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- <el-table :data="scope.row.itemVoList">-->
|
|
||||||
<!-- <el-table-column width="200" property="productName" label="品名" />-->
|
|
||||||
<!-- <el-table-column width="150" property="asin" label="asin" />-->
|
|
||||||
<!-- <el-table-column width="150" property="fnsku" label="fnsku" />-->
|
|
||||||
<!-- <el-table-column width="200" property="msku" label="msku" />-->
|
|
||||||
<!-- </el-table>-->
|
|
||||||
<!-- </el-popover>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<el-table-column label="国家" align="center" prop="shipToAddress.countryCode" />
|
|
||||||
<el-table-column label="物流中心编码" align="center" prop="destination" />
|
|
||||||
<el-table-column label="物流商地址" align="center" prop="address" />
|
|
||||||
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName" />
|
|
||||||
<!-- <el-table-column label="关联的采购单" align="center">-->
|
|
||||||
<!-- <template #default="scope">-->
|
|
||||||
<!-- <el-tag v-if="scope.row.sendOrders != null" type="success">已关联</el-tag>-->
|
|
||||||
<!-- <el-tag v-else type="info">未关联</el-tag>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<!-- <el-table-column width="150" label="仓库配送地址" align="center" prop="shipToAddress">-->
|
|
||||||
<!-- <template #default="{ row }">-->
|
|
||||||
<!-- <!– <el-button @click="openAddressDialog(row.shipToAddress)"> 查看详情</el-button>–>-->
|
|
||||||
<!-- <el-popover placement="left" :width="800" trigger="click">-->
|
|
||||||
<!-- <template #reference>-->
|
|
||||||
<!-- <!– <el-button style="margin-right: 16px">Click to activate</el-button>–>-->
|
|
||||||
<!-- <el-button plain size="small" type="success"> 点击查看详情</el-button>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- <el-descriptions title="收货地址信息" :column="3" border>-->
|
|
||||||
<!-- <el-descriptions-item v-for="item in descriptItems" :key="item.prop" :label="item.label">-->
|
|
||||||
<!-- {{ row.shipToAddress[item.prop] || 'N/A' }}-->
|
|
||||||
<!-- </el-descriptions-item>-->
|
|
||||||
<!-- </el-descriptions>-->
|
|
||||||
<!-- </el-popover>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<!-- <el-table-column label="亚马逊货件状态" align="center" width="180">-->
|
|
||||||
<!-- <template #default="scope">-->
|
|
||||||
<!-- <el-tag>{{ scope.row.shipmentStatus }}</el-tag>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
|
||||||
<!-- <template #default="scope">-->
|
|
||||||
<!-- <!– <el-tooltip content="修改" placement="top" v-if="scope.row.sendStatus === 'pending'">–>-->
|
|
||||||
<!-- <!– <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['amz:sendOrder:edit']"></el-button>–>-->
|
|
||||||
<!-- <!– </el-tooltip>–>-->
|
|
||||||
<!-- <el-tooltip content="删除" placement="top">-->
|
|
||||||
<!-- <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['amz:sendOrder:remove']"></el-button>-->
|
|
||||||
<!-- </el-tooltip>-->
|
|
||||||
<!-- </template>-->
|
|
||||||
<!-- </el-table-column>-->
|
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
||||||
<el-table-column label="发货单号" align="center" prop="id" />
|
<el-table-column label="发货单号" align="center" prop="id" />
|
||||||
|
<el-table-column label="订单类型" align="center" prop="sendStatus">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :options="send_order_type" :value="scope.row.type" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="创建日期" align="center" prop="createTime" width="180">
|
<el-table-column label="创建日期" align="center" prop="createTime" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
||||||
@ -144,6 +88,12 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="采购店铺" align="center" prop="storeName" />
|
<el-table-column label="采购店铺" align="center" prop="storeName" />
|
||||||
<el-table-column label="供应商名称" align="center" prop="sendName" />
|
<el-table-column label="供应商名称" align="center" prop="sendName" />
|
||||||
|
<el-table-column label="FBA列表" align="center" prop="sendName">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button link type="primary" @click="handleFbaList(scope.row)" v-hasPermi="['amz:sendOrder:remove']"> 查看详情 </el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
<!-- <el-table-column label="物流商名称" align="center" prop="logisticsProviderName">-->
|
<!-- <el-table-column label="物流商名称" align="center" prop="logisticsProviderName">-->
|
||||||
<!-- <template #default="{ row }">-->
|
<!-- <template #default="{ row }">-->
|
||||||
<!-- <el-popover placement="top" title="物流商地址" :width="200" trigger="click">-->
|
<!-- <el-popover placement="top" title="物流商地址" :width="200" trigger="click">-->
|
||||||
@ -157,12 +107,14 @@
|
|||||||
<!-- </template>-->
|
<!-- </template>-->
|
||||||
<!-- </el-table-column>-->
|
<!-- </el-table-column>-->
|
||||||
<el-table-column label="产品名称" align="center" prop="productName" />
|
<el-table-column label="产品名称" align="center" prop="productName" />
|
||||||
|
<el-table-column label="SKU" align="center" prop="sku" />
|
||||||
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
||||||
<el-table-column label="箱数" align="center" prop="boxCount">
|
<el-table-column label="箱数" align="center" prop="boxCount">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-popover placement="top" title="装箱明细" :width="500" trigger="click">
|
<el-popover placement="top" title="装箱明细" :width="500" trigger="click">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button text size="small" type="primary"> {{ row.boxCount }}箱</el-button>
|
<el-button v-if="row.sendDetail !== null" text size="small" type="primary"> {{ row.boxCount }}箱 </el-button>
|
||||||
|
<el-tag type="info">暂无装箱数据</el-tag>
|
||||||
</template>
|
</template>
|
||||||
<div v-if="row.sendDetail !== null" v-html="formatText(row.sendDetail)"></div>
|
<div v-if="row.sendDetail !== null" v-html="formatText(row.sendDetail)"></div>
|
||||||
<div v-else>暂无数据</div>
|
<div v-else>暂无数据</div>
|
||||||
@ -255,6 +207,81 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<el-dialog :title="fbaDialog.title" v-model="fbaDialog.visible" width="1200px" append-to-body>
|
||||||
|
<el-table :data="fbaDataList">
|
||||||
|
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
||||||
|
<el-table-column label="创建日期" align="center" prop="gmtCreate" width="180">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.gmtCreate, '{y}-{m}-{d}') }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column label="店铺名称" align="center" prop="sellerName" />-->
|
||||||
|
|
||||||
|
<el-table-column label="货件编号" align="center" prop="shipmentId" />
|
||||||
|
<!-- <el-table-column label="商品详情" align="center">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <el-popover placement="top" :width="750" trigger="hover">-->
|
||||||
|
<!-- <template #reference>-->
|
||||||
|
<!-- <el-button size="small" plain style="margin-right: 16px">查看</el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- <el-table :data="scope.row.itemVoList">-->
|
||||||
|
<!-- <el-table-column width="200" property="productName" label="品名" />-->
|
||||||
|
<!-- <el-table-column width="150" property="asin" label="asin" />-->
|
||||||
|
<!-- <el-table-column width="150" property="fnsku" label="fnsku" />-->
|
||||||
|
<!-- <el-table-column width="200" property="msku" label="msku" />-->
|
||||||
|
<!-- </el-table>-->
|
||||||
|
<!-- </el-popover>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<el-table-column label="国家" align="center" prop="shipToAddress.countryCode" />
|
||||||
|
<el-table-column label="物流中心编码" align="center" prop="destination" />
|
||||||
|
<el-table-column label="箱数" align="center" prop="boxQuantity" />
|
||||||
|
<el-table-column label="申报量" property="setTotal" width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.row.setTotal }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="物流商地址" align="center" prop="address" />
|
||||||
|
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName" />
|
||||||
|
<!-- <el-table-column label="关联的采购单" align="center">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <el-tag v-if="scope.row.sendOrders != null" type="success">已关联</el-tag>-->
|
||||||
|
<!-- <el-tag v-else type="info">未关联</el-tag>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<!-- <el-table-column width="150" label="仓库配送地址" align="center" prop="shipToAddress">-->
|
||||||
|
<!-- <template #default="{ row }">-->
|
||||||
|
<!-- <!– <el-button @click="openAddressDialog(row.shipToAddress)"> 查看详情</el-button>–>-->
|
||||||
|
<!-- <el-popover placement="left" :width="800" trigger="click">-->
|
||||||
|
<!-- <template #reference>-->
|
||||||
|
<!-- <!– <el-button style="margin-right: 16px">Click to activate</el-button>–>-->
|
||||||
|
<!-- <el-button plain size="small" type="success"> 点击查看详情</el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- <el-descriptions title="收货地址信息" :column="3" border>-->
|
||||||
|
<!-- <el-descriptions-item v-for="item in descriptItems" :key="item.prop" :label="item.label">-->
|
||||||
|
<!-- {{ row.shipToAddress[item.prop] || 'N/A' }}-->
|
||||||
|
<!-- </el-descriptions-item>-->
|
||||||
|
<!-- </el-descriptions>-->
|
||||||
|
<!-- </el-popover>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<!-- <el-table-column label="亚马逊货件状态" align="center" width="180">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <el-tag>{{ scope.row.shipmentStatus }}</el-tag>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <!– <el-tooltip content="修改" placement="top" v-if="scope.row.sendStatus === 'pending'">–>-->
|
||||||
|
<!-- <!– <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['amz:sendOrder:edit']"></el-button>–>-->
|
||||||
|
<!-- <!– </el-tooltip>–>-->
|
||||||
|
<!-- <el-tooltip content="删除" placement="top">-->
|
||||||
|
<!-- <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['amz:sendOrder:remove']"></el-button>-->
|
||||||
|
<!-- </el-tooltip>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
</el-table>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -263,10 +290,17 @@ import { listSendOrder, getSendOrder, delSendOrder, addSendOrder, updateSendOrde
|
|||||||
import { SendOrderVO, SendOrderQuery, SendOrderForm } from '@/api/amz/sendOrder/types';
|
import { SendOrderVO, SendOrderQuery, SendOrderForm } from '@/api/amz/sendOrder/types';
|
||||||
import { formatText, parseTime } from '@/utils/asinkj';
|
import { formatText, parseTime } from '@/utils/asinkj';
|
||||||
import { ElTable } from 'element-plus';
|
import { ElTable } from 'element-plus';
|
||||||
|
import { ShipmentPlanVO } from '@/api/amz/shipmentPlan/types';
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
const { send_status } = toRefs<any>(proxy?.useDict('send_status'));
|
const { send_status } = toRefs<any>(proxy?.useDict('send_status'));
|
||||||
|
|
||||||
|
const { vendor_order_status } = toRefs<any>(proxy?.useDict('vendor_order_status'));
|
||||||
|
|
||||||
|
const { send_order_type } = toRefs<any>(proxy?.useDict('send_order_type'));
|
||||||
|
|
||||||
|
const { purchase_order_status } = toRefs<any>(proxy?.useDict('purchase_order_status'));
|
||||||
|
|
||||||
const sendOrderList = ref<SendOrderVO[]>([]);
|
const sendOrderList = ref<SendOrderVO[]>([]);
|
||||||
const buttonLoading = ref(false);
|
const buttonLoading = ref(false);
|
||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
@ -284,6 +318,13 @@ const dialog = reactive<DialogOption>({
|
|||||||
title: ''
|
title: ''
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const fbaDialog = reactive<DialogOption>({
|
||||||
|
visible: false,
|
||||||
|
title: ''
|
||||||
|
});
|
||||||
|
|
||||||
|
const fbaDataList = ref<ShipmentPlanVO[]>([]);
|
||||||
|
|
||||||
const initFormData: SendOrderForm = {
|
const initFormData: SendOrderForm = {
|
||||||
id: undefined,
|
id: undefined,
|
||||||
orderSn: undefined,
|
orderSn: undefined,
|
||||||
@ -418,6 +459,12 @@ const handleDelete = async (row?: SendOrderVO) => {
|
|||||||
await getList();
|
await getList();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleFbaList = async (row?: SendOrderVO) => {
|
||||||
|
fbaDataList.value = row.bizShipmentPlans;
|
||||||
|
fbaDialog.visible = true;
|
||||||
|
fbaDialog.title = 'FBA货件列表';
|
||||||
|
};
|
||||||
|
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
const handleExport = () => {
|
const handleExport = () => {
|
||||||
proxy?.download(
|
proxy?.download(
|
||||||
@ -433,66 +480,66 @@ onMounted(() => {
|
|||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<!--<style scoped>-->
|
||||||
/* 展开行容器 */
|
<!--/* 展开行容器 */-->
|
||||||
:deep(.el-table__expanded-cell) {
|
<!--:deep(.el-table__expanded-cell) {-->
|
||||||
background: #f5fbfd !important;
|
<!-- background: #f5fbfd !important;-->
|
||||||
padding: 0 !important;
|
<!-- padding: 0 !important;-->
|
||||||
border-bottom: none !important;
|
<!-- border-bottom: none !important;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 内嵌表格容器 */
|
<!--/* 内嵌表格容器 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table {
|
<!--:deep(.el-table__expanded-cell) .el-table {-->
|
||||||
--el-table-bg-color: #ebf3ff !important;
|
<!-- --el-table-bg-color: #ebf3ff !important;-->
|
||||||
--el-table-tr-bg-color: #f5fbfd !important;
|
<!-- --el-table-tr-bg-color: #f5fbfd !important;-->
|
||||||
--el-table-header-bg-color: #cfe2ff !important; /* 表头变量 */
|
<!-- --el-table-header-bg-color: #cfe2ff !important; /* 表头变量 */-->
|
||||||
--el-table-header-text-color: #2c3e50 !important; /* 新增文字颜色 */
|
<!-- --el-table-header-text-color: #2c3e50 !important; /* 新增文字颜色 */-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 表格主体容器 */
|
<!--/* 表格主体容器 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__body-wrapper {
|
<!--:deep(.el-table__expanded-cell) .el-table__body-wrapper {-->
|
||||||
background: #ebf3ff !important;
|
<!-- background: #ebf3ff !important;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 表头单元格精准控制 */
|
<!--/* 表头单元格精准控制 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__header th {
|
<!--:deep(.el-table__expanded-cell) .el-table__header th {-->
|
||||||
background-color: #cfe2ff !important; /* 覆盖默认背景 */
|
<!-- background-color: #cfe2ff !important; /* 覆盖默认背景 */-->
|
||||||
border-bottom: 2px solid #a6c5ff !important; /* 表头下边框 */
|
<!-- border-bottom: 2px solid #a6c5ff !important; /* 表头下边框 */-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 表头文字样式 */
|
<!--/* 表头文字样式 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .cell {
|
<!--:deep(.el-table__expanded-cell) .el-table__header .cell {-->
|
||||||
color: #1a2b3c !important;
|
<!-- color: #1a2b3c !important;-->
|
||||||
font-weight: 600; /* 加粗字体 */
|
<!-- font-weight: 600; /* 加粗字体 */-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 单元格背景 */
|
<!--/* 单元格背景 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__body tr td {
|
<!--:deep(.el-table__expanded-cell) .el-table__body tr td {-->
|
||||||
background-color: transparent !important;
|
<!-- background-color: transparent !important;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 消除卡片干扰 */
|
<!--/* 消除卡片干扰 */-->
|
||||||
:deep(.el-card) {
|
<!--:deep(.el-card) {-->
|
||||||
background: transparent !important;
|
<!-- background: transparent !important;-->
|
||||||
border: none !important;
|
<!-- border: none !important;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 内嵌表格hover效果 */
|
<!--/* 内嵌表格hover效果 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__body tr:hover > td {
|
<!--:deep(.el-table__expanded-cell) .el-table__body tr:hover > td {-->
|
||||||
background-color: #ffffff !important;
|
<!-- background-color: #ffffff !important;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 表头hover状态 */
|
<!--/* 表头hover状态 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__header tr:hover th {
|
<!--:deep(.el-table__expanded-cell) .el-table__header tr:hover th {-->
|
||||||
background-color: #b6d4ff !important;
|
<!-- background-color: #b6d4ff !important;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 表头排序按钮颜色 */
|
<!--/* 表头排序按钮颜色 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .sort-caret.ascending {
|
<!--:deep(.el-table__expanded-cell) .el-table__header .sort-caret.ascending {-->
|
||||||
border-bottom-color: #1a2b3c;
|
<!-- border-bottom-color: #1a2b3c;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .sort-caret.descending {
|
<!--:deep(.el-table__expanded-cell) .el-table__header .sort-caret.descending {-->
|
||||||
border-top-color: #1a2b3c;
|
<!-- border-top-color: #1a2b3c;-->
|
||||||
}
|
<!--}-->
|
||||||
</style>
|
<!--</style>-->
|
||||||
|
@ -178,21 +178,29 @@
|
|||||||
<el-table-column label="货件编号" align="center" prop="shipmentId" />
|
<el-table-column label="货件编号" align="center" prop="shipmentId" />
|
||||||
<el-table-column label="商品详情" align="center">
|
<el-table-column label="商品详情" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-popover placement="top" :width="750" trigger="hover" @show="showPop(scope.row)">
|
<el-popover placement="top" :width="950" trigger="hover" @show="showPop(scope.row)">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button size="small" plain style="margin-right: 16px">查看</el-button>
|
<el-button size="small" plain style="margin-right: 16px">查看</el-button>
|
||||||
</template>
|
</template>
|
||||||
<el-table :data="scope.row.itemVoList">
|
<el-table :data="scope.row.itemVoList">
|
||||||
<el-table-column width="200" property="productName" label="品名" />
|
<el-table-column width="200" property="productName" label="品名" />
|
||||||
|
<el-table-column width="150" property="sku" label="sku" />
|
||||||
<el-table-column width="150" property="asin" label="asin" />
|
<el-table-column width="150" property="asin" label="asin" />
|
||||||
|
<el-table-column width="80" property="quantityShipped" label="申报量" />
|
||||||
<el-table-column width="150" property="fnsku" label="fnsku" />
|
<el-table-column width="150" property="fnsku" label="fnsku" />
|
||||||
<el-table-column width="200" property="msku" label="msku" />
|
<el-table-column width="200" property="msku" label="msku" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="申报量" property="quantityShipped" width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.row.quantityShipped }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="国家" align="center" prop="shipToAddress.countryCode" />
|
<el-table-column label="国家" align="center" prop="shipToAddress.countryCode" />
|
||||||
<el-table-column label="物流中心编码" align="center" prop="destination" />
|
<el-table-column label="物流中心编码" align="center" prop="destination" />
|
||||||
|
<el-table-column label="箱数" align="center" prop="boxQuantity" />
|
||||||
<el-table-column label="关联的采购单" align="center">
|
<el-table-column label="关联的采购单" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-tag v-if="scope.row.sendOrders != null" type="success">已关联</el-tag>
|
<el-tag v-if="scope.row.sendOrders != null" type="success">已关联</el-tag>
|
||||||
@ -316,7 +324,7 @@
|
|||||||
<el-switch v-model="customsFlag" active-value="1" inactive-value="0" />
|
<el-switch v-model="customsFlag" active-value="1" inactive-value="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="物流渠道">
|
<el-form-item label="物流渠道" required="true">
|
||||||
<el-cascader
|
<el-cascader
|
||||||
ref="channelCascaderRef"
|
ref="channelCascaderRef"
|
||||||
v-model="selectedChannel"
|
v-model="selectedChannel"
|
||||||
@ -561,7 +569,7 @@ import { LogisticsQuoteVO } from '@/api/amz/logisticsQuote/types';
|
|||||||
import { createOrderForm } from '@/api/amz/logisticsOrder/types';
|
import { createOrderForm } from '@/api/amz/logisticsOrder/types';
|
||||||
import { createLogisticsOrder } from '@/api/amz/logisticsOrder';
|
import { createLogisticsOrder } from '@/api/amz/logisticsOrder';
|
||||||
import { InquiryRequestItemVO } from '@/api/amz/inquiryRequest/types';
|
import { InquiryRequestItemVO } from '@/api/amz/inquiryRequest/types';
|
||||||
import { listSendOrder } from '@/api/amz/sendOrder';
|
import { coverSendOrder, listSendOrder } from '@/api/amz/sendOrder';
|
||||||
import { PurchaseOrderVO } from '@/api/amz/purchaseOrder/types';
|
import { PurchaseOrderVO } from '@/api/amz/purchaseOrder/types';
|
||||||
import { SendOrderVO } from '@/api/amz/sendOrder/types';
|
import { SendOrderVO } from '@/api/amz/sendOrder/types';
|
||||||
import { formatText } from '@/utils/asinkj';
|
import { formatText } from '@/utils/asinkj';
|
||||||
@ -749,6 +757,7 @@ const orderQueryParams = ref({
|
|||||||
weightPerBox: undefined,
|
weightPerBox: undefined,
|
||||||
realStoreName: undefined,
|
realStoreName: undefined,
|
||||||
sendStatus: 'confirm',
|
sendStatus: 'confirm',
|
||||||
|
skus: [],
|
||||||
params: {}
|
params: {}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -935,9 +944,16 @@ const batchLinkOrderAction = async () => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('selectionDatas', selectionDatas.value);
|
||||||
|
|
||||||
orderQueryParams.value.sendStatus = 'confirm,completed,set_store';
|
orderQueryParams.value.sendStatus = 'confirm,completed,set_store';
|
||||||
|
// 安全访问可能缺失的 skus(如果接口定义可能没有 skus)
|
||||||
|
const skuCollection: string[] = selectionDatas.value.flatMap(
|
||||||
|
(sdata) => sdata.itemVoList?.map((s) => s.sku) || [] // 如果 skus 不存在返回空数组
|
||||||
|
);
|
||||||
|
orderQueryParams.value.skus = skuCollection;
|
||||||
console.log('orderQueryParams', orderQueryParams.value);
|
console.log('orderQueryParams', orderQueryParams.value);
|
||||||
const res = await listSendOrder(orderQueryParams.value);
|
const res = await coverSendOrder(orderQueryParams.value);
|
||||||
sendOrderList.value = res.rows;
|
sendOrderList.value = res.rows;
|
||||||
|
|
||||||
orderTableVisible.visible = true;
|
orderTableVisible.visible = true;
|
||||||
@ -1407,6 +1423,11 @@ const submitForm = () => {
|
|||||||
console.log('selectedChannel', selectedChannel);
|
console.log('selectedChannel', selectedChannel);
|
||||||
console.log('groupedChannels', groupedChannels);
|
console.log('groupedChannels', groupedChannels);
|
||||||
|
|
||||||
|
console.log('channelCascaderRef.value.getCheckedNodes()', channelCascaderRef.value.getCheckedNodes());
|
||||||
|
if (channelCascaderRef.value.getCheckedNodes()[0] == null) {
|
||||||
|
ElMessage.error('请选择物流渠道');
|
||||||
|
return;
|
||||||
|
}
|
||||||
// console.log('channelCascaderRef', channelCascaderRef);
|
// console.log('channelCascaderRef', channelCascaderRef);
|
||||||
console.log('label====', channelCascaderRef.value.getCheckedNodes()[0].label);
|
console.log('label====', channelCascaderRef.value.getCheckedNodes()[0].label);
|
||||||
form.value.channelName = channelCascaderRef.value.getCheckedNodes()[0].label;
|
form.value.channelName = channelCascaderRef.value.getCheckedNodes()[0].label;
|
||||||
@ -1509,66 +1530,66 @@ onMounted(() => {
|
|||||||
getAllChannelData();
|
getAllChannelData();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<!--<style scoped>-->
|
||||||
/* 展开行容器 */
|
<!--/* 展开行容器 */-->
|
||||||
:deep(.el-table__expanded-cell) {
|
<!--:deep(.el-table__expanded-cell) {-->
|
||||||
background: #f5fbfd !important;
|
<!-- background: #f5fbfd !important;-->
|
||||||
padding: 0 !important;
|
<!-- padding: 0 !important;-->
|
||||||
border-bottom: none !important;
|
<!-- border-bottom: none !important;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 内嵌表格容器 */
|
<!--/* 内嵌表格容器 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table {
|
<!--:deep(.el-table__expanded-cell) .el-table {-->
|
||||||
--el-table-bg-color: #ebf3ff !important;
|
<!-- --el-table-bg-color: #ebf3ff !important;-->
|
||||||
--el-table-tr-bg-color: #f5fbfd !important;
|
<!-- --el-table-tr-bg-color: #f5fbfd !important;-->
|
||||||
--el-table-header-bg-color: #cfe2ff !important; /* 表头变量 */
|
<!-- --el-table-header-bg-color: #cfe2ff !important; /* 表头变量 */-->
|
||||||
--el-table-header-text-color: #2c3e50 !important; /* 新增文字颜色 */
|
<!-- --el-table-header-text-color: #2c3e50 !important; /* 新增文字颜色 */-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 表格主体容器 */
|
<!--/* 表格主体容器 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__body-wrapper {
|
<!--:deep(.el-table__expanded-cell) .el-table__body-wrapper {-->
|
||||||
background: #ebf3ff !important;
|
<!-- background: #ebf3ff !important;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 表头单元格精准控制 */
|
<!--/* 表头单元格精准控制 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__header th {
|
<!--:deep(.el-table__expanded-cell) .el-table__header th {-->
|
||||||
background-color: #cfe2ff !important; /* 覆盖默认背景 */
|
<!-- background-color: #cfe2ff !important; /* 覆盖默认背景 */-->
|
||||||
border-bottom: 2px solid #a6c5ff !important; /* 表头下边框 */
|
<!-- border-bottom: 2px solid #a6c5ff !important; /* 表头下边框 */-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 表头文字样式 */
|
<!--/* 表头文字样式 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .cell {
|
<!--:deep(.el-table__expanded-cell) .el-table__header .cell {-->
|
||||||
color: #1a2b3c !important;
|
<!-- color: #1a2b3c !important;-->
|
||||||
font-weight: 600; /* 加粗字体 */
|
<!-- font-weight: 600; /* 加粗字体 */-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 单元格背景 */
|
<!--/* 单元格背景 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__body tr td {
|
<!--:deep(.el-table__expanded-cell) .el-table__body tr td {-->
|
||||||
background-color: transparent !important;
|
<!-- background-color: transparent !important;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 消除卡片干扰 */
|
<!--/* 消除卡片干扰 */-->
|
||||||
:deep(.el-card) {
|
<!--:deep(.el-card) {-->
|
||||||
background: transparent !important;
|
<!-- background: transparent !important;-->
|
||||||
border: none !important;
|
<!-- border: none !important;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 内嵌表格hover效果 */
|
<!--/* 内嵌表格hover效果 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__body tr:hover > td {
|
<!--:deep(.el-table__expanded-cell) .el-table__body tr:hover > td {-->
|
||||||
background-color: #ffffff !important;
|
<!-- background-color: #ffffff !important;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 表头hover状态 */
|
<!--/* 表头hover状态 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__header tr:hover th {
|
<!--:deep(.el-table__expanded-cell) .el-table__header tr:hover th {-->
|
||||||
background-color: #b6d4ff !important;
|
<!-- background-color: #b6d4ff !important;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
/* 表头排序按钮颜色 */
|
<!--/* 表头排序按钮颜色 */-->
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .sort-caret.ascending {
|
<!--:deep(.el-table__expanded-cell) .el-table__header .sort-caret.ascending {-->
|
||||||
border-bottom-color: #1a2b3c;
|
<!-- border-bottom-color: #1a2b3c;-->
|
||||||
}
|
<!--}-->
|
||||||
|
|
||||||
:deep(.el-table__expanded-cell) .el-table__header .sort-caret.descending {
|
<!--:deep(.el-table__expanded-cell) .el-table__header .sort-caret.descending {-->
|
||||||
border-top-color: #1a2b3c;
|
<!-- border-top-color: #1a2b3c;-->
|
||||||
}
|
<!--}-->
|
||||||
</style>
|
<!--</style>-->
|
||||||
|
@ -57,9 +57,9 @@
|
|||||||
>删除
|
>删除
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <el-col :span="1.5">-->
|
<el-col :span="1.5">
|
||||||
<!-- <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['amz:shipmentPlan:export']">导出 </el-button>-->
|
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['amz:shipmentPlan:export']">导出 </el-button>
|
||||||
<!-- </el-col>-->
|
</el-col>
|
||||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
</template>
|
</template>
|
||||||
@ -67,26 +67,78 @@
|
|||||||
<el-table v-loading="loading" :data="shipmentPlanList" @current-change="handleCurrentChange" highlight-current-row ref="singleTableRef">
|
<el-table v-loading="loading" :data="shipmentPlanList" @current-change="handleCurrentChange" highlight-current-row ref="singleTableRef">
|
||||||
<el-table-column type="expand">
|
<el-table-column type="expand">
|
||||||
<template #default="props">
|
<template #default="props">
|
||||||
<el-descriptions size="small" border title="货件详情">
|
<el-card shadow="never">
|
||||||
<!-- <el-descriptions-item label="货件名称">{{ props.row.shipmentName }}</el-descriptions-item>-->
|
<el-table :data="props.row.sendOrders">
|
||||||
<!-- <el-descriptions-item label="货件状态">{{ props.row.shipmentStatus }}</el-descriptions-item>-->
|
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
||||||
<!-- <el-descriptions-item label="运输模式">{{ props.row.shippingMode }}</el-descriptions-item>-->
|
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
||||||
<!-- <el-descriptions-item label="运输方案">{{ props.row.shippingSolution }}</el-descriptions-item>-->
|
<el-table-column label="发货单号" align="center" prop="id" />
|
||||||
<!-- <el-descriptions-item label="入库计划ID">{{ props.row.staInboundPlanId }}</el-descriptions-item>-->
|
<el-table-column label="创建日期" align="center" prop="createTime" width="180">
|
||||||
|
<template #default="scope">
|
||||||
<el-descriptions-item label="创建时间">{{ props.row.gmtCreate }}</el-descriptions-item>
|
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
||||||
<!-- <el-descriptions-item label="计划发货日期">{{ parseTime(props.row.staShipmentDate, '{y}-{m}-{d}') }} </el-descriptions-item>-->
|
|
||||||
<!-- <el-descriptions-item label="预计到货开始日">{{ parseTime(props.row.staDeliveryStartDate, '{y}-{m}-{d}') }} </el-descriptions-item>-->
|
|
||||||
<!-- <el-descriptions-item label="预计到货截止日">{{ parseTime(props.row.staDeliveryEndDate, '{y}-{m}-{d}') }} </el-descriptions-item>
|
|
||||||
-->
|
|
||||||
<!-- <el-descriptions-item label="时效">{{ props.row.quote.leadTime + ' 天' }}</el-descriptions-item>-->
|
|
||||||
<!-- <el-descriptions-item label="订单创建时间">{{ props.row.order.createTime }}</el-descriptions-item>-->
|
|
||||||
|
|
||||||
<el-descriptions-item label="亚马逊接收时间">{{ props.row.receivingTime }}</el-descriptions-item>
|
|
||||||
<el-descriptions-item label="上架天数">{{ props.row.order.createTime }}</el-descriptions-item>
|
|
||||||
</el-descriptions>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="发货日期" align="center" prop="sendDate" width="180">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.sendDate, '{y}-{m}-{d}') }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="采购店铺" align="center" prop="storeName" />
|
||||||
|
<el-table-column label="供应商名称" align="center" prop="sendName" />
|
||||||
|
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName">
|
||||||
|
<!-- <template #default="{ row }">-->
|
||||||
|
<!-- <el-popover placement="top" title="物流商地址" :width="200" trigger="click">-->
|
||||||
|
<!-- <template #reference>-->
|
||||||
|
<!-- <el-button v-if="row.logisticsProviderName !== null" text size="small" type="primary">-->
|
||||||
|
<!-- {{ row.logisticsProviderName }}-->
|
||||||
|
<!-- </el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- <div>{{ row.address || '暂无地址' }}</div>-->
|
||||||
|
<!-- </el-popover>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="产品名称" align="center" prop="productName" />
|
||||||
|
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
||||||
|
<!-- <el-table-column label="单箱产品数量" align="center" prop="quantityPerBox" />-->
|
||||||
|
<el-table-column label="箱数" align="center" prop="boxCount">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-popover placement="top" title="装箱明细" :width="500" trigger="click">
|
||||||
|
<template #reference>
|
||||||
|
<el-button text size="small" type="primary"> {{ row.boxCount }}箱</el-button>
|
||||||
|
</template>
|
||||||
|
<div v-if="row.sendDetail !== null" v-html="formatText(row.sendDetail)"></div>
|
||||||
|
<div v-else>暂无数据</div>
|
||||||
|
</el-popover>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column label="箱子尺寸" align="center" prop="boxDimensions" />-->
|
||||||
|
<el-table-column label="总重量" align="center" prop="weightPerBox" />
|
||||||
|
<el-table-column label="实际发货店铺" align="center" prop="realStoreName" />
|
||||||
|
<!-- <el-table-column label="发货状态" align="center" prop="sendStatus">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <dict-tag :options="send_status" :value="scope.row.sendStatus" />-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <!– <el-tooltip content="修改" placement="top" v-if="scope.row.sendStatus === 'pending'">–>-->
|
||||||
|
<!-- <!– <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['amz:sendOrder:edit']"></el-button>–>-->
|
||||||
|
<!-- <!– </el-tooltip>–>-->
|
||||||
|
<!-- <el-tooltip content="删除" placement="top">-->
|
||||||
|
<!-- <el-button-->
|
||||||
|
<!-- link-->
|
||||||
|
<!-- type="primary"-->
|
||||||
|
<!-- icon="Delete"-->
|
||||||
|
<!-- @click="handleDeleteRelation(props.row.id, scope.row.id)"-->
|
||||||
|
<!-- v-hasRoles="['superadmin', 'yunying']"-->
|
||||||
|
<!-- ></el-button>-->
|
||||||
|
<!-- </el-tooltip>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
</el-table>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column label="发货日期" align="center" prop="gmtCreate" width="180">
|
<el-table-column label="发货日期" align="center" prop="gmtCreate" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.staShipmentDate, '{y}-{m}-{d}') }}</span>
|
<span>{{ parseTime(scope.row.staShipmentDate, '{y}-{m}-{d}') }}</span>
|
||||||
@ -96,19 +148,26 @@
|
|||||||
<el-table-column label="货件编号" align="center" prop="shipmentId" />
|
<el-table-column label="货件编号" align="center" prop="shipmentId" />
|
||||||
<el-table-column label="商品详情" align="center">
|
<el-table-column label="商品详情" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-popover placement="top" :width="750" trigger="hover" @show="showPop(scope.row)">
|
<el-popover placement="top" :width="950" trigger="hover" @show="showPop(scope.row)">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button style="margin-right: 16px">查看</el-button>
|
<el-button size="small" plain style="margin-right: 16px">查看</el-button>
|
||||||
</template>
|
</template>
|
||||||
<el-table :data="scope.row.itemVoList">
|
<el-table :data="scope.row.itemVoList">
|
||||||
<el-table-column width="200" property="productName" label="品名" />
|
<el-table-column width="200" property="productName" label="品名" />
|
||||||
|
<el-table-column width="150" property="sku" label="sku" />
|
||||||
<el-table-column width="150" property="asin" label="asin" />
|
<el-table-column width="150" property="asin" label="asin" />
|
||||||
|
<el-table-column width="80" property="quantityShipped" label="申报量" />
|
||||||
<el-table-column width="150" property="fnsku" label="fnsku" />
|
<el-table-column width="150" property="fnsku" label="fnsku" />
|
||||||
<el-table-column width="200" property="msku" label="msku" />
|
<el-table-column width="200" property="msku" label="msku" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="申报量" property="quantityShipped" width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.row.quantityShipped }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column width="150" label="货件明细" align="center" prop="shipToAddress">
|
<el-table-column width="150" label="货件明细" align="center" prop="shipToAddress">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
<el-button @click="openDetailDialog(row.detailList)"> 查看详情</el-button>
|
<el-button @click="openDetailDialog(row.detailList)"> 查看详情</el-button>
|
||||||
@ -122,35 +181,86 @@
|
|||||||
<el-table-column label="物流称重-总重量" align="center" prop="logisticsWeight" />
|
<el-table-column label="物流称重-总重量" align="center" prop="logisticsWeight" />
|
||||||
<el-table-column label="称重差异" align="center" prop="weightDiff" />
|
<el-table-column label="称重差异" align="center" prop="weightDiff" />
|
||||||
<!-- <el-table-column label="渠道ID" align="center" prop="channelId" />-->
|
<!-- <el-table-column label="渠道ID" align="center" prop="channelId" />-->
|
||||||
<el-table-column label="关联采购单" align="center" prop="sendOrderId">
|
<el-table-column width="150" label="物流信息" align="center" prop="shipToAddress">
|
||||||
<template #default="scope">
|
<template #default="{ row }">
|
||||||
<el-popover v-if="scope.row.sendOrderId" placement="top" :width="800" trigger="click">
|
<!-- <el-button @click="openAddressDialog(row.shipToAddress)"> 查看详情</el-button>-->
|
||||||
|
<el-popover v-if="row.quote != null" placement="left" :width="800" trigger="click">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<!-- <el-button style="margin-right: 16px">Click to activate</el-button>-->
|
<!-- <el-button style="margin-right: 16px">Click to activate</el-button>-->
|
||||||
<el-button size="small" plain v-if="scope.row.sendOrderId" type="success"> 已关联</el-button>
|
<el-button plain size="small" type="success"> 点击查看详情</el-button>
|
||||||
</template>
|
</template>
|
||||||
<el-descriptions v-if="scope.row.sendOrderId" title="供应商发货单" border :column="2" label-class-name="desc-label">
|
<el-descriptions title="物流信息" :column="3" border>
|
||||||
<!-- 订单信息 -->
|
<!-- { label: '物流名称', prop: 'logisticsName' },-->
|
||||||
<el-descriptions-item label="订单编号" min-width="120px">
|
<!-- { label: '目的地', prop: 'destination' },-->
|
||||||
{{ scope.row.sendOrder.orderSn }}
|
<!-- { label: '渠道名称', prop: 'channelName' },-->
|
||||||
|
<!-- { label: '单价', prop: 'price' },-->
|
||||||
|
<!-- { label: '附加费', prop: 'surcharge' },-->
|
||||||
|
<!-- { label: '运输时效', prop: 'leadTime' },-->
|
||||||
|
<!-- { label: '总价', prop: 'totalPrice' }-->
|
||||||
|
<el-descriptions-item label="报价类型">
|
||||||
|
<dict-tag :options="request_type" :value="row.quote.type" />
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="物流商名称">
|
||||||
<el-descriptions-item label="产品名称">
|
{{ row.quote.logisticsName }}
|
||||||
{{ scope.row.sendOrder.productName }}
|
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="目的地">
|
||||||
<el-descriptions-item label="总箱数"> {{ scope.row.sendOrder.boxCount }} 箱</el-descriptions-item>
|
{{ row.quote.destination }}
|
||||||
<el-descriptions-item label="总重量"> {{ scope.row.sendOrder.weightPerBox }} kg</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="箱体规格"> {{ scope.row.sendOrder.sendDetail }}</el-descriptions-item>
|
<el-descriptions-item label="渠道名称">
|
||||||
|
{{ row.quote.channelName }}
|
||||||
<!-- <el-descriptions-item label="每箱数量"> {{ scope.row.sendOrder.quantityPerBox }} 件/箱 </el-descriptions-item>-->
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="单价">
|
||||||
|
{{ row.quote.price }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="附加费">
|
||||||
|
{{ row.quote.surcharge }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="运输时效">
|
||||||
|
{{ row.quote.leadTime }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="总价">
|
||||||
|
{{ row.quote.totalPrice }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="结算金额">
|
||||||
|
{{ row.amountPrice }}
|
||||||
|
</el-descriptions-item>
|
||||||
|
<!-- <el-descriptions-item v-for="item in realisticItems" :key="item.prop" :label="item.label">-->
|
||||||
|
<!-- {{ row.quote[item.prop] || 'N/A' }}-->
|
||||||
|
<!-- </el-descriptions-item>-->
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
<!-- <el-tooltip class="box-item" effect="dark" content="点击关联采购单" placement="top">-->
|
<el-tag type="info" v-else>暂无物流信息</el-tag>
|
||||||
<!-- <el-button size="small" plain v-if="!scope.row.sendOrderId" type="info" @click="handleLink(scope.row)"> 未关联 </el-button>-->
|
|
||||||
<!-- </el-tooltip>-->
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<!-- <el-table-column label="关联采购单" align="center" prop="sendOrderId">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <el-popover v-if="scope.row.sendOrderId" placement="top" :width="800" trigger="click">-->
|
||||||
|
<!-- <template #reference>-->
|
||||||
|
<!-- <!– <el-button style="margin-right: 16px">Click to activate</el-button>–>-->
|
||||||
|
<!-- <el-button size="small" plain v-if="scope.row.sendOrderId" type="success"> 已关联</el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- <el-descriptions v-if="scope.row.sendOrderId" title="供应商发货单" border :column="2" label-class-name="desc-label">-->
|
||||||
|
<!-- <!– 订单信息 –>-->
|
||||||
|
<!-- <el-descriptions-item label="订单编号" min-width="120px">-->
|
||||||
|
<!-- {{ scope.row.sendOrder.orderSn }}-->
|
||||||
|
<!-- </el-descriptions-item>-->
|
||||||
|
|
||||||
|
<!-- <el-descriptions-item label="产品名称">-->
|
||||||
|
<!-- {{ scope.row.sendOrder.productName }}-->
|
||||||
|
<!-- </el-descriptions-item>-->
|
||||||
|
|
||||||
|
<!-- <el-descriptions-item label="总箱数"> {{ scope.row.sendOrder.boxCount }} 箱</el-descriptions-item>-->
|
||||||
|
<!-- <el-descriptions-item label="总重量"> {{ scope.row.sendOrder.weightPerBox }} kg</el-descriptions-item>-->
|
||||||
|
<!-- <el-descriptions-item label="箱体规格"> {{ scope.row.sendOrder.sendDetail }}</el-descriptions-item>-->
|
||||||
|
|
||||||
|
<!-- <!– <el-descriptions-item label="每箱数量"> {{ scope.row.sendOrder.quantityPerBox }} 件/箱 </el-descriptions-item>–>-->
|
||||||
|
<!-- </el-descriptions>-->
|
||||||
|
<!-- </el-popover>-->
|
||||||
|
<!-- <!– <el-tooltip class="box-item" effect="dark" content="点击关联采购单" placement="top">–>-->
|
||||||
|
<!-- <!– <el-button size="small" plain v-if="!scope.row.sendOrderId" type="info" @click="handleLink(scope.row)"> 未关联 </el-button>–>-->
|
||||||
|
<!-- <!– </el-tooltip>–>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
|
||||||
<!-- <el-table-column label="渠道ID" align="center" prop="channelId" />-->
|
<!-- <el-table-column label="渠道ID" align="center" prop="channelId" />-->
|
||||||
|
|
||||||
@ -417,9 +527,11 @@ import { ElTable } from 'element-plus';
|
|||||||
import { LogisticsQuoteVO } from '@/api/amz/logisticsQuote/types';
|
import { LogisticsQuoteVO } from '@/api/amz/logisticsQuote/types';
|
||||||
import { createOrderForm } from '@/api/amz/logisticsOrder/types';
|
import { createOrderForm } from '@/api/amz/logisticsOrder/types';
|
||||||
import { createLogisticsOrder } from '@/api/amz/logisticsOrder';
|
import { createLogisticsOrder } from '@/api/amz/logisticsOrder';
|
||||||
|
import { formatText } from '@/utils/asinkj';
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
const { biz_logistics_status } = toRefs<any>(proxy?.useDict('biz_logistics_status'));
|
const { biz_logistics_status } = toRefs<any>(proxy?.useDict('biz_logistics_status'));
|
||||||
|
const { request_type } = toRefs<any>(proxy?.useDict('request_type'));
|
||||||
|
|
||||||
const { sys_zero_one } = toRefs<any>(proxy?.useDict('sys_zero_one'));
|
const { sys_zero_one } = toRefs<any>(proxy?.useDict('sys_zero_one'));
|
||||||
|
|
||||||
@ -534,6 +646,16 @@ const descriptItems: DescriptItem[] = [
|
|||||||
{ label: '门牌号', prop: 'doorplate' }
|
{ label: '门牌号', prop: 'doorplate' }
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const realisticItems = [
|
||||||
|
{ label: '物流名称', prop: 'logisticsName' },
|
||||||
|
{ label: '目的地', prop: 'destination' },
|
||||||
|
{ label: '渠道名称', prop: 'channelName' },
|
||||||
|
{ label: '单价', prop: 'price' },
|
||||||
|
{ label: '附加费', prop: 'surcharge' },
|
||||||
|
{ label: '运输时效', prop: 'leadTime' },
|
||||||
|
{ label: '总价', prop: 'totalPrice' }
|
||||||
|
];
|
||||||
|
|
||||||
const showPop = async (row: any) => {
|
const showPop = async (row: any) => {
|
||||||
console.log('row', row);
|
console.log('row', row);
|
||||||
};
|
};
|
||||||
@ -640,10 +762,10 @@ const getList = async () => {
|
|||||||
loading.value = true;
|
loading.value = true;
|
||||||
const res = await listShipmentPlanOrder(queryParams.value);
|
const res = await listShipmentPlanOrder(queryParams.value);
|
||||||
res.rows.forEach((item) => {
|
res.rows.forEach((item) => {
|
||||||
item.vendorWeight = item.detailList.reduce((acc, cur) => {
|
item.vendorWeight = (item.detailList || []).reduce((acc, cur) => {
|
||||||
return acc + cur.supplierWeight;
|
return acc + cur.supplierWeight;
|
||||||
}, 0);
|
}, 0);
|
||||||
item.logisticsWeight = item.detailList.reduce((acc, cur) => {
|
item.logisticsWeight = (item.detailList || []).reduce((acc, cur) => {
|
||||||
return acc + cur.logisticsWeight;
|
return acc + cur.logisticsWeight;
|
||||||
}, 0);
|
}, 0);
|
||||||
item.weightDiff = item.vendorWeight - item.logisticsWeight;
|
item.weightDiff = item.vendorWeight - item.logisticsWeight;
|
||||||
@ -902,7 +1024,7 @@ const handleDelete = async (row?: ShipmentPlanVO) => {
|
|||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
const handleExport = () => {
|
const handleExport = () => {
|
||||||
proxy?.download(
|
proxy?.download(
|
||||||
'amz/shipmentPlan/export',
|
'amz/shipmentPlan/list/order/export',
|
||||||
{
|
{
|
||||||
...queryParams.value
|
...queryParams.value
|
||||||
},
|
},
|
||||||
|
@ -67,20 +67,78 @@
|
|||||||
<el-table v-loading="loading" :data="shipmentPlanList" @current-change="handleCurrentChange" highlight-current-row ref="singleTableRef">
|
<el-table v-loading="loading" :data="shipmentPlanList" @current-change="handleCurrentChange" highlight-current-row ref="singleTableRef">
|
||||||
<el-table-column type="expand">
|
<el-table-column type="expand">
|
||||||
<template #default="props">
|
<template #default="props">
|
||||||
<el-descriptions size="small" border title="货件详情">
|
<el-card shadow="never">
|
||||||
<el-descriptions-item label="货件名称">{{ props.row.shipmentName }}</el-descriptions-item>
|
<el-table :data="props.row.sendOrders">
|
||||||
<!-- <el-descriptions-item label="货件状态">{{ props.row.shipmentStatus }}</el-descriptions-item>-->
|
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
||||||
<!-- <el-descriptions-item label="运输模式">{{ props.row.shippingMode }}</el-descriptions-item>-->
|
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
||||||
<!-- <el-descriptions-item label="运输方案">{{ props.row.shippingSolution }}</el-descriptions-item>-->
|
<el-table-column label="发货单号" align="center" prop="id" />
|
||||||
<!-- <el-descriptions-item label="入库计划ID">{{ props.row.staInboundPlanId }}</el-descriptions-item>-->
|
<el-table-column label="创建日期" align="center" prop="createTime" width="180">
|
||||||
|
<template #default="scope">
|
||||||
<el-descriptions-item label="创建时间">{{ parseTime(props.row.gmtCreate, '{y}-{m}-{d}') }} </el-descriptions-item>
|
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
|
||||||
<!-- <el-descriptions-item label="计划发货日期">{{ parseTime(props.row.staShipmentDate, '{y}-{m}-{d}') }} </el-descriptions-item>-->
|
|
||||||
<!-- <el-descriptions-item label="预计到货开始日">{{ parseTime(props.row.staDeliveryStartDate, '{y}-{m}-{d}') }} </el-descriptions-item>-->
|
|
||||||
<!-- <el-descriptions-item label="预计到货截止日">{{ parseTime(props.row.staDeliveryEndDate, '{y}-{m}-{d}') }} </el-descriptions-item>-->
|
|
||||||
</el-descriptions>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="发货日期" align="center" prop="sendDate" width="180">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.sendDate, '{y}-{m}-{d}') }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="采购店铺" align="center" prop="storeName" />
|
||||||
|
<el-table-column label="供应商名称" align="center" prop="sendName" />
|
||||||
|
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName">
|
||||||
|
<!-- <template #default="{ row }">-->
|
||||||
|
<!-- <el-popover placement="top" title="物流商地址" :width="200" trigger="click">-->
|
||||||
|
<!-- <template #reference>-->
|
||||||
|
<!-- <el-button v-if="row.logisticsProviderName !== null" text size="small" type="primary">-->
|
||||||
|
<!-- {{ row.logisticsProviderName }}-->
|
||||||
|
<!-- </el-button>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- <div>{{ row.address || '暂无地址' }}</div>-->
|
||||||
|
<!-- </el-popover>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="产品名称" align="center" prop="productName" />
|
||||||
|
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
||||||
|
<!-- <el-table-column label="单箱产品数量" align="center" prop="quantityPerBox" />-->
|
||||||
|
<el-table-column label="箱数" align="center" prop="boxCount">
|
||||||
|
<template #default="{ row }">
|
||||||
|
<el-popover placement="top" title="装箱明细" :width="500" trigger="click">
|
||||||
|
<template #reference>
|
||||||
|
<el-button text size="small" type="primary"> {{ row.boxCount }}箱</el-button>
|
||||||
|
</template>
|
||||||
|
<div v-if="row.sendDetail !== null" v-html="formatText(row.sendDetail)"></div>
|
||||||
|
<div v-else>暂无数据</div>
|
||||||
|
</el-popover>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column label="箱子尺寸" align="center" prop="boxDimensions" />-->
|
||||||
|
<el-table-column label="总重量" align="center" prop="weightPerBox" />
|
||||||
|
<el-table-column label="实际发货店铺" align="center" prop="realStoreName" />
|
||||||
|
<!-- <el-table-column label="发货状态" align="center" prop="sendStatus">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <dict-tag :options="send_status" :value="scope.row.sendStatus" />-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <!– <el-tooltip content="修改" placement="top" v-if="scope.row.sendStatus === 'pending'">–>-->
|
||||||
|
<!-- <!– <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['amz:sendOrder:edit']"></el-button>–>-->
|
||||||
|
<!-- <!– </el-tooltip>–>-->
|
||||||
|
<!-- <el-tooltip content="删除" placement="top">-->
|
||||||
|
<!-- <el-button-->
|
||||||
|
<!-- link-->
|
||||||
|
<!-- type="primary"-->
|
||||||
|
<!-- icon="Delete"-->
|
||||||
|
<!-- @click="handleDeleteRelation(props.row.id, scope.row.id)"-->
|
||||||
|
<!-- v-hasRoles="['superadmin', 'yunying']"-->
|
||||||
|
<!-- ></el-button>-->
|
||||||
|
<!-- </el-tooltip>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-table-column>-->
|
||||||
|
</el-table>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column label="创建日期" align="center" prop="gmtCreate" width="180">
|
<el-table-column label="创建日期" align="center" prop="gmtCreate" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.gmtCreate, '{y}-{m}-{d}') }}</span>
|
<span>{{ parseTime(scope.row.gmtCreate, '{y}-{m}-{d}') }}</span>
|
||||||
@ -90,13 +148,15 @@
|
|||||||
<el-table-column label="货件编号" align="center" prop="shipmentId" />
|
<el-table-column label="货件编号" align="center" prop="shipmentId" />
|
||||||
<el-table-column label="商品详情" align="center">
|
<el-table-column label="商品详情" align="center">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-popover placement="top" :width="750" trigger="hover" @show="showPop(scope.row)">
|
<el-popover placement="top" :width="950" trigger="hover" @show="showPop(scope.row)">
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<el-button style="margin-right: 16px">查看</el-button>
|
<el-button size="small" plain style="margin-right: 16px">查看</el-button>
|
||||||
</template>
|
</template>
|
||||||
<el-table :data="scope.row.itemVoList">
|
<el-table :data="scope.row.itemVoList">
|
||||||
<el-table-column width="200" property="productName" label="品名" />
|
<el-table-column width="200" property="productName" label="品名" />
|
||||||
|
<el-table-column width="150" property="sku" label="sku" />
|
||||||
<el-table-column width="150" property="asin" label="asin" />
|
<el-table-column width="150" property="asin" label="asin" />
|
||||||
|
<el-table-column width="80" property="quantityShipped" label="申报量" />
|
||||||
<el-table-column width="150" property="fnsku" label="fnsku" />
|
<el-table-column width="150" property="fnsku" label="fnsku" />
|
||||||
<el-table-column width="200" property="msku" label="msku" />
|
<el-table-column width="200" property="msku" label="msku" />
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -329,7 +389,23 @@
|
|||||||
<el-table-column label="物流商名称" align="center" prop="logisticsName" />
|
<el-table-column label="物流商名称" align="center" prop="logisticsName" />
|
||||||
<el-table-column label="目的地" align="center" prop="destination" />
|
<el-table-column label="目的地" align="center" prop="destination" />
|
||||||
<el-table-column label="渠道名称" align="center" prop="channelName" />
|
<el-table-column label="渠道名称" align="center" prop="channelName" />
|
||||||
<el-table-column label="基础价格" align="center" prop="price" />
|
<el-table-column label="询价类型" align="center" prop="type">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :options="request_type" :value="scope.row.type" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="基础价格" align="center" prop="price">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-tag type="warning" v-if="scope.row.type === 'weight'">重量询价参考总价</el-tag>
|
||||||
|
<span v-else>{{ scope.row.price }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="总价" align="center" prop="totalPrice">
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="scope.row.type === 'weight'">{{ scope.row.totalPrice }}</span>
|
||||||
|
<el-tag type="warning" v-else>普通询价参考单价</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="最短时效" align="center" prop="minLeadTime" />
|
<el-table-column label="最短时效" align="center" prop="minLeadTime" />
|
||||||
<el-table-column label="时效" align="center" prop="leadTime" />
|
<el-table-column label="时效" align="center" prop="leadTime" />
|
||||||
<el-table-column label="附加费" align="center" prop="surcharge" />
|
<el-table-column label="附加费" align="center" prop="surcharge" />
|
||||||
@ -367,6 +443,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -397,6 +474,8 @@ const { sys_yes_no } = toRefs<any>(proxy?.useDict('sys_yes_no'));
|
|||||||
|
|
||||||
const { sys_zero_one } = toRefs<any>(proxy?.useDict('sys_zero_one'));
|
const { sys_zero_one } = toRefs<any>(proxy?.useDict('sys_zero_one'));
|
||||||
|
|
||||||
|
const { request_type } = toRefs<any>(proxy?.useDict('request_type'));
|
||||||
|
|
||||||
const shipmentPlanList = ref<ShipmentPlanVO[]>([]);
|
const shipmentPlanList = ref<ShipmentPlanVO[]>([]);
|
||||||
const buttonLoading = ref(false);
|
const buttonLoading = ref(false);
|
||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
@ -806,10 +885,9 @@ const checkPrice = async () => {
|
|||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
const res = await queryLogisticsQuoteWithDes(currentDes.value, shipDate.value,currentFBAData.value.shipmentId);
|
const res = await queryLogisticsQuoteWithDes(currentDes.value, shipDate.value, currentFBAData.value.shipmentId);
|
||||||
console.log('查询报价单', res);
|
console.log('查询报价单', res);
|
||||||
if (res.total == 0) {
|
if (res.total == 0) {
|
||||||
|
|
||||||
ElNotification({
|
ElNotification({
|
||||||
title: '警告',
|
title: '警告',
|
||||||
message: '暂时没有物流商报价',
|
message: '暂时没有物流商报价',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user