运营段修改
Some checks failed
自动部署测试 / build-and-deploy (push) Has been cancelled

This commit is contained in:
dev 2025-07-15 08:47:29 +08:00
parent 0dfc0caf6b
commit eed20a11b2
12 changed files with 292 additions and 115 deletions

View File

@ -62,6 +62,9 @@ export interface InquiryRequestVO {
*
*/
effectiveEndTime: string;
type: string;
shipmentId: string | number;
}
export interface InquiryRequestItemVO {

View File

@ -33,9 +33,9 @@ export const queryLogisticsQuote = (destination: string | number, channelId: str
});
};
export const queryLogisticsQuoteWithDes = (destination: string | number, date: string): AxiosPromise<LogisticsQuoteVO[]> => {
export const queryLogisticsQuoteWithDes = (destination: string | number, date: string,shipmentId: string | number): AxiosPromise<LogisticsQuoteVO[]> => {
return request({
url: '/amz/logisticsQuote/queryWithDes/' + destination + '/' + date,
url: '/amz/logisticsQuote/queryWithDes/' + destination + '/' + date + '/' + shipmentId,
method: 'get'
});
};

View File

@ -153,6 +153,11 @@ export interface LogisticsQuoteForm extends BaseEntity {
*
*/
unit?: string;
type: string;
shipmentId: string | number;
totalPrice: number;
}
export interface LogisticsMostQuoteForm extends BaseEntity {

View File

@ -1,3 +1,5 @@
import { ShipmentPlanVO } from '@/api/amz/shipmentPlan/types';
export interface SendOrderVO {
/**
* ID
@ -58,6 +60,12 @@ export interface SendOrderVO {
* pending=confirm=, processing=completed=
*/
sendStatus: string;
createTime: string;
sendName: string;
bizShipmentPlans: ShipmentPlanVO[];
}
export interface SendOrderForm extends BaseEntity {

View File

@ -495,7 +495,7 @@ export interface ShipmentPlanQuery extends PageQuery {
/**
*
*/
shipmentId?: string | number;
shipmentId?: string;
/**
*

View File

@ -112,8 +112,74 @@
</template>
<el-table v-loading="loading" :data="inquiryRequestList" @selection-change="handleSelectionChange">
<el-table-column type="expand">
<template #default="props">
<el-card shadow="never">
<el-table :data="props.row.sendOrders">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<!-- <el-table-column label="采购单号" align="center" prop="orderSn" />-->
<!-- <el-table-column label="发货单号" align="center" prop="id" />-->
<!-- <el-table-column label="创建日期" align="center" prop="createTime" width="180">-->
<!-- <template #default="scope">-->
<!-- <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="发货日期" align="center" prop="sendDate" width="180">-->
<!-- <template #default="scope">-->
<!-- <span>{{ parseTime(scope.row.sendDate, '{y}-{m}-{d}') }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="采购店铺" align="center" prop="storeName" />-->
<!-- <el-table-column label="供应商名称" align="center" prop="sendName" />-->
<!-- <el-table-column label="物流商名称" align="center" prop="logisticsProviderName">-->
<!-- <template #default="{ row }">-->
<!-- <el-popover placement="top" title="物流商地址" :width="200" trigger="click">-->
<!-- <template #reference>-->
<!-- <el-button v-if="row.logisticsProviderName !== null" text size="small" type="primary">-->
<!-- {{ row.logisticsProviderName }}-->
<!-- </el-button>-->
<!-- </template>-->
<!-- <div>{{ row.address || '暂无地址' }}</div>-->
<!-- </el-popover>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="产品名称" align="center" prop="productName" />
<el-table-column label="发货数量" align="center" prop="quantitySend" />
<!-- <el-table-column label="单箱产品数量" align="center" prop="quantityPerBox" />-->
<el-table-column label="箱数" align="center" prop="boxCount">
<template #default="{ row }">
<el-popover placement="top" title="装箱明细" :width="500" trigger="click">
<template #reference>
<el-button text size="small" type="primary"> {{ row.boxCount }}</el-button>
</template>
<div v-if="row.sendDetail !== null" v-html="formatText(row.sendDetail)"></div>
<div v-else>暂无数据</div>
</el-popover>
</template>
</el-table-column>
<!-- <el-table-column label="箱子尺寸" align="center" prop="boxDimensions" />-->
<el-table-column label="总重量" align="center" prop="weightPerBox">
<template #default="scope">
<span>{{ scope.row.weightPerBox }}kg</span>
</template>
</el-table-column>
<!-- <el-table-column label="实际发货店铺" align="center" prop="realStoreName" />-->
<!-- <el-table-column label="发货状态" align="center" prop="sendStatus">-->
<!-- <template #default="scope">-->
<!-- <dict-tag :options="send_status" :value="scope.row.sendStatus" />-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
</el-card>
</template>
</el-table-column>
<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">
<template #default="scope">
<dict-tag :options="request_type" :value="scope.row.type" />
</template>
</el-table-column>
<!-- <el-table-column label="发起人" align="center" prop="requesterName" />-->
<!-- <el-table-column label="目标物流商ID列表" align="center" prop="targetProviders" />-->
<el-table-column label="目的地" align="center" prop="destination" />
@ -239,15 +305,24 @@
<el-form-item label="是否需要报关" prop="channelName">
<el-input v-model="quoteForm.customsFlag" placeholder="请输入是否需要报关" disabled />
</el-form-item>
<el-form-item label="基础价格" prop="price">
<el-form-item v-if="quoteForm.type === 'general'" label="基础价格" prop="price" required>
<div class="kgprice">
<el-input-number v-model="quoteForm.price" :precision="2" :step="0.1" :min="1" :max="100">
<el-input-number v-model="quoteForm.price" :precision="2" :step="0.1" :min="0" :max="100">
<template #suffix>
<span>/kg</span>
</template>
</el-input-number>
</div>
</el-form-item>
<el-form-item v-else label="货件总价" prop="totalPrice" required>
<div class="kgprice">
<el-input-number v-model="quoteForm.totalPrice" :precision="2" :step="0.1" :min="0" :max="100">
<template #suffix>
<span></span>
</template>
</el-input-number>
</div>
</el-form-item>
<el-row>
<el-col :span="6"></el-col>
<el-col :span="12">
@ -305,7 +380,7 @@
<div class="dialog-footer">
<el-button :loading="buttonLoading" type="primary" @click="submitQuoteForm"> </el-button>
<el-button :loading="buttonLoading" type="primary" @click="saveQuoteForm"> </el-button>
<el-button @click="cancel"> </el-button>
<el-button @click="quoteDialog.visible = false"> </el-button>
</div>
</template>
</el-dialog>
@ -325,11 +400,15 @@ import { InquiryRequestVO, InquiryRequestQuery, InquiryRequestForm } from '@/api
import { LogisticsMostQuoteForm, LogisticsQuoteForm } from '@/api/amz/logisticsQuote/types';
import { addMostLogisticsQuote, checkPriceQuoteByBo, getTodayQuoteStatus } from '@/api/amz/logisticsQuote';
import { ShipmentPlanVO } from '@/api/amz/shipmentPlan/types';
import { formatText } from '@/utils/asinkj';
import { ElTable } from 'element-plus';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { biz_shipping_method } = toRefs<any>(proxy?.useDict('biz_shipping_method'));
const { request_type } = toRefs<any>(proxy?.useDict('request_type'));
const { back_logistics_type } = toRefs<any>(proxy?.useDict('back_logistics_type'));
const { sys_yes_no } = toRefs<any>(proxy?.useDict('sys_yes_no'));
@ -347,6 +426,7 @@ const minDay = ref(0);
const queryFormRef = ref<ElFormInstance>();
const inquiryRequestFormRef = ref<ElFormInstance>();
const logisticsQuoteFormRef = ref<ElFormInstance>({});
const dialog = reactive<DialogOption>({
visible: false,
@ -358,6 +438,14 @@ const quoteDialog = reactive<DialogOption>({
title: ''
});
const validatePrice = (rule, value, callback) => {
if (quoteForm.value.price > 0 || quoteForm.value.totalPrice > 0) {
callback();
} else {
callback(new Error('请填写价格'));
}
};
const initFormData: InquiryRequestForm = {
id: undefined,
inquiryNo: undefined,
@ -402,7 +490,8 @@ const data = reactive<PageData<InquiryRequestForm, InquiryRequestQuery>>({
channelName: [{ required: true, message: '渠道名称不能为空', trigger: 'blur' }],
effectiveStartTime: [{ required: true, message: '报价有效的开始日期不能为空', trigger: 'blur' }],
effectiveEndTime: [{ required: true, message: '报价有效的结束日期不能为空', trigger: 'blur' }],
price: [{ required: true, message: '基础价格不能为空', trigger: 'blur' }],
price: [{ validator: validatePrice, trigger: 'blur' }],
totalPrice: [{ validator: validatePrice, trigger: 'blur' }],
leadTime: [{ required: true, message: '时效不能为空', trigger: 'blur' }],
surcharge: [{ required: true, message: '附加费不能为空', trigger: 'blur' }],
quoteDate: [{ required: true, message: '报价生效日期不能为空', trigger: 'blur' }],
@ -432,7 +521,7 @@ const quoteForm = ref<LogisticsQuoteForm>({
userId: undefined,
destination: undefined,
transportChannel: undefined,
price: 10,
price: 0,
minLeadTime: 10,
leadTime: 10,
surcharge: 0,
@ -446,7 +535,10 @@ const quoteForm = ref<LogisticsQuoteForm>({
channelId: undefined,
isDdp: 'Y',
unit: 'kg',
backLogisticsType: '快递'
backLogisticsType: '快递',
type: 'general',
shipmentId: undefined,
totalPrice: 0
});
const handleChannelChange = ({ value, node }) => {
@ -557,34 +649,40 @@ const submitQuoteForm = async () => {
quoteForm.value.quoteEndDate = quoteForm.value.quoteDate[1];
quoteForm.value.isSubmitted = 'Y';
console.log('submitQuoteForm', quoteForm.value);
const res = await checkPriceQuoteByBo(quoteForm.value);
console.log('submitQuoteForm', res);
if (res.code === 200) {
// ElMessage.success('');
// quoteDialog.visible = false;
if (res.data === true) {
const res = await addMostLogisticsQuote(quoteForm.value);
logisticsQuoteFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
console.log('quoteForm', quoteForm.value);
return;
const res = await checkPriceQuoteByBo(quoteForm.value);
console.log('submitQuoteForm', res);
if (res.code === 200) {
ElMessage.success('提交成功');
quoteDialog.visible = false;
}
} else {
ElMessageBox.confirm('价格没有竞争力,是否需要修改价格?', '提示', {
confirmButtonText: '确认提交',
cancelButtonText: '修改价格',
type: 'warning'
})
.then(async () => {
// ElMessage.success('');
// quoteDialog.visible = false;
if (res.data === true) {
const res = await addMostLogisticsQuote(quoteForm.value);
if (res.code === 200) {
ElMessage.success('提交成功');
quoteDialog.visible = false;
}
})
.catch(() => {});
} else {
ElMessageBox.confirm('价格没有竞争力,是否需要修改价格?', '提示', {
confirmButtonText: '确认提交',
cancelButtonText: '修改价格',
type: 'warning'
})
.then(async () => {
const res = await addMostLogisticsQuote(quoteForm.value);
if (res.code === 200) {
ElMessage.success('提交成功');
quoteDialog.visible = false;
}
})
.catch(() => {});
}
}
}
}
});
};
const saveQuoteForm = () => {
@ -616,7 +714,7 @@ const handleSubmit = async (row?: InquiryRequestVO) => {
userId: undefined,
destination: undefined,
transportChannel: undefined,
price: 10,
price: 0,
minLeadTime: 10,
leadTime: 10,
surcharge: 0,
@ -630,7 +728,10 @@ const handleSubmit = async (row?: InquiryRequestVO) => {
channelId: undefined,
isDdp: 'Y',
unit: 'kg',
backLogisticsType: '快递'
backLogisticsType: '快递',
type: 'general',
shipmentId: undefined,
totalPrice: 0
};
quoteForm.value.id = row.id;
quoteForm.value.destination = row.destination;
@ -638,6 +739,8 @@ const handleSubmit = async (row?: InquiryRequestVO) => {
quoteForm.value.channelId = row.channelId;
quoteForm.value.channelName = row.channelName;
quoteForm.value.customsFlag = row.customsFlag;
quoteForm.value.type = row.type;
quoteForm.value.shipmentId = row.shipmentId;
quoteDialog.visible = true;
console.log(row.effectiveStartTime);

View File

@ -257,9 +257,7 @@
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-hasRoles="['superadmin', 'gengdan', 'gongying']">
<template #default="scope">
<el-button link type="primary" size=" small" @click="handleUpdate(scope.row)" v-hasPermi="['amz:purchaseOrder:edit']"
>设置延期
</el-button>
<el-button link type="primary" size="small" @click="handleUpdate(scope.row)" v-hasPermi="['amz:purchaseOrder:edit']">设置延期 </el-button>
<!-- <el-button size="small" link type="primary" @click="handleConfirm(scope.row)" v-hasPermi="['amz:purchaseOrder:remove']"> 确认 </el-button>-->
</template>

View File

@ -231,6 +231,7 @@ import { listSendOrder, getSendOrder, delSendOrder, addSendOrder, updateSendOrde
import { SendOrderVO, SendOrderQuery, SendOrderForm } from '@/api/amz/sendOrder/types';
import { getPurchaseOrder } from '@/api/amz/purchaseOrder';
import { Close, Plus } from '@element-plus/icons-vue';
import { formatText } from '@/utils/asinkj';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { send_status } = toRefs<any>(proxy?.useDict('send_status'));

View File

@ -59,6 +59,79 @@
<el-table v-loading="loading" :data="sendOrderList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<!-- <el-table-column label="主键ID" align="center" prop="id" />-->
<el-table-column type="expand">
<template #default="props">
<el-card shadow="never">
<el-table :data="props.row.bizShipmentPlans">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<!-- <el-table-column label="创建日期" align="center" prop="gmtCreate" width="180">-->
<!-- <template #default="scope">-->
<!-- <span>{{ parseTime(scope.row.gmtCreate, '{y}-{m}-{d}') }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="店铺名称" align="center" prop="sellerName" />-->
<el-table-column label="货件编号" align="center" prop="shipmentId" />
<!-- <el-table-column label="商品详情" align="center">-->
<!-- <template #default="scope">-->
<!-- <el-popover placement="top" :width="750" trigger="hover">-->
<!-- <template #reference>-->
<!-- <el-button size="small" plain style="margin-right: 16px">查看</el-button>-->
<!-- </template>-->
<!-- <el-table :data="scope.row.itemVoList">-->
<!-- <el-table-column width="200" property="productName" label="品名" />-->
<!-- <el-table-column width="150" property="asin" label="asin" />-->
<!-- <el-table-column width="150" property="fnsku" label="fnsku" />-->
<!-- <el-table-column width="200" property="msku" label="msku" />-->
<!-- </el-table>-->
<!-- </el-popover>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="国家" align="center" prop="shipToAddress.countryCode" />
<el-table-column label="物流中心编码" align="center" prop="destination" />
<el-table-column label="物流商地址" align="center" prop="address" />
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName" />
<!-- <el-table-column label="关联的采购单" align="center">-->
<!-- <template #default="scope">-->
<!-- <el-tag v-if="scope.row.sendOrders != null" type="success">已关联</el-tag>-->
<!-- <el-tag v-else type="info">未关联</el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column width="150" label="仓库配送地址" align="center" prop="shipToAddress">-->
<!-- <template #default="{ row }">-->
<!-- &lt;!&ndash; <el-button @click="openAddressDialog(row.shipToAddress)"> 查看详情</el-button>&ndash;&gt;-->
<!-- <el-popover placement="left" :width="800" trigger="click">-->
<!-- <template #reference>-->
<!-- &lt;!&ndash; <el-button style="margin-right: 16px">Click to activate</el-button>&ndash;&gt;-->
<!-- <el-button plain size="small" type="success"> 点击查看详情</el-button>-->
<!-- </template>-->
<!-- <el-descriptions title="收货地址信息" :column="3" border>-->
<!-- <el-descriptions-item v-for="item in descriptItems" :key="item.prop" :label="item.label">-->
<!-- {{ row.shipToAddress[item.prop] || 'N/A' }}-->
<!-- </el-descriptions-item>-->
<!-- </el-descriptions>-->
<!-- </el-popover>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="亚马逊货件状态" align="center" width="180">
<template #default="scope">
<el-tag>{{ scope.row.shipmentStatus }}</el-tag>
</template>
</el-table-column>
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template #default="scope">-->
<!-- &lt;!&ndash; <el-tooltip content="修改" placement="top" v-if="scope.row.sendStatus === 'pending'">&ndash;&gt;-->
<!-- &lt;!&ndash; <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['amz:sendOrder:edit']"></el-button>&ndash;&gt;-->
<!-- &lt;!&ndash; </el-tooltip>&ndash;&gt;-->
<!-- <el-tooltip content="删除" placement="top">-->
<!-- <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['amz:sendOrder:remove']"></el-button>-->
<!-- </el-tooltip>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
</el-card>
</template>
</el-table-column>
<el-table-column label="采购单号" align="center" prop="orderSn" />
<el-table-column label="发货单号" align="center" prop="id" />
@ -74,18 +147,18 @@
</el-table-column>
<el-table-column label="采购店铺" align="center" prop="storeName" />
<el-table-column label="供应商名称" align="center" prop="sendName" />
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName">
<template #default="{ row }">
<el-popover placement="top" title="物流商地址" :width="200" trigger="click">
<template #reference>
<el-button v-if="row.logisticsProviderName" text size="small" type="primary">
{{ row.logisticsProviderName }}
</el-button>
</template>
<div>{{ row.address || '暂无地址' }}</div>
</el-popover>
</template>
</el-table-column>
<!-- <el-table-column label="物流商名称" align="center" prop="logisticsProviderName">-->
<!-- <template #default="{ row }">-->
<!-- <el-popover placement="top" title="物流商地址" :width="200" trigger="click">-->
<!-- <template #reference>-->
<!-- <el-button v-if="row.logisticsProviderName" text size="small" type="primary">-->
<!-- {{ row.logisticsProviderName }}-->
<!-- </el-button>-->
<!-- </template>-->
<!-- <div>{{ row.address || '暂无地址' }}</div>-->
<!-- </el-popover>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="产品名称" align="center" prop="productName" />
<el-table-column label="发货数量" align="center" prop="quantitySend" />
<el-table-column label="箱数" align="center" prop="boxCount">
@ -180,7 +253,8 @@
<script setup name="SendOrder" lang="ts">
import { listSendOrder, getSendOrder, delSendOrder, addSendOrder, updateSendOrder } from '@/api/amz/sendOrder';
import { SendOrderVO, SendOrderQuery, SendOrderForm } from '@/api/amz/sendOrder/types';
import { formatText } from '@/utils/asinkj';
import { formatText, parseTime } from '@/utils/asinkj';
import { ElTable } from 'element-plus';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { send_status } = toRefs<any>(proxy?.useDict('send_status'));

View File

@ -57,8 +57,6 @@
</template>
<el-table v-loading="loading" :data="sendOrderList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<!-- <el-table-column label="主键ID" align="center" prop="id" />-->
<el-table-column type="expand">
<template #default="props">
<el-card shadow="never">
@ -89,6 +87,8 @@
<!-- </el-table-column>-->
<el-table-column label="国家" align="center" prop="shipToAddress.countryCode" />
<el-table-column label="物流中心编码" align="center" prop="destination" />
<el-table-column label="物流商地址" align="center" prop="address" />
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName" />
<!-- <el-table-column label="关联的采购单" align="center">-->
<!-- <template #default="scope">-->
<!-- <el-tag v-if="scope.row.sendOrders != null" type="success">已关联</el-tag>-->
@ -111,11 +111,11 @@
<!-- </el-popover>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="亚马逊货件状态" align="center" width="180">
<template #default="scope">
<el-tag>{{ scope.row.shipmentStatus }}</el-tag>
</template>
</el-table-column>
<!-- <el-table-column label="亚马逊货件状态" align="center" width="180">-->
<!-- <template #default="scope">-->
<!-- <el-tag>{{ scope.row.shipmentStatus }}</el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template #default="scope">-->
<!-- &lt;!&ndash; <el-tooltip content="修改" placement="top" v-if="scope.row.sendStatus === 'pending'">&ndash;&gt;-->
@ -130,7 +130,6 @@
</el-card>
</template>
</el-table-column>
<el-table-column label="采购单号" align="center" prop="orderSn" />
<el-table-column label="发货单号" align="center" prop="id" />
<el-table-column label="创建日期" align="center" prop="createTime" width="180">
@ -145,18 +144,18 @@
</el-table-column>
<el-table-column label="采购店铺" align="center" prop="storeName" />
<el-table-column label="供应商名称" align="center" prop="sendName" />
<el-table-column label="物流商名称" align="center" prop="logisticsProviderName">
<template #default="{ row }">
<el-popover placement="top" title="物流商地址" :width="200" trigger="click">
<template #reference>
<el-button v-if="row.logisticsProviderName !== null" text size="small" type="primary">
{{ row.logisticsProviderName }}
</el-button>
</template>
<div>{{ row.address || '暂无地址' }}</div>
</el-popover>
</template>
</el-table-column>
<!-- <el-table-column label="物流商名称" align="center" prop="logisticsProviderName">-->
<!-- <template #default="{ row }">-->
<!-- <el-popover placement="top" title="物流商地址" :width="200" trigger="click">-->
<!-- <template #reference>-->
<!-- <el-button v-if="row.logisticsProviderName !== null" text size="small" type="primary">-->
<!-- {{ row.logisticsProviderName }}-->
<!-- </el-button>-->
<!-- </template>-->
<!-- <div>{{ row.address || '暂无地址' }}</div>-->
<!-- </el-popover>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="产品名称" align="center" prop="productName" />
<el-table-column label="发货数量" align="center" prop="quantitySend" />
<el-table-column label="箱数" align="center" prop="boxCount">
@ -262,7 +261,7 @@
<script setup name="SendOrder" lang="ts">
import { listSendOrder, getSendOrder, delSendOrder, addSendOrder, updateSendOrder } from '@/api/amz/sendOrder';
import { SendOrderVO, SendOrderQuery, SendOrderForm } from '@/api/amz/sendOrder/types';
import { formatText } from '@/utils/asinkj';
import { formatText, parseTime } from '@/utils/asinkj';
import { ElTable } from 'element-plus';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;

View File

@ -271,8 +271,11 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="向物流商询价" placement="top">
<el-button link type="primary" size="small" @click="handleUpdate(scope.row)" v-hasPermi="['amz:shipmentPlan:edit']"> </el-button>
<el-button link type="primary" size="small" @click="handleUpdate(scope.row)" v-hasPermi="['amz:shipmentPlan:edit']"></el-button>
</el-tooltip>
<!-- <el-tooltip content="向物流商询价" placement="top">-->
<!-- <el-button link type="primary" size="small" @click="handleAskWeight(scope.row)" v-hasPermi="['amz:shipmentPlan:edit']">重量询价</el-button>-->
<!-- </el-tooltip>-->
<!-- <el-tooltip content="关联采购单" placement="top">-->
<!-- <el-button-->
<!-- link-->
@ -325,6 +328,14 @@
filterable
/>
</el-form-item>
<el-space fill>
<el-tag>通用询价只根据渠道进行报价 重量询价是包含重量信息</el-tag>
<el-form-item label="询价类型" prop="destination">
<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-select>
</el-form-item>
</el-space>
<!-- <el-form-item label="总箱子数量" prop="boxQuantity">-->
<!-- <el-input v-model="form.boxQuantity" placeholder="请输入总箱子数量" />-->
<!-- </el-form-item>-->
@ -380,7 +391,13 @@
/>
</el-form-item>
<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 label="询价类型" prop="destination">
<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-select>
</el-form-item>
<el-button :loading="buttonLoading" type="primary" @click="batchSendRest()">批量提交询价</el-button>
@ -551,6 +568,7 @@ import { formatText } from '@/utils/asinkj';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { biz_transport_channel } = toRefs<any>(proxy?.useDict('biz_transport_channel'));
const { request_type } = toRefs<any>(proxy?.useDict('request_type'));
const { send_status } = toRefs<any>(proxy?.useDict('send_status'));
@ -768,7 +786,7 @@ const pwidth = ref<string | number>();
const logisticsQuoteList = ref<LogisticsQuoteVO[]>([]);
const inquiryRequestItemVOList = ref<InquiryRequestItemVO[]>([]);
const inquiryRequestItemVOList = ref<any[]>([]);
const tableData = ref([
{
@ -801,9 +819,10 @@ const batchSendRest = async () => {
quoteDate: shipDate.value,
shipToAddress: item.shipToAddress,
shipmentId: item.shipmentId,
customsFlag: customsFlag.value
customsFlag: customsFlag.value,
type: requestType.value
};
if (item.sendOrderId) {
if (item.sendOrders.length > 0) {
inquiryRequestItemVOList.value.push(inquiryRequestItemVO);
}
});
@ -901,7 +920,7 @@ const channelDialogVisibleAction = () => {
ElMessage.error('请选择已关联采购单的数据');
return;
}
requestType.value = 'general';
channelDialogVisible.value = true;
console.log('channelDialogVisibleAction', selectionDatas.value.length);
selectionDatas.value.forEach((item) => {
@ -1049,6 +1068,7 @@ function transformChannels(channels) {
const currentDes = ref<string | number>('');
const currentFBAData = ref<ShipmentPlanVO>();
const requestType = ref<string | number>('general');
//
const groupedChannels = computed(() => {
@ -1105,7 +1125,7 @@ const reset = () => {
/** 搜索按钮操作 */
const handleQuery = () => {
console.log('queryParams.value.gmtCreate', queryParams.value.gmtCreate);
queryParams.value.shipmentId = queryParams.value.shipmentId.trim();
queryParams.value.shipmentId = queryParams.value.shipmentId?.trim();
queryParams.value.pageNum = 1;
getList();
};
@ -1173,7 +1193,8 @@ const checkPrice = async () => {
channelId: channel,
quoteDate: shipDate.value,
shipToAddress: currentFBAData.value.shipToAddress,
shipmentId: currentFBAData.value.shipmentId
shipmentId: currentFBAData.value.shipmentId,
type: requestType.value
};
inquiryRequestItemVOList.value.push(inquiryRequestItemVO);
});
@ -1260,10 +1281,11 @@ const handleUpdate = async (row?: ShipmentPlanVO) => {
selectedChannel.value = res.data.channelId;
console.log('selectedChannel', selectedChannel);
dialog.visible = true;
dialog.title = '编辑货件计划开始询价';
dialog.title = '询价';
console.log(row);
currentFBAData.value = row;
currentDes.value = row.destination;
requestType.value = 'general';
};
const linkShipmentPlanVO = ref<ShipmentPlanVO>();

View File

@ -806,46 +806,10 @@ const checkPrice = async () => {
// return;
// }
const res = await queryLogisticsQuoteWithDes(currentDes.value, shipDate.value);
const res = await queryLogisticsQuoteWithDes(currentDes.value, shipDate.value,currentFBAData.value.shipmentId);
console.log('查询报价单', res);
if (res.total == 0) {
// //
// const requestQuote = await queryWithDesAndChannel(currentDes.value, currentFBAData.value.channelId, shipDate.value);
// console.log('', requestQuote);
// if (requestQuote.total == 0) {
// console.log('');
// channelDialogVisible.value = false;
// ElMessageBox.confirm(',', '', {
// confirmButtonText: '',
// cancelButtonText: '',
// type: 'warning'
// type: 'success',
// message: ''
// });
// }
// })
// .catch(() => {
// // ElMessage({
// // type: 'info',
// // message: 'Delete canceled'
// // });
// });
// } else {
// //
// // channelDialogVisible.value = false;
// // dialogTableVisible.value = true;
// // tableData.value = requestQuote.rows;
// // console.log('requestQuote.rows', requestQuote.rows);
// // console.log('tableData', tableData.value);
// ElMessage.success('');
// } // })
// .then(async () => {
// const res2 = await createWithDesAndChannel(currentDes.value, currentFBAData.value.channelId, shipDate.value);
// console.log('checkPriceEnd2', res2);
// if (res2.code == 200) {
// ElMessage({
// ElMessage.warning('');
ElNotification({
title: '警告',
message: '暂时没有物流商报价',