Showing
14 changed files
with
849 additions
and
50 deletions
| ... | @@ -183,6 +183,14 @@ export function updateDeclareData(data) { | ... | @@ -183,6 +183,14 @@ export function updateDeclareData(data) { |
| 183 | data | 183 | data |
| 184 | }) | 184 | }) |
| 185 | } | 185 | } |
| 186 | +//申报数据批量修改-航班号,运单号 | ||
| 187 | +export function bathDeclareDate(data) { | ||
| 188 | + return request({ | ||
| 189 | + url: '/bus-customer/declareData/bathDeclareDate', | ||
| 190 | + method: 'post', | ||
| 191 | + data | ||
| 192 | + }) | ||
| 193 | +} | ||
| 186 | 194 | ||
| 187 | 195 | ||
| 188 | 196 | ... | ... |
| ... | @@ -67,6 +67,17 @@ export function uploadCertificate(ecomEntCode, certificate) { | ... | @@ -67,6 +67,17 @@ export function uploadCertificate(ecomEntCode, certificate) { |
| 67 | data: formData, | 67 | data: formData, |
| 68 | }); | 68 | }); |
| 69 | } | 69 | } |
| 70 | +//上传青岛证书 | ||
| 71 | +export function uploadQingdaoCertificate(ecomEntCode, certificate) { | ||
| 72 | + const formData = new FormData(); | ||
| 73 | + formData.append('certificate', certificate); | ||
| 74 | + formData.append('ecomEntCode', ecomEntCode); | ||
| 75 | + return request({ | ||
| 76 | + url: '/bus-customer/customers/uploadQingDaoCertificate', | ||
| 77 | + method: 'post', | ||
| 78 | + data: formData, | ||
| 79 | + }); | ||
| 80 | +} | ||
| 70 | 81 | ||
| 71 | //删除证书 | 82 | //删除证书 |
| 72 | export function delCertificate(id, certificate) { | 83 | export function delCertificate(id, certificate) { |
| ... | @@ -77,6 +88,15 @@ export function delCertificate(id, certificate) { | ... | @@ -77,6 +88,15 @@ export function delCertificate(id, certificate) { |
| 77 | params: {id:id,certificate:certificate}, | 88 | params: {id:id,certificate:certificate}, |
| 78 | }); | 89 | }); |
| 79 | } | 90 | } |
| 91 | +//删除青岛证书 | ||
| 92 | +export function delQingdaoCertificate(id, certificate) { | ||
| 93 | + | ||
| 94 | + return request({ | ||
| 95 | + url: '/bus-customer/customers/deleteQingdaoCertificate', | ||
| 96 | + method: 'post', | ||
| 97 | + params: {id:id,certificate:certificate}, | ||
| 98 | + }); | ||
| 99 | +} | ||
| 80 | 100 | ||
| 81 | //下载证书 | 101 | //下载证书 |
| 82 | export function downloadCertificate(id,filename) { | 102 | export function downloadCertificate(id,filename) { | ... | ... |
src/assets/images/fold.png
0 → 100644
548 Bytes
src/assets/images/unfold.png
0 → 100644
571 Bytes
| ... | @@ -24,7 +24,7 @@ router.beforeEach((to, from, next) => { | ... | @@ -24,7 +24,7 @@ router.beforeEach((to, from, next) => { |
| 24 | store.dispatch('GetInfo').then((res) => { | 24 | store.dispatch('GetInfo').then((res) => { |
| 25 | // if (res.success) { | 25 | // if (res.success) { |
| 26 | store.dispatch('GenerateRoutes').then(accessRoutes => { | 26 | store.dispatch('GenerateRoutes').then(accessRoutes => { |
| 27 | - store.dispatch("GetDict", ['DECLARE_F_FLAG', 'MEASUREMENT_UNIT','PACKAGE_TYPE_CODE', 'RECEIPT_STATUS', 'DECLARE_APPTYPE', 'CURRENCY','COUNTRY_REGION_CODE', 'DECLARE_STATISTICS_FLAG', 'ORDER_DECLARATION_PARTY','APP_STATUS']); | 27 | + store.dispatch("GetDict", ['DECLARE_F_FLAG', 'MEASUREMENT_UNIT','TEMPLATE_TYPE','PACKAGE_TYPE_CODE', 'RECEIPT_STATUS', 'DECLARE_APPTYPE', 'CURRENCY','COUNTRY_REGION_CODE', 'DECLARE_STATISTICS_FLAG', 'ORDER_DECLARATION_PARTY','APP_STATUS']); |
| 28 | // 根据roles权限生成可访问的路由表 | 28 | // 根据roles权限生成可访问的路由表 |
| 29 | router.addRoutes(accessRoutes) // 动态添加可访问路由表 | 29 | router.addRoutes(accessRoutes) // 动态添加可访问路由表 |
| 30 | next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 | 30 | next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 | ... | ... |
| ... | @@ -101,6 +101,8 @@ service.interceptors.response.use(res => { | ... | @@ -101,6 +101,8 @@ service.interceptors.response.use(res => { |
| 101 | dangerouslyUseHTMLString: true | 101 | dangerouslyUseHTMLString: true |
| 102 | }); | 102 | }); |
| 103 | return Promise.reject(new Error(msg)) | 103 | return Promise.reject(new Error(msg)) |
| 104 | + } else if (code === 530) { | ||
| 105 | + store.dispatch('FedLogOut') | ||
| 104 | } else if (code !== 200) { | 106 | } else if (code !== 200) { |
| 105 | // MessageBox.alert(msg, '注意', { | 107 | // MessageBox.alert(msg, '注意', { |
| 106 | // dangerouslyUseHTMLString: true | 108 | // dangerouslyUseHTMLString: true | ... | ... |
| ... | @@ -91,26 +91,28 @@ | ... | @@ -91,26 +91,28 @@ |
| 91 | </el-select> | 91 | </el-select> |
| 92 | </Formitem> | 92 | </Formitem> |
| 93 | </el-col> | 93 | </el-col> |
| 94 | - <!-- DXPID --> | 94 | + |
| 95 | + </el-row> | ||
| 96 | + <div v-if="formData.orderRequester=='2'"> | ||
| 97 | + <div class="checkTitle"> | ||
| 98 | + <el-checkbox v-model="formData.qdCheck" @change="changeQDCheckBox()"></el-checkbox>青岛 | ||
| 99 | + </div> | ||
| 100 | + <el-row :gutter="5"> | ||
| 101 | + <!-- 公服DXPID --> | ||
| 95 | <el-col :span="8"> | 102 | <el-col :span="8"> |
| 96 | - <Formitem label="DXPID" prop="dxpid" type="edit"> | 103 | + <Formitem label="公服DXPID" prop="qingdaoUserDxpid" type="edit"> |
| 97 | <el-input | 104 | <el-input |
| 98 | type="text" | 105 | type="text" |
| 99 | class="inputShadow" | 106 | class="inputShadow" |
| 100 | - id="inputInner-edit-dxpid" | 107 | + id="inputInner-edit-qingdaoUserDxpid" |
| 101 | resize="none" | 108 | resize="none" |
| 102 | - v-model="formData.dxpid" | 109 | + v-model="formData.qingdaoUserDxpid" |
| 103 | clearable | 110 | clearable |
| 104 | placeholder="" | 111 | placeholder="" |
| 112 | + :disabled="!formData.qdCheck" | ||
| 105 | ></el-input> | 113 | ></el-input> |
| 106 | </Formitem> | 114 | </Formitem> |
| 107 | </el-col> | 115 | </el-col> |
| 108 | - </el-row> | ||
| 109 | - <div v-if="formData.orderRequester=='2'"> | ||
| 110 | - <div class="checkTitle"> | ||
| 111 | - <el-checkbox v-model="formData.qdCheck" @change="changeQDCheckBox()"></el-checkbox>青岛 | ||
| 112 | - </div> | ||
| 113 | - <el-row :gutter="5"> | ||
| 114 | <!-- User ID --> | 116 | <!-- User ID --> |
| 115 | <el-col :span="8"> | 117 | <el-col :span="8"> |
| 116 | <Formitem label="User ID" prop="qingdaoUserId" type="edit"> | 118 | <Formitem label="User ID" prop="qingdaoUserId" type="edit"> |
| ... | @@ -126,15 +128,15 @@ | ... | @@ -126,15 +128,15 @@ |
| 126 | ></el-input> | 128 | ></el-input> |
| 127 | </Formitem> | 129 | </Formitem> |
| 128 | </el-col> | 130 | </el-col> |
| 129 | - <!-- DXPID --> | 131 | + <!-- Key --> |
| 130 | <el-col :span="8"> | 132 | <el-col :span="8"> |
| 131 | - <Formitem label="DXPID" prop="qingdaoUserDxpid" type="edit"> | 133 | + <Formitem label="Key" prop="qingdaoKey" type="edit"> |
| 132 | <el-input | 134 | <el-input |
| 133 | type="text" | 135 | type="text" |
| 134 | class="inputShadow" | 136 | class="inputShadow" |
| 135 | - id="inputInner-edit-qingdaoUserDxpid" | 137 | + id="inputInner-edit-qingdaoKey" |
| 136 | resize="none" | 138 | resize="none" |
| 137 | - v-model="formData.qingdaoUserDxpid" | 139 | + v-model="formData.qingdaoKey" |
| 138 | clearable | 140 | clearable |
| 139 | placeholder="" | 141 | placeholder="" |
| 140 | :disabled="!formData.qdCheck" | 142 | :disabled="!formData.qdCheck" |
| ... | @@ -143,7 +145,7 @@ | ... | @@ -143,7 +145,7 @@ |
| 143 | </el-col> | 145 | </el-col> |
| 144 | <!-- DXPID --> | 146 | <!-- DXPID --> |
| 145 | <el-col :span="8"> | 147 | <el-col :span="8"> |
| 146 | - <Formitem label="单一DXPID" prop="qingdaoDanyiUserDxpid" type="edit"> | 148 | + <Formitem label="山电DXPID" prop="qingdaoDanyiUserDxpid" type="edit"> |
| 147 | <el-input | 149 | <el-input |
| 148 | type="text" | 150 | type="text" |
| 149 | class="inputShadow" | 151 | class="inputShadow" |
| ... | @@ -156,21 +158,91 @@ | ... | @@ -156,21 +158,91 @@ |
| 156 | ></el-input> | 158 | ></el-input> |
| 157 | </Formitem> | 159 | </Formitem> |
| 158 | </el-col> | 160 | </el-col> |
| 159 | - <!-- Key --> | 161 | + |
| 160 | <el-col :span="8"> | 162 | <el-col :span="8"> |
| 161 | - <Formitem label="Key" prop="qingdaoKey" type="edit"> | 163 | + <Formitem label="山电用户名" prop="qingdaoUserName" type="edit"> |
| 162 | <el-input | 164 | <el-input |
| 163 | type="text" | 165 | type="text" |
| 164 | class="inputShadow" | 166 | class="inputShadow" |
| 165 | - id="inputInner-edit-qingdaoKey" | 167 | + id="inputInner-edit-qingdaoUserName" |
| 166 | resize="none" | 168 | resize="none" |
| 167 | - v-model="formData.qingdaoKey" | 169 | + v-model="formData.qingdaoUserName" |
| 170 | + clearable | ||
| 171 | + placeholder="" | ||
| 172 | + :disabled="!formData.qdCheck" | ||
| 173 | + ></el-input> | ||
| 174 | + </Formitem> | ||
| 175 | + </el-col> | ||
| 176 | + <!-- DXPID --> | ||
| 177 | + <el-col :span="8"> | ||
| 178 | + <Formitem label="山电用户密码" prop="qingdaoUserPassword" type="edit"> | ||
| 179 | + <el-input | ||
| 180 | + type="text" | ||
| 181 | + class="inputShadow" | ||
| 182 | + id="inputInner-edit-qingdaoUserPassword" | ||
| 183 | + resize="none" | ||
| 184 | + v-model="formData.qingdaoUserPassword" | ||
| 168 | clearable | 185 | clearable |
| 169 | placeholder="" | 186 | placeholder="" |
| 170 | :disabled="!formData.qdCheck" | 187 | :disabled="!formData.qdCheck" |
| 171 | ></el-input> | 188 | ></el-input> |
| 172 | </Formitem> | 189 | </Formitem> |
| 173 | </el-col> | 190 | </el-col> |
| 191 | + <el-col :span="16" style="padding-right: 5px;"> | ||
| 192 | + <div class="uploadItem"> | ||
| 193 | + <div class="uploadbox"> | ||
| 194 | + <el-button | ||
| 195 | + size="mini" | ||
| 196 | + type="text" | ||
| 197 | + v-loading="loadings.qingdaoUploadLoading" | ||
| 198 | + @click="qingdaoUploadFile" | ||
| 199 | + >上传文件 | ||
| 200 | + </el-button> | ||
| 201 | + <el-upload | ||
| 202 | + class="upload-demo" | ||
| 203 | + ref="qingdaoUploadFile" | ||
| 204 | + action="/manager-server/attachment/picImg" | ||
| 205 | + :http-request="qingdaoFileUpload" | ||
| 206 | + :auto-upload="true" | ||
| 207 | + :show-file-list="false" | ||
| 208 | + :data="{}" | ||
| 209 | + :before-upload="qingdaoBeforeUpload" | ||
| 210 | + :on-remove="qingdaoHandleRemove" | ||
| 211 | + :on-success="qingdaoHandleSuccess" | ||
| 212 | + :on-change="qingdaoFileChange" | ||
| 213 | + :file-list="qingdaoFileList" | ||
| 214 | + @clearFiles="clearqingdaoFile" | ||
| 215 | + > | ||
| 216 | + </el-upload> | ||
| 217 | + </div> | ||
| 218 | + <div class="fileList" v-if="formData.qingdaoFile != null || formData.qingdaoCertificare"> | ||
| 219 | + <div class="fileList-item"> | ||
| 220 | + <div class="uploadbox-fileName" > | ||
| 221 | + <svg-icon | ||
| 222 | + class="el-icon-user-solid" | ||
| 223 | + icon-class="exl" | ||
| 224 | + style="font-size: 18px; color: #de002e" | ||
| 225 | + /> | ||
| 226 | + | ||
| 227 | + <Tooltip | ||
| 228 | + :content="formData.qingdaoFile ? formData.qingdaoFile.name : formData.qingdaoCertificare" | ||
| 229 | + :refName="formData.qingdaoFile ? formData.qingdaoFile.name : formData.qingdaoCertificare" | ||
| 230 | + /> | ||
| 231 | + </div> | ||
| 232 | + <div class="uploadbox-option"> | ||
| 233 | + <el-popconfirm | ||
| 234 | + :title="$t('entry.upload.delTip')" | ||
| 235 | + @confirm="delQingdaoTypeDFile" | ||
| 236 | + > | ||
| 237 | + <el-button slot="reference" type="text">{{ | ||
| 238 | + $t("entry.upload.del") | ||
| 239 | + }}</el-button> | ||
| 240 | + </el-popconfirm> | ||
| 241 | + </div> | ||
| 242 | + </div> | ||
| 243 | + </div> | ||
| 244 | + </div> | ||
| 245 | + </el-col> | ||
| 174 | </el-row> | 246 | </el-row> |
| 175 | <div class="checkTitle"> | 247 | <div class="checkTitle"> |
| 176 | <el-checkbox v-model="formData.bjCheck" @change="changeBJCheckBox()"></el-checkbox>北京 | 248 | <el-checkbox v-model="formData.bjCheck" @change="changeBJCheckBox()"></el-checkbox>北京 |
| ... | @@ -192,6 +264,11 @@ | ... | @@ -192,6 +264,11 @@ |
| 192 | </Formitem> | 264 | </Formitem> |
| 193 | </el-col> | 265 | </el-col> |
| 194 | </el-row> | 266 | </el-row> |
| 267 | + <section class="dlTitle"> | ||
| 268 | + <h3>密码机管理</h3> | ||
| 269 | + </section> | ||
| 270 | + <el-row> | ||
| 271 | + <el-col :span="16" style="padding-right: 5px;"> | ||
| 195 | <div class="uploadItem"> | 272 | <div class="uploadItem"> |
| 196 | <div class="uploadbox"> | 273 | <div class="uploadbox"> |
| 197 | <el-button | 274 | <el-button |
| ... | @@ -245,6 +322,21 @@ | ... | @@ -245,6 +322,21 @@ |
| 245 | </div> | 322 | </div> |
| 246 | </div> | 323 | </div> |
| 247 | </div> | 324 | </div> |
| 325 | + </el-col> | ||
| 326 | + <el-col :span="8"> | ||
| 327 | + <Formitem label="证书序列号" prop="dxpid" type="edit"> | ||
| 328 | + <el-input | ||
| 329 | + type="text" | ||
| 330 | + class="inputShadow" | ||
| 331 | + id="inputInner-edit-dxpid" | ||
| 332 | + resize="none" | ||
| 333 | + v-model="formData.dxpid" | ||
| 334 | + clearable | ||
| 335 | + placeholder="" | ||
| 336 | + ></el-input> | ||
| 337 | + </Formitem> | ||
| 338 | + </el-col> | ||
| 339 | + </el-row> | ||
| 248 | </div> | 340 | </div> |
| 249 | </el-form> | 341 | </el-form> |
| 250 | </div> | 342 | </div> |
| ... | @@ -269,8 +361,10 @@ | ... | @@ -269,8 +361,10 @@ |
| 269 | import { | 361 | import { |
| 270 | addCustomerData, | 362 | addCustomerData, |
| 271 | uploadCertificate, | 363 | uploadCertificate, |
| 364 | + uploadQingdaoCertificate, | ||
| 272 | updateCustomerData, | 365 | updateCustomerData, |
| 273 | - delCertificate | 366 | + delCertificate, |
| 367 | + delQingdaoCertificate | ||
| 274 | } from "@/api/system/customer-ai.js"; | 368 | } from "@/api/system/customer-ai.js"; |
| 275 | export default { | 369 | export default { |
| 276 | props: { | 370 | props: { |
| ... | @@ -303,6 +397,7 @@ export default { | ... | @@ -303,6 +397,7 @@ export default { |
| 303 | id: null, | 397 | id: null, |
| 304 | beijingDxpid: "", | 398 | beijingDxpid: "", |
| 305 | certificare: "", | 399 | certificare: "", |
| 400 | + qingdaoCertificare: "", | ||
| 306 | clientId: "", | 401 | clientId: "", |
| 307 | ecomEntCode: "", | 402 | ecomEntCode: "", |
| 308 | ecomEntEmail: "", | 403 | ecomEntEmail: "", |
| ... | @@ -317,6 +412,7 @@ export default { | ... | @@ -317,6 +412,7 @@ export default { |
| 317 | bjCheck: false, | 412 | bjCheck: false, |
| 318 | checkboxState:"",//后端要求 北京 和青岛 用这种方式传 第一个是青岛 第二个是北京 | 413 | checkboxState:"",//后端要求 北京 和青岛 用这种方式传 第一个是青岛 第二个是北京 |
| 319 | file: null, | 414 | file: null, |
| 415 | + qingdaoFile: null, | ||
| 320 | }, | 416 | }, |
| 321 | rules: { | 417 | rules: { |
| 322 | ecomEntCode: [ | 418 | ecomEntCode: [ |
| ... | @@ -387,9 +483,11 @@ export default { | ... | @@ -387,9 +483,11 @@ export default { |
| 387 | dialogLoading: false, | 483 | dialogLoading: false, |
| 388 | uploadLoading: false, | 484 | uploadLoading: false, |
| 389 | submitLoading: false, | 485 | submitLoading: false, |
| 486 | + qingdaoUploadLoading: false, | ||
| 390 | }, | 487 | }, |
| 391 | loadingText: "", | 488 | loadingText: "", |
| 392 | fileList: [], | 489 | fileList: [], |
| 490 | + qingdaoFileList: [], | ||
| 393 | }; | 491 | }; |
| 394 | }, | 492 | }, |
| 395 | watch: { | 493 | watch: { |
| ... | @@ -426,6 +524,9 @@ export default { | ... | @@ -426,6 +524,9 @@ export default { |
| 426 | uploadFile() { | 524 | uploadFile() { |
| 427 | this.$refs.uploadFile.$refs["upload-inner"].handleClick(); | 525 | this.$refs.uploadFile.$refs["upload-inner"].handleClick(); |
| 428 | }, | 526 | }, |
| 527 | + qingdaoUploadFile() { | ||
| 528 | + this.$refs.qingdaoUploadFile.$refs["upload-inner"].handleClick(); | ||
| 529 | + }, | ||
| 429 | //文件校验 | 530 | //文件校验 |
| 430 | beforeUpload(val) { | 531 | beforeUpload(val) { |
| 431 | // if ( | 532 | // if ( |
| ... | @@ -438,6 +539,9 @@ export default { | ... | @@ -438,6 +539,9 @@ export default { |
| 438 | return true; | 539 | return true; |
| 439 | // } | 540 | // } |
| 440 | }, | 541 | }, |
| 542 | + qingdaoBeforeUpload(val) { | ||
| 543 | + return true; | ||
| 544 | + }, | ||
| 441 | fileUpload({ file }) { | 545 | fileUpload({ file }) { |
| 442 | 546 | ||
| 443 | const reader = new FileReader(); | 547 | const reader = new FileReader(); |
| ... | @@ -452,16 +556,40 @@ export default { | ... | @@ -452,16 +556,40 @@ export default { |
| 452 | }; | 556 | }; |
| 453 | 557 | ||
| 454 | }, | 558 | }, |
| 559 | + qingdaoFileUpload({ file }) { | ||
| 560 | + | ||
| 561 | + const reader = new FileReader(); | ||
| 562 | + reader.readAsDataURL(file); | ||
| 563 | + reader.onload = (e) => { | ||
| 564 | + console.log(e); | ||
| 565 | + let obj = { | ||
| 566 | + file: e.target.result, | ||
| 567 | + name:file.name, | ||
| 568 | + }; | ||
| 569 | + this.formData.qingdaoFile = obj; | ||
| 570 | + }; | ||
| 571 | + | ||
| 572 | + }, | ||
| 455 | fileChange(val) {}, | 573 | fileChange(val) {}, |
| 574 | + qingdaoFileChange(val) {}, | ||
| 456 | handleSuccess() {}, | 575 | handleSuccess() {}, |
| 576 | + qingdaoHandleSuccess() {}, | ||
| 457 | clearFile() {}, | 577 | clearFile() {}, |
| 578 | + clearqingdaoFile() {}, | ||
| 458 | handleRemove() { | 579 | handleRemove() { |
| 459 | this.fileList = []; | 580 | this.fileList = []; |
| 460 | }, | 581 | }, |
| 582 | + qingdaoHandleRemove() { | ||
| 583 | + this.qingdaoFileList = []; | ||
| 584 | + }, | ||
| 461 | //删除文件 | 585 | //删除文件 |
| 462 | delTypeDFile() { | 586 | delTypeDFile() { |
| 463 | this.delCertificate(); | 587 | this.delCertificate(); |
| 464 | }, | 588 | }, |
| 589 | + delQingdaoTypeDFile() { | ||
| 590 | + this.delQingdaoCertificate(); | ||
| 591 | + }, | ||
| 592 | + | ||
| 465 | //删除证书 | 593 | //删除证书 |
| 466 | delCertificate(){ | 594 | delCertificate(){ |
| 467 | if(this.formData.id && this.formData.certificare){ | 595 | if(this.formData.id && this.formData.certificare){ |
| ... | @@ -482,6 +610,27 @@ export default { | ... | @@ -482,6 +610,27 @@ export default { |
| 482 | this.formData.certificare=""; | 610 | this.formData.certificare=""; |
| 483 | } | 611 | } |
| 484 | }, | 612 | }, |
| 613 | + | ||
| 614 | + //删除青岛证书 | ||
| 615 | + delQingdaoCertificate(){ | ||
| 616 | + if(this.formData.id && this.formData.qingdaoCertificare){ | ||
| 617 | + delQingdaoCertificate(this.formData.id,this.formData.qingdaoCertificare).then((res)=>{ | ||
| 618 | + if(res.code==200){ | ||
| 619 | + this.formData.qingdaoFile = null; | ||
| 620 | + this.formData.qingdaoCertificare=""; | ||
| 621 | + // this.msgSuccess("证书删除成功!"); | ||
| 622 | + }else{ | ||
| 623 | + this.alertErrorMsg("证书删除失败,请联系管理员!"); | ||
| 624 | + } | ||
| 625 | + }).catch((err)=>{ | ||
| 626 | + console.log(err); | ||
| 627 | + this.alertErrorMsg("证书删除失败,请联系管理员!"); | ||
| 628 | + }) | ||
| 629 | + }else{ | ||
| 630 | + this.formData.qingdaoFile = null; | ||
| 631 | + this.formData.qingdaoCertificare=""; | ||
| 632 | + } | ||
| 633 | + }, | ||
| 485 | //查询用户信息详情 | 634 | //查询用户信息详情 |
| 486 | searchUserData(id) { | 635 | searchUserData(id) { |
| 487 | this.loadings.dialogLoading = true; | 636 | this.loadings.dialogLoading = true; |
| ... | @@ -535,6 +684,9 @@ export default { | ... | @@ -535,6 +684,9 @@ export default { |
| 535 | if (this.formData.file) { | 684 | if (this.formData.file) { |
| 536 | this.uploadCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.file.file,this.formData.file.name)); | 685 | this.uploadCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.file.file,this.formData.file.name)); |
| 537 | } | 686 | } |
| 687 | + if (this.formData.qingdaoFile) { | ||
| 688 | + this.uploadQingdaoCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.qingdaoFile.file,this.formData.qingdaoFile.name)); | ||
| 689 | + } | ||
| 538 | this.msgSuccess("客户添加成功!"); | 690 | this.msgSuccess("客户添加成功!"); |
| 539 | this.close(); | 691 | this.close(); |
| 540 | 692 | ||
| ... | @@ -565,6 +717,24 @@ export default { | ... | @@ -565,6 +717,24 @@ export default { |
| 565 | this.loadings.dialogLoading = false; | 717 | this.loadings.dialogLoading = false; |
| 566 | }); | 718 | }); |
| 567 | }, | 719 | }, |
| 720 | + | ||
| 721 | + uploadQingdaoCertificate(ecomEntCode, file) { | ||
| 722 | + | ||
| 723 | + uploadQingdaoCertificate(ecomEntCode, file) | ||
| 724 | + .then((uploadRes) => { | ||
| 725 | + if (uploadRes.code === "200") { | ||
| 726 | + // this.msgSuccess("客户添加和证书上传成功!"); | ||
| 727 | + this.close(); | ||
| 728 | + } else { | ||
| 729 | + this.alertWarningMsg(uploadRes.message); | ||
| 730 | + } | ||
| 731 | + this.loadings.dialogLoading = false; | ||
| 732 | + }) | ||
| 733 | + .catch((err) => { | ||
| 734 | + console.log(err); | ||
| 735 | + this.loadings.dialogLoading = false; | ||
| 736 | + }); | ||
| 737 | + }, | ||
| 568 | //修改 | 738 | //修改 |
| 569 | updateapi(val) { | 739 | updateapi(val) { |
| 570 | updateCustomerData(val) | 740 | updateCustomerData(val) |
| ... | @@ -575,6 +745,9 @@ export default { | ... | @@ -575,6 +745,9 @@ export default { |
| 575 | if (this.formData.file) { | 745 | if (this.formData.file) { |
| 576 | this.uploadCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.file.file,this.formData.file.name)); | 746 | this.uploadCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.file.file,this.formData.file.name)); |
| 577 | } | 747 | } |
| 748 | + if (this.formData.qingdaoFile) { | ||
| 749 | + this.uploadQingdaoCertificate(val.ecomEntCode, this.base64ConvertFile(this.formData.qingdaoFile.file,this.formData.qingdaoFile.name)); | ||
| 750 | + } | ||
| 578 | this.msgSuccess("客户修改成功!"); | 751 | this.msgSuccess("客户修改成功!"); |
| 579 | this.close(); | 752 | this.close(); |
| 580 | 753 | ||
| ... | @@ -649,11 +822,11 @@ export default { | ... | @@ -649,11 +822,11 @@ export default { |
| 649 | 822 | ||
| 650 | .uploadbox { | 823 | .uploadbox { |
| 651 | width: 100%; | 824 | width: 100%; |
| 652 | - height: 40px; | 825 | + height: 50px; |
| 653 | line-height: 20px; | 826 | line-height: 20px; |
| 654 | background-color: $formItemBackgroundColor; | 827 | background-color: $formItemBackgroundColor; |
| 655 | padding: 4px 8px; | 828 | padding: 4px 8px; |
| 656 | - margin-top: 5px; | 829 | + // margin-top: 5px; |
| 657 | display: flex; | 830 | display: flex; |
| 658 | justify-content: space-between; | 831 | justify-content: space-between; |
| 659 | 832 | ||
| ... | @@ -716,4 +889,13 @@ export default { | ... | @@ -716,4 +889,13 @@ export default { |
| 716 | margin-right: 10px; | 889 | margin-right: 10px; |
| 717 | } | 890 | } |
| 718 | } | 891 | } |
| 892 | +.dlTitle{ | ||
| 893 | + border-bottom: 2px solid #000000; | ||
| 894 | + color:#000000; | ||
| 895 | + margin-bottom: 12px; | ||
| 896 | + h3{ | ||
| 897 | + margin-bottom: 8px; | ||
| 898 | + font-weight: 500; | ||
| 899 | + } | ||
| 900 | +} | ||
| 719 | </style> | 901 | </style> | ... | ... |
| ... | @@ -334,7 +334,8 @@ export default { | ... | @@ -334,7 +334,8 @@ export default { |
| 334 | update(val) { | 334 | update(val) { |
| 335 | let data={ | 335 | let data={ |
| 336 | ...val, | 336 | ...val, |
| 337 | - file:null | 337 | + file:null, |
| 338 | + qingdaoFile:null | ||
| 338 | } | 339 | } |
| 339 | this.dialogTitle = "修改客户"; | 340 | this.dialogTitle = "修改客户"; |
| 340 | this.editType = "update"; | 341 | this.editType = "update"; | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | - <div> | 2 | + <div style="height: 100%;"> |
| 3 | <el-form | 3 | <el-form |
| 4 | - class="fedexFormStyle" | 4 | + class="fedexFormStyle fedexRowEditFormStyle" |
| 5 | - ref="editForm" | 5 | + ref="editRowForm" |
| 6 | :model="tableRowformData" | 6 | :model="tableRowformData" |
| 7 | :rules="tableRowFormRules" | 7 | :rules="tableRowFormRules" |
| 8 | label-position="top" | 8 | label-position="top" |
| ... | @@ -236,7 +236,7 @@ | ... | @@ -236,7 +236,7 @@ |
| 236 | ></el-input> | 236 | ></el-input> |
| 237 | </Formitem> | 237 | </Formitem> |
| 238 | </el-col> | 238 | </el-col> |
| 239 | - <el-col :span="4"> | 239 | + <el-col :span="8"> |
| 240 | <Formitem label="备注" prop="remark"> | 240 | <Formitem label="备注" prop="remark"> |
| 241 | <el-input | 241 | <el-input |
| 242 | type="text" | 242 | type="text" |
| ... | @@ -267,7 +267,47 @@ | ... | @@ -267,7 +267,47 @@ |
| 267 | data() { | 267 | data() { |
| 268 | return { | 268 | return { |
| 269 | tableRowformData:{}, | 269 | tableRowformData:{}, |
| 270 | - tableRowFormRules:{} | 270 | + tableRowFormRules:{ |
| 271 | + enterpriseProductCode: [ | ||
| 272 | + { required: true, message: '请输入企业商品货号', trigger: 'blur' }, | ||
| 273 | + ], | ||
| 274 | + enterpriseProductName: [ | ||
| 275 | + { required: true, message: '请输入企业商品名称', trigger: 'blur' } | ||
| 276 | + ], | ||
| 277 | + productName: [ | ||
| 278 | + { required: true, message: '请输入商品名称', trigger: 'blur' } | ||
| 279 | + ], | ||
| 280 | + productCode: [ | ||
| 281 | + { required: true, message: '请输入商品编码', trigger: 'blur' } | ||
| 282 | + ], | ||
| 283 | + model: [ | ||
| 284 | + { required: true, message: '请输入规格型号', trigger: 'blur' } | ||
| 285 | + ], | ||
| 286 | + destinationCountryRegionCode: [ | ||
| 287 | + { required: true, message: '请选择目的国(地区)代码', trigger: 'change' } | ||
| 288 | + ], | ||
| 289 | + unit: [ | ||
| 290 | + { required: true, message: '请选择计量单位', trigger: 'change' } | ||
| 291 | + ], | ||
| 292 | + qty: [ | ||
| 293 | + { required: true, message: '请输入数量', trigger: 'blur' } | ||
| 294 | + ], | ||
| 295 | + legalQty: [ | ||
| 296 | + { required: true, message: '请输入法定数量', trigger: 'blur' } | ||
| 297 | + ], | ||
| 298 | + currency: [ | ||
| 299 | + { required: true, message: '请选择币制', trigger: 'change' } | ||
| 300 | + ], | ||
| 301 | + price: [ | ||
| 302 | + { required: true, message: '请输入单价', trigger: 'blur' } | ||
| 303 | + ], | ||
| 304 | + totalPrice: [ | ||
| 305 | + { required: true, message: '请输入总价', trigger: 'blur' } | ||
| 306 | + ], | ||
| 307 | + netWeight: [ | ||
| 308 | + { required: true, message: '请输入净重', trigger: 'blur' } | ||
| 309 | + ], | ||
| 310 | + } | ||
| 271 | }; | 311 | }; |
| 272 | }, | 312 | }, |
| 273 | watch: { | 313 | watch: { |
| ... | @@ -275,8 +315,14 @@ | ... | @@ -275,8 +315,14 @@ |
| 275 | }, | 315 | }, |
| 276 | methods: { | 316 | methods: { |
| 277 | rowFormDataSave(){ | 317 | rowFormDataSave(){ |
| 318 | + this.$refs.editRowForm.validate((valid) => { | ||
| 319 | + if (valid) { | ||
| 278 | this.$emit('rowFormDataSave', {gnum: this.rowDatas.row.gnum, tableRowformData: this.tableRowformData}) | 320 | this.$emit('rowFormDataSave', {gnum: this.rowDatas.row.gnum, tableRowformData: this.tableRowformData}) |
| 279 | this.tableRowformData = {} | 321 | this.tableRowformData = {} |
| 322 | + } else { | ||
| 323 | + return false; | ||
| 324 | + } | ||
| 325 | + }) | ||
| 280 | }, | 326 | }, |
| 281 | cancelEditRowData(){ | 327 | cancelEditRowData(){ |
| 282 | this.tableRowformData = {} | 328 | this.tableRowformData = {} |
| ... | @@ -313,5 +359,17 @@ | ... | @@ -313,5 +359,17 @@ |
| 313 | } | 359 | } |
| 314 | } | 360 | } |
| 315 | } | 361 | } |
| 362 | + .fedexRowEditFormStyle .el-form-item{ | ||
| 363 | + background-color: #ffffff; | ||
| 364 | + box-shadow: 0 2px 4px 0 #E5F2F8CC; | ||
| 365 | + border-left: 1px solid #E5F2F8CC; | ||
| 366 | + // margin-bottom: 30px; | ||
| 367 | + } | ||
| 368 | + .fedexRowEditFormStyle .el-form-item:has(.formError){ | ||
| 369 | + margin-bottom: 25px!important; | ||
| 370 | + } | ||
| 371 | + .fedexRowEditFormStyle .activeBorder{ | ||
| 372 | + border-left: 3px solid #007AB7; | ||
| 373 | + } | ||
| 316 | </style> | 374 | </style> |
| 317 | 375 | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -6,8 +6,9 @@ | ... | @@ -6,8 +6,9 @@ |
| 6 | <el-button class="entrySaveButton" @click="back">返 回</el-button> | 6 | <el-button class="entrySaveButton" @click="back">返 回</el-button> |
| 7 | </div> | 7 | </div> |
| 8 | </div> | 8 | </div> |
| 9 | + <section :class="{partsHidden:!isFold}"> | ||
| 9 | <el-form | 10 | <el-form |
| 10 | - class="fedexFormStyle" | 11 | + class="fedexFormStyle fedexFormEditStyle" |
| 11 | ref="editForm" | 12 | ref="editForm" |
| 12 | :model="formData" | 13 | :model="formData" |
| 13 | :rules="formRules" | 14 | :rules="formRules" |
| ... | @@ -83,6 +84,7 @@ | ... | @@ -83,6 +84,7 @@ |
| 83 | type="text" | 84 | type="text" |
| 84 | id="inputInner--declareCustomsCode" | 85 | id="inputInner--declareCustomsCode" |
| 85 | v-model="formData.declareCustomsCode" | 86 | v-model="formData.declareCustomsCode" |
| 87 | + filterable | ||
| 86 | clearable | 88 | clearable |
| 87 | placeholder="" | 89 | placeholder="" |
| 88 | > | 90 | > |
| ... | @@ -183,6 +185,7 @@ | ... | @@ -183,6 +185,7 @@ |
| 183 | id="inputInner--appType" | 185 | id="inputInner--appType" |
| 184 | resize="none" | 186 | resize="none" |
| 185 | v-model="formData.appType" | 187 | v-model="formData.appType" |
| 188 | + disabled | ||
| 186 | clearable | 189 | clearable |
| 187 | placeholder="" | 190 | placeholder="" |
| 188 | ></el-input> | 191 | ></el-input> |
| ... | @@ -445,10 +448,10 @@ | ... | @@ -445,10 +448,10 @@ |
| 445 | ></el-input> | 448 | ></el-input> |
| 446 | </Formitem> | 449 | </Formitem> |
| 447 | </el-col> | 450 | </el-col> |
| 448 | - <el-col :span="3"> | 451 | + <el-col :span="9"> |
| 449 | <Formitem label="备注" prop="remark"> | 452 | <Formitem label="备注" prop="remark"> |
| 450 | <el-input | 453 | <el-input |
| 451 | - type="text" | 454 | + type="textarea" |
| 452 | class="inputShadow" | 455 | class="inputShadow" |
| 453 | id="inputInner--remark" | 456 | id="inputInner--remark" |
| 454 | resize="none" | 457 | resize="none" |
| ... | @@ -460,6 +463,11 @@ | ... | @@ -460,6 +463,11 @@ |
| 460 | </el-col> | 463 | </el-col> |
| 461 | </el-row> | 464 | </el-row> |
| 462 | </el-form> | 465 | </el-form> |
| 466 | + </section> | ||
| 467 | + <div class="fold-unfold"> | ||
| 468 | + <img v-if="isFold" src="@/assets/images/fold.png" @click="()=>isFold = false" alt=""> | ||
| 469 | + <img v-if="!isFold" src="@/assets/images/unfold.png" @click="()=>isFold = true" alt=""> | ||
| 470 | + </div> | ||
| 463 | <div class="entryTitle" style="margin-top: 10px">商品明细</div> | 471 | <div class="entryTitle" style="margin-top: 10px">商品明细</div> |
| 464 | <section style="position:relative"> | 472 | <section style="position:relative"> |
| 465 | <Table | 473 | <Table |
| ... | @@ -523,7 +531,9 @@ | ... | @@ -523,7 +531,9 @@ |
| 523 | ebcDataList:[], | 531 | ebcDataList:[], |
| 524 | declareCustomsDataList:[], | 532 | declareCustomsDataList:[], |
| 525 | declareId: null, | 533 | declareId: null, |
| 526 | - formData: {}, | 534 | + formData: { |
| 535 | + appType:9610 | ||
| 536 | + }, | ||
| 527 | formRules:{ | 537 | formRules:{ |
| 528 | ebccode: [ | 538 | ebccode: [ |
| 529 | { required: true, message: '请选择电商企业', trigger: 'change' }, | 539 | { required: true, message: '请选择电商企业', trigger: 'change' }, |
| ... | @@ -555,9 +565,6 @@ | ... | @@ -555,9 +565,6 @@ |
| 555 | mainGoodsInfo: [ | 565 | mainGoodsInfo: [ |
| 556 | { required: true, message: '请输入主要物品信息', trigger: 'blur' } | 566 | { required: true, message: '请输入主要物品信息', trigger: 'blur' } |
| 557 | ], | 567 | ], |
| 558 | - appType: [ | ||
| 559 | - { required: true, message: '请选择贸易方式', trigger: 'change' } | ||
| 560 | - ], | ||
| 561 | flightNumber: [ | 568 | flightNumber: [ |
| 562 | { required: true, message: '请输入航班号', trigger: 'blur' } | 569 | { required: true, message: '请输入航班号', trigger: 'blur' } |
| 563 | ], | 570 | ], |
| ... | @@ -724,7 +731,7 @@ | ... | @@ -724,7 +731,7 @@ |
| 724 | }, | 731 | }, |
| 725 | logtableType: true, | 732 | logtableType: true, |
| 726 | expandRowKeys:[], | 733 | expandRowKeys:[], |
| 727 | - | 734 | + isFold: false |
| 728 | 735 | ||
| 729 | }; | 736 | }; |
| 730 | }, | 737 | }, |
| ... | @@ -771,6 +778,7 @@ | ... | @@ -771,6 +778,7 @@ |
| 771 | console.log(1111, res) | 778 | console.log(1111, res) |
| 772 | if (res.code == 200) { | 779 | if (res.code == 200) { |
| 773 | this.formData = res.data.declare | 780 | this.formData = res.data.declare |
| 781 | + this.formData.appType=9610 | ||
| 774 | this.formData.orderNo = this.formData.orderno | 782 | this.formData.orderNo = this.formData.orderno |
| 775 | this.detailData = res.data.product.length ? res.data.product.map((item, index) =>{ | 783 | this.detailData = res.data.product.length ? res.data.product.map((item, index) =>{ |
| 776 | item.gnum = index+1 | 784 | item.gnum = index+1 |
| ... | @@ -849,11 +857,12 @@ | ... | @@ -849,11 +857,12 @@ |
| 849 | 857 | ||
| 850 | //提交更新数据 | 858 | //提交更新数据 |
| 851 | submitEditedReportDatas(){ | 859 | submitEditedReportDatas(){ |
| 860 | + this.$refs.editForm.validate((valid) => { | ||
| 861 | + if (valid) { | ||
| 852 | let data = { | 862 | let data = { |
| 853 | declare: this.formData, | 863 | declare: this.formData, |
| 854 | product: this.detailData | 864 | product: this.detailData |
| 855 | } | 865 | } |
| 856 | - | ||
| 857 | updateDeclareData(data).then(res =>{ | 866 | updateDeclareData(data).then(res =>{ |
| 858 | if (res.code == 200) { | 867 | if (res.code == 200) { |
| 859 | this.msgSuccess("数据更新成功"); | 868 | this.msgSuccess("数据更新成功"); |
| ... | @@ -865,6 +874,10 @@ | ... | @@ -865,6 +874,10 @@ |
| 865 | }).catch(err =>{ | 874 | }).catch(err =>{ |
| 866 | console.log(err) | 875 | console.log(err) |
| 867 | }) | 876 | }) |
| 877 | + } else { | ||
| 878 | + return false; | ||
| 879 | + } | ||
| 880 | + }); | ||
| 868 | }, | 881 | }, |
| 869 | //取消编辑 | 882 | //取消编辑 |
| 870 | cancelEditedReportDatas(){ | 883 | cancelEditedReportDatas(){ |
| ... | @@ -926,5 +939,23 @@ | ... | @@ -926,5 +939,23 @@ |
| 926 | } | 939 | } |
| 927 | } | 940 | } |
| 928 | } | 941 | } |
| 942 | + .fedexFormEditStyle .el-form-item:has(.formError) { | ||
| 943 | + margin-bottom: 30px !important; | ||
| 944 | + } | ||
| 945 | + .fedexFormEditStyle .el-form-item .formError{ | ||
| 946 | + padding:0 0.9375rem !important; | ||
| 947 | + } | ||
| 948 | + .partsHidden{ | ||
| 949 | + height: 164px; | ||
| 950 | + overflow: hidden; | ||
| 951 | + } | ||
| 952 | + .fold-unfold{ | ||
| 953 | + display: flex; | ||
| 954 | + justify-content: center; | ||
| 955 | + padding-top:8px; | ||
| 956 | + img{ | ||
| 957 | + width: 22px; | ||
| 958 | + } | ||
| 959 | + } | ||
| 929 | </style> | 960 | </style> |
| 930 | 961 | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
src/views/reportingData/batchModify.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <el-dialog | ||
| 3 | + class="entryDialog classCUploadDialog" | ||
| 4 | + title="批量修改" | ||
| 5 | + :visible.sync="batchModifyVisible" | ||
| 6 | + :show-close="false" | ||
| 7 | + width="60%" | ||
| 8 | + :close-on-click-modal="false" | ||
| 9 | + > | ||
| 10 | + <div> | ||
| 11 | + <el-form class="fedexFormStyle" | ||
| 12 | + ref="batchModifyForm" | ||
| 13 | + :model="batchModifyFormData" | ||
| 14 | + :rules="batchModifyFormRules" | ||
| 15 | + label-position="left" | ||
| 16 | + size="small" | ||
| 17 | + > | ||
| 18 | + <Formitem label="修改数据" prop="modifyData"> | ||
| 19 | + <el-select | ||
| 20 | + type="text" | ||
| 21 | + v-model="batchModifyFormData.modifyData" | ||
| 22 | + clearable | ||
| 23 | + placeholder="" | ||
| 24 | + > | ||
| 25 | + <el-option | ||
| 26 | + v-for="(item, index) in modifyDataList" | ||
| 27 | + :key="index" | ||
| 28 | + :label="item.name" | ||
| 29 | + :value="item.value" | ||
| 30 | + ></el-option> | ||
| 31 | + </el-select> | ||
| 32 | + </Formitem> | ||
| 33 | + <Formitem label="修改内容" prop="modifyContent"> | ||
| 34 | + <el-input | ||
| 35 | + type="text" | ||
| 36 | + class="inputShadow" | ||
| 37 | + resize="none" | ||
| 38 | + v-model="batchModifyFormData.modifyContent" | ||
| 39 | + clearable | ||
| 40 | + placeholder="请输入修改内容" | ||
| 41 | + ></el-input> | ||
| 42 | + </Formitem> | ||
| 43 | + </el-form> | ||
| 44 | + </div> | ||
| 45 | + <div class="dialogOption entrySave revokeOperation"> | ||
| 46 | + <el-button | ||
| 47 | + class="entrySaveButton entrySaveButton-background revokeSubmitBtn" | ||
| 48 | + type="primary" | ||
| 49 | + @click="formSubmit" | ||
| 50 | + >确定</el-button> | ||
| 51 | + <el-button | ||
| 52 | + class="entrySaveButton" | ||
| 53 | + @click="cancelModify" | ||
| 54 | + >关闭</el-button> | ||
| 55 | + </div> | ||
| 56 | + </el-dialog> | ||
| 57 | + </template> | ||
| 58 | + | ||
| 59 | + <script> | ||
| 60 | + import { bathDeclareDate } from "@/api/declareData-api.js"; | ||
| 61 | + export default { | ||
| 62 | + props: { | ||
| 63 | + showDialog: { | ||
| 64 | + type: Boolean, | ||
| 65 | + default: false, | ||
| 66 | + }, | ||
| 67 | + selectedDatas:{ | ||
| 68 | + type:Array, | ||
| 69 | + default:() => [] | ||
| 70 | + }, | ||
| 71 | + }, | ||
| 72 | + data() { | ||
| 73 | + return { | ||
| 74 | + batchModifyVisible:false, | ||
| 75 | + batchModifyFormData:{ | ||
| 76 | + modifyData:'', | ||
| 77 | + modifyContent:'' | ||
| 78 | + }, | ||
| 79 | + batchModifyFormRules: { | ||
| 80 | + modifyData: [{ required: true, message: '请选择修改数据', trigger: 'change' }], | ||
| 81 | + modifyContent: [{ required: true, message: '请输入修改内容', trigger: 'blur' }], | ||
| 82 | + }, | ||
| 83 | + modifyDataList:[ | ||
| 84 | + {name:'提运单号',value:'BILLNO'}, | ||
| 85 | + {name:'航班航次号',value:'FLIGHT_NUMBER'}, | ||
| 86 | + ] | ||
| 87 | + }; | ||
| 88 | + }, | ||
| 89 | + watch: { | ||
| 90 | + showDialog(val) { | ||
| 91 | + if (val) { | ||
| 92 | + this.batchModifyVisible = val | ||
| 93 | + this.batchModifyFormData.modifyData="" | ||
| 94 | + this.batchModifyFormData.modifyContent="" | ||
| 95 | + } | ||
| 96 | + }, | ||
| 97 | + }, | ||
| 98 | + created() { | ||
| 99 | + }, | ||
| 100 | + methods: { | ||
| 101 | + formSubmit(){ | ||
| 102 | + this.$refs.batchModifyForm.validate((valid) => { | ||
| 103 | + if (valid) { | ||
| 104 | + let obj = { | ||
| 105 | + declareIds: [], | ||
| 106 | + modifyData: this.batchModifyFormData.modifyData, | ||
| 107 | + modifyContent: this.batchModifyFormData.modifyContent, | ||
| 108 | + }; | ||
| 109 | + this.selectedDatas.forEach((item) => { | ||
| 110 | + obj.declareIds.push(item.declareId); | ||
| 111 | + }); | ||
| 112 | + console.log('datas==', obj) | ||
| 113 | + bathDeclareDate(obj).then((res) => { | ||
| 114 | + if (res.code === "200") { | ||
| 115 | + this.msgSuccess('批量修改成功') | ||
| 116 | + this.cancelModify() | ||
| 117 | + } else { | ||
| 118 | + this.alertWarningMsg(res.message); | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + }) | ||
| 122 | + .catch((err) => { | ||
| 123 | + console.log(err); | ||
| 124 | + this.alertWarningMsg(err.message); | ||
| 125 | + this.cancelModify() | ||
| 126 | + }); | ||
| 127 | + } else { | ||
| 128 | + return false; | ||
| 129 | + } | ||
| 130 | + }); | ||
| 131 | + }, | ||
| 132 | + | ||
| 133 | + cancelModify(){ | ||
| 134 | + this.batchModifyVisible = false | ||
| 135 | + this.$emit('cancelBatchModify') | ||
| 136 | + } | ||
| 137 | + }, | ||
| 138 | + }; | ||
| 139 | + </script> | ||
| 140 | + | ||
| 141 | + <style lang="scss" scoped> | ||
| 142 | + @import "@/assets/styles/variables.scss"; | ||
| 143 | + .modelItem { | ||
| 144 | + width: 100%; | ||
| 145 | + .modelItem-title { | ||
| 146 | + display: flex; | ||
| 147 | + justify-content: space-between; | ||
| 148 | + margin-bottom: 5px; | ||
| 149 | + font-size: 14px; | ||
| 150 | + font-weight: 600; | ||
| 151 | + color: #333; | ||
| 152 | + } | ||
| 153 | + } | ||
| 154 | + .revokeOperation{ | ||
| 155 | + margin-bottom:25px; | ||
| 156 | + .revokeSubmitBtn{ | ||
| 157 | + margin-right: 30px; | ||
| 158 | + } | ||
| 159 | + } | ||
| 160 | + </style> | ||
| 161 | + | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
src/views/reportingData/exportDialog.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <el-dialog | ||
| 3 | + class="entryDialog classCUploadDialog" | ||
| 4 | + title="申报数据导出" | ||
| 5 | + :visible.sync="datasExportVisible" | ||
| 6 | + :show-close="false" | ||
| 7 | + width="60%" | ||
| 8 | + :close-on-click-modal="false" | ||
| 9 | + > | ||
| 10 | + <div> | ||
| 11 | + <el-form class="fedexFormStyle" | ||
| 12 | + ref="selectTemplateForm" | ||
| 13 | + :model="selectTemplateFormData" | ||
| 14 | + :rules="selectTemplateFormRules" | ||
| 15 | + label-position="left" | ||
| 16 | + size="small" | ||
| 17 | + > | ||
| 18 | + <Formitem label="模板类型" prop="dataSource"> | ||
| 19 | + <el-select | ||
| 20 | + type="text" | ||
| 21 | + v-model="selectTemplateFormData.dataSource" | ||
| 22 | + clearable | ||
| 23 | + placeholder="" | ||
| 24 | + > | ||
| 25 | + <el-option | ||
| 26 | + v-for="(item, index) in $store.getters.dict.TEMPLATE_TYPE" | ||
| 27 | + :key="index" | ||
| 28 | + :label="item.itemChineseName" | ||
| 29 | + :value="item.itemValue" | ||
| 30 | + ></el-option> | ||
| 31 | + </el-select> | ||
| 32 | + </Formitem> | ||
| 33 | + </el-form> | ||
| 34 | + </div> | ||
| 35 | + <div class="dialogOption entrySave revokeOperation"> | ||
| 36 | + <el-button | ||
| 37 | + class="entrySaveButton entrySaveButton-background revokeSubmitBtn" | ||
| 38 | + type="primary" | ||
| 39 | + @click="startDownload" | ||
| 40 | + >确定</el-button> | ||
| 41 | + <el-button | ||
| 42 | + class="entrySaveButton" | ||
| 43 | + @click="cancelDownload" | ||
| 44 | + >关闭</el-button> | ||
| 45 | + </div> | ||
| 46 | + </el-dialog> | ||
| 47 | + </template> | ||
| 48 | + | ||
| 49 | + <script> | ||
| 50 | + export default { | ||
| 51 | + props: { | ||
| 52 | + showDialog: { | ||
| 53 | + type: Boolean, | ||
| 54 | + default: false, | ||
| 55 | + } | ||
| 56 | + }, | ||
| 57 | + data() { | ||
| 58 | + return { | ||
| 59 | + datasExportVisible:false, | ||
| 60 | + selectTemplateFormData:{ | ||
| 61 | + dataSource:'' | ||
| 62 | + }, | ||
| 63 | + selectTemplateFormRules: { | ||
| 64 | + dataSource: [ | ||
| 65 | + { required: true, message: '请选择模板类型', trigger: 'change' } | ||
| 66 | + ], | ||
| 67 | + } | ||
| 68 | + }; | ||
| 69 | + }, | ||
| 70 | + watch: { | ||
| 71 | + showDialog(val) { | ||
| 72 | + if (val) { | ||
| 73 | + this.datasExportVisible = val | ||
| 74 | + this.selectTemplateFormData.dataSource="" | ||
| 75 | + } | ||
| 76 | + }, | ||
| 77 | + }, | ||
| 78 | + created() { | ||
| 79 | + }, | ||
| 80 | + methods: { | ||
| 81 | + startDownload(){ | ||
| 82 | + this.$refs.selectTemplateForm.validate((valid) => { | ||
| 83 | + if (valid) { | ||
| 84 | + this.$emit('startDatasExport', this.selectTemplateFormData.dataSource) | ||
| 85 | + } else { | ||
| 86 | + return false; | ||
| 87 | + } | ||
| 88 | + }); | ||
| 89 | + }, | ||
| 90 | + | ||
| 91 | + cancelDownload(){ | ||
| 92 | + this.datasExportVisible = false | ||
| 93 | + this.selectTemplateFormData.dataSource="" | ||
| 94 | + this.$emit('cancelDatasExport') | ||
| 95 | + } | ||
| 96 | + }, | ||
| 97 | + }; | ||
| 98 | + </script> | ||
| 99 | + | ||
| 100 | + <style lang="scss" scoped> | ||
| 101 | + @import "@/assets/styles/variables.scss"; | ||
| 102 | + .modelItem { | ||
| 103 | + width: 100%; | ||
| 104 | + .modelItem-title { | ||
| 105 | + display: flex; | ||
| 106 | + justify-content: space-between; | ||
| 107 | + margin-bottom: 5px; | ||
| 108 | + font-size: 14px; | ||
| 109 | + font-weight: 600; | ||
| 110 | + color: #333; | ||
| 111 | + } | ||
| 112 | + } | ||
| 113 | + .revokeOperation{ | ||
| 114 | + margin-bottom:25px; | ||
| 115 | + .revokeSubmitBtn{ | ||
| 116 | + margin-right: 30px; | ||
| 117 | + } | ||
| 118 | + } | ||
| 119 | + </style> | ||
| 120 | + | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -128,6 +128,14 @@ | ... | @@ -128,6 +128,14 @@ |
| 128 | > | 128 | > |
| 129 | 导入模版下载 | 129 | 导入模版下载 |
| 130 | </el-button> | 130 | </el-button> |
| 131 | + <el-button | ||
| 132 | + class="entrySaveButton" | ||
| 133 | + size="small" | ||
| 134 | + icon="el-icon-edit" | ||
| 135 | + @click="batchModify" | ||
| 136 | + > | ||
| 137 | + 批量修改 | ||
| 138 | + </el-button> | ||
| 131 | </div> | 139 | </div> |
| 132 | <div class="optionButton-right"> | 140 | <div class="optionButton-right"> |
| 133 | <el-dropdown | 141 | <el-dropdown |
| ... | @@ -328,6 +336,21 @@ | ... | @@ -328,6 +336,21 @@ |
| 328 | :selectedDatas="selected" | 336 | :selectedDatas="selected" |
| 329 | :dropdownCode="dropdownCode" | 337 | :dropdownCode="dropdownCode" |
| 330 | @cancelRevoke="cancelRevoke" /> | 338 | @cancelRevoke="cancelRevoke" /> |
| 339 | + <TemplateDownloadDialog | ||
| 340 | + :showDialog="templateDownloadVisible" | ||
| 341 | + @cancelDownload="cancelDownload" | ||
| 342 | + /> | ||
| 343 | + <ExportDialog | ||
| 344 | + ref="exportDialog" | ||
| 345 | + :showDialog="datasExportVisible" | ||
| 346 | + @cancelDatasExport="cancelDatasExport" | ||
| 347 | + @startDatasExport="startDatasExport" | ||
| 348 | + /> | ||
| 349 | + <BatchModify | ||
| 350 | + :selectedDatas="selected" | ||
| 351 | + :showDialog="batchModifyVisible" | ||
| 352 | + @cancelBatchModify="cancelBatchModify" | ||
| 353 | + /> | ||
| 331 | </div> | 354 | </div> |
| 332 | </template> | 355 | </template> |
| 333 | 356 | ||
| ... | @@ -345,11 +368,17 @@ import { | ... | @@ -345,11 +368,17 @@ import { |
| 345 | import { getDictData } from '@/api/system/dict-api.js' | 368 | import { getDictData } from '@/api/system/dict-api.js' |
| 346 | import DialogVue from "./dialog.vue"; | 369 | import DialogVue from "./dialog.vue"; |
| 347 | import RevokeDialog from "./revokeDialog.vue"; | 370 | import RevokeDialog from "./revokeDialog.vue"; |
| 371 | +import TemplateDownloadDialog from "./templateDownloadDialog.vue"; | ||
| 372 | +import ExportDialog from "./exportDialog.vue"; | ||
| 373 | +import BatchModify from "./batchModify.vue"; | ||
| 348 | export default { | 374 | export default { |
| 349 | name: "ReportingData", | 375 | name: "ReportingData", |
| 350 | components: { | 376 | components: { |
| 351 | DialogVue, | 377 | DialogVue, |
| 352 | - RevokeDialog | 378 | + RevokeDialog, |
| 379 | + TemplateDownloadDialog, | ||
| 380 | + ExportDialog, | ||
| 381 | + BatchModify | ||
| 353 | }, | 382 | }, |
| 354 | data() { | 383 | data() { |
| 355 | return { | 384 | return { |
| ... | @@ -474,9 +503,10 @@ export default { | ... | @@ -474,9 +503,10 @@ export default { |
| 474 | outerVisible: false, | 503 | outerVisible: false, |
| 475 | dropdownName: "一键申报", | 504 | dropdownName: "一键申报", |
| 476 | dropdownCode: "full", | 505 | dropdownCode: "full", |
| 477 | - | ||
| 478 | - | ||
| 479 | revokeVisible:false, | 506 | revokeVisible:false, |
| 507 | + templateDownloadVisible:false, | ||
| 508 | + datasExportVisible:false, | ||
| 509 | + batchModifyVisible:false | ||
| 480 | }; | 510 | }; |
| 481 | }, | 511 | }, |
| 482 | created() { | 512 | created() { |
| ... | @@ -553,27 +583,41 @@ export default { | ... | @@ -553,27 +583,41 @@ export default { |
| 553 | //下载模板 | 583 | //下载模板 |
| 554 | dwonloadModelFile() { | 584 | dwonloadModelFile() { |
| 555 | this.loadings.dwonloadModelLoading = true; | 585 | this.loadings.dwonloadModelLoading = true; |
| 586 | + this.$store.dispatch("GetInfo").then(res =>{ | ||
| 587 | + console.log('res====', res) | ||
| 588 | + if (res.code == 200) { | ||
| 589 | + console.log('port===', res.data?.port?.split(',')) | ||
| 590 | + if (res.data?.port?.split(',').length == 2) { | ||
| 591 | + this.templateDownloadVisible = true | ||
| 592 | + } else { | ||
| 556 | this.fileDownload | 593 | this.fileDownload |
| 557 | .downLoadZip( | 594 | .downLoadZip( |
| 558 | "api", | 595 | "api", |
| 559 | "declareDataModel", | 596 | "declareDataModel", |
| 560 | "申报数据模板.xlsx", | 597 | "申报数据模板.xlsx", |
| 561 | "xlsx", | 598 | "xlsx", |
| 562 | - "get" | 599 | + "get", |
| 600 | + {type: res.data?.port} | ||
| 563 | ) | 601 | ) |
| 564 | .finally(() => { | 602 | .finally(() => { |
| 565 | - this.loadings.dwonloadModelLoading = false; | 603 | + this.cancelDownload() |
| 566 | }); | 604 | }); |
| 605 | + } | ||
| 606 | + } | ||
| 607 | + }).catch(err =>{ | ||
| 608 | + console.log(err) | ||
| 609 | + }) | ||
| 610 | + | ||
| 567 | }, | 611 | }, |
| 568 | - //导出 | 612 | + |
| 569 | - downloadData() { | 613 | + datasDownload(dataSource){ |
| 570 | - this.loadings.exportDeclareLoading = true; | ||
| 571 | let obj = { | 614 | let obj = { |
| 572 | billNo: this.sreachFormData.billNo, | 615 | billNo: this.sreachFormData.billNo, |
| 573 | declareId: [], | 616 | declareId: [], |
| 574 | logisticsNo: this.sreachFormData.logisticsNo, | 617 | logisticsNo: this.sreachFormData.logisticsNo, |
| 575 | orderNo: this.sreachFormData.orderNo, | 618 | orderNo: this.sreachFormData.orderNo, |
| 576 | receiptStatus: this.sreachFormData.receiptStatus, | 619 | receiptStatus: this.sreachFormData.receiptStatus, |
| 620 | + dataSource | ||
| 577 | }; | 621 | }; |
| 578 | obj.startCreateTime = ""; | 622 | obj.startCreateTime = ""; |
| 579 | obj.endCreateTime = ""; | 623 | obj.endCreateTime = ""; |
| ... | @@ -591,15 +635,40 @@ export default { | ... | @@ -591,15 +635,40 @@ export default { |
| 591 | // console.log(res.message); | 635 | // console.log(res.message); |
| 592 | // this.alertWarningMsg(res.message); | 636 | // this.alertWarningMsg(res.message); |
| 593 | // } | 637 | // } |
| 594 | - this.loadings.exportDeclareLoading = false; | 638 | + |
| 595 | }).catch((err)=>{ | 639 | }).catch((err)=>{ |
| 596 | console.log(err); | 640 | console.log(err); |
| 597 | this.alertErrorMsg(err); | 641 | this.alertErrorMsg(err); |
| 642 | + }).finally(res =>{ | ||
| 598 | this.loadings.exportDeclareLoading = false; | 643 | this.loadings.exportDeclareLoading = false; |
| 644 | + this.datasExportVisible = false | ||
| 645 | + this.$refs.exportDialog.datasExportVisible = false | ||
| 599 | }) | 646 | }) |
| 600 | - | ||
| 601 | }, | 647 | }, |
| 602 | - | 648 | + //导出 |
| 649 | + downloadData() { | ||
| 650 | + this.loadings.exportDeclareLoading = true; | ||
| 651 | + this.$store.dispatch("GetInfo").then(res =>{ | ||
| 652 | + console.log('res====', res) | ||
| 653 | + if (res.code == 200) { | ||
| 654 | + console.log('port===', res.data?.port?.split(',')) | ||
| 655 | + if (res.data?.port?.split(',').length == 2) { | ||
| 656 | + this.datasExportVisible = true | ||
| 657 | + } else { | ||
| 658 | + this.datasDownload(res.data?.port) | ||
| 659 | + } | ||
| 660 | + } | ||
| 661 | + }).catch(err =>{ | ||
| 662 | + console.log(err) | ||
| 663 | + }) | ||
| 664 | + }, | ||
| 665 | + startDatasExport(dataSource){ | ||
| 666 | + this.datasDownload(dataSource) | ||
| 667 | + }, | ||
| 668 | + cancelDatasExport(){ | ||
| 669 | + this.datasExportVisible = false | ||
| 670 | + this.loadings.exportDeclareLoading = false; | ||
| 671 | + }, | ||
| 603 | 672 | ||
| 604 | //申报 | 673 | //申报 |
| 605 | declareData() { | 674 | declareData() { |
| ... | @@ -800,7 +869,21 @@ export default { | ... | @@ -800,7 +869,21 @@ export default { |
| 800 | params: { data: val }, | 869 | params: { data: val }, |
| 801 | }); | 870 | }); |
| 802 | }, | 871 | }, |
| 803 | - | 872 | + cancelDownload(){ |
| 873 | + this.loadings.dwonloadModelLoading = false; | ||
| 874 | + this.templateDownloadVisible = false | ||
| 875 | + }, | ||
| 876 | + batchModify(){ | ||
| 877 | + if (!this.selected.length) { | ||
| 878 | + this.alertWarningMsg("请选择数据!"); | ||
| 879 | + return | ||
| 880 | + } | ||
| 881 | + this.batchModifyVisible = true | ||
| 882 | + }, | ||
| 883 | + cancelBatchModify(){ | ||
| 884 | + this.batchModifyVisible = false | ||
| 885 | + this.search(0); | ||
| 886 | + } | ||
| 804 | }, | 887 | }, |
| 805 | }; | 888 | }; |
| 806 | </script> | 889 | </script> | ... | ... |
| 1 | +<template> | ||
| 2 | + <el-dialog | ||
| 3 | + class="entryDialog classCUploadDialog" | ||
| 4 | + title="导入模板下载" | ||
| 5 | + :visible.sync="downloadTemplateVisible" | ||
| 6 | + :show-close="false" | ||
| 7 | + width="60%" | ||
| 8 | + :close-on-click-modal="false" | ||
| 9 | + > | ||
| 10 | + <div> | ||
| 11 | + <el-form class="fedexFormStyle" | ||
| 12 | + ref="selectTemplateForm" | ||
| 13 | + :model="selectTemplateFormData" | ||
| 14 | + :rules="selectTemplateFormRules" | ||
| 15 | + label-position="left" | ||
| 16 | + size="small" | ||
| 17 | + > | ||
| 18 | + <Formitem label="模板类型" prop="type"> | ||
| 19 | + <el-select | ||
| 20 | + type="text" | ||
| 21 | + v-model="selectTemplateFormData.type" | ||
| 22 | + clearable | ||
| 23 | + placeholder="" | ||
| 24 | + > | ||
| 25 | + <el-option | ||
| 26 | + v-for="(item, index) in $store.getters.dict.TEMPLATE_TYPE" | ||
| 27 | + :key="index" | ||
| 28 | + :label="item.itemChineseName" | ||
| 29 | + :value="item.itemValue" | ||
| 30 | + ></el-option> | ||
| 31 | + </el-select> | ||
| 32 | + </Formitem> | ||
| 33 | + </el-form> | ||
| 34 | + </div> | ||
| 35 | + <div class="dialogOption entrySave revokeOperation"> | ||
| 36 | + <el-button | ||
| 37 | + class="entrySaveButton entrySaveButton-background revokeSubmitBtn" | ||
| 38 | + type="primary" | ||
| 39 | + @click="startDownload" | ||
| 40 | + >确定</el-button> | ||
| 41 | + <el-button | ||
| 42 | + class="entrySaveButton" | ||
| 43 | + @click="cancelDownload" | ||
| 44 | + >关闭</el-button> | ||
| 45 | + </div> | ||
| 46 | + </el-dialog> | ||
| 47 | + </template> | ||
| 48 | + | ||
| 49 | + <script> | ||
| 50 | + export default { | ||
| 51 | + props: { | ||
| 52 | + showDialog: { | ||
| 53 | + type: Boolean, | ||
| 54 | + default: false, | ||
| 55 | + } | ||
| 56 | + }, | ||
| 57 | + data() { | ||
| 58 | + return { | ||
| 59 | + downloadTemplateVisible:false, | ||
| 60 | + selectTemplateFormData:{ | ||
| 61 | + type:'' | ||
| 62 | + }, | ||
| 63 | + selectTemplateFormRules: { | ||
| 64 | + type: [ | ||
| 65 | + { required: true, message: '请选择模板类型', trigger: 'change' } | ||
| 66 | + ], | ||
| 67 | + } | ||
| 68 | + }; | ||
| 69 | + }, | ||
| 70 | + watch: { | ||
| 71 | + showDialog(val) { | ||
| 72 | + if (val) { | ||
| 73 | + this.downloadTemplateVisible = val | ||
| 74 | + } | ||
| 75 | + }, | ||
| 76 | + }, | ||
| 77 | + created() { | ||
| 78 | + this.selectTemplateFormData.type="" | ||
| 79 | + }, | ||
| 80 | + methods: { | ||
| 81 | + startDownload(){ | ||
| 82 | + this.$refs.selectTemplateForm.validate((valid) => { | ||
| 83 | + if (valid) { | ||
| 84 | + console.log('datas==', this.selectTemplateFormData) | ||
| 85 | + this.fileDownload | ||
| 86 | + .downLoadZip( | ||
| 87 | + "api", | ||
| 88 | + "declareDataModel", | ||
| 89 | + "申报数据模板.xlsx", | ||
| 90 | + "xlsx", | ||
| 91 | + "get", | ||
| 92 | + {type: this.selectTemplateFormData.type} | ||
| 93 | + ) | ||
| 94 | + .finally(() => { | ||
| 95 | + this.cancelDownload() | ||
| 96 | + }); | ||
| 97 | + | ||
| 98 | + } else { | ||
| 99 | + return false; | ||
| 100 | + } | ||
| 101 | + }); | ||
| 102 | + }, | ||
| 103 | + | ||
| 104 | + cancelDownload(){ | ||
| 105 | + this.downloadTemplateVisible = false | ||
| 106 | + this.selectTemplateFormData.type="" | ||
| 107 | + this.$emit('cancelDownload') | ||
| 108 | + } | ||
| 109 | + }, | ||
| 110 | + }; | ||
| 111 | + </script> | ||
| 112 | + | ||
| 113 | + <style lang="scss" scoped> | ||
| 114 | + @import "@/assets/styles/variables.scss"; | ||
| 115 | + .modelItem { | ||
| 116 | + width: 100%; | ||
| 117 | + .modelItem-title { | ||
| 118 | + display: flex; | ||
| 119 | + justify-content: space-between; | ||
| 120 | + margin-bottom: 5px; | ||
| 121 | + font-size: 14px; | ||
| 122 | + font-weight: 600; | ||
| 123 | + color: #333; | ||
| 124 | + } | ||
| 125 | + } | ||
| 126 | + .revokeOperation{ | ||
| 127 | + margin-bottom:25px; | ||
| 128 | + .revokeSubmitBtn{ | ||
| 129 | + margin-right: 30px; | ||
| 130 | + } | ||
| 131 | + } | ||
| 132 | + </style> | ||
| 133 | + | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment