Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Fedex
/
EcomWeb
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
jinhui.wang
2026-03-20 17:29:52 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
db4114b885be105bc7d228c579e3bace6fd49c8c
db4114b8
1 parent
a5f2b2ad
接口增加,反填逻辑增加
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
175 additions
and
201 deletions
src/api/receiptManagement-api.js
src/views/arrival-declare/index.vue
src/views/receipt-management/dialog.vue
src/api/receiptManagement-api.js
View file @
db4114b
...
...
@@ -59,3 +59,11 @@ export function searchMockReceiptSummary(data) {
method
:
"get"
,
});
}
//获取清单模拟回执信息
export
function
getListInfoByLogisticsNo
(
data
)
{
return
request
({
url
:
`/bus-customer/mockReceipt/getListInfo/
${
data
.
logisticsNo
}
`
,
method
:
"get"
,
});
}
...
...
src/views/arrival-declare/index.vue
View file @
db4114b
...
...
@@ -166,12 +166,12 @@
>
清单总分单撤销
</el-dropdown-item>
<el-dropdown-item
<
!-- <
el-dropdown-item
:command="{ code: 'totalScore', name: '清单总分单变更' }"
class="dropdown-other-menu-button"
>
清单总分单变更
</el-dropdown-item>
</el-dropdown-item>
-->
</el-dropdown-menu>
</el-dropdown>
</div>
...
...
@@ -1041,4 +1041,48 @@ export default {
transform: translate(0, -50%);
z-index: 10;
}
.dropdown-other-button {
border-color: #ff0000 !important;
::v-deep {
.el-button-group {
.el-button:last-child {
border-right-color: #409eff !important;
border-left: 1px solid #409eff !important;
border-top-color: #409eff !important;
border-bottom-color: #409eff !important;
.el-dropdown__icon {
color: #409eff;
}
}
.el-button:first-child {
height: 100%;
border-left-color: #409eff !important;
border-top-color: #409eff !important;
border-bottom-color: #409eff !important;
span {
color: #409eff;
}
}
}
}
}
.el-dropdown-menu {
border: 1px solid #409eff !important;
.dropdown-other-menu-button:not(.is-disabled):hover,
.dropdown-other-menu-button:focus {
background-color: #409eff !important;
}
}
.dropdown-other-button:hover {
::v-deep {
.el-button-group .el-button:first-child span {
color: #409eff !important;
}
.el-button-group .el-button:last-child .el-dropdown__icon {
color: #409eff !important;
}
}
}
</style>
...
...
src/views/receipt-management/dialog.vue
View file @
db4114b
<template>
<el-dialog
class="entryDialog classCUploadDialog"
title="新增模拟回执管理"
:visible.sync="outerVisible"
:show-close="false"
width="960px"
:close-on-click-modal="false"
:destroy-on-close="true"
v-loading="loadings.dialogLoading"
@close="close(false)"
>
<el-dialog class="entryDialog classCUploadDialog" title="新增模拟回执管理" :visible.sync="outerVisible" :show-close="false"
width="960px" :close-on-click-modal="false" :destroy-on-close="true" v-loading="loadings.dialogLoading"
@close="close(false)">
<div class="modelItem">
<el-form
class="fedexFormStyle"
ref="formDataRef"
:model="formData"
label-position="top"
size="small"
:rules="rules"
>
<el-form class="fedexFormStyle" ref="formDataRef" :model="formData" label-position="top" size="small"
:rules="rules">
<el-row :gutter="5">
<el-col :span="8">
<Formitem label="回执类型" prop="receiptType" type="edit">
<el-select
type="text"
id="inputInner-edit-receiptType"
v-model="formData.receiptType"
clearable
filterable
placeholder=""
@change="receiptChange"
>
<el-option
v-for="item in receiptTypeList"
:key="item.value"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
<el-select type="text" id="inputInner-edit-receiptType" v-model="formData.receiptType" clearable
filterable placeholder="" @change="receiptChange">
<el-option v-for="item in receiptTypeList" :key="item.value" :label="item.itemChineseName"
:value="item.itemValue"></el-option>
</el-select>
</Formitem>
</el-col>
...
...
@@ -47,112 +22,63 @@
<!-- 清单回执=》 list === 提运单号/物流运单编号/回执状态/电子口岸编号 preNo/清单编号 invtNo -->
<template
v-if="
['order', 'waybill', 'totalScore', 'list'].includes(
formData.receiptType
)
"
>
<template v-if="
['order', 'waybill', 'totalScore', 'list'].includes(
formData.receiptType
)
">
<el-col :span="8">
<Formitem label="提运单号" prop="billNo" type="edit">
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-billNo"
resize="none"
v-model="formData.billNo"
clearable
placeholder=""
:disabled="!!formData.orderNos || !!formData.logisticsNos"
@blur="receiptXml"
></el-input>
<el-input type="text" class="inputShadow" id="inputInner-edit-billNo" resize="none"
v-model="formData.billNo" clearable placeholder=""
:disabled="!!formData.orderNos || !!formData.logisticsNos" @blur="receiptXml"></el-input>
</Formitem>
</el-col>
</template>
<template v-if="['waybill', 'list'].includes(formData.receiptType)">
<el-col :span="8" v-if="!formData.billNo">
<Formitem
label="物流运单编号"
prop="logisticsNos">
<
FormTextareaInput
:formData="formData"
dataKey="logisticsNos"
:curKey="Date.now()"
@formChange="formChange
"
/>
<Formitem prop="logisticsNos">
<
template #title>
<span>物流运单编号</span>
<span v-show="loadings.logisticsNosLoading" class="el-icon-loading"></span>
</template>
<FormTextareaInput :formData="formData" dataKey="logisticsNos" :curKey="Date.now()
"
@formChange="formChange"
/>
</Formitem>
</el-col>
<el-col :span="8" v-else>
<Formitem label="物流运单编号" prop="logisticsNos">
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-logisticsNos"
resize="none"
v-model="formData.logisticsNos"
clearable
placeholder=""
:disabled="true"
></el-input>
<el-input type="text" class="inputShadow" id="inputInner-edit-logisticsNos" resize="none"
v-model="formData.logisticsNos" clearable placeholder="" :disabled="true">
</el-input>
</Formitem>
</el-col>
</template>
<template v-if="['order'].includes(formData.receiptType)">
<el-col :span="8" v-if="!formData.billNo">
<Formitem label="订单编号" prop="orderNos">
<FormTextareaInput
:formData="formData"
dataKey="orderNos"
:curKey="Date.now()"
@formChange="formChange"
/>
<FormTextareaInput :formData="formData" dataKey="orderNos" :curKey="Date.now()"
@formChange="formChange" />
</Formitem>
</el-col>
<el-col :span="8" v-else>
<Formitem label="订单编号" prop="orderNos">
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-orderNos"
resize="none"
v-model="formData.orderNos"
clearable
placeholder=""
:disabled="true"
></el-input>
<el-input type="text" class="inputShadow" id="inputInner-edit-orderNos" resize="none"
v-model="formData.orderNos" clearable placeholder="" :disabled="true"></el-input>
</Formitem>
</el-col>
</template>
<el-col
:span="24"
v-if="['order', 'waybill', 'list'].includes(formData.receiptType)"
>
<el-col :span="24" v-if="['order', 'waybill', 'list'].includes(formData.receiptType)">
</el-col>
<!-- 收发货人名称 -->
<template
v-if="['summaryApplication'].includes(formData.receiptType)"
>
<template v-if="['summaryApplication'].includes(formData.receiptType)">
<el-col :span="8">
<Formitem
label="收发货人名称"
prop="summaryApplicationId"
type="edit"
>
<el-select
type="text"
id="inputInner-edit-summaryApplicationId"
v-model="formData.summaryApplicationId"
clearable
filterable
placeholder=""
@change="receiptXml"
>
<el-option
v-for="item in summaryApplicationList"
:key="item.id"
:label="`${item.ebcName}(${item.startTime}-${item.endTime})`"
:value="item.id"
></el-option>
<Formitem label="收发货人名称" prop="summaryApplicationId" type="edit">
<el-select type="text" id="inputInner-edit-summaryApplicationId" v-model="formData.summaryApplicationId"
clearable filterable placeholder="" @change="receiptXml">
<el-option v-for="item in summaryApplicationList" :key="item.id"
:label="`${item.ebcName}(${item.startTime}-${item.endTime})`" :value="item.id"></el-option>
</el-select>
</Formitem>
</el-col>
...
...
@@ -173,104 +99,55 @@
</el-col> -->
<el-col :span="8">
<Formitem label="回执状态" prop="receiptStatus" type="edit">
<el-select
type="text"
id="inputInner-edit-receiptStatus"
v-model="formData.receiptStatus"
clearable
filterable
placeholder=""
@change="receiptXml"
>
<el-option
v-for="item in receiptStatusList"
:key="item.itemValue"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
<el-select type="text" id="inputInner-edit-receiptStatus" v-model="formData.receiptStatus" clearable
filterable placeholder="" @change="receiptXml">
<el-option v-for="item in receiptStatusList" :key="item.itemValue" :label="item.itemChineseName"
:value="item.itemValue"></el-option>
</el-select>
</Formitem>
</el-col>
<template
v-if="
['list', 'summaryApplication'].includes(formData.receiptType) &&
logisticsNoArray.length < 2 &&
!formData.billNo
"
>
<template v-if="
['list', 'summaryApplication'].includes(formData.receiptType) &&
logisticsNoArray.length < 2 &&
!formData.billNo
">
<el-col :span="8">
<Formitem label="电子口岸编号" prop="preNo" type="edit">
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-preNo"
resize="none"
v-model="formData.preNo"
clearable
placeholder=""
@blur="receiptXml"
maxlength="18"
></el-input>
<el-input type="text" class="inputShadow" id="inputInner-edit-preNo" resize="none"
v-model="formData.preNo" clearable placeholder="" @blur="receiptXml" maxlength="18"></el-input>
</Formitem>
</el-col>
</template>
<!-- 汇总申请编号 sumNo -->
<template
v-if="['summaryApplication'].includes(formData.receiptType)"
>
<template v-if="['summaryApplication'].includes(formData.receiptType)">
<el-col :span="8">
<Formitem label="汇总申请编号" prop="sumNo" type="edit">
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-sumNo"
resize="none"
v-model="formData.sumNo"
clearable
placeholder=""
@blur="receiptXml"
></el-input>
<el-input type="text" class="inputShadow" id="inputInner-edit-sumNo" resize="none"
v-model="formData.sumNo" clearable placeholder="" @blur="receiptXml"></el-input>
</Formitem>
</el-col>
</template>
<template
v-if="
['list'].includes(formData.receiptType) &&
logisticsNoArray.length < 2 &&
!formData.billNo
"
>
<template v-if="
['list'].includes(formData.receiptType) &&
logisticsNoArray.length < 2 &&
!formData.billNo
">
<el-col :span="8">
<Formitem label="清单编号" prop="invtNo" type="edit">
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-invtNo"
resize="none"
v-model="formData.invtNo"
clearable
placeholder=""
@blur="receiptXml"
maxlength="20"
></el-input>
<el-input type="text" class="inputShadow" id="inputInner-edit-invtNo" resize="none"
v-model="formData.invtNo" clearable placeholder="" @blur="receiptXml" maxlength="20"></el-input>
</Formitem>
</el-col>
</template>
</el-row>
<div
style="color: #e6a23c; margin-bottom: 10px; font-size: 12px"
v-if="formData.receiptType === 'order'"
>
<div style="color: #e6a23c; margin-bottom: 10px; font-size: 12px" v-if="formData.receiptType === 'order'">
<i class="el-icon-info"></i>
提运单号和订单编号只能填写一个,如果填写提运单号,提运单下所有的订单编号回执状态都将新增模拟回执,如果填写订单编号,将只对填写的订单修改回执状态
</div>
<div
v-if="formData.receiptType === 'waybill'"
style="color: #e6a23c; margin-bottom: 10px; font-size: 12px"
>
<div v-if="formData.receiptType === 'waybill'" style="color: #e6a23c; margin-bottom: 10px; font-size: 12px">
<i class="el-icon-info"></i>
提运单号和物流运单编号只能填写一个,如果填写提运单号,提运单下所有的物流运单编号回执状态都将改变,如果填写物流运单编号,将只对填写的物流运单编号修改回执状态
</div>
...
...
@@ -279,14 +156,8 @@
<el-col :span="24">
<div class="textarea-text">
<div style="color: #777777; margin-bottom: 10px">回执文本</div>
<el-input
type="textarea"
:rows="12"
class="inputShadow"
resize="none"
:readonly="true"
v-model="receiptInfo"
></el-input>
<el-input type="textarea" :rows="12" class="inputShadow" resize="none" :readonly="true"
v-model="receiptInfo"></el-input>
</div>
</el-col>
</el-row>
...
...
@@ -294,12 +165,7 @@
</div>
<div class="dialogOption entrySave">
<el-button
class="entrySaveButton"
:disabled="loadings.submitLoading"
@click="submit"
>确 定</el-button
>
<el-button class="entrySaveButton" :disabled="loadings.submitLoading" @click="submit">确 定</el-button>
<el-button class="entrySaveButton" @click="close(false)">关 闭</el-button>
</div>
</el-dialog>
...
...
@@ -311,6 +177,7 @@ import {
addInfo,
getListInfo,
searchMockReceiptSummary,
getListInfoByLogisticsNo,
} from "@/api/receiptManagement-api.js";
export default {
props: {
...
...
@@ -400,6 +267,7 @@ export default {
loadings: {
dialogLoading: false,
submitLoading: false,
logisticsNosLoading: false,
},
loadingText: "",
summaryApplicationList: [],
...
...
@@ -455,6 +323,13 @@ export default {
} else {
this.logisticsNoArray = [];
}
//物流运单号只有一个时查询“电子运单编号”与“清单编号”
if (val.receiptType == 'list' && this.logisticsNoArray.length === 1) {
this.getListInfoByLogisticsNo(this.logisticsNoArray[0])
} else {
this.formData.preNo = "";
this.formData.invtNo = "";
}
},
queryApplicationList(name = "") {
searchMockReceiptSummary({
...
...
@@ -508,6 +383,8 @@ export default {
}
}
} else if (copyFormData.receiptType === "summaryApplication") {
//根据收发货人名称查询‘电子口岸编码’与‘汇总申请编号’
this.getSummaryApplicationInfo()
if (!copyFormData.summaryApplicationId) {
return;
}
...
...
@@ -588,7 +465,18 @@ export default {
addInfo(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.data || res.message);
if (!res.data) {
this.msgSuccess(res.data || res.message);
} else {
const successStr = `成功修改清单 <span style='color:#67C23A;font-weight:600;'>${res.data.successCount}</span> 笔。`
const errorStr = `失败修改清单 <span style='color:#F56C6C;font-weight:600;'>${res.data.failCount}</span> 笔,因为将清单模拟为结关,这些清单中不存在清单编号。`
this.$message({
showClose: true,
type: 'success',
dangerouslyUseHTMLString: true,
message: `<span style='color:#666;'>${res.data.successCount > 0 ? successStr + (res.data.failCount > 0 ? errorStr : '') : errorStr}</span>`
});
}
this.close(true);
} else {
this.alertWarningMsg(res.message);
...
...
@@ -600,6 +488,40 @@ export default {
this.loadings.dialogLoading = false;
});
},
//根据物流运单号反填
async getListInfoByLogisticsNo(logisticsNo) {
console.log('物流运单号查询');
this.loadings.logisticsNosLoading = true;
getListInfoByLogisticsNo({
logisticsNo,
}).then((res) => {
console.log(res);
if (res.code === "200") {
this.formData.preNo = res.data.preNo;
this.formData.invtNo = res.data.invtNo;
}
}).finally(() => {
this.loadings.logisticsNosLoading = false;
});
},
//根据收发货人名称反填
async getSummaryApplicationInfo(summaryApplicationId) {
console.log('收发货人名称查询');
if (this.formData.summaryApplicationId === "" || this.formData.summaryApplicationId === null) {
this.formData.preNo = "";
this.formData.sumNo = "";
return;
}
const summaryApplication = this.summaryApplicationList.find(item => item.id === this.formData.summaryApplicationId);
if (!summaryApplication) {
this.formData.preNo = "";
this.formData.sumNo = "";
return;
} else {
this.formData.preNo = summaryApplication.preNo;
this.formData.sumNo = summaryApplication.sumNo;
}
},
close(flag) {
this.formData = {
...
...
Please
register
or
login
to post a comment