scanCode.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <template>
  2. <!-- 扫码板块 -->
  3. <div class="icon">
  4. <img class="imgIcon" src="@/assets/icons/shaoma.svg" />
  5. </div>
  6. <div class="body">
  7. <ScanCodeInput v-model="inputValue" @keyup.enter="toProSteps" />
  8. </div>
  9. </template>
  10. <script lang="ts" setup>
  11. import ScanCodeInput from "@/components/ScanCodeInput/index.vue";
  12. import { useProcessStore } from "@/store";
  13. import { emitter, EventsNames } from "@/utils/common";
  14. const store = useProcessStore();
  15. const router = useRouter();
  16. const inputValue = ref("");
  17. //选择状态
  18. const selectOrderIndex = inject("selectOrderIndex");
  19. //扫码状态
  20. const scanStatus = inject("scanStatus");
  21. //选中的oderItem
  22. const selectSeqArray = inject("selectSeqArray");
  23. //工序data
  24. const opsArray = inject("opsArray");
  25. const toProSteps = () => {
  26. if (inputValue.value == "") return ElMessage.error("流转卡号不能为空值!");
  27. if (selectOrderIndex.value == null)
  28. return ElMessage.error("请选择所操作工单!");
  29. let status = false;
  30. for (let i = 0; i < selectSeqArray.value.length; i++) {
  31. if (selectSeqArray.value[i].seqNo == inputValue.value) {
  32. status = true;
  33. opsArray.value = selectSeqArray.value[i].ops;
  34. store.odersData.qrCode = inputValue.value;
  35. }
  36. }
  37. if (status) {
  38. ElMessage.success("扫码成功!");
  39. scanStatus.value = true;
  40. emitFnc();
  41. } else {
  42. ElMessage.error("流转卡号有误!");
  43. scanStatus.value = false;
  44. }
  45. inputValue.value = "";
  46. // getScanData();
  47. };
  48. //扫码成功重置工序index
  49. const emitFnc = () => {
  50. emitter.emit(EventsNames.PROCESS_STEPINDEX, null);
  51. };
  52. </script>
  53. <style lang="scss" scoped>
  54. .icon {
  55. @include flex;
  56. height: 120px;
  57. .imgIcon {
  58. width: 100px;
  59. height: 100px;
  60. }
  61. }
  62. </style>