From aca7aa9ce32acc4c8795342f945b027d3bc9f62a Mon Sep 17 00:00:00 2001
From: 曹睿 <360930172@qq.com>
Date: 星期二, 10 六月 2025 17:37:34 +0800
Subject: [PATCH] feat: 添加时效报工,修复扫码内存泄漏

---
 src/pages/production/wire/report/wireForm.vue |  166 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 131 insertions(+), 35 deletions(-)

diff --git a/src/pages/production/wire/report/wireForm.vue b/src/pages/production/wire/report/wireForm.vue
index 52d7823..f4e71f6 100644
--- a/src/pages/production/wire/report/wireForm.vue
+++ b/src/pages/production/wire/report/wireForm.vue
@@ -2,73 +2,169 @@
   <wd-form ref="form" :model="model" class="relative form_box">
     <wd-cell-group :border="true">
       <wd-input
-        v-model="model.contractNo"
-        label="鍚堝悓鍙�"
+        v-model="model.poleNumber"
+        label="棰嗙敤鏉嗗彿"
         label-width="100px"
-        prop="contractNo"
+        prop="poleNumber"
+        placeholder="璇疯緭鍏ラ鐢ㄦ潌鍙�"
+      >
+        <template #suffix>
+          <wd-icon name="scan" @click="openScan" />
+        </template>
+      </wd-input>
+      <wd-input
+        v-model="model.poleWeight"
+        label="鏉嗛噸"
+        label-width="100px"
+        prop="poleWeight"
         clearable
-        placeholder="璇疯緭鍏ュ悎鍚屽彿"
+        placeholder="璇疯緭鍏ユ潌閲�"
       />
       <wd-input
-        v-model="model.clientName"
-        label="瀹㈡埛鍚嶇О"
+        v-model="model.poleModel"
+        label="鏉嗗瀷鍙�"
         label-width="100px"
-        prop="clientName"
+        prop="poleModel"
         clearable
-        placeholder="璇疯緭鍏ュ鎴峰悕绉�"
+        placeholder="璇疯緭鍏ユ潌鍨嬪彿"
       />
       <wd-input
-        v-model="model.workbench"
-        label="鏈哄彴"
+        v-model="model.model"
+        label="瑙勬牸鍨嬪彿"
         label-width="100px"
-        prop="workbench"
+        prop="model"
         clearable
-        placeholder="璇疯緭鍏ユ満鍙�"
+        placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"
       />
       <wd-input
-        v-model="model.monofilNo"
-        label="鍗曚綋缂栧彿"
+        v-model="model.oneLength"
+        label="鐩橀暱(m)"
         label-width="100px"
-        prop="monofilNo"
+        prop="oneLength"
         clearable
-        placeholder="璇疯緭鍏ュ崟浣撶紪鍙�"
+        placeholder="璇疯緭鍏ョ洏闀�"
       />
       <wd-input
-        v-model="model.specification"
-        label="瑙勬牸"
+        v-model="model.polePackageNumber"
         label-width="100px"
-        prop="specification"
+        prop="polePackageNumber"
         clearable
-        placeholder="璇疯緭鍏ヨ鏍�"
-      />
+        placeholder="璇疯緭鍏ユ潌鍖呭彿"
+      >
+        <template #label>
+          <span style="color: #f56c6c">鏉嗗寘鍙�</span>
+        </template>
+      </wd-input>
       <wd-input
-        v-model="model.singleDisc"
-        label="鍗曚笣鐩橀暱"
+        v-model="model.dishModel"
         label-width="100px"
-        prop="singleDisc"
+        prop="dishModel"
         clearable
