Showing
3 changed files
with
120 additions
and
44 deletions
| @@ -94,7 +94,8 @@ | @@ -94,7 +94,8 @@ | ||
| 94 | </el-form> | 94 | </el-form> |
| 95 | <el-row :gutter="10" class="mb8"> | 95 | <el-row :gutter="10" class="mb8"> |
| 96 | <el-col :span="1.5"> | 96 | <el-col :span="1.5"> |
| 97 | - <el-button type="primary" :disabled="scanCodeDisabled" plain icon="Plus" @click="handleAdd" | 97 | + <!-- :disabled="scanCodeDisabled" --> |
| 98 | + <el-button type="primary" plain icon="Plus" @click="handleAdd" | ||
| 98 | >扫码</el-button | 99 | >扫码</el-button |
| 99 | > | 100 | > |
| 100 | </el-col> | 101 | </el-col> |
| @@ -244,6 +245,7 @@ | @@ -244,6 +245,7 @@ | ||
| 244 | <el-select | 245 | <el-select |
| 245 | v-model="form.deviceTypeId" | 246 | v-model="form.deviceTypeId" |
| 246 | placeholder="请选择类型" | 247 | placeholder="请选择类型" |
| 248 | + :disabled="deviceTypeList.length == 1" | ||
| 247 | @change="handleDeviceType" | 249 | @change="handleDeviceType" |
| 248 | > | 250 | > |
| 249 | <el-option | 251 | <el-option |
| @@ -317,7 +319,7 @@ | @@ -317,7 +319,7 @@ | ||
| 317 | <script setup> | 319 | <script setup> |
| 318 | import { getToken } from "@/utils/auth"; | 320 | import { getToken } from "@/utils/auth"; |
| 319 | import { formatDate } from "@/utils/index"; | 321 | import { formatDate } from "@/utils/index"; |
| 320 | -import { nextTick, onMounted, onUnmounted, ref,computed } from "vue"; | 322 | +import { nextTick, onMounted, onUnmounted, ref, computed } from "vue"; |
| 321 | import { | 323 | import { |
| 322 | scanSpecQueryList, | 324 | scanSpecQueryList, |
| 323 | deviceTypeQueryList, | 325 | deviceTypeQueryList, |
| @@ -409,7 +411,7 @@ const deviceTypeList = ref([]); | @@ -409,7 +411,7 @@ const deviceTypeList = ref([]); | ||
| 409 | 411 | ||
| 410 | const searchBusinessLoading = ref(false); | 412 | const searchBusinessLoading = ref(false); |
| 411 | 413 | ||
| 412 | -const scanCodeDisabled = computed(() => dataList.value.length >= 1) | 414 | +const scanCodeDisabled = computed(() => dataList.value.length >= 1); |
| 413 | 415 | ||
| 414 | const getDeviceTypeList = () => { | 416 | const getDeviceTypeList = () => { |
| 415 | deviceTypeQueryList( | 417 | deviceTypeQueryList( |
| @@ -417,6 +419,12 @@ const getDeviceTypeList = () => { | @@ -417,6 +419,12 @@ const getDeviceTypeList = () => { | ||
| 417 | ).then((res) => { | 419 | ).then((res) => { |
| 418 | console.log(res, 111); | 420 | console.log(res, 111); |
| 419 | deviceTypeList.value = res.data; | 421 | deviceTypeList.value = res.data; |
| 422 | + // 编辑的时候 只允许一个类型 | ||
| 423 | + if (proxy.$route.query.scanTaskId && dataList.value.length > 0) { | ||
| 424 | + deviceTypeList.value = deviceTypeList.value.filter( | ||
| 425 | + (item) => dataList.value[0].deviceTypeId === item.id | ||
| 426 | + ); | ||
| 427 | + } | ||
| 420 | }); | 428 | }); |
| 421 | }; | 429 | }; |
| 422 | 430 | ||
| @@ -471,10 +479,30 @@ function submitForm() { | @@ -471,10 +479,30 @@ function submitForm() { | ||
| 471 | // open.value = false; | 479 | // open.value = false; |
| 472 | // getList(); | 480 | // getList(); |
| 473 | // }); | 481 | // }); |
| 482 | + // 判断是否是第一个 | ||
| 483 | + const isFirstOne = | ||
| 484 | + dataList.value.length > 0 | ||
| 485 | + ? form.value.id === dataList.value[0].id | ||
| 486 | + : false; | ||
| 487 | + | ||
| 488 | + // 安全地获取要比较的businessId | ||
| 489 | + let compareBusinessId = null; | ||
| 490 | + if (dataList.value.length === 0) { | ||
| 491 | + // 数组为空,无法比较 | ||
| 492 | + compareBusinessId = null; | ||
| 493 | + } else if (isFirstOne && dataList.value.length > 1) { | ||
| 494 | + // 如果是第一个元素且数组有第二个元素,比较第二个元素的businessId | ||
| 495 | + compareBusinessId = dataList.value[1]?.businessId; | ||
| 496 | + } else { | ||
| 497 | + // 其他情况比较第一个元素的businessId | ||
| 498 | + compareBusinessId = dataList.value[0]?.businessId; | ||
| 499 | + } | ||
| 474 | 500 | ||
| 475 | if ( | 501 | if ( |
| 476 | - dataList.value.length <= 1 || | ||
| 477 | - form.value.businessId === dataList.value[0].businessId | 502 | + dataList.value.length == 0 || |
| 503 | + isFirstOne || | ||
| 504 | + (compareBusinessId !== null && | ||
| 505 | + form.value.businessId === compareBusinessId) | ||
| 478 | ) { | 506 | ) { |
| 479 | const localStoreTableData = localStorage.getItem("localStoreTableData") | 507 | const localStoreTableData = localStorage.getItem("localStoreTableData") |
| 480 | ? JSON.parse(localStorage.getItem("localStoreTableData")) | 508 | ? JSON.parse(localStorage.getItem("localStoreTableData")) |
| @@ -488,6 +516,7 @@ function submitForm() { | @@ -488,6 +516,7 @@ function submitForm() { | ||
| 488 | target.deviceTypeName = form.value.deviceTypeName; | 516 | target.deviceTypeName = form.value.deviceTypeName; |
| 489 | target.deviceTypeId = form.value.deviceTypeId; | 517 | target.deviceTypeId = form.value.deviceTypeId; |
| 490 | target.quantity = form.value.quantity; | 518 | target.quantity = form.value.quantity; |
| 519 | + target.businessId = form.value.businessId; | ||
| 491 | localStorage.setItem( | 520 | localStorage.setItem( |
| 492 | "localStoreTableData", | 521 | "localStoreTableData", |
| 493 | JSON.stringify(localStoreTableData) | 522 | JSON.stringify(localStoreTableData) |
| @@ -571,6 +600,10 @@ function handleAdd() { | @@ -571,6 +600,10 @@ function handleAdd() { | ||
| 571 | reset(); | 600 | reset(); |
| 572 | open.value = true; | 601 | open.value = true; |
| 573 | title.value = "扫码录入"; | 602 | title.value = "扫码录入"; |
| 603 | + if (deviceTypeList.value.length == 1) { | ||
| 604 | + form.value.deviceTypeId = deviceTypeList.value[0].id; | ||
| 605 | + form.value.deviceTypeName = deviceTypeList.value[0].name; | ||
| 606 | + } | ||
| 574 | nextTick(() => { | 607 | nextTick(() => { |
| 575 | setTimeout(() => { | 608 | setTimeout(() => { |
| 576 | barcodeRef.value.focus(); | 609 | barcodeRef.value.focus(); |
| @@ -619,8 +652,14 @@ const handleEdit = (row) => { | @@ -619,8 +652,14 @@ const handleEdit = (row) => { | ||
| 619 | ...row, | 652 | ...row, |
| 620 | }; | 653 | }; |
| 621 | if (proxy.$route.query.scanTaskId) { | 654 | if (proxy.$route.query.scanTaskId) { |
| 622 | - form.value.businessName = detailData.value.businessName; | ||
| 623 | - form.value.businessId = detailData.value.businessId; | 655 | + // form.value.businessName = detailData.value.businessName; |
| 656 | + // form.value.businessId = detailData.value.businessId; | ||
| 657 | + form.value.businessName = row.businessName; | ||
| 658 | + form.value.businessId = row.businessId; | ||
| 659 | + } | ||
| 660 | + if (deviceTypeList.value.length == 1) { | ||
| 661 | + form.value.deviceTypeId = deviceTypeList.value[0].id; | ||
| 662 | + form.value.deviceTypeName = deviceTypeList.value[0].name; | ||
| 624 | } | 663 | } |
| 625 | nextTick(() => { | 664 | nextTick(() => { |
| 626 | setTimeout(() => { | 665 | setTimeout(() => { |
| @@ -655,6 +694,7 @@ const confirmAddTask = () => { | @@ -655,6 +694,7 @@ const confirmAddTask = () => { | ||
| 655 | quantity: item.quantity, | 694 | quantity: item.quantity, |
| 656 | })), | 695 | })), |
| 657 | }; | 696 | }; |
| 697 | + // 新增的时候 类型需保持一致 | ||
| 658 | if (proxy.$route.query.scanTaskId) { | 698 | if (proxy.$route.query.scanTaskId) { |
| 659 | data.id = detailData.value.id; | 699 | data.id = detailData.value.id; |
| 660 | data.name = taskForm.value.taskName; | 700 | data.name = taskForm.value.taskName; |
| @@ -675,36 +715,70 @@ const confirmAddTask = () => { | @@ -675,36 +715,70 @@ const confirmAddTask = () => { | ||
| 675 | quantity: item.quantity, | 715 | quantity: item.quantity, |
| 676 | })) | 716 | })) |
| 677 | ); | 717 | ); |
| 678 | - taskLoading.value = true; | ||
| 679 | - editScanTask(data) | ||
| 680 | - .then((response) => { | ||
| 681 | - proxy.$modal.msgSuccess("编辑任务成功!"); | ||
| 682 | - open.value = false; | ||
| 683 | - localStorage.removeItem("localStoreTableData"); | ||
| 684 | - goBack(); | ||
| 685 | - }) | ||
| 686 | - .finally(() => { | ||
| 687 | - taskLoading.value = false; | ||
| 688 | - }); | 718 | + const businessIdList = data.specList.map((item) => item.businessId); |
| 719 | + console.log(businessIdList, "businessIdList"); | ||
| 720 | + const businessIdFlag = businessIdList.every( | ||
| 721 | + (element) => element === businessIdList[0] | ||
| 722 | + ); | ||
| 723 | + if (businessIdFlag) { | ||
| 724 | + taskLoading.value = true; | ||
| 725 | + editScanTask(data) | ||
| 726 | + .then((response) => { | ||
| 727 | + proxy.$modal.msgSuccess("编辑任务成功!"); | ||
| 728 | + open.value = false; | ||
| 729 | + localStorage.removeItem("localStoreTableData"); | ||
| 730 | + goBack(); | ||
| 731 | + }) | ||
| 732 | + .finally(() => { | ||
| 733 | + taskLoading.value = false; | ||
| 734 | + }); | ||
| 735 | + } else { | ||
| 736 | + proxy.$modal.msgError( | ||
| 737 | + "营业厅需保持一致,请检查输入条码修改后重新提交!" | ||
| 738 | + ); | ||
| 739 | + } | ||
| 689 | } else { | 740 | } else { |
| 690 | - taskLoading.value = true; | ||
| 691 | - addScanTask(data) | ||
| 692 | - .then((response) => { | ||
| 693 | - proxy.$modal.msgSuccess("新增任务成功!"); | ||
| 694 | - open.value = false; | ||
| 695 | - localStorage.removeItem("localStoreTableData"); | ||
| 696 | - goBack(); | ||
| 697 | - }) | ||
| 698 | - .finally(() => { | ||
| 699 | - taskLoading.value = false; | ||
| 700 | - }); | 741 | + // 新增的时候 类型需保持一致 |
| 742 | + const specList = data.specList.map((item) => item.deviceTypeId); | ||
| 743 | + const specListFlag = specList.every( | ||
| 744 | + (element) => element === specList[0] | ||
| 745 | + ); | ||
| 746 | + console.log(data); | ||
| 747 | + console.log(specListFlag); | ||
| 748 | + console.log(specList); | ||
| 749 | + const businessIdList = data.specList.map((item) => item.businessId); | ||
| 750 | + console.log(businessIdList, "businessIdList"); | ||
| 751 | + const businessIdFlag = businessIdList.every( | ||
| 752 | + (element) => element === businessIdList[0] | ||
| 753 | + ); | ||
| 754 | + if (businessIdFlag) { | ||
| 755 | + if (specListFlag) { | ||
| 756 | + taskLoading.value = true; | ||
| 757 | + addScanTask(data) | ||
| 758 | + .then((response) => { | ||
| 759 | + proxy.$modal.msgSuccess("新增任务成功!"); | ||
| 760 | + open.value = false; | ||
| 761 | + localStorage.removeItem("localStoreTableData"); | ||
| 762 | + goBack(); | ||
| 763 | + }) | ||
| 764 | + .finally(() => { | ||
| 765 | + taskLoading.value = false; | ||
| 766 | + }); | ||
| 767 | + } else { | ||
| 768 | + proxy.$modal.msgError("类型需保持一致,请检查修改后重新提交!"); | ||
| 769 | + } | ||
| 770 | + } else { | ||
| 771 | + proxy.$modal.msgError( | ||
| 772 | + "营业厅需保持一致,请检查输入条码修改后重新提交!" | ||
| 773 | + ); | ||
| 774 | + } | ||
| 701 | } | 775 | } |
| 702 | } | 776 | } |
| 703 | }); | 777 | }); |
| 704 | }; | 778 | }; |
| 705 | 779 | ||
| 706 | // Query list | 780 | // Query list |
| 707 | -const getList = () => { | 781 | +const getList = (isTrigged) => { |
| 708 | let localStoreTableData = localStorage.getItem("localStoreTableData") | 782 | let localStoreTableData = localStorage.getItem("localStoreTableData") |
| 709 | ? JSON.parse(localStorage.getItem("localStoreTableData")) | 783 | ? JSON.parse(localStorage.getItem("localStoreTableData")) |
| 710 | : []; | 784 | : []; |
| @@ -714,16 +788,20 @@ const getList = () => { | @@ -714,16 +788,20 @@ const getList = () => { | ||
| 714 | })); | 788 | })); |
| 715 | if (!proxy.$route.query.scanTaskId) { | 789 | if (!proxy.$route.query.scanTaskId) { |
| 716 | loading.value = false; | 790 | loading.value = false; |
| 717 | - | ||
| 718 | dataList.value = localStoreTableData; | 791 | dataList.value = localStoreTableData; |
| 792 | + getDeviceTypeList(); | ||
| 719 | } else { | 793 | } else { |
| 720 | loading.value = true; | 794 | loading.value = true; |
| 721 | - scanSpecQueryList( | ||
| 722 | - proxy.addDateRange(queryParams.value, dateRange.value) | ||
| 723 | - ).then((res) => { | ||
| 724 | - loading.value = false; | ||
| 725 | - dataList.value = res.data.concat(localStoreTableData); | ||
| 726 | - }); | 795 | + scanSpecQueryList(proxy.addDateRange(queryParams.value, dateRange.value)) |
| 796 | + .then((res) => { | ||
| 797 | + loading.value = false; | ||
| 798 | + dataList.value = res.data.concat(localStoreTableData); | ||
| 799 | + }) | ||
| 800 | + .finally(() => { | ||
| 801 | + if (isTrigged) { | ||
| 802 | + getDeviceTypeList(); | ||
| 803 | + } | ||
| 804 | + }); | ||
| 727 | } | 805 | } |
| 728 | }; | 806 | }; |
| 729 | 807 | ||
| @@ -840,8 +918,7 @@ const handleKeydown = (e) => { | @@ -840,8 +918,7 @@ const handleKeydown = (e) => { | ||
| 840 | }; | 918 | }; |
| 841 | 919 | ||
| 842 | onMounted(() => { | 920 | onMounted(() => { |
| 843 | - getList(); | ||
| 844 | - getDeviceTypeList(); | 921 | + getList(true); |
| 845 | 922 | ||
| 846 | if (proxy.$route.query.scanTaskId) { | 923 | if (proxy.$route.query.scanTaskId) { |
| 847 | getDetail(); | 924 | getDetail(); |
| @@ -315,17 +315,16 @@ const columnList = ref([ | @@ -315,17 +315,16 @@ const columnList = ref([ | ||
| 315 | { | 315 | { |
| 316 | label: "分拣时间", | 316 | label: "分拣时间", |
| 317 | prop: "scanTime", | 317 | prop: "scanTime", |
| 318 | - width: 150, | 318 | + width: 200, |
| 319 | }, | 319 | }, |
| 320 | { | 320 | { |
| 321 | label: "分拣结果", | 321 | label: "分拣结果", |
| 322 | - prop: "scanResult", | ||
| 323 | - width: 150 | 322 | + prop: "scanResult" |
| 324 | }, | 323 | }, |
| 325 | { | 324 | { |
| 326 | label: "备注", | 325 | label: "备注", |
| 327 | prop: "remark", | 326 | prop: "remark", |
| 328 | - width: 150 | 327 | + width: 200 |
| 329 | }, | 328 | }, |
| 330 | { | 329 | { |
| 331 | label: "分拣人", | 330 | label: "分拣人", |
Please
register
or
login
to post a comment