zhengquan.bai

物流离境单数据查询

......@@ -117,7 +117,7 @@ export const constantRoutes = [
{
path: '/exportListDetail',
component: (resolve) => require(['@/views/exportListDetail/index'], resolve),
hidden: false,
hidden: true,
meta: { title: '出口清单详情', icon: 'api' },
},
{
......@@ -133,14 +133,29 @@ export const constantRoutes = [
meta: { title: '出口清单查询', icon: 'dashboard' }
},
{
path: 'index',
component: (resolve) => require(['@/views/index'], resolve),
path: '/listBranchQuery',
component: (resolve) => require(['@/views/listBranchQuery/index'], resolve),
name: '首页',
hidden: false,
meta: { title: '清单总分单查询', icon: 'dashboard' }
},
{
path: 'index',
component: (resolve) => require(['@/views/index'], resolve),
path: '/listBranchDetail',
component: (resolve) => require(['@/views/listBranchDetail/index'], resolve),
name: '首页',
hidden: true,
meta: { title: '清单总分单详情', icon: 'dashboard' }
},
{
path: '/logisticsExitDetail',
component: (resolve) => require(['@/views/logisticsExitDetail/index'], resolve),
name: '首页',
hidden: true,
meta: { title: '物流离境单详情', icon: 'dashboard' }
},
{
path: '/logisticsExitQuery',
component: (resolve) => require(['@/views/logisticsExitQuery/index'], resolve),
name: '首页',
meta: { title: '物流离境单查询', icon: 'dashboard' }
},
......
<template>
<div class="export-bill-detail">
<h5 class="first-header">
清单总分单详情
<div class="returnButton" @click="$router.back()">返回</div>
</h5>
<el-form
class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
ref="sreachForm"
:model="searchForm"
label-position="top"
disabled
size="small"
>
<el-row class="row-border">
<el-col :span="5">
<Formitem label="提运单号" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="申报地海关" prop="factoryCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="电子口岸编号" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="监管场所代码" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="申报企业代码" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<Formitem label="申报企业名称" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="运输方式" prop="factoryCode">
<el-select
type="text"
id="inputInner--declaredPort"
v-model="searchForm.declaredPort"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.userport"
:key="index"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="运输工具名称" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="航班航次号" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="境内运输工具编号" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="毛重" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="物流企业名称" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="报文总数" prop="factoryCode">
<el-select
type="text"
id="inputInner--declaredPort"
v-model="searchForm.declaredPort"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.userport"
:key="index"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="报文序号" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
</el-row>
<el-row>
<el-col :span="4">
<Formitem label="业务状态" prop="factoryCode">
<el-select
type="text"
id="inputInner--declaredPort"
v-model="searchForm.declaredPort"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.userport"
:key="index"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="申报类型" prop="factoryCode">
<el-select
type="text"
id="inputInner--declaredPort"
v-model="searchForm.declaredPort"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.userport"
:key="index"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="申报日期" prop="declareDate">
<el-date-picker
v-model="value1"
type="date"
placeholder="选择日期">
</el-date-picker>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="备注" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
</el-row>
</el-form>
<h5>回执信息</h5>
<ReceiptInfoTable />
<h5>商品明细</h5>
<ProductDetailTable />
</div>
</template>
<script>
import ReceiptInfoTable from "@/components/ReceiptInfoTable/index.vue";
import ProductDetailTable from "@/components/ProductDetailTable/index.vue";
export default {
name: "index.vue",
components: {ProductDetailTable, ReceiptInfoTable},
data() {
return {
searchForm: {
declaredPort: "",
consStatus: "",
consignmentCode: "",
accsDataImportTime: [],
ownerName: "",
consignmentHeadCode: "",
isPushCustomsSys: "",
waitOperStatus: "",
declTime: [],
},
textareaVisible: {
formItemconsignmentCode: false,
formItemconsignmentHeadCode: false,
},
dictData: {
userport: [
{name: "Shanghai Port", code: "SH"},
{name: "Beijing Port", code: "BJ"},
{name: "Guangzhou Port", code: "GZ"},
{name: "Shenzhen Port", code: "SZ"},
{name: "Tianjin Port", code: "TJ"},
],
},
}
},
methods: {
textareaBlur(val) {
let inputInner = document.querySelector(
"#inputInner--" + val.target.name.split("-")[0]
);
this.textareaVisible["formItem" + val.target.name.split("-")[0]] = false;
inputInner.style.display = "block";
this.$nextTick(() => {
inputInner.blur();
if (
inputInner.value != undefined &&
inputInner.value != "" &&
inputInner.value != null
) {
inputInner.classList.add("inputFocus");
} else {
inputInner.classList.remove("inputFocus");
}
});
let arr = [];
this.searchForm[val.target.name.split("-")[0]]
.replace(/[\n\,\;\;]/g, ",")
.replace(/[\t]/g, "")
.split(",")
.forEach((str, index) => {
if (str != null && str != "" && index <= 1000) {
arr.push(str.trim());
}
});
this.searchForm[val.target.name.split("-")[0]] = arr.join("\n");
this.$forceUpdate();
},
//文本域展示状态切换
textareaFocus(val) {
this.textareaVisible["formItem" + val.target.name.split("-")[0]] = true;
this.$nextTick(() => {
document
.querySelector("#popoverInput" + val.target.name.split("-")[0])
.focus();
document.querySelector(
"#inputInner--" + val.target.name.split("-")[0]
).style.display = "none";
});
},
}
}
</script>
<style scoped lang="scss">
.export-bill-detail {
background-color: white;
padding-left: 20px;
//border: 1px solid black;
height: 100%;
.fedexFormItem {
background-color: #f5f5f5;
margin-right: 5px;
margin-bottom: 5px;
}
.fedexformSreach {
border-bottom: none;
}
.first-header {
margin-top: 0;
padding-top: 20px;
display: flex;
justify-content: space-between;
position: relative;
.returnButton {
font-size: 14px;
color: red;
position: absolute;
right: 0;
top: 0px;
width: 80px;
height: 30px;
line-height: 30px;
text-align: center;
background-color: white;
border-radius: 5px;
margin-right: 20px;
margin-top: 20px;
cursor: pointer;
border: 1px solid red;
}
}
}
</style>
<template>
<div>
<el-form
class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
ref="sreachForm"
:model="searchForm"
label-position="top"
size="small"
>
<el-row class="row-border">
<el-col :span="5">
<Formitem label="提运单号" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
@input="input"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
@input="input"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="回执状态" prop="declaredPort">
<el-select
type="text"
id="inputInner--receiptStatus"
v-model="searchForm.receiptStatus"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.userport"
:key="index"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="创建日期" prop="receiptTime">
<el-date-picker
class="inputInner--accsDataImportTime"
id="inputInner--accsDataImportTime"
v-model="searchForm.accsDataImportTime"
type="daterange"
format="yyyy-MM-dd"
prefix-icon="none"
value-format="yyyyMMdd"
range-separator="至"
start-placeholder=""
clearable
end-placeholder=""
:picker-options="importTimePickerOptions"
@blur="datePickerBlur"
@change="accsDataImportTimeChange"
>
</el-date-picker>
</Formitem>
</el-col>
<el-col :span="2">
<el-form-item class="textCenter">
<el-button
class="entrySreachButton"
type="text"
icon="el-icon-search"
:loading="loadings.searchLoading"
@click="search(0)"
></el-button>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item class="textCenter">
<el-button
icon="el-icon-refresh"
size="small"
:loading="loadings.searchLoading"
@click="search(0)"
>重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="text-align: right; margin: 10px">
<el-button
size="small"
:loading="loadings.downloadLoading2"
@click="downloadBpiData('log')"
>
<svg-icon class="el-icon-user-solid" icon-class="fedexUpBlue"></svg-icon>
导出
</el-button>
</div>
<Table
class="fedexDetialTable fedexSreachTable"
ref="entryTable"
:data="tableData"
:headerData="headerData"
:maxHeight="tableMaxheight"
:border="true"
:pagination="true"
:order="false"
:loading="loadings.sreachLoading"
:page="page.pageIndex"
:pageSizes="[20, 30, 50, 100]"
:totalCount="total"
@sizeChange="sizeChange"
@currentChange="currentChange"
:selection="true"
:selectFixed="false"
@rowClick="handleRowClick"
@tableSelect="tableSelect"
@tableSelectAll="tableSelectAll"
:rowSelectDataType="false"
:selected="selected"
>
<template v-slot:waveName="scope">
<span>{{ `${scope.row.waveName}(${scope.row.waveExt2})` }}</span>
</template>
</Table>
</div>
</template>
<script>
import {getAllExportingBills, getAllTransportBills} from "@/api/query/query";
export default {
name: "index",
data() {
return {
searchForm: {
declaredPort: "",
consStatus: "",
consignmentCode: "",
accsDataImportTime: [],
ownerName: "",
consignmentHeadCode: "",
isPushCustomsSys: "",
waitOperStatus: "",
declTime: [],
},
loadings: {
searchLoading: false,
},
page: {
pageIndex: 1,
pageSize: 20,
},
textareaVisible: {
formItemconsignmentCode: false,
formItemconsignmentHeadCode: false,
},
sizeChange(val) {
this.page.pageSize = val;
this.sreach(1);
},
//分页
currentChange(val) {
this.page.pageIndex = val.page;
this.search(1);
},
tableData: [],
total: 0,
tableMaxheight: null,
headerData: [
{
name: "回执状态",
value: "returnStatus",
width: "150",
align: "left",
},
{
name: "提运单号",
value: "orderNo",
width: '150',
align: 'left'
},
{
name: '电子口岸编号',
value: 'orderType',
width: '150',
align: 'left'
},
{
name: '物流企业名称',
value: 'ebccode',
width: '200',
align: 'left'
},
{
name: '申报地海关',
value: 'ebcname',
width: '200',
align: 'left'
},
{
name: '创建时间',
value: 'createTime',
width: '150',
align: 'left'
},
{
name: '申报企业',
value: 'declaringEnterprise',
width: '200',
align: 'left'
},
{
name: '申报类型',
value: 'declaringType',
width: '100',
align: 'left'
}
],
dictData: {
userport: [
{name: "Shanghai Port", code: "SH"},
{name: "Beijing Port", code: "BJ"},
{name: "Guangzhou Port", code: "GZ"},
{name: "Shenzhen Port", code: "SZ"},
{name: "Tianjin Port", code: "TJ"},
],
},
}
},
created() {
getAllTransportBills({
pageIndex: 1,
pageSize: 20
}).then((res) => {
console.log('res', res)
this.tableData = res.data.value;
this.total = res.data.totalItems;
debugger;
})
},
methods: {
tableSelect(val) {
this.selected = val.selection;
},
tableSelectAll(val) {
this.selected = val;
},
handleRowClick(row) {
const declareId = row.declareId;
this.$router.push({
path: '/listBranchDetail',
query: {
declareId
}
});
},
async search(val) {
try {
} catch (error) {
console.error("搜索出错:", error);
} finally {
// 无论成功还是失败,关闭加载状态
this.loadings.sreachLoading = false;
}
},
}
}
</script>
<style scoped lang="scss">
@import "@/assets/styles/variables.scss";
.entrySreachButton {
display: inline-block;
font-size: 20px;
color: $fedexButton !important;
}
</style>
<template>
<div class="export-bill-detail">
<h5 class="first-header">
离境单详情
<div class="returnButton" @click="$router.back()">返回</div>
</h5>
<el-form
class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
ref="sreachForm"
:model="searchForm"
label-position="top"
disabled
size="small"
>
<el-row class="row-border">
<el-col :span="5">
<Formitem label="提运单号" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="报送类型" prop="factoryCode">
<el-select
type="text"
id="inputInner--declaredPort"
v-model="searchForm.declaredPort"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.userport"
:key="index"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="业务状态" prop="factoryCode">
<el-select
type="text"
id="inputInner--declaredPort"
v-model="searchForm.declaredPort"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.userport"
:key="index"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="报送时间" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="物流企业名称" prop="factoryCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="物流企业代码" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="申报地海关代码" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="运输方式" prop="factoryCode">
<el-select
type="text"
id="inputInner--declaredPort"
v-model="searchForm.declaredPort"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.userport"
:key="index"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="运输工具名称" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<Formitem label="离境时间" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="申报日期" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="备注" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
</el-row>
<el-row>
<el-col :span="4">
<Formitem label="业务状态" prop="factoryCode">
<el-select
type="text"
id="inputInner--declaredPort"
v-model="searchForm.declaredPort"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.userport"
:key="index"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="申报类型" prop="factoryCode">
<el-select
type="text"
id="inputInner--declaredPort"
v-model="searchForm.declaredPort"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.userport"
:key="index"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="申报日期" prop="declareDate">
<el-date-picker
v-model="value1"
type="date"
placeholder="选择日期">
</el-date-picker>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="备注" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
></el-input>
</el-popover>
</Formitem>
</el-col>
</el-row>
</el-form>
<h5>回执信息</h5>
<ReceiptInfoTable />
<h5>商品明细</h5>
<ProductDetailTable />
</div>
</template>
<script>
import ReceiptInfoTable from "@/components/ReceiptInfoTable/index.vue";
import ProductDetailTable from "@/components/ProductDetailTable/index.vue";
export default {
name: "index.vue",
components: {ProductDetailTable, ReceiptInfoTable},
data() {
return {
searchForm: {
declaredPort: "",
consStatus: "",
consignmentCode: "",
accsDataImportTime: [],
ownerName: "",
consignmentHeadCode: "",
isPushCustomsSys: "",
waitOperStatus: "",
declTime: [],
},
textareaVisible: {
formItemconsignmentCode: false,
formItemconsignmentHeadCode: false,
},
dictData: {
userport: [
{name: "Shanghai Port", code: "SH"},
{name: "Beijing Port", code: "BJ"},
{name: "Guangzhou Port", code: "GZ"},
{name: "Shenzhen Port", code: "SZ"},
{name: "Tianjin Port", code: "TJ"},
],
},
}
},
methods: {
textareaBlur(val) {
let inputInner = document.querySelector(
"#inputInner--" + val.target.name.split("-")[0]
);
this.textareaVisible["formItem" + val.target.name.split("-")[0]] = false;
inputInner.style.display = "block";
this.$nextTick(() => {
inputInner.blur();
if (
inputInner.value != undefined &&
inputInner.value != "" &&
inputInner.value != null
) {
inputInner.classList.add("inputFocus");
} else {
inputInner.classList.remove("inputFocus");
}
});
let arr = [];
this.searchForm[val.target.name.split("-")[0]]
.replace(/[\n\,\;\;]/g, ",")
.replace(/[\t]/g, "")
.split(",")
.forEach((str, index) => {
if (str != null && str != "" && index <= 1000) {
arr.push(str.trim());
}
});
this.searchForm[val.target.name.split("-")[0]] = arr.join("\n");
this.$forceUpdate();
},
//文本域展示状态切换
textareaFocus(val) {
this.textareaVisible["formItem" + val.target.name.split("-")[0]] = true;
this.$nextTick(() => {
document
.querySelector("#popoverInput" + val.target.name.split("-")[0])
.focus();
document.querySelector(
"#inputInner--" + val.target.name.split("-")[0]
).style.display = "none";
});
},
}
}
</script>
<style scoped lang="scss">
.export-bill-detail {
background-color: white;
padding-left: 20px;
//border: 1px solid black;
height: 100%;
.fedexFormItem {
background-color: #f5f5f5;
margin-right: 5px;
margin-bottom: 5px;
}
.fedexformSreach {
border-bottom: none;
}
.first-header {
margin-top: 0;
padding-top: 20px;
display: flex;
justify-content: space-between;
position: relative;
.returnButton {
font-size: 14px;
color: red;
position: absolute;
right: 0;
top: 0px;
width: 80px;
height: 30px;
line-height: 30px;
text-align: center;
background-color: white;
border-radius: 5px;
margin-right: 20px;
margin-top: 20px;
cursor: pointer;
border: 1px solid red;
}
}
}
</style>
<template>
<div>
<el-form
class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
ref="sreachForm"
:model="searchForm"
label-position="top"
size="small"
>
<el-row class="row-border">
<el-col :span="5">
<Formitem label="提运单号" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
@input="input"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
@input="input"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="业务状态" prop="declaredPort">
<el-select
type="text"
id="inputInner--receiptStatus"
v-model="searchForm.receiptStatus"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.userport"
:key="index"
:label="item.name"
:value="item.name"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="运单号" prop="consignmentCode">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverconsignmentCode"
v-model="textareaVisible.formItemconsignmentCode"
>
<el-input
name="consignmentCode-textarea"
type="textarea"
:rows="5"
id="popoverInputconsignmentCode"
class="inputShadow textareaPopover"
v-model="searchForm.consignmentCode"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
@input="input"
></el-input>
<el-input
slot="reference"
name="consignmentCode"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--consignmentCode"
v-model="searchForm.consignmentCode"
resize="none"
placeholder=""
@focus="textareaFocus"
@input="input"
></el-input>
</el-popover>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="申报日期" prop="receiptTime">
<el-date-picker
class="inputInner--accsDataImportTime"
id="inputInner--accsDataImportTime"
v-model="searchForm.accsDataImportTime"
type="daterange"
format="yyyy-MM-dd"
prefix-icon="none"
value-format="yyyyMMdd"
range-separator="至"
start-placeholder=""
clearable
end-placeholder=""
:picker-options="importTimePickerOptions"
@blur="datePickerBlur"
@change="accsDataImportTimeChange"
>
</el-date-picker>
</Formitem>
</el-col>
<el-col :span="2">
<el-form-item class="textCenter">
<el-button
class="entrySreachButton"
type="text"
icon="el-icon-search"
:loading="loadings.searchLoading"
@click="search(0)"
></el-button>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item class="textCenter">
<el-button
icon="el-icon-refresh"
size="small"
:loading="loadings.searchLoading"
@click="search(0)"
>重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="text-align: right; margin: 10px">
<el-button
size="small"
:loading="loadings.downloadLoading2"
@click="downloadBpiData('log')"
>
<svg-icon class="el-icon-user-solid" icon-class="fedexUpBlue"></svg-icon>
导出
</el-button>
</div>
<Table
class="fedexDetialTable fedexSreachTable"
ref="entryTable"
:data="tableData"
:headerData="headerData"
:maxHeight="tableMaxheight"
:border="true"
:pagination="true"
:order="false"
:loading="loadings.sreachLoading"
:page="page.pageIndex"
:pageSizes="[20, 30, 50, 100]"
:totalCount="total"
@sizeChange="sizeChange"
@currentChange="currentChange"
:selection="true"
:selectFixed="false"
@rowClick="handleRowClick"
@tableSelect="tableSelect"
@tableSelectAll="tableSelectAll"
:rowSelectDataType="false"
:selected="selected"
>
<template v-slot:waveName="scope">
<span>{{ `${scope.row.waveName}(${scope.row.waveExt2})` }}</span>
</template>
</Table>
</div>
</template>
<script>
import {getAllExportingBills, getAllTransportBills} from "@/api/query/query";
export default {
name: "index",
data() {
return {
searchForm: {
declaredPort: "",
consStatus: "",
consignmentCode: "",
accsDataImportTime: [],
ownerName: "",
consignmentHeadCode: "",
isPushCustomsSys: "",
waitOperStatus: "",
declTime: [],
},
loadings: {
searchLoading: false,
},
page: {
pageIndex: 1,
pageSize: 20,
},
textareaVisible: {
formItemconsignmentCode: false,
formItemconsignmentHeadCode: false,
},
sizeChange(val) {
this.page.pageSize = val;
this.sreach(1);
},
//分页
currentChange(val) {
this.page.pageIndex = val.page;
this.search(1);
},
tableData: [],
total: 0,
tableMaxheight: null,
headerData: [
{
name: "回执状态",
value: "returnStatus",
width: "150",
align: "left",
},
{
name: "提运单号",
value: "orderNo",
width: '150',
align: 'left'
},
{
name: '运单编号',
value: 'orderType',
width: '150',
align: 'left'
},
{
name: '物流企业名称',
value: 'ebccode',
width: '200',
align: 'left'
},
{
name: '运输方式',
value: 'ebcname',
width: '200',
align: 'left'
},
{
name: '运输工具名称',
value: 'createTime',
width: '150',
align: 'left'
},
{
name: '航班航次号',
value: 'declaringEnterprise',
width: '200',
align: 'left'
},
{
name: '离境时间',
value: 'declaringEnterprise',
width: '200',
align: 'left'
},
{
name: '报送类型',
value: 'declaringEnterprise',
width: '200',
align: 'left'
},
{
name: '业务状态',
value: 'declaringType',
width: '100',
align: 'left'
},
{
name: '申报日期',
value: 'declaringType',
width: '100',
align: 'left'
}
],
dictData: {
userport: [
{name: "Shanghai Port", code: "SH"},
{name: "Beijing Port", code: "BJ"},
{name: "Guangzhou Port", code: "GZ"},
{name: "Shenzhen Port", code: "SZ"},
{name: "Tianjin Port", code: "TJ"},
],
},
}
},
created() {
getAllTransportBills({
pageIndex: 1,
pageSize: 20
}).then((res) => {
console.log('res', res)
this.tableData = res.data.value;
this.total = res.data.totalItems;
debugger;
})
},
methods: {
tableSelect(val) {
this.selected = val.selection;
},
tableSelectAll(val) {
this.selected = val;
},
handleRowClick(row) {
const declareId = row.declareId;
this.$router.push({
path: '/logisticsExitDetail',
query: {
declareId
}
});
},
async search(val) {
try {
} catch (error) {
console.error("搜索出错:", error);
} finally {
// 无论成功还是失败,关闭加载状态
this.loadings.sreachLoading = false;
}
},
}
}
</script>
<style scoped lang="scss">
@import "@/assets/styles/variables.scss";
.entrySreachButton {
display: inline-block;
font-size: 20px;
color: $fedexButton !important;
}
</style>