AiCoustoms.vue
7.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<template>
<div>
<!-- 上传Excel按钮 -->
<el-row :gutter="24">
<el-col :span="4">
<el-upload
class="upload-demo"
action=""
:before-upload="beforeUpload"
:http-request="uploadExcel"
:show-file-list="false">
<el-button size="medium" type="success">导入数据</el-button>
</el-upload>
</el-col>
<el-col :span="4">
<el-upload
class="upload-demo"
action=""
:before-upload="beforeUpload"
:http-request="uploadUpdateExcel"
:show-file-list="false">
<el-button size="medium" type="success">更新数据</el-button>
</el-upload>
</el-col>
<el-button size="medium" @click="fetchData" type="primary">查询</el-button>
</el-row>
<!-- 数据列表 -->
<el-row :gutter="24">
<el-col :span="24">
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="staId" label="标识码"></el-table-column>
<el-table-column prop="iEPort" label="进出境关区"></el-table-column>
<el-table-column prop="iEPortCn" label="关区中文名称"></el-table-column>
<el-table-column prop="tradeCo" label="境内收发货人"></el-table-column>
<el-table-column prop="ownerCode" label="消费使用单位/生产销售单位"></el-table-column>
<el-table-column prop="districtCode" label="境内目的地/货源地"></el-table-column>
<el-table-column prop="districtCodeCn" label="境内目的地/货源地中文名称"></el-table-column>
<el-table-column prop="trafMode" label="运输方式"></el-table-column>
<el-table-column prop="trafModeCn" label="运输方式中文名称"></el-table-column>
<el-table-column prop="tradeMode" label="监管方式"></el-table-column>
<el-table-column prop="tradeModeCn" label="监管方式中文名称"></el-table-column>
<el-table-column prop="cutMode" label="征免性质"></el-table-column>
<el-table-column prop="cutModeCn" label="征免性质中文名称"></el-table-column>
<el-table-column prop="tradeCountry" label="启抵国"></el-table-column>
<el-table-column prop="tradeCountryCn" label="启抵国中文名称"></el-table-column>
<el-table-column prop="originCountry" label="产终国"></el-table-column>
<el-table-column prop="originCountryCn" label="产终国中文名称"></el-table-column>
<el-table-column prop="licenseNo" label="许可证编号"></el-table-column>
<el-table-column prop="manualNo" label="备案号"></el-table-column>
<el-table-column prop="grossWt" label="毛重"></el-table-column>
<el-table-column prop="endDate" label="结关日期"></el-table-column>
<el-table-column prop="codeT" label="商品编号"></el-table-column>
<el-table-column prop="codeS" label="附加编号"></el-table-column>
<el-table-column prop="qty1" label="第一数量"></el-table-column>
<el-table-column prop="unit1" label="第一计量单位"></el-table-column>
<el-table-column prop="unit1Cn" label="第一计量单位中文名称"></el-table-column>
<el-table-column prop="qty2" label="第二数量"></el-table-column>
<el-table-column prop="unit2" label="第二计量单位"></el-table-column>
<el-table-column prop="unit2Cn" label="第二计量单位中文名称"></el-table-column>
<el-table-column prop="rmb" label="人民币"></el-table-column>
<el-table-column prop="usd" label="美元值"></el-table-column>
<el-table-column prop="dutyMode" label="征免方式"></el-table-column>
<el-table-column prop="dutyModeCn" label="征免方式中文名称"></el-table-column>
<el-table-column prop="dutax" label="实征税款"></el-table-column>
<el-table-column prop="realDuty" label="实征关税"></el-table-column>
<el-table-column prop="dutaxCut" label="减免税"></el-table-column>
<el-table-column prop="dutyCut" label="减免关税"></el-table-column>
<el-table-column prop="empty" label="空白项"></el-table-column>
<el-table-column prop="gName" label="商品名称"></el-table-column>
<el-table-column prop="gModel" label="规格型号"></el-table-column>
<el-table-column prop="selType" label="分类通关"></el-table-column>
<el-table-column prop="createtime" label="导入时间"></el-table-column>
<el-table-column prop="opter" label="操作账户"></el-table-column>
</el-table>
</el-col>
<el-col :span="24">
<el-pagination
size="medium"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="query.pageNum"
:page-sizes="[10, 20, 30, 40]"
:page-size="query.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</el-col>
</el-row>
</div>
</template>
<script>
import {importExcel, fetchData, importUpdateExcel} from "../../api/AiCustoms/AiCustoms";
export default {
data() {
return {
tableData: [],
total: 0, // 总数据量
query: {
pageNum: 1,
pageSize: 10
},
}
},
mounted() {
this.fetchData()
},
methods: {
fetchData() {
fetchData(this.query).then((response) => {
const res = response.data
if (res.code !== '200') {
return this.$message.error('获取消息收发记录,失败!')
}
// 获取列表数据
this.tableData = res.data.list
// 获取列表的总记录数
this.total = res.data.total
this.$message.success('获取消息收发记录,成功!');
}).catch(error => {
// 关闭加载
this.$message.error(error.toString())
})
},
uploadExcel({ file, onSuccess, onError }){
// 生成 FormData 对象
const formData = new FormData();
formData.append('file', file);
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
importExcel(formData).then((response) => {
const res = response.data
if (res.code !== '200') {
return this.$message.error(res.msg);
}
this.$message.success(res.msg);
loading.close();
this.fetchData();
onSuccess(response.data); // 调用 onSuccess 回调通知上传成功
}).catch(error => {
// 关闭加载
loading.close();
this.$message.error(error.toString())
onError(error); // 调用 onError 回调通知上传失败
})
},
uploadUpdateExcel({ file, onSuccess, onError }){
// 生成 FormData 对象
const formData = new FormData();
formData.append('file', file);
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
importUpdateExcel(formData).then((response) => {
const res = response.data
if (res.code !== '200') {
return this.$message.error(res.msg);
}
this.$message.success(res.msg);
loading.close();
this.fetchData();
onSuccess(response.data); // 调用 onSuccess 回调通知上传成功
}).catch(error => {
// 关闭加载
loading.close();
this.$message.error(error.toString())
onError(error); // 调用 onError 回调通知上传失败
})
},
handleSizeChange(val) {
this.query.pageSize=val;
this.fetchData()
},
handleCurrentChange(val) {
this.query.pageNum=val;
this.fetchData()
}
}
}
</script>