From bfbea958be8afe7e0522dc19f8a468eb35a3f9b9 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 13 十一月 2025 10:29:09 +0800
Subject: [PATCH] fix: 钢芯领用添加芯线类型字段,添加扫码领用功能

---
 src/pages/production/twist/receive/steelCore/index.vue |   69 +++++++++++++++++++++++++++++++++-
 1 files changed, 66 insertions(+), 3 deletions(-)

diff --git a/src/pages/production/twist/receive/steelCore/index.vue b/src/pages/production/twist/receive/steelCore/index.vue
index 0acc106..676f782 100644
--- a/src/pages/production/twist/receive/steelCore/index.vue
+++ b/src/pages/production/twist/receive/steelCore/index.vue
@@ -8,7 +8,12 @@
       @query="getList"
     >
       <template #top>
-        <CardTitle title="鑺嚎棰嗙敤" :hideAction="true" :full="false" @action="addReport" />
+        <CardTitle title="鑺嚎棰嗙敤" :hideAction="false" :full="false">
+          <template #action>
+            <wd-button type="icon" icon="scan" color="#0D867F" @click="openScan"></wd-button>
+            <wd-button type="icon" icon="add-circle" color="#0D867F" @click="addReport"></wd-button>
+          </template>
+        </CardTitle>
       </template>
       <wd-card v-for="(item, index) in cardList" :key="index" type="rectangle" custom-class="round">
         <template #title>
@@ -28,7 +33,7 @@
         <wd-button type="text" @click="cancelAdd">鍙栨秷</wd-button>
         <wd-button type="text" @click="submitAdd">纭畾</wd-button>
       </view>
-      <SteelCore ref="addFormRef" mode="add" @refresh="reloadList" />
+      <SteelCore ref="addFormRef" mode="add" :wireId="paramsId" @refresh="reloadList" />
     </wd-popup>
     <wd-popup v-model="editDialog.visible" position="bottom" custom-class="yl-popup">
       <view class="action px-3">
@@ -38,10 +43,12 @@
       <SteelCore
         ref="editFormRef"
         mode="edit"
+        :wireId="paramsId"
         :editData="editDialog.currentItem"
         @refresh="reloadList"
       />
     </wd-popup>
+    <Scan ref="scanRef" emitName="scanSteelCore" />
     <wd-toast />
   </view>
 </template>
@@ -51,15 +58,19 @@
 import ProductionCard from "../../../components/ProductionCard.vue";
 import { useToast } from "wot-design-uni";
 import SteelCore from "./form.vue";
-import { onLoad } from "@dcloudio/uni-app";
+import { onLoad, onUnload, onShow, onHide } from "@dcloudio/uni-app";
 import ManageApi from "@/api/product/manage";
+import TwistApi from "@/api/product/twist";
 import zPaging from "@/components/z-paging/z-paging.vue";
+import Scan from "@/components/scan/index.vue";
 
 const paramsId = ref();
 const pagingRef = ref();
 const addFormRef = ref();
 const editFormRef = ref();
+const scanRef = ref();
 const toast = useToast();
+const isPageVisible = ref(false); // 鏍囪椤甸潰鏄惁鍙
 const addDialog = reactive({
   visible: false,
 });
@@ -147,9 +158,61 @@
   pagingRef.value.refresh();
 };
 
+// 鎵爜鐩稿叧鏂规硶
+const openScan = () => {
+  scanRef.value.triggerScan();
+};
+
+const getScanCode = async (code: any) => {
+  // 妫�鏌ラ〉闈㈡槸鍚﹀彲瑙侊紝濡傛灉涓嶅彲瑙佸垯涓嶅鐞嗘壂鐮佹暟鎹�
+  if (!isPageVisible.value) {
+    return;
+  }
+
+  try {
+    const parseData = JSON.parse(code.code);
+
+    // 鎵撳紑鏂板寮规骞跺~鍏呮壂鐮佽幏鍙栫殑淇℃伅
+    addDialog.visible = true;
+
+    // 绛夊緟寮规鎵撳紑鍚庡~鍏呰〃鍗曟暟鎹�
+    // 浣跨敤鍙岄噸绛夊緟锛歯extTick + setTimeout 纭繚缁勪欢宸插畬鍏ㄦ寕杞�
+    nextTick(() => {
+      setTimeout(() => {
+        if (addFormRef.value) {
+          addFormRef.value.fillFormData(parseData);
+          toast.success("鎵爜鎴愬姛锛岃纭淇℃伅");
+        } else {
+          toast.error("琛ㄥ崟鍔犺浇澶辫触锛岃閲嶈瘯");
+        }
+      }, 200); // 寤惰繜200ms纭繚寮规鍜岀粍浠跺凡瀹屽叏娓叉煋
+    });
+  } catch (error) {
+    toast.error("浜岀淮鐮佸紓甯革紝璇锋洿鎹簩缁寸爜锛�");
+  }
+};
+
 onLoad((options: any) => {
+  // 寮�鍚箍鎾洃鍚簨浠�
+  uni.$on("scanSteelCore", getScanCode);
   paramsId.value = options.id;
 });
+
+onShow(() => {
+  // 椤甸潰鏄剧ず鏃舵爣璁颁负鍙
+  isPageVisible.value = true;
+});
+
+onHide(() => {
+  // 椤甸潰闅愯棌鏃舵爣璁颁负涓嶅彲瑙�
+  isPageVisible.value = false;
+});
+
+onUnload(() => {
+  // 鍙栨秷骞挎挱鐩戝惉浜嬩欢
+  uni.$off("scanSteelCore", getScanCode);
+  isPageVisible.value = false;
+});
 </script>
 
 <style lang="scss" scoped>

--
Gitblit v1.9.3