This commit is contained in:
parent
d57670c7d2
commit
9a33b4c5fc
@ -142,6 +142,8 @@ export interface InquiryRequestForm extends BaseEntity {
|
|||||||
* 报价有效的结束日期
|
* 报价有效的结束日期
|
||||||
*/
|
*/
|
||||||
effectiveEndTime?: string;
|
effectiveEndTime?: string;
|
||||||
|
|
||||||
|
type?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface InquiryRequestQuery extends PageQuery {
|
export interface InquiryRequestQuery extends PageQuery {
|
||||||
@ -204,4 +206,6 @@ export interface InquiryRequestQuery extends PageQuery {
|
|||||||
* 日期范围参数
|
* 日期范围参数
|
||||||
*/
|
*/
|
||||||
params?: any;
|
params?: any;
|
||||||
|
|
||||||
|
type?: any;
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,14 @@ export interface LogisticsOrderDetailVO {
|
|||||||
/**
|
/**
|
||||||
* 物流商计重(单位:KG,物流商实际测量值)
|
* 物流商计重(单位:KG,物流商实际测量值)
|
||||||
*/
|
*/
|
||||||
logisticsWeight: number;
|
logisticsWeight: string;
|
||||||
|
|
||||||
|
totalPrice?: number;
|
||||||
|
|
||||||
|
length?: string;
|
||||||
|
width?: string;
|
||||||
|
height?: string;
|
||||||
|
totalVolume?: number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 称重差异(应用层计算:物流商计重 - 供应商称重-总重量)
|
* 称重差异(应用层计算:物流商计重 - 供应商称重-总重量)
|
||||||
|
@ -149,12 +149,17 @@ export interface LogisticsQuoteForm extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
isDdp?: string;
|
isDdp?: string;
|
||||||
|
|
||||||
|
customsDeclarationFee?: number;
|
||||||
|
backLogisticsType?: string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单位
|
* 单位
|
||||||
*/
|
*/
|
||||||
unit?: string;
|
unit?: string;
|
||||||
|
|
||||||
type: string;
|
type: string;
|
||||||
|
|
||||||
|
volumeRatio?: string;
|
||||||
shipmentId: string | number;
|
shipmentId: string | number;
|
||||||
|
|
||||||
totalPrice: number;
|
totalPrice: number;
|
||||||
|
@ -521,6 +521,8 @@ export interface PurchaseOrderForm extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
divTime?: string;
|
divTime?: string;
|
||||||
|
|
||||||
|
type?: string;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 订单交付变动天数
|
* 订单交付变动天数
|
||||||
*/
|
*/
|
||||||
|
@ -64,6 +64,10 @@ export interface OrderOutItemVO {
|
|||||||
ratio?: number;
|
ratio?: number;
|
||||||
|
|
||||||
order?: PurchaseOrderVO;
|
order?: PurchaseOrderVO;
|
||||||
|
|
||||||
|
forwardType?: string;
|
||||||
|
|
||||||
|
quantityForward?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface OrderOutItemForm extends BaseEntity {
|
export interface OrderOutItemForm extends BaseEntity {
|
||||||
|
@ -117,6 +117,11 @@ export interface ShipForwardForm extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
quantitySend?: number;
|
quantitySend?: number;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预计发货数量
|
||||||
|
*/
|
||||||
|
quantityPlan?: number;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发货供应商名称
|
* 发货供应商名称
|
||||||
*/
|
*/
|
||||||
|
@ -488,6 +488,8 @@ export interface ShipmentPlanForm extends BaseEntity {
|
|||||||
channelName?: string;
|
channelName?: string;
|
||||||
|
|
||||||
linkType?: string;
|
linkType?: string;
|
||||||
|
|
||||||
|
customsFlag?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ShipmentPlanQuery extends PageQuery {
|
export interface ShipmentPlanQuery extends PageQuery {
|
||||||
|
@ -77,15 +77,15 @@ export const usePermissionStore = defineStore('permission', () => {
|
|||||||
if (type && route.children) {
|
if (type && route.children) {
|
||||||
route.children = filterChildren(route.children, undefined);
|
route.children = filterChildren(route.children, undefined);
|
||||||
}
|
}
|
||||||
if (route.path === '/demand') {
|
// if (route.path === '/demand') {
|
||||||
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 = '创建发货';
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
// Layout ParentView 组件特殊处理
|
// Layout ParentView 组件特殊处理
|
||||||
if (route.component?.toString() === 'Layout') {
|
if (route.component?.toString() === 'Layout') {
|
||||||
route.component = Layout;
|
route.component = Layout;
|
||||||
|
@ -74,10 +74,12 @@
|
|||||||
|
|
||||||
<el-table v-loading="loading" :data="amazonStoreList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="amazonStoreList" @selection-change="handleSelectionChange">
|
||||||
<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="storeName" />
|
||||||
|
<el-table-column label="用户名称" align="center" prop="nickName" />
|
||||||
|
<el-table-column label="登录名" align="center" prop="userName" />
|
||||||
<el-table-column label="领星ERP店铺标识ID" align="center" prop="sid" />
|
<el-table-column label="领星ERP店铺标识ID" align="center" prop="sid" />
|
||||||
<el-table-column label="所属用户ID" align="center" prop="userId" />
|
<el-table-column label="所属用户ID" align="center" prop="userId" />
|
||||||
<el-table-column label="站点ID" align="center" prop="mid" />
|
<el-table-column label="站点ID" align="center" prop="mid" />
|
||||||
<el-table-column label="店铺名称" align="center" prop="storeName" />
|
|
||||||
<el-table-column label="亚马逊店铺ID" align="center" prop="sellerId" />
|
<el-table-column label="亚马逊店铺ID" align="center" prop="sellerId" />
|
||||||
<el-table-column label="店铺账户名称" align="center" prop="accountName" />
|
<el-table-column label="店铺账户名称" align="center" prop="accountName" />
|
||||||
<el-table-column label="店铺账号ID" align="center" prop="sellerAccountId" />
|
<el-table-column label="店铺账号ID" align="center" prop="sellerAccountId" />
|
||||||
|
@ -175,11 +175,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="inquiryNo" />
|
<el-table-column label="询价单号" align="center" prop="inquiryNo" />
|
||||||
<el-table-column label="询价类型" align="center" prop="inquiryNo">
|
<!-- <el-table-column label="询价类型" align="center" prop="inquiryNo">-->
|
||||||
<template #default="scope">
|
<!-- <template #default="scope">-->
|
||||||
<dict-tag :options="request_type" :value="scope.row.type" />
|
<!-- <dict-tag :options="request_type" :value="scope.row.type" />-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-table-column>
|
<!-- </el-table-column>-->
|
||||||
<!-- <el-table-column label="发起人" align="center" prop="requesterName" />-->
|
<!-- <el-table-column label="发起人" align="center" prop="requesterName" />-->
|
||||||
<!-- <el-table-column label="目标物流商ID列表" align="center" prop="targetProviders" />-->
|
<!-- <el-table-column label="目标物流商ID列表" align="center" prop="targetProviders" />-->
|
||||||
<el-table-column label="目的地" align="center" prop="destination" />
|
<el-table-column label="目的地" align="center" prop="destination" />
|
||||||
@ -305,24 +305,34 @@
|
|||||||
<el-form-item label="是否需要报关" prop="channelName">
|
<el-form-item label="是否需要报关" prop="channelName">
|
||||||
<el-input v-model="quoteForm.customsFlag" placeholder="请输入是否需要报关" disabled />
|
<el-input v-model="quoteForm.customsFlag" placeholder="请输入是否需要报关" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="quoteForm.type === 'general'" label="基础价格" prop="price" required>
|
<el-form-item label="报价类型" prop="type">
|
||||||
|
<el-select v-model="quoteForm.type" placeholder="报价类型" @change="typeChange">
|
||||||
|
<el-option v-for="dict in biz_quote_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="体积比" prop="type">
|
||||||
|
<el-select v-model="quoteForm.volumeRatio" placeholder="体积比" @change="typeChange">
|
||||||
|
<el-option v-for="dict in biz_volume_ratio" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="报价价格" prop="price" required>
|
||||||
<div class="kgprice">
|
<div class="kgprice">
|
||||||
<el-input-number controls-position="right" v-model="quoteForm.price" :precision="2" :step="0.1" :min="0" :max="10000">
|
<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>{{ typeUnit }}</span>
|
||||||
</template>
|
|
||||||
</el-input-number>
|
|
||||||
</div>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item v-else label="货件总价" prop="totalPrice" required>
|
|
||||||
<div class="kgprice">
|
|
||||||
<el-input-number controls-position="right" v-model="quoteForm.totalPrice" :precision="2" :step="0.1" :min="0" :max="10000000">
|
|
||||||
<template #suffix>
|
|
||||||
<span>元</span>
|
|
||||||
</template>
|
</template>
|
||||||
</el-input-number>
|
</el-input-number>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<!-- <el-form-item v-else label="货件总价" prop="totalPrice" required>-->
|
||||||
|
<!-- <div class="kgprice">-->
|
||||||
|
<!-- <el-input-number controls-position="right" v-model="quoteForm.totalPrice" :precision="2" :step="0.1" :min="0" :max="10000000">-->
|
||||||
|
<!-- <template #suffix>-->
|
||||||
|
<!-- <span>元</span>-->
|
||||||
|
<!-- </template>-->
|
||||||
|
<!-- </el-input-number>-->
|
||||||
|
<!-- </div>-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="6"></el-col>
|
<el-col :span="6"></el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@ -351,6 +361,14 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-input-number>
|
</el-input-number>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="报关费" prop="customsDeclarationFee">
|
||||||
|
<el-input-number controls-position="right" v-model="quoteForm.customsDeclarationFee" :precision="2" :step="0.1" :min="0" :max="1000000">
|
||||||
|
<template #suffix>
|
||||||
|
<span>元</span>
|
||||||
|
</template>
|
||||||
|
</el-input-number>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="报价生效起止日期" prop="quoteDate">
|
<el-form-item label="报价生效起止日期" prop="quoteDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="quoteForm.quoteDate"
|
v-model="quoteForm.quoteDate"
|
||||||
@ -379,7 +397,7 @@
|
|||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button :loading="buttonLoading" type="primary" @click="submitQuoteForm">提 交</el-button>
|
<el-button :loading="buttonLoading" type="primary" @click="submitQuoteForm">提 交</el-button>
|
||||||
<el-button :loading="buttonLoading" type="primary" @click="saveQuoteForm">暂 存</el-button>
|
<!-- <el-button :loading="buttonLoading" type="primary" @click="saveQuoteForm">暂 存</el-button>-->
|
||||||
<el-button @click="quoteDialog.visible = false">取 消</el-button>
|
<el-button @click="quoteDialog.visible = false">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -413,6 +431,9 @@ const { back_logistics_type } = toRefs<any>(proxy?.useDict('back_logistics_type'
|
|||||||
|
|
||||||
const { sys_yes_no } = toRefs<any>(proxy?.useDict('sys_yes_no'));
|
const { sys_yes_no } = toRefs<any>(proxy?.useDict('sys_yes_no'));
|
||||||
|
|
||||||
|
const { biz_quote_type } = toRefs<any>(proxy?.useDict('biz_quote_type'));
|
||||||
|
const { biz_volume_ratio } = toRefs<any>(proxy?.useDict('biz_volume_ratio'));
|
||||||
|
|
||||||
const inquiryRequestList = ref<InquiryRequestVO[]>([]);
|
const inquiryRequestList = ref<InquiryRequestVO[]>([]);
|
||||||
const buttonLoading = ref(false);
|
const buttonLoading = ref(false);
|
||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
@ -424,6 +445,8 @@ const total = ref(0);
|
|||||||
|
|
||||||
const minDay = ref(0);
|
const minDay = ref(0);
|
||||||
|
|
||||||
|
const typeUnit = ref('元/KG');
|
||||||
|
|
||||||
const queryFormRef = ref<ElFormInstance>();
|
const queryFormRef = ref<ElFormInstance>();
|
||||||
const inquiryRequestFormRef = ref<ElFormInstance>();
|
const inquiryRequestFormRef = ref<ElFormInstance>();
|
||||||
const logisticsQuoteFormRef = ref<ElFormInstance>({});
|
const logisticsQuoteFormRef = ref<ElFormInstance>({});
|
||||||
@ -435,7 +458,7 @@ const dialog = reactive<DialogOption>({
|
|||||||
|
|
||||||
const quoteDialog = reactive<DialogOption>({
|
const quoteDialog = reactive<DialogOption>({
|
||||||
visible: false,
|
visible: false,
|
||||||
title: ''
|
title: '提交报价'
|
||||||
});
|
});
|
||||||
|
|
||||||
const validatePrice = (rule, value, callback) => {
|
const validatePrice = (rule, value, callback) => {
|
||||||
@ -446,6 +469,20 @@ const validatePrice = (rule, value, callback) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const typeChange = (value: string) => {
|
||||||
|
console.log('value', value);
|
||||||
|
|
||||||
|
if (value === 'weight') {
|
||||||
|
typeUnit.value = '元/KG';
|
||||||
|
} else if (value === 'total') {
|
||||||
|
typeUnit.value = '元';
|
||||||
|
} else if (value === 'volume') {
|
||||||
|
typeUnit.value = '元/m³';
|
||||||
|
} else {
|
||||||
|
typeUnit.value = '元/KG';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const initFormData: InquiryRequestForm = {
|
const initFormData: InquiryRequestForm = {
|
||||||
id: undefined,
|
id: undefined,
|
||||||
inquiryNo: undefined,
|
inquiryNo: undefined,
|
||||||
@ -458,7 +495,8 @@ const initFormData: InquiryRequestForm = {
|
|||||||
channelId: undefined,
|
channelId: undefined,
|
||||||
channelName: undefined,
|
channelName: undefined,
|
||||||
effectiveStartTime: undefined,
|
effectiveStartTime: undefined,
|
||||||
effectiveEndTime: undefined
|
effectiveEndTime: undefined,
|
||||||
|
type: undefined
|
||||||
};
|
};
|
||||||
|
|
||||||
const data = reactive<PageData<InquiryRequestForm, InquiryRequestQuery>>({
|
const data = reactive<PageData<InquiryRequestForm, InquiryRequestQuery>>({
|
||||||
@ -477,6 +515,7 @@ const data = reactive<PageData<InquiryRequestForm, InquiryRequestQuery>>({
|
|||||||
channelName: undefined,
|
channelName: undefined,
|
||||||
effectiveStartTime: undefined,
|
effectiveStartTime: undefined,
|
||||||
effectiveEndTime: undefined,
|
effectiveEndTime: undefined,
|
||||||
|
type: undefined,
|
||||||
params: {}
|
params: {}
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
@ -492,7 +531,9 @@ const data = reactive<PageData<InquiryRequestForm, InquiryRequestQuery>>({
|
|||||||
effectiveEndTime: [{ required: true, message: '报价有效的结束日期不能为空', trigger: 'blur' }],
|
effectiveEndTime: [{ required: true, message: '报价有效的结束日期不能为空', trigger: 'blur' }],
|
||||||
price: [{ validator: validatePrice, trigger: 'blur' }],
|
price: [{ validator: validatePrice, trigger: 'blur' }],
|
||||||
totalPrice: [{ validator: validatePrice, trigger: 'blur' }],
|
totalPrice: [{ validator: validatePrice, trigger: 'blur' }],
|
||||||
|
customsDeclarationFee: [{ validator: validatePrice, trigger: 'blur' }],
|
||||||
leadTime: [{ required: true, message: '时效不能为空', trigger: 'blur' }],
|
leadTime: [{ required: true, message: '时效不能为空', trigger: 'blur' }],
|
||||||
|
type: [{ required: true, message: '报价类型不能为空', trigger: 'blur' }],
|
||||||
surcharge: [{ required: true, message: '附加费不能为空', trigger: 'blur' }],
|
surcharge: [{ required: true, message: '附加费不能为空', trigger: 'blur' }],
|
||||||
quoteDate: [{ required: true, message: '报价生效日期不能为空', trigger: 'blur' }],
|
quoteDate: [{ required: true, message: '报价生效日期不能为空', trigger: 'blur' }],
|
||||||
isSubmitted: [{ required: true, message: '提交状态不能为空', trigger: 'blur' }],
|
isSubmitted: [{ required: true, message: '提交状态不能为空', trigger: 'blur' }],
|
||||||
@ -536,8 +577,10 @@ const quoteForm = ref<LogisticsQuoteForm>({
|
|||||||
isDdp: 'Y',
|
isDdp: 'Y',
|
||||||
unit: 'kg',
|
unit: 'kg',
|
||||||
backLogisticsType: '快递',
|
backLogisticsType: '快递',
|
||||||
type: 'general',
|
type: 'weight',
|
||||||
shipmentId: undefined,
|
shipmentId: undefined,
|
||||||
|
volumeRatio: '6000',
|
||||||
|
customsDeclarationFee: 0,
|
||||||
totalPrice: 0
|
totalPrice: 0
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -662,6 +705,7 @@ const submitQuoteForm = async () => {
|
|||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
ElMessage.success('提交成功');
|
ElMessage.success('提交成功');
|
||||||
quoteDialog.visible = false;
|
quoteDialog.visible = false;
|
||||||
|
getList();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ElMessageBox.confirm('价格没有竞争力,是否需要修改价格?', '提示', {
|
ElMessageBox.confirm('价格没有竞争力,是否需要修改价格?', '提示', {
|
||||||
@ -727,8 +771,10 @@ const handleSubmit = async (row?: InquiryRequestVO) => {
|
|||||||
isDdp: 'Y',
|
isDdp: 'Y',
|
||||||
unit: 'kg',
|
unit: 'kg',
|
||||||
backLogisticsType: '快递',
|
backLogisticsType: '快递',
|
||||||
type: 'general',
|
type: 'weight',
|
||||||
shipmentId: undefined,
|
shipmentId: undefined,
|
||||||
|
volumeRatio: '6000',
|
||||||
|
customsDeclarationFee: 0,
|
||||||
totalPrice: 0
|
totalPrice: 0
|
||||||
};
|
};
|
||||||
quoteForm.value.id = row.id;
|
quoteForm.value.id = row.id;
|
||||||
@ -740,6 +786,8 @@ const handleSubmit = async (row?: InquiryRequestVO) => {
|
|||||||
quoteForm.value.type = row.type;
|
quoteForm.value.type = row.type;
|
||||||
quoteForm.value.shipmentId = row.shipmentId;
|
quoteForm.value.shipmentId = row.shipmentId;
|
||||||
|
|
||||||
|
typeUnit.value = '元/KG';
|
||||||
|
|
||||||
quoteDialog.visible = true;
|
quoteDialog.visible = true;
|
||||||
console.log(row.effectiveStartTime);
|
console.log(row.effectiveStartTime);
|
||||||
// quoteForm.quoteDate[0] = row.effectiveStartTime;
|
// quoteForm.quoteDate[0] = row.effectiveStartTime;
|
||||||
@ -767,6 +815,10 @@ onMounted(() => {
|
|||||||
getList();
|
getList();
|
||||||
queryTodayQuoteStatus();
|
queryTodayQuoteStatus();
|
||||||
});
|
});
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
// queryTodayQuoteStatus();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.kgprice .el-input-number {
|
.kgprice .el-input-number {
|
||||||
|
@ -56,11 +56,83 @@
|
|||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="FBA货件编号" align="center" prop="fbaShipmentId" />
|
<el-table-column label="FBA货件编号" align="center" prop="fbaShipmentId" />
|
||||||
<el-table-column label="订单编号" align="center" prop="orderId" />
|
<el-table-column label="订单编号" align="center" prop="orderId" />
|
||||||
|
<el-table-column label="店铺名称" align="center" prop="storeName" />
|
||||||
|
<el-table-column label="商品详情" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-popover placement="top" :width="950" trigger="hover">
|
||||||
|
<template #reference>
|
||||||
|
<el-button size="small" plain style="margin-right: 16px">查看</el-button>
|
||||||
|
</template>
|
||||||
|
<el-table :data="scope.row.shipmentItems">
|
||||||
|
<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="80" property="quantityShipped" label="申报量" />
|
||||||
|
<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="logisticsWeight">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ scope.row.logisticsWeight + ' KG' }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="物流商体积" align="center" prop="logisticsWeight">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ scope.row.totalVolume + ' cm³' }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="创建日期" align="center" prop="createTime" />
|
<el-table-column label="创建日期" align="center" prop="createTime" />
|
||||||
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName" />
|
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName" />
|
||||||
<el-table-column label="物流渠道" align="center" prop="channelName" />
|
<el-table-column label="物流渠道" align="center" prop="channelName" />
|
||||||
<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" prop="boxQuantity" />
|
||||||
|
<el-table-column width="150" label="报价详情" align="center" prop="quote">
|
||||||
|
<template #default="scope">
|
||||||
|
<!-- <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>
|
||||||
|
<div v-if="scope.row.quote">
|
||||||
|
<el-descriptions title="基本信息" :column="2" border>
|
||||||
|
<el-descriptions-item label="报价类型">
|
||||||
|
<dict-tag :options="biz_quote_type" :value="scope.row.quote.type" />
|
||||||
|
</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="渠道名称">{{ scope.row.quote.channelName }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="目的地">{{ scope.row.quote.destination }}</el-descriptions-item>
|
||||||
|
<!-- <el-descriptions-item label="ID">{{ scope.row.quote.id }}</el-descriptions-item>-->
|
||||||
|
<el-descriptions-item label="物流公司">{{ scope.row.quote.logisticsName }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="货运ID">{{ scope.row.quote.shipmentId }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="体积比">{{ scope.row.quote.volumeRatio }}</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
|
||||||
|
<el-descriptions title="时间信息" :column="2" border class="mt-4">
|
||||||
|
<el-descriptions-item label="运输时间">{{ scope.row.quote.leadTime }} 天</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="最小运输时间">{{ scope.row.quote.minLeadTime }} 天</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="报价日期">{{ scope.row.quote.quoteDate }}</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
|
||||||
|
<el-descriptions title="费用信息" :column="2" border class="mt-4">
|
||||||
|
<el-descriptions-item label="报关费">{{ scope.row.quote.customsDeclarationFee + ' 元' }} </el-descriptions-item>
|
||||||
|
<el-descriptions-item label="价格">{{ scope.row.quote.price }} {{ scope.row.quote.unit }} </el-descriptions-item>
|
||||||
|
<el-descriptions-item label="附加费">{{ scope.row.quote.surcharge + ' 元' }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="物流商称重">{{ scope.row.logisticsWeight + ' KG' }} </el-descriptions-item>
|
||||||
|
<el-descriptions-item label="物流商体积">{{ scope.row.totalVolume + ' cm³' }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="体积重">{{ scope.row.volumeWeight + ' KG' }}</el-descriptions-item>
|
||||||
|
|
||||||
|
<el-descriptions-item label-class-name="my-total" label="结算总价">{{ scope.row.settlementPrice + ' 元' }} </el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<p>暂无报价信息</p>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="总货件数量" align="center" prop="shipmentQuantity" />
|
<el-table-column label="总货件数量" align="center" prop="shipmentQuantity" />
|
||||||
<el-table-column label="订单状态" align="center" prop="status">
|
<el-table-column label="订单状态" align="center" prop="status">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
@ -175,7 +247,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<file-custom-upload
|
<file-custom-upload
|
||||||
:title-name="'上传POD单号'"
|
:title-name="'上传IEN文件'"
|
||||||
v-model="fileList"
|
v-model="fileList"
|
||||||
:limit="1"
|
:limit="1"
|
||||||
:file-size="1"
|
:file-size="1"
|
||||||
@ -215,12 +287,14 @@ import { LogisticsOrderDetailVO } from '@/api/amz/logisticsOrderDetail/types';
|
|||||||
import { listLogisticsOrderDetail, updateList } from '@/api/amz/logisticsOrderDetail';
|
import { listLogisticsOrderDetail, updateList } from '@/api/amz/logisticsOrderDetail';
|
||||||
import 'handsontable/dist/handsontable.full.min.css';
|
import 'handsontable/dist/handsontable.full.min.css';
|
||||||
import { InfoFilled } from '@element-plus/icons-vue';
|
import { InfoFilled } from '@element-plus/icons-vue';
|
||||||
|
import { ElTable } from 'element-plus';
|
||||||
// import 'handsontable/styles/ht-theme-horizon.css';
|
// import 'handsontable/styles/ht-theme-horizon.css';
|
||||||
|
|
||||||
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 { logic_order_status } = toRefs<any>(proxy?.useDict('logic_order_status'));
|
const { logic_order_status } = toRefs<any>(proxy?.useDict('logic_order_status'));
|
||||||
|
const { biz_quote_type } = toRefs<any>(proxy?.useDict('biz_quote_type'));
|
||||||
|
|
||||||
// 初始化注册所有模块
|
// 初始化注册所有模块
|
||||||
registerAllModules();
|
registerAllModules();
|
||||||
@ -330,11 +404,19 @@ const hotSettings = ref({
|
|||||||
logisticsOrderDetailList.value[row].logisticsStatus = labelTovalueMap.value[newVal];
|
logisticsOrderDetailList.value[row].logisticsStatus = labelTovalueMap.value[newVal];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prop === 'logisticsWeight' || prop === 'pricePerKg' || prop === 'otherFee') {
|
// if (prop === 'logisticsWeight' || prop === 'pricePerKg' || prop === 'otherFee') {
|
||||||
console.log('计算总价');
|
// console.log('计算总价');
|
||||||
logisticsOrderDetailList.value[row].totalFee =
|
// logisticsOrderDetailList.value[row].totalFee =
|
||||||
(logisticsOrderDetailList.value[row].logisticsWeight ?? 0) * (logisticsOrderDetailList.value[row].pricePerKg ?? 0) +
|
// (parseFloat(logisticsOrderDetailList.value[row].logisticsWeight) ?? 0) * (parseFloat(logisticsOrderDetailList.value[row].pricePerKg) ?? 0) +
|
||||||
(logisticsOrderDetailList.value[row].otherFee ?? 0);
|
// (parseFloat(logisticsOrderDetailList.value[row].otherFee) ?? 0) +
|
||||||
|
// (parseFloat(logisticsOrderDetailList.value[row].totalPrice) ?? 0);
|
||||||
|
// }
|
||||||
|
if (prop === 'length' || prop === 'width' || prop === 'height') {
|
||||||
|
console.log('计算体积');
|
||||||
|
logisticsOrderDetailList.value[row].totalVolume =
|
||||||
|
(parseFloat(logisticsOrderDetailList.value[row].length) ?? 0) *
|
||||||
|
(parseFloat(logisticsOrderDetailList.value[row].width) ?? 0) *
|
||||||
|
(parseFloat(logisticsOrderDetailList.value[row].height) ?? 0);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
console.log('logisticsOrderDetailList.value:', logisticsOrderDetailList.value);
|
console.log('logisticsOrderDetailList.value:', logisticsOrderDetailList.value);
|
||||||
@ -350,12 +432,17 @@ const hotSettings = ref({
|
|||||||
'数量',
|
'数量',
|
||||||
// '实际数量',
|
// '实际数量',
|
||||||
'物流追踪号',
|
'物流追踪号',
|
||||||
'物流商计重',
|
'物流商计重(KG)',
|
||||||
|
'长(CM)',
|
||||||
|
'宽(CM)',
|
||||||
|
'高(CM)',
|
||||||
|
'体积',
|
||||||
// '称重差异',
|
// '称重差异',
|
||||||
'物流单价',
|
// '物流单价报价',
|
||||||
|
// '物流总价报价',
|
||||||
// '物流计价重量',
|
// '物流计价重量',
|
||||||
'其他物流费用',
|
// '其他物流费用',
|
||||||
'费用合计',
|
// '费用合计',
|
||||||
'物流状态',
|
'物流状态',
|
||||||
'预计签收日期',
|
'预计签收日期',
|
||||||
'实际签收日期',
|
'实际签收日期',
|
||||||
@ -389,12 +476,86 @@ const hotSettings = ref({
|
|||||||
// 处理单位显示
|
// 处理单位显示
|
||||||
if (typeof value === 'number' && !isNaN(value)) {
|
if (typeof value === 'number' && !isNaN(value)) {
|
||||||
td.textContent = value.toLocaleString() + ' kg'; // 添加单位
|
td.textContent = value.toLocaleString() + ' kg'; // 添加单位
|
||||||
|
} else if (typeof value === 'string') {
|
||||||
|
td.textContent = value + ' kg';
|
||||||
}
|
}
|
||||||
|
|
||||||
// 确保居中对齐(可选,若 className 已生效可省略)
|
// 确保居中对齐(可选,若 className 已生效可省略)
|
||||||
return td;
|
return td;
|
||||||
}
|
}
|
||||||
}, // 物流商计重
|
}, // 物流商计重
|
||||||
|
{
|
||||||
|
data: 'length',
|
||||||
|
className: 'htCenter',
|
||||||
|
readOnly: false,
|
||||||
|
type: 'numeric',
|
||||||
|
renderer: function (instance, td, row, col, prop, value, cellProperties) {
|
||||||
|
// 调用默认的数字渲染器以保持格式(如千分位)
|
||||||
|
// 处理单位显示
|
||||||
|
if (typeof value === 'number' && !isNaN(value)) {
|
||||||
|
td.textContent = value.toLocaleString() + ' cm'; // 添加单位
|
||||||
|
} else if (typeof value === 'string') {
|
||||||
|
td.textContent = value + ' cm';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确保居中对齐(可选,若 className 已生效可省略)
|
||||||
|
return td;
|
||||||
|
}
|
||||||
|
}, // 长
|
||||||
|
{
|
||||||
|
data: 'width',
|
||||||
|
className: 'htCenter',
|
||||||
|
readOnly: false,
|
||||||
|
type: 'numeric',
|
||||||
|
renderer: function (instance, td, row, col, prop, value, cellProperties) {
|
||||||
|
// 调用默认的数字渲染器以保持格式(如千分位)
|
||||||
|
// 处理单位显示
|
||||||
|
if (typeof value === 'number' && !isNaN(value)) {
|
||||||
|
td.textContent = value.toLocaleString() + ' cm'; // 添加单位
|
||||||
|
} else if (typeof value === 'string') {
|
||||||
|
td.textContent = value + ' cm';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确保居中对齐(可选,若 className 已生效可省略)
|
||||||
|
return td;
|
||||||
|
}
|
||||||
|
}, // 宽
|
||||||
|
{
|
||||||
|
data: 'height',
|
||||||
|
className: 'htCenter',
|
||||||
|
readOnly: false,
|
||||||
|
type: 'numeric',
|
||||||
|
renderer: function (instance, td, row, col, prop, value, cellProperties) {
|
||||||
|
// 调用默认的数字渲染器以保持格式(如千分位)
|
||||||
|
// 处理单位显示
|
||||||
|
if (typeof value === 'number' && !isNaN(value)) {
|
||||||
|
td.textContent = value.toLocaleString() + ' cm'; // 添加单位
|
||||||
|
} else if (typeof value === 'string') {
|
||||||
|
td.textContent = value + ' cm';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确保居中对齐(可选,若 className 已生效可省略)
|
||||||
|
return td;
|
||||||
|
}
|
||||||
|
}, // 高
|
||||||
|
{
|
||||||
|
data: 'totalVolume',
|
||||||
|
className: 'htCenter',
|
||||||
|
readOnly: true,
|
||||||
|
type: 'numeric',
|
||||||
|
renderer: function (instance, td, row, col, prop, value, cellProperties) {
|
||||||
|
// 调用默认的数字渲染器以保持格式(如千分位)
|
||||||
|
// 处理单位显示
|
||||||
|
if (typeof value === 'number' && !isNaN(value)) {
|
||||||
|
td.textContent = value.toLocaleString() + ' cm³'; // 添加单位
|
||||||
|
} else if (typeof value === 'string') {
|
||||||
|
td.textContent = value + ' cm³';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 确保居中对齐(可选,若 className 已生效可省略)
|
||||||
|
return td;
|
||||||
|
}
|
||||||
|
}, // 体积
|
||||||
// {
|
// {
|
||||||
// data: 'weightDiff', // 称重差异
|
// data: 'weightDiff', // 称重差异
|
||||||
// className: 'htCenter',
|
// className: 'htCenter',
|
||||||
@ -408,40 +569,56 @@ const hotSettings = ref({
|
|||||||
// return td;
|
// return td;
|
||||||
// }
|
// }
|
||||||
// },
|
// },
|
||||||
{
|
// {
|
||||||
data: 'pricePerKg',
|
// data: 'pricePerKg',
|
||||||
className: 'htCenter',
|
// className: 'htCenter',
|
||||||
type: 'numeric',
|
// type: 'numeric',
|
||||||
readOnly: true,
|
// readOnly: true,
|
||||||
renderer: function (instance, td, row, col, prop, value, cellProperties) {
|
// renderer: function (instance, td, row, col, prop, value, cellProperties) {
|
||||||
// 调用默认的数字渲染器以保持格式(如千分位)
|
// // 调用默认的数字渲染器以保持格式(如千分位)
|
||||||
// 处理单位显示
|
// // 处理单位显示
|
||||||
if (typeof value === 'number' && !isNaN(value)) {
|
// if (typeof value === 'number' && !isNaN(value)) {
|
||||||
td.textContent = value.toLocaleString() + ' 元/kg'; // 添加单位
|
// td.textContent = value.toLocaleString() + ' 元/kg'; // 添加单位
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 确保居中对齐(可选,若 className 已生效可省略)
|
// // 确保居中对齐(可选,若 className 已生效可省略)
|
||||||
return td;
|
// return td;
|
||||||
}
|
// }
|
||||||
}, // 物流单价
|
// }, // 物流单价
|
||||||
|
// {
|
||||||
|
// data: 'totalPrice',
|
||||||
|
// className: 'htCenter',
|
||||||
|
// type: 'numeric',
|
||||||
|
// readOnly: true,
|
||||||
|
// renderer: function (instance, td, row, col, prop, value, cellProperties) {
|
||||||
|
// // 调用默认的数字渲染器以保持格式(如千分位)
|
||||||
|
// // 处理单位显示
|
||||||
|
// if (typeof value === 'number' && !isNaN(value)) {
|
||||||
|
// td.textContent = value.toLocaleString() + ' 元'; // 添加单位
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 确保居中对齐(可选,若 className 已生效可省略)
|
||||||
|
// return td;
|
||||||
|
// }
|
||||||
|
// }, // 物流总价报价
|
||||||
// { data: 'logisticsBillingWeight', className: 'htCenter', type: 'numeric', readOnly: true }, // 物流计价重量
|
// { data: 'logisticsBillingWeight', className: 'htCenter', type: 'numeric', readOnly: true }, // 物流计价重量
|
||||||
{
|
// {
|
||||||
data: 'otherFee',
|
// data: 'otherFee',
|
||||||
className: 'htCenter',
|
// className: 'htCenter',
|
||||||
type: 'numeric',
|
// type: 'numeric',
|
||||||
readOnly: false,
|
// readOnly: false,
|
||||||
renderer: function (instance, td, row, col, prop, value, cellProperties) {
|
// renderer: function (instance, td, row, col, prop, value, cellProperties) {
|
||||||
// 调用默认的数字渲染器以保持格式(如千分位)
|
// // 调用默认的数字渲染器以保持格式(如千分位)
|
||||||
// 处理单位显示
|
// // 处理单位显示
|
||||||
if (typeof value === 'number' && !isNaN(value)) {
|
// if (typeof value === 'number' && !isNaN(value)) {
|
||||||
td.textContent = value.toLocaleString() + ' 元'; // 添加单位
|
// td.textContent = value.toLocaleString() + ' 元'; // 添加单位
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 确保居中对齐(可选,若 className 已生效可省略)
|
// // 确保居中对齐(可选,若 className 已生效可省略)
|
||||||
return td;
|
// return td;
|
||||||
}
|
// }
|
||||||
}, // 其他物流费用
|
// }, // 其他物流费用
|
||||||
{ data: 'totalFee', className: 'htCenter', readOnly: true }, // 费用合计
|
// { data: 'totalFee', className: 'htCenter', readOnly: true }, // 费用合计
|
||||||
{
|
{
|
||||||
data: 'logisticsStatus',
|
data: 'logisticsStatus',
|
||||||
className: 'htCenter',
|
className: 'htCenter',
|
||||||
@ -671,6 +848,8 @@ const updateCheckDatas = async () => {
|
|||||||
} else {
|
} else {
|
||||||
ElMessage.error('更新失败');
|
ElMessage.error('更新失败');
|
||||||
}
|
}
|
||||||
|
hotTableDrawer.value = false;
|
||||||
|
getList();
|
||||||
};
|
};
|
||||||
|
|
||||||
/** 取消按钮 */
|
/** 取消按钮 */
|
||||||
@ -801,4 +980,12 @@ const handleExportDetail = () => {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
:deep(.my-total) {
|
||||||
|
background: var(--el-color-success-light-9) !important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -705,9 +705,13 @@ const handleExport = () => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
// onMounted(() => {
|
||||||
console.log('组件已挂载,hotInstance:', hotTable.value?.hotInstance);
|
// console.log('组件已挂载,hotInstance:', hotTable.value?.hotInstance);
|
||||||
|
//
|
||||||
|
// getList();
|
||||||
|
// });
|
||||||
|
|
||||||
|
onActivated(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -75,13 +75,68 @@
|
|||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label="FBA货件编号" align="center" prop="fbaShipmentId" />
|
<el-table-column label="FBA货件编号" align="center" prop="fbaShipmentId" />
|
||||||
<el-table-column label="订单编号" align="center" prop="orderId" />
|
<el-table-column label="订单编号" align="center" prop="orderId" />
|
||||||
|
<el-table-column label="店铺名称" align="center" prop="storeName" />
|
||||||
|
<el-table-column label="商品详情" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-popover placement="top" :width="950" trigger="hover">
|
||||||
|
<template #reference>
|
||||||
|
<el-button size="small" plain style="margin-right: 16px">查看</el-button>
|
||||||
|
</template>
|
||||||
|
<el-table :data="scope.row.shipmentItems">
|
||||||
|
<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="80" property="quantityShipped" label="申报量" />
|
||||||
|
<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="物流商ID" align="center" prop="logisticsProviderId" />-->
|
<!-- <el-table-column label="物流商ID" align="center" prop="logisticsProviderId" />-->
|
||||||
<!-- <el-table-column label="物流商名称" align="center" prop="logisticsProviderName" />-->
|
<!-- <el-table-column label="物流商名称" align="center" prop="logisticsProviderName" />-->
|
||||||
<el-table-column label="物流渠道" align="center" prop="channelName" />
|
<el-table-column label="物流渠道" align="center" prop="channelName" />
|
||||||
<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" prop="boxQuantity" />
|
||||||
<el-table-column label="总货件数量" align="center" prop="shipmentQuantity" />
|
<el-table-column label="总货件数量" align="center" prop="shipmentQuantity" />
|
||||||
<el-table-column label="报价单" align="center" prop="quoteOrderId" />
|
<!-- <el-table-column label="报价单" align="center" prop="quoteOrderId" />-->
|
||||||
|
<el-table-column width="150" label="报价详情" align="center" prop="quote">
|
||||||
|
<template #default="scope">
|
||||||
|
<!-- <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>
|
||||||
|
<div v-if="scope.row.quote">
|
||||||
|
<el-descriptions title="基本信息" :column="2" border>
|
||||||
|
<el-descriptions-item label="渠道名称">{{ scope.row.quote.channelName }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="目的地">{{ scope.row.quote.destination }}</el-descriptions-item>
|
||||||
|
<!-- <el-descriptions-item label="ID">{{ scope.row.quote.id }}</el-descriptions-item>-->
|
||||||
|
<el-descriptions-item label="物流公司">{{ scope.row.quote.logisticsName }}</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="货运ID">{{ scope.row.quote.shipmentId }}</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
|
||||||
|
<el-descriptions title="时间信息" :column="2" border class="mt-4">
|
||||||
|
<el-descriptions-item label="运输时间">{{ scope.row.quote.leadTime }} 天</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="最小运输时间">{{ scope.row.quote.minLeadTime }} 天</el-descriptions-item>
|
||||||
|
<el-descriptions-item label="报价日期">{{ scope.row.quote.quoteDate }}</el-descriptions-item>
|
||||||
|
</el-descriptions>
|
||||||
|
|
||||||
|
<el-descriptions title="费用信息" :column="2" border class="mt-4">
|
||||||
|
<el-descriptions-item label="报关费">{{ scope.row.quote.customsDeclarationFee }} </el-descriptions-item>
|
||||||
|
<el-descriptions-item label="价格">{{ scope.row.quote.price }} {{ scope.row.quote.unit }} </el-descriptions-item>
|
||||||
|
<el-descriptions-item label="附加费">{{ scope.row.quote.surcharge }}</el-descriptions-item>
|
||||||
|
<!-- <el-descriptions-item label="总价格">{{ scope.row.quote.totalPrice }}</el-descriptions-item>-->
|
||||||
|
</el-descriptions>
|
||||||
|
</div>
|
||||||
|
<div v-else>
|
||||||
|
<p>暂无报价信息</p>
|
||||||
|
</div>
|
||||||
|
</el-popover>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="是否已经确认" align="center" prop="isSta">
|
<el-table-column label="是否已经确认" align="center" prop="isSta">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :options="sys_zero_one" :value="scope.row.confirm" />
|
<dict-tag :options="sys_zero_one" :value="scope.row.confirm" />
|
||||||
@ -172,6 +227,7 @@ import {
|
|||||||
createLogisticsOrderQuotation
|
createLogisticsOrderQuotation
|
||||||
} from '@/api/amz/logisticsOrderQuotation';
|
} from '@/api/amz/logisticsOrderQuotation';
|
||||||
import { LogisticsOrderQuotationVO, LogisticsOrderQuotationQuery, LogisticsOrderQuotationForm } from '@/api/amz/logisticsOrderQuotation/types';
|
import { LogisticsOrderQuotationVO, LogisticsOrderQuotationQuery, LogisticsOrderQuotationForm } from '@/api/amz/logisticsOrderQuotation/types';
|
||||||
|
import { ElTable } from 'element-plus';
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
|
|
||||||
@ -344,7 +400,9 @@ const handleExport = () => {
|
|||||||
`logisticsOrderQuotation_${new Date().getTime()}.xlsx`
|
`logisticsOrderQuotation_${new Date().getTime()}.xlsx`
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
|
@ -86,9 +86,14 @@
|
|||||||
<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="remark">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :options="biz_quote_type" :value="scope.row.type" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="基础价格" align="center" sortable prop="price">
|
<el-table-column label="基础价格" align="center" sortable prop="price">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ scope.row.price + '元/kg' }}</span>
|
<span>{{ scope.row.price + scope.row.unit }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="时效" align="center" sortable prop="leadTime">
|
<el-table-column label="时效" align="center" sortable prop="leadTime">
|
||||||
@ -101,16 +106,26 @@
|
|||||||
<span>{{ scope.row.surcharge + '元' }}</span>
|
<span>{{ scope.row.surcharge + '元' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="报关费" align="center" prop="customsDeclarationFee">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ scope.row.customsDeclarationFee + '元' }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="体积比" align="center" prop="customsDeclarationFee">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ scope.row.volumeRatio }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="报价生效日期" align="center" prop="quoteDate" width="180">
|
<el-table-column label="报价生效日期" align="center" prop="quoteDate" width="180">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.quoteDate, '{y}-{m}-{d}') }}</span>
|
<span>{{ parseTime(scope.row.quoteDate, '{y}-{m}-{d}') }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="提交状态" align="center" prop="isSubmitted">
|
<!-- <el-table-column label="提交状态" align="center" prop="isSubmitted">-->
|
||||||
<template #default="scope">
|
<!-- <template #default="scope">-->
|
||||||
<dict-tag :options="sys_yes_no" :value="scope.row.isSubmitted" />
|
<!-- <dict-tag :options="sys_yes_no" :value="scope.row.isSubmitted" />-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-table-column>
|
<!-- </el-table-column>-->
|
||||||
<el-table-column label="报价备注" align="center" prop="remark" />
|
<el-table-column label="报价备注" align="center" prop="remark" />
|
||||||
<el-table-column label="渠道类型" align="center" prop="channelType">
|
<el-table-column label="渠道类型" align="center" prop="channelType">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
@ -122,7 +137,7 @@
|
|||||||
<dict-tag :options="sys_yes_no" :value="scope.row.isDdp" />
|
<dict-tag :options="sys_yes_no" :value="scope.row.isDdp" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="单位" align="center" prop="unit" />
|
<!-- <el-table-column label="单位" align="center" prop="unit" />-->
|
||||||
<el-table-column label="操作" align="center" v-hasRoles="['wuliu']" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" v-hasRoles="['wuliu']" class-name="small-padding fixed-width">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-tooltip content="修改" placement="top">
|
<el-tooltip content="修改" placement="top">
|
||||||
@ -211,6 +226,8 @@ const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|||||||
|
|
||||||
const { biz_channel_type } = toRefs<any>(proxy?.useDict('biz_channel_type'));
|
const { biz_channel_type } = toRefs<any>(proxy?.useDict('biz_channel_type'));
|
||||||
|
|
||||||
|
const { biz_quote_type } = toRefs<any>(proxy?.useDict('biz_quote_type'));
|
||||||
|
|
||||||
const { sys_yes_no } = toRefs<any>(proxy?.useDict('sys_yes_no'));
|
const { sys_yes_no } = toRefs<any>(proxy?.useDict('sys_yes_no'));
|
||||||
|
|
||||||
const logisticsQuoteList = ref<LogisticsQuoteVO[]>([]);
|
const logisticsQuoteList = ref<LogisticsQuoteVO[]>([]);
|
||||||
@ -384,7 +401,11 @@ const handleExport = () => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
// onMounted(() => {
|
||||||
|
// getList();
|
||||||
|
// });
|
||||||
|
|
||||||
|
onActivated(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -67,7 +67,7 @@
|
|||||||
<!-- <el-table-column label="采购计划号" align="center" prop="planSn" />-->
|
<!-- <el-table-column label="采购计划号" align="center" prop="planSn" />-->
|
||||||
<!-- <el-table-column label="本地产品ID" align="center" prop="productId" />-->
|
<!-- <el-table-column label="本地产品ID" align="center" prop="productId" />-->
|
||||||
<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" width="200px" />-->
|
<el-table-column label="SKU" align="center" prop="sku" width="200px" />
|
||||||
<!-- <el-table-column label="FNSKU" align="center" prop="fnsku" width="90px" />-->
|
<!-- <el-table-column label="FNSKU" align="center" prop="fnsku" width="90px" />-->
|
||||||
<!-- <el-table-column label="店铺ID" align="center" prop="sid" width="70px" />-->
|
<!-- <el-table-column label="店铺ID" align="center" prop="sid" width="70px" />-->
|
||||||
<!-- <el-table-column label="型号" align="center" prop="model" />-->
|
<!-- <el-table-column label="型号" align="center" prop="model" />-->
|
||||||
@ -103,7 +103,7 @@
|
|||||||
<!-- <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">
|
<el-table-column label="订单类型" align="center" prop="sendStatus">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :options="send_order_type" :value="scope.row.type" />
|
<dict-tag :options="pur_order_type" :value="scope.row.type" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="供应商名称" align="center" prop="supplierName" />
|
<el-table-column label="供应商名称" align="center" prop="supplierName" />
|
||||||
@ -406,7 +406,7 @@ 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 { pur_order_type } = toRefs<any>(proxy?.useDict('pur_order_type'));
|
||||||
|
|
||||||
const purchaseOrderList = ref<PurchaseOrderVO[]>([]);
|
const purchaseOrderList = ref<PurchaseOrderVO[]>([]);
|
||||||
const buttonLoading = ref(false);
|
const buttonLoading = ref(false);
|
||||||
@ -763,7 +763,10 @@ watch(
|
|||||||
{ immediate: true } // 立即执行一次
|
{ immediate: true } // 立即执行一次
|
||||||
);
|
);
|
||||||
|
|
||||||
onMounted(() => {
|
// onMounted(() => {
|
||||||
|
// getList();
|
||||||
|
// });
|
||||||
|
onActivated(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -10,10 +10,13 @@
|
|||||||
<el-form-item label="店铺名称" prop="customOrderSn">
|
<el-form-item label="店铺名称" prop="customOrderSn">
|
||||||
<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="订单状态" prop="orderStatus">
|
<!-- <el-form-item label="订单状态" prop="orderStatus">-->
|
||||||
<el-select multiple collapse-tags collapse-tags-tooltip v-model="queryParams.orderStatus" placeholder="请选择订单状态" clearable>
|
<!-- <el-select multiple collapse-tags collapse-tags-tooltip v-model="queryParams.orderStatus" placeholder="请选择订单状态" clearable>-->
|
||||||
<el-option v-for="dict in vendor_order_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
<!-- <el-option v-for="dict in vendor_order_status" :key="dict.value" :label="dict.label" :value="dict.value" />-->
|
||||||
</el-select>
|
<!-- </el-select>-->
|
||||||
|
<!-- </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>
|
||||||
<el-form-item label="SKU" prop="customOrderSn">
|
<el-form-item label="SKU" prop="customOrderSn">
|
||||||
<el-input v-model="queryParams.sku" placeholder="请输入sku" clearable @keyup.enter="handleQuery" />
|
<el-input v-model="queryParams.sku" placeholder="请输入sku" clearable @keyup.enter="handleQuery" />
|
||||||
@ -78,10 +81,11 @@
|
|||||||
<!-- <el-table-column label="价税合计" align="center" prop="amount" />-->
|
<!-- <el-table-column label="价税合计" align="center" prop="amount" />-->
|
||||||
<!-- <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="quantityShipped" />-->
|
||||||
<el-table-column label="剩余数量" align="center" prop="quantityLeft" />
|
<!-- <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="quantityForward" />
|
||||||
|
<!-- <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" />-->
|
||||||
<!-- <el-table-column label="待到货量" align="center" prop="quantityReceive" />-->
|
<!-- <el-table-column label="待到货量" align="center" prop="quantityReceive" />-->
|
||||||
@ -114,16 +118,16 @@
|
|||||||
</el-timeline>
|
</el-timeline>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="是否有半成品转发" align="center" prop="hasForward">
|
<!-- <el-table-column label="是否有半成品转发" align="center" prop="hasForward">-->
|
||||||
<template #default="scope">
|
<!-- <template #default="scope">-->
|
||||||
<dict-tag :options="sys_yes_no" :value="scope.row.hasForward" />
|
<!-- <dict-tag :options="sys_yes_no" :value="scope.row.hasForward" />-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-table-column>
|
<!-- </el-table-column>-->
|
||||||
<el-table-column label="是否有成品发货" align="center" prop="hasSendOrder">
|
<!-- <el-table-column label="是否有成品发货" align="center" prop="hasSendOrder">-->
|
||||||
<template #default="scope">
|
<!-- <template #default="scope">-->
|
||||||
<dict-tag :options="sys_yes_no" :value="scope.row.hasSendOrder" />
|
<!-- <dict-tag :options="sys_yes_no" :value="scope.row.hasSendOrder" />-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-table-column>
|
<!-- </el-table-column>-->
|
||||||
<!-- <el-table-column label="单箱数量" align="center" prop="quantityPerCase" />-->
|
<!-- <el-table-column label="单箱数量" align="center" prop="quantityPerCase" />-->
|
||||||
<!-- <el-table-column label="是否删除:0 否,1 是" align="center" prop="isDelete" />-->
|
<!-- <el-table-column label="是否删除:0 否,1 是" align="center" prop="isDelete" />-->
|
||||||
<!-- <el-table-column label="税率" align="center" prop="taxRate" />-->
|
<!-- <el-table-column label="税率" align="center" prop="taxRate" />-->
|
||||||
@ -131,17 +135,17 @@
|
|||||||
<!-- <el-table-column label="款名" align="center" prop="spuName" />-->
|
<!-- <el-table-column label="款名" align="center" prop="spuName" />-->
|
||||||
<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-button
|
<!-- <el-button-->
|
||||||
size="small"
|
<!-- size="small"-->
|
||||||
link
|
<!-- link-->
|
||||||
type="primary"
|
<!-- type="primary"-->
|
||||||
@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'"
|
<!-- v-if="props.row.type == 'com'"-->
|
||||||
>
|
<!-- >-->
|
||||||
半成品转发
|
<!-- 半成品转发-->
|
||||||
</el-button>
|
<!-- </el-button>-->
|
||||||
<el-button
|
<el-button
|
||||||
size="small"
|
size="small"
|
||||||
link
|
link
|
||||||
@ -152,17 +156,17 @@
|
|||||||
>
|
>
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<!-- <el-button-->
|
||||||
size="small"
|
<!-- size="small"-->
|
||||||
link
|
<!-- link-->
|
||||||
type="primary"
|
<!-- type="primary"-->
|
||||||
@click="handleShip(scope.row, props.row)"
|
<!-- @click="handleShip(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 == 'ord'"
|
<!-- v-if="props.row.type == 'ord'"-->
|
||||||
>
|
<!-- >-->
|
||||||
成品发货
|
<!-- 成品发货-->
|
||||||
</el-button>
|
<!-- </el-button>-->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
@ -172,9 +176,9 @@
|
|||||||
<!-- <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">
|
<el-table-column label="订单类型" align="center" prop="sendStatus" v-hasRoles="['superadmin', 'gengdan']">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :options="send_order_type" :value="scope.row.type" />
|
<dict-tag :options="pur_order_type" :value="scope.row.type" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- <el-table-column label="自定义单号" align="center" prop="customOrderSn" />-->
|
<!-- <el-table-column label="自定义单号" align="center" prop="customOrderSn" />-->
|
||||||
@ -342,14 +346,14 @@
|
|||||||
<el-form-item label="实际采购量" prop="quantityReal">
|
<el-form-item label="实际采购量" prop="quantityReal">
|
||||||
<el-input v-model="detailForm.quantityReal" placeholder="实际采购量" disabled />
|
<el-input v-model="detailForm.quantityReal" placeholder="实际采购量" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="半成品可发货数量" prop="sfgAvlQty">
|
<!-- <el-form-item label="半成品可发货数量" prop="sfgAvlQty">-->
|
||||||
<!-- <el-input v-model="detailForm.sfgAvlQty" placeholder="请输入半成品可发货数量" />-->
|
<!-- <!– <el-input v-model="detailForm.sfgAvlQty" placeholder="请输入半成品可发货数量" />–>-->
|
||||||
<el-input-number v-model="detailForm.sfgAvlQty" :min="0" :max="detailForm.quantityReal">
|
<!-- <el-input-number v-model="detailForm.sfgAvlQty" :min="0" :max="detailForm.quantityReal">-->
|
||||||
<template #suffix>
|
<!-- <template #suffix>-->
|
||||||
<span>件</span>
|
<!-- <span>件</span>-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-input-number>
|
<!-- </el-input-number>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
|
|
||||||
<!-- <el-form-item label="交货天数" prop="estDlvDays">-->
|
<!-- <el-form-item label="交货天数" prop="estDlvDays">-->
|
||||||
<!-- <!– <el-input v-model="form.estDlvDays" placeholder="请输入交货天数" />–>-->
|
<!-- <!– <el-input v-model="form.estDlvDays" placeholder="请输入交货天数" />–>-->
|
||||||
@ -413,9 +417,9 @@
|
|||||||
<el-form-item label="产品全称" prop="productName">
|
<el-form-item label="产品全称" prop="productName">
|
||||||
<el-input v-model="forwardForm.productName" placeholder="请输入产品全称" disabled />
|
<el-input v-model="forwardForm.productName" placeholder="请输入产品全称" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="半成品可发货数量" prop="sfgAvlQty">
|
<!-- <el-form-item label="半成品可发货数量" prop="sfgAvlQty">-->
|
||||||
<el-input v-model="forwardForm.sfgAvlQty" placeholder="请输入半成品可发货数量" disabled />
|
<!-- <el-input v-model="forwardForm.sfgAvlQty" placeholder="请输入半成品可发货数量" disabled />-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
<el-form-item label="发货数量" prop="quantitySend">
|
<el-form-item label="发货数量" prop="quantitySend">
|
||||||
<el-input-number v-model="forwardForm.quantitySend" :min="1" :max="maxQuality">
|
<el-input-number v-model="forwardForm.quantitySend" :min="1" :max="maxQuality">
|
||||||
<template #suffix>
|
<template #suffix>
|
||||||
@ -640,7 +644,7 @@ 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 { pur_order_type } = toRefs<any>(proxy?.useDict('pur_order_type'));
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
|
|
||||||
@ -1473,5 +1477,8 @@ watch(
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<el-date-picker clearable v-model="queryParams.deliveryTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择交货时间" />
|
<el-date-picker clearable v-model="queryParams.deliveryTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择交货时间" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="供应商名称" prop="supplierName">
|
<el-form-item label="供应商" prop="supplierName">
|
||||||
<el-input v-model="queryParams.supplierName" placeholder="请输入供应商名称" clearable @keyup.enter="handleQuery" />
|
<el-input v-model="queryParams.supplierName" placeholder="请输入供应商名称" clearable @keyup.enter="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="SKU" prop="customOrderSn">
|
<el-form-item label="SKU" prop="customOrderSn">
|
||||||
@ -143,7 +143,7 @@
|
|||||||
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
<el-table-column label="采购单号" align="center" prop="orderSn" />
|
||||||
<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_order_type" :value="scope.row.type" />
|
<dict-tag :options="pur_order_type" :value="scope.row.type" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<!-- <el-table-column label="自定义单号" align="center" prop="customOrderSn" />-->
|
<!-- <el-table-column label="自定义单号" align="center" prop="customOrderSn" />-->
|
||||||
@ -379,7 +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 { pur_order_type } = toRefs<any>(proxy?.useDict('pur_order_type'));
|
||||||
|
|
||||||
const purchaseOrderList = ref<PurchaseOrderVO[]>([]);
|
const purchaseOrderList = ref<PurchaseOrderVO[]>([]);
|
||||||
const shipForwardList = ref<ShipForwardVO[]>([]);
|
const shipForwardList = ref<ShipForwardVO[]>([]);
|
||||||
@ -890,5 +890,8 @@ const handleExport = () => {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
1485
src/views/amz/purchaseOrderSend/index.vue
Normal file
1485
src/views/amz/purchaseOrderSend/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
@ -120,21 +120,81 @@
|
|||||||
<dict-tag :options="purchase_order_status" :value="scope.row.order?.status" />
|
<dict-tag :options="purchase_order_status" :value="scope.row.order?.status" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="转发完成数量" align="center" prop="quantityForward" />
|
||||||
<el-table-column label="采购数量" align="center" prop="quantityReal" />
|
<el-table-column label="采购数量" align="center" prop="quantityReal" />
|
||||||
<el-table-column label="已下单数量" align="center" prop="quantityShipped" />
|
<!-- <el-table-column label="已出货数量(最终仓库出货)" align="center" prop="quantityShipped" />-->
|
||||||
<el-table-column label="剩余数量" align="center" prop="quantityLeft" />
|
<el-table-column align="center" prop="quantityShipped">
|
||||||
|
<!-- 使用 #header 插槽自定义表头 -->
|
||||||
|
<template #header>
|
||||||
|
<div class="custom-header">
|
||||||
|
<span>已出货数量</span>
|
||||||
|
<el-tooltip effect="dark" content="表示从最终仓库实际发出的货物数量,不包括订单内部的半成品转发" placement="top">
|
||||||
|
<!-- <i class="el-icon-question header-icon"></i>-->
|
||||||
|
<!-- <el-button type="danger" size="small" :icon="Delete" circle />-->
|
||||||
|
<el-icon color="#FB9700FF" style="font-size: 15px">
|
||||||
|
<Warning />
|
||||||
|
</el-icon>
|
||||||
|
</el-tooltip>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 使用 #default 插槽自定义单元格内容 -->
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.row.quantityShipped }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="剩余数量" align="center" prop="quantityLeft">
|
||||||
|
<template #header>
|
||||||
|
<div class="custom-header">
|
||||||
|
<span>剩余数量</span>
|
||||||
|
<el-tooltip effect="dark" content="表示从最终仓库实际的剩余货物数量,不包括订单内部的半成品转发" placement="top">
|
||||||
|
<!-- <i class="el-icon-question header-icon"></i>-->
|
||||||
|
<!-- <el-button type="danger" size="small" :icon="Delete" circle />-->
|
||||||
|
<el-icon color="#FB9700FF" style="font-size: 15px">
|
||||||
|
<Warning />
|
||||||
|
</el-icon>
|
||||||
|
</el-tooltip>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<!-- 使用 #default 插槽自定义单元格内容 -->
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.row.quantityLeft }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="订单状态" align="center" prop="item.orderStatus">
|
<el-table-column label="订单状态" align="center" prop="item.orderStatus">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :options="vendor_order_status" :value="scope.row.item?.orderStatus" />
|
<dict-tag :options="vendor_order_status" :value="scope.row.item?.orderStatus" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="备注" align="center" prop="order.remark" />
|
<el-table-column label="备注" align="center" prop="order.remark" />
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button
|
||||||
|
size="small"
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
@click="handleForward(scope.row.item, scope.row.order, scope.row, props.row)"
|
||||||
|
v-hasRoles="['superadmin', 'gengdan']"
|
||||||
|
v-hasPermi="['amz:purchaseOrder:remove']"
|
||||||
|
v-if="scope.row.forwardType == 'other'"
|
||||||
|
>
|
||||||
|
半成品转发
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
</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="orderSn">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-tag>{{ scope.row.statusText }}</el-tag>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column label="仓库" align="center" prop="warehouseName" />
|
<el-table-column label="仓库" align="center" prop="warehouseName" />
|
||||||
<!-- <el-table-column label="外包仓库名称" align="center" prop="outsourceWarehouseName" />-->
|
<!-- <el-table-column label="外包仓库名称" align="center" prop="outsourceWarehouseName" />-->
|
||||||
<el-table-column label="供应商名称" align="center" prop="supplierName" />
|
<el-table-column label="供应商名称" align="center" prop="supplierName" />
|
||||||
@ -310,6 +370,7 @@
|
|||||||
<el-table-column label="采购店铺名称" align="center" prop="storeName" />
|
<el-table-column label="采购店铺名称" align="center" prop="storeName" />
|
||||||
<el-table-column label="SKU" align="center" prop="sku" />
|
<el-table-column label="SKU" align="center" prop="sku" />
|
||||||
<el-table-column label="产品全称" align="center" prop="productName" />
|
<el-table-column label="产品全称" align="center" prop="productName" />
|
||||||
|
<el-table-column label="计划发货数量" align="center" prop="quantityPlan" />
|
||||||
<el-table-column label="实际发货数量" align="center" prop="quantitySend" />
|
<el-table-column label="实际发货数量" align="center" prop="quantitySend" />
|
||||||
<el-table-column label="发货方" align="center" prop="outSupplierName" />
|
<el-table-column label="发货方" align="center" prop="outSupplierName" />
|
||||||
<!-- <el-table-column label="发货供应商系统ID" align="center" prop="outSupplierId" />-->
|
<!-- <el-table-column label="发货供应商系统ID" align="center" prop="outSupplierId" />-->
|
||||||
@ -356,6 +417,64 @@
|
|||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
<!-- </template>-->
|
<!-- </template>-->
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
<el-dialog :title="forwardDialog.title" v-model="forwardDialog.visible" width="800px" append-to-body>
|
||||||
|
<el-form ref="shipForwardFormRef" :model="forwardForm" :rules="rules2" label-width="130px">
|
||||||
|
<el-form-item label="采购单号" prop="orderSn">
|
||||||
|
<el-input v-model="forwardForm.orderSn" placeholder="请输入采购单号" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="店铺名称" prop="storeName">
|
||||||
|
<el-input v-model="forwardForm.storeName" placeholder="请输入采购店铺名称" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="SKU" prop="sku">
|
||||||
|
<el-input v-model="forwardForm.sku" placeholder="请输入产品唯一标识码" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="产品全称" prop="productName">
|
||||||
|
<el-input v-model="forwardForm.productName" placeholder="请输入产品全称" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<!-- <el-form-item label="半成品可发货数量" prop="sfgAvlQty">-->
|
||||||
|
<!-- <el-input v-model="forwardForm.sfgAvlQty" placeholder="请输入半成品可发货数量" disabled />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item label="计划发货数量" prop="quantitySend">
|
||||||
|
<el-input-number controls-position="right" v-model="forwardForm.quantityPlan" :min="1" :max="maxQuality">
|
||||||
|
<template #suffix>
|
||||||
|
<span>个</span>
|
||||||
|
</template>
|
||||||
|
</el-input-number>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="发货方" prop="outSupplierName">
|
||||||
|
<el-input v-model="forwardForm.outSupplierName" placeholder="请输入发货供应商名称" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<!-- <el-form-item label="发货方ID" prop="outSupplierId">-->
|
||||||
|
<!-- <el-input v-model="forwardForm.outSupplierId" placeholder="请输入发货供应商系统ID" />-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<!-- <el-form-item label="收货方" prop="inSupplierName">-->
|
||||||
|
<!-- <!– <el-input v-model="forwardForm.inSupplierName" placeholder="请输入收货供应商名称" />–>-->
|
||||||
|
<!-- <el-select v-model="selectUser" placeholder="请选择供应商" @change="selectAction">-->
|
||||||
|
<!-- <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.rawData" :disabled="item.disabled">-->
|
||||||
|
<!-- <!– 自定义选项内容 –>-->
|
||||||
|
<!-- <span>{{ item.label }}</span>-->
|
||||||
|
<!-- <!– <span style="float: right; color: #8492a6; font-size: 13px">–>-->
|
||||||
|
<!-- <!– {{ item.rawData.userName }}–>-->
|
||||||
|
<!-- <!– </span>–>-->
|
||||||
|
<!-- </el-option>-->
|
||||||
|
<!-- </el-select>-->
|
||||||
|
<!-- </el-form-item>-->
|
||||||
|
<el-form-item label="收货方" prop="inSupplierName">
|
||||||
|
<el-input v-model="forwardForm.inSupplierName" placeholder="请输入收货方" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="收货方采购单" prop="inOrderSn">
|
||||||
|
<el-input v-model="forwardForm.inOrderSn" placeholder="请输入收货方采购单" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button :loading="buttonLoading" type="primary" @click="forwardSubmitForm">确 定</el-button>
|
||||||
|
<el-button @click="forwardDialog.visible = false">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -373,7 +492,10 @@ import { VxeTable, VxeColumn } from 'vxe-table';
|
|||||||
import type { VxeTablePropTypes } from 'vxe-table';
|
import type { VxeTablePropTypes } from 'vxe-table';
|
||||||
|
|
||||||
import 'vxe-table/lib/style.css';
|
import 'vxe-table/lib/style.css';
|
||||||
import { ShipForwardVO } from '@/api/amz/shipForward/types';
|
import { ShipForwardForm, ShipForwardVO } from '@/api/amz/shipForward/types';
|
||||||
|
import { QuestionFilled } from '@element-plus/icons-vue';
|
||||||
|
import { roleSelectPost } from '@/api/system/user';
|
||||||
|
import { addShipForward, updateShipForward } from '@/api/amz/shipForward';
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
|
|
||||||
@ -406,11 +528,49 @@ const dialog = reactive<DialogOption>({
|
|||||||
title: ''
|
title: ''
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const forwardDialog = reactive<DialogOption>({
|
||||||
|
visible: false,
|
||||||
|
title: ''
|
||||||
|
});
|
||||||
|
|
||||||
const editConfig: VxeTablePropTypes.EditConfig = {
|
const editConfig: VxeTablePropTypes.EditConfig = {
|
||||||
trigger: 'dblclick',
|
trigger: 'dblclick',
|
||||||
mode: 'cell'
|
mode: 'cell'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const forwardForm = ref<ShipForwardForm>({
|
||||||
|
id: undefined,
|
||||||
|
orderSn: undefined,
|
||||||
|
storeName: undefined,
|
||||||
|
sku: undefined,
|
||||||
|
productName: undefined,
|
||||||
|
quantitySend: undefined,
|
||||||
|
outSupplierName: undefined,
|
||||||
|
outSupplierId: undefined,
|
||||||
|
inSupplierName: undefined,
|
||||||
|
inSupplierId: undefined,
|
||||||
|
shipmentStart: undefined,
|
||||||
|
shipmentEnd: undefined,
|
||||||
|
trackerName: undefined,
|
||||||
|
trackerId: undefined,
|
||||||
|
fwdStatus: undefined,
|
||||||
|
sendTime: undefined,
|
||||||
|
sfgAvlQty: 0
|
||||||
|
});
|
||||||
|
|
||||||
|
const options = ref([]);
|
||||||
|
|
||||||
|
const roleSelectAction = async () => {
|
||||||
|
const res = await roleSelectPost([5]);
|
||||||
|
console.log('res', res);
|
||||||
|
|
||||||
|
options.value = res.data.map((user) => ({
|
||||||
|
value: user.userId, // 选项值对应 userId
|
||||||
|
label: user.nickName || '', // 显示文本用 nickName
|
||||||
|
rawData: user // 保留原始数据(按需)
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
|
||||||
const initFormData: PurchaseOutOrderForm = {
|
const initFormData: PurchaseOutOrderForm = {
|
||||||
orderSn: undefined,
|
orderSn: undefined,
|
||||||
warehouseName: undefined,
|
warehouseName: undefined,
|
||||||
@ -478,12 +638,100 @@ const data = reactive<PageData<PurchaseOutOrderForm, PurchaseOutOrderQuery>>({
|
|||||||
// msku: [{ required: true, message: 'MSKU编码列表 (数组存储)不能为空', trigger: 'blur' }],
|
// msku: [{ required: true, message: 'MSKU编码列表 (数组存储)不能为空', trigger: 'blur' }],
|
||||||
// planSn: [{ required: true, message: '关联计划单号列表 (数组存储)不能为空', trigger: 'blur' }],
|
// planSn: [{ required: true, message: '关联计划单号列表 (数组存储)不能为空', trigger: 'blur' }],
|
||||||
sellerName: [{ required: true, message: '销售商名称不能为空', trigger: 'blur' }]
|
sellerName: [{ required: true, message: '销售商名称不能为空', trigger: 'blur' }]
|
||||||
|
},
|
||||||
|
rules2: {
|
||||||
|
id: [{ required: true, message: '$comment不能为空', trigger: 'blur' }],
|
||||||
|
orderSn: [{ required: true, message: '采购单号不能为空', trigger: 'blur' }],
|
||||||
|
inOrderSn: [{ required: true, message: '收货方采购单号不能为空', trigger: 'blur' }],
|
||||||
|
storeName: [{ required: true, message: '采购店铺名称不能为空', trigger: 'blur' }],
|
||||||
|
sku: [{ required: true, message: '产品唯一标识码不能为空', trigger: 'blur' }],
|
||||||
|
productName: [{ required: true, message: '产品全称不能为空', trigger: 'blur' }],
|
||||||
|
quantityPlan: [{ required: true, message: '计划发货数量不能为空', trigger: 'blur' }],
|
||||||
|
outSupplierName: [{ required: true, message: '发货供应商名称不能为空', trigger: 'blur' }],
|
||||||
|
outSupplierId: [{ required: true, message: '发货供应商系统ID不能为空', trigger: 'blur' }],
|
||||||
|
inSupplierName: [{ required: true, message: '收货供应商名称不能为空', trigger: 'blur' }],
|
||||||
|
inSupplierId: [{ required: true, message: '收货供应商系统ID不能为空', trigger: 'blur' }],
|
||||||
|
// shipmentStart: [{ required: true, message: '计划发货起始时间不能为空', trigger: 'blur' }],
|
||||||
|
shipmentEnd: [{ required: true, message: '计划发货截止时间不能为空', trigger: 'blur' }],
|
||||||
|
trackerName: [{ required: true, message: '跟单人不能为空', trigger: 'blur' }],
|
||||||
|
trackerId: [{ required: true, message: '跟单id不能为空', trigger: 'blur' }],
|
||||||
|
fwdStatus: [{ required: true, message: '转发状态不能为空', trigger: 'change' }],
|
||||||
|
sendTime: [{ required: true, message: '发货时间不能为空', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules, rules2 } = toRefs(data);
|
||||||
|
|
||||||
const quality = ref(0);
|
const quality = ref(0);
|
||||||
|
|
||||||
|
const maxQuality = ref(0);
|
||||||
|
|
||||||
|
const selectUser = ref<any>();
|
||||||
|
|
||||||
|
const shipForwardFormRef = ref<ElFormInstance>();
|
||||||
|
|
||||||
|
const selectAction = () => {
|
||||||
|
console.log('selectUser', selectUser);
|
||||||
|
|
||||||
|
forwardForm.value.inSupplierId = selectUser.value.userId;
|
||||||
|
forwardForm.value.inSupplierName = selectUser.value.nickName;
|
||||||
|
selectUser.value = selectUser.value.nickName;
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleForward = async (row?, rowM?, rowA?, rowB?) => {
|
||||||
|
// reset();
|
||||||
|
// const _orderSn = row?.orderSn || ids.value[0];
|
||||||
|
// const res = await getPurchaseOrder(_orderSn);
|
||||||
|
// Object.assign(form.value, res.data);
|
||||||
|
// dialog.visible = true;
|
||||||
|
// dialog.title = '修改采购单主';
|
||||||
|
|
||||||
|
console.log('row', row);
|
||||||
|
console.log('rowM', rowM);
|
||||||
|
console.log('rowA', rowA);
|
||||||
|
if (row?.orderStatus === 'ord_unconfirmed') {
|
||||||
|
proxy?.$modal.msgError('请先让供应商确认订单!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
maxQuality.value = Number(rowA?.quantityCanForward);
|
||||||
|
console.log('maxQuality', maxQuality.value);
|
||||||
|
if (maxQuality.value === 0 || maxQuality.value === undefined) {
|
||||||
|
console.log('没有可以发的货!');
|
||||||
|
proxy?.$modal.msgError('没有可以发的货!');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// roleSelectAction();
|
||||||
|
|
||||||
|
forwardForm.value.orderSn = row?.orderSn;
|
||||||
|
forwardForm.value.storeName = rowM?.storeName;
|
||||||
|
forwardForm.value.sku = row?.sku;
|
||||||
|
forwardForm.value.productName = row?.productName;
|
||||||
|
forwardForm.value.quantityPlan = Number(maxQuality.value);
|
||||||
|
forwardForm.value.outSupplierName = rowM?.supplierName;
|
||||||
|
forwardForm.value.outSupplierId = rowM?.supplierId;
|
||||||
|
forwardForm.value.orderDetailId = row?.id;
|
||||||
|
forwardForm.value.sfgAvlQty = row?.sfgAvlQty;
|
||||||
|
|
||||||
|
// forwardForm.value.inSupplierName = row?.inSupplierName;
|
||||||
|
// forwardForm.value.inSupplierId = row?.inSupplierId;
|
||||||
|
// forwardForm.value.shipmentStart = row?.shipmentStart;
|
||||||
|
// forwardForm.value.shipmentEnd = row?.shipmentEnd;
|
||||||
|
// forwardForm.value.trackerName = row?.trackerName;
|
||||||
|
// forwardForm.value.trackerId = row?.trackerId;
|
||||||
|
// forwardForm.value.fwdStatus = row?.fwdStatus;
|
||||||
|
// forwardForm.value.sendTime = row?.sendTime;
|
||||||
|
forwardForm.value.inSupplierName = rowB?.supplierName;
|
||||||
|
forwardForm.value.inSupplierId = rowB?.supplierId;
|
||||||
|
forwardForm.value.inOrderSn = null;
|
||||||
|
|
||||||
|
// console.log('row', row);
|
||||||
|
// console.log('rowM', rowM);
|
||||||
|
|
||||||
|
forwardDialog.visible = true;
|
||||||
|
forwardDialog.title = '添加转发数据';
|
||||||
|
};
|
||||||
|
|
||||||
/** 查询组合订单列表 */
|
/** 查询组合订单列表 */
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
@ -555,11 +803,14 @@ const goToOrderDetail = async (orderStatus?: string, orderSn?: string) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const qualityMin = ref(0);
|
||||||
|
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
const handleUpdate = async (row?: PurchaseOutOrderVO) => {
|
const handleUpdate = async (row?: PurchaseOutOrderVO) => {
|
||||||
reset();
|
reset();
|
||||||
// const orderSn = row?.orderSn || ids.value[0];
|
// const orderSn = row?.orderSn || ids.value[0];
|
||||||
// const res = await getPurchaseOutOrder(orderSn);
|
// const res = await getPurchaseOutOrder(orderSn);
|
||||||
|
|
||||||
if (row.quantityLeft <= 0) {
|
if (row.quantityLeft <= 0) {
|
||||||
proxy?.$modal.msgError('该订单已全部发货');
|
proxy?.$modal.msgError('该订单已全部发货');
|
||||||
return;
|
return;
|
||||||
@ -568,15 +819,40 @@ const handleUpdate = async (row?: PurchaseOutOrderVO) => {
|
|||||||
proxy?.$modal.msgError('有采购订单没有确认');
|
proxy?.$modal.msgError('有采购订单没有确认');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (row.items.every((item) => item.fowardType === 'self' && item.quantityForward <= 0)) {
|
||||||
|
proxy?.$modal.msgError('没有转发完成');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
form.value = deepClone(row);
|
form.value = deepClone(row);
|
||||||
quality.value = form.value.quantityLeft;
|
|
||||||
|
form.value.items.forEach((item) => {
|
||||||
|
// item.order.quantityReal = item.quantityLeft;
|
||||||
|
let minQuantity2;
|
||||||
|
if (item.forwardType === 'other') {
|
||||||
|
minQuantity2 = Number(item.quantityForward) / Number(item.ratio);
|
||||||
|
console.log('item', item);
|
||||||
|
console.log('minQuantity2', minQuantity2);
|
||||||
|
|
||||||
|
form.value.quantityLeft = Math.min(Number(row.quantityLeft), Number(minQuantity2));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log('form.value.quantityLeft', form.value.quantityLeft);
|
||||||
|
|
||||||
|
if (form.value.quantityLeft <= 0) {
|
||||||
|
proxy?.$modal.msgError('该订单没有可发货数量');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
console.log('form', form.value);
|
||||||
|
|
||||||
form.value.outsourceQuantity = form.value.quantityLeft;
|
form.value.outsourceQuantity = form.value.quantityLeft;
|
||||||
|
quality.value = form.value.quantityLeft;
|
||||||
console.log('quantity', quality.value);
|
console.log('quantity', quality.value);
|
||||||
console.log('form.value.outsourceQuantity', form.value.outsourceQuantity);
|
console.log('form.value.outsourceQuantity', form.value.outsourceQuantity);
|
||||||
|
|
||||||
form.value.items.forEach((item) => {
|
form.value.items.forEach((item) => {
|
||||||
// item.order.quantityReal = item.quantityLeft;
|
|
||||||
|
|
||||||
item.order.quantityReal = form.value.quantityLeft * item.ratio;
|
item.order.quantityReal = form.value.quantityLeft * item.ratio;
|
||||||
});
|
});
|
||||||
dialog.visible = true;
|
dialog.visible = true;
|
||||||
@ -604,6 +880,26 @@ const submitForm = () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const forwardSubmitForm = () => {
|
||||||
|
if (forwardForm.value.inSupplierName === forwardForm.value.outSupplierName) {
|
||||||
|
proxy?.$modal.msgError('请不要选择相同的供应商');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
shipForwardFormRef.value?.validate(async (valid: boolean) => {
|
||||||
|
if (valid) {
|
||||||
|
buttonLoading.value = true;
|
||||||
|
if (forwardForm.value.id) {
|
||||||
|
await updateShipForward(forwardForm.value).finally(() => (buttonLoading.value = false));
|
||||||
|
} else {
|
||||||
|
await addShipForward(forwardForm.value).finally(() => (buttonLoading.value = false));
|
||||||
|
}
|
||||||
|
proxy?.$modal.msgSuccess('操作成功');
|
||||||
|
forwardDialog.visible = false;
|
||||||
|
await getList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
const submitSendOrderForm = () => {
|
const submitSendOrderForm = () => {
|
||||||
purchaseOutOrderFormRef.value?.validate(async (valid: boolean) => {
|
purchaseOutOrderFormRef.value?.validate(async (valid: boolean) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
@ -646,4 +942,25 @@ const handleExport = () => {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.custom-header {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-icon {
|
||||||
|
margin-left: 8px;
|
||||||
|
color: #909399;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: color 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-icon:hover {
|
||||||
|
color: #409eff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
@ -753,4 +753,8 @@ const handleExport = () => {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -274,7 +274,7 @@
|
|||||||
<el-input v-model="transferForm.productName" placeholder="请输入产品名称" disabled />
|
<el-input v-model="transferForm.productName" placeholder="请输入产品名称" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="店铺名称" prop="productName">
|
<el-form-item label="店铺名称" prop="productName">
|
||||||
<el-input v-model="transferForm.storeName" placeholder="请输入产品名称" disabled />
|
<el-input v-model="transferForm.storeName" placeholder="请输入产品名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="发货总数" prop="quantitySend">
|
<el-form-item label="发货总数" prop="quantitySend">
|
||||||
<el-input-number :min="1" :max="quantity" controls-position="right" v-model="transferForm.quantitySend" placeholder="发货总数" />
|
<el-input-number :min="1" :max="quantity" controls-position="right" v-model="transferForm.quantitySend" placeholder="发货总数" />
|
||||||
@ -459,6 +459,7 @@ const transferForm = ref<SendOrderVO>();
|
|||||||
|
|
||||||
const handleTransfer = async (row?: SendOrderVO) => {
|
const handleTransfer = async (row?: SendOrderVO) => {
|
||||||
//调拨
|
//调拨
|
||||||
|
quantity.value = row?.quantitySend;
|
||||||
console.log('row', row);
|
console.log('row', row);
|
||||||
transferForm.value = deepClone(row);
|
transferForm.value = deepClone(row);
|
||||||
transferDialog.visible = true;
|
transferDialog.visible = true;
|
||||||
@ -514,4 +515,8 @@ const handleExport = () => {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -88,9 +88,9 @@
|
|||||||
</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">
|
<el-table-column label="FBA列表" align="center" prop="handleFbaList">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button link type="primary" @click="handleFbaList(scope.row)" v-hasPermi="['amz:sendOrder:remove']"> 查看详情 </el-button>
|
<el-button link type="primary" @click="handleFbaList(scope.row)"> 查看详情</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
@ -479,6 +479,10 @@ const handleExport = () => {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<!--<style scoped>-->
|
<!--<style scoped>-->
|
||||||
<!--/* 展开行容器 */-->
|
<!--/* 展开行容器 */-->
|
||||||
|
@ -79,9 +79,12 @@
|
|||||||
<el-table-column label="采购店铺名称" align="center" prop="storeName" />
|
<el-table-column label="采购店铺名称" align="center" prop="storeName" />
|
||||||
<el-table-column label="SKU" align="center" prop="sku" />
|
<el-table-column label="SKU" align="center" prop="sku" />
|
||||||
<el-table-column label="产品全称" align="center" prop="productName" />
|
<el-table-column label="产品全称" align="center" prop="productName" />
|
||||||
|
<el-table-column label="计划发货数量" align="center" prop="quantityPlan" />
|
||||||
|
|
||||||
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
||||||
<el-table-column label="发货箱数" align="center" prop="boxNum" />
|
<el-table-column label="发货箱数" align="center" prop="boxNum" />
|
||||||
<el-table-column label="发货方" align="center" prop="outSupplierName" />
|
<el-table-column label="发货方" align="center" prop="outSupplierName" />
|
||||||
|
<el-table-column label="总金额" align="center" prop="totalPrice" />
|
||||||
<!-- <el-table-column label="发货供应商系统ID" align="center" prop="outSupplierId" />-->
|
<!-- <el-table-column label="发货供应商系统ID" align="center" prop="outSupplierId" />-->
|
||||||
<el-table-column label="收货方" align="center" prop="inSupplierName" />
|
<el-table-column label="收货方" align="center" prop="inSupplierName" />
|
||||||
<!-- <el-table-column label="收货供应商系统ID" align="center" prop="inSupplierId" />-->
|
<!-- <el-table-column label="收货供应商系统ID" align="center" prop="inSupplierId" />-->
|
||||||
@ -597,4 +600,7 @@ const handleExport = () => {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -81,9 +81,11 @@
|
|||||||
<el-table-column label="采购店铺名称" align="center" prop="storeName" />
|
<el-table-column label="采购店铺名称" align="center" prop="storeName" />
|
||||||
<el-table-column label="SKU" align="center" prop="sku" />
|
<el-table-column label="SKU" align="center" prop="sku" />
|
||||||
<el-table-column label="产品全称" align="center" prop="productName" />
|
<el-table-column label="产品全称" align="center" prop="productName" />
|
||||||
|
<el-table-column label="计划发货数量" align="center" prop="quantityPlan" />
|
||||||
|
|
||||||
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
||||||
<el-table-column label="发货箱数" align="center" prop="boxNum" />
|
<el-table-column label="发货箱数" align="center" prop="boxNum" />
|
||||||
<el-table-column label="总金额" align="center" prop="totalPrice" />
|
<!-- <el-table-column label="总金额" align="center" prop="totalPrice" v-hasRoles="['superadmin', 'gongying', 'gengdan']" />-->
|
||||||
|
|
||||||
<el-table-column label="发货方" align="center" prop="outSupplierName" />
|
<el-table-column label="发货方" align="center" prop="outSupplierName" />
|
||||||
<!-- <el-table-column label="发货供应商系统ID" align="center" prop="outSupplierId" />-->
|
<!-- <el-table-column label="发货供应商系统ID" align="center" prop="outSupplierId" />-->
|
||||||
@ -621,4 +623,7 @@ const handleExport = () => {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -80,6 +80,7 @@
|
|||||||
<el-table-column label="采购店铺名称" align="center" prop="storeName" />
|
<el-table-column label="采购店铺名称" align="center" prop="storeName" />
|
||||||
<el-table-column label="SKU" align="center" prop="sku" />
|
<el-table-column label="SKU" align="center" prop="sku" />
|
||||||
<el-table-column label="产品全称" align="center" prop="productName" />
|
<el-table-column label="产品全称" align="center" prop="productName" />
|
||||||
|
<el-table-column label="计划发货数量" align="center" prop="quantityPlan" />
|
||||||
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
||||||
<el-table-column label="发货箱数" align="center" prop="boxNum" />
|
<el-table-column label="发货箱数" align="center" prop="boxNum" />
|
||||||
|
|
||||||
@ -132,7 +133,7 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
<!-- 添加或修改货件转发对话框 -->
|
<!-- 添加或修改货件转发对话框 -->
|
||||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="800px" append-to-body>
|
<el-dialog :title="dialog.title" v-model="dialog.visible" width="800px" append-to-body>
|
||||||
<el-form ref="shipForwardFormRef" :model="form" :rules="rules" label-width="100px">
|
<el-form ref="shipForwardFormRef" :model="form" :rules="rules" label-width="120px">
|
||||||
<el-form-item label="采购单号" prop="orderSn">
|
<el-form-item label="采购单号" prop="orderSn">
|
||||||
<el-input v-model="form.orderSn" placeholder="请输入采购单号" disabled />
|
<el-input v-model="form.orderSn" placeholder="请输入采购单号" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -176,9 +177,14 @@
|
|||||||
<!-- <el-form-item label="跟单id" prop="trackerId">-->
|
<!-- <el-form-item label="跟单id" prop="trackerId">-->
|
||||||
<!-- <el-input v-model="form.trackerId" placeholder="请输入跟单id" />-->
|
<!-- <el-input v-model="form.trackerId" placeholder="请输入跟单id" />-->
|
||||||
<!-- </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="请输入发货数量" disabled />
|
<el-input v-model="form.quantityPlan" placeholder="请输入计划发货数量" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="发货数量" prop="quantitySend">
|
||||||
|
<!-- <el-input v-model="form.quantitySend" placeholder="请输入发货数量" />-->
|
||||||
|
<el-input-number v-model="form.quantitySend" :min="1" :max="form.quantityPlan" controls-position="right"></el-input-number>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
<!-- <el-form-item label="发货箱数" prop="quantitySend">-->
|
<!-- <el-form-item label="发货箱数" prop="quantitySend">-->
|
||||||
<!-- <el-input v-model="form.boxNum" placeholder="请输入发货箱数" disabled />-->
|
<!-- <el-input v-model="form.boxNum" placeholder="请输入发货箱数" disabled />-->
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
@ -591,7 +597,8 @@ const handleUpdate = async (row?: ShipForwardVO) => {
|
|||||||
const res = await getShipForward(_id);
|
const res = await getShipForward(_id);
|
||||||
Object.assign(form.value, res.data);
|
Object.assign(form.value, res.data);
|
||||||
form.value.sendTime = getDateToString(new Date());
|
form.value.sendTime = getDateToString(new Date());
|
||||||
|
console.log('res', res);
|
||||||
|
form.value.quantitySend = res.data.quantityPlan;
|
||||||
// form.value.shipmentStart = getDateToString(intervalDate.value[0]);
|
// form.value.shipmentStart = getDateToString(intervalDate.value[0]);
|
||||||
// form.value.shipmentEnd = getDateToString(intervalDate.value[1]);
|
// form.value.shipmentEnd = getDateToString(intervalDate.value[1]);
|
||||||
dialog.visible = true;
|
dialog.visible = true;
|
||||||
@ -656,4 +663,7 @@ const handleExport = () => {
|
|||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getList();
|
getList();
|
||||||
});
|
});
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -836,7 +836,10 @@ const snycTodayPlan = async () => {
|
|||||||
const res = await takeTodayAmzPlanData();
|
const res = await takeTodayAmzPlanData();
|
||||||
if (res.code == 200) {
|
if (res.code == 200) {
|
||||||
proxy?.$modal.msgSuccess('同步成功');
|
proxy?.$modal.msgSuccess('同步成功');
|
||||||
await getList();
|
|
||||||
|
setTimeout(() => {
|
||||||
|
await getList();
|
||||||
|
}, 2000);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -907,4 +910,9 @@ onMounted(() => {
|
|||||||
getList();
|
getList();
|
||||||
getAllChannelData();
|
getAllChannelData();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
getAllChannelData();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -321,7 +321,7 @@
|
|||||||
<el-input v-model="form.destination" placeholder="请输入物流中心编码" disabled />
|
<el-input v-model="form.destination" placeholder="请输入物流中心编码" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="是否报关" prop="destination">
|
<el-form-item label="是否报关" prop="destination">
|
||||||
<el-switch v-model="customsFlag" active-value="1" inactive-value="0" />
|
<el-switch v-model="customsFlag" active-value="Y" inactive-value="N" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="物流渠道" required="true">
|
<el-form-item label="物流渠道" required="true">
|
||||||
@ -336,14 +336,14 @@
|
|||||||
filterable
|
filterable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-space fill>
|
<!-- <el-space fill>-->
|
||||||
<el-tag>通用询价只根据渠道进行报价, 重量询价是包含重量信息</el-tag>
|
<!-- <el-tag>通用询价只根据渠道进行报价, 重量询价是包含重量信息</el-tag>-->
|
||||||
<el-form-item label="询价类型" prop="destination">
|
<!-- <el-form-item label="询价类型" prop="destination">-->
|
||||||
<el-select v-model="requestType" clearable placeholder="询价类型">
|
<!-- <el-select v-model="requestType" clearable placeholder="询价类型">-->
|
||||||
<el-option v-for="dict in request_type" :key="dict.value" :label="dict.label" :value="dict.value" />
|
<!-- <el-option v-for="dict in request_type" :key="dict.value" :label="dict.label" :value="dict.value" />-->
|
||||||
</el-select>
|
<!-- </el-select>-->
|
||||||
</el-form-item>
|
<!-- </el-form-item>-->
|
||||||
</el-space>
|
<!-- </el-space>-->
|
||||||
<!-- <el-form-item label="总箱子数量" prop="boxQuantity">-->
|
<!-- <el-form-item label="总箱子数量" prop="boxQuantity">-->
|
||||||
<!-- <el-input v-model="form.boxQuantity" placeholder="请输入总箱子数量" />-->
|
<!-- <el-input v-model="form.boxQuantity" placeholder="请输入总箱子数量" />-->
|
||||||
<!-- </el-form-item>-->
|
<!-- </el-form-item>-->
|
||||||
@ -929,7 +929,7 @@ const channelDialogVisibleAction = () => {
|
|||||||
ElMessage.error('请选择已关联采购单的数据');
|
ElMessage.error('请选择已关联采购单的数据');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
requestType.value = 'general';
|
requestType.value = 'weight';
|
||||||
channelDialogVisible.value = true;
|
channelDialogVisible.value = true;
|
||||||
console.log('channelDialogVisibleAction', selectionDatas.value.length);
|
console.log('channelDialogVisibleAction', selectionDatas.value.length);
|
||||||
selectionDatas.value.forEach((item) => {
|
selectionDatas.value.forEach((item) => {
|
||||||
@ -1084,7 +1084,7 @@ function transformChannels(channels) {
|
|||||||
|
|
||||||
const currentDes = ref<string | number>('');
|
const currentDes = ref<string | number>('');
|
||||||
const currentFBAData = ref<ShipmentPlanVO>();
|
const currentFBAData = ref<ShipmentPlanVO>();
|
||||||
const requestType = ref<string | number>('general');
|
const requestType = ref<string | number>('weight');
|
||||||
|
|
||||||
// 分组后的渠道数据
|
// 分组后的渠道数据
|
||||||
const groupedChannels = computed(() => {
|
const groupedChannels = computed(() => {
|
||||||
@ -1210,6 +1210,7 @@ const checkPrice = async () => {
|
|||||||
quoteDate: shipDate.value,
|
quoteDate: shipDate.value,
|
||||||
shipToAddress: currentFBAData.value.shipToAddress,
|
shipToAddress: currentFBAData.value.shipToAddress,
|
||||||
shipmentId: currentFBAData.value.shipmentId,
|
shipmentId: currentFBAData.value.shipmentId,
|
||||||
|
customsFlag: customsFlag,
|
||||||
type: requestType.value
|
type: requestType.value
|
||||||
};
|
};
|
||||||
inquiryRequestItemVOList.value.push(inquiryRequestItemVO);
|
inquiryRequestItemVOList.value.push(inquiryRequestItemVO);
|
||||||
@ -1301,7 +1302,7 @@ const handleUpdate = async (row?: ShipmentPlanVO) => {
|
|||||||
console.log(row);
|
console.log(row);
|
||||||
currentFBAData.value = row;
|
currentFBAData.value = row;
|
||||||
currentDes.value = row.destination;
|
currentDes.value = row.destination;
|
||||||
requestType.value = 'general';
|
requestType.value = 'weight';
|
||||||
};
|
};
|
||||||
|
|
||||||
const linkShipmentPlanVO = ref<ShipmentPlanVO>();
|
const linkShipmentPlanVO = ref<ShipmentPlanVO>();
|
||||||
@ -1529,6 +1530,11 @@ onMounted(() => {
|
|||||||
getList();
|
getList();
|
||||||
getAllChannelData();
|
getAllChannelData();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
onActivated(() => {
|
||||||
|
getList();
|
||||||
|
getAllChannelData();
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<!--<style scoped>-->
|
<!--<style scoped>-->
|
||||||
<!--/* 展开行容器 */-->
|
<!--/* 展开行容器 */-->
|
||||||
|
@ -168,6 +168,16 @@
|
|||||||
{{ scope.row.quantityShipped }}
|
{{ scope.row.quantityShipped }}
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column label="关联数量" property="quantityRelated" width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.row.quantityRelated }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="剩余数量" property="quantityRemain" width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.row.quantityRemain }}
|
||||||
|
</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>
|
||||||
@ -177,9 +187,21 @@
|
|||||||
<!-- <el-table-column label="总箱子数量" align="center" prop="boxQuantity" />-->
|
<!-- <el-table-column label="总箱子数量" align="center" prop="boxQuantity" />-->
|
||||||
<!-- <el-table-column label="套数" align="center" prop="setTotal" />-->
|
<!-- <el-table-column label="套数" align="center" prop="setTotal" />-->
|
||||||
<!-- <el-table-column label="箱子尺寸" align="center" prop="boxSize" />-->
|
<!-- <el-table-column label="箱子尺寸" align="center" prop="boxSize" />-->
|
||||||
<el-table-column label="供应商称重-总重量" align="center" prop="vendorWeight" />
|
<el-table-column label="供应商称重-总重量" align="center" prop="vendorWeight">
|
||||||
<el-table-column label="物流称重-总重量" align="center" prop="logisticsWeight" />
|
<template #default="scope">
|
||||||
<el-table-column label="称重差异" align="center" prop="weightDiff" />
|
{{ scope.row.vendorWeight + ' KG' }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="物流称重-总重量" align="center" prop="logisticWeight">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.row.logisticWeight + ' KG' }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="称重差异" align="center" prop="weightDiff">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.row.weightDiff + ' KG' }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<!-- <el-table-column label="渠道ID" align="center" prop="channelId" />-->
|
<!-- <el-table-column label="渠道ID" align="center" prop="channelId" />-->
|
||||||
<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 }">
|
||||||
@ -198,7 +220,7 @@
|
|||||||
<!-- { label: '运输时效', prop: 'leadTime' },-->
|
<!-- { label: '运输时效', prop: 'leadTime' },-->
|
||||||
<!-- { label: '总价', prop: 'totalPrice' }-->
|
<!-- { label: '总价', prop: 'totalPrice' }-->
|
||||||
<el-descriptions-item label="报价类型">
|
<el-descriptions-item label="报价类型">
|
||||||
<dict-tag :options="request_type" :value="row.quote.type" />
|
<dict-tag :options="biz_quote_type" :value="row.quote.type" />
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="物流商名称">
|
<el-descriptions-item label="物流商名称">
|
||||||
{{ row.quote.logisticsName }}
|
{{ row.quote.logisticsName }}
|
||||||
@ -209,20 +231,20 @@
|
|||||||
<el-descriptions-item label="渠道名称">
|
<el-descriptions-item label="渠道名称">
|
||||||
{{ row.quote.channelName }}
|
{{ row.quote.channelName }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="单价">
|
<el-descriptions-item label="报价">
|
||||||
{{ row.quote.price }}
|
{{ row.quote.price + row.quote.unit }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="附加费">
|
<el-descriptions-item label="附加费">
|
||||||
{{ row.quote.surcharge }}
|
{{ row.quote.surcharge + ' 元' }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="运输时效">
|
<el-descriptions-item label="运输时效">
|
||||||
{{ row.quote.leadTime }}
|
{{ row.quote.leadTime + ' 天' }}
|
||||||
</el-descriptions-item>
|
|
||||||
<el-descriptions-item label="总价">
|
|
||||||
{{ row.quote.totalPrice }}
|
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
<!-- <el-descriptions-item label="总价">-->
|
||||||
|
<!-- {{ row.quote.totalPrice }}-->
|
||||||
|
<!-- </el-descriptions-item>-->
|
||||||
<el-descriptions-item label="结算金额">
|
<el-descriptions-item label="结算金额">
|
||||||
{{ row.amountPrice }}
|
{{ row.amountPrice + ' 元' }}
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<!-- <el-descriptions-item v-for="item in realisticItems" :key="item.prop" :label="item.label">-->
|
<!-- <el-descriptions-item v-for="item in realisticItems" :key="item.prop" :label="item.label">-->
|
||||||
<!-- {{ row.quote[item.prop] || 'N/A' }}-->
|
<!-- {{ row.quote[item.prop] || 'N/A' }}-->
|
||||||
@ -534,6 +556,7 @@ const { biz_logistics_status } = toRefs<any>(proxy?.useDict('biz_logistics_statu
|
|||||||
const { request_type } = toRefs<any>(proxy?.useDict('request_type'));
|
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'));
|
||||||
|
const { biz_quote_type } = toRefs<any>(proxy?.useDict('biz_quote_type'));
|
||||||
|
|
||||||
const shipmentPlanList = ref<ShipmentPlanOrderVO[]>([]);
|
const shipmentPlanList = ref<ShipmentPlanOrderVO[]>([]);
|
||||||
const buttonLoading = ref(false);
|
const buttonLoading = ref(false);
|
||||||
@ -761,15 +784,15 @@ const shipDate = ref(getLocalDate());
|
|||||||
const getList = async () => {
|
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;
|
||||||
});
|
// });
|
||||||
shipmentPlanList.value = res.rows;
|
shipmentPlanList.value = res.rows;
|
||||||
total.value = res.total;
|
total.value = res.total;
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
@ -1068,6 +1091,11 @@ const handleCurrentChange = (val: ShipmentPlanVO | undefined) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
getList();
|
||||||
|
// getAllChannelData();
|
||||||
|
});
|
||||||
|
|
||||||
|
onActivated(() => {
|
||||||
getList();
|
getList();
|
||||||
getAllChannelData();
|
getAllChannelData();
|
||||||
});
|
});
|
||||||
|
@ -389,43 +389,54 @@
|
|||||||
<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="type">
|
<!-- <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="remark">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :options="request_type" :value="scope.row.type" />
|
<dict-tag :options="biz_quote_type" :value="scope.row.type" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="基础价格" align="center" prop="price">
|
<el-table-column label="基础价格" align="center" prop="price">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-tag type="warning" v-if="scope.row.type === 'weight'">重量询价参考总价</el-tag>
|
<!-- <el-tag type="warning" v-if="scope.row.type === 'weight'">重量询价参考总价</el-tag>-->
|
||||||
<span v-else>{{ scope.row.price }}</span>
|
<span>{{ scope.row.price + scope.row.unit }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="总价" align="center" prop="totalPrice">
|
<el-table-column label="体积比" align="center" prop="volumeRatio">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span v-if="scope.row.type === 'weight'">{{ scope.row.totalPrice }}</span>
|
<span>{{ scope.row.volumeRatio }}</span>
|
||||||
<el-tag type="warning" v-else>普通询价参考单价</el-tag>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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" />
|
||||||
|
<el-table-column label="报关费" align="center" prop="customsDeclarationFee" />
|
||||||
<el-table-column label="报价生效日期" align="center" prop="quoteDate" width="120">
|
<el-table-column label="报价生效日期" align="center" prop="quoteDate" width="120">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span>{{ parseTime(scope.row.quoteDate, '{y}-{m}-{d}') }}</span>
|
<span>{{ parseTime(scope.row.quoteDate, '{y}-{m}-{d}') }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="提交状态" align="center" prop="isSubmitted">
|
<!-- <el-table-column label="提交状态" align="center" prop="isSubmitted">-->
|
||||||
<template #default="scope">
|
<!-- <template #default="scope">-->
|
||||||
<dict-tag :options="sys_yes_no" :value="scope.row.isSubmitted" />
|
<!-- <dict-tag :options="sys_yes_no" :value="scope.row.isSubmitted" />-->
|
||||||
</template>
|
<!-- </template>-->
|
||||||
</el-table-column>
|
<!-- </el-table-column>-->
|
||||||
<!-- <el-table-column label="渠道类型" align="center" prop="channelType" />-->
|
<!-- <el-table-column label="渠道类型" align="center" prop="channelType" />-->
|
||||||
<el-table-column label="是否双清包税" align="center" prop="isDdp">
|
<el-table-column label="是否双清包税" align="center" prop="isDdp">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :options="sys_yes_no" :value="scope.row.isDdp" />
|
<dict-tag :options="sys_yes_no" :value="scope.row.isDdp" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="单位" align="center" prop="unit" />
|
<!-- <el-table-column label="单位" align="center" prop="unit" />-->
|
||||||
<el-table-column label="报价备注" align="center" prop="remark" />
|
<el-table-column label="报价备注" align="center" prop="remark" />
|
||||||
<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">
|
||||||
@ -439,11 +450,10 @@
|
|||||||
<template #footer>
|
<template #footer>
|
||||||
<div style="flex: auto">
|
<div style="flex: auto">
|
||||||
<el-button @click="cancelClick">取消</el-button>
|
<el-button @click="cancelClick">取消</el-button>
|
||||||
<el-button type="primary" @click="confirmClick">确认</el-button>
|
<!-- <el-button type="primary" @click="confirmClick">确认</el-button>-->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -471,6 +481,7 @@ import { createLogisticsOrder } from '@/api/amz/logisticsOrder';
|
|||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
const { biz_transport_channel } = toRefs<any>(proxy?.useDict('biz_transport_channel'));
|
const { biz_transport_channel } = toRefs<any>(proxy?.useDict('biz_transport_channel'));
|
||||||
const { sys_yes_no } = toRefs<any>(proxy?.useDict('sys_yes_no'));
|
const { sys_yes_no } = toRefs<any>(proxy?.useDict('sys_yes_no'));
|
||||||
|
const { biz_quote_type } = toRefs<any>(proxy?.useDict('biz_quote_type'));
|
||||||
|
|
||||||
const { sys_zero_one } = toRefs<any>(proxy?.useDict('sys_zero_one'));
|
const { sys_zero_one } = toRefs<any>(proxy?.useDict('sys_zero_one'));
|
||||||
|
|
||||||
@ -1015,6 +1026,11 @@ const handleCurrentChange = (val: ShipmentPlanVO | undefined) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
getList();
|
||||||
|
// getAllChannelData();
|
||||||
|
});
|
||||||
|
|
||||||
|
onActivated(() => {
|
||||||
getList();
|
getList();
|
||||||
getAllChannelData();
|
getAllChannelData();
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user