zhengquan.bai

申报数据管理

1 <template> 1 <template>
2 <el-popover 2 <el-popover
3 - placement="bottom" 3 + :placement="'bottom'"
4 - width="320" 4 + :width="320"
5 - trigger="manual" 5 + :trigger="'manual'"
6 :popper-class="popperClass" 6 :popper-class="popperClass"
7 v-model="isPopoverVisible" 7 v-model="isPopoverVisible"
8 > 8 >
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
12 type="textarea" 12 type="textarea"
13 :rows="5" 13 :rows="5"
14 v-model="localValue" 14 v-model="localValue"
15 - class="textarea-popover" 15 + class="inputShadow textareaPopover"
16 resize="none" 16 resize="none"
17 :maxlength="maxlength" 17 :maxlength="maxlength"
18 @blur="handleBlur" 18 @blur="handleBlur"
...@@ -24,7 +24,8 @@ ...@@ -24,7 +24,8 @@
24 ref="referenceInput" 24 ref="referenceInput"
25 type="textarea" 25 type="textarea"
26 :rows="1" 26 :rows="1"
27 - class="input-shadow" 27 + id="inputInner--consignmentCode"
28 + class="inputShadow"
28 v-model="localValue" 29 v-model="localValue"
29 resize="none" 30 resize="none"
30 @focus="handleFocus" 31 @focus="handleFocus"
...@@ -50,7 +51,7 @@ export default { ...@@ -50,7 +51,7 @@ export default {
50 }, 51 },
51 popperClass: { 52 popperClass: {
52 type: String, 53 type: String,
53 - default: "popover-input-class", 54 + default: "popoverconsignmentCode",
54 }, 55 },
55 }, 56 },
56 data() { 57 data() {
...@@ -68,30 +69,25 @@ export default { ...@@ -68,30 +69,25 @@ export default {
68 }, 69 },
69 }, 70 },
70 methods: { 71 methods: {
71 - handleFocus() { 72 + handleFocus(val) {
72 this.isPopoverVisible = true; 73 this.isPopoverVisible = true;
73 this.$nextTick(() => { 74 this.$nextTick(() => {
74 - this.$refs.popoverInput.focus(); // 弹出层输入框获取焦点 75 + this.$refs.popoverInput.focus();
75 - this.$refs.referenceInput.$el.style.display = "none"; // 隐藏主输入框 76 + this.$refs.referenceInput.style.display = "none";
76 }); 77 });
77 }, 78 },
78 - handleBlur() { 79 + handleBlur(val) {
79 this.isPopoverVisible = false; 80 this.isPopoverVisible = false;
80 -
81 - // 格式化内容
82 - this.localValue = this.formatContent(this.localValue);
83 -
84 this.$nextTick(() => { 81 this.$nextTick(() => {
85 - const referenceInput = this.$refs.referenceInput.$el; 82 + const formattedValue = this.formatContent(this.localValue);
86 - referenceInput.style.display = "block"; 83 + this.localValue = formattedValue;
87 - if (this.localValue) { 84 + this.$refs.referenceInput.style.display = "block";
88 - referenceInput.classList.add("inputFocus"); 85 + if (formattedValue) {
86 + this.$refs.referenceInput.classList.add("inputFocus");
89 } else { 87 } else {
90 - referenceInput.classList.remove("inputFocus"); 88 + this.$refs.referenceInput.classList.remove("inputFocus");
91 } 89 }
92 }); 90 });
93 -
94 - this.$emit("blur", this.localValue); // 触发父组件的 blur 事件
95 }, 91 },
96 formatContent(value) { 92 formatContent(value) {
97 // 格式化输入内容:替换分隔符、去空格、限制条数 93 // 格式化输入内容:替换分隔符、去空格、限制条数
...@@ -108,11 +104,11 @@ export default { ...@@ -108,11 +104,11 @@ export default {
108 </script> 104 </script>
109 105
110 <style scoped lang="scss"> 106 <style scoped lang="scss">
111 -//.input-shadow { 107 +//.inputShadow {
112 // box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); 108 // box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
113 //} 109 //}
114 // 110 //
115 -//.textarea-popover { 111 +//.textareaPopover {
116 // box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); 112 // box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
117 //} 113 //}
118 // 114 //
......
...@@ -140,6 +140,13 @@ export const constantRoutes = [ ...@@ -140,6 +140,13 @@ export const constantRoutes = [
140 meta: { title: '清单总分单查询', icon: 'dashboard' } 140 meta: { title: '清单总分单查询', icon: 'dashboard' }
141 }, 141 },
142 { 142 {
143 + path: '/exportCancelOrderQuery',
144 + component: (resolve) => require(['@/views/exportCancelOrderQuery/index'], resolve),
145 + name: '首页',
146 + hidden: false,
147 + meta: { title: '出口撤销单查询', icon: 'dashboard' }
148 + },
149 + {
143 path: '/listBranchDetail', 150 path: '/listBranchDetail',
144 component: (resolve) => require(['@/views/listBranchDetail/index'], resolve), 151 component: (resolve) => require(['@/views/listBranchDetail/index'], resolve),
145 name: '首页', 152 name: '首页',
...@@ -159,14 +166,29 @@ export const constantRoutes = [ ...@@ -159,14 +166,29 @@ export const constantRoutes = [
159 name: '首页', 166 name: '首页',
160 meta: { title: '物流离境单查询', icon: 'dashboard' } 167 meta: { title: '物流离境单查询', icon: 'dashboard' }
161 }, 168 },
169 + ]
170 + },
171 + {
172 + path: '/',
173 + component: Layout,
174 + hidden: false,
175 + redirect: 'index',
176 + meta: {title: '汇总申报', icon: 'fedexSystem'},
177 + children: [
162 { 178 {
163 - path: 'index', 179 + path: '/consolidatedDeclaration',
164 - component: (resolve) => require(['@/views/index'], resolve), 180 + component: (resolve) => require(['@/views/consolidatedDeclaration/index'], resolve),
165 - name: '首页', 181 + hidden: false,
166 - meta: { title: '出口撤销单查询', icon: 'dashboard' } 182 + meta: { title: '汇总申报', icon: 'api' },
183 + },
184 + {
185 + path: '/exportBillQuery',
186 + component: (resolve) => require(['@/views/exportBillQuery/index'], resolve),
187 + hidden: false,
188 + meta: { title: '汇总申请单查询', icon: 'api' },
167 } 189 }
168 ] 190 ]
169 - }, 191 + }
170 ] 192 ]
171 193
172 export default new Router({ 194 export default new Router({
......
1 <template> 1 <template>
2 - <div 2 + <div>
3 - class="entrySreach" 3 + <div class="entrySreach" ref="classCPortEntry">
4 - style="overflow-y: auto" 4 + <el-form
5 - v-loading="loadings.templateLoading" 5 + class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
6 - > 6 + ref="sreachForm"
7 - <CustomForm 7 + :model="searchForm"
8 - ref="auditionEntryForm" 8 + label-position="top"
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" 9 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 > 10 >
11 + <el-row class="row-border">
12 + <el-col :span="4">
13 + <Formitem label="提运单号" prop="consignmentCode">
14 + <el-popover
15 + placement="bottom"
16 + width="320"
17 + trigger="manual"
18 + popper-class="popoverconsignmentCode"
19 + v-model="textareaVisible.formItemconsignmentCode"
20 + >
21 + <el-input
22 + name="consignmentCode-textarea"
23 + type="textarea"
24 + :rows="5"
25 + id="popoverInputconsignmentCode"
26 + class="inputShadow textareaPopover"
27 + v-model="searchForm.consignmentCode"
28 + resize="none"
29 + maxlength="13000"
30 + placeholder=""
31 + @blur="textareaBlur"
32 + @input="input"
33 + ></el-input>
34 + <el-input
35 + slot="reference"
36 + name="consignmentCode"
37 + type="textarea"
38 + :rows="1"
39 + class="inputShadow"
40 + id="inputInner--consignmentCode"
41 + v-model="searchForm.consignmentCode"
42 + resize="none"
43 + placeholder=""
44 + @focus="textareaFocus"
45 + @input="input"
46 + ></el-input>
47 + </el-popover>
48 + </Formitem>
49 + </el-col>
50 + <el-col :span="4">
51 + <Formitem label="订单编号" prop="factoryCode">
52 + <el-select
53 + type="text"
54 + id="inputInner--declaredPort"
55 + v-model="searchForm.declaredPort"
56 + clearable
57 + placeholder=""
58 + @change="portChange"
59 + >
60 + <el-option
61 + v-for="(item, index) in dictData.userport"
62 + :key="index"
63 + :label="item.name"
64 + :value="item.name"
65 + ></el-option>
66 + </el-select>
67 + </Formitem>
68 + </el-col>
69 +
70 + <el-col :span="5">
71 + <Formitem label="运单编号" prop="consignmentCode">
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
80 + name="consignmentCode-textarea"
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 + @input="input"
91 + ></el-input>
92 + <el-input
93 + slot="reference"
94 + name="consignmentCode"
95 + type="textarea"
96 + :rows="1"
97 + class="inputShadow"
98 + id="inputInner--consignmentCode"
99 + v-model="searchForm.consignmentCode"
100 + resize="none"
101 + placeholder=""
102 + @focus="textareaFocus"
103 + @input="input"
104 + ></el-input>
105 + </el-popover>
106 + </Formitem>
107 + </el-col>
108 +
109 + <el-col :span="5">
110 + <Formitem
111 + label="创建时间"
112 + prop="createTime"
113 + :activeType="true"
114 + >
115 + <el-date-picker
116 + class="inputInner--accsDataImportTime"
117 + id="inputInner--accsDataImportTime"
118 + v-model="searchForm.accsDataImportTime"
119 + type="daterange"
120 + format="yyyy-MM-dd"
121 + prefix-icon="none"
122 + value-format="yyyyMMdd"
123 + range-separator="至"
124 + start-placeholder=""
125 + clearable
126 + end-placeholder=""
127 + :picker-options="importTimePickerOptions"
128 + @blur="datePickerBlur"
129 + @change="accsDataImportTimeChange"
130 + >
131 + </el-date-picker>
132 + </Formitem>
133 + </el-col>
134 +
135 + <el-col :span="2">
136 + <el-form-item class="textCenter">
137 + <el-button
138 + class="entrySreachButton"
139 + type="text"
140 + icon="el-icon-search"
141 + :loading="loadings.searchLoading"
142 + @click="search(0)"
143 + ></el-button>
144 + </el-form-item>
145 + </el-col>
146 +
147 + <el-col :span="4">
148 + <el-form-item class="textCenter">
149 + <el-button
150 + icon="el-icon-refresh"
151 + size="small"
152 + :loading="loadings.searchLoading"
153 + @click="search(0)"
154 + >重置
155 + </el-button>
156 + </el-form-item>
157 + </el-col>
158 + </el-row>
159 +
160 + <el-row class="row-border">
161 + <el-col :span="4">
162 + <Formitem label="回执类型" prop="factoryCode">
163 + <el-select
164 + type="text"
165 + id="inputInner--declaredPort"
166 + v-model="searchForm.declaredPort"
167 + clearable
168 + placeholder=""
169 + @change="portChange"
170 + >
171 + <el-option
172 + v-for="(item, index) in dictData.userport"
173 + :key="index"
174 + :label="item.name"
175 + :value="item.name"
176 + ></el-option>
177 + </el-select>
178 + </Formitem>
179 + </el-col>
180 +
181 + <el-col :span="4">
182 + <Formitem label="回执类型" prop="factoryCode">
183 + <el-select
184 + type="text"
185 + id="inputInner--declaredPort"
186 + v-model="searchForm.declaredPort"
187 + clearable
188 + placeholder=""
189 + @change="portChange"
190 + >
191 + <el-option
192 + v-for="(item, index) in dictData.userport"
193 + :key="index"
194 + :label="item.name"
195 + :value="item.name"
196 + ></el-option>
197 + </el-select>
198 + </Formitem>
199 + </el-col>
200 + </el-row>
201 + </el-form>
58 </div> 202 </div>
59 - <CustomTable 203 +
204 + <div class="action-buttons">
205 + <div class="left-buttons">
206 + <el-button
207 + size="small"
208 + :loading="loadings.downloadLoading2"
209 + @click="downloadBpiData('log')"
210 + style="background: #007AB7"
211 + >
212 + <svg-icon class="el-icon-user-solid" icon-class="fedexUpBlue"></svg-icon>
213 + 一键导入
214 + </el-button>
215 + <el-button
216 + size="small"
217 + :loading="loadings.downloadLoading2"
218 + @click="downloadBpiData('log')"
219 + style="background: #007AB7"
220 + >
221 + <svg-icon class="el-icon-user-solid" icon-class="fedexUpBlue"></svg-icon>
222 + 导入模板下载
223 + </el-button>
224 + </div>
225 +
226 + <div class="right-buttons">
227 + <el-button
228 + size="small"
229 + :loading="loadings.downloadLoading2"
230 + @click="downloadBpiData('log')"
231 + >
232 + <svg-icon class="el-icon-user-solid" icon-class="fedexUpBlue"></svg-icon>
233 + 一键申报
234 + </el-button>
235 + <el-button
236 + size="small"
237 + :loading="loadings.downloadLoading2"
238 + @click="downloadBpiData('log')"
239 + >
240 + <svg-icon class="el-icon-user-solid" icon-class="fedexUpBlue"></svg-icon>
241 + 导出
242 + </el-button>
243 + </div>
244 + </div>
245 +
246 + <Table
60 class="fedexDetialTable fedexSreachTable" 247 class="fedexDetialTable fedexSreachTable"
61 - ref="auditionEntryTable" 248 + ref="entryTable"
62 - :belongBizType="11" 249 + :data="tableData"
63 - router="" 250 + :headerData="headerData"
64 - :tableData="tableData" 251 + :maxHeight="tableMaxheight"
65 - :tableHeader="headerData" 252 + :border="true"
253 + :pagination="true"
254 + :order="false"
255 + :loading="loadings.sreachLoading"
256 + :page="page.pageIndex"
257 + :pageSizes="[20, 30, 50, 100]"
66 :totalCount="total" 258 :totalCount="total"
67 - :loading="loadings.tableLoading"
68 @sizeChange="sizeChange" 259 @sizeChange="sizeChange"
69 @currentChange="currentChange" 260 @currentChange="currentChange"
70 - @tableFormChange="tableFormChange" 261 + @rowClick="handleRowClick"
262 + :selection="true"
263 + :selectFixed="false"
71 @tableSelect="tableSelect" 264 @tableSelect="tableSelect"
72 - @selectChange="selectChange" 265 + @tableSelectAll="tableSelectAll"
73 - :page="{ 266 + :rowSelectDataType="false"
74 - pageNum: page.pageIndex, 267 + :selected="selected"
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 > 268 >
95 - <template slot="optionColumn"> 269 + <template v-slot:waveName="scope">
96 - <!-- 操作 --> 270 + <span>{{ `${scope.row.waveName}(${scope.row.waveExt2})` }}</span>
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> 271 </template>
116 - </CustomTable> 272 + </Table>
117 </div> 273 </div>
118 </template> 274 </template>
119 275
120 <script> 276 <script>
121 -import { encrypt } from "@/utils/jsencrypt"; 277 +import {getAllExportingBills} from "@/api/query/query";
122 -import { 278 +import PopoverTextarea from "@/components/PopoverTextarea/index.vue";
123 - check,
124 - isApproval,
125 - getNewApprovalType,
126 -} from "@/api/auditionEntry-api.js";
127 279
128 export default { 280 export default {
129 - name: "AuditionEntrySearch", 281 + name: "index",
130 - components: {}, 282 + components: {PopoverTextarea},
131 data() { 283 data() {
132 return { 284 return {
133 - tableData: [], //运单数据 285 + searchForm: {
134 - headerData: [], //表头 286 + declaredPort: "",
135 - conditionData: {}, 287 + consStatus: "",
136 - nowConditionData: null, 288 + consignmentCode: "",
289 + accsDataImportTime: [],
290 + ownerName: "",
291 + consignmentHeadCode: "",
292 + isPushCustomsSys: "",
293 + waitOperStatus: "",
294 + declTime: [],
295 + },
296 + selected: [],
297 + sizeChange(val) {
298 + this.page.pageSize = val;
299 + this.sreach(1);
300 + },
301 + //分页
302 + currentChange(val) {
303 + this.page.pageIndex = val.page;
304 + this.search(1);
305 + },
306 + tableSelect(val) {
307 + this.selected = val.selection;
308 + },
309 + tableSelectAll(val) {
310 + this.selected = val;
311 + },
137 page: { 312 page: {
138 pageIndex: 1, 313 pageIndex: 1,
139 pageSize: 20, 314 pageSize: 20,
140 }, 315 },
141 - total: 0, //数据总和 316 + tableData: [],
142 - tableMaxheight: null, //表格最大高 317 + tableMaxheight: null,
318 + total: 0,
319 + dictData: {
320 + userport: [
321 + {name: "Shanghai Port", code: "SH"},
322 + {name: "Beijing Port", code: "BJ"},
323 + {name: "Guangzhou Port", code: "GZ"},
324 + {name: "Shenzhen Port", code: "SZ"},
325 + {name: "Tianjin Port", code: "TJ"},
326 + ],
327 + },
143 loadings: { 328 loadings: {
144 - templateLoading: false, 329 + searchLoading: false,
145 - tableLoading: false, //表格loading
146 - passThroughLoading: false,
147 - noPass: false,
148 - downloadLoading: false,
149 }, 330 },
150 - selected: [], 331 + textareaVisible: {
151 - checkCell: null, 332 + formItemconsignmentCode: false,
152 - status: 0, 333 + formItemconsignmentHeadCode: false,
153 - checkEntry: null, 334 + },
154 - tablefixed: false, 335 + headerData: [
155 - }; 336 + {
156 - }, 337 + name: "回执状态",
157 - created() { 338 + value: "returnStatus",
158 - this.loadings.templateLoading = true; 339 + width: "150",
159 - // this.setDict(); 340 + align: "left",
160 - }, 341 + },
161 - mounted() { 342 + {
162 - this.tableMaxheight = 343 + name: "订单编号",
163 - window.innerHeight - 344 + value: "orderNo",
164 - Number(this.$refs.auditionEntryForm.$el.offsetHeight) - 345 + width: '150',
165 - 250; 346 + align: 'left'
166 - if (this.$store.getters.userData.rde_Type) { 347 + },
167 - this.checkNewEntry(); 348 + {
168 - } 349 + name: '订单类型',
169 - }, 350 + value: 'orderType',
170 - activated() { 351 + width: '150',
171 - if (this.status == 1) { 352 + align: 'left'
172 - // this.setDict(); 353 + },
173 - this.$refs.auditionEntryForm.sreach(1, this.conditionData); 354 + {
174 - } 355 + name: '电商企业代码',
175 - if (this.$store.getters.userData.rde_Type) { 356 + value: 'ebccode',
176 - this.checkNewEntry(); 357 + width: '200',
358 + align: 'left'
359 + },
360 + {
361 + name: '电商企业',
362 + value: 'ebcname',
363 + width: '200',
364 + align: 'left'
365 + },
366 + {
367 + name: '电商平台名称',
368 + value: 'ebpname',
369 + width: '250',
370 + align: 'left'
371 + },
372 + {
373 + name: '创建时间',
374 + value: 'createTime',
375 + width: '150',
376 + align: 'left'
377 + },
378 + {
379 + name: '申报企业',
380 + value: 'declaringEnterprise',
381 + width: '200',
382 + align: 'left'
383 + },
384 + {
385 + name: '申报类型',
386 + value: 'declaringType',
387 + width: '100',
388 + align: 'left'
389 + }
390 + ]
177 } 391 }
178 }, 392 },
179 - beforeDestroy() { 393 + created() {
180 - this.clearCheckEntry(1); 394 + getAllExportingBills({
181 - }, 395 + pageIndex: 1,
182 - watch: { 396 + pageSize: 20
183 - $route: { 397 + }).then((res) => {
184 - handler(val) { 398 + console.log('res', res)
185 - if (val.path != "/emp_auditionEntry_parent/emp_auditionEntrySearch") { 399 + this.tableData = res.data.value;
186 - this.clearCheckEntry(1); 400 + this.total = res.data.totalItems;
187 - } 401 + debugger;
188 - }, 402 + })
189 - deep: true,
190 - },
191 }, 403 },
192 methods: { 404 methods: {
193 - //查询 405 + input() {
194 - formSreach(val) { 406 + this.$forceUpdate();
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 }, 407 },
229 - //批量审批通过/不通过 408 + handleRowClick(row) {
230 - examine(status) { 409 + const declareId = row.declareId;
231 - this.clearCheckEntry(0); 410 + this.$router.push({
232 - let chmConsignmentIds = []; 411 + path: '/exportBillDetail',
233 - let chmRejectRemarkList = []; 412 + query: {
234 - let chmConsignmentList = []; 413 + declareId
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 } 414 }
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 }); 415 });
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 }, 416 },
370 - sizeChange(val) { 417 + async search(val) {
371 - this.page.pageSize = val; 418 + try {
372 - this.getFormOver(); 419 +
373 - }, 420 + } catch (error) {
374 - //table选择变更 421 + console.error("搜索出错:", error);
375 - tableSelect(selection) { 422 + } finally {
376 - this.selected = selection.selection; 423 + // 无论成功还是失败,关闭加载状态
377 - this.clearCheckEntry(0); 424 + this.loadings.sreachLoading = false;
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 } 425 }
426 + },
427 + textareaBlur(val) {
428 + let inputInner = document.querySelector(
429 + "#inputInner--" + val.target.name.split("-")[0]
430 + );
431 + this.textareaVisible["formItem" + val.target.name.split("-")[0]] = false;
432 + inputInner.style.display = "block";
387 this.$nextTick(() => { 433 this.$nextTick(() => {
388 - if (val.column.property == "rejectRemark") { 434 + inputInner.blur();
389 - val.cell.classList.add("activeTableCell"); 435 + if (
390 - document 436 + inputInner.value != undefined &&
391 - .getElementsByClassName("activeTableCell")[0] 437 + inputInner.value != "" &&
392 - .getElementsByClassName("el-input")[0] 438 + inputInner.value != null
393 - .__vue__.focus(); 439 + ) {
394 - //这里存下整个单元格,方便取其他值 440 + inputInner.classList.add("inputFocus");
395 - this.checkCell = val; 441 + } else {
396 - this.clearCheckEntry(0); 442 + inputInner.classList.remove("inputFocus");
397 } 443 }
398 }); 444 });
399 - }, 445 + let arr = [];
400 - //字典表添加 446 + this.searchForm[val.target.name.split("-")[0]]
401 - setDict() { 447 + .replace(/[\n\,\;\;]/g, ",")
402 - let arr = [ 448 + .replace(/[\t]/g, "")
403 - "examinePort", 449 + .split(",")
404 - "dictEnties:scanCodePickup", 450 + .forEach((str, index) => {
405 - "dictEnties:yesOrNo", 451 + if (str != null && str != "" && index <= 1000) {
406 - "dictEnties:receiptState", 452 + arr.push(str.trim());
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 } 453 }
470 }); 454 });
471 - } 455 + this.searchForm[val.target.name.split("-")[0]] = arr.join("\n");
456 + this.$forceUpdate();
472 }, 457 },
473 - getFormOver(val) { 458 + //文本域展示状态切换
474 - this.clearCheckEntry(0); 459 + textareaFocus(val) {
460 + this.textareaVisible["formItem" + val.target.name.split("-")[0]] = true;
475 this.$nextTick(() => { 461 this.$nextTick(() => {
476 - if (this.status == 1) { 462 + document
477 - this.$refs.auditionEntryForm.sreach(1, this.conditionData); 463 + .querySelector("#popoverInput" + val.target.name.split("-")[0])
478 - } 464 + .focus();
465 + document.querySelector(
466 + "#inputInner--" + val.target.name.split("-")[0]
467 + ).style.display = "none";
479 }); 468 });
480 }, 469 },
481 - formChange() { 470 + }
482 - this.clearCheckEntry(0); 471 +}
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> 472 </script>
536 473
537 -<style lang="scss" scoped> 474 +<style scoped lang="scss">
538 @import "@/assets/styles/variables.scss"; 475 @import "@/assets/styles/variables.scss";
539 476
540 -.entrySreach { 477 +.entrySreachButton {
541 - height: 100%; 478 + display: inline-block;
542 - background-color: $menuLightBg; 479 + font-size: 20px;
543 - 480 + color: $fedexButton !important;
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 } 481 }
558 - 482 +.action-buttons {
559 -.optionButton { 483 + margin: 10px;
560 - width: 100%; 484 + display: flex;
561 - padding: 10px 15px; 485 + justify-content: space-between;
562 - text-align: right; 486 + .left-buttons {
563 -
564 - .el-button {
565 - color: $fedexButton;
566 - border-color: $fedexButton !important;
567 svg { 487 svg {
568 - display: inline-block; 488 + color: white;
569 - margin-right: 5px; 489 + }
570 - fill: $fedexButton; 490 + button {
491 + color: white;
571 } 492 }
572 } 493 }
573 - 494 + //width: 90%;
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 } 495 }
594 </style> 496 </style>
......
1 +<template>
2 + <div>
3 + <h3>汇总申报信息</h3>
4 +
5 + <el-form
6 + class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
7 + ref="sreachForm"
8 + :model="searchForm"
9 + label-position="top"
10 + size="small"
11 + >
12 + <el-row class="row-border">
13 + <el-col :span="5">
14 + <Formitem label="提运单号" prop="consignmentCode">
15 + <el-popover
16 + placement="bottom"
17 + width="320"
18 + trigger="manual"
19 + popper-class="popoverconsignmentCode"
20 + v-model="textareaVisible.formItemconsignmentCode"
21 + >
22 + <el-input
23 + name="consignmentCode-textarea"
24 + type="textarea"
25 + :rows="5"
26 + id="popoverInputconsignmentCode"
27 + class="inputShadow textareaPopover"
28 + v-model="searchForm.consignmentCode"
29 + resize="none"
30 + maxlength="13000"
31 + placeholder=""
32 + @blur="textareaBlur"
33 + @input="input"
34 + ></el-input>
35 + <el-input
36 + slot="reference"
37 + name="consignmentCode"
38 + type="textarea"
39 + :rows="1"
40 + class="inputShadow"
41 + id="inputInner--consignmentCode"
42 + v-model="searchForm.consignmentCode"
43 + resize="none"
44 + placeholder=""
45 + @focus="textareaFocus"
46 + @input="input"
47 + ></el-input>
48 + </el-popover>
49 + </Formitem>
50 + </el-col>
51 + </el-row>
52 + </el-form>
53 + </div>
54 +</template>
55 +
56 +<script>
57 +export default {
58 + name: "index",
59 + data() {
60 + return {
61 + }
62 + }
63 +}
64 +</script>
65 +
66 +<style scoped lang="scss">
67 +
68 +</style>
...@@ -11,40 +11,7 @@ ...@@ -11,40 +11,7 @@
11 <el-row class="row-border"> 11 <el-row class="row-border">
12 <el-col :span="5"> 12 <el-col :span="5">
13 <Formitem label="运单编号" prop="consignmentCode"> 13 <Formitem label="运单编号" prop="consignmentCode">
14 - <el-popover 14 + <PopoverTextarea />
15 - placement="bottom"
16 - width="320"
17 - trigger="manual"
18 - popper-class="popoverconsignmentCode"
19 - v-model="textareaVisible.formItemconsignmentCode"
20 - >
21 - <el-input
22 - name="consignmentCode-textarea"
23 - type="textarea"
24 - :rows="5"
25 - id="popoverInputconsignmentCode"
26 - class="inputShadow textareaPopover"
27 - v-model="searchForm.consignmentCode"
28 - resize="none"
29 - maxlength="13000"
30 - placeholder=""
31 - @blur="textareaBlur"
32 - @input="input"
33 - ></el-input>
34 - <el-input
35 - slot="reference"
36 - name="consignmentCode"
37 - type="textarea"
38 - :rows="1"
39 - class="inputShadow"
40 - id="inputInner--consignmentCode"
41 - v-model="searchForm.consignmentCode"
42 - resize="none"
43 - placeholder=""
44 - @focus="textareaFocus"
45 - @input="input"
46 - ></el-input>
47 - </el-popover>
48 </Formitem> 15 </Formitem>
49 </el-col> 16 </el-col>
50 <el-col :span="4"> 17 <el-col :span="4">
...@@ -183,9 +150,11 @@ ...@@ -183,9 +150,11 @@
183 150
184 <script> 151 <script>
185 import {getAllExportingBills} from "@/api/query/query"; 152 import {getAllExportingBills} from "@/api/query/query";
153 +import PopoverTextarea from "@/components/PopoverTextarea/index.vue";
186 154
187 export default { 155 export default {
188 name: "index", 156 name: "index",
157 + components: {PopoverTextarea},
189 data() { 158 data() {
190 return { 159 return {
191 searchForm: { 160 searchForm: {
......
1 +<template>
2 + <div>
3 + <el-form
4 + class="fedexFormStyle fedexformSreach fedexformSreachBottomBorder"
5 + ref="sreachForm"
6 + :model="searchForm"
7 + label-position="top"
8 + size="small"
9 + >
10 + <el-row class="row-border">
11 + <el-col :span="5">
12 + <Formitem label="提运单号" prop="consignmentCode">
13 + <el-popover
14 + placement="bottom"
15 + width="320"
16 + trigger="manual"
17 + popper-class="popoverconsignmentCode"
18 + v-model="textareaVisible.formItemconsignmentCode"
19 + >
20 + <el-input
21 + name="consignmentCode-textarea"
22 + type="textarea"
23 + :rows="5"
24 + id="popoverInputconsignmentCode"
25 + class="inputShadow textareaPopover"
26 + v-model="searchForm.consignmentCode"
27 + resize="none"
28 + maxlength="13000"
29 + placeholder=""
30 + @blur="textareaBlur"
31 + @input="input"
32 + ></el-input>
33 + <el-input
34 + slot="reference"
35 + name="consignmentCode"
36 + type="textarea"
37 + :rows="1"
38 + class="inputShadow"
39 + id="inputInner--consignmentCode"
40 + v-model="searchForm.consignmentCode"
41 + resize="none"
42 + placeholder=""
43 + @focus="textareaFocus"
44 + @input="input"
45 + ></el-input>
46 + </el-popover>
47 + </Formitem>
48 + </el-col>
49 + <el-col :span="5">
50 + <Formitem label="回执状态" prop="declaredPort">
51 + <el-select
52 + type="text"
53 + id="inputInner--receiptStatus"
54 + v-model="searchForm.receiptStatus"
55 + clearable
56 + placeholder=""
57 + >
58 + <el-option
59 + v-for="(item, index) in dictData.userport"
60 + :key="index"
61 + :label="item.name"
62 + :value="item.name"
63 + ></el-option>
64 + </el-select>
65 + </Formitem>
66 + </el-col>
67 + <el-col :span="4">
68 + <Formitem label="创建日期" prop="receiptTime">
69 + <el-date-picker
70 + class="inputInner--accsDataImportTime"
71 + id="inputInner--accsDataImportTime"
72 + v-model="searchForm.accsDataImportTime"
73 + type="daterange"
74 + format="yyyy-MM-dd"
75 + prefix-icon="none"
76 + value-format="yyyyMMdd"
77 + range-separator="至"
78 + start-placeholder=""
79 + clearable
80 + end-placeholder=""
81 + :picker-options="importTimePickerOptions"
82 + @blur="datePickerBlur"
83 + @change="accsDataImportTimeChange"
84 + >
85 + </el-date-picker>
86 + </Formitem>
87 + </el-col>
88 +
89 + <el-col :span="2">
90 + <el-form-item class="textCenter">
91 + <el-button
92 + class="entrySreachButton"
93 + type="text"
94 + icon="el-icon-search"
95 + :loading="loadings.searchLoading"
96 + @click="search(0)"
97 + ></el-button>
98 + </el-form-item>
99 + </el-col>
100 +
101 + <el-col :span="4">
102 + <el-form-item class="textCenter">
103 + <el-button
104 + icon="el-icon-refresh"
105 + size="small"
106 + :loading="loadings.searchLoading"
107 + @click="search(0)"
108 + >重置
109 + </el-button>
110 + </el-form-item>
111 + </el-col>
112 + </el-row>
113 + </el-form>
114 +
115 + <div style="text-align: right; margin: 10px">
116 + <el-button
117 + size="small"
118 + :loading="loadings.downloadLoading2"
119 + @click="downloadBpiData('log')"
120 + >
121 + <svg-icon class="el-icon-user-solid" icon-class="fedexUpBlue"></svg-icon>
122 + 导出
123 + </el-button>
124 + </div>
125 +
126 + <Table
127 + class="fedexDetialTable fedexSreachTable"
128 + ref="entryTable"
129 + :data="tableData"
130 + :headerData="headerData"
131 + :maxHeight="tableMaxheight"
132 + :border="true"
133 + :pagination="true"
134 + :order="false"
135 + :loading="loadings.sreachLoading"
136 + :page="page.pageIndex"
137 + :pageSizes="[20, 30, 50, 100]"
138 + :totalCount="total"
139 + @sizeChange="sizeChange"
140 + @currentChange="currentChange"
141 + :selection="true"
142 + :selectFixed="false"
143 + @rowClick="handleRowClick"
144 + @tableSelect="tableSelect"
145 + @tableSelectAll="tableSelectAll"
146 + :rowSelectDataType="false"
147 + :selected="selected"
148 + >
149 + <template v-slot:waveName="scope">
150 + <span>{{ `${scope.row.waveName}(${scope.row.waveExt2})` }}</span>
151 + </template>
152 + </Table>
153 + </div>
154 +</template>
155 +
156 +<script>
157 +import {getAllExportingBills, getAllTransportBills} from "@/api/query/query";
158 +
159 +export default {
160 + name: "exportCancelOrderQuery",
161 + data() {
162 + return {
163 + searchForm: {
164 + declaredPort: "",
165 + consStatus: "",
166 + consignmentCode: "",
167 + accsDataImportTime: [],
168 + ownerName: "",
169 + consignmentHeadCode: "",
170 + isPushCustomsSys: "",
171 + waitOperStatus: "",
172 + declTime: [],
173 + },
174 + loadings: {
175 + searchLoading: false,
176 + },
177 + page: {
178 + pageIndex: 1,
179 + pageSize: 20,
180 + },
181 + textareaVisible: {
182 + formItemconsignmentCode: false,
183 + formItemconsignmentHeadCode: false,
184 + },
185 + sizeChange(val) {
186 + this.page.pageSize = val;
187 + this.sreach(1);
188 + },
189 + //分页
190 + currentChange(val) {
191 + this.page.pageIndex = val.page;
192 + this.search(1);
193 + },
194 + tableData: [],
195 + total: 0,
196 + tableMaxheight: null,
197 + headerData: [
198 + {
199 + name: "回执状态",
200 + value: "returnStatus",
201 + width: "150",
202 + align: "left",
203 + },
204 + {
205 + name: "提运单号",
206 + value: "orderNo",
207 + width: '150',
208 + align: 'left'
209 + },
210 + {
211 + name: '电子口岸编号',
212 + value: 'orderType',
213 + width: '150',
214 + align: 'left'
215 + },
216 + {
217 + name: '物流企业名称',
218 + value: 'ebccode',
219 + width: '200',
220 + align: 'left'
221 + },
222 + {
223 + name: '申报地海关',
224 + value: 'ebcname',
225 + width: '200',
226 + align: 'left'
227 + },
228 + {
229 + name: '创建时间',
230 + value: 'createTime',
231 + width: '150',
232 + align: 'left'
233 + },
234 + {
235 + name: '申报企业',
236 + value: 'declaringEnterprise',
237 + width: '200',
238 + align: 'left'
239 + },
240 + {
241 + name: '申报类型',
242 + value: 'declaringType',
243 + width: '100',
244 + align: 'left'
245 + }
246 + ],
247 + dictData: {
248 + userport: [
249 + {name: "Shanghai Port", code: "SH"},
250 + {name: "Beijing Port", code: "BJ"},
251 + {name: "Guangzhou Port", code: "GZ"},
252 + {name: "Shenzhen Port", code: "SZ"},
253 + {name: "Tianjin Port", code: "TJ"},
254 + ],
255 + },
256 + }
257 + },
258 + 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 + },
269 + methods: {
270 + tableSelect(val) {
271 + this.selected = val.selection;
272 + },
273 + tableSelectAll(val) {
274 + this.selected = val;
275 + },
276 + handleRowClick(row) {
277 + const declareId = row.declareId;
278 + this.$router.push({
279 + path: '/listBranchDetail',
280 + query: {
281 + declareId
282 + }
283 + });
284 + },
285 + async search(val) {
286 + try {
287 +
288 + } catch (error) {
289 + console.error("搜索出错:", error);
290 + } finally {
291 + // 无论成功还是失败,关闭加载状态
292 + this.loadings.sreachLoading = false;
293 + }
294 + },
295 + }
296 +}
297 +</script>
298 +
299 +<style scoped lang="scss">
300 +@import "@/assets/styles/variables.scss";
301 +
302 +.entrySreachButton {
303 + display: inline-block;
304 + font-size: 20px;
305 + color: $fedexButton !important;
306 +}
307 +</style>
...@@ -292,6 +292,49 @@ export default { ...@@ -292,6 +292,49 @@ export default {
292 this.loadings.sreachLoading = false; 292 this.loadings.sreachLoading = false;
293 } 293 }
294 }, 294 },
295 + textareaBlur(val) {
296 + let inputInner = document.querySelector(
297 + "#inputInner--" + val.target.name.split("-")[0]
298 + );
299 + this.textareaVisible["formItem" + val.target.name.split("-")[0]] = false;
300 + inputInner.style.display = "block";
301 + this.$nextTick(() => {
302 + inputInner.blur();
303 + if (
304 + inputInner.value != undefined &&
305 + inputInner.value != "" &&
306 + inputInner.value != null
307 + ) {
308 + inputInner.classList.add("inputFocus");
309 + } else {
310 + inputInner.classList.remove("inputFocus");
311 + }
312 + });
313 + let arr = [];
314 + this.searchForm[val.target.name.split("-")[0]]
315 + .replace(/[\n\,\;\;]/g, ",")
316 + .replace(/[\t]/g, "")
317 + .split(",")
318 + .forEach((str, index) => {
319 + if (str != null && str != "" && index <= 1000) {
320 + arr.push(str.trim());
321 + }
322 + });
323 + this.searchForm[val.target.name.split("-")[0]] = arr.join("\n");
324 + this.$forceUpdate();
325 + },
326 + //文本域展示状态切换
327 + textareaFocus(val) {
328 + this.textareaVisible["formItem" + val.target.name.split("-")[0]] = true;
329 + this.$nextTick(() => {
330 + document
331 + .querySelector("#popoverInput" + val.target.name.split("-")[0])
332 + .focus();
333 + document.querySelector(
334 + "#inputInner--" + val.target.name.split("-")[0]
335 + ).style.display = "none";
336 + });
337 + },
295 } 338 }
296 } 339 }
297 </script> 340 </script>
......