jinhui.wang

订单详情修改,接口增加,退出修改菜单增加

1 -import request from '@/utils/request'
2 -
3 -/**
4 - * 运单、口岸、站点、预审查看详情(CD类都有)
5 - * @param id
6 - * @param pageIndex
7 - * @param pageSize
8 - * @returns
9 - */
10 -export function getConsInfo(data) {
11 - return request({
12 - url: '/bus-employees/chm/qry/staff/consInfo',
13 - method: 'post',
14 - data: data,
15 - })
16 -}
17 -
18 -/**
19 - * 申报日志查看C类
20 - * @param {} data
21 - * @returns
22 - */
23 -export function getLogC(data) {
24 - return request({
25 - url: '/bus-customer/declared/list/conId',
26 - method: 'post',
27 - data: data,
28 - })
29 -}
30 -
31 -/**
32 - * 申报日志查看D类
33 - * @param {} data
34 - * @returns
35 - */
36 -export function getLogD(data) {
37 - return request({
38 - url: '/bus-customer/consignment/back/info',
39 - method: 'post',
40 - data: data,
41 - })
42 -}
43 -
44 -/**
45 - * D类文件图片查询(右侧)
46 - * @param id
47 - * @param pageIndex
48 - * @param pageSize
49 - * @returns
50 - */
51 -export function getAttachment(data) {
52 - return request({
53 - url: '/bus-employees/attachment/paged/query',
54 - method: 'post',
55 - data: data,
56 - })
57 -}
58 -
59 -/**
60 - * 获取汇率
61 - * @returns
62 - */
63 -export function getExchangeRate() {
64 - return request({
65 - url: '/manager-server/dicEntries/getExchangeRate',
66 - method: 'get',
67 - })
68 -}
69 -
70 -/**
71 - * 获取文件
72 - * @returns
73 - */
74 -export function getFiles(data) {
75 - return request({
76 - url: '/manager-server/attachment/list/slipIdForPic',
77 - method: 'post',
78 - data: data,
79 - })
80 -}
81 -
82 -/**
83 - * 预审通过/不通过/保存
84 - * {
85 - "consignmentId":0,//运单id Long
86 - "flag":1,//流程标志,2为保存,1为审批通过,0为审批不通过 Integer
87 - "rejectRemark": "",//审批备注 String
88 - "portPreAuditFlag":null, //口岸是否预审 String
89 - "approvalTimeFirst":null ,//第一次审批时间 Data
90 - "attachmentsList":[{
91 - "id":0,
92 - "name":"",//文件名
93 - "rotateAngle":90,//顺时针旋转角度
94 - "documentsCheck":1//预审中心的申报单证是否打勾/0=否,1=是
95 - }]
96 -}
97 - * @returns
98 - */
99 -// export function approval(data) {
100 -// return request({
101 -// url: '/bus-employees/rde/op/approval',
102 -// method: 'post',
103 -// data: data,
104 -// })
105 -// }
106 -export function saveApproval(data) {
107 - let formData = new FormData();
108 - if (data.pic == null) {
109 - formData.append("pic", null);
110 - } else {
111 - formData.append("pic", data.pic, data.info.origFileName);
112 - }
113 - formData.append("info", JSON.stringify(data.info));
114 - return request({
115 - url: '/bus-employees/rde/op/detail/save',
116 - method: 'post',
117 - data: formData,
118 - })
119 -}
120 -
121 -
122 -
123 -/**
124 - * 审批通过
125 - *@param pic * 旋转附件
126 - *@param info * 参数json
127 - * @returns
128 - */
129 -export function approved(data) {
130 - let formData = new FormData();
131 - if (data.pic == null) {
132 - formData.append("pic", null);
133 - } else {
134 - formData.append("pic", data.pic, data.info.origFileName);
135 - }
136 - formData.append("info", JSON.stringify(data.info));
137 - return request({
138 - url: '/bus-employees/rde/op/approved',
139 - method: 'post',
140 - data: formData,
141 - })
142 -}
143 -
144 -/**
145 - * 审批不通过
146 - *@param chmId * 运单id
147 - *@param remark * 审批备注
148 - * @returns
149 - */
150 -export function approvalReject(data) {
151 - return request({
152 - url: '/bus-employees/rde/op/reject',
153 - method: 'post',
154 - data: data,
155 - })
156 -}
157 -
158 -
159 -//委托书盖章
160 -/**
161 - * @param pic * 图片
162 - * @param info * 其余参数
163 - */
164 -export function rdeimgStamp(data) {
165 - let formData = new FormData();
166 - if (data.pic == null) {
167 - formData.append("pic", null);
168 - } else {
169 - formData.append("pic", data.pic, data.info.origFileName);
170 - }
171 - formData.append("info", JSON.stringify(data.info));
172 - return request({
173 - url: '/bus-employees/rde/op/execute/stamp',
174 - method: 'post',
175 - data: formData,
176 - })
177 -}
178 -
179 -// //委托书盖章
180 -// /**
181 -// * @param attachmentId * 附件id
182 -// * @param pickUpCityId * 取件城市id
183 -// * @param fileName * 文件名
184 -// * @param consignmentId * 运单id
185 -// * @param rotateAngle * 旋转角度
186 -// */
187 -// export function rdeimgStamp(data) {
188 -// return request({
189 -// url: '/bus-employees/rde/op/stamp',
190 -// method: 'post',
191 -// data: data
192 -// })
193 -// }
194 -
195 -//撤销盖章
196 -/**
197 - * @param chmId * 运单id
198 - */
199 -export function rdeimgRestamp(data) {
200 - return request({
201 - url: '/bus-employees/rde/op/cancel/stamp',
202 - method: 'post',
203 - data: data
204 - })
205 -}
206 -
207 -// //撤销盖章
208 -// /**
209 -// * @param attachmentsPicDtoList * 附件表对象
210 -// * @param consignmentId * 运单id
211 -// */
212 -// export function rdeimgRestamp(data) {
213 -// return request({
214 -// url: '/bus-employees/rde/op/stamp/retract',
215 -// method: 'post',
216 -// data: data
217 -// })
218 -// }
219 -
220 -//下载清关文件
221 -/**
222 - * @param consignmentId * 运单id
223 - */
224 -export function downloadEntryFiles(data) {
225 - return request({
226 - url: '/bus-employees/attachment/download/pdforzip/' + data.consignmentId,
227 - method: 'get',
228 - data: data
229 - })
230 -}
231 -
232 -//下载清关文件
233 -/**
234 - * @param id * 运单id
235 - * @param report * 0预览1打印
236 - */
237 -export function rdeEntryFileView(data) {
238 - return request({
239 - url: '/bus-customer/pdf/print/report',
240 - method: 'post',
241 - data: data
242 - })
243 -}
244 -
245 -//切换图片保存旋转
246 -/**
247 - * @param chmId * 运单id
248 - * @param attachmentId * 附件id
249 - * @param origFileName * 文件名去掉back_
250 - * @param pic 附件流
251 - */
252 -export function setImgRoate(data) {
253 - let formData = new FormData();
254 - if (data.pic != null) {
255 - formData.append("pic", data.pic, data.info.origFileName);
256 - } else {
257 - formData.append('pic', null)
258 - }
259 - formData.append('info', JSON.stringify(data.info))
260 - return request({
261 - url: '/bus-employees/rde/op/revolve',
262 - method: 'post',
263 - data: formData
264 - })
265 -}
266 -
267 -//图片选择状态保存
268 -/**
269 - * @param attachmentId * 附件id
270 - * @param isDocumentCheck * 勾选状态
271 - */
272 -export function setDocumentCheck(data) {
273 - return request({
274 - url: '/bus-employees/rde/op/select',
275 - method: 'post',
276 - data: data
277 - })
278 -}
279 -
280 -//图片选择状态保存
281 -/**
282 - * @param id * 运单id
283 - */
284 -export function getFileDataFromPort(data) {
285 - return request({
286 - url: '/bus-employees/port/op/paged/query',
287 - method: 'post',
288 - data: data
289 - })
290 -}
291 -
292 -//图片选择状态保存
293 -/**
294 - * @param consignmentCode * 运单号
295 - * @param consignmentId * 运单id
296 - * @param list * {
297 - * fileName
298 - * fileSavePath
299 - * fileSize
300 - * selectTypeCode
301 - * uploadTime
302 - * uploadUser
303 - * }
304 - */
305 -export function saveImgFileTypeData(data) {
306 - return request({
307 - url: '/bus-employees/port/op/document/classify',
308 - method: 'post',
309 - data: data
310 - })
311 -}
...\ No newline at end of file ...\ No newline at end of file
1 import request from '@/utils/request' 1 import request from '@/utils/request'
2 2
3 -//审批效验 3 +//订单详情
4 /** 4 /**
5 */ 5 */
6 -export function check(data) { 6 +export function getOrderDetailData(data) {
7 return request({ 7 return request({
8 - url: '/bus-employees/rde/op/approve/check', 8 + url: '/bus-customer/exportOrder/info/' + data.orderId,
9 - method: 'post', 9 + method: 'get',
10 - data: data
11 - })
12 -}
13 -
14 -//审批
15 -/**
16 - */
17 -export function isApproval(data) {
18 - return request({
19 - url: '/bus-employees/rde/op/IsApproval',
20 - method: 'post',
21 data: data 10 data: data
22 }) 11 })
23 } 12 }
24 13
25 -//查找是否有新的预审信息 14 +//订单详情
26 /** 15 /**
27 */ 16 */
28 -export function getNewApprovalType(data) { 17 +export function getOrderLogata(data) {
29 return request({ 18 return request({
30 - url: '/bus-employees/chmConsignmentApproveController/getSendPromptMessageInfo', 19 + url: '/bus-customer/exportOrder/receipt/' + data.orderNo,
31 method: 'get', 20 method: 'get',
32 data: data 21 data: data
33 }) 22 })
......
...@@ -2,10 +2,18 @@ import request from '@/utils/request' ...@@ -2,10 +2,18 @@ import request from '@/utils/request'
2 2
3 // 登录方法 3 // 登录方法
4 export function login(loginName, password, rememberMe, equipmentType, userAgent, selectedLocale) { 4 export function login(loginName, password, rememberMe, equipmentType, userAgent, selectedLocale) {
5 + // const data = {
6 + // loginName,
7 + // password,
8 + // rememberMe
9 + // }
5 const data = { 10 const data = {
6 - loginName, 11 + "email": "247908967@qq.com",
7 - password, 12 + "name": "肖玉兰",
8 - rememberMe 13 + "phone": 18221643976,
14 + "port": "TSN",
15 + "purpleId": 6,
16 + "role": 170
9 } 17 }
10 return request({ 18 return request({
11 url: '/bus-customer/login', 19 url: '/bus-customer/login',
......
...@@ -831,7 +831,7 @@ input:disabled { ...@@ -831,7 +831,7 @@ input:disabled {
831 831
832 .fedexDetialTable { 832 .fedexDetialTable {
833 width: auto; 833 width: auto;
834 - height: 100%; 834 + // height: 100%;
835 position: relative; 835 position: relative;
836 836
837 .el-table::before { 837 .el-table::before {
......
1 -<template>
2 -<div>
3 - <el-table :data="tableData" style="width: 100%" border height="220px">
4 - <el-table-column prop="index" label="序号" width="80"></el-table-column>
5 - <el-table-column prop="productNumber" label="企业商品编号" width="150"></el-table-column>
6 - <el-table-column prop="productName" label="商品企业商品名称" width="180"></el-table-column>
7 - <el-table-column prop="description" label="企业商品描述" width="150"></el-table-column>
8 - <el-table-column prop="code" label="条码" width="150"></el-table-column>
9 - <el-table-column prop="unit" label="计量单位" width="100">
10 - <template slot-scope="scope">
11 - <span>{{ scope.row.unit }}</span>
12 - <i class="el-icon-top" style="margin-left: 5px;"></i>
13 - </template>
14 - </el-table-column>
15 - <el-table-column prop="currency" label="币制" width="80"></el-table-column>
16 - <el-table-column prop="quantity" label="数量" width="80"></el-table-column>
17 - <el-table-column prop="unitPrice" label="单价" width="100"></el-table-column>
18 - <el-table-column prop="totalPrice" label="总价" width="100"></el-table-column>
19 - <el-table-column prop="notes" label="备注" width="300"></el-table-column>
20 - <el-table-column label="操作" width="100" fixed="right">
21 - <template slot-scope="scope">
22 - <el-link type="primary" @click="handleExpand(scope.$index)">展开</el-link>
23 - </template>
24 - </el-table-column>
25 - </el-table>
26 -</div>
27 -</template>
28 -
29 -<script>
30 -export default {
31 - name: "ProductDetailTable",
32 - data() {
33 - return {
34 - tableData: [
35 - {
36 - index: 1,
37 - productNumber: "6704200000",
38 - productName: "真人发发夹",
39 - description: "测试内容",
40 - code: "485607096",
41 - unit: "↑",
42 - currency: "美元",
43 - quantity: 1,
44 - unitPrice: "645.78",
45 - totalPrice: "645.78",
46 - notes: "山东电子口岸已写,加签后上传"
47 - },
48 - {
49 - index: 2,
50 - productNumber: "6704200000",
51 - productName: "真人发发夹",
52 - description: "测试内容",
53 - code: "2145860720",
54 - unit: "↑",
55 - currency: "美元",
56 - quantity: 2,
57 - unitPrice: "645.78",
58 - totalPrice: "645.78",
59 - notes: "山东电子口岸已写,加签后上传"
60 - },
61 - {
62 - index: 3,
63 - productNumber: "6704200000",
64 - productName: "真人发发夹",
65 - description: "测试内容",
66 - code: "2145860720",
67 - unit: "↑",
68 - currency: "美元",
69 - quantity: 3,
70 - unitPrice: "645.78",
71 - totalPrice: "645.78",
72 - notes: "山东电子口岸已写,加签后上传"
73 - },
74 - {
75 - index: 4,
76 - productNumber: "6704200000",
77 - productName: "真人发发夹",
78 - description: "测试内容",
79 - code: "2145860720",
80 - unit: "↑",
81 - currency: "美元",
82 - quantity: 1,
83 - unitPrice: "635.78",
84 - totalPrice: "635.78",
85 - notes: "山东电子口岸已写,加签后上传"
86 - }
87 - // 更多数据项...
88 - ]
89 - };
90 - },
91 - methods: {
92 - handleExpand(index) {
93 - console.log(`展开第 ${index + 1} 行数据`);
94 - }
95 - }
96 -}
97 -</script>
98 -
99 -<style scoped lang="scss">
100 -.el-table {
101 - font-size: 14px;
102 - //border: 1px solid red;
103 - //height: 180px;
104 - overflow: auto;
105 -}
106 -.el-icon-top {
107 - color: #409eff;
108 - font-size: 12px;
109 -}
110 -</style>
1 -<template>
2 - <div>
3 - <table class="custom-table">
4 - <thead>
5 - <tr>
6 - <th v-for="(header, index) in headers" :key="index">{{ header }}</th>
7 - <th v-if="showActionColumn">操作</th>
8 - </tr>
9 - </thead>
10 - <tbody>
11 - <tr v-for="(row, index) in tableData" :key="index">
12 - <td>{{ row.status }}</td>
13 - <td>{{ row.time }}</td>
14 - <td>{{ row.description }}</td>
15 - <td v-if="showActionColumn">
16 - <span class="action-link" @click="handleDownload(row, index)">
17 - 下载回执
18 - </span>
19 - </td>
20 - </tr>
21 - </tbody>
22 - </table>
23 - </div>
24 -</template>
25 -
26 -<script>
27 -export default {
28 - name: "ReceiptInfoTable",
29 - props: {
30 - // 控制操作列是否显示
31 - showActionColumn: {
32 - type: Boolean,
33 - default: true, // 默认显示操作列
34 - },
35 - },
36 - data() {
37 - return {
38 - headers: ["回执状态", "状态时间", "回执描述"],
39 - tableData: [
40 - {
41 - status: "山东电子口岸已上传",
42 - time: "2024-11-08 15:31:58",
43 - description:
44 - "订单变更申请报关单【f291cda6-f664-4bf5-8edc-bcc012f8775】单证不存在,不可报单申报,报文业务主键【24HX-11-40-3722960DYB】",
45 - },
46 - {
47 - status: "山东电子口岸已上传",
48 - time: "2024-11-08 15:31:58",
49 - description: "山东电子口岸已上传",
50 - },
51 - {
52 - status: "山东电子口岸已保存",
53 - time: "2024-11-08 15:30:45",
54 - description: "山东电子口岸已保存,加签后上传",
55 - },
56 - ],
57 - };
58 - },
59 - methods: {
60 - // 处理点击下载回执的事件
61 - handleDownload(row, index) {
62 - console.log("下载回执触发:", row, index);
63 - // 示例下载逻辑,可以根据实际需求添加下载操作
64 - alert(`开始下载回执:第 ${index + 1} 行`);
65 - },
66 - },
67 -};
68 -</script>
69 -
70 -<style scoped lang="scss">
71 -.custom-table {
72 - width: 100%;
73 - border-collapse: collapse;
74 - font-size: 14px;
75 - table-layout: fixed;
76 - background-color: white;
77 -}
78 -
79 -.custom-table th,
80 -.custom-table td {
81 - border: 1px solid #ccc;
82 - padding: 8px 12px;
83 - text-align: left;
84 - word-wrap: break-word;
85 -}
86 -
87 -.custom-table thead {
88 - background-color: #f5f5f5;
89 -}
90 -
91 -.custom-table th {
92 - font-weight: bold;
93 -}
94 -
95 -.custom-table tr:nth-child(odd) {
96 - background-color: #fafafa;
97 -}
98 -
99 -.action-link {
100 - color: #409eff;
101 - cursor: pointer;
102 - text-decoration: none;
103 -}
104 -
105 -.action-link:hover {
106 - text-decoration: underline;
107 -}
108 -</style>
...@@ -189,7 +189,7 @@ export default { ...@@ -189,7 +189,7 @@ export default {
189 cancel: this.$t("system.close"), 189 cancel: this.$t("system.close"),
190 } 190 }
191 ).then(() => { 191 ).then(() => {
192 - this.$store.dispatch("LogOut").then(() => { 192 + this.$store.dispatch("FedLogOut").then(() => {
193 location.href = process.env.VUE_APP_BASE_LOGINOUT; 193 location.href = process.env.VUE_APP_BASE_LOGINOUT;
194 }); 194 });
195 }); 195 });
......
...@@ -90,7 +90,7 @@ export const constantRoutes = [ ...@@ -90,7 +90,7 @@ export const constantRoutes = [
90 ] 90 ]
91 }, 91 },
92 { 92 {
93 - path: '/', 93 + path: '/export',
94 component: Layout, 94 component: Layout,
95 hidden: false, 95 hidden: false,
96 redirect: 'index', 96 redirect: 'index',
...@@ -106,6 +106,7 @@ export const constantRoutes = [ ...@@ -106,6 +106,7 @@ export const constantRoutes = [
106 path: '/exportBillDetail', 106 path: '/exportBillDetail',
107 component: (resolve) => require(['@/views/exportBillDetail/index'], resolve), 107 component: (resolve) => require(['@/views/exportBillDetail/index'], resolve),
108 hidden: true, 108 hidden: true,
109 + name:'ExportBillDetail',
109 meta: { title: '出口订单详情', icon: '' }, 110 meta: { title: '出口订单详情', icon: '' },
110 }, 111 },
111 { 112 {
...@@ -168,7 +169,7 @@ export const constantRoutes = [ ...@@ -168,7 +169,7 @@ export const constantRoutes = [
168 ] 169 ]
169 }, 170 },
170 { 171 {
171 - path: '/', 172 + path: '/summary',
172 component: Layout, 173 component: Layout,
173 hidden: false, 174 hidden: false,
174 redirect: 'index', 175 redirect: 'index',
...@@ -188,6 +189,45 @@ export const constantRoutes = [ ...@@ -188,6 +189,45 @@ export const constantRoutes = [
188 } 189 }
189 ] 190 ]
190 }, 191 },
192 + {
193 + path: '/system',
194 + component: Layout,
195 + hidden: false,
196 + redirect: 'index',
197 + meta: { title: '系统管理', icon: 'fedexQueue' },
198 + children: [
199 + {
200 + path: '/portConfig',
201 + component: (resolve) => require(['@/views/portConfig/index'], resolve),
202 + hidden: false,
203 + meta: { title: '口岸信息管理', icon: '' }
204 + },
205 + {
206 + path: '/userConfig',
207 + component: (resolve) => require(['@/views/userConfig/index'], resolve),
208 + hidden: false,
209 + meta: { title: '客户管理', icon: '' }
210 + },
211 + {
212 + path: '/passwordIpConfig',
213 + component: (resolve) => require(['@/views/passwordIpConfig/index'], resolve),
214 + hidden: false,
215 + meta: { title: '密码机管理', icon: '' }
216 + },
217 + {
218 + path: '/userRoleConfig',
219 + component: (resolve) => require(['@/views/userRoleConfig/index'], resolve),
220 + hidden: false,
221 + meta: { title: '用户管理权限', icon: '' }
222 + },
223 + {
224 + path: '/roleConfig',
225 + component: (resolve) => require(['@/views/roleConfig/index'], resolve),
226 + hidden: false,
227 + meta: { title: '角色管理权限', icon: '' }
228 + },
229 + ]
230 + },
191 ] 231 ]
192 232
193 export default new Router({ 233 export default new Router({
......
1 -<template>
2 - <div
3 - class="entrySreach"
4 - style="overflow-y: auto"
5 - v-loading="loadings.templateLoading"
6 - >
7 - <CustomForm
8 - ref="auditionEntryForm"
9 - :belongBizType="11"
10 - type="auditionEntry"
11 - :paginationOption="page"
12 - @getFormOver="getFormOver"
13 - @formSreach="formSreach"
14 - @formChange="formChange"
15 - />
16 - <div class="optionButton">
17 - <!-- 审批通过 -->
18 - <el-button
19 - class="entrySaveButton"
20 - size="small"
21 - :loading="loadings.passThroughLoading"
22 - :disabled="selected.length == 0 || loadings.noPass"
23 - @click="examine(true)"
24 - ><svg-icon class="el-icon-user-solid" icon-class="fedexPass"></svg-icon>
25 - {{ $t("audition.index.yapproval") }}</el-button
26 - >
27 - <!-- 审批不通过 -->
28 - <el-button
29 - class="entrySaveButton"
30 - size="small"
31 - :loading="loadings.noPass"
32 - :disabled="selected.length == 0 || loadings.passThroughLoading"
33 - @click="examine(false)"
34 - ><svg-icon
35 - class="el-icon-user-solid"
36 - icon-class="fedexRefuse"
37 - ></svg-icon>
38 - {{ $t("audition.index.napproval") }}</el-button
39 - >
40 - <!-- 导出 -->
41 - <el-button
42 - class="entrySaveButton"
43 - size="small"
44 - :loading="loadings.downloadLoading"
45 - :disabled="
46 - tableData.length == 0 ||
47 - loadings.tableLoading ||
48 - loadings.passThroughLoading ||
49 - loadings.noPass
50 - "
51 - @click="exportFile"
52 - ><svg-icon
53 - class="el-icon-user-solid"
54 - icon-class="fedexUpBlue"
55 - ></svg-icon>
56 - {{ $t("system.download") }}</el-button
57 - >
58 - </div>
59 - <CustomTable
60 - class="fedexDetialTable fedexSreachTable"
61 - ref="auditionEntryTable"
62 - :belongBizType="11"
63 - router=""
64 - :tableData="tableData"
65 - :tableHeader="headerData"
66 - :totalCount="total"
67 - :loading="loadings.tableLoading"
68 - @sizeChange="sizeChange"
69 - @currentChange="currentChange"
70 - @tableFormChange="tableFormChange"
71 - @tableSelect="tableSelect"
72 - @selectChange="selectChange"
73 - :page="{
74 - pageNum: page.pageIndex,
75 - sizes: [20, 30, 50, 100],
76 - pageSize: page.pageSize,
77 - layout: 'total,prev, pager, next, jumper, ->, sizes',
78 - }"
79 - :tableOption="{
80 - select: true,
81 - selectFixed: tablefixed ? 'left' : false,
82 - order: false,
83 - orderFixed: false,
84 - indexType: false,
85 - tableHeight: tableMaxheight,
86 - maxHeight: tableMaxheight,
87 - tableBorder: true,
88 - showHeader: true,
89 - fit: true,
90 - highlightCurrentRow: true,
91 - emptyText: $t('system.empty'),
92 - pagination: true,
93 - }"
94 - >
95 - <template slot="optionColumn">
96 - <!-- 操作 -->
97 - <el-table-column
98 - header-align="center"
99 - align="center"
100 - width="80"
101 - :label="$t('system.option')"
102 - :fixed="tablefixed ? 'right' : false"
103 - >
104 - <template slot-scope="scope">
105 - <!-- 查看 -->
106 - <el-button
107 - type="text"
108 - class="text-line"
109 - @click.native="options({ status: 0, data: scope.row })"
110 - >
111 - {{ $t("system.view") }}
112 - </el-button>
113 - </template>
114 - </el-table-column>
115 - </template>
116 - </CustomTable>
117 - </div>
118 -</template>
119 -
120 -<script>
121 -import { encrypt } from "@/utils/jsencrypt";
122 -import {
123 - check,
124 - isApproval,
125 - getNewApprovalType,
126 -} from "@/api/auditionEntry-api.js";
127 -
128 -export default {
129 - name: "AuditionEntrySearch",
130 - components: {},
131 - data() {
132 - return {
133 - tableData: [], //运单数据
134 - headerData: [], //表头
135 - conditionData: {},
136 - nowConditionData: null,
137 - page: {
138 - pageIndex: 1,
139 - pageSize: 20,
140 - },
141 - total: 0, //数据总和
142 - tableMaxheight: null, //表格最大高
143 - loadings: {
144 - templateLoading: false,
145 - tableLoading: false, //表格loading
146 - passThroughLoading: false,
147 - noPass: false,
148 - downloadLoading: false,
149 - },
150 - selected: [],
151 - checkCell: null,
152 - status: 0,
153 - checkEntry: null,
154 - tablefixed: false,
155 - };
156 - },
157 - created() {
158 - this.loadings.templateLoading = true;
159 - // this.setDict();
160 - },
161 - mounted() {
162 - this.tableMaxheight =
163 - window.innerHeight -
164 - Number(this.$refs.auditionEntryForm.$el.offsetHeight) -
165 - 250;
166 - if (this.$store.getters.userData.rde_Type) {
167 - this.checkNewEntry();
168 - }
169 - },
170 - activated() {
171 - if (this.status == 1) {
172 - // this.setDict();
173 - this.$refs.auditionEntryForm.sreach(1, this.conditionData);
174 - }
175 - if (this.$store.getters.userData.rde_Type) {
176 - this.checkNewEntry();
177 - }
178 - },
179 - beforeDestroy() {
180 - this.clearCheckEntry(1);
181 - },
182 - watch: {
183 - $route: {
184 - handler(val) {
185 - if (val.path != "/emp_auditionEntry_parent/emp_auditionEntrySearch") {
186 - this.clearCheckEntry(1);
187 - }
188 - },
189 - deep: true,
190 - },
191 - },
192 - methods: {
193 - //查询
194 - formSreach(val) {
195 - this.clearCheckEntry(0);
196 - if (val != "error") {
197 - this.selected = [];
198 - this.tableData = val.responseData.tableData;
199 - this.headerData = val.responseData.tableHead;
200 - this.total = val.responseData.total;
201 - val.conditionData != null
202 - ? (this.conditionData = val.conditionData)
203 - : "";
204 - this.headerData.forEach((item) => {
205 - //审批备注
206 - if (item.prop == "rejectRemark") {
207 - item.formType = "input";
208 - item.length = "650";
209 - }
210 - //pek复审
211 - // else if (item.prop == "pekReviewFlag") {
212 - // item.formType = "select";
213 - // item.dicyName = "siteAssistance";
214 - // item.dictKey = "name";
215 - // }
216 - });
217 - }
218 - this.loadings.tableLoading = false;
219 - if (this.tableData.length > 0) {
220 - this.status = 1;
221 - }
222 - this.loadings.templateLoading = false;
223 - this.tableFixedTypeChange(
224 - document.getElementsByClassName("el-table__body-wrapper")
225 - ).then((type) => {
226 - this.tablefixed = type;
227 - });
228 - },
229 - //批量审批通过/不通过
230 - examine(status) {
231 - this.clearCheckEntry(0);
232 - let chmConsignmentIds = [];
233 - let chmRejectRemarkList = [];
234 - let chmConsignmentList = [];
235 - let errorConsignment = [];
236 - this.selected.forEach((item, index) => {
237 - item.rejectRemark = item.rejectRemark == null ? "" : item.rejectRemark;
238 - if (!status && item.rejectRemark == "") {
239 - errorConsignment.push(item.consignmentCode);
240 - this.tableData[item.index].rejectRemark = "";
241 - }
242 - item.id = item.chmId;
243 - chmConsignmentIds[index] = item.chmId;
244 - chmRejectRemarkList[index] = item.rejectRemark;
245 - item.siteAssistance = null;
246 - item.siteAssistanceDicId = null;
247 - chmConsignmentList[index] = item;
248 - });
249 - if (errorConsignment.length != 0) {
250 - this.alertErrorMsg(
251 - this.$t("audition.index.tip1", { a: errorConsignment })
252 - );
253 - } else {
254 - if (status) {
255 - this.loadings.passThroughLoading = true;
256 - } else {
257 - this.loadings.noPass = true;
258 - }
259 - return new Promise((resolve, reject) => {
260 - chmRejectRemarkList.push("end");
261 - let obj = {
262 - chmConsignmentIds: chmConsignmentIds,
263 - chmRejectRemarkList: chmRejectRemarkList,
264 - isApprove: status,
265 - };
266 - check(obj)
267 - .then((res) => {
268 - if (res.code === "200" && res.data.extra == "") {
269 - //走审批接口
270 - let obj = {
271 - chmConsignmentIds: chmConsignmentIds,
272 - chmConsignmentList: chmConsignmentList,
273 - isApprove: status,
274 - };
275 - isApproval(obj)
276 - .then((res) => {
277 - if (res.code != "200") {
278 - this.alertWarningMsg(res.message).then(() => {
279 - // this.tableData.forEach((item) => {
280 - // if (chmConsignmentIds.includes(item.chmId)) {
281 - // item.rejectRemark = "";
282 - // }
283 - // });
284 - });
285 - } else {
286 - this.msgSuccess(res.data.extra.successMsg);
287 - this.getFormOver();
288 - }
289 - this.loadings.passThroughLoading = false;
290 - this.loadings.noPass = false;
291 - })
292 - .catch((err) => {
293 - this.loadings.passThroughLoading = false;
294 - this.loadings.noPass = false;
295 - console.log(err);
296 - reject();
297 - });
298 - } else if (res.code === "200") {
299 - this.alertErrorMsg(res.data.extra).then(() => {
300 - // this.tableData.forEach((item) => {
301 - // if (chmConsignmentIds.includes(item.chmId)) {
302 - // item.rejectRemark = "";
303 - // }
304 - // });
305 - });
306 - reject();
307 - this.loadings.passThroughLoading = false;
308 - this.loadings.noPass = false;
309 - } else {
310 - this.alertErrorMsg(res.data.extra).then(() => {
311 - // this.tableData.forEach((item) => {
312 - // if (chmConsignmentIds.includes(item.chmId)) {
313 - // item.rejectRemark = "";
314 - // }
315 - // });
316 - });
317 - this.loadings.passThroughLoading = false;
318 - this.loadings.noPass = false;
319 - reject();
320 - }
321 - })
322 - .catch((err) => {
323 - this.loadings.passThroughLoading = false;
324 - this.loadings.noPass = false;
325 - console.log(err);
326 - reject();
327 - });
328 - });
329 - }
330 - },
331 - //根据查询条件导出
332 - exportFile() {
333 - this.$store.dispatch("SetLoadingType", {
334 - type: true,
335 - text: this.$t("system.downloadingTip"),
336 - });
337 - this.alertWarningMsg(this.$t("system.downloadTip"));
338 - this.clearCheckEntry(1);
339 - this.loadings.downloadLoading = true;
340 - let exportSign =
341 - new Date().getTime() + "_" + this.$store.getters.userData.id + "_14";
342 - let obj = {
343 - belongBizType: 11,
344 - condition: this.conditionData,
345 - total: this.total,
346 - exportSign: exportSign,
347 - };
348 - this.fileDownload
349 - .formSubmitDownload(
350 - "customDownloadXls",
351 - "post",
352 - [{ key: "downloadSreachData", value: JSON.stringify(obj) }],
353 - exportSign
354 - )
355 - .finally(() => {
356 - setTimeout(() => {
357 - this.loadings.downloadLoading = false;
358 - this.$store.dispatch("SetLoadingType", {
359 - type: false,
360 - text: "",
361 - });
362 - }, 1000);
363 - });
364 - },
365 - //分页
366 - currentChange(val) {
367 - this.page.pageIndex = val.page;
368 - this.getFormOver();
369 - },
370 - sizeChange(val) {
371 - this.page.pageSize = val;
372 - this.getFormOver();
373 - },
374 - //table选择变更
375 - tableSelect(selection) {
376 - this.selected = selection.selection;
377 - this.clearCheckEntry(0);
378 - },
379 - inputblur() {
380 - this.checkCell.cell.classList.remove("activeTableCell");
381 - this.checkCell = null;
382 - },
383 - tableCellClick(val) {
384 - if (this.checkCell != null) {
385 - this.inputblur();
386 - }
387 - this.$nextTick(() => {
388 - if (val.column.property == "rejectRemark") {
389 - val.cell.classList.add("activeTableCell");
390 - document
391 - .getElementsByClassName("activeTableCell")[0]
392 - .getElementsByClassName("el-input")[0]
393 - .__vue__.focus();
394 - //这里存下整个单元格,方便取其他值
395 - this.checkCell = val;
396 - this.clearCheckEntry(0);
397 - }
398 - });
399 - },
400 - //字典表添加
401 - setDict() {
402 - let arr = [
403 - "examinePort",
404 - "dictEnties:scanCodePickup",
405 - "dictEnties:yesOrNo",
406 - "dictEnties:receiptState",
407 - "dictEnties:H2000Account",
408 - "dictEnties:transferWaybillStatus_4_2",
409 - "dictEnties:siteAssistance",
410 - "dictEnties:transferWaybillStatus_8_2",
411 - "dictEnties:port",
412 - "dictEnties:OSPRStatus",
413 - "dictEnties:stampIsSeal",
414 - "dictEnties:imageTaskStatus",
415 - "dictEnties:uploadFileStatus",
416 - "dictEnties:waybillPrintingStatus",
417 - "dictEnties:siteAssistance",
418 - ];
419 - arr.forEach((item) => {
420 - this.$store.dispatch("GetDictData", item);
421 - });
422 - },
423 - //操作
424 - options(val) {
425 - this.clearCheckEntry(1);
426 - if (val.status == 0) {
427 - this.$store.dispatch("delEntry");
428 - this.$store.getters.visitedViews.forEach((item) => {
429 - if (item.path == "/auditionEntrySearch") {
430 - this.$store.dispatch("tagsView/delView", item);
431 - }
432 - });
433 - new Promise((resolve, reject) => {
434 - this.sreachEntryLock(val.data.chmId, 0)
435 - .then((res) => {
436 - resolve();
437 - // if (res.code === "41084" && val.data.consStatus == "待中心审核") {
438 - // this.alertWarningMsg(this.$t("audition.index.alert1"));
439 - // } else {
440 -
441 - // }
442 - })
443 - .catch(() => {
444 - if (val.data.consStatus == "待中心审核") {
445 - this.alertWarningMsg(this.$t("audition.index.alert1"));
446 - } else {
447 - resolve();
448 - }
449 - });
450 - }).then(() => {
451 - if (val.data.consType == "C") {
452 - this.$router.push({
453 - name: "DeclarationDetailsC",
454 - params: {
455 - consignmentCode: val.data.consignmentCode,
456 - id: encrypt(val.data.chmId.toString()),
457 - from: "audition",
458 - },
459 - });
460 - } else {
461 - this.$router.push({
462 - name: "DeclarationDetails",
463 - params: {
464 - consignmentCode: val.data.consignmentCode,
465 - id: encrypt(val.data.chmId.toString()),
466 - from: "audition",
467 - },
468 - });
469 - }
470 - });
471 - }
472 - },
473 - getFormOver(val) {
474 - this.clearCheckEntry(0);
475 - this.$nextTick(() => {
476 - if (this.status == 1) {
477 - this.$refs.auditionEntryForm.sreach(1, this.conditionData);
478 - }
479 - });
480 - },
481 - formChange() {
482 - this.clearCheckEntry(0);
483 - },
484 - tableFormChange(val) {
485 - this.clearCheckEntry(0);
486 - },
487 - selectChange(selection) {
488 - this.selected = selection;
489 - this.clearCheckEntry(0);
490 - },
491 - //检测是否有新预审运单并提示
492 - checkNewEntry() {
493 - clearTimeout(this.checkEntry);
494 - if (window.Notification) {
495 - return new Promise((resolve, reject) => {
496 - this.checkEntry = setTimeout(() => {
497 - getNewApprovalType()
498 - .then((res) => {
499 - if (res.code === 200) {
500 - if (res.data.currentRDEApprovalCount > 0) {
501 - this.promptMessage("open");
502 - this.sendNotificationHandler(
503 - this.$t("system.tip"),
504 - this.$t("audition.index.tip2")
505 - ).then((val) => {
506 - this.checkNewEntry();
507 - });
508 - resolve();
509 - } else {
510 - this.checkNewEntry();
511 - }
512 - } else {
513 - this.clearCheckEntry(0);
514 - reject();
515 - }
516 - })
517 - .catch((err) => {
518 - console.log(err);
519 - this.clearCheckEntry(1);
520 - reject();
521 - });
522 - }, 60000);
523 - });
524 - }
525 - },
526 - clearCheckEntry(val) {
527 - clearTimeout(this.checkEntry);
528 - this.promptMessage("close");
529 - if (this.$store.getters.userData.rde_Type && val == 0) {
530 - this.checkNewEntry();
531 - }
532 - },
533 - },
534 -};
535 -</script>
536 -
537 -<style lang="scss" scoped>
538 -@import "@/assets/styles/variables.scss";
539 -
540 -.entrySreach {
541 - height: 100%;
542 - background-color: $menuLightBg;
543 -
544 - .entrySaveButton {
545 - margin-left: 8px;
546 - }
547 -
548 - .entrySreachButton {
549 - display: inline-block;
550 - font-size: 20px;
551 - color: $subMenuHover !important;
552 - }
553 -
554 - .backgroundRow {
555 - background-color: $formItemBackgroundColor;
556 - }
557 -}
558 -
559 -.optionButton {
560 - width: 100%;
561 - padding: 10px 15px;
562 - text-align: right;
563 -
564 - .el-button {
565 - color: $fedexButton;
566 - border-color: $fedexButton !important;
567 - svg {
568 - display: inline-block;
569 - margin-right: 5px;
570 - fill: $fedexButton;
571 - }
572 - }
573 -
574 - .entrySaveButton:hover,
575 - .entrySaveButton:focus {
576 - color: $menuLightBg !important;
577 - background-color: $fedexButton !important;
578 - }
579 -}
580 -
581 -.cellInput {
582 - display: none;
583 -}
584 -
585 -.text-line {
586 - text-decoration: underline;
587 -}
588 -
589 -::v-deep .el-input__inner {
590 - border: 0px;
591 - box-shadow: 0 0 0 0px;
592 - background: none;
593 -}
594 -</style>
1 +<template>
2 + <Table
3 + class="fedexDetialTable fedexTableBlack tableHeightAuto bodyTable"
4 + :data="tableData"
5 + :headerData="bodyHeader"
6 + :order="true"
7 + :border="false"
8 + :pagination="false"
9 + :pageSizes="[20, 30, 50, 100]"
10 + noLabel="序号"
11 + rowKey="index"
12 + emptyText="暂无数据"
13 + :rowStyleType="true"
14 + :rowStyleOption="{
15 + key: 'isError',
16 + value: 1,
17 + className: 'tableErrorRow',
18 + }"
19 + :expandRowKeys="expandRowKeys"
20 + >
21 + <template slot="optionColumn">
22 + <el-table-column
23 + header-align="center"
24 + align="center"
25 + label="操作"
26 + width="120"
27 + >
28 + <template slot-scope="scope">
29 + <!-- 展开/收起 -->
30 + <el-button
31 + type="text"
32 + @click="
33 + expandRowKeys.includes(scope.row.index)
34 + ? closeEdit()
35 + : editDetail(scope.row)
36 + "
37 + >
38 + <!-- 收起 -->
39 + <span v-show="expandRowKeys.includes(scope.row.index)">
40 + <svg-icon icon-class="upIcon" />
41 + {{ $t("entry.detial.form.up") }}
42 + </span>
43 + <!-- 展开 -->
44 + <span v-show="!expandRowKeys.includes(scope.row.index)"
45 + ><svg-icon icon-class="downIcon" />
46 + {{ $t("entry.detial.form.down") }}
47 + </span>
48 + </el-button>
49 + </template>
50 + </el-table-column>
51 + </template>
52 + </Table>
53 +</template>
54 +
55 +<script>
56 +export default {
57 + props: {
58 + tableData: {
59 + type: Array,
60 + default() {
61 + return [];
62 + },
63 + },
64 + bodyHeader: {
65 + type: Array,
66 + default() {
67 + return [];
68 + },
69 + },
70 + },
71 + data() {
72 + return {
73 + expandRowKeys: [],
74 + };
75 + },
76 + methods: {},
77 +};
78 +</script>
79 +
80 +<style scoped lang="scss">
81 +.fedexDetialTable {
82 + max-height: 310px;
83 +}
84 +</style>
1 +<template>
2 + <Table
3 + class="fedexDetialTable fedexTableBlack tableHeightAuto bodyTable"
4 + ref="entryTable"
5 + :data="tableData"
6 + :headerData="headerData"
7 + :maxHeight="300"
8 + :border="false"
9 + :pagination="false"
10 + :order="false"
11 + :page="1"
12 + :pageSizes="[20, 30, 50, 100]"
13 + :totalCount="0"
14 + :selection="false"
15 + :selectFixed="false"
16 + :rowSelectDataType="false"
17 + ></Table>
18 +</template>
19 +
20 +<script>
21 +export default {
22 + name: "ReceiptInfoTable",
23 + props: {
24 + tableData: {
25 + type: Array,
26 + default() {
27 + return [];
28 + },
29 + },
30 + headerData: {
31 + type: Array,
32 + default() {
33 + return [
34 + {
35 + name: "回执状态",
36 + value: "",
37 + width: "",
38 + align: "left",
39 + },
40 + {
41 + name: "状态时间",
42 + value: "",
43 + width: "",
44 + align: "left",
45 + },
46 + {
47 + name: "回执描述",
48 + value: "",
49 + width: "",
50 + align: "left",
51 + },
52 + ];
53 + },
54 + },
55 + },
56 + data() {
57 + return {};
58 + },
59 + methods: {},
60 +};
61 +</script>
62 +
63 +<style scoped lang="scss">
64 +.fedexDetialTable {
65 + max-height: 310px;
66 +}
67 +</style>
1 -<template>
2 - <!-- 表体 -->
3 - <Table
4 - class="fedexDetialTable"
5 - :data="tableData"
6 - :headerData="headerData"
7 - @rowClick="rowClick"
8 - maxHeight="300px"
9 - :order="false"
10 - :border="false"
11 - :pagination="false"
12 - :pageSizes="[20, 30, 50, 100]"
13 - :highlightCurrentRow="false"
14 - >
15 - <template v-slot:skuCode="scope">
16 - <el-tooltip
17 - class="item"
18 - effect="dark"
19 - :content="scope.row.model"
20 - placement="right"
21 - >
22 - <span>{{ scope.row.skuCode }}</span>
23 - </el-tooltip>
24 - </template>
25 - <template v-slot:knockdownNumber="scope">
26 - <span
27 - >{{ scope.row.knockdownNumber | clearNull }}
28 - {{ scope.row.knockdownUnit | clearNull }}</span
29 - >
30 - </template>
31 - <template v-slot:qtyLegalFirst="scope">
32 - <span
33 - >{{ scope.row.qtyLegalFirst | clearNull }}
34 - {{ scope.row.unitLegalFirst | clearNull }}</span
35 - >
36 - </template>
37 - <template v-slot:qtyLegalSecond="scope">
38 - <span
39 - >{{ scope.row.qtyLegalSecond | clearNull }}
40 - {{ scope.row.unitLegalSecond | clearNull }}</span
41 - >
42 - </template>
43 - <template v-slot:amount="scope">
44 - <span
45 - >{{ scope.row.amount | clearNull }}
46 - {{ scope.row.currency | clearNull }}</span
47 - >
48 - </template>
49 - </Table>
50 -</template>
51 -
52 -<script>
53 -export default {
54 - props: {
55 - tableData: {
56 - type: Array,
57 - default: null,
58 - },
59 - headerData: {
60 - type: Array,
61 - default: null,
62 - },
63 - activeDetial: {
64 - type: Object,
65 - default: null,
66 - },
67 - dictData: {
68 - type: Object,
69 - default: null,
70 - },
71 - },
72 - data() {
73 - return {
74 - formData: this.activeDetial,
75 - expandRowKeys: [],
76 - unit: [],
77 - levyType: [],
78 - currency: [],
79 - country: [],
80 - };
81 - },
82 - watch: {
83 - activeDetial(val) {
84 - if (val == null) {
85 - this.expandRowKeys = [];
86 - }
87 - this.formData = val;
88 - },
89 - detialsData(val) {
90 - this.tableData = val;
91 - },
92 - },
93 - methods: {
94 - rowClick(val) {
95 - this.$emit("rowClick", val);
96 - },
97 - },
98 - filters: {
99 - clearNull(value) {
100 - if (value == null) {
101 - return "";
102 - } else {
103 - return value;
104 - }
105 - },
106 - },
107 -};
108 -</script>
109 -
110 -<style lang="scss" scoped>
111 -::v-deep .el-table tr {
112 - background-color: #f2f2f2 !important;
113 - border: 0;
114 -}
115 -
116 -::v-deep .el-table--enable-row-hover .el-table__body tr:hover > td {
117 - background-color: #f2f2f2 !important;
118 -}
119 -</style>
1 -<template>
2 - <el-dialog
3 - :title="$t('declaration.indexD.dialogTitle')"
4 - :visible="bodyDialogVisible"
5 - width="65%"
6 - center
7 - @close="closeDialog"
8 - @open="openDialog"
9 - >
10 - <!-- 表头 -->
11 - <el-form
12 - class="fedexFormStyle"
13 - ref="bodyDialogForm"
14 - v-loading="dialogLoading"
15 - :model="formInfo"
16 - label-position="top"
17 - :disabled="disabled"
18 - >
19 - <el-row :gutter="5">
20 - <!-- 中文品名 -->
21 - <el-col :span="8">
22 - <Formitem
23 - :label="$t('entry.detial.form.label1')"
24 - :type="type"
25 - prop="inputItem"
26 - :disabled="false"
27 - >
28 - <el-input
29 - type="text"
30 - :id="'inputInner-' + type + '-inputItem'"
31 - v-model="formInfo.inputItem"
32 - @blur="inputItemBlur"
33 - ></el-input>
34 - </Formitem>
35 - </el-col>
36 - <!-- 商品编号 -->
37 - <el-col :span="8">
38 - <Formitem
39 - :label="$t('entry.detial.form.label3')"
40 - :type="type"
41 - prop="skuCode"
42 - :disabled="false"
43 - >
44 - <el-input
45 - type="text"
46 - :id="'inputInner-' + type + '-skuCode'"
47 - v-model="formInfo.skuCode"
48 - @blur="inputItemBlur"
49 - ></el-input>
50 - </Formitem>
51 - </el-col>
52 - <!-- 商品名称 -->
53 - <el-col :span="8">
54 - <Formitem
55 - :label="$t('entry.skuCodeDialog.table.label2')"
56 - :type="type"
57 - prop="skuName"
58 - :disabled="false"
59 - >
60 - <el-input
61 - type="text"
62 - :id="'inputInner-' + type + '-skuName'"
63 - v-model="formInfo.skuName"
64 - @blur="inputItemBlur"
65 - ></el-input>
66 - </Formitem>
67 - </el-col>
68 - </el-row>
69 - <el-row :gutter="5" v-for="(rowItem, idx) in rowList" :key="idx">
70 - <el-col :span="6" v-for="(item, index) in rowItem" :key="index">
71 - <Formitem :label="item.element" :prop="item.key" :disabled="false">
72 - <el-input
73 - v-if="
74 - item.element != '品牌类型' && item.element != '出口享惠情况'
75 - "
76 - type="text"
77 - :id="'inputInner--' + item.key"
78 - v-model="elementForm[item.key]"
79 - ></el-input>
80 - <el-select
81 - v-else-if="item.element == '品牌类型'"
82 - :id="'inputInner--' + item.key"
83 - v-model="elementForm[item.key]"
84 - placeholder=""
85 - >
86 - <el-option
87 - v-for="(val, idx) in dictData.brandType"
88 - :key="idx"
89 - :label="val.name"
90 - :value="val.code"
91 - ></el-option>
92 - </el-select>
93 - <el-select
94 - v-else-if="item.element == '出口享惠情况'"
95 - :id="'inputInner--' + item.key"
96 - v-model="elementForm[item.key]"
97 - placeholder=""
98 - >
99 - <el-option
100 - v-for="(val, idx) in dictData.exportBenefits"
101 - :key="idx"
102 - :label="val.name"
103 - :value="val.code"
104 - ></el-option>
105 - </el-select>
106 - </Formitem>
107 - </el-col>
108 - </el-row>
109 - </el-form>
110 - </el-dialog>
111 -</template>
112 -
113 -<script>
114 -import { getHscode } from "@/api/detial-api.js";
115 -export default {
116 - props: {
117 - formInfo: {
118 - type: Object,
119 - default: null,
120 - },
121 - dictData: {
122 - type: Object,
123 - default: null,
124 - },
125 - bodyDialogVisible: {
126 - type: Boolean,
127 - default: null,
128 - },
129 - disabled: {
130 - type: Boolean,
131 - default() {
132 - return false;
133 - },
134 - },
135 - type: {
136 - type: String,
137 - default: "",
138 - },
139 - },
140 - data() {
141 - return {
142 - visible: this.bodyDialogVisible,
143 - dialogLoading: false,
144 - rowList: [],
145 - elementForm: {
146 - element0: "",
147 - element1: "",
148 - element2: "",
149 - element3: "",
150 - element4: "",
151 - element5: "",
152 - element6: "",
153 - element7: "",
154 - element8: "",
155 - element9: "",
156 - element10: "",
157 - element11: "",
158 - element12: "",
159 - element13: "",
160 - element14: "",
161 - element15: "",
162 - element16: "",
163 - element17: "",
164 - element18: "",
165 - element19: "",
166 - element20: "",
167 - },
168 - };
169 - },
170 - watch: {},
171 - methods: {
172 - inputItemBlur(val) {
173 - this.$emit("inputItemBlur", this.activeDetial);
174 - },
175 - closeDialog() {
176 - (this.elementForm = {
177 - element0: "",
178 - element1: "",
179 - element2: "",
180 - element3: "",
181 - element4: "",
182 - element5: "",
183 - element6: "",
184 - element7: "",
185 - element8: "",
186 - element9: "",
187 - element10: "",
188 - element11: "",
189 - element12: "",
190 - element13: "",
191 - element14: "",
192 - element15: "",
193 - element16: "",
194 - element17: "",
195 - element18: "",
196 - element19: "",
197 - element20: "",
198 - }),
199 - (this.rowList = []);
200 - this.visible = false;
201 - this.$emit("closeDialog", this.visible);
202 - },
203 - openDialog() {
204 - this.dialogLoading = true;
205 - let arr = this.formInfo.model.split("|");
206 - arr.forEach((item, index) => {
207 - if (item.split(":")[0] != "品名") {
208 - if (item.split(":")[0] == "品牌类型") {
209 - this.elementForm[`element${index}`] = item.split(":")[1]
210 - ? "brandType_" + item.split(":")[1]
211 - : "";
212 - } else if (item.split(":")[0] == "出口享惠情况") {
213 - this.elementForm[`element${index}`] = item.split(":")[1]
214 - ? "exportBenefits_" + item.split(":")[1]
215 - : "";
216 - } else {
217 - this.elementForm[`element${index}`] = item.split(":")[1]
218 - ? item.split(":")[1]
219 - : "";
220 - }
221 - }
222 - });
223 - return new Promise((resolve, reject) => {
224 - getHscode({
225 - condition: this.formInfo.skuCode,
226 - pageIndex: 1,
227 - pageSize: 20,
228 - })
229 - .then((res) => {
230 - if (res.code === "200") {
231 - this.rowList = []
232 - let codeInfo = res.data.extra.hsCodes;
233 - let elementList = this.hscodeElementInfo(codeInfo[0]);
234 - let elementItem = [];
235 - let arr = [];
236 - elementList.forEach((item, index) => {
237 - if (item.element != "品名") {
238 - if (elementItem.length < 4) {
239 - elementItem.push(item);
240 - if (index == elementList.length - 1) {
241 - arr.push(elementItem);
242 - // this.rowList.push(elementItem);
243 - elementItem = [];
244 - }
245 - } else {
246 - // this.rowList.push(elementItem);
247 - arr.push(elementItem);
248 - elementItem = [];
249 - if (index == elementList.length - 1) {
250 - elementItem.push(item);
251 - // this.rowList.push(elementItem);
252 - arr.push(elementItem);
253 - } else {
254 - elementItem.push(item);
255 - }
256 - }
257 - }
258 - });
259 - this.rowList = arr;
260 - this.dialogLoading = false;
261 - resolve();
262 - } else {
263 - this.alertWarningMsg(res.message);
264 - reject();
265 - }
266 - })
267 - .catch((err) => {
268 - reject();
269 - });
270 - });
271 - },
272 - },
273 - filters: {
274 - clearNull(value) {
275 - if (value == null) {
276 - return "";
277 - } else {
278 - return value;
279 - }
280 - },
281 - },
282 -};
283 -</script>
1 -<template>
2 - <!-- 表头 -->
3 - <el-form
4 - class="fedexFormStyle mt10"
5 - ref="companyForm"
6 - :model="headData"
7 - label-position="top"
8 - :disabled="disabled"
9 - >
10 - <el-row :gutter="5">
11 - <!-- 运单号 -->
12 - <el-col :span="showHelf ? 6 : 3">
13 - <Formitem
14 - :label="$t('netrySreach.table.label1')"
15 - :type="type"
16 - :disabled="false"
17 - :toolyipShow="true"
18 - prop="consignmentCode"
19 - @event="formItemEvent"
20 - >
21 - <el-input
22 - type="text"
23 - :id="'inputInner-' + type + '-consignmentCode'"
24 - v-model="headData.consignmentCode"
25 - @blur="inputItemBlur"
26 - ></el-input>
27 - </Formitem>
28 - </el-col>
29 - <!-- 运单类型 -->
30 - <el-col :span="showHelf ? 6 : 3">
31 - <Formitem
32 - :label="$t('netrySreach.table.label2')"
33 - :type="type"
34 - :disabled="false"
35 - :toolyipShow="true"
36 - prop="consTypeDicId"
37 - @event="formItemEvent"
38 - >
39 - <el-select
40 - name="consTypeDicId"
41 - :id="'inputInner-' + type + '-consTypeDicId'"
42 - v-model="headData.consTypeDicId"
43 - filterable
44 - placeholder=""
45 - value-key="id"
46 - @change="inputItemBlur"
47 - >
48 - <el-option
49 - v-for="(item, index) in dictData.consType"
50 - :key="index"
51 - :label="item.name | entryClass"
52 - :value="item.id"
53 - ></el-option>
54 - </el-select>
55 - </Formitem>
56 - </el-col>
57 - <!-- 境外收货人名称(外文) -->
58 - <el-col :span="showHelf ? 6 : 3">
59 - <Formitem
60 - :label="$t('entry.company.form.label9')"
61 - :type="type"
62 - :disabled="false"
63 - :toolyipShow="true"
64 - prop="label9"
65 - @event="formItemEvent"
66 - >
67 - <el-input
68 - type="text"
69 - :id="'inputInner-' + type + '-label9'"
70 - v-model="headData.overseasConsignorFnCname"
71 - @blur="inputItemBlur"
72 - ></el-input>
73 - </Formitem>
74 - </el-col>
75 - <!-- 境外收货人编码 -->
76 - <el-col :span="showHelf ? 6 : 3">
77 - <Formitem
78 - :label="$t('entry.company.form.label10')"
79 - :type="type"
80 - :disabled="false"
81 - :toolyipShow="true"
82 - prop="label10"
83 - @event="formItemEvent"
84 - >
85 - <el-input
86 - type="text"
87 - :id="'inputInner-' + type + '-label10'"
88 - v-model="headData.overseasConsignorCode"
89 - @blur="inputItemBlur"
90 - ></el-input>
91 - </Formitem>
92 - </el-col>
93 - <!-- </el-row>
94 - <el-row :gutter="5"> -->
95 - <!-- 生产销售单位 -->
96 - <el-col :span="showHelf ? 12 : 6">
97 - <Formitem
98 - :label="$t('entry.company.form.label6')"
99 - :type="type"
100 - :disabled="false"
101 - :toolyipShow="true"
102 - prop="ownerName"
103 - @event="formItemEvent"
104 - >
105 - <el-input
106 - type="text"
107 - :id="'inputInner-' + type + '-ownerName'"
108 - v-model="headData.ownerName"
109 - @blur="inputItemBlur"
110 - ></el-input>
111 - </Formitem>
112 - </el-col>
113 - <!-- 生产销售单位海关备案编码 -->
114 - <el-col :span="showHelf ? 6 : 3">
115 - <Formitem
116 - :label="$t('declaration.indexD.headForm.label1')"
117 - :type="type"
118 - :disabled="false"
119 - :toolyipShow="true"
120 - prop="ownerCode"
121 - @event="formItemEvent"
122 - >
123 - <el-input
124 - type="text"
125 - :id="'inputInner-' + type + '-ownerCode'"
126 - v-model="headData.ownerCode"
127 - @blur="inputItemBlur"
128 - ></el-input>
129 - </Formitem>
130 - </el-col>
131 - <!-- 生产销售单位统一社会信用代码 -->
132 - <el-col :span="showHelf ? 6 : 3">
133 - <Formitem
134 - :label="$t('declaration.indexD.headForm.label2')"
135 - :type="type"
136 - :disabled="false"
137 - :toolyipShow="true"
138 - prop="ownerCodeScc"
139 - @event="formItemEvent"
140 - >
141 - <el-input
142 - type="text"
143 - :id="'inputInner-' + type + '-ownerCodeScc'"
144 - v-model="headData.ownerCodeScc"
145 - @blur="inputItemBlur"
146 - ></el-input>
147 - </Formitem>
148 - </el-col>
149 - </el-row>
150 - <el-row :gutter="5">
151 - <!-- 境内发货人 -->
152 - <el-col :span="showHelf ? 12 : 6">
153 - <Formitem
154 - :label="$t('entry.company.form.label2')"
155 - :type="type"
156 - :disabled="false"
157 - :toolyipShow="true"
158 - prop="operateUnitName"
159 - @event="formItemEvent"
160 - >
161 - <el-input
162 - type="text"
163 - :id="'inputInner-' + type + '-operateUnitName'"
164 - v-model="headData.operateUnitName"
165 - @blur="inputItemBlur"
166 - ></el-input>
167 - </Formitem>
168 - </el-col>
169 - <!-- 境内发货人海关备案编码 -->
170 - <el-col :span="showHelf ? 6 : 3">
171 - <Formitem
172 - :label="$t('declaration.indexD.headForm.label3')"
173 - :type="type"
174 - :disabled="false"
175 - :toolyipShow="true"
176 - prop="operateUnitCode"
177 - @event="formItemEvent"
178 - >
179 - <el-input
180 - type="text"
181 - :id="'inputInner-' + type + '-operateUnitCode'"
182 - v-model="headData.operateUnitCode"
183 - @blur="inputItemBlur"
184 - ></el-input>
185 - </Formitem>
186 - </el-col>
187 - <!-- 境内发货人统一社会信用代码 -->
188 - <el-col :span="showHelf ? 6 : 3">
189 - <Formitem
190 - :label="$t('declaration.indexD.headForm.label4')"
191 - :type="type"
192 - :disabled="false"
193 - :toolyipShow="true"
194 - prop="tradeCoSCC"
195 - @event="formItemEvent"
196 - >
197 - <el-input
198 - type="text"
199 - :id="'inputInner-' + type + '-tradeCoSCC'"
200 - v-model="headData.tradeCoSCC"
201 - @blur="inputItemBlur"
202 - ></el-input>
203 - </Formitem>
204 - </el-col>
205 - <!-- </el-row>
206 - <el-row :gutter="5"> -->
207 - <!-- 运输方式 -->
208 - <el-col :span="showHelf ? 6 : 3">
209 - <Formitem
210 - :label="$t('entry.company.form.label11')"
211 - :type="type"
212 - :disabled="false"
213 - :toolyipShow="true"
214 - prop="vehicleWayId"
215 - @event="formItemEvent"
216 - >
217 - <el-select
218 - :id="'inputInner-' + type + '-vehicleWayId'"
219 - v-model="headData.vehicleWayId"
220 - filterable
221 - placeholder=""
222 - value-key="id"
223 - @change="inputItemBlur"
224 - >
225 - <el-option
226 - v-for="(item, index) in dictData.VehicleWayCode"
227 - :key="index"
228 - :label="item.name"
229 - :value="item.id"
230 - ></el-option>
231 - </el-select>
232 - </Formitem>
233 - </el-col>
234 - <!-- 贸易国(地区) -->
235 - <el-col :span="showHelf ? 6 : 3">
236 - <Formitem
237 - :label="$t('entry.company.form.label12')"
238 - :type="type"
239 - :disabled="false"
240 - :toolyipShow="true"
241 - prop="tradeAreaCodeDicId"
242 - @event="formItemEvent"
243 - >
244 - <el-select
245 - name="tradeAreaCode"
246 - :id="'inputInner-' + type + '-tradeAreaCodeDicId'"
247 - v-model="headData.tradeAreaCodeDicId"
248 - filterable
249 - placeholder=""
250 - value-key="id"
251 - @change="inputItemBlur"
252 - >
253 - <el-option
254 - v-for="(item, index) in dictData.Country"
255 - :key="index"
256 - :label="item.name"
257 - :value="item.id"
258 - ></el-option>
259 - </el-select>
260 - </Formitem>
261 - </el-col>
262 - <!-- 抵运国(地区) -->
263 - <el-col :span="showHelf ? 6 : 3">
264 - <Formitem
265 - :label="$t('entry.company.form.label13')"
266 - :type="type"
267 - :disabled="false"
268 - :toolyipShow="true"
269 - prop="fromCountryDicId"
270 - @event="formItemEvent"
271 - >
272 - <el-select
273 - name="fromCountry"
274 - :id="'inputInner-' + type + '-fromCountryDicId'"
275 - v-model="headData.fromCountryDicId"
276 - filterable
277 - placeholder=""
278 - value-key="id"
279 - @change="inputItemBlur"
280 - >
281 - <el-option
282 - v-for="(item, index) in dictData.Country"
283 - :key="index"
284 - :label="item.name"
285 - :value="item.id"
286 - ></el-option>
287 - </el-select>
288 - </Formitem>
289 - </el-col>
290 - <!-- 指运港 -->
291 - <el-col :span="showHelf ? 6 : 3">
292 - <Formitem
293 - :label="$t('entry.company.form.label14')"
294 - :type="type"
295 - :disabled="false"
296 - :toolyipShow="true"
297 - prop="throughStopPortDicId"
298 - @event="formItemEvent"
299 - >
300 - <el-select
301 - name="throughStopPort"
302 - :id="'inputInner-' + type + '-throughStopPortDicId'"
303 - v-model="headData.throughStopPortDicId"
304 - filterable
305 - placeholder=""
306 - value-key="id"
307 - @change="inputItemBlur"
308 - >
309 - <el-option
310 - v-for="(item, index) in dictData.port"
311 - :key="index"
312 - :label="item.portName"
313 - :value="item.id"
314 - ></el-option>
315 - </el-select>
316 - </Formitem>
317 - </el-col>
318 - </el-row>
319 - <el-row :gutter="5">
320 - <!-- 包装种类 -->
321 - <el-col :span="showHelf ? 6 : 3">
322 - <Formitem
323 - :label="$t('entry.company.form.label15')"
324 - :type="type"
325 - :disabled="false"
326 - :toolyipShow="true"
327 - prop="packageTypeDicId"
328 - @event="formItemEvent"
329 - >
330 - <el-select
331 - name="packageType"
332 - :id="'inputInner-' + type + '-packageTypeDicId'"
333 - v-model="headData.packageTypeDicId"
334 - filterable
335 - placeholder=""
336 - value-key="id"
337 - @change="inputItemBlur"
338 - >
339 - <el-option
340 - v-for="(item, index) in dictData.NewPackageType"
341 - :key="index"
342 - :label="item.name"
343 - :value="item.id"
344 - ></el-option>
345 - </el-select>
346 - </Formitem>
347 - </el-col>
348 - <!-- 运单件数 -->
349 - <el-col :span="showHelf ? 6 : 3">
350 - <Formitem
351 - :label="$t('entry.company.form.label16')"
352 - :type="type"
353 - :disabled="false"
354 - :toolyipShow="true"
355 - prop="counts"
356 - @event="formItemEvent"
357 - >
358 - <el-input
359 - type="text"
360 - :id="'inputInner-' + type + '-counts'"
361 - v-model="headData.counts"
362 - maxlength="15"
363 - @blur="inputItemBlur"
364 - />
365 - </Formitem>
366 - </el-col>
367 - <!-- 毛重(公斤) -->
368 - <el-col :span="showHelf ? 6 : 3">
369 - <Formitem
370 - :label="$t('entry.company.form.label17')"
371 - :type="type"
372 - :disabled="false"
373 - :toolyipShow="true"
374 - prop="grossWeight"
375 - @event="formItemEvent"
376 - >
377 - <el-input
378 - type="text"
379 - :id="'inputInner-' + type + '-grossWeight'"
380 - v-model="headData.grossWeight"
381 - maxlength="15"
382 - @blur="inputItemBlur"
383 - />
384 - </Formitem>
385 - </el-col>
386 - <!-- 净重(公斤) -->
387 - <el-col :span="showHelf ? 6 : 3">
388 - <Formitem
389 - :label="$t('entry.company.form.label18')"
390 - :type="type"
391 - :disabled="false"
392 - :toolyipShow="true"
393 - prop="netWeight"
394 - @event="formItemEvent"
395 - >
396 - <el-input
397 - type="text"
398 - :id="'inputInner-' + type + '-netWeight'"
399 - v-model="headData.netWeight"
400 - maxlength="15"
401 - @blur="inputItemBlur"
402 - />
403 - </Formitem>
404 - </el-col>
405 - <!-- </el-row>
406 - <el-row :gutter="5"> -->
407 - <!-- 监管方式 -->
408 - <el-col :span="showHelf ? 6 : 3">
409 - <Formitem
410 - :label="$t('entry.company.form.label19')"
411 - :type="type"
412 - :disabled="false"
413 - :toolyipShow="true"
414 - prop="tradeModeDicId"
415 - @event="formItemEvent"
416 - >
417 - <el-select
418 - name="tradeMode"
419 - :id="'inputInner-' + type + '-tradeModeDicId'"
420 - v-model="headData.tradeModeDicId"
421 - filterable
422 - placeholder=""
423 - value-key="id"
424 - @change="inputItemBlur"
425 - >
426 - <el-option
427 - v-for="(item, index) in dictData.supervisionMode"
428 - :key="index"
429 - :label="item.name"
430 - :value="item.id"
431 - ></el-option>
432 - </el-select>
433 - </Formitem>
434 - </el-col>
435 - <!-- 征免性质 -->
436 - <el-col :span="showHelf ? 6 : 3">
437 - <Formitem
438 - :label="$t('entry.company.form.label21')"
439 - :type="type"
440 - :disabled="false"
441 - :toolyipShow="true"
442 - prop="taxNatureDicId"
443 - @event="formItemEvent"
444 - >
445 - <el-select
446 - name="taxNature"
447 - :id="'inputInner-' + type + '-taxNatureDicId'"
448 - v-model="headData.taxNatureDicId"
449 - filterable
450 - placeholder=""
451 - value-key="id"
452 - @change="inputItemBlur"
453 - >
454 - <el-option
455 - v-for="(item, index) in dictData.natureExemption"
456 - :key="index"
457 - :label="item.name"
458 - :value="item.id"
459 - ></el-option>
460 - </el-select>
461 - </Formitem>
462 - </el-col>
463 - <!-- 关联进口报关单号 -->
464 - <el-col :span="showHelf ? 6 : 3">
465 - <Formitem
466 - :label="$t('entry.company.form.label20')"
467 - :type="type"
468 - :disabled="false"
469 - :toolyipShow="true"
470 - prop="relatedDeclarationNo"
471 - @event="formItemEvent"
472 - >
473 - <el-input
474 - type="text"
475 - :id="'inputInner-' + type + '-relatedDeclarationNo'"
476 - v-model="headData.relatedDeclarationNo"
477 - maxlength="18"
478 - @blur="formChange"
479 - />
480 - </Formitem>
481 - </el-col>
482 - <!-- 成交方式 -->
483 - <el-col :span="showHelf ? 6 : 3">
484 - <Formitem
485 - :label="$t('entry.company.form.label22')"
486 - :type="type"
487 - :disabled="false"
488 - :toolyipShow="true"
489 - prop="dealModeDicId"
490 - @event="formItemEvent"
491 - >
492 - <el-select
493 - name="dealMode"
494 - :id="'inputInner-' + type + '-dealModeDicId'"
495 - v-model="headData.dealModeDicId"
496 - filterable
497 - placeholder=""
498 - value-key="id"
499 - @change="inputItemBlur"
500 - >
501 - <el-option
502 - v-for="(item, index) in dictData.ClinchType"
503 - :key="index"
504 - :label="item.name"
505 - :value="item.id"
506 - ></el-option>
507 - </el-select>
508 - </Formitem>
509 - </el-col>
510 - </el-row>
511 - <el-row :gutter="5">
512 - <!-- 运费 -->
513 - <el-col :span="showHelf ? 6 : 3">
514 - <el-row :gutter="3">
515 - <el-col :xl="12" :lg="12" :md="12" :sm="12" :xs="12">
516 - <Formitem
517 - :label="$t('entry.company.form.label23')"
518 - :type="type"
519 - :disabled="false"
520 - :toolyipShow="true"
521 - prop="transRateDicCode"
522 - @event="formItemEvent"
523 - >
524 - <el-select
525 - name="transRate"
526 - :id="'inputInner-' + type + '-transRateDicCode'"
527 - v-model="headData.transRateDicCode"
528 - placeholder=""
529 - value-key="id"
530 - @change="inputItemBlur"
531 - >
532 - <el-option
533 - v-for="(item, index) in dictData.ENTRY_METHOD"
534 - :key="index"
535 - :label="item.name"
536 - :value="item.code"
537 - ></el-option>
538 - </el-select>
539 - </Formitem>
540 - </el-col>
541 - <el-col :xl="12" :lg="12" :md="12" :sm="12" :xs="12">
542 - <el-form-item
543 - :class="{
544 - 'formItem-justItem':
545 - headData.transRateDicCode == '3' ? true : false,
546 - }"
547 - >
548 - <Formitem
549 - v-show="headData.transRateDicCode == '3'"
550 - :label="$t('entry.company.form.label24')"
551 - :type="type"
552 - :disabled="false"
553 - :toolyipShow="true"
554 - prop="transCurrencyDicId"
555 - @event="formItemEvent"
556 - >
557 - <el-select
558 - name="transCurrencyDic"
559 - :id="'inputInner-' + type + '-transCurrencyDicId'"
560 - v-model="headData.transCurrencyDicId"
561 - filterable
562 - placeholder=""
563 - value-key="id"
564 - @change="inputItemBlur"
565 - >
566 - <el-option
567 - v-for="(item, index) in dictData.currencySystem"
568 - :key="index"
569 - :label="item.name"
570 - :value="item.id"
571 - ></el-option>
572 - </el-select>
573 - </Formitem>
574 - <Formitem
575 - :label="
576 - headData.transRateDicCode == '1'
577 - ? '%'
578 - : headData.transRateDicCode == '3'
579 - ? $t('entry.company.form.label25')
580 - : ''
581 - "
582 - :type="type"
583 - :disabled="false"
584 - :toolyipShow="true"
585 - prop="transCost"
586 - @event="formItemEvent"
587 - >
588 - <el-input
589 - type="text"
590 - :id="'inputInner-' + type + '-transCost'"
591 - maxlength="15"
592 - v-model="headData.transCost"
593 - @blur="inputItemBlur"
594 - />
595 - </Formitem>
596 - </el-form-item>
597 - </el-col>
598 - </el-row>
599 - </el-col>
600 - <!-- 保费 -->
601 - <el-col :span="showHelf ? 6 : 3">
602 - <el-row :gutter="3">
603 - <el-col :xl="12" :lg="12" :md="12" :sm="12" :xs="12">
604 - <Formitem
605 - :label="$t('entry.company.form.label26')"
606 - :type="type"
607 - :disabled="false"
608 - :toolyipShow="true"
609 - prop="insuranceRateDicCode"
610 - @event="formItemEvent"
611 - >
612 - <el-select
613 - name="insuranceRate"
614 - :id="'inputInner-' + type + '-insuranceRateDicCode'"
615 - v-model="headData.insuranceRateDicCode"
616 - placeholder=""
617 - value-key="id"
618 - @change="inputItemBlur"
619 - >
620 - <el-option
621 - v-for="(item, index) in dictData.ENTRY_METHOD"
622 - :key="index"
623 - :label="item.name"
624 - :value="item.code"
625 - ></el-option>
626 - </el-select>
627 - </Formitem>
628 - </el-col>
629 - <el-col :xl="12" :lg="12" :md="12" :sm="12" :xs="12">
630 - <el-form-item
631 - :class="{
632 - 'formItem-justItem':
633 - headData.insuranceRateDicCode == '3' ? true : false,
634 - }"
635 - >
636 - <Formitem
637 - v-show="headData.insuranceRateDicCode == '3'"
638 - :label="$t('entry.company.form.label24')"
639 - :type="type"
640 - :disabled="false"
641 - :toolyipShow="true"
642 - prop="insuranceCostCurrencyDicId"
643 - @event="formItemEvent"
644 - >
645 - <el-select
646 - name="insuranceCostCurrency"
647 - :id="'inputInner-' + type + '-insuranceCostCurrencyDicId'"
648 - v-model="headData.insuranceCostCurrencyDicId"
649 - filterable
650 - placeholder=""
651 - value-key="id"
652 - @change="inputItemBlur"
653 - >
654 - <el-option
655 - v-for="(item, index) in dictData.currencySystem"
656 - :key="index"
657 - :label="item.name"
658 - :value="item.id"
659 - ></el-option>
660 - </el-select>
661 - </Formitem>
662 - <Formitem
663 - :label="
664 - headData.insuranceRateDicCode == '1'
665 - ? '%'
666 - : headData.insuranceRateDicCode == '3'
667 - ? $t('entry.company.form.label27')
668 - : ''
669 - "
670 - :type="type"
671 - :disabled="false"
672 - :toolyipShow="true"
673 - prop="insuranceCost"
674 - @event="formItemEvent"
675 - >
676 - <el-input
677 - type="text"
678 - :id="'inputInner-' + type + '-insuranceCost'"
679 - maxlength="15"
680 - v-model="headData.insuranceCost"
681 - @blur="inputItemBlur"
682 - />
683 - </Formitem>
684 - </el-form-item>
685 - </el-col>
686 - </el-row>
687 - </el-col>
688 - <!-- 杂费 -->
689 - <el-col :span="showHelf ? 6 : 3">
690 - <el-row :gutter="3">
691 - <el-col :xl="12" :lg="12" :md="12" :sm="12" :xs="12">
692 - <Formitem
693 - :label="$t('entry.company.form.label28')"
694 - :type="type"
695 - :disabled="false"
696 - :toolyipShow="true"
697 - prop="otherRateDicCode"
698 - @event="formItemEvent"
699 - >
700 - <el-select
701 - name="otherRate"
702 - :id="'inputInner-' + type + '-otherRateDicCode'"
703 - clearable
704 - v-model="headData.otherRateDicCode"
705 - placeholder=""
706 - value-key="id"
707 - @change="inputItemBlur"
708 - >
709 - <el-option
710 - v-for="(item, index) in dictData.ENTRY_METHOD"
711 - :key="index"
712 - :label="item.name"
713 - :value="item.code"
714 - ></el-option>
715 - </el-select>
716 - </Formitem>
717 - </el-col>
718 - <el-col :xl="12" :lg="12" :md="12" :sm="12" :xs="12">
719 - <el-form-item
720 - :class="{
721 - 'formItem-justItem':
722 - headData.otherRateDicCode == '3' ? true : false,
723 - }"
724 - >
725 - <Formitem
726 - v-show="headData.otherRateDicCode == '3'"
727 - :label="$t('entry.company.form.label24')"
728 - :type="type"
729 - :disabled="false"
730 - :toolyipShow="true"
731 - prop="otherCurrencyDicId"
732 - @event="formItemEvent"
733 - >
734 - <el-select
735 - name="otherCurrency"
736 - :id="'inputInner-' + type + '-otherCurrencyDicId'"
737 - v-model="headData.otherCurrencyDicId"
738 - filterable
739 - placeholder=""
740 - value-key="id"
741 - @change="inputItemBlur"
742 - >
743 - <el-option
744 - v-for="(item, index) in dictData.currencySystem"
745 - :key="index"
746 - :label="item.name"
747 - :value="item.id"
748 - ></el-option>
749 - </el-select>
750 - </Formitem>
751 - <Formitem
752 - :label="
753 - headData.otherRateDicCode == '1'
754 - ? '%'
755 - : headData.otherRateDicCode == '3'
756 - ? $t('entry.company.form.label29')
757 - : ''
758 - "
759 - :type="type"
760 - :disabled="false"
761 - :toolyipShow="true"
762 - prop="otherCost"
763 - @event="formItemEvent"
764 - >
765 - <el-input
766 - type="text"
767 - :id="'inputInner-' + type + '-otherCost'"
768 - v-model="headData.otherCost"
769 - maxlength="15"
770 - @blur="inputItemBlur"
771 - />
772 - </Formitem>
773 - </el-form-item>
774 - </el-col>
775 - </el-row>
776 - </el-col>
777 - <!-- 合同协议号 -->
778 - <el-col :span="showHelf ? 6 : 3">
779 - <Formitem
780 - :label="$t('entry.company.form.label30')"
781 - :type="type"
782 - :disabled="false"
783 - :toolyipShow="true"
784 - prop="contractCode"
785 - @event="formItemEvent"
786 - >
787 - <el-input
788 - type="text"
789 - :id="'inputInner-' + type + '-contractCode'"
790 - v-model="headData.contractCode"
791 - @blur="inputItemBlur"
792 - />
793 - </Formitem>
794 - </el-col>
795 - <!-- </el-row>
796 - <el-row :gutter="5"> -->
797 - <!-- 许可证号 -->
798 - <el-col :span="showHelf ? 6 : 3">
799 - <Formitem
800 - :label="$t('entry.company.form.label31')"
801 - :type="type"
802 - :disabled="false"
803 - :toolyipShow="true"
804 - prop="licenseCode"
805 - @event="formItemEvent"
806 - >
807 - <el-input
808 - type="text"
809 - :id="'inputInner-' + type + '-licenseCode'"
810 - v-model="headData.licenseCode"
811 - @blur="inputItemBlur"
812 - ></el-input>
813 - </Formitem>
814 - </el-col>
815 - <!-- 随附单证及编号 -->
816 - <el-col :span="showHelf ? 18 : 9">
817 - <Formitem
818 - :label="$t('entry.company.form.label34')"
819 - :type="type"
820 - :disabled="false"
821 - :toolyipShow="true"
822 - prop="slip"
823 - @event="formItemEvent"
824 - >
825 - <el-tooltip
826 - placement="top"
827 - :disabled="headData.slip == null || headData.slip == ''"
828 - :content="headData.slip"
829 - >
830 - <el-input
831 - type="text"
832 - :id="'inputInner-' + type + '-slip'"
833 - v-model="headData.slip"
834 - @blur="inputItemBlur"
835 - ></el-input>
836 - </el-tooltip>
837 - </Formitem>
838 - </el-col>
839 - </el-row>
840 - <el-row :gutter="5">
841 - <!-- 备注 -->
842 - <el-col :span="showHelf ? 24 : 12">
843 - <Formitem
844 - :label="$t('entry.company.form.label32')"
845 - :type="type"
846 - :disabled="false"
847 - :toolyipShow="true"
848 - prop="remark"
849 - @event="formItemEvent"
850 - >
851 - <el-input
852 - type="text"
853 - :id="'inputInner-' + type + '-remark'"
854 - v-model="headData.remark"
855 - @blur="inputItemBlur"
856 - />
857 - </Formitem>
858 - </el-col>
859 - <!-- </el-row>
860 - <el-row :gutter="5"> -->
861 - <el-col :span="showHelf ? 6 : 3">
862 - <Formitem
863 - :label="$t('entry.upload.label2')"
864 - :type="type"
865 - :disabled="false"
866 - :toolyipShow="true"
867 - prop="contacts"
868 - @event="formItemEvent"
869 - >
870 - <el-input
871 - type="text"
872 - :id="'inputInner-' + type + '-contacts'"
873 - v-model="headData.contacts"
874 - @blur="inputItemBlur"
875 - >
876 - </el-input>
877 - </Formitem>
878 - </el-col>
879 - <el-col :span="showHelf ? 6 : 3">
880 - <Formitem
881 - :label="$t('entry.upload.label3')"
882 - :type="type"
883 - :disabled="false"
884 - :toolyipShow="true"
885 - prop="contactInformation"
886 - @event="formItemEvent"
887 - >
888 - <el-input
889 - type="text"
890 - :id="'inputInner-' + type + '-contactInformation'"
891 - v-model="headData.contactInformation"
892 - maxlength="11"
893 - @blur="inputItemBlur"
894 - >
895 - </el-input>
896 - </Formitem>
897 - </el-col>
898 - <el-col :span="showHelf ? 6 : 3">
899 - <Formitem
900 - :label="$t('entry.upload.label4')"
901 - :type="type"
902 - :disabled="false"
903 - :toolyipShow="true"
904 - prop="pickUpCityId"
905 - @event="formItemEvent"
906 - >
907 - <el-select
908 - ref="pickUpCity"
909 - name="pickUpCity"
910 - :id="'inputInner-' + type + '-pickUpCityId'"
911 - v-model="headData.pickUpCityId"
912 - filterable
913 - placeholder=""
914 - @change="inputItemBlur"
915 - >
916 - <el-option
917 - v-for="(item, index) in dictData.pickUpCity"
918 - :key="index"
919 - :label="item.name"
920 - :value="item.id"
921 - ></el-option>
922 - </el-select>
923 - </Formitem>
924 - </el-col>
925 - </el-row>
926 - </el-form>
927 -</template>
928 -
929 -<script>
930 -export default {
931 - props: {
932 - entryInfo: {
933 - type: Object,
934 - default: null,
935 - },
936 - headData: {
937 - type: Object,
938 - default: null,
939 - },
940 - activeDetial: {
941 - type: Object,
942 - default: null,
943 - },
944 - dictData: {
945 - type: Object,
946 - default: null,
947 - },
948 - disabled: {
949 - type: Boolean,
950 - default() {
951 - return false;
952 - },
953 - },
954 - type: {
955 - type: String,
956 - default: "",
957 - },
958 - showHelf: {
959 - type: Boolean,
960 - default() {
961 - return true;
962 - },
963 - },
964 - },
965 - data() {
966 - return {
967 - tableData: this.detialsData,
968 - headerData: [
969 - {
970 - name: "",
971 - value: "expand",
972 - width: "1",
973 - align: "left",
974 - expand: true,
975 - fixed: false,
976 - },
977 - {
978 - name: this.$t("entry.detial.table.label1"), //商品序号
979 - value: "gno",
980 - width: "",
981 - align: "left",
982 - },
983 - {
984 - name: this.$t("entry.detial.table.label2"), //中文品名
985 - value: "inputItem",
986 - width: "",
987 - align: "left",
988 - },
989 - {
990 - name: this.$t("entry.detial.table.label3"), //英文品名
991 - value: "contentDescription",
992 - width: "",
993 - align: "left",
994 - },
995 - {
996 - name: this.$t("entry.detial.table.label4"), //商品编码
997 - value: "skuCode",
998 - width: "",
999 - align: "left",
1000 - },
1001 - {
1002 - name: this.$t("entry.detial.table.label5"), //成交数量
1003 - value: "knockdownNumber",
1004 - width: "",
1005 - align: "left",
1006 - slot: true,
1007 - },
1008 - ],
1009 - formData: this.activeDetial,
1010 - expandRowKeys: [],
1011 - unit: [],
1012 - levyType: [],
1013 - currency: [],
1014 - country: [],
1015 - };
1016 - },
1017 - watch: {
1018 - activeDetial(val) {
1019 - if (val == null) {
1020 - this.expandRowKeys = [];
1021 - }
1022 - this.formData = val;
1023 - },
1024 - detialsData(val) {
1025 - this.tableData = val;
1026 - },
1027 - },
1028 - methods: {
1029 - addDetial() {
1030 - this.$emit("activeDetialChange", { type: "add" });
1031 - },
1032 - saveDetial(val) {
1033 - this.$emit("saveDetial", val);
1034 - },
1035 - detailclose(val) {
1036 - this.expandRowKeys = [];
1037 - this.$emit("activeDetialChange", {
1038 - type: "close",
1039 - data: val.index ? val : null,
1040 - });
1041 - },
1042 - editDetial(val) {
1043 - this.expandRowKeys = [];
1044 - this.$emit("activeDetialChange", { type: "edit", data: val });
1045 - this.$nextTick(() => {
1046 - this.expandRowKeys = [val.index];
1047 - this.formData = val;
1048 - });
1049 - },
1050 - delDetial(val) {
1051 - let arr = [];
1052 - this.tableData.forEach((item) => {
1053 - if (item.index != val.index) {
1054 - arr.length == 0 ? (item.index = 0) : (item.index = arr.lenght - 1);
1055 - arr.lenght == 0 ? (item.gno = 1) : (item.gno = arr.length + 1);
1056 - arr.push(item);
1057 - }
1058 - });
1059 - this.tableData = arr;
1060 - this.$emit("delDetial", arr);
1061 - },
1062 - editSlip() {
1063 - this.$emit("editSlip");
1064 - },
1065 - formChange() {
1066 - this.$emit("headDataChange");
1067 - },
1068 - inputItemBlur(val) {
1069 - this.$emit("inputItemBlur", this.activeDetial);
1070 - },
1071 - formItemEvent(val) {
1072 - this.$emit("formItemEvent", val);
1073 - },
1074 - },
1075 - filters: {
1076 - clearNull(value) {
1077 - if (value == null) {
1078 - return "";
1079 - } else {
1080 - return value;
1081 - }
1082 - },
1083 - },
1084 -};
1085 -</script>
1 -<template>
2 - <div class="entry">
3 - <!-- <div class="entryInformation"> -->
4 - <div class="option">
5 - <div class="details">
6 - <div
7 - class="side"
8 - v-loading="loadings.entryLoading"
9 - :style="{ width: urlList.length == 0 ? '100%' : '50%' }"
10 - v-show="
11 - entryInfo.headers.chmSourceType != 'chmSourceType_03' &&
12 - entryInfo.headers.chmSourceType != 'chmSourceType_04'
13 - "
14 - >
15 - <div class="formTitleFlex">
16 - <!-- 报关详情查看 -->
17 - <div v-once>{{ $t("declaration.indexD.formTitle1") }}</div>
18 - <div class="titleButton" v-show="routerForm == 'audition'">
19 - <el-button class="titleButton-View fontGrayClass" disabled>{{
20 - entryInfo.qtyUnit
21 - }}</el-button>
22 - <el-button
23 - class="titleButton-View"
24 - :class="{ fontRedClass: fontRed, fontGrayClass: !fontRed }"
25 - disabled
26 - >{{
27 - entryInfo.amountTotal + entryInfo.amountCurrency
28 - }}</el-button
29 - >
30 - </div>
31 - </div>
32 - <div class="formBody">
33 - <!-- 表头相关 -->
34 - <DetailsHeader
35 - ref="detialHeader"
36 - :headData="entryInfo.headers"
37 - :disabled="isDisabled"
38 - :dictData="dictData"
39 - :showHelf="urlList.length == 0 ? false : true"
40 - @formItemEvent="formItemEvent"
41 - />
42 - <!-- 表体相关 -->
43 - <DetailsBody
44 - v-show="!loadings.entryLoading"
45 - ref="detialBody"
46 - :tableData="entryInfo.bodys"
47 - :headerData="bodyHeader"
48 - @rowClick="rowClick"
49 - />
50 - </div>
51 - <!-- 审批备注 -->
52 - <div class="formTitleFlex" v-once>
53 - {{ $t("declaration.indexD.approvalRemark") }}
54 - </div>
55 - <div class="approvalRemark">
56 - <el-input
57 - type="textarea"
58 - :id="'inputInner-' + '-rejectRemark'"
59 - v-model="entryInfo.headers.rejectRemark"
60 - :disabled="
61 - !fromAudition ||
62 - entryInfo.headers.consStatusDicCode !=
63 - 'transferWaybillStatus_2' ||
64 - optionDisabled
65 - "
66 - rows="2"
67 - maxlength="650"
68 - :placeholder="$t('declaration.indexD.rejectRemark')"
69 - ></el-input>
70 - <!-- <el-form
71 - class="fedexFormStyle"
72 - ref="approvalRemark"
73 - :model="entryInfo.headers"
74 - label-position="top"
75 - >
76 - <el-row :gutter="5">
77 - <el-col :span="24">
78 - <Formitem
79 - :label="$t('declaration.indexD.rejectRemark')"
80 - prop="rejectRemark"
81 - >
82 - </Formitem>
83 - </el-col>
84 - </el-row>
85 - </el-form> -->
86 - </div>
87 - </div>
88 - <div
89 - class="side"
90 - v-loading="loadings.imgLoading"
91 - v-if="urlList.length != 0"
92 - >
93 - <!-- 清关图片查看 -->
94 - <div class="boxTitle">
95 - <div>
96 - <span v-once> {{ $t("declaration.indexD.fileTitle") }}</span>
97 - <!-- 电签标志 -->
98 - <el-radio-group
99 - class="radioStatus ml0 backCheckRadio"
100 - v-model="entryInfo.headers.isEpoa"
101 - disabled
102 - >
103 - <el-radio label="是">电签</el-radio>
104 - <el-radio label="否">非电签</el-radio>
105 - </el-radio-group>
106 - </div>
107 - <div>
108 - <!-- 系统生成报关单 -->
109 - <el-button
110 - v-if="
111 - (routerForm == 'audition' || routerForm == 'port') &&
112 - entryInfo.headers.chmSourceType != 'chmSourceType_03' &&
113 - entryInfo.headers.chmSourceType != 'chmSourceType_04'
114 - "
115 - size="small"
116 - :loading="loadings.downloadEntryFile"
117 - :disabled="
118 - loadings.asyncDownloadFile ||
119 - loadings.examine0Loading ||
120 - loadings.examine1Loading ||
121 - loadings.saveLoading ||
122 - loadings.imgStamp ||
123 - optionDisabled
124 - "
125 - @click="downloadEntryFile(0)"
126 - >
127 - <svg-icon class="el-icon-user-solid" icon-class="fedexCreate" />
128 - {{ $t("declaration.indexD.fileButton1") }}
129 - </el-button>
130 - <!-- 下载清关文件 -->
131 - <!-- <el-button
132 - :loading="loadings.asyncDownloadFile"
133 - :disabled="
134 - loadings.downloadEntryFile ||
135 - loadings.examine0Loading ||
136 - loadings.examine1Loading ||
137 - loadings.saveLoading ||
138 - loadings.imgStamp
139 - "
140 - size="small"
141 - @click="asyncDownloadFile"
142 - >
143 - <svg-icon
144 - class="el-icon-user-solid"
145 - icon-class="fedexUpload"
146 - />
147 - {{ $t("declaration.indexD.fileButton2") }}
148 - </el-button> -->
149 - <!-- 重置全部单证分类 -->
150 - <el-button
151 - v-if="
152 - routerForm == 'port' &&
153 - entryInfo.headers.isAttDocTypeDisplay == 1 &&
154 - entryInfo.headers.isAttDocTypeEdit == 1
155 - "
156 - size="small"
157 - icon="el-icon-refresh"
158 - :disabled="entryInfo.headers.isAttDocTypeEdit == 0"
159 - @click="refreshImgType"
160 - >重置全部单证分类</el-button
161 - >
162 - <!-- 确认分类 -->
163 - <el-button
164 - v-if="
165 - routerForm == 'port' &&
166 - entryInfo.headers.isAttDocTypeDisplay == 1 &&
167 - entryInfo.headers.isAttDocTypeEdit == 1
168 - "
169 - class="backgroundButton"
170 - size="small"
171 - icon="el-icon-circle-check"
172 - :loading="loadings.checkImgTypeLoading"
173 - :disabled="entryInfo.headers.isAttDocTypeEdit == 0"
174 - @click="checkImgType"
175 - >确认分类</el-button
176 - >
177 - </div>
178 - </div>
179 - <el-form
180 - v-if="
181 - !loadings.entryLoading &&
182 - (entryInfo.headers.chmSourceType == 'chmSourceType_03' ||
183 - entryInfo.headers.chmSourceType == 'chmSourceType_04')
184 - "
185 - class="fedexFormStyle mb10"
186 - ref="approvalRemark"
187 - :model="entryInfo.headers"
188 - label-position="top"
189 - >
190 - <el-row :gutter="5">
191 - <!-- 运单号 -->
192 - <el-col :span="8">
193 - <Formitem
194 - :label="$t('netrySreach.table.label1')"
195 - :toolyipShow="true"
196 - prop="consignmentCode"
197 - type="noDateEntry"
198 - >
199 - <el-input
200 - type="text"
201 - :id="'inputInner-noDateEntry-consignmentCode'"
202 - v-model="entryInfo.headers.consignmentCode"
203 - :disabled="true"
204 - ></el-input>
205 - </Formitem>
206 - </el-col>
207 - <!-- 境内发货人 -->
208 - <el-col :span="8">
209 - <Formitem
210 - :label="$t('entry.company.form.label2')"
211 - :toolyipShow="true"
212 - prop="operateUnitName"
213 - type="noDateEntry"
214 - >
215 - <el-input
216 - type="text"
217 - :id="'inputInner-noDateEntry-operateUnitName'"
218 - v-model="entryInfo.headers.operateUnitName"
219 - :disabled="true"
220 - ></el-input>
221 - </Formitem>
222 - </el-col>
223 - <!-- 境内发货人海关备案编码 -->
224 - <el-col :span="8">
225 - <Formitem
226 - :label="$t('declaration.indexD.headForm.label3')"
227 - :toolyipShow="true"
228 - prop="operateUnitCode"
229 - type="noDateEntry"
230 - >
231 - <el-input
232 - type="text"
233 - :id="'inputInner-noDateEntry-operateUnitCode'"
234 - v-model="entryInfo.headers.operateUnitCode"
235 - :disabled="true"
236 - ></el-input>
237 - </Formitem>
238 - </el-col>
239 - </el-row>
240 - <el-row :gutter="5">
241 - <!-- 联系人 -->
242 - <el-col :span="8">
243 - <Formitem
244 - :label="$t('entry.upload.label2')"
245 - type=""
246 - :toolyipShow="true"
247 - prop="contacts"
248 - type="noDateEntry"
249 - >
250 - <el-input
251 - :disabled="true"
252 - type="text"
253 - :id="'inputInner-noDateEntry-contacts'"
254 - v-model="entryInfo.headers.contacts"
255 - >
256 - </el-input>
257 - </Formitem>
258 - </el-col>
259 - <!-- 联系人手机号码 -->
260 - <el-col :span="8">
261 - <Formitem
262 - :label="$t('entry.upload.label3')"
263 - type=""
264 - :toolyipShow="true"
265 - prop="contactInformation"
266 - type="noDateEntry"
267 - >
268 - <el-input
269 - type="text"
270 - :disabled="true"
271 - :id="'inputInner-noDateEntry-contactInformation'"
272 - v-model="entryInfo.headers.contactInformation"
273 - maxlength="11"
274 - >
275 - </el-input>
276 - </Formitem>
277 - </el-col>
278 - <!-- 取件城市 -->
279 - <el-col :span="8">
280 - <Formitem
281 - :label="$t('entry.upload.label4')"
282 - type=""
283 - :toolyipShow="true"
284 - prop="pickUpCityId"
285 - type="noDateEntry"
286 - >
287 - <el-select
288 - ref="pickUpCity"
289 - name="pickUpCity"
290 - :id="'inputInner-noDateEntry-pickUpCityId'"
291 - v-model="entryInfo.headers.pickUpCityId"
292 - filterable
293 - :disabled="true"
294 - placeholder=""
295 - >
296 - <el-option
297 - v-for="(item, index) in dictData.pickUpCity"
298 - :key="index"
299 - :label="item.name"
300 - :value="item.id"
301 - ></el-option>
302 - </el-select>
303 - </Formitem>
304 - </el-col>
305 - </el-row>
306 - </el-form>
307 - <div class="sideContentBorder">
308 - <div class="entryFileOption">
309 - <!-- 申报单证 -->
310 - <el-checkbox
311 - class="imgCheck"
312 - v-model="currentImage.isDocumentsCheck"
313 - :true-label="1"
314 - :false-label="0"
315 - :disabled="
316 - !fromAudition ||
317 - (entryInfo.headers.consStatusDicCode !=
318 - 'transferWaybillStatus_2' &&
319 - entryInfo.headers.consStatusDicCode !=
320 - 'transferWaybillStatus_27') ||
321 - optionDisabled
322 - "
323 - v-loading="loadings.imgCheckLoading"
324 - @change="documentsCheckChange"
325 - >{{ $t("declaration.indexD.fileCheck") }}</el-checkbox
326 - >
327 - <div class="titleButton mr10">
328 - <!-- 撤销盖章、委托书盖章 -->
329 - <el-button
330 - v-if="
331 - entryInfo.headers.consStatusDicCode ==
332 - 'transferWaybillStatus_2' &&
333 - fromAudition &&
334 - entryInfo.headers.pickUpCity.ext6 != 'SCN'
335 - "
336 - size="small"
337 - :loading="loadings.imgStamp"
338 - :disabled="
339 - loadings.asyncDownloadFile ||
340 - loadings.downloadEntryFile ||
341 - loadings.examine0Loading ||
342 - loadings.examine1Loading ||
343 - loadings.saveLoading ||
344 - currentImage.imgError ||
345 - $refs.imgView.loading ||
346 - optionDisabled
347 - "
348 - @click="imgStamp(currentImage.isSeal)"
349 - >
350 - <svg-icon class="el-icon-user-solid" icon-class="fedexSeal" />
351 - {{
352 - currentImage.isSeal == 1
353 - ? $t("declaration.indexD.fileButton3_1")
354 - : $t("declaration.indexD.fileButton3_2")
355 - }}
356 - </el-button>
357 - <!-- 选择图片类型 -->
358 - <el-radio-group
359 - v-if="
360 - routerForm == 'port' &&
361 - entryInfo.headers.isAttDocTypeDisplay == 1
362 - "
363 - class="radioStatus backCheckRadio"
364 - style="line-height: 40px"
365 - :disabled="entryInfo.headers.isAttDocTypeEdit == 0"
366 - v-model="currentImage.selectTypeCode"
367 - @input="imgTypeChange"
368 - >
369 - <el-radio
370 - v-for="(item, index) in dictData.attDocType"
371 - :key="index"
372 - v-if="item.code != 'attDocType_not'"
373 - :label="item.code"
374 - >
375 - {{ item.name }}
376 - </el-radio>
377 - </el-radio-group>
378 - </div>
379 - </div>
380 - <ImgView
381 - ref="imgView"
382 - :urlList="urlList"
383 - :imgData="imageList"
384 - :initialIndex="imgIdx"
385 - :editType="
386 - entryInfo.headers.consStatusDicCode ==
387 - 'transferWaybillStatus_2' && this.fromAudition
388 - "
389 - @changeCurrentImg="changeCurrentImg"
390 - @rotate="rotate"
391 - @imgLoad="imgLoad"
392 - @imgBlob="imgBlob"
393 - @optionChange="optionChange"
394 - ></ImgView>
395 - </div>
396 - <!-- 审批备注 -->
397 - <div
398 - v-if="
399 - entryInfo.headers.chmSourceType == 'chmSourceType_03' ||
400 - entryInfo.headers.chmSourceType == 'chmSourceType_04'
401 - "
402 - class="formTitleFlex"
403 - >
404 - {{ $t("declaration.indexD.approvalRemark") }}
405 - </div>
406 - <div
407 - class="approvalRemark"
408 - v-if="
409 - entryInfo.headers.chmSourceType == 'chmSourceType_03' ||
410 - entryInfo.headers.chmSourceType == 'chmSourceType_04'
411 - "
412 - >
413 - <el-input
414 - type="textarea"
415 - :id="'inputInner-' + '-rejectRemark'"
416 - v-model="entryInfo.headers.rejectRemark"
417 - :disabled="
418 - !fromAudition ||
419 - entryInfo.headers.consStatusDicCode !=
420 - 'transferWaybillStatus_2' ||
421 - optionDisabled
422 - "
423 - rows="2"
424 - maxlength="650"
425 - :placeholder="$t('declaration.indexD.rejectRemark')"
426 - ></el-input>
427 - <!-- <el-form
428 - class="fedexFormStyle"
429 - ref="approvalRemark"
430 - :model="entryInfo.headers"
431 - label-position="top"
432 - >
433 - <el-row :gutter="5">
434 - <el-col :span="24">
435 - <Formitem
436 - :label="$t('declaration.indexD.rejectRemark')"
437 - prop="rejectRemark"
438 - >
439 -
440 - </Formitem>
441 - </el-col>
442 - </el-row>
443 - </el-form> -->
444 - </div>
445 - </div>
446 - </div>
447 -
448 - <div
449 - class="entrySave"
450 - v-show="!loadings.entryLoading && !loadings.imgLoading"
451 - >
452 - <!-- 返回 -->
453 - <el-button
454 - class="entrySaveButton"
455 - :disabled="
456 - loadings.asyncDownloadFile ||
457 - loadings.downloadEntryFile ||
458 - loadings.examine0Loading ||
459 - loadings.examine1Loading ||
460 - loadings.saveLoading ||
461 - loadings.imgStamp
462 - "
463 - @click="back"
464 - >{{ $t("system.back") }}</el-button
465 - >
466 - <!-- 保存 -->
467 - <el-button
468 - class="entrySaveButton entrySaveButton-background"
469 - v-show="
470 - fromAudition &&
471 - entryInfo.headers.consStatusDicCode == 'transferWaybillStatus_2' &&
472 - !optionDisabled
473 - "
474 - :disabled="
475 - loadings.asyncDownloadFile ||
476 - loadings.downloadEntryFile ||
477 - loadings.examine0Loading ||
478 - loadings.examine1Loading ||
479 - loadings.imgStamp
480 - "
481 - :loading="loadings.saveLoading"
482 - @click="examine(2, 'button')"
483 - >
484 - {{ $t("system.save") }}
485 - </el-button>
486 - <!-- 审批不通过 -->
487 - <el-button
488 - class="entrySaveButton entrySaveButton-background"
489 - v-show="
490 - fromAudition &&
491 - entryInfo.headers.consStatusDicCode == 'transferWaybillStatus_2' &&
492 - !optionDisabled
493 - "
494 - :disabled="
495 - loadings.asyncDownloadFile ||
496 - loadings.downloadEntryFile ||
497 - loadings.saveLoading ||
498 - loadings.examine1Loading ||
499 - loadings.imgStamp
500 - "
501 - :loading="loadings.examine0Loading"
502 - @click="examine(0, 'button')"
503 - >
504 - {{ $t("declaration.indexD.unApproval") }}
505 - </el-button>
506 - <!-- 审批通过 -->
507 - <el-button
508 - class="entrySaveButton entrySaveButton-background"
509 - v-show="
510 - fromAudition &&
511 - entryInfo.headers.consStatusDicCode == 'transferWaybillStatus_2' &&
512 - !optionDisabled
513 - "
514 - :disabled="
515 - loadings.asyncDownloadFile ||
516 - loadings.downloadEntryFile ||
517 - loadings.saveLoading ||
518 - loadings.examine0Loading ||
519 - loadings.imgStamp
520 - "
521 - :loading="loadings.examine1Loading"
522 - @click="examine(1, 'button')"
523 - >
524 - {{ $t("declaration.indexD.approval") }}
525 - </el-button>
526 - </div>
527 - </div>
528 - <!-- </div> -->
529 - <!-- 表体详情对话框 -->
530 - <DetailsBodyDialog
531 - :bodyDialogVisible="bodyDialogVisible"
532 - :formInfo="currentDetail"
533 - :disabled="isDisabled"
534 - @closeDialog="closeDialog"
535 - :dictData="dictData"
536 - />
537 - <el-dialog
538 - :title="$t('declaration.indexD.fileViewTitle')"
539 - :visible.sync="entryPdfVisible"
540 - width="85%"
541 - center
542 - @close="dialogClose"
543 - >
544 - <iframe :src="entryPdf" width="100%" height="600px"></iframe>
545 - <span slot="footer" class="dialog-footer">
546 - <!-- 生成 -->
547 - <el-button
548 - class="entrySaveButton entrySaveButton-background"
549 - type="primary"
550 - :loading="loadings.dialogButton"
551 - @click="downloadEntryFile(1)"
552 - >{{ $t("declaration.indexD.downloadEntryFile") }}</el-button
553 - >
554 - <!-- 取消 -->
555 - <el-button class="entrySaveButton" @click="dialogClose">
556 - {{ $t("system.close") }}</el-button
557 - >
558 - </span>
559 - </el-dialog>
560 - </div>
561 -</template>
562 -
563 -<script>
564 -import { numberRound } from "@/utils/iClearExp";
565 -import {
566 - getConsInfo,
567 - getExchangeRate,
568 - getAttachment,
569 - getLogD,
570 - approved,
571 - approvalReject,
572 - saveApproval,
573 - rdeimgStamp,
574 - rdeimgRestamp,
575 - downloadEntryFiles,
576 - rdeEntryFileView,
577 - setImgRoate,
578 - setDocumentCheck,
579 - getFileDataFromPort,
580 - saveImgFileTypeData,
581 -} from "@/api/examine-api.js";
582 -import { getEntryLock, unEntryLock } from "@/api/entry-api.js";
583 -import { decrypt } from "@/utils/jsencrypt";
584 -import DetailsHeader from "./components/detailsHeader.vue"; //表头信息
585 -import DetailsBody from "./components/detailsBody.vue"; //表头信息
586 -import DetailsBodyDialog from "./components/detailsBodyDialog.vue"; //表头信息
587 -
588 -export default {
589 - // name: "DeclarationDetails",
590 - components: {
591 - DetailsHeader,
592 - DetailsBody,
593 - DetailsBodyDialog,
594 - },
595 - data() {
596 - return {
597 - id: null,
598 - loadings: {
599 - templateLoading: false,
600 - entryLoading: false,
601 - imgLoading: false,
602 - downloadEntryFile: false,
603 - imgStamp: false,
604 - asyncDownloadFile: false,
605 - dialogButton: false,
606 - saveLoading: false,
607 - examine0Loading: false,
608 - examine1Loading: false,
609 - imgCheckLoading: false,
610 - checkImgTypeLoading: false,
611 - },
612 - entryInfo: {
613 - headers: {},
614 - approvalRemark: "",
615 - bodys: [],
616 - qtyUnit: "0",
617 - amountTotal: "0",
618 - amountCurrency: "",
619 - },
620 - activeDetial: {},
621 - dictData: {
622 - district: [],
623 - port: [],
624 - VehicleWayCode: [],
625 - supervisionMode: [],
626 - natureExemption: [],
627 - ClinchType: [],
628 - NewPackageType: [],
629 - Country: [],
630 - levyType: [],
631 - currencySystem: [],
632 - ENTRY_METHOD: [],
633 - pickUpCity: [],
634 - consType: [],
635 - attDocType: [],
636 - },
637 - isDisabled: true,
638 - bodyHeader: [
639 - {
640 - name: this.$t("declaration.indexD.detialTable.label1"), //序号
641 - value: "gno",
642 - width: "50",
643 - align: "left",
644 - },
645 - {
646 - name: this.$t("entry.detial.table.label2"), //中文名称
647 - value: "inputItem",
648 - width: "",
649 - align: "left",
650 - },
651 - {
652 - name: this.$t("entry.detial.form.label3"), //商品编号
653 - value: "skuCode",
654 - width: "100",
655 - align: "left",
656 - slot: true,
657 - },
658 - {
659 - name: this.$t("declaration.indexD.detialTable.label2"), //商品名称
660 - value: "skuName",
661 - width: "150",
662 - align: "left",
663 - },
664 - {
665 - name: this.$t("entry.detial.table.label5"), //成交数量
666 - value: "knockdownNumber",
667 - width: "150",
668 - align: "left",
669 - slot: true,
670 - },
671 - {
672 - name: this.$t("declaration.indexD.detialTable.label3"), //第一计量
673 - value: "qtyLegalFirst",
674 - width: "150",
675 - align: "left",
676 - slot: true,
677 - },
678 - {
679 - name: this.$t("declaration.indexD.detialTable.label4"), //第二计量
680 - value: "qtyLegalSecond",
681 - width: "150",
682 - align: "left",
683 - slot: true,
684 - },
685 - {
686 - name: this.$t("declaration.indexD.detialTable.label5"), //申报总价
687 - value: "amount",
688 - width: "150",
689 - align: "left",
690 - slot: true,
691 - },
692 - {
693 - name: this.$t("declaration.indexD.detialTable.label6"), //原产地
694 - value: "habitat",
695 - width: "150",
696 - align: "left",
697 - },
698 - {
699 - name: this.$t("declaration.indexD.detialTable.label7"), //最终目的国
700 - value: "destinationCountry",
701 - width: "150",
702 - align: "left",
703 - },
704 - {
705 - name: this.$t("declaration.indexD.detialTable.label8"), //境内货源地
706 - value: "domesticDestination",
707 - width: "200",
708 - align: "left",
709 - },
710 - {
711 - name: this.$t("declaration.indexD.detialTable.label9"), //征免
712 - value: "levyType",
713 - width: "",
714 - align: "left",
715 - },
716 - ],
717 - currentDetail: {},
718 - entryPdf: "",
719 - bodyDialogVisible: false,
720 - entryPdfVisible: false,
721 - rowList: [],
722 - urlList: [],
723 - imageList: [],
724 - imgIdx: 0,
725 - fontRed: false,
726 - fromAudition: true,
727 - routerForm: "",
728 - currentImage: {},
729 - optionDisabled: false,
730 - lockTime: 0,
731 - lockNum: 0,
732 - lockType: false,
733 - };
734 - },
735 - created() {
736 - this.lockTime = this.$store.getters.lockTime - 30;
737 - this.loadings.templateLoading = true;
738 - if (this.$route.params.id) {
739 - this.setDict();
740 - this.id = decrypt(this.$route.params.id);
741 - this.fromAudition = this.$route.params.from == "audition" ? true : false;
742 - this.routerForm = this.$route.params.from;
743 - if (this.$route.params.from == "log") {
744 - this.sreachLog();
745 - } else {
746 - this.sreach("").then(() => {
747 - this.sreachEntryLock(this.id).finally(() => {
748 - if (this.routerForm == "port") {
749 - this.getNewAttachment();
750 - } else {
751 - this.getAttachment();
752 - }
753 - });
754 - });
755 - }
756 - } else {
757 - this.$router.push("index");
758 - this.loadings.templateLoading = false;
759 - }
760 - },
761 - beforeDestroy() {
762 - this.$store.dispatch("DelEntryData");
763 - if (this.lockType) {
764 - this.removeEntryLock(this.id, 0);
765 - }
766 - if (
767 - this.routerForm == "audition" &&
768 - this.entryInfo.headers.consStatusDicCode == "transferWaybillStatus_2"
769 - ) {
770 - // this.examine(2, "back");
771 - }
772 - },
773 - destroyed() {
774 - this.id = null;
775 - this.entryInfo = {
776 - headers: {},
777 - approvalRemark: "",
778 - bodys: [],
779 - qtyUnit: "0",
780 - amountTotal: "0",
781 - amountCurrency: "",
782 - };
783 - this.routerForm = "";
784 - this.activeDetial = {};
785 - this.currentDetail = {};
786 - this.bodyDialogVisible = false;
787 - this.rowList = [];
788 - this.urlList = [];
789 - this.imageList = [];
790 - this.fontRed = false;
791 - this.currentImage = {};
792 - this.lockType = false;
793 - this.$store.dispatch("delEntry");
794 - },
795 - methods: {
796 - //查询
797 - async sreach(type) {
798 - return new Promise((resolve, reject) => {
799 - this.loadings.entryLoading = true;
800 - getConsInfo({ id: this.id, pageIndex: 0, pageSize: 0 })
801 - .then((res) => {
802 - if (res.code === "200") {
803 - this.entryInfo.headers = res.data.extra.head;
804 - this.entryInfo.bodys = res.data.extra.details;
805 - this.entryInfo.headers.ocr = res.data.extra.ocr;
806 - if (this.entryInfo.bodys.length > 0) {
807 - let qtyTotal = 0;
808 - let amountTotal = 0;
809 - this.entryInfo.bodys.forEach((item, index) => {
810 - item.index = index;
811 - item.gno = index + 1;
812 - item.hscodeStatus = 1;
813 - //计算总重量,如果第一法定单位是重量,参与计算,如果不是,用第二法定单位计算,如果都没有重量单位,不参与计算
814 - let weight = this.getWeight(
815 - item.qtyLegalFirst,
816 - item.unitLegalFirst
817 - );
818 - if (weight == 0) {
819 - weight = this.getWeight(
820 - item.qtyLegalSecond,
821 - item.unitLegalSecond
822 - );
823 - }
824 - qtyTotal = qtyTotal + weight;
825 - //计算总价钱
826 - amountTotal = amountTotal + item.amount;
827 - });
828 -
829 - this.entryInfo.qtyUnit =
830 - numberRound(qtyTotal, 2) + this.$t("system.kg");
831 - this.entryInfo.amountTotal = numberRound(amountTotal, 2);
832 - this.entryInfo.amountCurrency =
833 - this.entryInfo.bodys[0].currency;
834 -
835 - //判断价钱是否展示红色
836 - this.routerForm == "audition" && type != "approval"
837 - ? this.getFontRedClass(
838 - this.entryInfo.bodys[0].currencyId,
839 - this.entryInfo.amountTotal
840 - )
841 - : "";
842 - }
843 - this.loadings.entryLoading = false;
844 - resolve();
845 - } else {
846 - this.loadings.entryLoading = false;
847 - this.alertWarningMsg(res.message);
848 - reject();
849 - }
850 - // this.loadings.templateLoading = false;
851 - })
852 - .catch((err) => {
853 - this.loadings.entryLoading = false;
854 - // this.loadings.templateLoading = false;
855 - console.log(err);
856 - reject();
857 - });
858 - });
859 - },
860 - //查询
861 - sreachLog() {
862 - this.loadings.entryLoading = true;
863 - getLogD({ id: this.id })
864 - .then((res) => {
865 - if (res.code === "200") {
866 - this.entryInfo.headers = res.data.extra;
867 - this.entryInfo.bodys = res.data.records;
868 -
869 - if (this.entryInfo.bodys.length > 0) {
870 - let qtyTotal = 0;
871 - let amountTotal = 0;
872 - this.entryInfo.bodys.forEach((item, index) => {
873 - item.model != null && item.model != ""
874 - ? (item.inputItem = item.model.split("|")[0].split(":")[1])
875 - : "";
876 - item.index = index;
877 - item.gno = index + 1;
878 - item.hscodeStatus = 1;
879 - //计算总重量,如果第一法定单位是重量,参与计算,如果不是,用第二法定单位计算,如果都没有重量单位,不参与计算
880 - let weight = this.getWeight(
881 - item.qtyLegalFirst,
882 - item.unitLegalFirst
883 - );
884 - if (weight == 0) {
885 - weight = this.getWeight(
886 - item.qtyLegalSecond,
887 - item.unitLegalSecond
888 - );
889 - }
890 - qtyTotal = qtyTotal + weight;
891 - //计算总价钱
892 - amountTotal = amountTotal + item.amount;
893 - });
894 -
895 - this.entryInfo.qtyUnit =
896 - numberRound(qtyTotal, 2) + this.$t("system.kg");
897 - this.entryInfo.amountTotal = numberRound(amountTotal, 2);
898 - this.entryInfo.amountCurrency = this.entryInfo.bodys[0].currency;
899 -
900 - //判断价钱是否展示红色
901 - this.routerForm == "audition"
902 - ? this.getFontRedClass(
903 - this.entryInfo.bodys[0].currencyId,
904 - this.entryInfo.amountTotal
905 - )
906 - : "";
907 - }
908 - this.loadings.entryLoading = false;
909 - } else {
910 - this.alertWarningMsg(res.message)
911 - .then(() => {
912 - this.back();
913 - })
914 - .catch(() => {
915 - this.back();
916 - });
917 - }
918 - this.loadings.templateLoading = false;
919 - })
920 - .catch((err) => {
921 - this.loadings.entryLoading = false;
922 - this.loadings.templateLoading = false;
923 - console.log(err);
924 - });
925 - },
926 - //查询右侧文件(除口岸操作外其他页面)
927 - async getAttachment() {
928 - this.loadings.imgLoading = true;
929 - this.currentImage = {};
930 - getAttachment({ id: this.id })
931 - .then((res) => {
932 - if (res.code === "200") {
933 - this.fileDataInfo(res.data, 0);
934 - // this.urlList = [];
935 - // res.data.records.forEach((item, index) => {
936 - // this.urlList.push(item.url);
937 - // item.imgError = true;
938 - // });
939 - // this.imageList = res.data.records;
940 - // this.currentImage = this.imageList[this.imgIdx];
941 - // this.entryInfo.headers.consStatus = res.data.extra.consStatus;
942 - // this.entryInfo.headers.consStatusDicCode =
943 - // res.data.extra.consStatusDicCode;
944 - // this.entryInfo.headers.stamp = res.data.extra.stamp;
945 - // this.entryInfo.headers.stampDicCode = res.data.extra.stampDicCode;
946 - this.loadings.imgLoading = false;
947 - } else {
948 - this.loadings.imgLoading = false;
949 - this.alertWarningMsg(res.message);
950 - }
951 - this.loadings.templateLoading = false;
952 - this.loadings.entryLoading = false;
953 - })
954 - .catch((err) => {
955 - this.loadings.imgLoading = false;
956 - this.loadings.templateLoading = false;
957 - this.loadings.entryLoading = false;
958 - console.log(err);
959 - });
960 - },
961 - //查询右侧文件(口岸操作用)
962 - async getNewAttachment() {
963 - this.loadings.imgLoading = true;
964 - this.currentImage = {};
965 - getFileDataFromPort({ id: this.id })
966 - .then((res) => {
967 - if (res.code === "200") {
968 - this.fileDataInfo(res.data, 1);
969 - this.loadings.imgLoading = false;
970 - } else {
971 - this.loadings.imgLoading = false;
972 - this.alertWarningMsg(res.message);
973 - }
974 - this.loadings.templateLoading = false;
975 - this.loadings.entryLoading = false;
976 - })
977 - .catch((err) => {
978 - this.loadings.imgLoading = false;
979 - this.loadings.templateLoading = false;
980 - this.loadings.entryLoading = false;
981 - console.log(err);
982 - });
983 - },
984 - //附件数据整理
985 - fileDataInfo(fileList, type) {
986 - this.urlList = [];
987 - fileList.records.forEach((item, index) => {
988 - if (type == 1) {
989 - item.selectTypeCode == null || item.selectTypeCode == ""
990 - ? (item.selectTypeCode = "attDocType_other")
991 - : "";
992 - item.isDocumentsCheck = 1;
993 - }
994 - this.urlList.push(item.url);
995 - item.imgError = true;
996 - });
997 - this.imageList = fileList.records;
998 - this.currentImage = this.imageList[this.imgIdx];
999 - this.entryInfo.headers.consStatus = fileList.extra.consStatus;
1000 - this.entryInfo.headers.consStatusDicCode =
1001 - fileList.extra.consStatusDicCode;
1002 - this.entryInfo.headers.stamp = fileList.extra.stamp;
1003 - this.entryInfo.headers.stampDicCode = fileList.extra.stampDicCode;
1004 - if (type == 1) {
1005 - this.entryInfo.headers.isAttDocTypeDisplay =
1006 - fileList.extra.isAttDocTypeDisplay; //是否显示随附单据分类
1007 - this.entryInfo.headers.isAttDocTypeEdit =
1008 - fileList.extra.isAttDocTypeEdit; //是否编辑随附单据分类
1009 - } else {
1010 - this.entryInfo.headers.isAttDocTypeDisplay = 0;
1011 - this.entryInfo.headers.isAttDocTypeEdit = 0;
1012 - }
1013 - },
1014 - //审批通过/不通过/保存
1015 - examine(status, type) {
1016 - let chmConsignmentIds = [this.id];
1017 - let chmRejectRemarkList = [
1018 - this.entryInfo.headers.rejectRemark == null
1019 - ? ""
1020 - : this.entryInfo.headers.rejectRemark,
1021 - ];
1022 - let obj2 = {};
1023 - obj2.consignmentId = chmConsignmentIds[0];
1024 - obj2.flag = status;
1025 - obj2.rejectRemark = chmRejectRemarkList[0];
1026 - obj2.portPreAuditFlag = this.entryInfo.headers.portPreAuditFlag;
1027 - obj2.approvalTimeFirst = this.entryInfo.headers.approvalTimeFirst;
1028 - obj2.attachmentsList = this.imageList;
1029 - this.urlList = [];
1030 - obj2.attachmentsList.forEach((item, index) => {
1031 - this.urlList.push(item.url);
1032 - item.rotateAngle = item.rotateAngle == null ? 0 : item.rotateAngle;
1033 - });
1034 - //保存
1035 - if (status == 2) {
1036 - this.optionChange();
1037 - this.loadings.saveLoading = true;
1038 - this.setApproval(obj2, this.$t("declaration.indexD.saveSuccess")).then(
1039 - () => {
1040 - if (type != "back") {
1041 - this.sreach();
1042 - this.getAttachment();
1043 - }
1044 - }
1045 - );
1046 - } else {
1047 - //审批不通过、通过
1048 - if (status == 0) {
1049 - this.loadings.examine0Loading = true;
1050 - } else if (status == 1) {
1051 - this.loadings.examine1Loading = true;
1052 - }
1053 - if (status == 0 && chmRejectRemarkList[0] == "") {
1054 - this.alertErrorMsg(
1055 - this.$t("declaration.indexD.unApprovalTip", {
1056 - a: this.entryInfo.headers.consignmentCode,
1057 - })
1058 - );
1059 - this.loadings.examine0Loading = false;
1060 - } else {
1061 - return new Promise((resolve, reject) => {
1062 - chmRejectRemarkList.push("end");
1063 - let obj = {
1064 - chmConsignmentIds: chmConsignmentIds,
1065 - chmRejectRemarkList: chmRejectRemarkList,
1066 - isApprove: status,
1067 - };
1068 - //走审批接口
1069 - this.setApproval(
1070 - obj2,
1071 - this.$t("declaration.indexD.approvalSuccess")
1072 - ).then(() => {
1073 - this.loadings.templateLoading = true;
1074 - this.sreach("approval").then(() => {
1075 - this.back();
1076 - });
1077 - // this.getAttachment();
1078 - });
1079 - });
1080 - }
1081 - }
1082 - },
1083 - setApproval(obj, msg) {
1084 - return new Promise((resolve, reject) => {
1085 - if (obj.flag == 0) {
1086 - approvalReject({
1087 - chmId: obj.consignmentId,
1088 - remark: obj.rejectRemark,
1089 - old: obj,
1090 - })
1091 - .then((res) => {
1092 - if (res.code != "200") {
1093 - this.alertWarningMsg(
1094 - res.message != ""
1095 - ? res.message
1096 - : this.$t("declaration.indexD.approvalError")
1097 - );
1098 - reject();
1099 - } else {
1100 - if (msg != "") {
1101 - this.msgSuccess(msg);
1102 - }
1103 - resolve();
1104 - }
1105 - this.loadings.saveLoading = false;
1106 - this.loadings.examine0Loading = false;
1107 - this.loadings.examine1Loading = false;
1108 - })
1109 - .catch((err) => {
1110 - this.loadings.saveLoading = false;
1111 - this.loadings.examine0Loading = false;
1112 - this.loadings.examine1Loading = false;
1113 - console.log(err);
1114 - reject();
1115 - });
1116 - } else if (obj.flag == 1) {
1117 - let fileObj = {
1118 - chmId: this.id,
1119 - origFileName: this.currentImage.name.replace("back_", ""),
1120 - isDocumentsCheck: this.currentImage.isDocumentsCheck,
1121 - old: obj,
1122 - };
1123 - this.$refs.imgView.imgRotateBlob(false).then((imgBlob) => {
1124 - approved({ pic: imgBlob, info: fileObj })
1125 - .then((res) => {
1126 - if (res.code != "200") {
1127 - this.alertWarningMsg(res.message);
1128 - reject();
1129 - } else {
1130 - if (msg != "") {
1131 - this.msgSuccess(msg);
1132 - }
1133 - resolve();
1134 - }
1135 - this.loadings.saveLoading = false;
1136 - this.loadings.examine0Loading = false;
1137 - this.loadings.examine1Loading = false;
1138 - })
1139 - .catch((err) => {
1140 - this.loadings.saveLoading = false;
1141 - this.loadings.examine0Loading = false;
1142 - this.loadings.examine1Loading = false;
1143 - console.log(err);
1144 - reject();
1145 - });
1146 - });
1147 - } else if (obj.flag == 2) {
1148 - let fileObj = {
1149 - chmId: this.id,
1150 - attachmentId: this.currentImage.id,
1151 - origFileName: this.currentImage.name.replace("back_", ""),
1152 - isDocumentsCheck: this.currentImage.isDocumentsCheck,
1153 - remark: obj.rejectRemark,
1154 - old: obj,
1155 - };
1156 - this.$refs.imgView.imgRotateBlob(false).then((imgBlob) => {
1157 - saveApproval({ pic: imgBlob, info: fileObj })
1158 - .then((res) => {
1159 - if (res.code === "200") {
1160 - if (msg != "") {
1161 - this.msgSuccess(msg);
1162 - }
1163 - resolve();
1164 - } else {
1165 - this.alertWarningMsg(res.message);
1166 - reject();
1167 - }
1168 - this.loadings.saveLoading = false;
1169 - this.loadings.examine0Loading = false;
1170 - this.loadings.examine1Loading = false;
1171 - })
1172 - .catch((err) => {
1173 - console.log(err);
1174 - this.loadings.saveLoading = false;
1175 - this.loadings.examine0Loading = false;
1176 - this.loadings.examine1Loading = false;
1177 - reject();
1178 - });
1179 - });
1180 - }
1181 - });
1182 - },
1183 - //系统生成报关单
1184 - downloadEntryFile(val) {
1185 - this.optionChange();
1186 - this.loadings.downloadEntryFile = true;
1187 - val == 1 ? (this.loadings.dialogButton = true) : "";
1188 - let obj = {
1189 - id: this.id,
1190 - report: val,
1191 - };
1192 - rdeEntryFileView(obj)
1193 - .then((res) => {
1194 - if (res.code === "200") {
1195 - let url = res.data.extra.managerUrl + res.data.extra.pdfPreview;
1196 - if (val == 0) {
1197 - this.entryPdf = url;
1198 - this.entryPdfVisible = true;
1199 - } else {
1200 - this.fileDownload.downLoadZip(
1201 - "res",
1202 - res.data.extra.managerUrl + res.data.extra.pdfPreview,
1203 - res.data.extra.fileName,
1204 - "pdf",
1205 - "get"
1206 - );
1207 - window.open(
1208 - res.data.extra.managerUrl + res.data.extra.pdfPreview,
1209 - "_black"
1210 - );
1211 - this.entryPdfVisible = false;
1212 - }
1213 - } else {
1214 - this.alertWarningMsg(res.message);
1215 - }
1216 - this.loadings.downloadEntryFile = false;
1217 - this.loadings.dialogButton = false;
1218 - })
1219 - .catch((err) => {
1220 - console.log(err);
1221 - this.loadings.downloadEntryFile = false;
1222 - this.loadings.dialogButton = false;
1223 - });
1224 - },
1225 - //下载清关文件
1226 - asyncDownloadFile() {
1227 - this.optionChange();
1228 - this.loadings.asyncDownloadFile = true;
1229 - this.loadings.templateLoading = true;
1230 - downloadEntryFiles({ consignmentId: this.id })
1231 - .then((res) => {
1232 - if (res.code === "200") {
1233 - let arr = res.data.extra.url.split("/");
1234 - let fileName = arr[arr.length - 1];
1235 - let fileType = arr[arr.length - 1].split(".")[1];
1236 - this.fileDownload.downLoadZip(
1237 - "res",
1238 - res.data.extra.url,
1239 - fileName,
1240 - fileType,
1241 - "get"
1242 - );
1243 - } else {
1244 - this.alertWarningMsg(res.message);
1245 - }
1246 - this.loadings.asyncDownloadFile = false;
1247 - this.loadings.templateLoading = false;
1248 - })
1249 - .catch((err) => {
1250 - console.log(err);
1251 - this.loadings.asyncDownloadFile = false;
1252 - this.loadings.templateLoading = false;
1253 - });
1254 - },
1255 - //重置全部单证分类
1256 - refreshImgType() {
1257 - this.imageList.forEach((item) => {
1258 - item.selectTypeCode = "attDocType_other";
1259 - });
1260 - },
1261 - //确认分类
1262 - checkImgType(data) {
1263 - let obj = {
1264 - consignmentCode: this.entryInfo.headers.consignmentCode,
1265 - consignmentId: this.entryInfo.headers.id,
1266 - portName: this.entryInfo.headers.declaredPort,
1267 - list: [],
1268 - };
1269 - let imgTypeList = [];
1270 - this.imageList.forEach((item) => {
1271 - imgTypeList.push(item.selectTypeCode);
1272 - let file = {
1273 - fileName: item.name,
1274 - fileSavePath: item.thumb,
1275 - fileSize: item.fileSize,
1276 - selectTypeCode: item.selectTypeCode,
1277 - uploadTime: item.uploadTime,
1278 - uploadUser: item.uploadUser,
1279 - };
1280 - obj.list.push(file);
1281 - });
1282 - if (
1283 - imgTypeList.includes("attDocType_inv") &&
1284 - imgTypeList.includes("attDocType_ctn") &&
1285 - imgTypeList.includes("attDocType_pl") &&
1286 - imgTypeList.includes("attDocType_way")
1287 - ) {
1288 - this.loadings.checkImgTypeLoading = true;
1289 - saveImgFileTypeData(obj)
1290 - .then((res) => {
1291 - if (res.code === "200") {
1292 - this.msgSuccess("申报单证分类完成!");
1293 - this.back();
1294 - } else {
1295 - this.alertWarningMsg(res.message);
1296 - }
1297 - this.loadings.checkImgTypeLoading = false;
1298 - })
1299 - .catch((err) => {
1300 - console.log(err);
1301 - this.loadings.checkImgTypeLoading = false;
1302 - });
1303 - } else {
1304 - let str = "";
1305 - if (!imgTypeList.includes("attDocType_inv")) {
1306 - str = str + "请至少选择一张【发票】进行分类!</br>";
1307 - }
1308 - if (!imgTypeList.includes("attDocType_ctn")) {
1309 - str = str + "请至少选择一张【合同】进行分类!</br>";
1310 - }
1311 - if (!imgTypeList.includes("attDocType_pl")) {
1312 - str = str + "请至少选择一张【箱单】进行分类!</br>";
1313 - }
1314 - if (!imgTypeList.includes("attDocType_way")) {
1315 - str = str + "请至少选择一张【运单】进行分类!</br>";
1316 - }
1317 - this.alertWarningMsg(str);
1318 - }
1319 - },
1320 - //委托书盖章
1321 - imgStamp(val) {
1322 - this.optionChange();
1323 - this.loadings.imgStamp = true;
1324 - let chmRejectRemarkList = [
1325 - this.entryInfo.headers.rejectRemark == null
1326 - ? ""
1327 - : this.entryInfo.headers.rejectRemark,
1328 - ];
1329 - let obj = {};
1330 - //撤销盖章
1331 - if (val == 1) {
1332 - obj = {
1333 - chmId: this.id,
1334 - old: {
1335 - rejectRemark: chmRejectRemarkList[0],
1336 - attachmentsPicDtoList: this.imageList,
1337 - consignmentId: this.id,
1338 - },
1339 - };
1340 - rdeimgRestamp(obj)
1341 - .then((res) => {
1342 - if (res.code === "200") {
1343 - this.$refs.imgView.loading = true;
1344 - this.msgSuccess(this.$t("declaration.indexD.stempSucces"));
1345 - // this.sreach();
1346 - this.getAttachment();
1347 - } else {
1348 - this.alertWarningMsg(res.message);
1349 - }
1350 - this.loadings.imgStamp = false;
1351 - })
1352 - .catch((err) => {
1353 - console.log(err);
1354 - this.loadings.imgStamp = false;
1355 - });
1356 - } else {
1357 - //盖章
1358 - let oldObj = {
1359 - attachmentsList: this.imageList,
1360 - rejectRemark: chmRejectRemarkList[0],
1361 - attachmentId: this.currentImage.id,
1362 - pickUpCityId: this.entryInfo.headers.pickUpCityId,
1363 - fileName: this.currentImage.name,
1364 - consignmentId: this.id,
1365 - isDocumentsCheck: 1,
1366 - rotateAngle:
1367 - this.currentImage.rotateAngle == null
1368 - ? 0
1369 - : this.currentImage.rotateAngle,
1370 - };
1371 - //旧接口传参
1372 - this.urlList = [];
1373 - oldObj.attachmentsList.forEach((item, index) => {
1374 - this.urlList.push(item.url);
1375 - if (item.id == this.currentImage.id) {
1376 - item.isDocumentsCheck = 1;
1377 - this.currentImage.isDocumentsCheck = 1;
1378 - }
1379 - item.rotateAngle = item.rotateAngle == null ? 0 : item.rotateAngle;
1380 - });
1381 - obj.info = {
1382 - attachmentId: this.currentImage.id,
1383 - chmId: this.id,
1384 - isRevolve: this.currentImage.rotateAngle != 0 ? 1 : 0,
1385 - origFileName: this.currentImage.name.replace("back_", ""),
1386 - pickUpCityId: this.entryInfo.headers.pickUpCityId,
1387 - old: oldObj,
1388 - };
1389 - obj.name = this.currentImage.name.replace("back_", "");
1390 - // if (this.currentImage.rotateAngle != 0) {
1391 - this.$refs.imgView.imgRotateBlob(false).then((imgBlob) => {
1392 - obj.pic = imgBlob;
1393 - this.setStamp(obj);
1394 - });
1395 - // } else {
1396 - // obj.pic = null;
1397 - // this.setStamp(obj);
1398 - // }
1399 - }
1400 - },
1401 - //委托书盖章请求
1402 - setStamp(obj) {
1403 - rdeimgStamp(obj)
1404 - .then((res) => {
1405 - if (res.code === "200") {
1406 - this.$refs.imgView.loading = true;
1407 - this.msgSuccess(this.$t("declaration.indexD.stempSucces"));
1408 - // this.sreach();
1409 - this.getAttachment();
1410 - } else {
1411 - this.alertWarningMsg(res.message);
1412 - }
1413 - this.loadings.imgStamp = false;
1414 - })
1415 - .catch((err) => {
1416 - console.log(err);
1417 - this.loadings.imgStamp = false;
1418 - });
1419 - },
1420 - optionChange() {
1421 - this.lockTime = this.$store.getters.lockTime - 30;
1422 - },
1423 - //口岸图片标识改变
1424 - imgTypeChange(val) {
1425 - // console.log(val);
1426 - },
1427 - //查询运单加锁
1428 - async sreachEntryLock(id) {
1429 - this.loadings.entryLoading = true;
1430 - return new Promise((resolve, reject) => {
1431 - if (
1432 - (this.fromAudition &&
1433 - this.entryInfo.headers.consStatusDicCode ==
1434 - "transferWaybillStatus_2") ||
1435 - ((this.entryInfo.headers.declaredPort == "SZXIP" ||
1436 - this.entryInfo.headers.declaredPort == "CANIP") &&
1437 - this.routerForm == "port" &&
1438 - this.entryInfo.headers.chmSourceType != "chmSourceType_03" &&
1439 - this.entryInfo.headers.chmSourceType != "chmSourceType_04" &&
1440 - this.entryInfo.headers.consStatusDicCode ==
1441 - "transferWaybillStatus_5")
1442 - ) {
1443 - getEntryLock({ consignmentId: id, lockFlag: 1, bizType: 0 })
1444 - .then((res) => {
1445 - if (res.code === "200") {
1446 - this.lockType = true;
1447 - this.lockTime = this.$store.getters.lockTime - 30;
1448 - this.$store.dispatch("SetEntryData", { id: id, status: 0 });
1449 - this.createLockTime();
1450 - resolve();
1451 - } else if (res.code === "41084") {
1452 - this.optionDisabled = true;
1453 - this.alertWarningMsg(this.$t("declaration.indexD.lockTip"));
1454 - reject();
1455 - } else {
1456 - resolve();
1457 - }
1458 - })
1459 - .catch((err) => {
1460 - console.log(err);
1461 - resolve();
1462 - });
1463 - } else {
1464 - resolve();
1465 - }
1466 - });
1467 - },
1468 - //刷新运单琐
1469 - uploadLock() {
1470 - getEntryLock({ consignmentId: this.id, lockFlag: 1, bizType: 0 });
1471 - },
1472 - //释放运单琐
1473 - removeEntryLock(id, bizType) {
1474 - if (
1475 - !this.optionDisabled &&
1476 - (this.fromAudition ||
1477 - ((this.entryInfo.headers.declaredPort == "SZXIP" ||
1478 - this.entryInfo.headers.declaredPort == "CANIP") &&
1479 - this.routerForm == "port" &&
1480 - this.entryInfo.headers.chmSourceType != "chmSourceType_03" &&
1481 - this.entryInfo.headers.chmSourceType != "chmSourceType_04" &&
1482 - this.entryInfo.headers.consStatusDicCode ==
1483 - "transferWaybillStatus_5"))
1484 - ) {
1485 - unEntryLock({ consignmentId: id, bizType: bizType })
1486 - .then((res) => {})
1487 - .catch((err) => {
1488 - console.log(err);
1489 - });
1490 - }
1491 - },
1492 - createLockTime() {
1493 - let lockInterval = setInterval(() => {
1494 - if (this.lockTime > 0) {
1495 - if (this.lockNum == this.$store.getters.lockTime - 30) {
1496 - this.lockNum = 0;
1497 - this.uploadLock();
1498 - // this.lockTime = this.$store.getters.lockTime - 30;
1499 - }
1500 - this.lockNum++;
1501 - this.lockTime--;
1502 - } else {
1503 - if (this.lockType) {
1504 - this.removeEntryLock(this.id, 0);
1505 - this.alertWarningMsg(
1506 - this.$t("declaration.indexD.lockTimeOutTip")
1507 - ).finally(() => {
1508 - this.back();
1509 - });
1510 - }
1511 - this.lockType = false;
1512 - clearInterval(lockInterval);
1513 - }
1514 - }, 1000);
1515 - },
1516 - getWeight(qty, unit) {
1517 - let qtyCompute = 0;
1518 - if (unit == "千克" || unit == "克" || unit == "斤" || unit == "克拉") {
1519 - switch (unit) {
1520 - case "千克":
1521 - qtyCompute = qty;
1522 - break;
1523 - case "克":
1524 - qtyCompute = qty / 1000;
1525 - break;
1526 - case "斤":
1527 - qtyCompute = qty / 2;
1528 - break;
1529 - case "克拉":
1530 - qtyCompute = qty / 5000;
1531 - break;
1532 - default:
1533 - qtyCompute = 0;
1534 - }
1535 - }
1536 - return qtyCompute;
1537 - },
1538 - getFontRedClass(currencyId, amount) {
1539 - this.fontRed = false;
1540 - getExchangeRate()
1541 - .then((res) => {
1542 - if (res.code === "200") {
1543 - let usd = res.data.extra.filter(
1544 - (cur) => cur.code == "currencySystem_USD"
1545 - )[0];
1546 - let current = res.data.extra.filter(
1547 - (cur) => cur.id == currencyId
1548 - )[0];
1549 - let amountRes =
1550 - (amount * current.bocConversionPrice) / usd.bocConversionPrice;
1551 - if (amountRes > 50000) {
1552 - this.fontRed = true;
1553 - return true;
1554 - }
1555 - }
1556 - return false;
1557 - })
1558 - .catch((err) => {
1559 - console.log(err);
1560 - return false;
1561 - });
1562 - },
1563 - //字典表添加
1564 - async setDict() {
1565 - this.$store.dispatch("GetDistrict").then((res) => {
1566 - this.dictData.district = res;
1567 - });
1568 - this.$store.dispatch("GetPort", { name: "", type: "all" }).then((res) => {
1569 - this.dictData.port = res;
1570 - });
1571 - let arr = [
1572 - "VehicleWayCode",
1573 - "supervisionMode",
1574 - "natureExemption",
1575 - "ClinchType",
1576 - "NewPackageType",
1577 - "Country",
1578 - "levyType",
1579 - "currencySystem",
1580 - "ENTRY_METHOD",
1581 - "pickUpCity",
1582 - "consType",
1583 - "brandType",
1584 - "exportBenefits",
1585 - ];
1586 - if (this.$route.params.from == "port") {
1587 - arr.push("attDocType");
1588 - }
1589 - arr.forEach((item, index) => {
1590 - this.$store
1591 - .dispatch("GetDict", {
1592 - dictionaryCode: item,
1593 - extIndex: "",
1594 - extVal: "",
1595 - })
1596 - .then((res) => {
1597 - this.dictData[item] = res;
1598 - });
1599 - });
1600 - },
1601 - inputItemBlur(val) {
1602 - if (val) {
1603 - let obj = val;
1604 - this.activeDetial = obj;
1605 - this.entryInfo = obj;
1606 - }
1607 - },
1608 - documentsCheckChange(val) {
1609 - this.optionChange();
1610 - if (val == 0 && this.currentImage.isSeal == 1) {
1611 - this.currentImage.isDocumentsCheck = 1;
1612 - this.alertWarningMsg(this.$t("declaration.indexD.checkError"));
1613 - } else {
1614 - if (
1615 - this.entryInfo.headers.consStatusDicCode == "transferWaybillStatus_2"
1616 - // && this.currentImage.imgError != true
1617 - ) {
1618 - this.loadings.imgCheckLoading = true;
1619 - let obj = {
1620 - isDocumentCheck: val,
1621 - attachmentId: this.currentImage.id,
1622 - };
1623 - setDocumentCheck(obj)
1624 - .then((res) => {
1625 - if (res.code === "200") {
1626 - } else {
1627 - // this.alertWarningMsg(res.message);
1628 - }
1629 - this.loadings.imgCheckLoading = false;
1630 - })
1631 - .catch((err) => {
1632 - console.log(err);
1633 - this.loadings.imgCheckLoading = false;
1634 - });
1635 - }
1636 - }
1637 - },
1638 - //点击商品
1639 - rowClick(val) {
1640 - setTimeout(() => {
1641 - if (!this.bodyDialogVisible) {
1642 - this.optionChange();
1643 - this.currentDetail = val;
1644 - this.bodyDialogVisible = true;
1645 - }
1646 - }, 200);
1647 - },
1648 - closeDialog(val) {
1649 - this.bodyDialogVisible = false;
1650 - },
1651 - //返回
1652 - back() {
1653 - if (this.$route.query.noGoBack) {
1654 - this.$router.push({ path: "/" });
1655 - } else {
1656 - this.$router.go(-1);
1657 - this.$store.getters.visitedViews.forEach((item) => {
1658 - if (item.path == "/details") {
1659 - this.$store.dispatch("tagsView/delView", item);
1660 - }
1661 - });
1662 - }
1663 - this.loadings.templateLoading = false;
1664 - this.loadings.saveLoading = false;
1665 - this.loadings.examine0Loading = false;
1666 - this.loadings.examine1Loading = false;
1667 - },
1668 - //分页
1669 - changeCurrentImg(i) {
1670 - this.imgIdx = i;
1671 - this.currentImage = this.imageList[i];
1672 - },
1673 - //图片旋转
1674 - rotate(val) {
1675 - this.currentImage.rotateAngle = val.rotate;
1676 - // this.imageList.forEach(item=>{
1677 - // if(item.id == this.currentImage.id){
1678 - // item.rotateAngle = val.rotate
1679 - // }
1680 - // })
1681 - },
1682 - //图片加载状态
1683 - imgLoad(val) {
1684 - this.currentImage.imgError = val;
1685 - },
1686 - //图片旋转状态
1687 - imgBlob(val) {
1688 - this.$refs.imgView.loading = true;
1689 - if (val.data.isSeal != 1 && !this.optionDisabled) {
1690 - let obj = {
1691 - pic: val.blob,
1692 - info: {
1693 - attachmentId: val.data.id,
1694 - chmId: this.id,
1695 - origFileName: val.data.name.replace("back_", ""),
1696 - },
1697 - };
1698 - setImgRoate(obj)
1699 - .then((res) => {
1700 - if (res.code === "200") {
1701 - this.imageList.forEach((item) => {
1702 - if (item.id == val.data.id) {
1703 - item.rotateAngle = 0;
1704 - }
1705 - });
1706 - } else {
1707 - // this.alertWarningMsg(res.message);
1708 - }
1709 - this.$refs.imgView.loading = false;
1710 - })
1711 - .catch((err) => {
1712 - console.log(err);
1713 - this.$refs.imgView.loading = false;
1714 - });
1715 - } else {
1716 - this.$refs.imgView.loading = false;
1717 - }
1718 - },
1719 - dialogClose() {
1720 - this.entryPdfVisible = false;
1721 - },
1722 - formItemEvent(val) {},
1723 - },
1724 -};
1725 -</script>
1726 -
1727 -<style lang="scss" scoped>
1728 -@import "@/assets/styles/variables.scss";
1729 -
1730 -.entry {
1731 - width: 100%;
1732 - height: 100%;
1733 -
1734 - .entryInformation {
1735 - width: 100%;
1736 - height: 100%;
1737 - overflow: auto;
1738 - }
1739 -}
1740 -
1741 -.option {
1742 - width: 100%;
1743 - height: 100%;
1744 - margin: 0 auto;
1745 - background-color: #fff;
1746 - padding: 5px 5px 5px;
1747 - overflow: auto;
1748 -
1749 - .details {
1750 - display: flex;
1751 - justify-content: center;
1752 -
1753 - .side {
1754 - width: 50%;
1755 - padding: 5px;
1756 -
1757 - .formTitleFlex {
1758 - display: flex;
1759 - justify-content: space-between;
1760 - font-size: 16px;
1761 - font-weight: 600;
1762 - margin-top: 10px;
1763 - margin-bottom: 10px;
1764 - }
1765 -
1766 - .sideContentBorder {
1767 - border: 1px solid $fedexBorder;
1768 - }
1769 -
1770 - .titleButton-View {
1771 - background-color: #f2f2f2 !important;
1772 - border: 2px solid #999 !important;
1773 - }
1774 -
1775 - .entryFileOption {
1776 - display: flex;
1777 - justify-content: space-between;
1778 - margin-top: 5px;
1779 - }
1780 - }
1781 - }
1782 -}
1783 -.boxTitle {
1784 - display: flex;
1785 - justify-content: space-between;
1786 - font-size: 16px;
1787 - font-weight: 600;
1788 - margin-top: 10px;
1789 - margin-bottom: 10px;
1790 -}
1791 -
1792 -.entrySaveButton {
1793 - font-size: 16px;
1794 -}
1795 -
1796 -.entrySave {
1797 - margin-top: 32px;
1798 - margin-bottom: 32px;
1799 -}
1800 -
1801 -.fontRedClass {
1802 - color: red !important;
1803 -}
1804 -
1805 -.fontGrayClass {
1806 - color: #909399 !important;
1807 -}
1808 -
1809 -.backgroundButton {
1810 - color: $menuLightHover;
1811 - background-color: $fedexButton;
1812 -}
1813 -</style>
1 <template> 1 <template>
2 - <div class="export-bill-detail"> 2 + <div class="entry" v-loading="loadings.entryLoading">
3 - <h5 class="first-header"> 3 + <div class="entryTitle">
4 - 出口订单详情 4 + <div>出口订单详情</div>
5 - <div class="returnButton" @click="$router.back()">返回</div> 5 + <div>
6 - </h5> 6 + <el-button class="entrySaveButton" @click="back">返 回</el-button>
7 + </div>
8 + </div>
7 <el-form 9 <el-form
8 - class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder" 10 + class="fedexFormStyle"
9 ref="sreachForm" 11 ref="sreachForm"
10 - :model="searchForm" 12 + :model="formData"
11 label-position="top" 13 label-position="top"
12 disabled 14 disabled
13 size="small" 15 size="small"
14 > 16 >
15 - <el-row class="row-border"> 17 + <el-row :gutter="5">
16 - <el-col :span="5"> 18 + <el-col :span="3">
17 - <Formitem label="订单编号" prop="consignmentCode"> 19 + <Formitem label="订单编号" prop="orderNo">
18 - <el-popover
19 - placement="bottom"
20 - width="320"
21 - trigger="manual"
22 - popper-class="popoverconsignmentCode"
23 - v-model="textareaVisible.formItemconsignmentCode"
24 - >
25 - <el-input
26 - name="consignmentCode-textarea"
27 - type="textarea"
28 - :rows="5"
29 - id="popoverInputconsignmentCode"
30 - class="inputShadow textareaPopover"
31 - v-model="searchForm.consignmentCode"
32 - resize="none"
33 - maxlength="13000"
34 - placeholder=""
35 - @blur="textareaBlur"
36 - ></el-input>
37 <el-input 20 <el-input
38 - slot="reference" 21 + type="text"
39 - name="consignmentCode"
40 - type="textarea"
41 - :rows="1"
42 class="inputShadow" 22 class="inputShadow"
43 - id="inputInner--consignmentCode" 23 + id="inputInner--orderNo"
44 - v-model="searchForm.consignmentCode"
45 resize="none" 24 resize="none"
25 + v-model="formData.orderNo"
26 + clearable
46 placeholder="" 27 placeholder=""
47 - @focus="textareaFocus"
48 ></el-input> 28 ></el-input>
49 - </el-popover>
50 </Formitem> 29 </Formitem>
51 </el-col> 30 </el-col>
52 - <el-col :span="4"> 31 + <el-col :span="3">
53 - <Formitem label="订单类型" prop="factoryCode"> 32 + <Formitem label="订单类型" prop="orderType">
54 - <el-select 33 + <el-input
55 type="text" 34 type="text"
56 - id="inputInner--declaredPort" 35 + class="inputShadow"
57 - v-model="searchForm.declaredPort" 36 + id="inputInner--orderType"
37 + resize="none"
38 + v-model="formData.orderType"
58 clearable 39 clearable
59 placeholder="" 40 placeholder=""
60 - > 41 + ></el-input>
61 - <el-option
62 - v-for="(item, index) in dictData.userport"
63 - :key="index"
64 - :label="item.name"
65 - :value="item.name"
66 - ></el-option>
67 - </el-select>
68 </Formitem> 42 </Formitem>
69 </el-col> 43 </el-col>
70 - <el-col :span="5"> 44 + <el-col :span="3">
71 - <Formitem label="电商平台代码" prop="consignmentCode"> 45 + <Formitem label="电商平台代码" prop="ebpcode">
72 - <el-popover
73 - placement="bottom"
74 - width="320"
75 - trigger="manual"
76 - popper-class="popoverconsignmentCode"
77 - v-model="textareaVisible.formItemconsignmentCode"
78 - >
79 <el-input 46 <el-input
80 - name="consignmentCode-textarea" 47 + type="text"
81 - type="textarea"
82 - :rows="5"
83 - id="popoverInputconsignmentCode"
84 - class="inputShadow textareaPopover"
85 - v-model="searchForm.consignmentCode"
86 - resize="none"
87 - maxlength="13000"
88 - placeholder=""
89 - @blur="textareaBlur"
90 - ></el-input>
91 - <el-input
92 - slot="reference"
93 - name="consignmentCode"
94 - type="textarea"
95 - :rows="1"
96 class="inputShadow" 48 class="inputShadow"
97 - id="inputInner--consignmentCode" 49 + id="inputInner--ebpcode"
98 - v-model="searchForm.consignmentCode"
99 resize="none" 50 resize="none"
51 + v-model="formData.ebpcode"
52 + clearable
100 placeholder="" 53 placeholder=""
101 - @focus="textareaFocus"
102 ></el-input> 54 ></el-input>
103 - </el-popover>
104 </Formitem> 55 </Formitem>
105 </el-col> 56 </el-col>
106 - <el-col :span="5"> 57 + <el-col :span="6">
107 - <Formitem label="电商平台名称" prop="consignmentCode"> 58 + <Formitem label="电商平台名称" prop="ebpname">
108 - <el-popover
109 - placement="bottom"
110 - width="320"
111 - trigger="manual"
112 - popper-class="popoverconsignmentCode"
113 - v-model="textareaVisible.formItemconsignmentCode"
114 - >
115 <el-input 59 <el-input
116 - name="consignmentCode-textarea" 60 + type="text"
117 - type="textarea"
118 - :rows="5"
119 - id="popoverInputconsignmentCode"
120 - class="inputShadow textareaPopover"
121 - v-model="searchForm.consignmentCode"
122 - resize="none"
123 - maxlength="13000"
124 - placeholder=""
125 - @blur="textareaBlur"
126 - ></el-input>
127 - <el-input
128 - slot="reference"
129 - name="consignmentCode"
130 - type="textarea"
131 - :rows="1"
132 class="inputShadow" 61 class="inputShadow"
133 - id="inputInner--consignmentCode" 62 + id="inputInner--ebpname"
134 - v-model="searchForm.consignmentCode"
135 resize="none" 63 resize="none"
64 + v-model="formData.ebpname"
65 + clearable
136 placeholder="" 66 placeholder=""
137 - @focus="textareaFocus"
138 ></el-input> 67 ></el-input>
139 - </el-popover>
140 </Formitem> 68 </Formitem>
141 </el-col> 69 </el-col>
142 - <el-col :span="5"> 70 + <el-col :span="3">
143 - <Formitem label="电商企业代码" prop="consignmentCode"> 71 + <Formitem label="电商企业代码" prop="ebccode">
144 - <el-popover
145 - placement="bottom"
146 - width="320"
147 - trigger="manual"
148 - popper-class="popoverconsignmentCode"
149 - v-model="textareaVisible.formItemconsignmentCode"
150 - >
151 <el-input 72 <el-input
152 - name="consignmentCode-textarea" 73 + type="text"
153 - type="textarea"
154 - :rows="5"
155 - id="popoverInputconsignmentCode"
156 - class="inputShadow textareaPopover"
157 - v-model="searchForm.consignmentCode"
158 - resize="none"
159 - maxlength="13000"
160 - placeholder=""
161 - @blur="textareaBlur"
162 - ></el-input>
163 - <el-input
164 - slot="reference"
165 - name="consignmentCode"
166 - type="textarea"
167 - :rows="1"
168 class="inputShadow" 74 class="inputShadow"
169 - id="inputInner--consignmentCode" 75 + id="inputInner--ebccode"
170 - v-model="searchForm.consignmentCode"
171 resize="none" 76 resize="none"
77 + v-model="formData.ebccode"
78 + clearable
172 placeholder="" 79 placeholder=""
173 - @focus="textareaFocus"
174 ></el-input> 80 ></el-input>
175 - </el-popover>
176 </Formitem> 81 </Formitem>
177 </el-col> 82 </el-col>
178 - </el-row> 83 + <el-col :span="3">
179 - <el-row> 84 + <Formitem label="电商企业" prop="ebcname">
180 - <el-col :span="5">
181 - <Formitem label="电商企业" prop="consignmentCode">
182 - <el-popover
183 - placement="bottom"
184 - width="320"
185 - trigger="manual"
186 - popper-class="popoverconsignmentCode"
187 - v-model="textareaVisible.formItemconsignmentCode"
188 - >
189 <el-input 85 <el-input
190 - name="consignmentCode-textarea" 86 + type="text"
191 - type="textarea"
192 - :rows="5"
193 - id="popoverInputconsignmentCode"
194 - class="inputShadow textareaPopover"
195 - v-model="searchForm.consignmentCode"
196 - resize="none"
197 - maxlength="13000"
198 - placeholder=""
199 - @blur="textareaBlur"
200 - ></el-input>
201 - <el-input
202 - slot="reference"
203 - name="consignmentCode"
204 - type="textarea"
205 - :rows="1"
206 class="inputShadow" 87 class="inputShadow"
207 - id="inputInner--consignmentCode" 88 + id="inputInner--ebcname"
208 - v-model="searchForm.consignmentCode"
209 resize="none" 89 resize="none"
90 + v-model="formData.ebcname"
91 + clearable
210 placeholder="" 92 placeholder=""
211 - @focus="textareaFocus"
212 ></el-input> 93 ></el-input>
213 - </el-popover>
214 </Formitem> 94 </Formitem>
215 </el-col> 95 </el-col>
216 - 96 + <el-col :span="3">
217 - <el-col :span="5"> 97 + <Formitem label="货款金额" prop="goodsValue">
218 - <Formitem label="贷款金额" prop="consignmentCode">
219 - <el-popover
220 - placement="bottom"
221 - width="320"
222 - trigger="manual"
223 - popper-class="popoverconsignmentCode"
224 - v-model="textareaVisible.formItemconsignmentCode"
225 - >
226 - <el-input
227 - name="consignmentCode-textarea"
228 - type="textarea"
229 - :rows="5"
230 - id="popoverInputconsignmentCode"
231 - class="inputShadow textareaPopover"
232 - v-model="searchForm.consignmentCode"
233 - resize="none"
234 - maxlength="13000"
235 - placeholder=""
236 - @blur="textareaBlur"
237 - ></el-input>
238 <el-input 98 <el-input
239 - slot="reference" 99 + type="text"
240 - name="consignmentCode"
241 - type="textarea"
242 - :rows="1"
243 class="inputShadow" 100 class="inputShadow"
244 - id="inputInner--consignmentCode" 101 + id="inputInner--goodsValue"
245 - v-model="searchForm.consignmentCode"
246 resize="none" 102 resize="none"
103 + v-model="formData.goodsValue"
104 + clearable
247 placeholder="" 105 placeholder=""
248 - @focus="textareaFocus"
249 ></el-input> 106 ></el-input>
250 - </el-popover>
251 </Formitem> 107 </Formitem>
252 </el-col> 108 </el-col>
253 - 109 + </el-row>
254 - <el-col :span="5"> 110 + <el-row :gutter="5">
255 - <Formitem label="运杂费" prop="consignmentCode"> 111 + <el-col :span="3">
256 - <el-popover 112 + <Formitem label="运杂费" prop="freight">
257 - placement="bottom"
258 - width="320"
259 - trigger="manual"
260 - popper-class="popoverconsignmentCode"
261 - v-model="textareaVisible.formItemconsignmentCode"
262 - >
263 - <el-input
264 - name="consignmentCode-textarea"
265 - type="textarea"
266 - :rows="5"
267 - id="popoverInputconsignmentCode"
268 - class="inputShadow textareaPopover"
269 - v-model="searchForm.consignmentCode"
270 - resize="none"
271 - maxlength="13000"
272 - placeholder=""
273 - @blur="textareaBlur"
274 - ></el-input>
275 <el-input 113 <el-input
276 - slot="reference" 114 + type="text"
277 - name="consignmentCode"
278 - type="textarea"
279 - :rows="1"
280 class="inputShadow" 115 class="inputShadow"
281 - id="inputInner--consignmentCode" 116 + id="inputInner--freight"
282 - v-model="searchForm.consignmentCode"
283 resize="none" 117 resize="none"
118 + v-model="formData.freight"
119 + clearable
284 placeholder="" 120 placeholder=""
285 - @focus="textareaFocus"
286 ></el-input> 121 ></el-input>
287 - </el-popover>
288 </Formitem> 122 </Formitem>
289 </el-col> 123 </el-col>
290 - 124 + <el-col :span="3">
291 - <el-col :span="4"> 125 + <Formitem label="币制" prop="currency">
292 - <Formitem label="币别" prop="factoryCode"> 126 + <el-input
293 - <el-select
294 type="text" 127 type="text"
295 - id="inputInner--declaredPort" 128 + class="inputShadow"
296 - v-model="searchForm.declaredPort" 129 + id="inputInner--currency"
130 + resize="none"
131 + v-model="formData.currency"
297 clearable 132 clearable
298 placeholder="" 133 placeholder=""
299 - > 134 + ></el-input>
300 - <el-option
301 - v-for="(item, index) in dictData.userport"
302 - :key="index"
303 - :label="item.name"
304 - :value="item.name"
305 - ></el-option>
306 - </el-select>
307 </Formitem> 135 </Formitem>
308 </el-col> 136 </el-col>
309 - 137 + <!-- <el-col :span="3">
310 - <el-col :span="5"> 138 + <Formitem label="业务状态" prop="returnStatus">
311 - <Formitem label="业务状态" prop="consignmentCode">
312 - <el-popover
313 - placement="bottom"
314 - width="320"
315 - trigger="manual"
316 - popper-class="popoverconsignmentCode"
317 - v-model="textareaVisible.formItemconsignmentCode"
318 - >
319 <el-input 139 <el-input
320 - name="consignmentCode-textarea" 140 + type="text"
321 - type="textarea" 141 + class="inputShadow"
322 - :rows="5" 142 + id="inputInner--returnStatus"
323 - id="popoverInputconsignmentCode"
324 - class="inputShadow textareaPopover"
325 - v-model="searchForm.consignmentCode"
326 resize="none" 143 resize="none"
327 - maxlength="13000" 144 + v-model="formData.returnStatus"
145 + clearable
328 placeholder="" 146 placeholder=""
329 - @blur="textareaBlur"
330 ></el-input> 147 ></el-input>
148 + </Formitem>
149 + </el-col> -->
150 + <el-col :span="3">
151 + <Formitem label="申报类型" prop="appType">
331 <el-input 152 <el-input
332 - slot="reference" 153 + type="text"
333 - name="consignmentCode"
334 - type="textarea"
335 - :rows="1"
336 class="inputShadow" 154 class="inputShadow"
337 - id="inputInner--consignmentCode" 155 + id="inputInner--appType"
338 - v-model="searchForm.consignmentCode"
339 resize="none" 156 resize="none"
157 + v-model="formData.appType"
158 + clearable
340 placeholder="" 159 placeholder=""
341 - @focus="textareaFocus"
342 ></el-input> 160 ></el-input>
343 - </el-popover>
344 </Formitem> 161 </Formitem>
345 </el-col> 162 </el-col>
346 - </el-row> 163 + <el-col :span="3">
347 - <el-row> 164 + <Formitem label="申报日期" prop="appTime">
348 - <el-col :span="4"> 165 + <el-input
349 - <Formitem label="申报类型" prop="factoryCode">
350 - <el-select
351 type="text" 166 type="text"
352 - id="inputInner--declaredPort" 167 + class="inputShadow"
353 - v-model="searchForm.declaredPort" 168 + id="inputInner--appTime"
169 + resize="none"
170 + v-model="formData.appTime"
354 clearable 171 clearable
355 placeholder="" 172 placeholder=""
356 - > 173 + ></el-input>
357 - <el-option
358 - v-for="(item, index) in dictData.userport"
359 - :key="index"
360 - :label="item.name"
361 - :value="item.name"
362 - ></el-option>
363 - </el-select>
364 - </Formitem>
365 - </el-col>
366 - <el-col :span="4">
367 - <Formitem label="申报日期" prop="declareDate">
368 - <el-date-picker
369 - v-model="value1"
370 - type="date"
371 - placeholder="选择日期">
372 - </el-date-picker>
373 </Formitem> 174 </Formitem>
374 </el-col> 175 </el-col>
375 - <el-col :span="5"> 176 + <el-col :span="12">
376 - <Formitem label="备注" prop="consignmentCode"> 177 + <Formitem label="备注" prop="note">
377 - <el-popover
378 - placement="bottom"
379 - width="320"
380 - trigger="manual"
381 - popper-class="popoverconsignmentCode"
382 - v-model="textareaVisible.formItemconsignmentCode"
383 - >
384 <el-input 178 <el-input
385 - name="consignmentCode-textarea" 179 + type="text"
386 - type="textarea"
387 - :rows="5"
388 - id="popoverInputconsignmentCode"
389 - class="inputShadow textareaPopover"
390 - v-model="searchForm.consignmentCode"
391 - resize="none"
392 - maxlength="13000"
393 - placeholder=""
394 - @blur="textareaBlur"
395 - ></el-input>
396 - <el-input
397 - slot="reference"
398 - name="consignmentCode"
399 - type="textarea"
400 - :rows="1"
401 class="inputShadow" 180 class="inputShadow"
402 - id="inputInner--consignmentCode" 181 + id="inputInner--note"
403 - v-model="searchForm.consignmentCode"
404 resize="none" 182 resize="none"
183 + v-model="formData.note"
184 + clearable
405 placeholder="" 185 placeholder=""
406 - @focus="textareaFocus"
407 ></el-input> 186 ></el-input>
408 - </el-popover>
409 </Formitem> 187 </Formitem>
410 </el-col> 188 </el-col>
411 </el-row> 189 </el-row>
412 </el-form> 190 </el-form>
413 - 191 + <div
414 - <h5>回执信息</h5> 192 + :class="{ entryTitle: true, titleBorder: logtableType ? false : true }"
415 - <ReceiptInfoTable /> 193 + style="margin-top: 10px"
416 - 194 + >
417 - <h5>商品明细</h5> 195 + <div>
418 - <ProductDetailTable /> 196 + 回执信息
197 + <el-button type="text" @click="hiddenLogTable">
198 + <svg-icon v-if="logtableType" icon-class="downIcon"></svg-icon>
199 + <svg-icon v-else icon-class="upIcon"></svg-icon>
200 + </el-button>
201 + </div>
202 + </div>
203 + <ReceiptInfoTable
204 + v-if="logtableType"
205 + :tableData="logData"
206 + :headerData="logHeaderData"
207 + />
208 + <div class="entryTitle" style="margin-top: 10px">商品明细</div>
209 + <ProductDetailTable
210 + :tableData="detailData"
211 + :bodyHeader="detialHeaderData"
212 + />
213 + <div style="margin-bottom: 20px; text-align: center"></div>
419 </div> 214 </div>
420 </template> 215 </template>
421 216
422 <script> 217 <script>
423 -import ReceiptInfoTable from "@/components/ReceiptInfoTable/index.vue"; 218 +import ReceiptInfoTable from "../components/ReceiptInfoTable/index.vue";
424 -import ProductDetailTable from "@/components/ProductDetailTable/index.vue"; 219 +import ProductDetailTable from "../components/ProductDetailTable/index.vue";
425 - 220 +import { getOrderDetailData } from "@/api/exportDetail-api.js";
426 export default { 221 export default {
427 name: "index.vue", 222 name: "index.vue",
428 - components: {ProductDetailTable, ReceiptInfoTable}, 223 + components: { ProductDetailTable, ReceiptInfoTable },
429 data() { 224 data() {
430 return { 225 return {
431 - searchForm: { 226 + id: null,
432 - declaredPort: "", 227 + formData: {},
433 - consStatus: "", 228 + logData: [],
434 - consignmentCode: "", 229 + logHeaderData: [
435 - accsDataImportTime: [], 230 + {
436 - ownerName: "", 231 + name: "回执状态",
437 - consignmentHeadCode: "", 232 + value: "returnStatus",
438 - isPushCustomsSys: "", 233 + width: "200",
439 - waitOperStatus: "", 234 + align: "left",
440 - declTime: [], 235 + },
236 + {
237 + name: "状态时间",
238 + value: "returnTime",
239 + width: "400",
240 + align: "left",
441 }, 241 },
442 - textareaVisible: { 242 + {
443 - formItemconsignmentCode: false, 243 + name: "回执描述",
444 - formItemconsignmentHeadCode: false, 244 + value: "returnInfo",
245 + width: "",
246 + align: "left",
445 }, 247 },
446 - dictData: {
447 - userport: [
448 - {name: "Shanghai Port", code: "SH"},
449 - {name: "Beijing Port", code: "BJ"},
450 - {name: "Guangzhou Port", code: "GZ"},
451 - {name: "Shenzhen Port", code: "SZ"},
452 - {name: "Tianjin Port", code: "TJ"},
453 ], 248 ],
249 + detailData: [],
250 + detialHeaderData: [
251 + {
252 + name: "企业商品货号",
253 + value: "",
254 + width: "",
255 + align: "left",
454 }, 256 },
455 - } 257 + {
258 + name: "商品企业商品名称",
259 + value: "",
260 + width: "",
261 + align: "left",
456 }, 262 },
457 - methods: { 263 + {
458 - textareaBlur(val) { 264 + name: "企业商品描述",
459 - let inputInner = document.querySelector( 265 + value: "",
460 - "#inputInner--" + val.target.name.split("-")[0] 266 + width: "",
461 - ); 267 + align: "left",
462 - this.textareaVisible["formItem" + val.target.name.split("-")[0]] = false; 268 + },
463 - inputInner.style.display = "block"; 269 + {
464 - this.$nextTick(() => { 270 + name: "条码",
465 - inputInner.blur(); 271 + value: "",
466 - if ( 272 + width: "",
467 - inputInner.value != undefined && 273 + align: "left",
468 - inputInner.value != "" && 274 + },
469 - inputInner.value != null 275 + {
470 - ) { 276 + name: "计量单位",
471 - inputInner.classList.add("inputFocus"); 277 + value: "",
278 + width: "",
279 + align: "left",
280 + },
281 + {
282 + name: "币制",
283 + value: "",
284 + width: "",
285 + align: "left",
286 + },
287 + {
288 + name: "数量",
289 + value: "",
290 + width: "",
291 + align: "left",
292 + },
293 + {
294 + name: "单价",
295 + value: "",
296 + width: "",
297 + align: "left",
298 + },
299 + {
300 + name: "总价",
301 + value: "",
302 + width: "",
303 + align: "left",
304 + },
305 + {
306 + name: "备注",
307 + value: "",
308 + width: "",
309 + align: "left",
310 + },
311 + ],
312 + loadings: {
313 + entryLoading: false,
314 + },
315 + logtableType: true,
316 + };
317 + },
318 + created() {
319 + if (this.$route.params.data) {
320 + this.id = this.$route.params.data.id;
321 + this.searchData();
472 } else { 322 } else {
473 - inputInner.classList.remove("inputFocus"); 323 + this.back();
474 } 324 }
325 + },
326 + methods: {
327 + searchData() {
328 + this.loadings.entryLoading = true;
329 + getOrderDetailData({ orderId: this.id })
330 + .then((res) => {
331 + if (res.code === "200") {
332 + this.formData = res.data.exportOrder;
333 + this.detailData = res.data.exportOrderProductList;
334 + this.logData = res.data.exportOrderReceiptList;
335 + this.detailData.forEach((item, idx) => {
336 + item.index = idx;
475 }); 337 });
476 - let arr = []; 338 + } else {
477 - this.searchForm[val.target.name.split("-")[0]] 339 + this.alertWarningMsg(res.message);
478 - .replace(/[\n\,\;\;]/g, ",")
479 - .replace(/[\t]/g, "")
480 - .split(",")
481 - .forEach((str, index) => {
482 - if (str != null && str != "" && index <= 1000) {
483 - arr.push(str.trim());
484 } 340 }
341 + this.loadings.entryLoading = false;
342 + })
343 + .catch((err) => {
344 + console.log(err);
345 + this.loadings.entryLoading = false;
485 }); 346 });
486 - this.searchForm[val.target.name.split("-")[0]] = arr.join("\n");
487 - this.$forceUpdate();
488 }, 347 },
489 - //文本域展示状态切换 348 + searchLogData() {},
490 - textareaFocus(val) { 349 + hiddenLogTable() {
491 - this.textareaVisible["formItem" + val.target.name.split("-")[0]] = true; 350 + this.logtableType = !this.logtableType;
492 - this.$nextTick(() => {
493 - document
494 - .querySelector("#popoverInput" + val.target.name.split("-")[0])
495 - .focus();
496 - document.querySelector(
497 - "#inputInner--" + val.target.name.split("-")[0]
498 - ).style.display = "none";
499 - });
500 }, 351 },
501 - } 352 + back() {
502 -} 353 + this.$router.go(-1);
354 + },
355 + },
356 +};
503 </script> 357 </script>
504 358
505 <style scoped lang="scss"> 359 <style scoped lang="scss">
506 -.export-bill-detail { 360 +.entry {
507 - background-color: white; 361 + width: 100%;
508 - padding-left: 20px; 362 + height: 100%;
509 - //border: 1px solid black; 363 + padding: 10px;
364 + background-color: #fff;
365 + overflow: auto;
366 +
367 + .entryInformation {
368 + width: 100%;
510 height: 100%; 369 height: 100%;
511 - .fedexFormItem {
512 - background-color: #f5f5f5;
513 - margin-right: 5px;
514 - margin-bottom: 5px;
515 - }
516 - .fedexformSreach {
517 - border-bottom: none;
518 } 370 }
519 - .first-header { 371 +
520 - margin-top: 0; 372 + .entryTitle {
521 - padding-top: 20px;
522 display: flex; 373 display: flex;
523 justify-content: space-between; 374 justify-content: space-between;
524 - position: relative; 375 + font-weight: 600;
525 - .returnButton { 376 + font-weight: 16px;
526 - font-size: 14px; 377 + color: #000;
527 - color: red; 378 + margin-bottom: 10px;
528 - position: absolute;
529 - right: 0;
530 - top: 0px;
531 - width: 80px;
532 - height: 30px;
533 - line-height: 30px;
534 - text-align: center;
535 - background-color: white;
536 - border-radius: 5px;
537 - margin-right: 20px;
538 - margin-top: 20px;
539 - cursor: pointer;
540 - border: 1px solid red;
541 } 379 }
380 +
381 + .titleBorder {
382 + border-bottom: 1px solid #333;
542 } 383 }
543 } 384 }
544 </style> 385 </style>
......
...@@ -174,7 +174,9 @@ ...@@ -174,7 +174,9 @@
174 <span>{{ scope.row.returnStatus }}</span> 174 <span>{{ scope.row.returnStatus }}</span>
175 </template> 175 </template>
176 <template v-slot:orderNo="scope"> 176 <template v-slot:orderNo="scope">
177 - <el-button type="text">{{ scope.row.orderNo }}</el-button> 177 + <el-button type="text" @click="view(scope.row)">{{
178 + scope.row.orderNo
179 + }}</el-button>
178 </template> 180 </template>
179 </Table> 181 </Table>
180 </div> 182 </div>
...@@ -325,6 +327,13 @@ export default { ...@@ -325,6 +327,13 @@ export default {
325 }, 327 },
326 //导出 328 //导出
327 downloadData() {}, 329 downloadData() {},
330 + //查询详情
331 + view(val) {
332 + this.$router.push({
333 + name: "ExportBillDetail",
334 + params: { data: val },
335 + });
336 + },
328 //文本域展示状态切换 337 //文本域展示状态切换
329 textareaFocus(val) { 338 textareaFocus(val) {
330 this.textareaVisible["formItem" + val.target.name.split("-")[0]] = true; 339 this.textareaVisible["formItem" + val.target.name.split("-")[0]] = true;
......
...@@ -1309,8 +1309,8 @@ ...@@ -1309,8 +1309,8 @@
1309 </template> 1309 </template>
1310 1310
1311 <script> 1311 <script>
1312 -import ReceiptInfoTable from "@/components/ReceiptInfoTable/index.vue"; 1312 +import ReceiptInfoTable from "../components/ReceiptInfoTable/index.vue";
1313 -import ProductDetailTable from "@/components/ProductDetailTable/index.vue"; 1313 +import ProductDetailTable from "../components/ProductDetailTable/index.vue";
1314 1314
1315 export default { 1315 export default {
1316 name: "exportTransportDetail.vue", 1316 name: "exportTransportDetail.vue",
......
...@@ -290,7 +290,6 @@ ...@@ -290,7 +290,6 @@
290 </template> 290 </template>
291 291
292 <script> 292 <script>
293 -import {getAllExportingBills, getAllListBills} from "@/api/query/query";
294 import PopoverTextarea from "@/components/PopoverTextarea/index.vue"; 293 import PopoverTextarea from "@/components/PopoverTextarea/index.vue";
295 294
296 export default { 295 export default {
...@@ -395,15 +394,6 @@ export default { ...@@ -395,15 +394,6 @@ export default {
395 } 394 }
396 }, 395 },
397 created() { 396 created() {
398 - getAllListBills({
399 - pageIndex: 1,
400 - pageSize: 20
401 - }).then((res) => {
402 - console.log('res', res)
403 - this.tableData = res.data.value;
404 - this.total = res.data.totalItems;
405 - debugger;
406 - })
407 }, 397 },
408 methods: { 398 methods: {
409 input() { 399 input() {
......
...@@ -417,8 +417,8 @@ ...@@ -417,8 +417,8 @@
417 </template> 417 </template>
418 418
419 <script> 419 <script>
420 -import ReceiptInfoTable from "@/components/ReceiptInfoTable/index.vue"; 420 +import ReceiptInfoTable from "../components/ReceiptInfoTable/index.vue";
421 -import ProductDetailTable from "@/components/ProductDetailTable/index.vue"; 421 +import ProductDetailTable from "../components/ProductDetailTable/index.vue";
422 422
423 export default { 423 export default {
424 name: "exportTransportDetail.vue", 424 name: "exportTransportDetail.vue",
......
...@@ -584,8 +584,8 @@ ...@@ -584,8 +584,8 @@
584 </template> 584 </template>
585 585
586 <script> 586 <script>
587 -import ReceiptInfoTable from "@/components/ReceiptInfoTable/index.vue"; 587 +import ReceiptInfoTable from "../components/ReceiptInfoTable/index.vue";
588 -import ProductDetailTable from "@/components/ProductDetailTable/index.vue"; 588 +import ProductDetailTable from "../components/ProductDetailTable/index.vue";
589 589
590 export default { 590 export default {
591 name: "index.vue", 591 name: "index.vue",
......
...@@ -154,7 +154,6 @@ ...@@ -154,7 +154,6 @@
154 </template> 154 </template>
155 155
156 <script> 156 <script>
157 -import {getAllExportingBills, getAllTransportBills} from "@/api/query/query";
158 157
159 export default { 158 export default {
160 name: "index", 159 name: "index",
...@@ -256,15 +255,6 @@ export default { ...@@ -256,15 +255,6 @@ export default {
256 } 255 }
257 }, 256 },
258 created() { 257 created() {
259 - getAllTransportBills({
260 - pageIndex: 1,
261 - pageSize: 20
262 - }).then((res) => {
263 - console.log('res', res)
264 - this.tableData = res.data.value;
265 - this.total = res.data.totalItems;
266 - debugger;
267 - })
268 }, 258 },
269 methods: { 259 methods: {
270 tableSelect(val) { 260 tableSelect(val) {
......
...@@ -489,8 +489,8 @@ ...@@ -489,8 +489,8 @@
489 </template> 489 </template>
490 490
491 <script> 491 <script>
492 -import ReceiptInfoTable from "@/components/ReceiptInfoTable/index.vue"; 492 +import ReceiptInfoTable from "../components/ReceiptInfoTable/index.vue";
493 -import ProductDetailTable from "@/components/ProductDetailTable/index.vue"; 493 +import ProductDetailTable from "../components/ProductDetailTable/index.vue";
494 494
495 export default { 495 export default {
496 name: "index.vue", 496 name: "index.vue",
......
...@@ -205,7 +205,6 @@ ...@@ -205,7 +205,6 @@
205 split-button 205 split-button
206 type="primary" 206 type="primary"
207 v-loading="loadings.dropDownLoading" 207 v-loading="loadings.dropDownLoading"
208 - :disabled="selected.length == 0"
209 @command="dropdownChange" 208 @command="dropdownChange"
210 @click="declareData" 209 @click="declareData"
211 > 210 >
...@@ -220,7 +219,7 @@ ...@@ -220,7 +219,7 @@
220 > 219 >
221 <el-dropdown-item 220 <el-dropdown-item
222 :command="{ code: 'order', name: '订单申报' }" 221 :command="{ code: 'order', name: '订单申报' }"
223 - ></el-dropdown-item> 222 + >订单申报</el-dropdown-item>
224 <el-dropdown-item :command="{ code: 'waybill', name: '物流单申报' }" 223 <el-dropdown-item :command="{ code: 'waybill', name: '物流单申报' }"
225 >物流单申报</el-dropdown-item 224 >物流单申报</el-dropdown-item
226 > 225 >
...@@ -565,6 +564,7 @@ export default { ...@@ -565,6 +564,7 @@ export default {
565 downloadData() {}, 564 downloadData() {},
566 //申报 565 //申报
567 declareData() { 566 declareData() {
567 + if(this.selected.length > 0){
568 this.loadings.dropDownLoading = true; 568 this.loadings.dropDownLoading = true;
569 let obj = { 569 let obj = {
570 declareIds: [], 570 declareIds: [],
...@@ -586,6 +586,9 @@ export default { ...@@ -586,6 +586,9 @@ export default {
586 console.log(err); 586 console.log(err);
587 this.loadings.dropDownLoading = false; 587 this.loadings.dropDownLoading = false;
588 }); 588 });
589 + }else{
590 + this.alertWarningMsg('请选择数据!')
591 + }
589 }, 592 },
590 //切换申报模式 593 //切换申报模式
591 dropdownChange(val) { 594 dropdownChange(val) {
......