备货单 审核功能

This commit is contained in:
浅念
2025-09-09 20:53:30 +08:00
parent 079d9babb8
commit 9052bd1027
37 changed files with 4712 additions and 3791 deletions
+68 -52
View File
@@ -11,12 +11,12 @@
</div>
<ElForm :model="baseForm" class="base-form">
<ElRow :gutter="12">
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="阿里订单号/PI号">
<ElInput v-model="baseForm.pi_no" placeholder="请输入阿里订单号/PN号" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="日期">
<ElDatePicker
v-model="baseForm.biz_date"
@@ -28,7 +28,7 @@
/>
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="清关目的国">
<el-select
v-model="baseForm.clearance_country_id"
@@ -50,7 +50,7 @@
<ElInput v-model="baseForm.clearance_country_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="客户来源">
<el-select
v-model="baseForm.customer_source_id"
@@ -72,7 +72,7 @@
<ElInput v-model="baseForm.customer_source_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="客户名称">
<ElInput
v-model="baseForm.customer_snapshot"
@@ -87,7 +87,7 @@
<ElInput v-model="baseForm.customer_id" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="客户所在国">
<el-select
v-model="baseForm.customer_country_id"
@@ -121,7 +121,7 @@
<div class="items-wrap">
<div class="item-row" v-for="(item, idx) in items" :key="idx">
<ElRow :gutter="12">
<ElCol :span="8">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="车型" label-width="64px">
<ElInput
v-model="item.model_snapshot"
@@ -138,7 +138,7 @@
<ElInput v-model="item.sku_id" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="颜色/外饰" label-width="72px">
<el-select
v-model="item.color_exterior_snapshot"
@@ -161,7 +161,7 @@
<ElInput v-model="item.color_exterior_code" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="颜色/内饰" label-width="72px">
<el-select
v-model="item.color_interior_snapshot"
@@ -184,7 +184,7 @@
<ElInput v-model="item.color_interior_code" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="8">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="改装" label-width="52px">
<el-select
v-model="item.modify_ids"
@@ -209,11 +209,11 @@
</ElCol>
</ElRow>
<ElRow :gutter="12">
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="5" :xl="4">
<ElFormItem label="单价" label-width="45px">
<ElInput v-model="item.unit_price" placeholder="请输入单价">
<template #append>
<ElSelect v-model="item.unit_price_currency" style="width: 61px">
<ElSelect v-model="item.unit_price_currency" style="width: 64px">
<ElOption
v-for="c in currencyOptions"
:key="c.currency_code"
@@ -226,11 +226,11 @@
<ElInput v-model="item.unit_price_currency_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="5" :xl="4">
<ElFormItem label="总价" label-width="45px">
<ElInput v-model="item.total_price" placeholder="请输入总价">
<template #append>
<ElSelect v-model="item.total_price_currency" style="width: 61px">
<ElSelect v-model="item.total_price_currency" style="width: 64px">
<ElOption
v-for="c in currencyOptions"
:key="c.currency_code"
@@ -243,11 +243,11 @@
<ElInput v-model="item.total_price_currency_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="5">
<ElCol :sm="12" :md="12" :lg="5" :xl="4">
<ElFormItem label="改装费" label-width="55px">
<ElInput v-model="item.retrofit_fee" placeholder="请输入改装费">
<template #append>
<ElSelect v-model="item.modify_fee_currency" style="width: 61px">
<ElSelect v-model="item.modify_fee_currency" style="width: 64px">
<ElOption
v-for="c in currencyOptions"
:key="c.currency_code"
@@ -260,11 +260,11 @@
<ElInput v-model="item.modify_fee_currency_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="6">
<ElCol :sm="12" :md="12" :lg="5" :xl="4">
<ElFormItem label="FOB段运费" label-width="84px">
<ElInput v-model="item.fob_transport_fee" placeholder="请输入FOB段运费">
<template #append>
<ElSelect v-model="item.fob_fee_currency" style="width: 61px">
<ElSelect v-model="item.fob_fee_currency" style="width: 64px">
<ElOption
v-for="c in currencyOptions"
:key="c.currency_code"
@@ -277,11 +277,11 @@
<ElInput v-model="item.fob_fee_currency_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="5">
<ElCol :sm="12" :md="12" :lg="4" :xl="4">
<ElFormItem label="手续费" label-width="60px">
<ElInput v-model="item.handling_fee" placeholder="请输入手续费">
<template #append>
<ElSelect v-model="item.helper_fee_currency" style="width: 61px">
<ElSelect v-model="item.helper_fee_currency" style="width: 64px">
<ElOption
v-for="c in currencyOptions"
:key="c.currency_code"
@@ -296,11 +296,11 @@
</ElCol>
</ElRow>
<ElRow :gutter="12">
<ElCol :span="5">
<ElCol :sm="12" :md="12" :lg="5" :xl="5">
<ElFormItem label="港杂费" label-width="60px">
<ElInput v-model="item.port_misc_fee" placeholder="请输入港杂费">
<template #append>
<ElSelect v-model="item.port_fee_currency" style="width: 61px">
<ElSelect v-model="item.port_fee_currency" style="width: 64px">
<ElOption
v-for="c in currencyOptions"
:key="c.currency_code"
@@ -313,16 +313,16 @@
<ElInput v-model="item.port_fee_currency_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="4" :xl="4">
<ElFormItem label="里程" label-width="52px">
<ElInput v-model="item.mileage" placeholder="请输入里程" />
</ElFormItem>
</ElCol>
<ElCol :span="5" v-if="(item.mileage ?? 0) <= 0">
<ElCol :sm="12" :md="12" :lg="5" :xl="5" v-if="(item.mileage ?? 0) <= 0">
<ElFormItem label="官方指导价" label-width="85px">
<ElInput v-model="item.official_price" placeholder="请输入官方指导价">
<template #append>
<ElSelect v-model="item.guide_price_currency" style="width: 61px">
<ElSelect v-model="item.guide_price_currency" style="width: 64px">
<ElOption
v-for="c in currencyOptions"
:key="c.currency_code"
@@ -335,11 +335,11 @@
<ElInput v-model="item.guide_price_currency_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="5" v-else>
<ElCol :sm="12" :md="12" :lg="5" :xl="5" v-else>
<ElFormItem label="挂牌价" label-width="55px">
<ElInput v-model="item.listing_price" placeholder="请输入挂牌价">
<template #append>
<ElSelect v-model="item.listing_price_currency" style="width: 61px">
<ElSelect v-model="item.listing_price_currency" style="width: 64px">
<ElOption
v-for="c in currencyOptions"
:key="c.currency_code"
@@ -352,11 +352,11 @@
<ElInput v-model="item.listing_price_currency_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="6" v-if="(item.mileage ?? 0) <= 0">
<ElCol :sm="12" :md="12" :lg="6" :xl="6" v-if="(item.mileage ?? 0) <= 0">
<ElFormItem label="优惠" label-width="52px">
<ElInput v-model="item.discount_price" placeholder="请输入优惠额">
<template #append>
<ElSelect v-model="item.discount_currency" style="width: 61px">
<ElSelect v-model="item.discount_currency" style="width: 64px">
<ElOption
v-for="c in currencyOptions"
:key="c.currency_code"
@@ -369,11 +369,11 @@
<ElInput v-model="item.discount_currency_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="6" v-else>
<ElCol :sm="12" :md="12" :lg="6" :xl="6" v-else>
<ElFormItem label="二手减价" label-width="72px">
<ElInput v-model="item.reduction_price" placeholder="请输入二手减价">
<template #append>
<ElSelect v-model="item.reduction_price_currency" style="width: 61px">
<ElSelect v-model="item.reduction_price_currency" style="width: 64px">
<ElOption
v-for="c in currencyOptions"
:key="c.currency_code"
@@ -386,9 +386,14 @@
<ElInput v-model="item.reduction_price_currency_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="4" :xl="4">
<ElFormItem label="利润" label-width="40px">
<ElInput v-model="item.profit" placeholder="正在计算利润" disabled>
<ElInput
v-model="item.profit"
placeholder="正在计算利润"
:class="Number(item.profit) < 0 ? 'profit-negative' : ''"
disabled
>
<template #append> <span style="font-size: 11px">美元</span></template>
</ElInput>
</ElFormItem>
@@ -407,11 +412,11 @@
</ElRow>
</div>
<ElRow :gutter="12">
<ElCol :span="4">
<ElCol :span="6">
<ElFormItem label="合计到岸价" label-width="85px">
<ElInput v-model="baseForm.total_cif" placeholder="请输入合计到岸价">
<template #append>
<ElSelect v-model="baseForm.total_cif_currency" style="width: 61px">
<ElSelect v-model="baseForm.total_cif_currency" style="width: 64px">
<ElOption
v-for="c in currencyOptions"
:key="c.currency_code"
@@ -424,11 +429,11 @@
<ElInput v-model="baseForm.total_cif_currency_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :span="6">
<ElFormItem label="合同汇率" label-width="70px">
<ElInput v-model="baseForm.contract_exchange_rate" placeholder="请输入">
<template #append>
<ElSelect v-model="baseForm.contract_exchange_rate_currency" style="width: 61px">
<ElSelect v-model="baseForm.contract_exchange_rate_currency" style="width: 64px">
<ElOption
v-for="c in currencyOptions"
:key="c.currency_code"
@@ -450,12 +455,12 @@
</div>
<ElForm :model="baseForm" class="foot-form">
<ElRow :gutter="12">
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="清关人">
<ElInput v-model="baseForm.declarant_name" placeholder="请输入清关人" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="预计发送日">
<ElDatePicker
v-model="baseForm.eta_ship_date"
@@ -467,7 +472,7 @@
/>
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="运输方式">
<ElSelect
v-model="baseForm.shipping_method_id"
@@ -488,7 +493,7 @@
<ElInput v-model="baseForm.shipping_method_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="国内收货港">
<ElSelect
v-model="baseForm.domestic_port_id"
@@ -504,7 +509,7 @@
<ElInput v-model="baseForm.domestic_port_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="贸易条款">
<ElSelect
v-model="baseForm.trade_term_id"
@@ -525,7 +530,7 @@
<ElInput v-model="baseForm.trade_term_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="清关目的港">
<ElSelect
v-model="baseForm.clearance_port_id"
@@ -546,9 +551,7 @@
<ElInput v-model="baseForm.clearance_port_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
</ElRow>
<ElRow :gutter="12">
<ElCol :span="6">
<ElCol :sm="12" :md="12" :lg="6" :xl="4">
<ElFormItem label="最迟到港时间">
<ElDatePicker
v-model="baseForm.latest_arrival_date"
@@ -573,7 +576,7 @@
<div v-for="(payment, idx) in paymentItems" :key="idx" class="payment-item">
<ElForm :model="payment" label-width="55px" class="payment-form">
<ElRow :gutter="12">
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="4" :xl="4">
<ElFormItem label="汇款国">
<el-select v-model="payment.remit_country_id" filterable placeholder="请选择汇款国" @change="
(val) =>
@@ -590,7 +593,7 @@
<ElInput v-model="payment.remit_country_name_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="4" :xl="4">
<ElFormItem label="日期">
<ElDatePicker
v-model="payment.remit_date"
@@ -602,7 +605,7 @@
/>
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="4" :xl="4">
<ElFormItem label="币种">
<ElSelect v-model="payment.currency_code" placeholder="请选择币种" @change="
(val) => {
@@ -620,7 +623,7 @@
<ElInput v-model="payment.currency_name_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="4" :xl="4">
<ElFormItem label="账户">
<ElSelect v-model="payment.account_id" placeholder="请选择账户" @change="
(val) =>
@@ -637,12 +640,12 @@
<ElInput v-model="payment.account_name_snapshot" type="hidden" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="4" :xl="4">
<ElFormItem label="汇款人">
<ElInput v-model="payment.remitter_name" placeholder="请选择汇款人" />
</ElFormItem>
</ElCol>
<ElCol :span="4">
<ElCol :sm="12" :md="12" :lg="4" :xl="4">
<ElFormItem label="金额">
<ElInput v-model="payment.amount" placeholder="请输入金额" />
</ElFormItem>
@@ -926,6 +929,19 @@
gap: 8px;
justify-content: flex-end;
}
/* 利润为负数时,输入文字变红(兼容 Element Plus disabled 样式) */
:deep(.profit-negative .el-input__wrapper) {
color: #ff4d4f !important;
}
:deep(.profit-negative .el-input__inner) {
color: #ff4d4f !important;
-webkit-text-fill-color: #ff4d4f !important; /* 修复 WebKit 在 disabled 下的文本颜色 */
}
:deep(.profit-negative.is-disabled .el-input__wrapper) {
background-color: var(--el-fill-color-blank) !important;
box-shadow: 0 0 0 1px var(--el-input-border-color, #dcdfe6) inset !important;
}
.row-actions span {
font-size: 12px;
cursor: pointer;