This commit is contained in:
parent
d57670c7d2
commit
9a33b4c5fc
@ -142,6 +142,8 @@ export interface InquiryRequestForm extends BaseEntity {
|
||||
* 报价有效的结束日期
|
||||
*/
|
||||
effectiveEndTime?: string;
|
||||
|
||||
type?: string;
|
||||
}
|
||||
|
||||
export interface InquiryRequestQuery extends PageQuery {
|
||||
@ -204,4 +206,6 @@ export interface InquiryRequestQuery extends PageQuery {
|
||||
* 日期范围参数
|
||||
*/
|
||||
params?: any;
|
||||
|
||||
type?: any;
|
||||
}
|
||||
|
@ -62,7 +62,14 @@ export interface LogisticsOrderDetailVO {
|
||||
/**
|
||||
* 物流商计重(单位: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;
|
||||
|
||||
customsDeclarationFee?: number;
|
||||
backLogisticsType?: string;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
unit?: string;
|
||||
|
||||
type: string;
|
||||
|
||||
volumeRatio?: string;
|
||||
shipmentId: string | number;
|
||||
|
||||
totalPrice: number;
|
||||
|
@ -521,6 +521,8 @@ export interface PurchaseOrderForm extends BaseEntity {
|
||||
*/
|
||||
divTime?: string;
|
||||
|
||||
type?: string;
|
||||
|
||||
/**
|
||||
* 订单交付变动天数
|
||||
*/
|
||||
|
@ -64,6 +64,10 @@ export interface OrderOutItemVO {
|
||||
ratio?: number;
|
||||
|
||||
order?: PurchaseOrderVO;
|
||||
|
||||
forwardType?: string;
|
||||
|
||||
quantityForward?: number;
|
||||
}
|
||||
|
||||
export interface OrderOutItemForm extends BaseEntity {
|
||||
|
@ -117,6 +117,11 @@ export interface ShipForwardForm extends BaseEntity {
|
||||
*/
|
||||
quantitySend?: number;
|
||||
|
||||
/**
|
||||
* 预计发货数量
|
||||
*/
|
||||
quantityPlan?: number;
|
||||
|
||||
/**
|
||||
* 发货供应商名称
|
||||
*/
|
||||
|
@ -488,6 +488,8 @@ export interface ShipmentPlanForm extends BaseEntity {
|
||||
channelName?: string;
|
||||
|
||||
linkType?: string;
|
||||
|
||||
customsFlag?: string;
|
||||
}
|
||||
|
||||
export interface ShipmentPlanQuery extends PageQuery {
|
||||
|
@ -77,15 +77,15 @@ export const usePermissionStore = defineStore('permission', () => {
|
||||
if (type && route.children) {
|
||||
route.children = filterChildren(route.children, undefined);
|
||||
}
|
||||
if (route.path === '/demand') {
|
||||
route.children.forEach((child) => {
|
||||
if (child.path === 'purchaseOrderConfirm') {
|
||||
if (useUserStore().roles.includes('gengdan')) {
|
||||
child.meta.title = '创建发货';
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
// if (route.path === '/demand') {
|
||||
// route.children.forEach((child) => {
|
||||
// if (child.path === 'purchaseOrderConfirm') {
|
||||
// if (useUserStore().roles.includes('gengdan')) {
|
||||
// child.meta.title = '创建发货';
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// Layout ParentView 组件特殊处理
|
||||
if (route.component?.toString() === 'Layout') {
|
||||
route.component = Layout;
|
||||
|
@ -74,10 +74,12 @@
|
||||
|
||||
<el-table v-loading="loading" :data="amazonStoreList" @selection-change="handleSelectionChange">
|
||||
<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="所属用户ID" align="center" prop="userId" />
|
||||
<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="店铺账户名称" align="center" prop="accountName" />
|
||||
<el-table-column label="店铺账号ID" align="center" prop="sellerAccountId" />
|
||||
|
@ -175,11 +175,11 @@
|
||||
</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="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" />
|
||||
@ -305,24 +305,34 @@
|
||||
<el-form-item label="是否需要报关" prop="channelName">
|
||||
<el-input v-model="quoteForm.customsFlag" placeholder="请输入是否需要报关" disabled />
|
||||
</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">
|
||||
<el-input-number controls-position="right" v-model="quoteForm.price" :precision="2" :step="0.1" :min="0" :max="10000">
|
||||
<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 controls-position="right" v-model="quoteForm.totalPrice" :precision="2" :step="0.1" :min="0" :max="10000000">
|
||||
<template #suffix>
|
||||
<span>元</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>-->
|
||||
<!-- </el-input-number>-->
|
||||
<!-- </div>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-row>
|
||||
<el-col :span="6"></el-col>
|
||||
<el-col :span="12">
|
||||
@ -351,6 +361,14 @@
|
||||
</template>
|
||||
</el-input-number>
|
||||
</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-date-picker
|
||||
v-model="quoteForm.quoteDate"
|
||||
@ -379,7 +397,7 @@
|
||||
<template #footer>
|
||||
<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 :loading="buttonLoading" type="primary" @click="saveQuoteForm">暂 存</el-button>-->
|
||||
<el-button @click="quoteDialog.visible = false">取 消</el-button>
|
||||
</div>
|
||||
</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 { 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 buttonLoading = ref(false);
|
||||
const loading = ref(true);
|
||||
@ -424,6 +445,8 @@ const total = ref(0);
|
||||
|
||||
const minDay = ref(0);
|
||||
|
||||
const typeUnit = ref('元/KG');
|
||||
|
||||
const queryFormRef = ref<ElFormInstance>();
|
||||
const inquiryRequestFormRef = ref<ElFormInstance>();
|
||||
const logisticsQuoteFormRef = ref<ElFormInstance>({});
|
||||
@ -435,7 +458,7 @@ const dialog = reactive<DialogOption>({
|
||||
|
||||
const quoteDialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
title: '提交报价'
|
||||
});
|
||||
|
||||
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 = {
|
||||
id: undefined,
|
||||
inquiryNo: undefined,
|
||||
@ -458,7 +495,8 @@ const initFormData: InquiryRequestForm = {
|
||||
channelId: undefined,
|
||||
channelName: undefined,
|
||||
effectiveStartTime: undefined,
|
||||
effectiveEndTime: undefined
|
||||
effectiveEndTime: undefined,
|
||||
type: undefined
|
||||
};
|
||||
|
||||
const data = reactive<PageData<InquiryRequestForm, InquiryRequestQuery>>({
|
||||
@ -477,6 +515,7 @@ const data = reactive<PageData<InquiryRequestForm, InquiryRequestQuery>>({
|
||||
channelName: undefined,
|
||||
effectiveStartTime: undefined,
|
||||
effectiveEndTime: undefined,
|
||||
type: undefined,
|
||||
params: {}
|
||||
},
|
||||
rules: {
|
||||
@ -492,7 +531,9 @@ const data = reactive<PageData<InquiryRequestForm, InquiryRequestQuery>>({
|
||||
effectiveEndTime: [{ required: true, message: '报价有效的结束日期不能为空', trigger: 'blur' }],
|
||||
price: [{ validator: validatePrice, trigger: 'blur' }],
|
||||
totalPrice: [{ validator: validatePrice, trigger: 'blur' }],
|
||||
customsDeclarationFee: [{ validator: validatePrice, trigger: 'blur' }],
|
||||
leadTime: [{ required: true, message: '时效不能为空', trigger: 'blur' }],
|
||||
type: [{ required: true, message: '报价类型不能为空', trigger: 'blur' }],
|
||||
surcharge: [{ required: true, message: '附加费不能为空', trigger: 'blur' }],
|
||||
quoteDate: [{ required: true, message: '报价生效日期不能为空', trigger: 'blur' }],
|
||||
isSubmitted: [{ required: true, message: '提交状态不能为空', trigger: 'blur' }],
|
||||
@ -536,8 +577,10 @@ const quoteForm = ref<LogisticsQuoteForm>({
|
||||
isDdp: 'Y',
|
||||
unit: 'kg',
|
||||
backLogisticsType: '快递',
|
||||
type: 'general',
|
||||
type: 'weight',
|
||||
shipmentId: undefined,
|
||||
volumeRatio: '6000',
|
||||
customsDeclarationFee: 0,
|
||||
totalPrice: 0
|
||||
});
|
||||
|
||||
@ -662,6 +705,7 @@ const submitQuoteForm = async () => {
|
||||
if (res.code === 200) {
|
||||
ElMessage.success('提交成功');
|
||||
quoteDialog.visible = false;
|
||||
getList();
|
||||
}
|
||||
} else {
|
||||
ElMessageBox.confirm('价格没有竞争力,是否需要修改价格?', '提示', {
|
||||
@ -727,8 +771,10 @@ const handleSubmit = async (row?: InquiryRequestVO) => {
|
||||
isDdp: 'Y',
|
||||
unit: 'kg',
|
||||
backLogisticsType: '快递',
|
||||
type: 'general',
|
||||
type: 'weight',
|
||||
shipmentId: undefined,
|
||||
volumeRatio: '6000',
|
||||
customsDeclarationFee: 0,
|
||||
totalPrice: 0
|
||||
};
|
||||
quoteForm.value.id = row.id;
|
||||
@ -740,6 +786,8 @@ const handleSubmit = async (row?: InquiryRequestVO) => {
|
||||
quoteForm.value.type = row.type;
|
||||
quoteForm.value.shipmentId = row.shipmentId;
|
||||
|
||||
typeUnit.value = '元/KG';
|
||||
|
||||
quoteDialog.visible = true;
|
||||
console.log(row.effectiveStartTime);
|
||||
// quoteForm.quoteDate[0] = row.effectiveStartTime;
|
||||
@ -767,6 +815,10 @@ onMounted(() => {
|
||||
getList();
|
||||
queryTodayQuoteStatus();
|
||||
});
|
||||
onActivated(() => {
|
||||
getList();
|
||||
// queryTodayQuoteStatus();
|
||||
});
|
||||
</script>
|
||||
<style scoped>
|
||||
.kgprice .el-input-number {
|
||||
|
@ -56,11 +56,83 @@
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="FBA货件编号" align="center" prop="fbaShipmentId" />
|
||||
<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="logisticsProviderName" />
|
||||
<el-table-column label="物流渠道" align="center" prop="channelName" />
|
||||
<el-table-column label="目的地仓库名称或编码" align="center" prop="destination" />
|
||||
<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="status">
|
||||
<template #default="scope">
|
||||
@ -175,7 +247,7 @@
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<file-custom-upload
|
||||
:title-name="'上传POD单号'"
|
||||
:title-name="'上传IEN文件'"
|
||||
v-model="fileList"
|
||||
:limit="1"
|
||||
:file-size="1"
|
||||
@ -215,12 +287,14 @@ import { LogisticsOrderDetailVO } from '@/api/amz/logisticsOrderDetail/types';
|
||||
import { listLogisticsOrderDetail, updateList } from '@/api/amz/logisticsOrderDetail';
|
||||
import 'handsontable/dist/handsontable.full.min.css';
|
||||
import { InfoFilled } from '@element-plus/icons-vue';
|
||||
import { ElTable } from 'element-plus';
|
||||
// import 'handsontable/styles/ht-theme-horizon.css';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
const { biz_logistics_status } = toRefs<any>(proxy?.useDict('biz_logistics_status'));
|
||||
const { logic_order_status } = toRefs<any>(proxy?.useDict('logic_order_status'));
|
||||
const { biz_quote_type } = toRefs<any>(proxy?.useDict('biz_quote_type'));
|
||||
|
||||
// 初始化注册所有模块
|
||||
registerAllModules();
|
||||
@ -330,11 +404,19 @@ const hotSettings = ref({
|
||||
logisticsOrderDetailList.value[row].logisticsStatus = labelTovalueMap.value[newVal];
|
||||
}
|
||||
|
||||
if (prop === 'logisticsWeight' || prop === 'pricePerKg' || prop === 'otherFee') {
|
||||
console.log('计算总价');
|
||||
logisticsOrderDetailList.value[row].totalFee =
|
||||
(logisticsOrderDetailList.value[row].logisticsWeight ?? 0) * (logisticsOrderDetailList.value[row].pricePerKg ?? 0) +
|
||||
(logisticsOrderDetailList.value[row].otherFee ?? 0);
|
||||
// if (prop === 'logisticsWeight' || prop === 'pricePerKg' || prop === 'otherFee') {
|
||||
// console.log('计算总价');
|
||||
// logisticsOrderDetailList.value[row].totalFee =
|
||||
// (parseFloat(logisticsOrderDetailList.value[row].logisticsWeight) ?? 0) * (parseFloat(logisticsOrderDetailList.value[row].pricePerKg) ?? 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);
|
||||
@ -350,12 +432,17 @@ const hotSettings = ref({
|
||||
'数量',
|
||||
// '实际数量',
|
||||
'物流追踪号',
|
||||
'物流商计重',
|
||||
'物流商计重(KG)',
|
||||
'长(CM)',
|
||||
'宽(CM)',
|
||||
'高(CM)',
|
||||
'体积',
|
||||
// '称重差异',
|
||||
'物流单价',
|
||||
// '物流单价报价',
|
||||
// '物流总价报价',
|
||||
// '物流计价重量',
|
||||
'其他物流费用',
|
||||
'费用合计',
|
||||
// '其他物流费用',
|
||||
// '费用合计',
|
||||
'物流状态',
|
||||
'预计签收日期',
|
||||
'实际签收日期',
|
||||
@ -389,12 +476,86 @@ const hotSettings = ref({
|
||||
// 处理单位显示
|
||||
if (typeof value === 'number' && !isNaN(value)) {
|
||||
td.textContent = value.toLocaleString() + ' kg'; // 添加单位
|
||||
} else if (typeof value === 'string') {
|
||||
td.textContent = value + ' kg';
|
||||
}
|
||||
|
||||
// 确保居中对齐(可选,若 className 已生效可省略)
|
||||
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', // 称重差异
|
||||
// className: 'htCenter',
|
||||
@ -408,40 +569,56 @@ const hotSettings = ref({
|
||||
// return td;
|
||||
// }
|
||||
// },
|
||||
{
|
||||
data: 'pricePerKg',
|
||||
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() + ' 元/kg'; // 添加单位
|
||||
}
|
||||
|
||||
// 确保居中对齐(可选,若 className 已生效可省略)
|
||||
return td;
|
||||
}
|
||||
}, // 物流单价
|
||||
// {
|
||||
// data: 'pricePerKg',
|
||||
// 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() + ' 元/kg'; // 添加单位
|
||||
// }
|
||||
//
|
||||
// // 确保居中对齐(可选,若 className 已生效可省略)
|
||||
// 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: 'otherFee',
|
||||
className: 'htCenter',
|
||||
type: 'numeric',
|
||||
readOnly: false,
|
||||
renderer: function (instance, td, row, col, prop, value, cellProperties) {
|
||||
// 调用默认的数字渲染器以保持格式(如千分位)
|
||||
// 处理单位显示
|
||||
if (typeof value === 'number' && !isNaN(value)) {
|
||||
td.textContent = value.toLocaleString() + ' 元'; // 添加单位
|
||||
}
|
||||
|
||||
// 确保居中对齐(可选,若 className 已生效可省略)
|
||||
return td;
|
||||
}
|
||||
}, // 其他物流费用
|
||||
{ data: 'totalFee', className: 'htCenter', readOnly: true }, // 费用合计
|
||||
// {
|
||||
// data: 'otherFee',
|
||||
// className: 'htCenter',
|
||||
// type: 'numeric',
|
||||
// readOnly: false,
|
||||
// renderer: function (instance, td, row, col, prop, value, cellProperties) {
|
||||
// // 调用默认的数字渲染器以保持格式(如千分位)
|
||||
// // 处理单位显示
|
||||
// if (typeof value === 'number' && !isNaN(value)) {
|
||||
// td.textContent = value.toLocaleString() + ' 元'; // 添加单位
|
||||
// }
|
||||
//
|
||||
// // 确保居中对齐(可选,若 className 已生效可省略)
|
||||
// return td;
|
||||
// }
|
||||
// }, // 其他物流费用
|
||||
// { data: 'totalFee', className: 'htCenter', readOnly: true }, // 费用合计
|
||||
{
|
||||
data: 'logisticsStatus',
|
||||
className: 'htCenter',
|
||||
@ -671,6 +848,8 @@ const updateCheckDatas = async () => {
|
||||
} else {
|
||||
ElMessage.error('更新失败');
|
||||
}
|
||||
hotTableDrawer.value = false;
|
||||
getList();
|
||||
};
|
||||
|
||||
/** 取消按钮 */
|
||||
@ -801,4 +980,12 @@ const handleExportDetail = () => {
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
<style scoped>
|
||||
:deep(.my-total) {
|
||||
background: var(--el-color-success-light-9) !important;
|
||||
}
|
||||
</style>
|
||||
|
@ -705,9 +705,13 @@ const handleExport = () => {
|
||||
);
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
console.log('组件已挂载,hotInstance:', hotTable.value?.hotInstance);
|
||||
// onMounted(() => {
|
||||
// console.log('组件已挂载,hotInstance:', hotTable.value?.hotInstance);
|
||||
//
|
||||
// getList();
|
||||
// });
|
||||
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
|
@ -75,13 +75,68 @@
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="FBA货件编号" align="center" prop="fbaShipmentId" />
|
||||
<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="物流商名称" align="center" prop="logisticsProviderName" />-->
|
||||
<el-table-column label="物流渠道" align="center" prop="channelName" />
|
||||
<el-table-column label="目的地仓库名称或编码" align="center" prop="destination" />
|
||||
<el-table-column label="总箱子数量" align="center" prop="boxQuantity" />
|
||||
<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">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="sys_zero_one" :value="scope.row.confirm" />
|
||||
@ -172,6 +227,7 @@ import {
|
||||
createLogisticsOrderQuotation
|
||||
} from '@/api/amz/logisticsOrderQuotation';
|
||||
import { LogisticsOrderQuotationVO, LogisticsOrderQuotationQuery, LogisticsOrderQuotationForm } from '@/api/amz/logisticsOrderQuotation/types';
|
||||
import { ElTable } from 'element-plus';
|
||||
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
|
||||
@ -344,7 +400,9 @@ const handleExport = () => {
|
||||
`logisticsOrderQuotation_${new Date().getTime()}.xlsx`
|
||||
);
|
||||
};
|
||||
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
|
@ -86,9 +86,14 @@
|
||||
<el-table-column label="物流商" align="center" prop="logisticsName" />
|
||||
<el-table-column label="目的地" align="center" prop="destination" />
|
||||
<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">
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.price + '元/kg' }}</span>
|
||||
<span>{{ scope.row.price + scope.row.unit }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="时效" align="center" sortable prop="leadTime">
|
||||
@ -101,16 +106,26 @@
|
||||
<span>{{ scope.row.surcharge + '元' }}</span>
|
||||
</template>
|
||||
</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">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.quoteDate, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="提交状态" align="center" prop="isSubmitted">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="sys_yes_no" :value="scope.row.isSubmitted" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="提交状态" align="center" prop="isSubmitted">-->
|
||||
<!-- <template #default="scope">-->
|
||||
<!-- <dict-tag :options="sys_yes_no" :value="scope.row.isSubmitted" />-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column label="报价备注" align="center" prop="remark" />
|
||||
<el-table-column label="渠道类型" align="center" prop="channelType">
|
||||
<template #default="scope">
|
||||
@ -122,7 +137,7 @@
|
||||
<dict-tag :options="sys_yes_no" :value="scope.row.isDdp" />
|
||||
</template>
|
||||
</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">
|
||||
<template #default="scope">
|
||||
<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_quote_type } = toRefs<any>(proxy?.useDict('biz_quote_type'));
|
||||
|
||||
const { sys_yes_no } = toRefs<any>(proxy?.useDict('sys_yes_no'));
|
||||
|
||||
const logisticsQuoteList = ref<LogisticsQuoteVO[]>([]);
|
||||
@ -384,7 +401,11 @@ const handleExport = () => {
|
||||
);
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
// onMounted(() => {
|
||||
// getList();
|
||||
// });
|
||||
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
|
@ -67,7 +67,7 @@
|
||||
<!-- <el-table-column label="采购计划号" align="center" prop="planSn" />-->
|
||||
<!-- <el-table-column label="本地产品ID" align="center" prop="productId" />-->
|
||||
<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="店铺ID" align="center" prop="sid" width="70px" />-->
|
||||
<!-- <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="订单类型" align="center" prop="sendStatus">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="send_order_type" :value="scope.row.type" />
|
||||
<dict-tag :options="pur_order_type" :value="scope.row.type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<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 { 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 buttonLoading = ref(false);
|
||||
@ -763,7 +763,10 @@ watch(
|
||||
{ immediate: true } // 立即执行一次
|
||||
);
|
||||
|
||||
onMounted(() => {
|
||||
// onMounted(() => {
|
||||
// getList();
|
||||
// });
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
|
@ -10,10 +10,13 @@
|
||||
<el-form-item label="店铺名称" prop="customOrderSn">
|
||||
<el-input v-model="queryParams.storeName" placeholder="请输入店铺名称" clearable @keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="订单状态" prop="orderStatus">
|
||||
<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-select>
|
||||
<!-- <el-form-item label="订单状态" prop="orderStatus">-->
|
||||
<!-- <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-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 label="SKU" prop="customOrderSn">
|
||||
<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="quantityPlan" />-->
|
||||
|
||||
<el-table-column label="实际采购量" align="center" prop="quantityReal" width="90px" />
|
||||
<el-table-column label="已下单数量" align="center" prop="quantityShipped" />
|
||||
<el-table-column label="剩余数量" align="center" prop="quantityLeft" />
|
||||
<el-table-column label="半成品可发货数量" align="center" prop="sfgAvlQty" width="100px" />
|
||||
<!-- <el-table-column label="实际采购量" align="center" prop="quantityReal" width="90px" />-->
|
||||
<!-- <el-table-column label="已下单数量" align="center" prop="quantityShipped" />-->
|
||||
<!-- <el-table-column label="剩余数量" align="center" prop="quantityLeft" />-->
|
||||
<el-table-column label="转发数量" align="center" prop="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="quantityReceive" />-->
|
||||
@ -114,16 +118,16 @@
|
||||
</el-timeline>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否有半成品转发" align="center" prop="hasForward">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="sys_yes_no" :value="scope.row.hasForward" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="是否有成品发货" align="center" prop="hasSendOrder">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="sys_yes_no" :value="scope.row.hasSendOrder" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="是否有半成品转发" align="center" prop="hasForward">-->
|
||||
<!-- <template #default="scope">-->
|
||||
<!-- <dict-tag :options="sys_yes_no" :value="scope.row.hasForward" />-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column label="是否有成品发货" align="center" prop="hasSendOrder">-->
|
||||
<!-- <template #default="scope">-->
|
||||
<!-- <dict-tag :options="sys_yes_no" :value="scope.row.hasSendOrder" />-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column label="单箱数量" align="center" prop="quantityPerCase" />-->
|
||||
<!-- <el-table-column label="是否删除:0 否,1 是" align="center" prop="isDelete" />-->
|
||||
<!-- <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" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
size="small"
|
||||
link
|
||||
type="primary"
|
||||
@click="handleForward(scope.row, props.row)"
|
||||
v-hasRoles="['superadmin', 'gengdan']"
|
||||
v-hasPermi="['amz:purchaseOrder:remove']"
|
||||
v-if="props.row.type == 'com'"
|
||||
>
|
||||
半成品转发
|
||||
</el-button>
|
||||
<!-- <el-button-->
|
||||
<!-- size="small"-->
|
||||
<!-- link-->
|
||||
<!-- type="primary"-->
|
||||
<!-- @click="handleForward(scope.row, props.row)"-->
|
||||
<!-- v-hasRoles="['superadmin', 'gengdan']"-->
|
||||
<!-- v-hasPermi="['amz:purchaseOrder:remove']"-->
|
||||
<!-- v-if="props.row.type == 'com'"-->
|
||||
<!-- >-->
|
||||
<!-- 半成品转发-->
|
||||
<!-- </el-button>-->
|
||||
<el-button
|
||||
size="small"
|
||||
link
|
||||
@ -152,17 +156,17 @@
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
size="small"
|
||||
link
|
||||
type="primary"
|
||||
@click="handleShip(scope.row, props.row)"
|
||||
v-hasRoles="['superadmin', 'gengdan']"
|
||||
v-hasPermi="['amz:purchaseOrder:remove']"
|
||||
v-if="props.row.type == 'ord'"
|
||||
>
|
||||
成品发货
|
||||
</el-button>
|
||||
<!-- <el-button-->
|
||||
<!-- size="small"-->
|
||||
<!-- link-->
|
||||
<!-- type="primary"-->
|
||||
<!-- @click="handleShip(scope.row, props.row)"-->
|
||||
<!-- v-hasRoles="['superadmin', 'gengdan']"-->
|
||||
<!-- v-hasPermi="['amz:purchaseOrder:remove']"-->
|
||||
<!-- v-if="props.row.type == 'ord'"-->
|
||||
<!-- >-->
|
||||
<!-- 成品发货-->
|
||||
<!-- </el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -172,9 +176,9 @@
|
||||
<!-- <el-table-column type="selection" width="55" align="center" />-->
|
||||
<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">
|
||||
<dict-tag :options="send_order_type" :value="scope.row.type" />
|
||||
<dict-tag :options="pur_order_type" :value="scope.row.type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="自定义单号" align="center" prop="customOrderSn" />-->
|
||||
@ -342,14 +346,14 @@
|
||||
<el-form-item label="实际采购量" prop="quantityReal">
|
||||
<el-input v-model="detailForm.quantityReal" placeholder="实际采购量" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="半成品可发货数量" prop="sfgAvlQty">
|
||||
<!-- <el-input v-model="detailForm.sfgAvlQty" placeholder="请输入半成品可发货数量" />-->
|
||||
<el-input-number v-model="detailForm.sfgAvlQty" :min="0" :max="detailForm.quantityReal">
|
||||
<template #suffix>
|
||||
<span>件</span>
|
||||
</template>
|
||||
</el-input-number>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="半成品可发货数量" prop="sfgAvlQty">-->
|
||||
<!-- <!– <el-input v-model="detailForm.sfgAvlQty" placeholder="请输入半成品可发货数量" />–>-->
|
||||
<!-- <el-input-number v-model="detailForm.sfgAvlQty" :min="0" :max="detailForm.quantityReal">-->
|
||||
<!-- <template #suffix>-->
|
||||
<!-- <span>件</span>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-input-number>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<!-- <el-form-item label="交货天数" prop="estDlvDays">-->
|
||||
<!-- <!– <el-input v-model="form.estDlvDays" placeholder="请输入交货天数" />–>-->
|
||||
@ -413,9 +417,9 @@
|
||||
<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="sfgAvlQty">-->
|
||||
<!-- <el-input v-model="forwardForm.sfgAvlQty" placeholder="请输入半成品可发货数量" disabled />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="发货数量" prop="quantitySend">
|
||||
<el-input-number v-model="forwardForm.quantitySend" :min="1" :max="maxQuality">
|
||||
<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 { 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();
|
||||
|
||||
@ -1473,5 +1477,8 @@ watch(
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
<style scoped></style>
|
||||
|
@ -19,7 +19,7 @@
|
||||
<el-date-picker clearable v-model="queryParams.deliveryTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择交货时间" />
|
||||
</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-form-item>
|
||||
<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="sendStatus">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="send_order_type" :value="scope.row.type" />
|
||||
<dict-tag :options="pur_order_type" :value="scope.row.type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="自定义单号" align="center" prop="customOrderSn" />-->
|
||||
@ -379,7 +379,7 @@ import { roleSelectPost } from '@/api/system/user';
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { vendor_order_status } = toRefs<any>(proxy?.useDict('vendor_order_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 shipForwardList = ref<ShipForwardVO[]>([]);
|
||||
@ -890,5 +890,8 @@ const handleExport = () => {
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
<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" />
|
||||
</template>
|
||||
</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="quantityShipped" />
|
||||
<el-table-column label="剩余数量" align="center" prop="quantityLeft" />
|
||||
<!-- <el-table-column label="已出货数量(最终仓库出货)" align="center" prop="quantityShipped" />-->
|
||||
<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">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="vendor_order_status" :value="scope.row.item?.orderStatus" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="order.remark" />
|
||||
<el-table-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-card>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="组合订单号" align="center" prop="orderSn" />
|
||||
<el-table-column label="订单状态" align="center" prop="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="outsourceWarehouseName" />-->
|
||||
<el-table-column label="供应商名称" align="center" prop="supplierName" />
|
||||
@ -310,6 +370,7 @@
|
||||
<el-table-column label="采购店铺名称" align="center" prop="storeName" />
|
||||
<el-table-column label="SKU" align="center" prop="sku" />
|
||||
<el-table-column label="产品全称" align="center" prop="productName" />
|
||||
<el-table-column label="计划发货数量" align="center" prop="quantityPlan" />
|
||||
<el-table-column label="实际发货数量" align="center" prop="quantitySend" />
|
||||
<el-table-column label="发货方" align="center" prop="outSupplierName" />
|
||||
<!-- <el-table-column label="发货供应商系统ID" align="center" prop="outSupplierId" />-->
|
||||
@ -356,6 +417,64 @@
|
||||
<!-- </div>-->
|
||||
<!-- </template>-->
|
||||
</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>
|
||||
</template>
|
||||
|
||||
@ -373,7 +492,10 @@ import { VxeTable, VxeColumn } from 'vxe-table';
|
||||
import type { VxeTablePropTypes } from 'vxe-table';
|
||||
|
||||
import 'vxe-table/lib/style.css';
|
||||
import { ShipForwardVO } from '@/api/amz/shipForward/types';
|
||||
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;
|
||||
|
||||
@ -406,11 +528,49 @@ const dialog = reactive<DialogOption>({
|
||||
title: ''
|
||||
});
|
||||
|
||||
const forwardDialog = reactive<DialogOption>({
|
||||
visible: false,
|
||||
title: ''
|
||||
});
|
||||
|
||||
const editConfig: VxeTablePropTypes.EditConfig = {
|
||||
trigger: 'dblclick',
|
||||
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 = {
|
||||
orderSn: undefined,
|
||||
warehouseName: undefined,
|
||||
@ -478,12 +638,100 @@ const data = reactive<PageData<PurchaseOutOrderForm, PurchaseOutOrderQuery>>({
|
||||
// msku: [{ required: true, message: 'MSKU编码列表 (数组存储)不能为空', trigger: 'blur' }],
|
||||
// planSn: [{ 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 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 () => {
|
||||
loading.value = true;
|
||||
@ -555,11 +803,14 @@ const goToOrderDetail = async (orderStatus?: string, orderSn?: string) => {
|
||||
}
|
||||
};
|
||||
|
||||
const qualityMin = ref(0);
|
||||
|
||||
/** 修改按钮操作 */
|
||||
const handleUpdate = async (row?: PurchaseOutOrderVO) => {
|
||||
reset();
|
||||
// const orderSn = row?.orderSn || ids.value[0];
|
||||
// const res = await getPurchaseOutOrder(orderSn);
|
||||
|
||||
if (row.quantityLeft <= 0) {
|
||||
proxy?.$modal.msgError('该订单已全部发货');
|
||||
return;
|
||||
@ -568,15 +819,40 @@ const handleUpdate = async (row?: PurchaseOutOrderVO) => {
|
||||
proxy?.$modal.msgError('有采购订单没有确认');
|
||||
return;
|
||||
}
|
||||
|
||||
if (row.items.every((item) => item.fowardType === 'self' && item.quantityForward <= 0)) {
|
||||
proxy?.$modal.msgError('没有转发完成');
|
||||
return;
|
||||
}
|
||||
|
||||
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;
|
||||
quality.value = form.value.quantityLeft;
|
||||
console.log('quantity', quality.value);
|
||||
console.log('form.value.outsourceQuantity', form.value.outsourceQuantity);
|
||||
|
||||
form.value.items.forEach((item) => {
|
||||
// item.order.quantityReal = item.quantityLeft;
|
||||
|
||||
item.order.quantityReal = form.value.quantityLeft * item.ratio;
|
||||
});
|
||||
dialog.visible = true;
|
||||
@ -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 = () => {
|
||||
purchaseOutOrderFormRef.value?.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
@ -646,4 +942,25 @@ const handleExport = () => {
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</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(() => {
|
||||
getList();
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
|
@ -274,7 +274,7 @@
|
||||
<el-input v-model="transferForm.productName" placeholder="请输入产品名称" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="店铺名称" prop="productName">
|
||||
<el-input v-model="transferForm.storeName" placeholder="请输入产品名称" disabled />
|
||||
<el-input v-model="transferForm.storeName" placeholder="请输入产品名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="发货总数" prop="quantitySend">
|
||||
<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) => {
|
||||
//调拨
|
||||
quantity.value = row?.quantitySend;
|
||||
console.log('row', row);
|
||||
transferForm.value = deepClone(row);
|
||||
transferDialog.visible = true;
|
||||
@ -514,4 +515,8 @@ const handleExport = () => {
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
|
@ -88,9 +88,9 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="采购店铺" align="center" prop="storeName" />
|
||||
<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">
|
||||
<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>
|
||||
</el-table-column>
|
||||
|
||||
@ -479,6 +479,10 @@ const handleExport = () => {
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
<!--<style scoped>-->
|
||||
<!--/* 展开行容器 */-->
|
||||
|
@ -79,9 +79,12 @@
|
||||
<el-table-column label="采购店铺名称" align="center" prop="storeName" />
|
||||
<el-table-column label="SKU" align="center" prop="sku" />
|
||||
<el-table-column label="产品全称" align="center" prop="productName" />
|
||||
<el-table-column label="计划发货数量" align="center" prop="quantityPlan" />
|
||||
|
||||
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
||||
<el-table-column label="发货箱数" align="center" prop="boxNum" />
|
||||
<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="收货方" align="center" prop="inSupplierName" />
|
||||
<!-- <el-table-column label="收货供应商系统ID" align="center" prop="inSupplierId" />-->
|
||||
@ -597,4 +600,7 @@ const handleExport = () => {
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
|
@ -81,9 +81,11 @@
|
||||
<el-table-column label="采购店铺名称" align="center" prop="storeName" />
|
||||
<el-table-column label="SKU" align="center" prop="sku" />
|
||||
<el-table-column label="产品全称" align="center" prop="productName" />
|
||||
<el-table-column label="计划发货数量" align="center" prop="quantityPlan" />
|
||||
|
||||
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
||||
<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="发货供应商系统ID" align="center" prop="outSupplierId" />-->
|
||||
@ -621,4 +623,7 @@ const handleExport = () => {
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
|
@ -80,6 +80,7 @@
|
||||
<el-table-column label="采购店铺名称" align="center" prop="storeName" />
|
||||
<el-table-column label="SKU" align="center" prop="sku" />
|
||||
<el-table-column label="产品全称" align="center" prop="productName" />
|
||||
<el-table-column label="计划发货数量" align="center" prop="quantityPlan" />
|
||||
<el-table-column label="发货数量" align="center" prop="quantitySend" />
|
||||
<el-table-column label="发货箱数" align="center" prop="boxNum" />
|
||||
|
||||
@ -132,7 +133,7 @@
|
||||
</el-card>
|
||||
<!-- 添加或修改货件转发对话框 -->
|
||||
<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-input v-model="form.orderSn" placeholder="请输入采购单号" disabled />
|
||||
</el-form-item>
|
||||
@ -176,9 +177,14 @@
|
||||
<!-- <el-form-item label="跟单id" prop="trackerId">-->
|
||||
<!-- <el-input v-model="form.trackerId" placeholder="请输入跟单id" />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-form-item label="发货数量" prop="quantitySend">
|
||||
<el-input v-model="form.quantitySend" placeholder="请输入发货数量" disabled />
|
||||
<el-form-item label="计划发货数量" prop="quantitySend">
|
||||
<el-input v-model="form.quantityPlan" placeholder="请输入计划发货数量" disabled />
|
||||
</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-input v-model="form.boxNum" placeholder="请输入发货箱数" disabled />-->
|
||||
<!-- </el-form-item>-->
|
||||
@ -591,7 +597,8 @@ const handleUpdate = async (row?: ShipForwardVO) => {
|
||||
const res = await getShipForward(_id);
|
||||
Object.assign(form.value, res.data);
|
||||
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.shipmentEnd = getDateToString(intervalDate.value[1]);
|
||||
dialog.visible = true;
|
||||
@ -656,4 +663,7 @@ const handleExport = () => {
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
|
@ -836,7 +836,10 @@ const snycTodayPlan = async () => {
|
||||
const res = await takeTodayAmzPlanData();
|
||||
if (res.code == 200) {
|
||||
proxy?.$modal.msgSuccess('同步成功');
|
||||
|
||||
setTimeout(() => {
|
||||
await getList();
|
||||
}, 2000);
|
||||
}
|
||||
};
|
||||
|
||||
@ -907,4 +910,9 @@ onMounted(() => {
|
||||
getList();
|
||||
getAllChannelData();
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
getList();
|
||||
getAllChannelData();
|
||||
});
|
||||
</script>
|
||||
|
@ -321,7 +321,7 @@
|
||||
<el-input v-model="form.destination" placeholder="请输入物流中心编码" disabled />
|
||||
</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="物流渠道" required="true">
|
||||
@ -336,14 +336,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-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>-->
|
||||
@ -929,7 +929,7 @@ const channelDialogVisibleAction = () => {
|
||||
ElMessage.error('请选择已关联采购单的数据');
|
||||
return;
|
||||
}
|
||||
requestType.value = 'general';
|
||||
requestType.value = 'weight';
|
||||
channelDialogVisible.value = true;
|
||||
console.log('channelDialogVisibleAction', selectionDatas.value.length);
|
||||
selectionDatas.value.forEach((item) => {
|
||||
@ -1084,7 +1084,7 @@ function transformChannels(channels) {
|
||||
|
||||
const currentDes = ref<string | number>('');
|
||||
const currentFBAData = ref<ShipmentPlanVO>();
|
||||
const requestType = ref<string | number>('general');
|
||||
const requestType = ref<string | number>('weight');
|
||||
|
||||
// 分组后的渠道数据
|
||||
const groupedChannels = computed(() => {
|
||||
@ -1210,6 +1210,7 @@ const checkPrice = async () => {
|
||||
quoteDate: shipDate.value,
|
||||
shipToAddress: currentFBAData.value.shipToAddress,
|
||||
shipmentId: currentFBAData.value.shipmentId,
|
||||
customsFlag: customsFlag,
|
||||
type: requestType.value
|
||||
};
|
||||
inquiryRequestItemVOList.value.push(inquiryRequestItemVO);
|
||||
@ -1301,7 +1302,7 @@ const handleUpdate = async (row?: ShipmentPlanVO) => {
|
||||
console.log(row);
|
||||
currentFBAData.value = row;
|
||||
currentDes.value = row.destination;
|
||||
requestType.value = 'general';
|
||||
requestType.value = 'weight';
|
||||
};
|
||||
|
||||
const linkShipmentPlanVO = ref<ShipmentPlanVO>();
|
||||
@ -1529,6 +1530,11 @@ onMounted(() => {
|
||||
getList();
|
||||
getAllChannelData();
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
getList();
|
||||
getAllChannelData();
|
||||
});
|
||||
</script>
|
||||
<!--<style scoped>-->
|
||||
<!--/* 展开行容器 */-->
|
||||
|
@ -168,6 +168,16 @@
|
||||
{{ scope.row.quantityShipped }}
|
||||
</template>
|
||||
</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">
|
||||
<template #default="{ row }">
|
||||
<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="setTotal" />-->
|
||||
<!-- <el-table-column label="箱子尺寸" align="center" prop="boxSize" />-->
|
||||
<el-table-column label="供应商称重-总重量" align="center" prop="vendorWeight" />
|
||||
<el-table-column label="物流称重-总重量" align="center" prop="logisticsWeight" />
|
||||
<el-table-column label="称重差异" align="center" prop="weightDiff" />
|
||||
<el-table-column label="供应商称重-总重量" align="center" prop="vendorWeight">
|
||||
<template #default="scope">
|
||||
{{ 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 width="150" label="物流信息" align="center" prop="shipToAddress">
|
||||
<template #default="{ row }">
|
||||
@ -198,7 +220,7 @@
|
||||
<!-- { label: '运输时效', prop: 'leadTime' },-->
|
||||
<!-- { label: '总价', prop: 'totalPrice' }-->
|
||||
<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 label="物流商名称">
|
||||
{{ row.quote.logisticsName }}
|
||||
@ -209,20 +231,20 @@
|
||||
<el-descriptions-item label="渠道名称">
|
||||
{{ row.quote.channelName }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="单价">
|
||||
{{ row.quote.price }}
|
||||
<el-descriptions-item label="报价">
|
||||
{{ row.quote.price + row.quote.unit }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="附加费">
|
||||
{{ row.quote.surcharge }}
|
||||
{{ row.quote.surcharge + ' 元' }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="运输时效">
|
||||
{{ row.quote.leadTime }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="总价">
|
||||
{{ row.quote.totalPrice }}
|
||||
{{ row.quote.leadTime + ' 天' }}
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item label="总价">-->
|
||||
<!-- {{ row.quote.totalPrice }}-->
|
||||
<!-- </el-descriptions-item>-->
|
||||
<el-descriptions-item label="结算金额">
|
||||
{{ row.amountPrice }}
|
||||
{{ row.amountPrice + ' 元' }}
|
||||
</el-descriptions-item>
|
||||
<!-- <el-descriptions-item v-for="item in realisticItems" :key="item.prop" :label="item.label">-->
|
||||
<!-- {{ row.quote[item.prop] || 'N/A' }}-->
|
||||
@ -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 { 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 buttonLoading = ref(false);
|
||||
@ -761,15 +784,15 @@ const shipDate = ref(getLocalDate());
|
||||
const getList = async () => {
|
||||
loading.value = true;
|
||||
const res = await listShipmentPlanOrder(queryParams.value);
|
||||
res.rows.forEach((item) => {
|
||||
item.vendorWeight = (item.detailList || []).reduce((acc, cur) => {
|
||||
return acc + cur.supplierWeight;
|
||||
}, 0);
|
||||
item.logisticsWeight = (item.detailList || []).reduce((acc, cur) => {
|
||||
return acc + cur.logisticsWeight;
|
||||
}, 0);
|
||||
item.weightDiff = item.vendorWeight - item.logisticsWeight;
|
||||
});
|
||||
// res.rows.forEach((item) => {
|
||||
// item.vendorWeight = (item.detailList || []).reduce((acc, cur) => {
|
||||
// return acc + cur.supplierWeight;
|
||||
// }, 0);
|
||||
// item.logisticsWeight = (item.detailList || []).reduce((acc, cur) => {
|
||||
// return acc + cur.logisticsWeight;
|
||||
// }, 0);
|
||||
// item.weightDiff = item.vendorWeight - item.logisticsWeight;
|
||||
// });
|
||||
shipmentPlanList.value = res.rows;
|
||||
total.value = res.total;
|
||||
loading.value = false;
|
||||
@ -1068,6 +1091,11 @@ const handleCurrentChange = (val: ShipmentPlanVO | undefined) => {
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
// getAllChannelData();
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
getList();
|
||||
getAllChannelData();
|
||||
});
|
||||
|
@ -389,43 +389,54 @@
|
||||
<el-table-column label="物流商名称" align="center" prop="logisticsName" />
|
||||
<el-table-column label="目的地" align="center" prop="destination" />
|
||||
<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">
|
||||
<dict-tag :options="request_type" :value="scope.row.type" />
|
||||
<dict-tag :options="biz_quote_type" :value="scope.row.type" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="基础价格" align="center" prop="price">
|
||||
<template #default="scope">
|
||||
<el-tag type="warning" v-if="scope.row.type === 'weight'">重量询价参考总价</el-tag>
|
||||
<span v-else>{{ scope.row.price }}</span>
|
||||
<!-- <el-tag type="warning" v-if="scope.row.type === 'weight'">重量询价参考总价</el-tag>-->
|
||||
<span>{{ scope.row.price + scope.row.unit }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="总价" align="center" prop="totalPrice">
|
||||
<el-table-column label="体积比" align="center" prop="volumeRatio">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.type === 'weight'">{{ scope.row.totalPrice }}</span>
|
||||
<el-tag type="warning" v-else>普通询价参考单价</el-tag>
|
||||
<span>{{ scope.row.volumeRatio }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="总价" align="center" prop="totalPrice">-->
|
||||
<!-- <template #default="scope">-->
|
||||
<!-- <span v-if="scope.row.type === 'weight'">{{ scope.row.totalPrice }}</span>-->
|
||||
<!-- <el-tag type="warning" v-else>普通询价参考单价</el-tag>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column label="最短时效" align="center" prop="minLeadTime" />
|
||||
<el-table-column label="时效" align="center" prop="leadTime" />
|
||||
<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">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.quoteDate, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="提交状态" align="center" prop="isSubmitted">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="sys_yes_no" :value="scope.row.isSubmitted" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="提交状态" align="center" prop="isSubmitted">-->
|
||||
<!-- <template #default="scope">-->
|
||||
<!-- <dict-tag :options="sys_yes_no" :value="scope.row.isSubmitted" />-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column label="渠道类型" align="center" prop="channelType" />-->
|
||||
<el-table-column label="是否双清包税" align="center" prop="isDdp">
|
||||
<template #default="scope">
|
||||
<dict-tag :options="sys_yes_no" :value="scope.row.isDdp" />
|
||||
</template>
|
||||
</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" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
@ -439,11 +450,10 @@
|
||||
<template #footer>
|
||||
<div style="flex: auto">
|
||||
<el-button @click="cancelClick">取消</el-button>
|
||||
<el-button type="primary" @click="confirmClick">确认</el-button>
|
||||
<!-- <el-button type="primary" @click="confirmClick">确认</el-button>-->
|
||||
</div>
|
||||
</template>
|
||||
</el-drawer>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -471,6 +481,7 @@ import { createLogisticsOrder } from '@/api/amz/logisticsOrder';
|
||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||
const { biz_transport_channel } = toRefs<any>(proxy?.useDict('biz_transport_channel'));
|
||||
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'));
|
||||
|
||||
@ -1015,6 +1026,11 @@ const handleCurrentChange = (val: ShipmentPlanVO | undefined) => {
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
getList();
|
||||
// getAllChannelData();
|
||||
});
|
||||
|
||||
onActivated(() => {
|
||||
getList();
|
||||
getAllChannelData();
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user