jiaxing.zhou

feat(exportSummary): 新增汇总申请单查询功能

- 添加提运单号、预录入编号、电商企业代码等查询条件
- 新增汇总时间、业务状态等筛选项
- 更新表格展示字段,包括电子口岸预录入编号、提运单号等
-集成新的 API searchExportSummaryList 用于获取汇总申请单数据
......@@ -21,3 +21,14 @@ export function searchExportSummaryList(data){
data: data,
})
}
/**
* 查询汇总回执
* @param data.copNo 企业唯一编号
*/
export function getExportSummaryReceiptData(data){
return request({
url: '/bus-customer/exportSummary/receipt/' + data.copNo,
method: 'get',
})
}
......
......@@ -201,9 +201,12 @@
@sizeChange="sizeChange"
@currentChange="currentChange"
@cellClick="cellClick"
:selection="false"
:selection="true"
:selectFixed="false"
:rowSelectDataType="false"
@tableSelect="tableSelect"
@tableSelectAll="tableSelectAll"
:selected="selected"
>
<template v-slot:returnStatus="scope">
<TablePopover
......@@ -236,11 +239,8 @@
<script>
import {
getAllExportingBills,
getOrderReceiptData,
} from "@/api/exportQuery.js";
import {
searchExportSummaryList
searchExportSummaryList,
getExportSummaryReceiptData
} from "@/api/exportSummary-api";
export default {
name: "ExportBillQuery",
......@@ -264,69 +264,88 @@ export default {
total: 0,
},
tableData: [],
selected: [],
headerData: [
{
name: "回执状态",
value: "returnStatus",
width: "",
align: "left",
slot: true,
},
{
name: "电子口岸预录入编号",
value: "preNo",
width: "",
align: "left",
slot: true,
},
{
name: "提运单号",
value: "billNo",
width: "",
align: "left",
slot: true,
},
{
name: "汇总申请单编号",
value: "sumNo",
width: "",
align: "left",
slot: true,
},
{
name: "申报企业代码",
value: "agentCode",
width: "",
align: "left",
slot: true,
},
{
name: "申报企业名称",
value: "agentName",
width: "",
align: "left",
slot: true,
},
{
name: "收发货人代码",
value: "ebccode",
width: "",
align: "left",
slot: true,
},
{
name: "收发货人名称",
value: "ebcname",
width: "",
align: "left",
slot: true,
},
{
name: "汇总时间",
value: "startTime"+"~"+"endTime",
width: "",
align: "left",
slot: true,
},
{
name: "收发货人汇总标志",
value:"summaryFlag",
width: "",
align: "left",
slot: true,
},
],
receiptDataHead: [
{
name: "回执状态",
value: "receiptStatus",
width: "",
align: "left",
},
{
name: "状态时间",
value: "statusTime",
width: "",
align: "left",
},
{
name: "回执描述",
value: "receiptDescription",
width: "",
align: "left",
},
],
dictData: {
......@@ -404,17 +423,18 @@ export default {
//查询详情
view(val) {
this.$router.push({
name: "ExportBillDetail",
name: "summaryDetail",
params: { data: val },
});
},
popoverChange(val) {
console.log(val);
this.tableData = val.tableData;
this.receiptApi(val.data.declareId, val.status)
this.receiptApi(val.data.copNo, val.status)
.then((res) => {
val.tableData.forEach((item) => {
if (item.declareId == val.data.declareId) {
console.log("item",item)
if (item.id == val.data.id) {
item.popoverData = res;
}
});
......@@ -427,10 +447,10 @@ export default {
});
},
//查询回执
receiptApi(id) {
receiptApi(copNo) {
return new Promise((resolve, reject) => {
let obj = { orderId: id };
getOrderReceiptData(obj)
let obj = { copNo: copNo };
getExportSummaryReceiptData(obj)
.then((res) => {
if (res.code === "200") {
resolve(res.data);
......@@ -474,6 +494,12 @@ export default {
});
}
},
tableSelect(val) {
this.selected = val.selection;
},
tableSelectAll(val) {
this.selected = val;
},
input() {
this.$forceUpdate();
},
......
<template>
<div class="entry" v-loading="loadings.entryLoading">
<div class="entryTitle">
<div>汇总申请单详情</div>
<div>
<el-button class="entrySaveButton" @click="back">返 回</el-button>
</div>
</div>
<el-form
class="fedexFormStyle"
ref="sreachForm"
:model="formData"
label-position="top"
disabled
size="small"
>
<el-row :gutter="5">
<!-- 提运单号 -->
<el-col :span="3">
<Formitem label="提运单号" prop="billNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--billNo"
resize="none"
v-model="formData.billNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 电子口岸编号 -->
<el-col :span="3">
<Formitem label="电子口岸编号" prop="preNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--preNo"
resize="none"
v-model="formData.preNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 报送类型 -->
<el-col :span="3">
<Formitem label="报送类型" prop="appType">
<el-select
type="text"
id="inputInner--appType"
v-model="formData.appType"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in $store.getters.dict.DECLARE_APPTYPE"
:key="index"
:label="item.itemChineseName"
:value="item.itemValue"
></el-option>
</el-select>
</Formitem>
</el-col>
<!-- 汇总申请编号 -->
<el-col :span="3">
<Formitem label="汇总申请编号" prop="sumNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--sumNo"
resize="none"
v-model="formData.sumNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 报关单位代码 -->
<el-col :span="6">
<Formitem label="报关单位代码" prop="declagAgentCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--declagAgentCode"
resize="none"
v-model="formData.declagAgentCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 报关单位名称 -->
<el-col :span="3">
<Formitem label="报关单位名称" prop="declAgentName">
<el-input
type="text"
class="inputShadow"
id="inputInner--declAgentName"
resize="none"
v-model="formData.declAgentName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 报送时间 -->
<el-col :span="6">
<Formitem label="报送时间" prop="appTime">
<el-input
type="text"
class="inputShadow"
id="inputInner--appTime"
resize="none"
v-model="formData.appTime"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<!-- 申报企业代码 -->
<el-col :span="3">
<Formitem label="申报企业代码" prop="agentCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--agentCode"
resize="none"
v-model="formData.agentCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 申报企业名称 -->
<el-col :span="3">
<Formitem label="申报企业名称" prop="agentName">
<el-input
type="text"
class="inputShadow"
id="inputInner--agentName"
resize="none"
v-model="formData.agentName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 收发货人代码 -->
<el-col :span="3">
<Formitem label="收发货人代码" prop="ebccode">
<el-input
type="text"
class="inputShadow"
id="inputInner--ebccode"
resize="none"
v-model="formData.ebccode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 收发货人名称 -->
<el-col :span="6">
<Formitem label="收发货人名称" prop="ebcname">
<el-input
type="text"
class="inputShadow"
id="inputInner--ebcname"
resize="none"
v-model="formData.ebcname"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 汇总时间 -->
<el-col :span="6">
<Formitem label="汇总时间" prop="startTime">
<el-input
type="text"
class="inputShadow"
id="inputInner--startTime"
resize="none"
v-model="formData.startTime"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 收发货人汇总标志 -->
<el-col :span="9">
<Formitem label="收发货人汇总标志" prop="summaryFlag">
<el-input
type="text"
class="inputShadow"
id="inputInner--summaryFlag"
resize="none"
v-model="formData.summaryFlag"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 按商品名汇总标志 -->
<el-col :span="9">
<Formitem label="按商品名汇总标志" prop="itemNameFlag">
<el-input
type="text"
class="inputShadow"
id="inputInner--itemNameFlag"
resize="none"
v-model="formData.itemNameFlag"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 监管场所代码 -->
<el-col :span="9">
<Formitem label="监管场所代码" prop="loctNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--loctNo"
resize="none"
v-model="formData.loctNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 申报地海关代码 -->
<el-col :span="9">
<Formitem label="申报地海关代码" prop="customsCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--customsCode"
resize="none"
v-model="formData.customsCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 报文总数 -->
<el-col :span="9">
<Formitem label="报文总数" prop="msgCount">
<el-input
type="text"
class="inputShadow"
id="inputInner--msgCount"
resize="none"
v-model="formData.msgCount"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 报文序号 -->
<el-col :span="9">
<Formitem label="报文序号" prop="msgSeqNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--msgSeqNo"
resize="none"
v-model="formData.msgSeqNo"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 入库时间 -->
<el-col :span="9">
<Formitem label="入库时间" prop="createTime">
<el-input
type="text"
class="inputShadow"
id="inputInner--createTime"
resize="none"
v-model="formData.createTime"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 备注 -->
<el-col :span="9">
<Formitem label="备注" prop="note">
<el-input
type="text"
class="inputShadow"
id="inputInner--note"
resize="none"
v-model="formData.note"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
</el-form>
<div
:class="{ entryTitle: true, titleBorder: logtableType ? false : true }"
style="margin-top: 10px"
>
<div>
回执信息
<el-button type="text" @click="hiddenLogTable">
<svg-icon v-if="logtableType" icon-class="downIcon"></svg-icon>
<svg-icon v-else icon-class="upIcon"></svg-icon>
</el-button>
</div>
</div>
<ReceiptInfoTable
v-if="logtableType"
:tableData="logData"
:headerData="logHeaderData"
/>
<div class="entryTitle" style="margin-top: 10px">商品明细</div>
<ProductDetailTable
:tableData="detailData"
:bodyHeader="detialHeaderData"
/>
<div style="margin-bottom: 20px; text-align: center"></div>
</div>
</template>
<script>
import ReceiptInfoTable from "../components/ReceiptInfoTable/index.vue";
import ProductDetailTable from "../components/ProductDetailTable/index.vue";
import { getOrderDetailData } from "@/api/exportDetail-api.js";
export default {
name: "",
components: { ProductDetailTable, ReceiptInfoTable },
data() {
return {
id: null,
formData: {},
logData: [],
logHeaderData: [
{
name: "回执状态",
value: "returnStatus",
width: "200",
align: "left",
},
{
name: "状态时间",
value: "returnTime",
width: "400",
align: "left",
},
{
name: "回执描述",
value: "returnInfo",
width: "",
align: "left",
},
],
detailData: [],
detialHeaderData: [
{
name: "序号",
value: "gnum",
width: "",
align: "left",
},
{
name: "企业商品货号",
value: "itemNo",
width: "",
align: "left",
},
{
name: "商品企业商品名称",
value: "itemName",
width: "",
align: "left",
},
{
name: "企业商品描述",
value: "itemDescribe",
width: "",
align: "left",
},
{
name: "条码",
value: "barCode",
width: "",
align: "left",
},
{
name: "计量单位",
value: "unit",
width: "",
align: "left",
slot: true,
},
{
name: "币制",
value: "currency",
width: "",
align: "left",
slot: true,
},
{
name: "数量",
value: "qty",
width: "",
align: "left",
},
{
name: "单价",
value: "price",
width: "",
align: "left",
},
{
name: "总价",
value: "totalPrice",
width: "",
align: "left",
},
{
name: "备注",
value: "note",
width: "",
align: "left",
},
],
loadings: {
entryLoading: false,
},
logtableType: true,
};
},
created() {
if (this.$route.params.data) {
this.id = this.$route.params.data.id;
this.searchData();
} else {
this.back();
}
},
methods: {
searchData() {
this.loadings.entryLoading = true;
getOrderDetailData({ orderId: this.id })
.then((res) => {
if (res.code === "200") {
this.formData = res.data.exportOrder;
this.detailData = res.data.exportOrderProductList;
this.logData = res.data.exportOrderReceiptList;
this.detailData.forEach((item, idx) => {
item.index = idx;
});
} else {
this.alertWarningMsg(res.message);
}
this.loadings.entryLoading = false;
})
.catch((err) => {
console.log(err);
this.loadings.entryLoading = false;
});
},
searchLogData() {},
hiddenLogTable() {
this.logtableType = !this.logtableType;
},
back() {
this.$router.go(-1);
},
},
};
</script>
<style scoped lang="scss">
.entry {
width: 100%;
height: 100%;
padding: 10px;
background-color: #fff;
overflow: auto;
.entryInformation {
width: 100%;
height: 100%;
}
.entryTitle {
display: flex;
justify-content: space-between;
font-weight: 600;
font-weight: 16px;
color: #000;
margin-bottom: 10px;
}
.titleBorder {
border-bottom: 1px solid #333;
}
}
</style>