jinhui.wang

删除无用文件,撤销单、离境单、总分单页面增加

......@@ -47,3 +47,53 @@ export function declareDataUpload(data) {
})
}
//查询订单回执
/**
* @param declareId * id
*/
export function getOrderReceipt(data) {
return request({
url: '/bus-customer/declareData/orderReceipt',
method: 'get',
params: data,
})
}
//查询物流单回执
/**
* @param declareId * id
*/
export function getLogisticsReceipt(data) {
return request({
url: '/bus-customer/declareData/logisticsReceipt',
method: 'get',
params: data,
})
}
//查询清单回执
/**
* @param declareId * id
*/
export function getListReceipt(data) {
return request({
url: '/bus-customer/declareData/logisticsReceipt',
method: 'get',
params: data,
})
}
//查询清单总分单回执
/**
* @param declareId * id
*/
export function getTotalReceipt(data) {
return request({
url: '/bus-customer/declareData/totalReceipt',
method: 'get',
params: data,
})
}
......
......@@ -7,7 +7,7 @@ import request from '@/utils/request'
* @param returnStatus 回执状态
* @param createTimeStart 创建开始时间
* @param createTimeEnd 创建结束时间
* @param pageNum *
* @param pageIndex *
* @param pageSize *
*/
export function getAllExportingBills(data) {
......@@ -25,7 +25,7 @@ export function getAllExportingBills(data) {
* @param returnStatus 回执状态
* @param createTimeStart 创建开始时间
* @param createTimeEnd 创建结束时间
* @param pageNum *
* @param pageIndex *
* @param pageSize *
*/
export function getAllExportingTransportBills(data) {
......
import request from '@/utils/request'
//清单总分单查询
/**
* @param billNo 提运单号
* @param createTimeEnd 创建结束时间
* @param createTimeStart 创建开始时间
* @param returnStatus 回执状态
* @param pageIndex *
* @param pageSize *
*/
export function getAllCancellation(data) {
return request({
url: '/bus-customer/exportCancellation/search',
method: 'post',
data: data,
})
}
\ No newline at end of file
import request from '@/utils/request'
//清单总分单查询
/**
* @param billNo 提运单号
* @param createTimeEnd 创建结束时间
* @param createTimeStart 创建开始时间
* @param returnStatus 回执状态
* @param pageIndex *
* @param pageSize *
*/
export function getAllTotalScoreList(data) {
return request({
url: '/bus-customer/exportTotalScore/search',
method: 'post',
data: data,
})
}
\ No newline at end of file
import request from '@/utils/request'
//物流离境单查询
/**
* @param billNo 提运单号
* @param createTimeEnd 创建结束时间
* @param createTimeStart 创建开始时间
* @param 运单号
* @param returnStatus 回执状态
* @param pageIndex *
* @param pageSize *
*/
export function getAllLogisticsDepartureList(data) {
return request({
url: '/bus-customer/exportLogisticsDeparture/search',
method: 'post',
data: data,
})
}
\ No newline at end of file
......@@ -7,10 +7,47 @@ import request from '@/utils/request'
* @param pageNum *
* @param pageSize *
*/
export function getPortList(data) {
export function getPortConfigList(data) {
return request({
url: '/bus-customer/portInfo/getPortList',
method: 'post',
data: data
})
}
// 获取用户详细信息
/**
* @param declarationPortCode * 申报地海关代码
* @param declarationUnit10 * 申报单位 (10位海关代码)
* @param declarationUnit10Inspection * 申报单位 (10位检验检疫编码)
* @param declarationUnit18 * 申报单位 (18位社会信用代码)
* @param declarationUnitCompanyName * 申报单位 (企业名称)
* @param portCode * 口岸代码
* @param dxpid DXPID
*/
export function addPortData(data) {
return request({
url: '/bus-customer/portInfo/addPort',
method: 'post',
data: data
})
}
// 获取用户详细信息
/**
* @param id * id
* @param declarationPortCode * 申报地海关代码
* @param declarationUnit10 * 申报单位 (10位海关代码)
* @param declarationUnit10Inspection * 申报单位 (10位检验检疫编码)
* @param declarationUnit18 * 申报单位 (18位社会信用代码)
* @param declarationUnitCompanyName * 申报单位 (企业名称)
* @param portCode * 口岸代码
* @param dxpid DXPID
*/
export function updatePortData(data) {
return request({
url: '/bus-customer/portInfo/updatePort',
method: 'put',
data: data
})
}
\ No newline at end of file
......
<template>
<el-popover
:popper-class="`popper${dataKey}${rowData.declareId} portLogPopper`"
:popper-class="`popper${dataKey}${rowData[idKey]} portLogPopper`"
placement="left"
:visible-arrow="false"
title=""
......@@ -15,11 +15,11 @@
@click.stop="popoverClose"
></i>
</div>
<div v-loading="rowData.popoverLoading">
<div v-loading="tableLoading">
<slot name="title"></slot>
<Table
class="fedexDetialTable mt20"
:data="rowData[`${dataKey}PopoverData`]"
:data="rowData.popoverData"
:headerData="receiptDataHead"
:selection="false"
:selectFixed="false"
......@@ -30,6 +30,7 @@
:page="1"
:pageSizes="[20, 30, 50, 100]"
:totalCount="0"
:loading="tableLoading"
:emptyText="$t('portEntry.emptyText')"
height="350px"
maxHeight="500px"
......@@ -54,6 +55,10 @@ export default {
type: String,
default: "",
},
idKey: {
type: String,
default: "id",
},
rowData: {
tpye: Object,
default: null,
......@@ -76,7 +81,9 @@ export default {
},
},
data() {
return {};
return {
tableLoading: false,
};
},
methods: {
//弹框关闭
......@@ -89,8 +96,8 @@ export default {
this.popoverClose();
let arr = JSON.parse(JSON.stringify(this.tableData));
arr.forEach((item) => {
item[`${type}PopoverData`] = [];
if (data.declareId != item.declareId) {
item.popoverData = [];
if (data[idKey] != item[idKey]) {
// item[`${type}PopoverLoading`] = false;
item[`${type}PopoverType`] = false;
} else {
......@@ -124,13 +131,13 @@ export default {
});
let interval = setInterval(() => {
if (
document.getElementsByClassName(`popper${type}${data.declareId}`)
document.getElementsByClassName(`popper${type}${data[idKey]}`)
.length == 1
) {
clearInterval(interval);
}
document
.getElementsByClassName(`popper${type}${data.declareId}`)
.getElementsByClassName(`popper${type}${data[idKey]}`)
.forEach((dom, index) => {
if (index > 0) {
dom.style.display = "none";
......
......@@ -99,6 +99,7 @@ export const constantRoutes = [
path: '/exportBillQuery',
component: (resolve) => require(['@/views/exportBillQuery/index'], resolve),
hidden: false,
name: 'ExportBillQuery',
meta: { title: '出口订单查询', icon: '' },
},
{
......@@ -119,51 +120,54 @@ export const constantRoutes = [
path: '/exportListDetail',
component: (resolve) => require(['@/views/exportListDetail/index'], resolve),
hidden: true,
name: 'ExportListDetail',
meta: { title: '出口清单详情', icon: '' },
},
{
path: '/exportTransportBillQuery',
component: (resolve) => require(['@/views/exportTransportBillQuery/index'], resolve),
hidden: false,
name: 'ExportTransportBillQuery',
meta: { title: '出口运单查询', icon: '' },
},
{
path: '/exportListQuery',
component: (resolve) => require(['@/views/exportListQuery/index'], resolve),
name: '首页',
name: 'ExportListQuery',
meta: { title: '出口清单查询', icon: '' }
},
{
path: '/listBranchQuery',
component: (resolve) => require(['@/views/listBranchQuery/index'], resolve),
name: '首页',
name: 'ListBranchQuery',
hidden: false,
meta: { title: '清单总分单查询', icon: '' }
},
{
path: '/listBranchDetail',
component: (resolve) => require(['@/views/listBranchDetail/index'], resolve),
name: '首页',
name: 'ListBranchDetail',
hidden: true,
meta: { title: '清单总分单详情', icon: '' }
},
{
path: '/logisticsExitDetail',
component: (resolve) => require(['@/views/logisticsExitDetail/index'], resolve),
name: '首页',
name: 'LogisticsExitDetail',
hidden: true,
meta: { title: '物流离境单详情', icon: '' }
},
{
path: '/logisticsExitQuery',
component: (resolve) => require(['@/views/logisticsExitQuery/index'], resolve),
name: '首页',
name: 'LogisticsExitQuery',
meta: { title: '物流离境单查询', icon: '' }
},
{
path: 'index',
component: (resolve) => require(['@/views/index'], resolve),
name: '首页',
path: 'exportRevokeBillQuery',
component: (resolve) => require(['@/views/exportRevokeBillQuery/index'], resolve),
name: 'ExportRevokeBillQuery',
meta: { title: '出口撤销单查询', icon: '' }
}
]
......@@ -178,12 +182,14 @@ export const constantRoutes = [
path: '/summary',
component: (resolve) => require(['@/views/reportingData/index'], resolve),
hidden: false,
name: 'Summary',
meta: { title: '汇总申报', icon: '' }
},
{
path: '/summaryDataSearch',
component: (resolve) => require(['@/views/reportingData/index'], resolve),
hidden: false,
name: 'SummaryDataSearch',
meta: { title: '汇总申请单查询', icon: '' }
}
]
......
......@@ -118,7 +118,6 @@ export default {
cipherMachineNumber: "",
ipAddress: "",
},
customData: [],
rules: {
ipAddress: [
{
......
......@@ -71,7 +71,7 @@
:order="true"
noLabel="序号"
:loading="loadings.searchLoading"
:page="page.pageNum"
:page="page.pageIndex"
:pageSizes="[20, 30, 50, 100]"
:totalCount="page.total"
@sizeChange="sizeChange"
......@@ -113,7 +113,7 @@ export default {
creationTime: [],
},
page: {
pageNum: 1,
pageIndex: 1,
pageSize: 20,
total: 0,
},
......@@ -183,10 +183,10 @@ export default {
search(val) {
this.loadings.searchLoading = true;
if (val == 0) {
this.page.pageNum = 1;
this.page.pageIndex = 1;
}
let obj = this.sreachFormData;
obj.pageNum = this.page.pageNum;
obj.pageIndex = this.page.pageIndex;
obj.pageSize = this.page.pageSize;
obj.endCreationTime = "";
obj.startCreationTime = "";
......@@ -230,7 +230,7 @@ export default {
},
//分页
currentChange(val) {
this.page.pageNum = val.page;
this.page.pageIndex = val.page;
this.search(1);
},
sizeChange(val) {
......
......@@ -117,12 +117,14 @@
:totalCount="page.total"
@sizeChange="sizeChange"
@currentChange="currentChange"
@cellClick="cellClick"
:selection="false"
:selectFixed="false"
:rowSelectDataType="false"
>
<template v-slot:returnStatus="scope">
<TablePopover
ref="returnStatusPopover"
dataKey="returnStatus"
:parentDom="$refs.entryTable"
:receiptDataHead="receiptDataHead"
......@@ -229,19 +231,19 @@ export default {
receiptDataHead: [
{
name: "回执状态",
value: "",
value: "receiptStatus",
width: "",
align: "left",
},
{
name: "状态时间",
value: "",
value: "statusTime",
width: "",
align: "left",
},
{
name: "回执描述",
value: "",
value: "receiptDescription",
width: "",
align: "left",
},
......@@ -266,6 +268,11 @@ export default {
mounted() {
this.tableMaxheight = window.innerHeight - 300;
},
watch: {
$route() {
this.popoverClose();
},
},
methods: {
//查询
search(val) {
......@@ -289,9 +296,8 @@ export default {
this.page.total = res.data.totalItems;
this.tableData.forEach((item, idx) => {
item.index = idx;
item.popoverLoading = false;
item.returnStatusPopoverType = false;
item.returnStatusPopoverData = [];
item.popoverData = [];
});
} else {
this.alertWarningMsg(res.message);
......@@ -322,14 +328,34 @@ export default {
});
},
popoverChange(val) {
console.log(val);
this.tableData = val.tableData;
console.log(this.tableData);
this.receiptApi(val.data.declareId, val.status)
.then((res) => {
val.tableData.forEach((item) => {
if (item.declareId == val.data.declareId) {
item.popoverData = res;
}
});
this.tableData = val.tableData;
})
.finally(() => {
this.$nextTick(() => {
this.$refs.returnStatusPopover.tableLoading = false;
});
});
},
//查询回执
receiptApi(id, type) {
return new Promise((resolve, reject) => {
let obj = { declareId: id };
resolve();
});
},
popoverClose(val) {
this.tableData.forEach((item) => {
item.popoverLoading = false;
item.returnStatusPopoverType = false;
item.returnStatusPopoverData = [];
item.popoverData = [];
});
this.$refs.entryTable.$refs.tables.$refs.bodyWrapper.style.overflowY =
"auto";
......@@ -346,6 +372,9 @@ export default {
this.page.pageSize = val;
this.search(1);
},
cellClick() {
this.popoverClose();
},
dateChange(val) {
if (val == "" || val == null) {
this.$nextTick(() => {
......
<template>
<div class="entrySreach">
<el-form
class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
ref="sreachForm"
:model="sreachFormData"
label-position="top"
size="small"
>
<el-row class="row-border">
<!-- 提运单号 -->
<el-col :span="5">
<Formitem label="提运单号" prop="billNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--billNo"
resize="none"
v-model="sreachFormData.billNo"
clearable
placeholder=""
></el-input>
<!-- <FormTextareaInput
:formData="sreachFormData"
dataKey="billNo"
@formChange="formChange"
/> -->
</Formitem>
</el-col>
<!-- 回执状态 -->
<el-col :span="5">
<Formitem label="回执状态" prop="returnStatus">
<el-select
type="text"
id="inputInner--returnStatus"
v-model="sreachFormData.returnStatus"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.returnStatus"
:key="index"
:label="item.name"
:value="item.code"
></el-option>
</el-select>
</Formitem>
</el-col>
<!-- 创建时间 -->
<el-col :span="5">
<Formitem label="创建时间" prop="createTime" :activeType="true">
<el-date-picker
class="inputInner--createTime"
id="inputInner--createTime"
v-model="sreachFormData.createTime"
type="daterange"
format="yyyy-MM-dd"
prefix-icon="none"
value-format="yyyy-MM-dd"
range-separator="至"
@change="dateChange"
/>
</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="2">
<el-form-item class="textCenter">
<el-button
type="text"
size="small"
icon="el-icon-refresh"
@click="clear"
>
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="optionButton">
<el-button
class="entrySaveButton"
size="small"
icon="el-icon-download"
@click="downloadData"
>
导出
</el-button>
</div>
<Table
class="fedexDetialTable fedexSreachTable"
ref="entryTable"
:data="tableData"
:headerData="headerData"
:maxHeight="tableMaxheight"
:border="true"
:pagination="true"
:order="false"
:loading="loadings.searchLoading"
:page="page.pageIndex"
:pageSizes="[20, 30, 50, 100]"
:totalCount="page.total"
@sizeChange="sizeChange"
@currentChange="currentChange"
:selection="false"
:selectFixed="false"
:rowSelectDataType="false"
>
</Table>
</div>
</template>
<script>
import { getAllCancellation } from "@/api/exportRevokeBill-api.js";
export default {
name: "ListBranchQuery",
data() {
return {
sreachFormData: {
billNo: "",
returnStatus: "",
createTime: [],
},
page: {
pageIndex: 1,
pageSize: 20,
total: 0,
},
tableData: [],
headerData: [
{
name: "回执状态",
value: "returnStatus",
width: "",
align: "left",
},
{
name: "提运单号",
value: "billNo",
width: "",
align: "left",
},
{
name: "清单编号",
value: "invtNo",
width: "",
align: "left",
},
{
name: "发货人名称",
value: "ebcname",
width: "",
align: "left",
},
{
name: "撤单原因",
value: "reason",
width: "",
align: "left",
},
{
name: "创建时间",
value: "createTime",
width: "",
align: "left",
},
{
name: "申报企业",
value: "agentName",
width: "",
align: "left",
},
{
name: "申报类型",
value: "appType",
width: "",
align: "left",
},
],
receiptDataHead: [
{
name: "回执状态",
value: "receiptStatus",
width: "",
align: "left",
},
{
name: "状态时间",
value: "statusTime",
width: "",
align: "left",
},
{
name: "回执描述",
value: "receiptDescription",
width: "",
align: "left",
},
],
// dictData: {
// ebccode: [],
// returnStatus: [],
// },
loadings: {
searchLoading: false,
},
textareaVisible: {
formItemconsignmentCode: false,
formItemconsignmentHeadCode: false,
},
tableMaxheight: null,
};
},
created() {
this.search(0);
},
mounted() {
this.tableMaxheight = window.innerHeight - 300;
},
methods: {
//查询详情
view(val) {
this.$router.push({
name: "ExportTransportDetail",
params: { data: val },
});
},
//查询
search(val) {
this.loadings.searchLoading = true;
if (val == 0) {
this.page.pageIndex = 1;
}
let obj = this.sreachFormData;
obj.pageIndex = this.page.pageIndex;
obj.pageSize = this.page.pageSize;
obj.createTimeStart = "";
obj.createTimeEnd = "";
if (obj.createTime.length > 0) {
obj.createTimeStart = obj.createTime[0];
obj.createTimeEnd = obj.createTime[1];
}
// if (obj.billNo != null && obj.billNo != "") {
// obj.billNo = obj.billNo.split("\n");
// } else {
// obj.billNo = [];
// }
getAllCancellation(obj)
.then((res) => {
if (res.code === "200") {
this.tableData = res.data.value;
this.page.total = res.data.totalItems;
this.tableData.forEach((item, idx) => {
item.index = idx;
item.returnStatusPopoverType = false;
item.popoverData = [];
});
} else {
this.alertWarningMsg(res.message);
}
this.loadings.searchLoading = false;
})
.catch((err) => {
console.log(err);
this.loadings.searchLoading = false;
});
},
//重置
clear() {
this.sreachFormData = {
orderNo: "",
ebccode: "",
returnStatus: "",
createTime: [],
};
},
//导出
downloadData() {},
popoverChange(val) {
console.log(val);
this.tableData = val.tableData;
this.receiptApi(val.data.declareId, val.status)
.then((res) => {
val.tableData.forEach((item) => {
if (item.declareId == val.data.declareId) {
item.popoverData = res;
}
});
this.tableData = val.tableData;
})
.finally(() => {
this.$nextTick(() => {
this.$refs.returnStatusPopover.tableLoading = false;
});
});
},
//查询回执
receiptApi(id, type) {
return new Promise((resolve, reject) => {
let obj = { declareId: id };
resolve();
});
},
popoverClose(val) {
this.tableData.forEach((item) => {
item.returnStatusPopoverType = false;
item.popoverData = [];
});
this.$refs.entryTable.$refs.tables.$refs.bodyWrapper.style.overflowY =
"auto";
},
//分页
currentChange(val) {
this.page.pageNum = val.page;
this.search(1);
},
sizeChange(val) {
this.page.pageSize = val;
this.search(1);
},
dateChange(val) {
if (val == "" || val == null) {
this.$nextTick(() => {
this.sreachFormData.createTime = [];
});
}
},
formChange(val) {
this.sreachFormData = val;
},
input() {
this.$forceUpdate();
},
},
};
</script>
<style scoped lang="scss">
@import "@/assets/styles/variables.scss";
.entrySreach {
height: 100%;
background-color: $menuLightBg;
.entrySreachButton {
display: inline-block;
font-size: 20px;
color: $fedexButton !important;
}
.optionButton {
padding: 10px;
text-align: right;
.el-button {
color: $fedexButton;
border-color: $fedexButton !important;
svg {
display: inline-block;
margin-right: 5px;
fill: $fedexButton;
}
}
.entrySaveButton:hover,
.entrySaveButton:focus {
color: $menuLightBg !important;
background-color: $fedexButton !important;
}
}
}
.texttareaTip {
position: absolute;
top: 52%;
right: 20px;
transform: translate(0, -50%);
z-index: 10;
}
</style>
......@@ -11,61 +11,26 @@
<!-- 运单编号 -->
<el-col :span="5">
<Formitem label="运单编号" prop="logisticsNo">
<el-popover
placement="bottom"
width="320"
trigger="manual"
popper-class="popoverlogisticsNo"
v-model="textareaVisible.formItemlogisticsNo"
>
<el-input
name="logisticsNo-textarea"
type="textarea"
:rows="5"
id="popoverInputlogisticsNo"
class="inputShadow textareaPopover"
v-model="sreachFormData.logisticsNo"
resize="none"
maxlength="13000"
placeholder=""
@blur="textareaBlur"
@input="input"
></el-input>
<el-input
slot="reference"
name="logisticsNo"
type="textarea"
:rows="1"
class="inputShadow"
id="inputInner--logisticsNo"
v-model="sreachFormData.logisticsNo"
resize="none"
placeholder=""
@focus="textareaFocus"
@input="input"
></el-input>
</el-popover>
<el-badge
v-if="
!textareaVisible.formItemlogisticsNo &&
textareaLength({
key: 'logisticsNo',
value: sreachFormData.logisticsNo,
}) > 1
"
type="info"
:value="`+${textareaLength({
key: 'logisticsNo',
value: sreachFormData.logisticsNo,
})}`"
class="item texttareaTip"
<FormTextareaInput
:formData="sreachFormData"
dataKey="logisticsNo"
@formChange="formChange"
/>
</Formitem>
</el-col>
<!-- 物流企业代码 -->
<el-col :span="5">
<Formitem label="物流企业代码" prop="logisticsCode">
<el-select
<el-input
type="text"
class="inputShadow"
id="inputInner--logisticsCode"
resize="none"
v-model="sreachFormData.logisticsCode"
clearable
placeholder=""
></el-input>
<!-- <el-select
type="text"
id="inputInner--logisticsCode"
v-model="sreachFormData.logisticsCode"
......@@ -78,7 +43,7 @@
:label="item.name"
:value="item.code"
></el-option>
</el-select>
</el-select> -->
</Formitem>
</el-col>
<!-- 回执状态 -->
......@@ -171,7 +136,24 @@
:rowSelectDataType="false"
>
<template v-slot:returnStatus="scope">
<span>{{ scope.row.returnStatus }}</span>
<TablePopover
ref="returnStatusPopover"
dataKey="returnStatus"
:parentDom="$refs.entryTable"
:receiptDataHead="receiptDataHead"
:rowData="scope.row"
:tableData="tableData"
@popoverChange="popoverChange"
@popoverClose="popoverClose"
>
<div slot="title">
<span style="font-weight: 700; color: #515a6e">运单编号:</span
>{{ scope.row.logisticsNo }}
</div>
<div slot="buttonLabel">
{{ scope.row.returnStatus }}
</div>
</TablePopover>
</template>
<template v-slot:logisticsNo="scope">
<el-button type="text" @click="view(scope.row)">{{
......@@ -253,10 +235,30 @@ export default {
align: "left",
},
],
dictData: {
ebccode: [],
returnStatus: [],
},
receiptDataHead: [
{
name: "回执状态",
value: "receiptStatus",
width: "",
align: "left",
},
{
name: "状态时间",
value: "statusTime",
width: "",
align: "left",
},
{
name: "回执描述",
value: "receiptDescription",
width: "",
align: "left",
},
],
// dictData: {
// ebccode: [],
// returnStatus: [],
// },
loadings: {
searchLoading: false,
},
......@@ -308,9 +310,8 @@ export default {
this.page.total = res.data.totalItems;
this.tableData.forEach((item, idx) => {
item.index = idx;
item.popoverLoading = false;
item.returnStatusPopoverType = false;
item.returnStatusPopoverData = false;
item.popoverData = [];
});
} else {
this.alertWarningMsg(res.message);
......@@ -333,66 +334,38 @@ export default {
},
//导出
downloadData() {},
//文本域展示状态切换
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";
});
popoverChange(val) {
console.log(val);
this.tableData = val.tableData;
this.receiptApi(val.data.declareId, val.status)
.then((res) => {
val.tableData.forEach((item) => {
if (item.declareId == val.data.declareId) {
item.popoverData = res;
}
});
this.tableData = val.tableData;
})
.finally(() => {
this.$nextTick(() => {
this.$refs.returnStatusPopover.tableLoading = false;
});
});
},
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");
}
//查询回执
receiptApi(id, type) {
return new Promise((resolve, reject) => {
let obj = { declareId: id };
resolve();
});
let arr = [];
this.sreachFormData[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.sreachFormData[val.target.name.split("-")[0]] = arr.join("\n");
this.$forceUpdate();
},
//文本域输入内容数量处理
textareaLength(val) {
if (val.value != "" && val.value != null) {
let arr = [];
val.value
.trim()
.replace(/[\n\,\;\;]/g, ",")
.split(",")
.forEach((item) => {
if (item != "" && item != null) {
arr.push(item);
}
});
return arr.length;
} else {
return 0;
}
popoverClose(val) {
this.tableData.forEach((item) => {
item.returnStatusPopoverType = false;
item.popoverData = [];
});
this.$refs.entryTable.$refs.tables.$refs.bodyWrapper.style.overflowY =
"auto";
},
//分页
currentChange(val) {
......@@ -410,6 +383,9 @@ export default {
});
}
},
formChange(val) {
this.sreachFormData = val;
},
input() {
this.$forceUpdate();
},
......
<template>
<div>
<div class="entrySreach">
<el-form
class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
ref="sreachForm"
:model="searchForm"
:model="sreachFormData"
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 label="提运单号" prop="billNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--billNo"
resize="none"
v-model="sreachFormData.billNo"
clearable
placeholder=""
></el-input>
<!-- <FormTextareaInput
:formData="sreachFormData"
dataKey="billNo"
@formChange="formChange"
/> -->
</Formitem>
</el-col>
<!-- 回执状态 -->
<el-col :span="5">
<Formitem label="回执状态" prop="declaredPort">
<Formitem label="回执状态" prop="returnStatus">
<el-select
type="text"
id="inputInner--receiptStatus"
v-model="searchForm.receiptStatus"
id="inputInner--returnStatus"
v-model="sreachFormData.returnStatus"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.userport"
v-for="(item, index) in dictData.returnStatus"
:key="index"
:label="item.name"
:value="item.name"
:value="item.code"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="创建日期" prop="receiptTime">
<!-- 创建时间 -->
<el-col :span="5">
<Formitem label="创建时间" prop="createTime" :activeType="true">
<el-date-picker
class="inputInner--accsDataImportTime"
id="inputInner--accsDataImportTime"
v-model="searchForm.accsDataImportTime"
class="inputInner--createTime"
id="inputInner--createTime"
v-model="sreachFormData.createTime"
type="daterange"
format="yyyy-MM-dd"
prefix-icon="none"
value-format="yyyyMMdd"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder=""
clearable
end-placeholder=""
:picker-options="importTimePickerOptions"
@blur="datePickerBlur"
@change="accsDataImportTimeChange"
>
</el-date-picker>
@change="dateChange"
/>
</Formitem>
</el-col>
<el-col :span="2">
<el-form-item class="textCenter">
<el-button
......@@ -97,32 +73,30 @@
></el-button>
</el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="2">
<el-form-item class="textCenter">
<el-button
icon="el-icon-refresh"
type="text"
size="small"
:loading="loadings.searchLoading"
@click="search(0)"
>重置
icon="el-icon-refresh"
@click="clear"
>
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="text-align: right; margin: 10px">
<div class="optionButton">
<el-button
class="entrySaveButton"
size="small"
:loading="loadings.downloadLoading2"
@click="downloadBpiData('log')"
icon="el-icon-download"
@click="downloadData"
>
<svg-icon class="el-icon-user-solid" icon-class="fedexUpBlue"></svg-icon>
导出
</el-button>
</div>
<Table
class="fedexDetialTable fedexSreachTable"
ref="entryTable"
......@@ -132,176 +106,313 @@
:border="true"
:pagination="true"
:order="false"
:loading="loadings.sreachLoading"
:loading="loadings.searchLoading"
:page="page.pageIndex"
:pageSizes="[20, 30, 50, 100]"
:totalCount="total"
:totalCount="page.total"
@sizeChange="sizeChange"
@currentChange="currentChange"
:selection="true"
:selection="false"
: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 v-slot:returnStatus="scope">
<TablePopover
ref="returnStatusPopover"
dataKey="returnStatus"
:parentDom="$refs.entryTable"
:receiptDataHead="receiptDataHead"
:rowData="scope.row"
:tableData="tableData"
@popoverChange="popoverChange"
@popoverClose="popoverClose"
>
<div slot="title">
<span style="font-weight: 700; color: #515a6e">运单编号:</span
>{{ scope.row.logisticsNo }}
</div>
<div slot="buttonLabel">
{{ scope.row.returnStatus }}
</div>
</TablePopover>
</template>
<template v-slot:billNo="scope">
<el-button type="text" @click="view(scope.row)">{{
scope.row.billNo
}}</el-button>
</template>
</Table>
</div>
</template>
<script>
// import {getAllExportingBills, getAllTransportBills} from "@/api/query/query";
import { getAllTotalScoreList } from "@/api/listBranch-api.js";
export default {
name: "index",
name: "ListBranchQuery",
data() {
return {
searchForm: {
declaredPort: "",
consStatus: "",
consignmentCode: "",
accsDataImportTime: [],
ownerName: "",
consignmentHeadCode: "",
isPushCustomsSys: "",
waitOperStatus: "",
declTime: [],
},
loadings: {
searchLoading: false,
sreachFormData: {
billNo: "",
returnStatus: "",
createTime: [],
},
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);
total: 0,
},
tableData: [],
total: 0,
tableMaxheight: null,
headerData: [
{
name: "回执状态",
value: "returnStatus",
width: "150",
width: "",
align: "left",
slot: true,
},
{
name: "提运单号",
value: "orderNo",
width: '150',
align: 'left'
value: "billNo",
width: "",
align: "left",
slot: true,
},
{
name: '电子口岸编号',
value: 'orderType',
width: '150',
align: 'left'
name: "电子口岸编号",
value: "preNo",
width: "",
align: "left",
},
{
name: '物流企业名称',
value: 'ebccode',
width: '200',
align: 'left'
name: "物流企业名称",
value: "logisticsName",
width: "",
align: "left",
},
{
name: '申报地海关',
value: 'ebcname',
width: '200',
align: 'left'
name: "申报地海关",
value: "customsCode",
width: "",
align: "left",
},
{
name: '创建时间',
value: 'createTime',
width: '150',
align: 'left'
name: "创建时间",
value: "createTime",
width: "",
align: "left",
},
{
name: '申报企业',
value: 'declaringEnterprise',
width: '200',
align: 'left'
name: "申报企业",
value: "agentName",
width: "",
align: "left",
},
{
name: '申报类型',
value: 'declaringType',
width: '100',
align: 'left'
}
name: "申报类型",
value: "appType",
width: "",
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"},
],
receiptDataHead: [
{
name: "回执状态",
value: "receiptStatus",
width: "",
align: "left",
},
{
name: "状态时间",
value: "statusTime",
width: "",
align: "left",
},
{
name: "回执描述",
value: "receiptDescription",
width: "",
align: "left",
},
],
// dictData: {
// ebccode: [],
// returnStatus: [],
// },
loadings: {
searchLoading: false,
},
}
textareaVisible: {
formItemconsignmentCode: false,
formItemconsignmentHeadCode: false,
},
tableMaxheight: null,
};
},
created() {
// getAllTransportBills({
// pageIndex: 1,
// pageSize: 20
// }).then((res) => {
// console.log('res', res)
// this.tableData = res.data.value;
// this.total = res.data.totalItems;
// debugger;
// })
this.search(0);
},
mounted() {
this.tableMaxheight = window.innerHeight - 300;
},
methods: {
tableSelect(val) {
this.selected = val.selection;
//查询详情
view(val) {
this.$router.push({
name: "ExportTransportDetail",
params: { data: val },
});
},
tableSelectAll(val) {
this.selected = val;
//查询
search(val) {
this.loadings.searchLoading = true;
if (val == 0) {
this.page.pageIndex = 1;
}
let obj = this.sreachFormData;
obj.pageIndex = this.page.pageIndex;
obj.pageSize = this.page.pageSize;
obj.createTimeStart = "";
obj.createTimeEnd = "";
if (obj.createTime.length > 0) {
obj.createTimeStart = obj.createTime[0];
obj.createTimeEnd = obj.createTime[1];
}
// if (obj.billNo != null && obj.billNo != "") {
// obj.billNo = obj.billNo.split("\n");
// } else {
// obj.billNo = [];
// }
getAllTotalScoreList(obj)
.then((res) => {
if (res.code === "200") {
this.tableData = res.data.value;
this.page.total = res.data.totalItems;
this.tableData.forEach((item, idx) => {
item.index = idx;
item.returnStatusPopoverType = false;
item.popoverData = [];
});
} else {
this.alertWarningMsg(res.message);
}
this.loadings.searchLoading = false;
})
.catch((err) => {
console.log(err);
this.loadings.searchLoading = false;
});
},
handleRowClick(row) {
const declareId = row.declareId;
this.$router.push({
path: '/listBranchDetail',
query: {
declareId
}
//重置
clear() {
this.sreachFormData = {
orderNo: "",
ebccode: "",
returnStatus: "",
createTime: [],
};
},
//导出
downloadData() {},
popoverChange(val) {
console.log(val);
this.tableData = val.tableData;
this.receiptApi(val.data.declareId, val.status)
.then((res) => {
val.tableData.forEach((item) => {
if (item.declareId == val.data.declareId) {
item.popoverData = res;
}
});
this.tableData = val.tableData;
})
.finally(() => {
this.$nextTick(() => {
this.$refs.returnStatusPopover.tableLoading = false;
});
});
},
//查询回执
receiptApi(id, type) {
return new Promise((resolve, reject) => {
let obj = { declareId: id };
resolve();
});
},
async search(val) {
try {
} catch (error) {
console.error("搜索出错:", error);
} finally {
// 无论成功还是失败,关闭加载状态
this.loadings.sreachLoading = false;
popoverClose(val) {
this.tableData.forEach((item) => {
item.returnStatusPopoverType = false;
item.popoverData = [];
});
this.$refs.entryTable.$refs.tables.$refs.bodyWrapper.style.overflowY =
"auto";
},
//分页
currentChange(val) {
this.page.pageNum = val.page;
this.search(1);
},
sizeChange(val) {
this.page.pageSize = val;
this.search(1);
},
dateChange(val) {
if (val == "" || val == null) {
this.$nextTick(() => {
this.sreachFormData.createTime = [];
});
}
},
}
}
formChange(val) {
this.sreachFormData = val;
},
input() {
this.$forceUpdate();
},
},
};
</script>
<style scoped lang="scss">
@import "@/assets/styles/variables.scss";
.entrySreach {
height: 100%;
background-color: $menuLightBg;
.entrySreachButton {
display: inline-block;
font-size: 20px;
color: $fedexButton !important;
}
.optionButton {
padding: 10px;
text-align: right;
.el-button {
color: $fedexButton;
border-color: $fedexButton !important;
svg {
display: inline-block;
margin-right: 5px;
fill: $fedexButton;
}
}
.entrySaveButton:hover,
.entrySaveButton:focus {
color: $menuLightBg !important;
background-color: $fedexButton !important;
}
}
}
.entrySreachButton {
display: inline-block;
font-size: 20px;
color: $fedexButton !important;
.texttareaTip {
position: absolute;
top: 52%;
right: 20px;
transform: translate(0, -50%);
z-index: 10;
}
</style>
......
<template>
<div>
<div class="entrySreach">
<el-form
class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
ref="sreachForm"
:model="searchForm"
:model="sreachFormData"
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 label="提运单号" prop="billNo">
<el-input
type="text"
class="inputShadow"
id="inputInner--billNo"
resize="none"
v-model="sreachFormData.billNo"
clearable
placeholder=""
></el-input>
<!-- <FormTextareaInput
:formData="sreachFormData"
dataKey="billNo"
@formChange="formChange"
/> -->
</Formitem>
</el-col>
<!-- 业务状态 -->
<el-col :span="5">
<Formitem label="业务状态" prop="declaredPort">
<Formitem label="业务状态" prop="returnStatus">
<el-select
type="text"
id="inputInner--receiptStatus"
v-model="searchForm.receiptStatus"
id="inputInner--returnStatus"
v-model="sreachFormData.returnStatus"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dictData.userport"
v-for="(item, index) in dictData.returnStatus"
:key="index"
:label="item.name"
:value="item.name"
:value="item.code"
></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 label="运单号" prop="logisticsWaybillNumber">
<el-input
type="text"
class="inputShadow"
id="inputInner--logisticsWaybillNumber"
resize="none"
v-model="sreachFormData.logisticsWaybillNumber"
clearable
placeholder=""
></el-input>
<!-- <FormTextareaInput
:formData="sreachFormData"
dataKey="logisticsWaybillNumber"
@formChange="formChange"
/> -->
</Formitem>
</el-col>
<el-col :span="4">
<Formitem label="申报日期" prop="receiptTime">
<!-- 创建时间 -->
<el-col :span="5">
<Formitem label="创建时间" prop="createTime" :activeType="true">
<el-date-picker
class="inputInner--accsDataImportTime"
id="inputInner--accsDataImportTime"
v-model="searchForm.accsDataImportTime"
class="inputInner--createTime"
id="inputInner--createTime"
v-model="sreachFormData.createTime"
type="daterange"
format="yyyy-MM-dd"
prefix-icon="none"
value-format="yyyyMMdd"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder=""
clearable
end-placeholder=""
:picker-options="importTimePickerOptions"
@blur="datePickerBlur"
@change="accsDataImportTimeChange"
>
</el-date-picker>
@change="dateChange"
/>
</Formitem>
</el-col>
<el-col :span="2">
<el-form-item class="textCenter">
<el-button
......@@ -135,35 +92,30 @@
></el-button>
</el-form-item>
</el-col>
<el-col :span="3">
<el-col :span="2">
<el-form-item class="textCenter">
<el-button
icon="el-icon-refresh"
type="text"
size="small"
:loading="loadings.searchLoading"
@click="search(0)"
>重置
icon="el-icon-refresh"
@click="clear"
>
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="text-align: right; margin: 10px">
<div class="optionButton">
<el-button
class="entrySaveButton"
size="small"
:loading="loadings.downloadLoading2"
@click="downloadBpiData('log')"
icon="el-icon-download"
@click="downloadData"
>
<svg-icon
class="el-icon-user-solid"
icon-class="fedexUpBlue"
></svg-icon>
导出
</el-button>
</div>
<Table
class="fedexDetialTable fedexSreachTable"
ref="entryTable"
......@@ -173,181 +125,332 @@
:border="true"
:pagination="true"
:order="false"
:loading="loadings.sreachLoading"
:loading="loadings.searchLoading"
:page="page.pageIndex"
:pageSizes="[20, 30, 50, 100]"
:totalCount="total"
:totalCount="page.total"
@sizeChange="sizeChange"
@currentChange="currentChange"
:selection="true"
:selection="false"
: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 v-slot:returnStatus="scope">
<TablePopover
ref="returnStatusPopover"
dataKey="returnStatus"
:parentDom="$refs.entryTable"
:receiptDataHead="receiptDataHead"
:rowData="scope.row"
:tableData="tableData"
@popoverChange="popoverChange"
@popoverClose="popoverClose"
>
<div slot="title">
<span style="font-weight: 700; color: #515a6e">运单编号:</span
>{{ scope.row.logisticsNo }}
</div>
<div slot="buttonLabel">
{{ scope.row.returnStatus }}
</div>
</TablePopover>
</template>
<template v-slot:billNo="scope">
<el-button type="text" @click="view(scope.row)">{{
scope.row.billNo
}}</el-button>
</template>
</Table>
</div>
</template>
<script>
import { getAllLogisticsDepartureList } from "@/api/logisticsExit-api.js";
export default {
name: "index",
name: "ListBranchQuery",
data() {
return {
searchForm: {
declaredPort: "",
consStatus: "",
consignmentCode: "",
accsDataImportTime: [],
ownerName: "",
consignmentHeadCode: "",
isPushCustomsSys: "",
waitOperStatus: "",
declTime: [],
},
loadings: {
searchLoading: false,
sreachFormData: {
billNo: "",
logisticsWaybillNumber: "",
returnStatus: "",
createTime: [],
},
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);
total: 0,
},
tableData: [],
total: 0,
tableMaxheight: null,
headerData: [
{
name: "回执状态",
value: "returnStatus",
width: "150",
width: "",
align: "left",
slot: true,
},
{
name: "提运单号",
value: "orderNo",
width: "150",
value: "billNo",
width: "",
align: "left",
slot: true,
},
{
name: "运单编号",
value: "orderType",
width: "150",
value: "",
width: "",
align: "left",
},
{
name: "物流企业名称",
value: "ebccode",
width: "200",
value: "logisticsName",
width: "",
align: "left",
},
{
name: "运输方式",
value: "ebcname",
width: "200",
value: "trafMode",
width: "",
align: "left",
},
{
name: "运输工具名称",
value: "createTime",
width: "150",
value: "trafName",
width: "",
align: "left",
},
{
name: "航班航次号",
value: "declaringEnterprise",
width: "200",
value: "voyageNo",
width: "",
align: "left",
},
{
name: "离境时间",
value: "declaringEnterprise",
width: "200",
value: "leaveTime",
width: "",
align: "left",
},
{
name: "报送类型",
value: "declaringEnterprise",
width: "200",
value: "appType",
width: "",
align: "left",
},
{
name: "业务状态",
value: "declaringType",
width: "100",
value: "returnStatus",
width: "",
align: "left",
},
{
name: "申报日期",
value: "declaringType",
width: "100",
value: "appTime",
width: "",
align: "left",
},
],
receiptDataHead: [
{
name: "回执状态",
value: "receiptStatus",
width: "",
align: "left",
},
{
name: "状态时间",
value: "statusTime",
width: "",
align: "left",
},
{
name: "回执描述",
value: "receiptDescription",
width: "",
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" },
],
// dictData: {
// ebccode: [],
// returnStatus: [],
// },
loadings: {
searchLoading: false,
},
textareaVisible: {
formItemconsignmentCode: false,
formItemconsignmentHeadCode: false,
},
tableMaxheight: null,
};
},
created() {},
created() {
this.search(0);
},
mounted() {
this.tableMaxheight = window.innerHeight - 300;
},
methods: {
tableSelect(val) {
this.selected = val.selection;
//查询详情
view(val) {
this.$router.push({
name: "ExportTransportDetail",
params: { data: val },
});
},
tableSelectAll(val) {
this.selected = val;
//查询
search(val) {
this.loadings.searchLoading = true;
if (val == 0) {
this.page.pageIndex = 1;
}
let obj = this.sreachFormData;
obj.pageIndex = this.page.pageIndex;
obj.pageSize = this.page.pageSize;
obj.createTimeStart = "";
obj.createTimeEnd = "";
if (obj.createTime.length > 0) {
obj.createTimeStart = obj.createTime[0];
obj.createTimeEnd = obj.createTime[1];
}
// if (obj.billNo != null && obj.billNo != "") {
// obj.billNo = obj.billNo.split("\n");
// } else {
// obj.billNo = [];
// }
getAllLogisticsDepartureList(obj)
.then((res) => {
if (res.code === "200") {
this.tableData = res.data.value;
this.page.total = res.data.totalItems;
this.tableData.forEach((item, idx) => {
item.index = idx;
item.returnStatusPopoverType = false;
item.popoverData = [];
});
} else {
this.alertWarningMsg(res.message);
}
this.loadings.searchLoading = false;
})
.catch((err) => {
console.log(err);
this.loadings.searchLoading = false;
});
},
handleRowClick(row) {
const declareId = row.declareId;
this.$router.push({
path: "/logisticsExitDetail",
query: {
declareId,
},
//重置
clear() {
this.sreachFormData = {
billNo: "",
logisticsWaybillNumber: "",
returnStatus: "",
createTime: [],
};
},
//导出
downloadData() {},
popoverChange(val) {
console.log(val);
this.tableData = val.tableData;
this.receiptApi(val.data.declareId, val.status)
.then((res) => {
val.tableData.forEach((item) => {
if (item.declareId == val.data.declareId) {
item.popoverData = res;
}
});
this.tableData = val.tableData;
})
.finally(() => {
this.$nextTick(() => {
this.$refs.returnStatusPopover.tableLoading = false;
});
});
},
//查询回执
receiptApi(id, type) {
return new Promise((resolve, reject) => {
let obj = { declareId: id };
resolve();
});
},
popoverClose(val) {
this.tableData.forEach((item) => {
item.returnStatusPopoverType = false;
item.popoverData = [];
});
this.$refs.entryTable.$refs.tables.$refs.bodyWrapper.style.overflowY =
"auto";
},
//分页
currentChange(val) {
this.page.pageNum = val.page;
this.search(1);
},
sizeChange(val) {
this.page.pageSize = val;
this.search(1);
},
async search(val) {
try {
} catch (error) {
console.error("搜索出错:", error);
} finally {
// 无论成功还是失败,关闭加载状态
this.loadings.sreachLoading = false;
dateChange(val) {
if (val == "" || val == null) {
this.$nextTick(() => {
this.sreachFormData.createTime = [];
});
}
},
formChange(val) {
this.sreachFormData = val;
},
input() {
this.$forceUpdate();
},
},
};
</script>
<style scoped lang="scss">
@import "@/assets/styles/variables.scss";
.entrySreach {
height: 100%;
background-color: $menuLightBg;
.entrySreachButton {
display: inline-block;
font-size: 20px;
color: $fedexButton !important;
}
.optionButton {
padding: 10px;
text-align: right;
.el-button {
color: $fedexButton;
border-color: $fedexButton !important;
svg {
display: inline-block;
margin-right: 5px;
fill: $fedexButton;
}
}
.entrySaveButton:hover,
.entrySaveButton:focus {
color: $menuLightBg !important;
background-color: $fedexButton !important;
}
}
}
.entrySreachButton {
display: inline-block;
font-size: 20px;
color: $fedexButton !important;
.texttareaTip {
position: absolute;
top: 52%;
right: 20px;
transform: translate(0, -50%);
z-index: 10;
}
</style>
......
<template>
<el-dialog
class="entryDialog classCUploadDialog"
:title="title"
:visible.sync="outerVisible"
:show-close="false"
width="40%"
:close-on-click-modal="false"
v-loading="loadings.dialogLoading"
@close="close"
>
<div class="modelItem">
<el-form
class="fedexFormStyle"
ref="formData"
:model="formData"
:rules="type == 'roleChange' ? {} : rules"
label-position="top"
:disabled="type == 'roleChange'"
size="small"
>
<el-row :gutter="5">
<!-- 口岸代码 -->
<el-col :span="8">
<Formitem label="口岸代码" prop="portCode" type="edit">
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-portCode"
resize="none"
v-model="formData.portCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 申报地海关代码(4位海关编号) -->
<el-col :span="8">
<Formitem
label="申报地海关代码(4位海关编号)"
prop="declarationPortCode"
type="edit"
>
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-declarationPortCode"
resize="none"
v-model="formData.declarationPortCode"
clearable
maxlength="4"
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 申报单位(18位社会信用代码) -->
<el-col :span="8">
<Formitem
label="申报单位(18位社会信用代码)"
prop="declarationUnit18"
type="edit"
>
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-declarationUnit18"
resize="none"
v-model="formData.declarationUnit18"
clearable
maxlength="18"
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
<el-row :gutter="5">
<!-- 申报单位(10位海关代码) -->
<el-col :span="8">
<Formitem
label="申报单位(10位海关代码)"
prop="declarationUnit10"
type="edit"
>
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-declarationUnit10"
resize="none"
v-model="formData.declarationUnit10"
clearable
maxlength="10"
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 申报单位 (企业名称) -->
<el-col :span="8">
<Formitem
label="申报单位 (企业名称)"
prop="declarationUnitCompanyName"
type="edit"
>
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-declarationUnitCompanyName"
resize="none"
v-model="formData.declarationUnitCompanyName"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- DXPID -->
<el-col :span="8">
<Formitem label="DXPID" prop="dxpid" type="edit">
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-dxpid"
resize="none"
v-model="formData.dxpid"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
</el-row>
</el-form>
</div>
<div class="dialogOption entrySave">
<el-button
class="entrySaveButton"
:disabled="loadings.submitLoading"
@click="submit"
>确 定</el-button
>
<el-button
class="entrySaveButton"
:disabled="loadings.uploadLoading"
@click="close"
>关 闭</el-button
>
</div>
</el-dialog>
</template>
<script>
import { addPortData, updatePortData } from "@/api/system/port-api.js";
export default {
props: {
outerVisible: {
type: Boolean,
default: false,
},
title: {
type: String,
default: "新增口岸",
},
type: {
type: String,
default: "",
},
active: {
type: Object,
default: null,
},
},
data() {
return {
formData: {
declarationPortCode: "",
declarationUnit10: "",
declarationUnit10Inspection: "",
declarationUnit18: "",
declarationUnitCompanyName: "",
dxpid: "",
portCode: "",
},
rules: {
portCode: [
{
required: true,
trigger: "blur",
message: "口岸代码不能为空!",
},
],
declarationPortCode: [
{
required: true,
trigger: "blur",
message: "申报地海关代码不能为空!",
},
{
validator: (rule, value, callback) => {
if (value.length != 4) {
callback("申报地海关代码必须为4位!");
} else {
callback();
}
},
trigger: "blur",
},
],
declarationUnit18: [
{
required: true,
trigger: "blur",
message: "申报单位(18位社会信用代码)不能为空!",
},
{
validator: (rule, value, callback) => {
if (value.length != 18) {
callback("18位社会信用代码必须为18位!");
} else {
callback();
}
},
trigger: "blur",
},
],
declarationUnit10: [
{
required: true,
trigger: "blur",
message: "申报单位(10位海关代码)不能为空!",
},
{
validator: (rule, value, callback) => {
if (value.length != 10) {
callback("10位海关代码必须为10位!");
} else {
callback();
}
},
trigger: "blur",
},
],
declarationUnitCompanyName: [
{
required: true,
trigger: "blur",
message: "申报单位 (企业名称)不能为空!",
},
],
},
loadings: {
dialogLoading: false,
uploadLoading: false,
submitLoading: false,
},
loadingText: "",
};
},
watch: {
outerVisible(val) {
if (val) {
this.loadings.dialogLoading = false;
if (this.type == "update") {
this.formData = this.active;
}
}
},
},
methods: {
//查询用户信息详情
searchUserData(id) {
this.loadings.dialogLoading = true;
getUserDetailData({ id: id })
.then((res) => {
if (res.code === "200") {
this.formData = res.data;
} else {
this.alertWarningMsg(res.message);
}
this.loadings.dialogLoading = false;
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
//数据保存
submit() {
this.loadings.dialogLoading = true;
let obj = {};
if (this.type == "add") {
this.$refs.formData.validate((valid) => {
if (valid) {
obj = this.formData;
this.addApi(obj);
} else {
this.loadings.dialogLoading = false;
}
});
} else if (this.type == "update") {
this.$refs.formData.validate((valid) => {
if (valid) {
obj = this.formData;
this.updateapi(obj);
} else {
this.loadings.dialogLoading = false;
}
});
}
},
//新增
addApi(val) {
addPortData(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.message);
this.close();
} else {
this.alertWarningMsg(res.message);
this.loadings.dialogLoading = false;
}
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
//修改
updateapi(val) {
updatePortData(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.message);
this.close();
} else {
this.alertWarningMsg(res.message);
this.loadings.dialogLoading = false;
}
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
close() {
this.formData = {
declarationPortCode: "",
declarationUnit10: "",
declarationUnit10Inspection: "",
declarationUnit18: "",
declarationUnitCompanyName: "",
dxpid: "",
portCode: "",
};
this.$emit("close");
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/styles/variables.scss";
</style>
<template>
<div class="entrySreach">
<el-form
class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
ref="sreachForm"
:model="sreachFormData"
label-position="top"
size="small"
>
<el-row class="row-border">
<!-- 口岸代码 -->
<el-col :span="5">
<Formitem label="口岸代码" prop="portCode">
<el-select
type="text"
id="inputInner--portCode"
v-model="sreachFormData.portCode"
clearable
placeholder=""
>
<el-option
v-for="(item, index) in dict.port"
:key="index"
:label="item"
:value="item"
></el-option>
</el-select>
</Formitem>
</el-col>
<!-- DXPID -->
<el-col :span="5">
<Formitem label="DXPID" prop="dxpid">
<el-input
type="text"
class="inputShadow"
id="inputInner--dxpid"
resize="none"
v-model="sreachFormData.dxpid"
clearable
placeholder=""
></el-input>
</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="2">
<!-- 清空查询条件-->
<el-form-item class="textLeft textCenter">
<el-button
type="text"
size="small"
icon="el-icon-refresh"
@click="clear"
>
重置
</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="optionButton">
<div>
<el-button
class="entrySaveButton"
icon="el-icon-plus"
size="small"
@click="addcipherMachine"
>
新 增
</el-button>
</div>
<div>
<el-button
class="entrySaveButton"
size="small"
icon="el-icon-download"
@click="downloadData"
>
导出
</el-button>
</div>
</div>
<Table
class="fedexDetialTable fedexSreachTable"
ref="entryTable"
:data="tableData"
:headerData="headerData"
:maxHeight="tableMaxheight"
:border="true"
:pagination="true"
:order="false"
noLabel="序号"
:loading="loadings.searchLoading"
:page="page.pageNum"
:pageSizes="[20, 30, 50, 100]"
:totalCount="page.total"
@sizeChange="sizeChange"
@currentChange="currentChange"
:selection="false"
:selectFixed="false"
:rowSelectDataType="false"
>
<template slot="optionColumn">
<el-table-column align="left" label="操作" width="100">
<template slot-scope="scope">
<el-button type="text" @click="update(scope.row)"> 修改 </el-button>
</template>
</el-table-column>
</template>
</Table>
<DialogVue
:outerVisible="outerVisible"
:title="dialogTitle"
:type="editType"
:active="activeData"
@close="dialogClose"
/>
</div>
</template>
<script>
import { getPortConfigList } from "@/api/system/port-api.js";
import { getPortList } from "@/api/system/user.js";
import DialogVue from "./dialog.vue";
export default {
name: "RoleConfig",
components: {
DialogVue,
},
data() {
return {
sreachFormData: {
portCode: "",
dxpid: "",
},
page: {
pageNum: 1,
pageSize: 20,
total: 0,
},
activeData: null,
tableData: [],
headerData: [
{
name: "口岸代码",
value: "portCode",
width: "",
align: "left",
},
{
name: "DXPID",
value: "dxpid",
width: "",
align: "left",
},
{
name: "申报地海关代码",
value: "declarationPortCode",
width: "",
align: "left",
},
{
name: "申报单位 (18位社会信用代码)",
value: "declarationUnit18",
width: "",
align: "left",
},
{
name: "申报单位 (10位海关代码)",
value: "declarationUnit10",
width: "",
align: "left",
},
{
name: "申报单位 (企业名称)",
value: "declarationUnitCompanyName",
width: "",
align: "left",
},
],
dict: {
port: [],
},
loadings: {
searchLoading: false,
},
tableMaxheight: null,
outerVisible: false,
dialogTitle: "",
editType: "",
};
},
created() {
this.searchPortDictData();
this.search(0);
},
mounted() {
this.tableMaxheight = window.innerHeight - 300;
},
methods: {
//查询
search(val) {
this.loadings.searchLoading = true;
if (val == 0) {
this.page.pageNum = 1;
}
let obj = this.sreachFormData;
obj.pageNum = this.page.pageNum;
obj.pageSize = this.page.pageSize;
getPortConfigList(obj)
.then((res) => {
if (res.code === "200") {
this.tableData = res.data.value;
this.page.total = res.data.totalItems;
this.tableData.forEach((item, idx) => {
item.index = idx;
});
} else {
this.alertWarningMsg(res.message);
}
this.loadings.searchLoading = false;
})
.catch((err) => {
console.log(err);
this.loadings.searchLoading = false;
});
},
//获取口岸子字典
searchPortDictData() {
getPortList()
.then((res) => {
if (res.code === "200") {
this.dict.port = res.data;
}
})
.catch((err) => {
console.log(err);
});
},
clear() {
this.sreachFormData = {
portCode: "",
dxpid: "",
};
},
//导出
downloadData() {},
addcipherMachine() {
this.dialogTitle = "新增口岸";
this.editType = "add";
this.outerVisible = true;
},
update(val) {
this.dialogTitle = "修改口岸";
this.editType = "update";
this.outerVisible = true;
this.activeData = val;
},
dialogClose() {
this.outerVisible = false;
this.activeData = null;
this.search(1);
},
//分页
currentChange(val) {
this.page.pageNum = val.page;
this.search(1);
},
sizeChange(val) {
this.page.pageSize = val;
this.search(1);
},
input() {
this.$forceUpdate();
},
dateChange(val) {
if (val == "" || val == null) {
this.$nextTick(() => {
this.sreachFormData.creationTime = [];
});
}
},
},
};
</script>
<style scoped lang="scss">
@import "@/assets/styles/variables.scss";
.entrySreach {
height: 100%;
background-color: $menuLightBg;
.entrySreachButton {
display: inline-block;
font-size: 20px;
color: $fedexButton !important;
}
.optionButton {
padding: 10px;
text-align: left;
display: flex;
justify-content: space-between;
.el-button {
color: $fedexButton;
border-color: $fedexButton !important;
svg {
display: inline-block;
margin-right: 5px;
fill: $fedexButton;
}
}
.entrySaveButton:hover,
.entrySaveButton:focus {
color: $menuLightBg !important;
background-color: $fedexButton !important;
}
}
}
.texttareaTip {
position: absolute;
top: 52%;
right: 20px;
transform: translate(0, -50%);
z-index: 10;
}
</style>
......
......@@ -226,7 +226,9 @@
>
<template v-slot:orderReceiptStatus="scope">
<TablePopover
ref="orderReceiptStatusPopover"
dataKey="orderReceiptStatus"
idKey="declareId"
:parentDom="$refs.entryTable"
:receiptDataHead="receiptDataHead"
:rowData="scope.row"
......@@ -245,7 +247,9 @@
</template>
<template v-slot:logisticsReceiptStatus="scope">
<TablePopover
ref="logisticsReceiptStatusPopover"
dataKey="logisticsReceiptStatus"
idKey="declareId"
:parentDom="$refs.entryTable"
:receiptDataHead="receiptDataHead"
:rowData="scope.row"
......@@ -264,7 +268,9 @@
</template>
<template v-slot:listReceiptStatus="scope">
<TablePopover
ref="listReceiptStatusPopover"
dataKey="listReceiptStatus"
idKey="declareId"
:parentDom="$refs.entryTable"
:receiptDataHead="receiptDataHead"
:rowData="scope.row"
......@@ -281,6 +287,27 @@
</div>
</TablePopover>
</template>
<template v-slot:totalSplitOrderStatus="scope">
<TablePopover
ref="totalSplitOrderStatusPopover"
dataKey="totalSplitOrderStatus"
idKey="declareId"
:parentDom="$refs.entryTable"
:receiptDataHead="receiptDataHead"
:rowData="scope.row"
:tableData="tableData"
@popoverChange="popoverChange"
@popoverClose="popoverClose"
>
<div slot="title">
<span style="font-weight: 700; color: #515a6e">订单编号:</span
>{{ scope.row.orderno }}
</div>
<div slot="buttonLabel">
{{ scope.row.totalSplitOrderStatus }}
</div>
</TablePopover>
</template>
</Table>
<DialogVue
:outerVisible="outerVisible"
......@@ -291,7 +318,14 @@
</template>
<script>
import { searchDeclareData, declareDataUpload } from "@/api/declareData-api.js";
import {
searchDeclareData,
declareDataUpload,
getOrderReceipt,
getLogisticsReceipt,
getListReceipt,
getTotalReceipt,
} from "@/api/declareData-api.js";
import DialogVue from "./dialog.vue";
export default {
name: "ReportingData",
......@@ -346,13 +380,13 @@ export default {
align: "left",
slot: true,
},
{
name: "收款单回执",
value: "",
width: "",
align: "left",
slot: true,
},
// {
// name: "收款单回执",
// value: "",
// width: "",
// align: "left",
// slot: true,
// },
{
name: "物流单回执",
value: "logisticsReceiptStatus",
......@@ -369,7 +403,7 @@ export default {
},
{
name: "清单总分单回执",
value: "",
value: "totalSplitOrderStatus",
width: "",
align: "left",
slot: true,
......@@ -378,19 +412,19 @@ export default {
receiptDataHead: [
{
name: "回执状态",
value: "",
value: "receiptStatus",
width: "",
align: "left",
},
{
name: "状态时间",
value: "",
value: "statusTime",
width: "",
align: "left",
},
{
name: "回执描述",
value: "",
value: "receiptDescription",
width: "",
align: "left",
},
......@@ -421,6 +455,11 @@ export default {
mounted() {
this.tableMaxheight = window.innerHeight - 300;
},
watch: {
$route(val, oldval) {
this.popoverClose();
},
},
methods: {
//查询申报数据
search(val) {
......@@ -445,13 +484,10 @@ export default {
this.page.total = res.data.totalItems;
this.tableData.forEach((item, idx) => {
item.index = idx;
item.popoverLoading = false;
item.orderReceiptStatusPopoverType = false;
item.listReceiptStatusPopoverType = false;
item.logisticsReceiptStatusPopoverType = false;
item.orderReceiptStatusPopoverData = [];
item.listReceiptStatusPopoverData = [];
item.logisticsReceiptStatusPopoverData = [];
item.popoverData = [];
});
} else {
this.alertWarningMsg(res.message);
......@@ -463,36 +499,6 @@ export default {
this.loadings.sreachLoading = false;
});
},
//查询清关回执
searchLog(data) {
let arr = JSON.parse(JSON.stringify(data.tableData));
if (data.type) {
this.$refs.classCPortEntry.style.overflowY = "hidden";
this.tableData = arr;
if (data.status == "customs") {
arr[data.data.idx][`${data.status}PopoverLoading`] = true;
getClassCPortLog({ chmId: Number(data.data.consignmentId) })
.then((res) => {
if (res.code === "200") {
arr[data.data.idx][`${data.status}PopoverData`] =
this.logDataInfo(res.data.records);
} else {
this.alertWarningMsg(res.message);
}
arr[data.data.idx][`${data.status}PopoverLoading`] = false;
this.tableData = arr;
})
.catch((err) => {
console.log(err);
arr[data.data.idx][`${data.status}PopoverLoading`] = false;
this.tableData = arr;
});
}
} else {
this.$refs.classCPortEntry.style.overflowY = "auto";
this.tableData = arr;
}
},
//重置数据
clear() {
this.sreachFormData = {
......@@ -565,18 +571,91 @@ export default {
this.outerVisible = false;
},
popoverChange(val) {
console.log(val);
this.tableData = val.tableData;
console.log(this.tableData);
this.receiptApi(val.data.declareId, val.status)
.then((res) => {
val.tableData.forEach((item) => {
if (item.declareId == val.data.declareId) {
item.popoverData = res;
}
});
this.tableData = val.tableData;
})
.finally(() => {
this.$nextTick(() => {
this.$refs.orderReceiptStatusPopover.tableLoading = false;
this.$refs.logisticsReceiptStatusPopover.tableLoading = false;
this.$refs.listReceiptStatusPopover.tableLoading = false;
this.$refs.totalSplitOrderStatusPopover.tableLoading = false;
});
});
},
//查询回执
receiptApi(id, type) {
return new Promise((resolve, reject) => {
let obj = { declareId: id };
if (type == "orderReceiptStatus") {
getOrderReceipt(obj)
.then((res) => {
if (res.code === "200") {
resolve(res.data);
} else {
reject();
}
})
.catch((err) => {
console.log(err);
reject();
});
} else if (type == "logisticsReceiptStatus") {
getLogisticsReceipt(obj)
.then((res) => {
if (res.code === "200") {
resolve(res.data);
} else {
reject();
}
})
.catch((err) => {
console.log(err);
reject();
});
} else if (type == "listReceiptStatus") {
getListReceipt(obj)
.then((res) => {
if (res.code === "200") {
resolve(res.data);
} else {
reject();
}
})
.catch((err) => {
console.log(err);
reject();
});
} else if (type == "totalSplitOrderStatus") {
getTotalReceipt(obj)
.then((res) => {
if (res.code === "200") {
resolve(res.data);
} else {
reject();
}
})
.catch((err) => {
console.log(err);
reject();
});
}
});
},
popoverClose(val) {
this.tableData.forEach((item) => {
item.popoverLoading = false;
item.orderReceiptStatusPopoverType = false;
item.listReceiptStatusPopoverType = false;
item.logisticsReceiptStatusPopoverType = false;
item.orderReceiptStatusPopoverData = [];
item.listReceiptStatusPopoverData = [];
item.logisticsReceiptStatusPopoverData = [];
item.popoverData = [];
});
this.$refs.entryTable.$refs.tables.$refs.bodyWrapper.style.overflowY =
"auto";
......