| | |
| | | <template> |
| | | <view class="page"> |
| | | <CardTitle title="单丝领用" :hideAction="false"> |
| | | <template #action> |
| | | <wd-button type="icon" icon="scan" color="#0D867F" @click="scanCode"></wd-button> |
| | | <view class="list_box"> |
| | | <z-paging |
| | | ref="pagingRef" |
| | | v-model="cardList" |
| | | :fixed="false" |
| | | :auto-show-back-to-top="true" |
| | | @query="getList" |
| | | > |
| | | <template #top> |
| | | <CardTitle title="单丝领用" :hideAction="false"> |
| | | <template #action> |
| | | <wd-button type="icon" icon="scan" color="#0D867F" @click="openScan"></wd-button> |
| | | </template> |
| | | </CardTitle> |
| | | </template> |
| | | </CardTitle> |
| | | <view class="list_box"> |
| | | <MonofilCard v-for="(item, index) in 4" :key="index" /> |
| | | </view> |
| | | <scan /> |
| | | <MonofilCard v-for="(item, index) in cardList" :key="index" :data="item" /> |
| | | <template #bottom> |
| | | <view class="flex justify-center items-center"> |
| | | <wd-button block @click="save"> |
| | | <text class="text-[#fff]">保存</text> |
| | | </wd-button> |
| | | </view> |
| | | </template> |
| | | </z-paging> |
| | | <Scan ref="scanRef" /> |
| | | <wd-toast /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import CardTitle from "@/components/card-title/index.vue"; |
| | | import MonofilCard from "../components/MonofilCard.vue"; |
| | | import scan from "@/components/scan/index.vue"; |
| | | import { onLoad, onUnload } from "@dcloudio/uni-app"; |
| | | import { useToast } from "wot-design-uni"; |
| | | import { onLoad, onUnload, onShow, onHide } from "@dcloudio/uni-app"; |
| | | import Scan from "@/components/scan/index.vue"; |
| | | import ManageApi from "@/api/product/manage"; |
| | | import TwistApi from "@/api/product/twist"; |
| | | import zPaging from "@/components/z-paging/z-paging.vue"; |
| | | // import { useZebraScan } from "@/hooks/useZebraScan"; |
| | | // const { init, start, stop, triggerScan } = useZebraScan(); |
| | | |
| | | const paramsId = ref(); |
| | | const pagingRef = ref(); |
| | | const scanRef = ref(); |
| | | const cardList = ref<any[]>([]); |
| | | const toast = useToast(); |
| | | |
| | | const BroadcastScanningToObtainData = (res: any) => { |
| | | console.log("获取次数", res.code); |
| | | let barcode = res.code; |
| | | console.log("打印数据", barcode); |
| | | }; |
| | | |
| | | const scanCode = () => { |
| | | uni.scanCode({ |
| | | onlyFromCamera: true, |
| | | success: (res) => { |
| | | console.log("条码类型:" + res.scanType); |
| | | console.log("条码内容:" + res.result); |
| | | cardList.value.push(res.result); |
| | | }, |
| | | const getScanCode = async (code: any) => { |
| | | console.log("自定义扫描的结果回调函数:", code); |
| | | // let parseData = code.trim(); |
| | | let codeArr = code.code.split(","); |
| | | console.log("sb:", codeArr); |
| | | const { data } = await TwistApi.getScarn({ |
| | | outPutId: codeArr[1], |
| | | }); |
| | | const exists = cardList.value.some((item) => item.monofilamentNumber === data.monofilamentNumber); |
| | | if (!exists) { |
| | | const { id, outPutId, wireId, oneLength, ...rest } = data; |
| | | console.log("sb", { |
| | | wireId: paramsId.value, |
| | | outputId: id, |
| | | amount: oneLength, |
| | | ongLength: oneLength, |
| | | ...rest, |
| | | }); |
| | | cardList.value.push({ |
| | | wireId: paramsId.value, |
| | | outputId: id, |
| | | amount: oneLength, |
| | | ongLength: oneLength, |
| | | ...rest, |
| | | }); |
| | | pagingRef.value.complete(cardList.value); |
| | | } else { |
| | | toast.error("该单丝已领用,请勿重复扫码"); |
| | | } |
| | | }; |
| | | |
| | | onLoad(() => { |
| | | const openScan = () => { |
| | | scanRef.value.triggerScan(); |
| | | }; |
| | | |
| | | const getList = async () => { |
| | | const { code, data } = await ManageApi.getStrandedWireDish({ |
| | | wireId: paramsId.value, |
| | | type: "单丝", |
| | | }); |
| | | if (code == 200) { |
| | | pagingRef.value.complete(data); |
| | | } |
| | | }; |
| | | |
| | | const save = async () => { |
| | | const { code } = await TwistApi.addStrandedWireDish(cardList.value); |
| | | if (code == 200) { |
| | | toast.success("保存成功"); |
| | | pagingRef.value.refresh(); |
| | | } else { |
| | | toast.error("保存失败"); |
| | | } |
| | | }; |
| | | |
| | | onLoad((options: any) => { |
| | | // 开启广播监听事件 |
| | | uni.$on("scan", BroadcastScanningToObtainData); |
| | | uni.$on("scan", getScanCode); |
| | | paramsId.value = options.id; |
| | | }); |
| | | onUnload(() => { |
| | | // 开启广播监听事件 |
| | | uni.$off("scan", BroadcastScanningToObtainData); |
| | | uni.$off("scan", getScanCode); |
| | | }); |
| | | |
| | | onShow(() => {}); |
| | | |
| | | onHide(() => {}); |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .page { |
| | | .list_box { |
| | | height: calc(100vh - 100px); |
| | | background: #f3f9f8; |
| | | .list_box { |
| | | height: calc(100% - 100px); |
| | | overflow: scroll; |
| | | } |
| | | } |
| | | :deep(.wd-button__content) { |
| | | color: #0d867f; |