jinhui.wang

接口增加,反填逻辑增加

...@@ -59,3 +59,11 @@ export function searchMockReceiptSummary(data) { ...@@ -59,3 +59,11 @@ export function searchMockReceiptSummary(data) {
59 method: "get", 59 method: "get",
60 }); 60 });
61 } 61 }
62 +
63 +//获取清单模拟回执信息
64 +export function getListInfoByLogisticsNo(data) {
65 + return request({
66 + url: `/bus-customer/mockReceipt/getListInfo/${data.logisticsNo}`,
67 + method: "get",
68 + });
69 +}
......
...@@ -166,12 +166,12 @@ ...@@ -166,12 +166,12 @@
166 > 166 >
167 清单总分单撤销 167 清单总分单撤销
168 </el-dropdown-item> 168 </el-dropdown-item>
169 - <el-dropdown-item 169 + <!-- <el-dropdown-item
170 :command="{ code: 'totalScore', name: '清单总分单变更' }" 170 :command="{ code: 'totalScore', name: '清单总分单变更' }"
171 class="dropdown-other-menu-button" 171 class="dropdown-other-menu-button"
172 > 172 >
173 清单总分单变更 173 清单总分单变更
174 - </el-dropdown-item> 174 + </el-dropdown-item> -->
175 </el-dropdown-menu> 175 </el-dropdown-menu>
176 </el-dropdown> 176 </el-dropdown>
177 </div> 177 </div>
...@@ -1041,4 +1041,48 @@ export default { ...@@ -1041,4 +1041,48 @@ export default {
1041 transform: translate(0, -50%); 1041 transform: translate(0, -50%);
1042 z-index: 10; 1042 z-index: 10;
1043 } 1043 }
1044 +
1045 +.dropdown-other-button {
1046 + border-color: #ff0000 !important;
1047 +
1048 + ::v-deep {
1049 + .el-button-group {
1050 + .el-button:last-child {
1051 + border-right-color: #409eff !important;
1052 + border-left: 1px solid #409eff !important;
1053 + border-top-color: #409eff !important;
1054 + border-bottom-color: #409eff !important;
1055 + .el-dropdown__icon {
1056 + color: #409eff;
1057 + }
1058 + }
1059 + .el-button:first-child {
1060 + height: 100%;
1061 + border-left-color: #409eff !important;
1062 + border-top-color: #409eff !important;
1063 + border-bottom-color: #409eff !important;
1064 + span {
1065 + color: #409eff;
1066 + }
1067 + }
1068 + }
1069 + }
1070 +}
1071 +.el-dropdown-menu {
1072 + border: 1px solid #409eff !important;
1073 + .dropdown-other-menu-button:not(.is-disabled):hover,
1074 + .dropdown-other-menu-button:focus {
1075 + background-color: #409eff !important;
1076 + }
1077 +}
1078 +.dropdown-other-button:hover {
1079 + ::v-deep {
1080 + .el-button-group .el-button:first-child span {
1081 + color: #409eff !important;
1082 + }
1083 + .el-button-group .el-button:last-child .el-dropdown__icon {
1084 + color: #409eff !important;
1085 + }
1086 + }
1087 +}
1044 </style> 1088 </style>
......
1 <template> 1 <template>
2 - <el-dialog 2 + <el-dialog class="entryDialog classCUploadDialog" title="新增模拟回执管理" :visible.sync="outerVisible" :show-close="false"
3 - class="entryDialog classCUploadDialog" 3 + width="960px" :close-on-click-modal="false" :destroy-on-close="true" v-loading="loadings.dialogLoading"
4 - title="新增模拟回执管理" 4 + @close="close(false)">
5 - :visible.sync="outerVisible"
6 - :show-close="false"
7 - width="960px"
8 - :close-on-click-modal="false"
9 - :destroy-on-close="true"
10 - v-loading="loadings.dialogLoading"
11 - @close="close(false)"
12 - >
13 <div class="modelItem"> 5 <div class="modelItem">
14 - <el-form 6 + <el-form class="fedexFormStyle" ref="formDataRef" :model="formData" label-position="top" size="small"
15 - class="fedexFormStyle" 7 + :rules="rules">
16 - ref="formDataRef"
17 - :model="formData"
18 - label-position="top"
19 - size="small"
20 - :rules="rules"
21 - >
22 <el-row :gutter="5"> 8 <el-row :gutter="5">
23 <el-col :span="8"> 9 <el-col :span="8">
24 <Formitem label="回执类型" prop="receiptType" type="edit"> 10 <Formitem label="回执类型" prop="receiptType" type="edit">
25 - <el-select 11 + <el-select type="text" id="inputInner-edit-receiptType" v-model="formData.receiptType" clearable
26 - type="text" 12 + filterable placeholder="" @change="receiptChange">
27 - id="inputInner-edit-receiptType" 13 + <el-option v-for="item in receiptTypeList" :key="item.value" :label="item.itemChineseName"
28 - v-model="formData.receiptType" 14 + :value="item.itemValue"></el-option>
29 - clearable
30 - filterable
31 - placeholder=""
32 - @change="receiptChange"
33 - >
34 - <el-option
35 - v-for="item in receiptTypeList"
36 - :key="item.value"
37 - :label="item.itemChineseName"
38 - :value="item.itemValue"
39 - ></el-option>
40 </el-select> 15 </el-select>
41 </Formitem> 16 </Formitem>
42 </el-col> 17 </el-col>
...@@ -47,112 +22,63 @@ ...@@ -47,112 +22,63 @@
47 22
48 <!-- 清单回执=》 list === 提运单号/物流运单编号/回执状态/电子口岸编号 preNo/清单编号 invtNo --> 23 <!-- 清单回执=》 list === 提运单号/物流运单编号/回执状态/电子口岸编号 preNo/清单编号 invtNo -->
49 24
50 - <template 25 + <template v-if="
51 - v-if=" 26 + ['order', 'waybill', 'totalScore', 'list'].includes(
52 - ['order', 'waybill', 'totalScore', 'list'].includes( 27 + formData.receiptType
53 - formData.receiptType 28 + )
54 - ) 29 + ">
55 - "
56 - >
57 <el-col :span="8"> 30 <el-col :span="8">
58 <Formitem label="提运单号" prop="billNo" type="edit"> 31 <Formitem label="提运单号" prop="billNo" type="edit">
59 - <el-input 32 + <el-input type="text" class="inputShadow" id="inputInner-edit-billNo" resize="none"
60 - type="text" 33 + v-model="formData.billNo" clearable placeholder=""
61 - class="inputShadow" 34 + :disabled="!!formData.orderNos || !!formData.logisticsNos" @blur="receiptXml"></el-input>
62 - id="inputInner-edit-billNo"
63 - resize="none"
64 - v-model="formData.billNo"
65 - clearable
66 - placeholder=""
67 - :disabled="!!formData.orderNos || !!formData.logisticsNos"
68 - @blur="receiptXml"
69 - ></el-input>
70 </Formitem> 35 </Formitem>
71 </el-col> 36 </el-col>
72 </template> 37 </template>
73 <template v-if="['waybill', 'list'].includes(formData.receiptType)"> 38 <template v-if="['waybill', 'list'].includes(formData.receiptType)">
74 <el-col :span="8" v-if="!formData.billNo"> 39 <el-col :span="8" v-if="!formData.billNo">
75 - <Formitem label="物流运单编号" prop="logisticsNos"> 40 + <Formitem prop="logisticsNos">
76 - <FormTextareaInput 41 + <template #title>
77 - :formData="formData" 42 + <span>物流运单编号</span>
78 - dataKey="logisticsNos" 43 + <span v-show="loadings.logisticsNosLoading" class="el-icon-loading"></span>
79 - :curKey="Date.now()" 44 + </template>
80 - @formChange="formChange" 45 + <FormTextareaInput :formData="formData" dataKey="logisticsNos" :curKey="Date.now()"
81 - /> 46 + @formChange="formChange" />
82 </Formitem> 47 </Formitem>
83 </el-col> 48 </el-col>
84 <el-col :span="8" v-else> 49 <el-col :span="8" v-else>
85 <Formitem label="物流运单编号" prop="logisticsNos"> 50 <Formitem label="物流运单编号" prop="logisticsNos">
86 - <el-input 51 + <el-input type="text" class="inputShadow" id="inputInner-edit-logisticsNos" resize="none"
87 - type="text" 52 + v-model="formData.logisticsNos" clearable placeholder="" :disabled="true">
88 - class="inputShadow" 53 + </el-input>
89 - id="inputInner-edit-logisticsNos"
90 - resize="none"
91 - v-model="formData.logisticsNos"
92 - clearable
93 - placeholder=""
94 - :disabled="true"
95 - ></el-input>
96 </Formitem> 54 </Formitem>
97 </el-col> 55 </el-col>
98 </template> 56 </template>
99 <template v-if="['order'].includes(formData.receiptType)"> 57 <template v-if="['order'].includes(formData.receiptType)">
100 <el-col :span="8" v-if="!formData.billNo"> 58 <el-col :span="8" v-if="!formData.billNo">
101 <Formitem label="订单编号" prop="orderNos"> 59 <Formitem label="订单编号" prop="orderNos">
102 - <FormTextareaInput 60 + <FormTextareaInput :formData="formData" dataKey="orderNos" :curKey="Date.now()"
103 - :formData="formData" 61 + @formChange="formChange" />
104 - dataKey="orderNos"
105 - :curKey="Date.now()"
106 - @formChange="formChange"
107 - />
108 </Formitem> 62 </Formitem>
109 </el-col> 63 </el-col>
110 <el-col :span="8" v-else> 64 <el-col :span="8" v-else>
111 <Formitem label="订单编号" prop="orderNos"> 65 <Formitem label="订单编号" prop="orderNos">
112 - <el-input 66 + <el-input type="text" class="inputShadow" id="inputInner-edit-orderNos" resize="none"
113 - type="text" 67 + v-model="formData.orderNos" clearable placeholder="" :disabled="true"></el-input>
114 - class="inputShadow"
115 - id="inputInner-edit-orderNos"
116 - resize="none"
117 - v-model="formData.orderNos"
118 - clearable
119 - placeholder=""
120 - :disabled="true"
121 - ></el-input>
122 </Formitem> 68 </Formitem>
123 </el-col> 69 </el-col>
124 </template> 70 </template>
125 - <el-col 71 + <el-col :span="24" v-if="['order', 'waybill', 'list'].includes(formData.receiptType)">
126 - :span="24"
127 - v-if="['order', 'waybill', 'list'].includes(formData.receiptType)"
128 - >
129 </el-col> 72 </el-col>
130 73
131 <!-- 收发货人名称 --> 74 <!-- 收发货人名称 -->
132 - <template 75 + <template v-if="['summaryApplication'].includes(formData.receiptType)">
133 - v-if="['summaryApplication'].includes(formData.receiptType)"
134 - >
135 <el-col :span="8"> 76 <el-col :span="8">
136 - <Formitem 77 + <Formitem label="收发货人名称" prop="summaryApplicationId" type="edit">
137 - label="收发货人名称" 78 + <el-select type="text" id="inputInner-edit-summaryApplicationId" v-model="formData.summaryApplicationId"
138 - prop="summaryApplicationId" 79 + clearable filterable placeholder="" @change="receiptXml">
139 - type="edit" 80 + <el-option v-for="item in summaryApplicationList" :key="item.id"
140 - > 81 + :label="`${item.ebcName}(${item.startTime}-${item.endTime})`" :value="item.id"></el-option>
141 - <el-select
142 - type="text"
143 - id="inputInner-edit-summaryApplicationId"
144 - v-model="formData.summaryApplicationId"
145 - clearable
146 - filterable
147 - placeholder=""
148 - @change="receiptXml"
149 - >
150 - <el-option
151 - v-for="item in summaryApplicationList"
152 - :key="item.id"
153 - :label="`${item.ebcName}(${item.startTime}-${item.endTime})`"
154 - :value="item.id"
155 - ></el-option>
156 </el-select> 82 </el-select>
157 </Formitem> 83 </Formitem>
158 </el-col> 84 </el-col>
...@@ -173,104 +99,55 @@ ...@@ -173,104 +99,55 @@
173 </el-col> --> 99 </el-col> -->
174 <el-col :span="8"> 100 <el-col :span="8">
175 <Formitem label="回执状态" prop="receiptStatus" type="edit"> 101 <Formitem label="回执状态" prop="receiptStatus" type="edit">
176 - <el-select 102 + <el-select type="text" id="inputInner-edit-receiptStatus" v-model="formData.receiptStatus" clearable
177 - type="text" 103 + filterable placeholder="" @change="receiptXml">
178 - id="inputInner-edit-receiptStatus" 104 + <el-option v-for="item in receiptStatusList" :key="item.itemValue" :label="item.itemChineseName"
179 - v-model="formData.receiptStatus" 105 + :value="item.itemValue"></el-option>
180 - clearable
181 - filterable
182 - placeholder=""
183 - @change="receiptXml"
184 - >
185 - <el-option
186 - v-for="item in receiptStatusList"
187 - :key="item.itemValue"
188 - :label="item.itemChineseName"
189 - :value="item.itemValue"
190 - ></el-option>
191 </el-select> 106 </el-select>
192 </Formitem> 107 </Formitem>
193 </el-col> 108 </el-col>
194 109
195 - <template 110 + <template v-if="
196 - v-if=" 111 + ['list', 'summaryApplication'].includes(formData.receiptType) &&
197 - ['list', 'summaryApplication'].includes(formData.receiptType) && 112 + logisticsNoArray.length < 2 &&
198 - logisticsNoArray.length < 2 && 113 + !formData.billNo
199 - !formData.billNo 114 + ">
200 - "
201 - >
202 <el-col :span="8"> 115 <el-col :span="8">
203 <Formitem label="电子口岸编号" prop="preNo" type="edit"> 116 <Formitem label="电子口岸编号" prop="preNo" type="edit">
204 - <el-input 117 + <el-input type="text" class="inputShadow" id="inputInner-edit-preNo" resize="none"
205 - type="text" 118 + v-model="formData.preNo" clearable placeholder="" @blur="receiptXml" maxlength="18"></el-input>
206 - class="inputShadow"
207 - id="inputInner-edit-preNo"
208 - resize="none"
209 - v-model="formData.preNo"
210 - clearable
211 - placeholder=""
212 - @blur="receiptXml"
213 - maxlength="18"
214 - ></el-input>
215 </Formitem> 119 </Formitem>
216 </el-col> 120 </el-col>
217 </template> 121 </template>
218 122
219 <!-- 汇总申请编号 sumNo --> 123 <!-- 汇总申请编号 sumNo -->
220 - <template 124 + <template v-if="['summaryApplication'].includes(formData.receiptType)">
221 - v-if="['summaryApplication'].includes(formData.receiptType)"
222 - >
223 <el-col :span="8"> 125 <el-col :span="8">
224 <Formitem label="汇总申请编号" prop="sumNo" type="edit"> 126 <Formitem label="汇总申请编号" prop="sumNo" type="edit">
225 - <el-input 127 + <el-input type="text" class="inputShadow" id="inputInner-edit-sumNo" resize="none"
226 - type="text" 128 + v-model="formData.sumNo" clearable placeholder="" @blur="receiptXml"></el-input>
227 - class="inputShadow"
228 - id="inputInner-edit-sumNo"
229 - resize="none"
230 - v-model="formData.sumNo"
231 - clearable
232 - placeholder=""
233 - @blur="receiptXml"
234 - ></el-input>
235 </Formitem> 129 </Formitem>
236 </el-col> 130 </el-col>
237 </template> 131 </template>
238 132
239 - <template 133 + <template v-if="
240 - v-if=" 134 + ['list'].includes(formData.receiptType) &&
241 - ['list'].includes(formData.receiptType) && 135 + logisticsNoArray.length < 2 &&
242 - logisticsNoArray.length < 2 && 136 + !formData.billNo
243 - !formData.billNo 137 + ">
244 - "
245 - >
246 <el-col :span="8"> 138 <el-col :span="8">
247 <Formitem label="清单编号" prop="invtNo" type="edit"> 139 <Formitem label="清单编号" prop="invtNo" type="edit">
248 - <el-input 140 + <el-input type="text" class="inputShadow" id="inputInner-edit-invtNo" resize="none"
249 - type="text" 141 + v-model="formData.invtNo" clearable placeholder="" @blur="receiptXml" maxlength="20"></el-input>
250 - class="inputShadow"
251 - id="inputInner-edit-invtNo"
252 - resize="none"
253 - v-model="formData.invtNo"
254 - clearable
255 - placeholder=""
256 - @blur="receiptXml"
257 - maxlength="20"
258 - ></el-input>
259 </Formitem> 142 </Formitem>
260 </el-col> 143 </el-col>
261 </template> 144 </template>
262 </el-row> 145 </el-row>
263 - <div 146 + <div style="color: #e6a23c; margin-bottom: 10px; font-size: 12px" v-if="formData.receiptType === 'order'">
264 - style="color: #e6a23c; margin-bottom: 10px; font-size: 12px"
265 - v-if="formData.receiptType === 'order'"
266 - >
267 <i class="el-icon-info"></i> 147 <i class="el-icon-info"></i>
268 提运单号和订单编号只能填写一个,如果填写提运单号,提运单下所有的订单编号回执状态都将新增模拟回执,如果填写订单编号,将只对填写的订单修改回执状态 148 提运单号和订单编号只能填写一个,如果填写提运单号,提运单下所有的订单编号回执状态都将新增模拟回执,如果填写订单编号,将只对填写的订单修改回执状态
269 </div> 149 </div>
270 - <div 150 + <div v-if="formData.receiptType === 'waybill'" style="color: #e6a23c; margin-bottom: 10px; font-size: 12px">
271 - v-if="formData.receiptType === 'waybill'"
272 - style="color: #e6a23c; margin-bottom: 10px; font-size: 12px"
273 - >
274 <i class="el-icon-info"></i> 151 <i class="el-icon-info"></i>
275 提运单号和物流运单编号只能填写一个,如果填写提运单号,提运单下所有的物流运单编号回执状态都将改变,如果填写物流运单编号,将只对填写的物流运单编号修改回执状态 152 提运单号和物流运单编号只能填写一个,如果填写提运单号,提运单下所有的物流运单编号回执状态都将改变,如果填写物流运单编号,将只对填写的物流运单编号修改回执状态
276 </div> 153 </div>
...@@ -279,14 +156,8 @@ ...@@ -279,14 +156,8 @@
279 <el-col :span="24"> 156 <el-col :span="24">
280 <div class="textarea-text"> 157 <div class="textarea-text">
281 <div style="color: #777777; margin-bottom: 10px">回执文本</div> 158 <div style="color: #777777; margin-bottom: 10px">回执文本</div>
282 - <el-input 159 + <el-input type="textarea" :rows="12" class="inputShadow" resize="none" :readonly="true"
283 - type="textarea" 160 + v-model="receiptInfo"></el-input>
284 - :rows="12"
285 - class="inputShadow"
286 - resize="none"
287 - :readonly="true"
288 - v-model="receiptInfo"
289 - ></el-input>
290 </div> 161 </div>
291 </el-col> 162 </el-col>
292 </el-row> 163 </el-row>
...@@ -294,12 +165,7 @@ ...@@ -294,12 +165,7 @@
294 </div> 165 </div>
295 166
296 <div class="dialogOption entrySave"> 167 <div class="dialogOption entrySave">
297 - <el-button 168 + <el-button class="entrySaveButton" :disabled="loadings.submitLoading" @click="submit">确 定</el-button>
298 - class="entrySaveButton"
299 - :disabled="loadings.submitLoading"
300 - @click="submit"
301 - >确 定</el-button
302 - >
303 <el-button class="entrySaveButton" @click="close(false)">关 闭</el-button> 169 <el-button class="entrySaveButton" @click="close(false)">关 闭</el-button>
304 </div> 170 </div>
305 </el-dialog> 171 </el-dialog>
...@@ -311,6 +177,7 @@ import { ...@@ -311,6 +177,7 @@ import {
311 addInfo, 177 addInfo,
312 getListInfo, 178 getListInfo,
313 searchMockReceiptSummary, 179 searchMockReceiptSummary,
180 + getListInfoByLogisticsNo,
314 } from "@/api/receiptManagement-api.js"; 181 } from "@/api/receiptManagement-api.js";
315 export default { 182 export default {
316 props: { 183 props: {
...@@ -400,6 +267,7 @@ export default { ...@@ -400,6 +267,7 @@ export default {
400 loadings: { 267 loadings: {
401 dialogLoading: false, 268 dialogLoading: false,
402 submitLoading: false, 269 submitLoading: false,
270 + logisticsNosLoading: false,
403 }, 271 },
404 loadingText: "", 272 loadingText: "",
405 summaryApplicationList: [], 273 summaryApplicationList: [],
...@@ -455,6 +323,13 @@ export default { ...@@ -455,6 +323,13 @@ export default {
455 } else { 323 } else {
456 this.logisticsNoArray = []; 324 this.logisticsNoArray = [];
457 } 325 }
326 + //物流运单号只有一个时查询“电子运单编号”与“清单编号”
327 + if (val.receiptType == 'list' && this.logisticsNoArray.length === 1) {
328 + this.getListInfoByLogisticsNo(this.logisticsNoArray[0])
329 + } else {
330 + this.formData.preNo = "";
331 + this.formData.invtNo = "";
332 + }
458 }, 333 },
459 queryApplicationList(name = "") { 334 queryApplicationList(name = "") {
460 searchMockReceiptSummary({ 335 searchMockReceiptSummary({
...@@ -508,6 +383,8 @@ export default { ...@@ -508,6 +383,8 @@ export default {
508 } 383 }
509 } 384 }
510 } else if (copyFormData.receiptType === "summaryApplication") { 385 } else if (copyFormData.receiptType === "summaryApplication") {
386 + //根据收发货人名称查询‘电子口岸编码’与‘汇总申请编号’
387 + this.getSummaryApplicationInfo()
511 if (!copyFormData.summaryApplicationId) { 388 if (!copyFormData.summaryApplicationId) {
512 return; 389 return;
513 } 390 }
...@@ -588,7 +465,18 @@ export default { ...@@ -588,7 +465,18 @@ export default {
588 addInfo(val) 465 addInfo(val)
589 .then((res) => { 466 .then((res) => {
590 if (res.code === "200") { 467 if (res.code === "200") {
591 - this.msgSuccess(res.data || res.message); 468 + if (!res.data) {
469 + this.msgSuccess(res.data || res.message);
470 + } else {
471 + const successStr = `成功修改清单 <span style='color:#67C23A;font-weight:600;'>${res.data.successCount}</span> 笔。`
472 + const errorStr = `失败修改清单 <span style='color:#F56C6C;font-weight:600;'>${res.data.failCount}</span> 笔,因为将清单模拟为结关,这些清单中不存在清单编号。`
473 + this.$message({
474 + showClose: true,
475 + type: 'success',
476 + dangerouslyUseHTMLString: true,
477 + message: `<span style='color:#666;'>${res.data.successCount > 0 ? successStr + (res.data.failCount > 0 ? errorStr : '') : errorStr}</span>`
478 + });
479 + }
592 this.close(true); 480 this.close(true);
593 } else { 481 } else {
594 this.alertWarningMsg(res.message); 482 this.alertWarningMsg(res.message);
...@@ -600,6 +488,40 @@ export default { ...@@ -600,6 +488,40 @@ export default {
600 this.loadings.dialogLoading = false; 488 this.loadings.dialogLoading = false;
601 }); 489 });
602 }, 490 },
491 + //根据物流运单号反填
492 + async getListInfoByLogisticsNo(logisticsNo) {
493 + console.log('物流运单号查询');
494 + this.loadings.logisticsNosLoading = true;
495 + getListInfoByLogisticsNo({
496 + logisticsNo,
497 + }).then((res) => {
498 + console.log(res);
499 + if (res.code === "200") {
500 + this.formData.preNo = res.data.preNo;
501 + this.formData.invtNo = res.data.invtNo;
502 + }
503 + }).finally(() => {
504 + this.loadings.logisticsNosLoading = false;
505 + });
506 + },
507 + //根据收发货人名称反填
508 + async getSummaryApplicationInfo(summaryApplicationId) {
509 + console.log('收发货人名称查询');
510 + if (this.formData.summaryApplicationId === "" || this.formData.summaryApplicationId === null) {
511 + this.formData.preNo = "";
512 + this.formData.sumNo = "";
513 + return;
514 + }
515 + const summaryApplication = this.summaryApplicationList.find(item => item.id === this.formData.summaryApplicationId);
516 + if (!summaryApplication) {
517 + this.formData.preNo = "";
518 + this.formData.sumNo = "";
519 + return;
520 + } else {
521 + this.formData.preNo = summaryApplication.preNo;
522 + this.formData.sumNo = summaryApplication.sumNo;
523 + }
524 + },
603 525
604 close(flag) { 526 close(flag) {
605 this.formData = { 527 this.formData = {
......