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 + },
162 { 171 {
163 - path: 'index', 172 + path: '/',
164 - component: (resolve) => require(['@/views/index'], resolve), 173 + component: Layout,
165 - name: '首页', 174 + hidden: false,
166 - meta: { title: '出口撤销单查询', icon: 'dashboard' } 175 + redirect: 'index',
176 + meta: {title: '汇总申报', icon: 'fedexSystem'},
177 + children: [
178 + {
179 + path: '/consolidatedDeclaration',
180 + component: (resolve) => require(['@/views/consolidatedDeclaration/index'], resolve),
181 + hidden: false,
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 + ref="sreachForm"
7 + :model="searchForm"
8 + label-position="top"
9 + size="small"
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"
6 > 170 >
7 - <CustomForm 171 + <el-option
8 - ref="auditionEntryForm" 172 + v-for="(item, index) in dictData.userport"
9 - :belongBizType="11" 173 + :key="index"
10 - type="auditionEntry" 174 + :label="item.name"
11 - :paginationOption="page" 175 + :value="item.name"
12 - @getFormOver="getFormOver" 176 + ></el-option>
13 - @formSreach="formSreach" 177 + </el-select>
14 - @formChange="formChange" 178 + </Formitem>
15 - /> 179 + </el-col>
16 - <div class="optionButton"> 180 +
17 - <!-- 审批通过 --> 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>
202 + </div>
203 +
204 + <div class="action-buttons">
205 + <div class="left-buttons">
18 <el-button 206 <el-button
19 - class="entrySaveButton"
20 size="small" 207 size="small"
21 - :loading="loadings.passThroughLoading" 208 + :loading="loadings.downloadLoading2"
22 - :disabled="selected.length == 0 || loadings.noPass" 209 + @click="downloadBpiData('log')"
23 - @click="examine(true)" 210 + style="background: #007AB7"
24 - ><svg-icon class="el-icon-user-solid" icon-class="fedexPass"></svg-icon>
25 - {{ $t("audition.index.yapproval") }}</el-button
26 > 211 >
27 - <!-- 审批不通过 --> 212 + <svg-icon class="el-icon-user-solid" icon-class="fedexUpBlue"></svg-icon>
213 + 一键导入
214 + </el-button>
28 <el-button 215 <el-button
29 - class="entrySaveButton"
30 size="small" 216 size="small"
31 - :loading="loadings.noPass" 217 + :loading="loadings.downloadLoading2"
32 - :disabled="selected.length == 0 || loadings.passThroughLoading" 218 + @click="downloadBpiData('log')"
33 - @click="examine(false)" 219 + style="background: #007AB7"
34 - ><svg-icon
35 - class="el-icon-user-solid"
36 - icon-class="fedexRefuse"
37 - ></svg-icon>
38 - {{ $t("audition.index.napproval") }}</el-button
39 > 220 >
40 - <!-- 导出 --> 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">
41 <el-button 227 <el-button
42 - class="entrySaveButton"
43 size="small" 228 size="small"
44 - :loading="loadings.downloadLoading" 229 + :loading="loadings.downloadLoading2"
45 - :disabled=" 230 + @click="downloadBpiData('log')"
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 > 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>
58 </div> 244 </div>
59 - <CustomTable 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 - >
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 > 268 >
104 - <template slot-scope="scope"> 269 + <template v-slot:waveName="scope">
105 - <!-- 查看 --> 270 + <span>{{ `${scope.row.waveName}(${scope.row.waveExt2})` }}</span>
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: "",
137 - page: { 289 + accsDataImportTime: [],
138 - pageIndex: 1, 290 + ownerName: "",
139 - pageSize: 20, 291 + consignmentHeadCode: "",
140 - }, 292 + isPushCustomsSys: "",
141 - total: 0, //数据总和 293 + waitOperStatus: "",
142 - tableMaxheight: null, //表格最大高 294 + declTime: [],
143 - loadings: {
144 - templateLoading: false,
145 - tableLoading: false, //表格loading
146 - passThroughLoading: false,
147 - noPass: false,
148 - downloadLoading: false,
149 }, 295 },
150 selected: [], 296 selected: [],
151 - checkCell: null, 297 + sizeChange(val) {
152 - status: 0, 298 + this.page.pageSize = val;
153 - checkEntry: null, 299 + this.sreach(1);
154 - tablefixed: false,
155 - };
156 }, 300 },
157 - created() { 301 + //分页
158 - this.loadings.templateLoading = true; 302 + currentChange(val) {
159 - // this.setDict(); 303 + this.page.pageIndex = val.page;
304 + this.search(1);
160 }, 305 },
161 - mounted() { 306 + tableSelect(val) {
162 - this.tableMaxheight = 307 + this.selected = val.selection;
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 }, 308 },
170 - activated() { 309 + tableSelectAll(val) {
171 - if (this.status == 1) { 310 + this.selected = val;
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 }, 311 },
179 - beforeDestroy() { 312 + page: {
180 - this.clearCheckEntry(1); 313 + pageIndex: 1,
314 + pageSize: 20,
181 }, 315 },
182 - watch: { 316 + tableData: [],
183 - $route: { 317 + tableMaxheight: null,
184 - handler(val) { 318 + total: 0,
185 - if (val.path != "/emp_auditionEntry_parent/emp_auditionEntrySearch") { 319 + dictData: {
186 - this.clearCheckEntry(1); 320 + userport: [
187 - } 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 + ],
188 }, 327 },
189 - deep: true, 328 + loadings: {
329 + searchLoading: false,
190 }, 330 },
331 + textareaVisible: {
332 + formItemconsignmentCode: false,
333 + formItemconsignmentHeadCode: false,
191 }, 334 },
192 - methods: { 335 + headerData: [
193 - //查询 336 + {
194 - formSreach(val) { 337 + name: "回执状态",
195 - this.clearCheckEntry(0); 338 + value: "returnStatus",
196 - if (val != "error") { 339 + width: "150",
197 - this.selected = []; 340 + align: "left",
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 }, 341 },
229 - //批量审批通过/不通过 342 + {
230 - examine(status) { 343 + name: "订单编号",
231 - this.clearCheckEntry(0); 344 + value: "orderNo",
232 - let chmConsignmentIds = []; 345 + width: '150',
233 - let chmRejectRemarkList = []; 346 + align: 'left'
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 }, 347 },
331 - //根据查询条件导出 348 + {
332 - exportFile() { 349 + name: '订单类型',
333 - this.$store.dispatch("SetLoadingType", { 350 + value: 'orderType',
334 - type: true, 351 + width: '150',
335 - text: this.$t("system.downloadingTip"), 352 + align: 'left'
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 }, 353 },
365 - //分页 354 + {
366 - currentChange(val) { 355 + name: '电商企业代码',
367 - this.page.pageIndex = val.page; 356 + value: 'ebccode',
368 - this.getFormOver(); 357 + width: '200',
358 + align: 'left'
369 }, 359 },
370 - sizeChange(val) { 360 + {
371 - this.page.pageSize = val; 361 + name: '电商企业',
372 - this.getFormOver(); 362 + value: 'ebcname',
363 + width: '200',
364 + align: 'left'
365 + },
366 + {
367 + name: '电商平台名称',
368 + value: 'ebpname',
369 + width: '250',
370 + align: 'left'
373 }, 371 },
374 - //table选择变更 372 + {
375 - tableSelect(selection) { 373 + name: '创建时间',
376 - this.selected = selection.selection; 374 + value: 'createTime',
377 - this.clearCheckEntry(0); 375 + width: '150',
376 + align: 'left'
378 }, 377 },
379 - inputblur() { 378 + {
380 - this.checkCell.cell.classList.remove("activeTableCell"); 379 + name: '申报企业',
381 - this.checkCell = null; 380 + value: 'declaringEnterprise',
381 + width: '200',
382 + align: 'left'
382 }, 383 },
383 - tableCellClick(val) { 384 + {
384 - if (this.checkCell != null) { 385 + name: '申报类型',
385 - this.inputblur(); 386 + value: 'declaringType',
387 + width: '100',
388 + align: 'left'
386 } 389 }
387 - this.$nextTick(() => { 390 + ]
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 } 391 }
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 }, 392 },
423 - //操作 393 + created() {
424 - options(val) { 394 + getAllExportingBills({
425 - this.clearCheckEntry(1); 395 + pageIndex: 1,
426 - if (val.status == 0) { 396 + pageSize: 20
427 - this.$store.dispatch("delEntry"); 397 + }).then((res) => {
428 - this.$store.getters.visitedViews.forEach((item) => { 398 + console.log('res', res)
429 - if (item.path == "/auditionEntrySearch") { 399 + this.tableData = res.data.value;
430 - this.$store.dispatch("tagsView/delView", item); 400 + this.total = res.data.totalItems;
431 - } 401 + debugger;
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 }) 402 })
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 }, 403 },
459 - }); 404 + methods: {
460 - } else { 405 + input() {
461 - this.$router.push({ 406 + this.$forceUpdate();
462 - name: "DeclarationDetails",
463 - params: {
464 - consignmentCode: val.data.consignmentCode,
465 - id: encrypt(val.data.chmId.toString()),
466 - from: "audition",
467 }, 407 },
468 - }); 408 + handleRowClick(row) {
409 + const declareId = row.declareId;
410 + this.$router.push({
411 + path: '/exportBillDetail',
412 + query: {
413 + declareId
469 } 414 }
470 }); 415 });
471 - }
472 }, 416 },
473 - getFormOver(val) { 417 + async search(val) {
474 - this.clearCheckEntry(0); 418 + try {
475 - this.$nextTick(() => { 419 +
476 - if (this.status == 1) { 420 + } catch (error) {
477 - this.$refs.auditionEntryForm.sreach(1, this.conditionData); 421 + console.error("搜索出错:", error);
422 + } finally {
423 + // 无论成功还是失败,关闭加载状态
424 + this.loadings.sreachLoading = false;
478 } 425 }
479 - });
480 }, 426 },
481 - formChange() { 427 + textareaBlur(val) {
482 - this.clearCheckEntry(0); 428 + let inputInner = document.querySelector(
483 - }, 429 + "#inputInner--" + val.target.name.split("-")[0]
484 - tableFormChange(val) { 430 + );
485 - this.clearCheckEntry(0); 431 + this.textareaVisible["formItem" + val.target.name.split("-")[0]] = false;
486 - }, 432 + inputInner.style.display = "block";
487 - selectChange(selection) { 433 + this.$nextTick(() => {
488 - this.selected = selection; 434 + inputInner.blur();
489 - this.clearCheckEntry(0); 435 + if (
490 - }, 436 + inputInner.value != undefined &&
491 - //检测是否有新预审运单并提示 437 + inputInner.value != "" &&
492 - checkNewEntry() { 438 + inputInner.value != null
493 - clearTimeout(this.checkEntry); 439 + ) {
494 - if (window.Notification) { 440 + inputInner.classList.add("inputFocus");
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 { 441 } else {
510 - this.checkNewEntry(); 442 + inputInner.classList.remove("inputFocus");
511 } 443 }
512 - } else { 444 + });
513 - this.clearCheckEntry(0); 445 + let arr = [];
514 - reject(); 446 + this.searchForm[val.target.name.split("-")[0]]
447 + .replace(/[\n\,\;\;]/g, ",")
448 + .replace(/[\t]/g, "")
449 + .split(",")
450 + .forEach((str, index) => {
451 + if (str != null && str != "" && index <= 1000) {
452 + arr.push(str.trim());
515 } 453 }
516 - })
517 - .catch((err) => {
518 - console.log(err);
519 - this.clearCheckEntry(1);
520 - reject();
521 }); 454 });
522 - }, 60000); 455 + this.searchForm[val.target.name.split("-")[0]] = arr.join("\n");
456 + this.$forceUpdate();
457 + },
458 + //文本域展示状态切换
459 + textareaFocus(val) {
460 + this.textareaVisible["formItem" + val.target.name.split("-")[0]] = true;
461 + this.$nextTick(() => {
462 + document
463 + .querySelector("#popoverInput" + val.target.name.split("-")[0])
464 + .focus();
465 + document.querySelector(
466 + "#inputInner--" + val.target.name.split("-")[0]
467 + ).style.display = "none";
523 }); 468 });
524 - }
525 }, 469 },
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 } 470 }
532 - }, 471 +}
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%;
542 - background-color: $menuLightBg;
543 -
544 - .entrySaveButton {
545 - margin-left: 8px;
546 - }
547 -
548 - .entrySreachButton {
549 display: inline-block; 478 display: inline-block;
550 font-size: 20px; 479 font-size: 20px;
551 - color: $subMenuHover !important; 480 + color: $fedexButton !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;
570 - fill: $fedexButton;
571 } 489 }
490 + button {
491 + color: white;
572 } 492 }
573 -
574 - .entrySaveButton:hover,
575 - .entrySaveButton:focus {
576 - color: $menuLightBg !important;
577 - background-color: $fedexButton !important;
578 } 493 }
579 -} 494 + //width: 90%;
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>
......