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