Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Fedex
/
EcomWeb
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
zhanbo.xu
2025-04-16 14:00:56 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
053113a8f3220b0971cd69f3b738dff7da40625e
053113a8
1 parent
9c054980
新增hscode
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
676 additions
and
2 deletions
src/views/arrival-declare/index.vue
src/views/hs-code/dialog.vue
src/views/hs-code/index.vue
src/views/arrival-declare/index.vue
View file @
053113a
...
...
@@ -189,8 +189,8 @@
@popoverClose="popoverClose"
>
<div slot="title">
<span style="font-weight: 700; color: #515a6e">
订单编
号:</span
>{{ scope.row.
ordern
o }}
<span style="font-weight: 700; color: #515a6e">
提运单
号:</span
>{{ scope.row.
billN
o }}
</div>
<div slot="buttonLabel">
{{ scope.row.arrivalInReceiptStatus }}
...
...
src/views/hs-code/dialog.vue
0 → 100644
View file @
053113a
<template>
<el-dialog
class="entryDialog classCUploadDialog"
title="运抵单申报"
:visible.sync="outerVisible"
:show-close="false"
width="720px"
:close-on-click-modal="false"
:destroy-on-close="true"
v-loading="loadings.dialogLoading"
@close="close(false)"
>
<div class="modelItem">
<el-form
class="fedexFormStyle"
ref="formData"
:model="formData"
label-position="top"
size="small"
>
<el-row :gutter="5">
<el-col :span="8">
<Formitem label="监管场所" prop="operatorCode" type="edit">
<el-select
type="text"
id="inputInner-edit-operatorCode"
v-model="formData.operatorCode"
clearable
filterable
placeholder=""
>
<el-option
v-for="item in operatorCode"
:key="item.operatorCode"
:label="item.operatorName"
:value="item.operatorCode"
></el-option>
</el-select>
</Formitem>
</el-col>
<el-col :span="8">
<Formitem
label="境内运输工具编码"
prop="domesticTrafNo"
type="edit"
>
<el-input
type="text"
class="inputShadow"
id="inputInner-edit-domesticTrafNo"
resize="none"
v-model="formData.domesticTrafNo"
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" @click="close(false)">关 闭</el-button>
</div>
</el-dialog>
</template>
<script>
import {
getCurrUserOperatorCode,
declareUpload,
} from "@/api/declareData-api.js";
export default {
props: {
outerVisible: {
type: Boolean,
default: false,
},
selected: {
type: Array,
default: () => {
return [];
},
},
},
watch: {
outerVisible(val) {
if (val) {
this.loadings.dialogLoading = false;
this.fetchOperatorCode();
}
},
},
data() {
return {
formData: {
operatorCode: "",
domesticTrafNo: "",
},
loadings: {
dialogLoading: false,
submitLoading: false,
},
loadingText: "",
operatorCode: [],
};
},
methods: {
fetchOperatorCode() {
getCurrUserOperatorCode().then((res) => {
if (res.code === "200") {
this.operatorCode = res.data;
}
});
},
//数据保存
submit() {
this.loadings.dialogLoading = true;
let obj = {
...this.formData,
declareIds: this.selected.map((item) => item.declareId),
type: "arrivalIn",
};
this.$refs.formData.validate((valid) => {
if (valid) {
this.addapi(obj);
} else {
this.loadings.dialogLoading = false;
}
});
},
//新增
addapi(val) {
declareUpload(val)
.then((res) => {
if (res.code === "200") {
this.msgSuccess(res.message);
this.close(true);
} else {
this.alertWarningMsg(res.message);
this.loadings.dialogLoading = false;
}
})
.catch((err) => {
console.log(err);
this.loadings.dialogLoading = false;
});
},
close(flag) {
this.formData = {
operatorCode: "",
domesticTrafNo: "",
};
this.loadings.dialogLoading = false;
this.$emit("close", flag);
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/styles/variables.scss";
</style>
src/views/hs-code/index.vue
0 → 100644
View file @
053113a
<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>
</Formitem>
</el-col>
<el-col :span="5">
<Formitem label="商品名称" prop="operatorCode">
<el-input
type="text"
class="inputShadow"
id="inputInner--operatorCode"
resize="none"
v-model="sreachFormData.operatorCode"
clearable
placeholder=""
></el-input>
</Formitem>
</el-col>
<!-- 创建时间 -->
<el-col :span="5">
<Formitem label="操作时间" prop="createTime" :activeType="true">
<el-date-picker
class="inputInner--createTime"
id="inputInner-edit-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.sreachLoading"
@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">
<el-button
size="small"
type="primary"
class="dropdown-style-button"
@click="addDeclare"
>
<svg-icon
class="el-icon-user-solid"
icon-class="fedexDeclareIcon"
></svg-icon>
增量数据同步
</el-button>
</div>
<Table
class="fedexDetialTable fedexSreachTable"
ref="entryTable"
:data="tableData"
:headerData="headerData"
:height="tableMaxheight + 'px'"
:maxHeight="tableMaxheight + 'px'"
:border="true"
:pagination="true"
:order="false"
:loading="loadings.sreachLoading"
:page="page.pageIndex"
:pageSizes="[20, 30, 50, 100]"
:totalCount="page.total"
@sizeChange="sizeChange"
@currentChange="currentChange"
:selection="true"
:selectFixed="false"
:rowSelectDataType="false"
@tableSelect="tableSelect"
@tableSelectAll="tableSelectAll"
:selected="selected"
>
<template v-slot:billNo="scope">
<el-button type="text" @click.stop="linkChange(scope)">
{{ scope.row.billNo }}
</el-button>
</template>
<!-- <template v-slot:listReceiptStatus="scope">
<TablePopover
ref="listReceiptStatusPopover"
dataKey="listReceiptStatus"
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.listReceiptStatus }}
</div>
</TablePopover>
</template> -->
<!-- <template v-slot:arrivalInReceiptStatus="scope">
<TablePopover
ref="arrivalInReceiptStatusPopover"
dataKey="arrivalInReceiptStatus"
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.billNo }}
</div>
<div slot="buttonLabel">
{{ scope.row.arrivalInReceiptStatus }}
</div>
</TablePopover>
</template> -->
</Table>
<DialogVue
:outerVisible="outerVisible"
:selected="selected"
@close="dialogClose"
/>
</div>
</template>
<script>
import { getArrivalIneList, arrivalInReceipt } from "@/api/declareData-api.js";
import DialogVue from "./dialog.vue";
export default {
name: "SupervisePlaceManage",
components: {
DialogVue,
},
data() {
return {
// 控制日志弹窗的显示和隐藏
allLogDataReceiptStatusPopoverType: false,
// 存储选中的日志数据
selectedLogRow: {},
selected: [],
sreachFormData: {
billNo: "",
operatorCode: "",
operatorName: "",
receiptStatus: null,
receiptType: null,
createTime: [],
},
page: {
pageIndex: 1,
pageSize: 20,
total: 0,
},
tableData: [],
// 序号、商品编号、商品名称、申报要素、第一法定单位、第二法定单位、更新时间
headerData: [
{
name: "序号",
value: "billNo",
width: "",
align: "left",
slot: true,
},
{
name: "商品编号",
value: "operatorCode",
width: "",
align: "left",
},
{
name: "商品名称",
value: "operatorName",
width: "",
align: "left",
},
{
name: "申报要素",
value: "ecomEntName",
width: "",
align: "left",
},
{
name: "第一法定单位",
value: "createTime",
width: "",
align: "left",
},
{
name: "第二法定单位",
value: "listReceiptStatus",
width: "",
align: "left",
},
{
name: "更新时间",
value: "arrivalInReceiptStatus",
width: "",
align: "left",
},
],
loadings: {
sreachLoading: false,
},
tableMaxheight: 500,
outerVisible: false,
};
},
created() {
this.search(0);
this.calculateTableHeight();
},
watch: {
$route(val, oldval) {
this.popoverClose();
},
},
mounted() {
window.addEventListener("resize", this.calculateTableHeight);
},
beforeDestroy() {
window.removeEventListener("resize", this.calculateTableHeight);
},
methods: {
// 运单号跳转
linkChange(record) {
const { billNo } = record.row;
console.log(record);
this.$router.push({
path: "/reportingData",
query: { billNo, search: true },
});
},
tableSelect(val) {
this.selected = val.selection;
},
tableSelectAll(val) {
this.selected = val;
},
dateChange(val) {
if (val == "" || val == null) {
this.$nextTick(() => {
this.sreachFormData.createTime = [];
});
}
},
popoverClose(val) {
this.tableData.forEach((item) => {
item.listReceiptStatusPopoverType = false;
item.arrivalInReceiptStatusPopoverType = false;
item.popoverData = [];
});
this.selectedLogRow.allLogDataReceiptStatusPopoverType = false;
this.$refs.entryTable.$refs.tables.$refs.bodyWrapper.style.overflowY =
"auto";
},
calculateTableHeight() {
this.tableMaxheight = window.innerHeight - 300;
},
//查询回执
receiptApi(billNo, type) {
return new Promise((resolve, reject) => {
let obj = { billNo };
// 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 == "arrivalInReceiptStatus") {
arrivalInReceipt(obj)
.then((res) => {
if (res.code === "200") {
resolve(res.data);
} else {
reject();
}
})
.catch((err) => {
console.log(err);
reject();
});
}
});
},
popoverChange(val) {
this.tableData = val.tableData;
console.log(val);
this.receiptApi(val.data.billNo, 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.$store.dispatch("setLoadingState", false);
this.$refs.listReceiptStatusPopover.tableLoading = false; // 清单回执
this.$refs.arrivalInReceiptStatusPopover.tableLoading = false; //运抵单回执
});
});
},
clear() {
this.$refs.sreachForm.resetFields();
//重置数据
this.sreachFormData = {
billNo: "",
operatorCode: "",
operatorName: "",
receiptStatus: null,
receiptType: null,
createTime: [],
};
},
//查询
search(val) {
this.loadings.sreachLoading = true;
this.selected = [];
if (val == 0) {
this.page.pageIndex = 1;
}
let obj = this.sreachFormData;
obj.pageIndex = this.page.pageIndex;
obj.pageSize = this.page.pageSize;
obj.startCreateTime = "";
obj.endCreateTime = "";
if (this.sreachFormData.createTime.length > 0) {
obj.startCreateTime = obj.createTime[0];
obj.endCreateTime = obj.createTime[1];
}
getArrivalIneList({
// isOnlySearchArrivalIn: true,
...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.listReceiptStatusPopoverType = false; // 清单回执
item.arrivalInReceiptStatusPopoverType = false; // 运抵单回执
// item.logLoading = false;
item.popoverData = [];
});
this.selectedLogRow.allLogDataReceiptStatusPopoverType = false;
} else {
this.alertWarningMsg(res.message);
}
this.loadings.sreachLoading = false;
})
.catch((err) => {
console.log(err);
this.loadings.sreachLoading = false;
});
},
addDeclare() {
if (this.selected.length === 0) {
this.alertWarningMsg("请选择数据!");
return;
}
this.outerVisible = true;
},
dialogClose(flag = false) {
this.outerVisible = false;
if (flag) {
this.search(0);
}
},
//分页
currentChange(val) {
this.page.pageIndex = val.page;
this.search(1);
},
sizeChange(val) {
this.page.pageSize = val;
this.search(1);
},
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: left;
.el-button.dropdown-style-button {
background-color: #ffffff !important;
border: 2px solid $fedexBottonColor !important; /* 设置边框颜色 */
color: $fedexBottonColor !important;
font-size: 12px !important;
}
.el-button.dropdown-style-button:hover,
.el-button.dropdown-style-button:focus {
color: #ffffff !important;
background-color: $fedexBottonColor !important;
}
.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>
Please
register
or
login
to post a comment