-        placeholder="璇疯緭鍏ュ崟涓濈洏闀�"
-      />
+        placeholder="璇疯緭鍏ョ洏鍨嬪彿"
+      >
+        <template #label>
+          <span style="color: #f56c6c">鐩樺瀷鍙�</span>
+        </template>
+      </wd-input>
+      <wd-input
+        v-model="model.actuallyLength"
+        label-width="100px"
+        prop="actuallyLength"
+        clearable
+        placeholder="璇疯緭鍏ュ疄闄呴暱搴�"
+      >
+        <template #label>
+          <span style="color: #f56c6c">瀹為檯闀垮害(m)</span>
+        </template>
+      </wd-input>
+      <wd-input
+        v-model="model.actuallyWeight"
+        label-width="100px"
+        prop="actuallyWeight"
+        clearable
+        placeholder="璇疯緭鍏ュ疄闄呴噸閲�"
+      >
+        <template #label>
+          <span style="color: #f56c6c">瀹為檯閲嶉噺(kg)</span>
+        </template>
+      </wd-input>
     </wd-cell-group>
+    <wd-toast />
+    <Scan ref="scanRef" />
   </wd-form>
 </template>
 
 <script lang="ts" setup>
 import useFormData from "@/hooks/useFormData";
+import { useToast } from "wot-design-uni";
+import WireApi from "@/api/product/wire";
+import Scan from "@/components/scan/index.vue";
 
-const { form: model } = useFormData({
-  contractNo: undefined, // 鍚堝悓鍙�
-  clientName: undefined, // 瀹㈡埛鍚嶇О
-  workbench: undefined, // 鏈哄彴
-  monofilNo: undefined, // 鍗曚綋缂栧彿
-  specification: undefined, // 瑙勬牸
-  singleDisc: undefined, // 鍗曚笣鐩橀暱
+const paramsId = ref();
+const scanRef = ref();
+const toast = useToast();
+const { form: model, resetForm } = useFormData({
+  poleNumber: undefined, // 棰嗙敤鏉嗗彿
+  poleWeight: undefined, // 鏉嗛噸
+  poleModel: undefined, // 鏉嗗瀷鍙�
+  model: undefined, // 瑙勬牸鍨嬪彿
+  polePackageNumber: undefined, // 鏉嗗寘鍙�
+  dishModel: undefined, // 鐩樺瀷鍙�
+  oneLength: undefined, // 鐩橀暱
+  actuallyLength: undefined, // 瀹為檯闀垮害
+  actuallyWeight: undefined, // 瀹為檯閲嶉噺
+});
+
+const submit = async () => {
+  const { code } = await WireApi.addWireOutput({
+    wireId: paramsId.value,
+    type: "鎷変笣",
+    ...model,
+  });
+  if (code == 200) {
+    toast.success("鎻愪氦鎴愬姛");
+    resetForm();
+    return true;
+  } else {
+    toast.error("鎻愪氦澶辫触");
+    return false;
+  }
+};
+
+const openScan = () => {
+  scanRef.value.triggerScan();
+};
+
+//  鐩戝惉鎵爜
+const getScanCode = (code: any) => {
+  console.log("鑷畾涔夋壂鎻忕殑缁撴灉鍥炶皟鍑芥暟:", code.code);
+  // console.log("鑷畾涔夋壂鎻忕殑缁撴灉鍥炶皟鍑芥暟", JSON.parse(code));
+  const arr = code.code.split(",");
+  model.poleNumber = arr[3]; //  棰嗙敤鏉嗗彿
+  model.poleWeight = arr[4]; //  鏉嗛噸
+  model.poleModel = arr[2]; //  鏉嗗瀷鍙�
+};
+
+onLoad((options: any) => {
+  paramsId.value = options.id;
+  model.model = options.model;
+  console.log("options", options);
+  model.oneLength = options.oneLength;
+  // 寮�鍚箍鎾洃鍚簨浠�
+  uni.$on("scan", getScanCode);
+});
+
+onUnload(() => {
+  // 寮�鍚箍鎾洃鍚簨浠�
+  uni.$off("scan", getScanCode);
+});
+
+defineExpose({
+  submit,
 });
 </script>
 
 <style lang="scss" scoped>
-.form_box {
-}
 .submit_btn {
   position: absolute;
   bottom: 0;

--
Gitblit v1.9.3