From 5519cbf2e00c7ba4c650a542d98da99978124a30 Mon Sep 17 00:00:00 2001
From: 曹睿 <360930172@qq.com>
Date: 星期四, 24 四月 2025 16:43:01 +0800
Subject: [PATCH] test: 测试生产管理

---
 src/pages/production/wire/report/wire.vue              |   32 +-
 src/pages/production/list/index.vue                    |   35 ++
 src/api/product/manage.ts                              |   25 ++
 src/pages/production/twist/receive/plate/index.vue     |   22 +-
 src/pages/production/wire/selfInspect/index.vue        |   62 +++--
 src/pages/production/detail/wireDetail.vue             |   13 +
 src/pages/production/twist/report/form.vue             |   92 ++++---
 src/pages/production/twist/backman/index.vue           |   52 +++-
 src/pages/index/index.vue                              |    4 
 src/pages/production/wire/backman/index.vue            |   50 +++-
 src/pages/production/twist/report/index.vue            |   40 +-
 src/api/product/twist.ts                               |    6 
 src/pages/mine/index.vue                               |    8 
 src/pages/production/wire/report/wireForm.vue          |   28 ++
 src/pages/production/detail/twistDetail.vue            |   13 +
 src/pages/production/twist/selfInspect/index.vue       |   62 +++--
 src/pages/production/wire/backman/form.vue             |   45 +++
 src/pages/production/twist/receive/steelCore/index.vue |   11 
 src/components/product_card/index.vue                  |   14 
 19 files changed, 401 insertions(+), 213 deletions(-)

diff --git a/src/api/product/manage.ts b/src/api/product/manage.ts
index a8dad1b..6560356 100644
--- a/src/api/product/manage.ts
+++ b/src/api/product/manage.ts
@@ -36,6 +36,31 @@
       data: params,
     });
   },
+
+  // 鏌ヨ鏉傚伐淇℃伅
+  getBackmanDetail(params: any) {
+    return request<BaseResult<any>>({
+      url: "/app/getBackmanDetail",
+      method: "GET",
+      data: params,
+    });
+  },
+
+  // 鑾峰彇鏉傚伐椤圭洰
+  getBackmanDetailByType(params: any) {
+    return request<BaseResult<any>>({
+      url: "/app/getBackmanDetailByType",
+      method: "GET",
+      data: params,
+    });
+  },
+  addBackmanDetail(params: any) {
+    return request<BaseResult<any>>({
+      url: "/app/addBackmanDetail",
+      method: "POST",
+      data: params,
+    });
+  },
 };
 
 export default ManageApi;
diff --git a/src/api/product/twist.ts b/src/api/product/twist.ts
index 78caaa4..57996cd 100644
--- a/src/api/product/twist.ts
+++ b/src/api/product/twist.ts
@@ -11,10 +11,10 @@
     });
   },
 
-  // 鏂板鎷変笣鎶ュ伐
-  addWireOutput(data: any) {
+  // 鏂板缁炰笣鎶ュ伐
+  addTwistOutput(data: any) {
     return request<BaseResult<any>>({
-      url: "/app/addWireOutput",
+      url: "/app/addWireOutput1",
       method: "POST",
       data: data,
     });
diff --git a/src/components/product_card/index.vue b/src/components/product_card/index.vue
index 799875e..3cb28bb 100644
--- a/src/components/product_card/index.vue
+++ b/src/components/product_card/index.vue
@@ -2,9 +2,9 @@
   <wd-card class="card_bg">
     <template #title>
       <view class="flex justify-between w-full">
-        <text class="font-medium text-[#252525]">璁惧缂栧彿: {{ data.deviceModel }}</text>
+        <text class="font-medium text-[#252525]">璁惧缂栧彿: {{ data[map.deviceModel] }}</text>
         <wd-tag color="#0D867F" bg-color="#E7F4EC">
-          <text class="text-xs">{{ data.model }}</text>
+          <text class="text-xs">{{ data[map.model] }}</text>
         </wd-tag>
       </view>
     </template>
@@ -16,7 +16,7 @@
           </view>
           <text class="text-[#646874] mx-2">
             鎬婚渶姹傛暟閲�:
-            <text class="text-[#252525]">{{ data.totalAmount }}m</text>
+            <text class="text-[#252525]">{{ data[map.totalAmount] }}m</text>
           </text>
         </view>
       </wd-col>
@@ -29,7 +29,7 @@
           </view>
           <text class="text-[#646874] mx-2">
             宸茬敓浜ф暟閲�:
-            <text class="text-[#252525]">{{ data.amount }}m</text>
+            <text class="text-[#252525]">{{ data[map.amount] }}m</text>
           </text>
         </view>
       </wd-col>
@@ -40,7 +40,7 @@
           </view>
           <text class="text-[#646874] mx-2">
             寰呮帓浜ф暟閲�:
-            <text class="text-[#252525]">{{ data.unAmount }}m</text>
+            <text class="text-[#252525]">{{ data[map.unAmount] }}m</text>
           </text>
         </view>
       </wd-col>
@@ -54,6 +54,10 @@
     type: Object,
     default: () => {},
   },
+  map: {
+    type: Object,
+    default: () => {},
+  },
 });
 </script>
 
diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue
index a52c19c..6024963 100644
--- a/src/pages/index/index.vue
+++ b/src/pages/index/index.vue
@@ -32,7 +32,7 @@
     </wd-grid>
 
     <!-- 鏁版嵁缁熻 -->
-    <wd-grid :column="2" :gutter="2">
+    <!-- <wd-grid :column="2" :gutter="2">
       <wd-grid-item use-slot custom-class="custom-item">
         <view class="flex justify-start pl-5">
           <view class="flex-center">
@@ -55,7 +55,7 @@
           </view>
         </view>
       </wd-grid-item>
-    </wd-grid>
+    </wd-grid> -->
 
     <wd-card>
       <template #title>
diff --git a/src/pages/mine/index.vue b/src/pages/mine/index.vue
index b76ea6e..04fb976 100644
--- a/src/pages/mine/index.vue
+++ b/src/pages/mine/index.vue
@@ -39,7 +39,7 @@
     </view>
 
     <!-- 鏁版嵁缁熻 -->
-    <view class="stats-container">
+    <!-- <view class="stats-container">
       <view class="stat-item" @click="navigateToSection('wallet')">
         <view class="stat-value">0.00</view>
         <view class="stat-label">鎴戠殑浣欓</view>
@@ -54,10 +54,10 @@
         <view class="stat-value">0</view>
         <view class="stat-label">娴忚鍘嗗彶</view>
       </view>
-    </view>
+    </view> -->
 
     <!-- 鎴戠殑璁㈠崟 -->
-    <view class="card-container">
+    <!-- <view class="card-container">
       <view class="card-header">
         <view class="card-title">
           <wd-icon name="cart" size="18" :color="themeStore.primaryColor" />
@@ -101,7 +101,7 @@
           <view class="status-label">鍞悗</view>
         </view>
       </view>
-    </view>
+    </view> -->
 
     <!-- 甯哥敤宸ュ叿 -->
     <view class="card-container">
diff --git a/src/pages/production/detail/twistDetail.vue b/src/pages/production/detail/twistDetail.vue
index 5c12575..6ccb078 100644
--- a/src/pages/production/detail/twistDetail.vue
+++ b/src/pages/production/detail/twistDetail.vue
@@ -1,6 +1,15 @@
 <template>
   <view>
-    <ProductCard :data="cardData" />
+    <ProductCard
+      :data="cardData"
+      :map="{
+        deviceModel: 'deviceModel',
+        model: 'model',
+        totalAmount: 'totalAmount',
+        amount: 'amount',
+        unAmount: 'unAmount',
+      }"
+    />
     <view class="mx-3">
       <wd-grid class="rounded-lg" clickable>
         <wd-grid-item
@@ -18,7 +27,7 @@
         <wd-grid-item
           icon="tips"
           link-type="navigateTo"
-          url="/pages/production/twist/backman/index"
+          :url="`/pages/production/twist/backman/index?id=${paramsId}`"
           text="鏉傚伐"
         />
         <wd-grid-item
diff --git a/src/pages/production/detail/wireDetail.vue b/src/pages/production/detail/wireDetail.vue
index 1e67d52..19abcd5 100644
--- a/src/pages/production/detail/wireDetail.vue
+++ b/src/pages/production/detail/wireDetail.vue
@@ -1,6 +1,15 @@
 <template>
   <view class="pt-2">
-    <ProductCard :data="cardData" />
+    <ProductCard
+      :data="cardData"
+      :map="{
+        deviceModel: 'deviceModel',
+        model: 'model',
+        totalAmount: 'totalAmount',
+        amount: 'amount',
+        unAmount: 'unAmount',
+      }"
+    />
     <view class="mx-3">
       <wd-grid class="rounded-lg" clickable>
         <wd-grid-item
@@ -18,7 +27,7 @@
         <wd-grid-item
           icon="tips"
           link-type="navigateTo"
-          url="/pages/production/wire/backman/index"
+          :url="`/pages/production/wire/backman/index?id=${paramsId}`"
           text="鏉傚伐"
         />
         <wd-grid-item
diff --git a/src/pages/production/list/index.vue b/src/pages/production/list/index.vue
index 7d6c9ac..e64a901 100644
--- a/src/pages/production/list/index.vue
+++ b/src/pages/production/list/index.vue
@@ -13,13 +13,8 @@
       <ProductCard
         v-for="(item, index) in list"
         :key="index"
-        :data="{
-          deviceModel: item.deviceModel,
-          model: item.model,
-          totalAmount: item.totalLength,
-          amount: item.length,
-          unAmount: item.unLength,
-        }"
+        :data="item"
+        :map="map"
         @click="toDetail(item.id, item.type)"
       />
     </z-paging>
@@ -34,6 +29,13 @@
 const userStore = useUserStore();
 const userInfo: any = computed(() => userStore.userInfo);
 const pagingRef = ref();
+const map = reactive({
+  deviceModel: "deviceModel",
+  model: "model",
+  totalAmount: "totalAmount",
+  amount: "amount",
+  unAmount: "unAmount",
+});
 const props = defineProps({
   api: {
     type: Function,
@@ -68,12 +70,25 @@
     size: pageSize,
   });
   if (code == 200) {
-    if (data.total == 0) {
+    if (data.type == "缁炵嚎") {
+      map.deviceModel = "deviceModel";
+      map.model = "model";
+      map.totalAmount = "totalLength";
+      map.amount = "length";
+      map.unAmount = "unLength";
+    } else if (data.type == "鎷変笣") {
+      map.deviceModel = "deviceModel";
+      map.model = "model";
+      map.totalAmount = "totalAmount";
+      map.amount = "amount";
+      map.unAmount = "unAmount";
+    }
+    if (data.data.total == 0) {
       pagingRef.value.complete(true);
     } else {
-      pagingRef.value.complete(data.records);
+      pagingRef.value.complete(data.data.records);
     }
-    emits("ok", data.total);
+    emits("ok", data.data.total);
   }
 };
 </script>
diff --git a/src/pages/production/twist/backman/index.vue b/src/pages/production/twist/backman/index.vue
index 2ba997f..428cfc7 100644
--- a/src/pages/production/twist/backman/index.vue
+++ b/src/pages/production/twist/backman/index.vue
@@ -1,8 +1,16 @@
 <template>
-  <view class="page pt-2">
-    <CardTitle title="缁炵嚎鏉傚伐淇℃伅" :hideAction="true" @action="addReport" />
-    <view class="list">
-      <wd-card type="rectangle" custom-class="round">
+  <view class="list">
+    <z-paging
+      ref="pagingRef"
+      v-model="cardList"
+      :fixed="false"
+      :auto-show-back-to-top="true"
+      @query="getList"
+    >
+      <template #top>
+        <CardTitle title="缁炵嚎鏉傚伐淇℃伅" :hideAction="true" @action="addReport" />
+      </template>
+      <wd-card v-for="(item, index) in cardList" :key="index" type="rectangle" custom-class="round">
         <template #title>
           <view class="flex justify-between">
             <view>
@@ -14,7 +22,7 @@
         </template>
         <ProductionCard :data="cardAttr" color="#0D867F" />
       </wd-card>
-    </view>
+    </z-paging>
     <wd-popup v-model="dialog.visible" position="bottom" custom-class="yl-popup">
       <view class="action px-3">
         <wd-button type="text" @click="cancel">鍙栨秷</wd-button>
@@ -31,12 +39,17 @@
 import ProductionCard from "../../components/ProductionCard.vue";
 import { useToast } from "wot-design-uni";
 import BackmanForm from "./form.vue";
+import { onLoad } from "@dcloudio/uni-app";
+import zPaging from "@/components/z-paging/z-paging.vue";
+import ManageApi from "@/api/product/manage";
 
+const paramsId = ref();
+const pagingRef = ref();
 const toast = useToast();
 const dialog = reactive({
   visible: false,
 });
-
+const cardList = ref<any[]>([]);
 const cardAttr = ref<any[]>([
   {
     label: "鍗曚綅",
@@ -83,20 +96,29 @@
   toast.show("鍙栨秷");
   dialog.visible = false;
 };
+
+const getList = async () => {
+  const { code, data } = await ManageApi.getBackmanDetail({
+    wireId: paramsId.value,
+  });
+  if (code == 200) {
+    pagingRef.value.complete(data);
+  }
+};
+onLoad((options: any) => {
+  paramsId.value = options.id;
+});
 </script>
 
 <style lang="scss" scoped>
-.page {
+.list {
+  height: calc(100vh - 80px);
+  padding: 12px;
   background: #f3f9f8;
-  .list {
-    height: calc(100vh - 120px);
-    margin: 12px;
-    overflow: scroll;
 
-    :deep() {
-      .round {
-        border-radius: 4px;
-      }
+  :deep() {
+    .round {
+      border-radius: 4px;
     }
   }
 }
diff --git a/src/pages/production/twist/receive/plate/index.vue b/src/pages/production/twist/receive/plate/index.vue
index a49fb1a..128db14 100644
--- a/src/pages/production/twist/receive/plate/index.vue
+++ b/src/pages/production/twist/receive/plate/index.vue
@@ -17,21 +17,21 @@
               <wd-icon name="a-rootlist" color="#0D867F"></wd-icon>
               <text class="text-[#252525] ml-2 font-medium">{{ item.diskMaterial }}</text>
             </view>
-            <view class="text-[#A8A8A8]" @click="toEdit">缂栬緫</view>
+            <view class="text-[#A8A8A8]" @click="toEdit(item.id)">缂栬緫</view>
           </view>
         </template>
         <ProductionCard :data="cardAttr" :value="item" color="#0D867F" />
       </wd-card>
     </z-paging>
+    <wd-popup v-model="dialog.visible" position="bottom" custom-class="yl-popup">
+      <view class="action px-3">
+        <wd-button type="text" @click="cancel">鍙栨秷</wd-button>
+        <wd-button type="text" @click="submit">纭畾</wd-button>
+      </view>
+      <PlateForm ref="plateFormRef" @refresh="reloadList" />
+    </wd-popup>
+    <wd-toast />
   </view>
-  <wd-popup v-model="dialog.visible" position="bottom" custom-class="yl-popup">
-    <view class="action px-3">
-      <wd-button type="text" @click="cancel">鍙栨秷</wd-button>
-      <wd-button type="text" @click="submit">纭畾</wd-button>
-    </view>
-    <PlateForm ref="plateFormRef" @refresh="reloadList" />
-  </wd-popup>
-  <wd-toast />
 </template>
 
 <script setup lang="ts">
@@ -74,9 +74,9 @@
   },
 ]);
 
-const toEdit = () => {
+const toEdit = (id: number) => {
   uni.navigateTo({
-    url: "/pages/production/twist/receive/plate/edit",
+    url: `/pages/production/twist/receive/plate/edit?id=${id}`,
   });
 };
 
diff --git a/src/pages/production/twist/receive/steelCore/index.vue b/src/pages/production/twist/receive/steelCore/index.vue
index 8ae3589..21b8d6f 100644
--- a/src/pages/production/twist/receive/steelCore/index.vue
+++ b/src/pages/production/twist/receive/steelCore/index.vue
@@ -17,7 +17,7 @@
               <wd-icon name="a-rootlist" color="#0D867F"></wd-icon>
               <text class="text-[#252525] ml-2 font-medium">{{ item.model }}</text>
             </view>
-            <view class="text-[#A8A8A8]" @click="toEdit">缂栬緫</view>
+            <view class="text-[#A8A8A8]" @click="toEdit(item.id)">缂栬緫</view>
           </view>
         </template>
         <ProductionCard :data="cardAttr" :value="item" color="#0D867F" />
@@ -69,9 +69,9 @@
   },
 ]);
 
-const toEdit = () => {
+const toEdit = (id: number) => {
   uni.navigateTo({
-    url: "/pages/production/twist/receive/steelCore/edit",
+    url: `/pages/production/twist/receive/steelCore/edit?id=${id}`,
   });
 };
 
@@ -79,9 +79,8 @@
   dialog.visible = true;
 };
 
-const submit = () => {
-  toast.show("鎻愪氦");
-  dialog.visible = false;
+const submit = async () => {
+  dialog.visible = !(await steelCoreRef.value.submit());
 };
 
 const cancel = () => {
diff --git a/src/pages/production/twist/report/form.vue b/src/pages/production/twist/report/form.vue
index 00bf68e..b03ee0b 100644
--- a/src/pages/production/twist/report/form.vue
+++ b/src/pages/production/twist/report/form.vue
@@ -3,75 +3,59 @@
     <wd-cell-group :border="true">
       <wd-input
         v-model="model.contractNo"
-        label="鍚堝悓鍙�"
+        label="棰嗙敤鏉嗗彿"
         label-width="100px"
         prop="contractNo"
         clearable
-        placeholder="璇疯緭鍏ュ悎鍚屽彿"
+        placeholder="璇疯緭鍏ラ鐢ㄦ潌鍙�"
       />
       <wd-input
         v-model="model.status"
-        label="鐘舵��"
+        label="鏉嗛噸(kg)"
         label-width="100px"
         prop="status"
         clearable
-        placeholder="璇疯緭鍏ョ姸鎬�"
+        placeholder="璇疯緭鍏ユ潌閲�"
       />
       <wd-input
         v-model="model.clientName"
-        label="瀹㈡埛鍚嶇О"
+        label="鍗曚笣鐩樺彿"
         label-width="100px"
         prop="clientName"
         clearable
-        placeholder="璇疯緭鍏ュ鎴峰悕绉�"
+        placeholder="璇疯緭鍏ュ崟涓濈洏鍙�"
       />
       <wd-input
         v-model="model.workbench"
-        label="鏈哄彴"
+        label="瀹為檯閲嶉噺(kg)"
         label-width="100px"
         prop="workbench"
         clearable
-        placeholder="璇疯緭鍏ユ満鍙�"
+        placeholder="璇疯緭鍏ュ疄闄呴噸閲�"
       />
       <wd-input
         v-model="model.quality"
-        label="璐ㄩ噺杩芥函鍙�"
-        label-width="100px"
-        prop="quality"
-        clearable
-        placeholder="璇疯緭鍏ヨ川閲忚拷婧彿"
-      />
-      <wd-input
-        v-model="model.specification"
-        label="瑙勬牸鍨嬪彿"
-        label-width="100px"
-        prop="specification"
-        clearable
-        placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"
-      />
-      <wd-input
-        v-model="model.disc"
         label="鐩橀暱(m)"
         label-width="100px"
-        prop="disc"
+        prop="quality"
         clearable
         placeholder="璇疯緭鍏ョ洏闀�"
       />
       <wd-input
-        v-model="model.produced"
-        label="宸茬敓浜�(m)"
+        v-model="model.specification"
+        label="鐞嗚閲嶉噺(kg)"
         label-width="100px"
-        prop="produced"
+        prop="specification"
         clearable
-        placeholder="璇疯緭鍏ュ凡鐢熶骇"
+        placeholder="璇疯緭鍏ョ悊璁洪噸閲�"
       />
       <wd-input
-        v-model="model.beProduced"
-        label="寰呯敓浜�(m)"
+        v-model="model.disc"
+        label="瑙勬牸鍨嬪彿"
         label-width="100px"
-        prop="beProduced"
+        prop="disc"
         clearable
-        placeholder="璇疯緭鍏ュ崟涓濈洏闀�"
+        placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"
       />
     </wd-cell-group>
   </wd-form>
@@ -79,17 +63,41 @@
 
 <script lang="ts" setup>
 import useFormData from "@/hooks/useFormData";
+import { useToast } from "wot-design-uni";
+import TwistApi from "@/api/product/twist";
 
+const paramsId = ref();
+const toast = useToast();
 const { form: model } = useFormData({
-  contractNo: undefined, // 鍚堝悓鍙�
-  status: undefined, // 鐘舵��
-  clientName: undefined, // 瀹㈡埛鍚嶇О
-  workbench: undefined, // 鏈哄彴
-  quality: undefined, // 璐ㄩ噺杩芥函鍙�
-  specification: undefined, // 瑙勬牸鍨嬪彿
-  disc: undefined, // 鐩橀暱
-  produced: undefined, // 宸茬敓浜�
-  beProduced: undefined, // 寰呯敓浜�
+  poleNumber: undefined, // 棰嗙敤鏉嗗彿
+  poleWeight: undefined, // 鏉嗛噸(kg)
+  monofilamentNumber: undefined, // 鍗曚笣鐩樺彿
+  actuallyWeight: undefined, // 瀹為檯閲嶉噺(kg)
+  ontLength: undefined, // 鐩橀暱(m)
+  theoryWeight: undefined, // 鐞嗚閲嶉噺(kg)
+  model: undefined, // 瑙勬牸鍨嬪彿
+});
+
+const submit = async () => {
+  const { code } = await TwistApi.addTwistOutput({
+    wireId: paramsId.value,
+    ...model,
+  });
+  if (code == 200) {
+    toast.success("鎻愪氦鎴愬姛");
+    return true;
+  } else {
+    toast.error("鎻愪氦澶辫触");
+    return false;
+  }
+};
+
+onLoad((options: any) => {
+  paramsId.value = options.id;
+});
+
+defineExpose({
+  submit,
 });
 </script>
 
diff --git a/src/pages/production/twist/report/index.vue b/src/pages/production/twist/report/index.vue
index 9c6b5c0..a0383eb 100644
--- a/src/pages/production/twist/report/index.vue
+++ b/src/pages/production/twist/report/index.vue
@@ -1,6 +1,6 @@
 <template>
-  <view class="page pt-2">
-    <z-paging ref="pagingRef" v-model="twistReportList" class="list" @query="getTwistReportList">
+  <view class="list">
+    <z-paging ref="pagingRef" v-model="twistReportList" :fixed="false" @query="getTwistReportList">
       <template #top>
         <CardTitle title="鎶ュ伐淇℃伅" :hideAction="true" :full="false" @action="addReport" />
       </template>
@@ -10,14 +10,14 @@
             <view>
               <wd-icon name="user" color="#0D867F"></wd-icon>
               <text class="text-[#0D867F] ml-2 font-medium">鐢熶骇浜�</text>
-              <text class="text-[#333333] ml-2">鏂瑰厗鐜�</text>
+              <text class="text-[#333333] ml-2">{{ item.productUser }}</text>
             </view>
             <view class="text-[#A8A8A8]" @click="toEdit">缂栬緫</view>
           </view>
         </template>
         <ProductionCard :data="cardAttr" :value="item" />
         <template #footer>
-          <wd-button size="small" plain @click="toCheck">鑷</wd-button>
+          <wd-button size="small" plain @click="toCheck(item.id)">鑷</wd-button>
         </template>
       </wd-card>
     </z-paging>
@@ -27,7 +27,7 @@
         <wd-button type="text" @click="cancel">鍙栨秷</wd-button>
         <wd-button type="text" @click="submit">纭畾</wd-button>
       </view>
-      <TwistForm />
+      <TwistForm ref="twistFormRef" />
     </wd-popup>
     <wd-toast />
   </view>
@@ -42,6 +42,7 @@
 
 const pagingRef = ref();
 const paramsId = ref();
+const twistFormRef = ref();
 const toast = useToast();
 const dialog = reactive({
   visible: false,
@@ -61,8 +62,8 @@
     prop: "monofilamentNumber",
   },
   {
-    label: "瑙勬牸鍨嬪彿",
-    prop: "model",
+    label: "瀹為檯閲嶉噺(kg)",
+    prop: "actuallyWeight",
   },
   {
     label: "鐩橀暱(m)",
@@ -73,8 +74,8 @@
     prop: "theoryWeight",
   },
   {
-    label: "瀹為檯閲嶉噺(kg)",
-    prop: "actuallyWeight",
+    label: "瑙勬牸鍨嬪彿",
+    prop: "model",
   },
 ]);
 
@@ -91,8 +92,7 @@
 };
 
 const submit = () => {
-  toast.show("鎻愪氦");
-  dialog.visible = false;
+  dialog.visible = twistFormRef.value.submit();
 };
 
 const cancel = () => {
@@ -100,9 +100,9 @@
   dialog.visible = false;
 };
 
-const toCheck = () => {
+const toCheck = (id: number) => {
   uni.navigateTo({
-    url: "/pages/production/twist/selfInspect/index",
+    url: `/pages/production/twist/selfInspect/index?id=${id}`,
   });
 };
 
@@ -121,16 +121,14 @@
 </script>
 
 <style lang="scss" scoped>
-.page {
+.list {
+  height: calc(100vh - 120px);
+  padding: 12px;
   background: #f3f9f8;
 
-  .list {
-    margin: 12px;
-
-    :deep() {
-      .round {
-        border-radius: 4px;
-      }
+  :deep() {
+    .round {
+      border-radius: 4px;
     }
   }
 }
diff --git a/src/pages/production/twist/selfInspect/index.vue b/src/pages/production/twist/selfInspect/index.vue
index 9d98a20..9d524c2 100644
--- a/src/pages/production/twist/selfInspect/index.vue
+++ b/src/pages/production/twist/selfInspect/index.vue
@@ -1,20 +1,22 @@
 <template>
-  <view class="page pt-2">
-    <CardTitle title="缁炵嚎鑷" :hideAction="true" @action="addReport" />
-    <view class="list">
-      <wd-card type="rectangle" custom-class="round">
+  <view class="list">
+    <z-paging ref="pagingRef" v-model="cardList" :fixed="false" @query="getList">
+      <template #top>
+        <CardTitle title="缁炵嚎鑷" :hideAction="false" />
+      </template>
+      <wd-card v-for="(item, index) in cardList" :key="index" type="rectangle" custom-class="round">
         <template #title>
           <view class="flex justify-between">
             <view>
               <wd-icon name="a-rootlist" color="#0D867F"></wd-icon>
-              <text class="text-[#252525] ml-2 font-medium">鑷椤圭洰鍚嶇О</text>
+              <text class="text-[#252525] ml-2 font-medium">{{ item.inspectionProject }}</text>
             </view>
             <view class="text-[#A8A8A8]" @click="toEdit">缂栬緫</view>
           </view>
         </template>
-        <ProductionCard :data="cardAttr" color="#0D867F" />
+        <ProductionCard :data="cardAttr" :value="item" color="#0D867F" />
       </wd-card>
-    </view>
+    </z-paging>
     <wd-popup v-model="dialog.visible" position="bottom" custom-class="yl-popup">
       <view class="action px-3">
         <wd-button type="text" @click="cancel">鍙栨秷</wd-button>
@@ -31,7 +33,10 @@
 import ProductionCard from "../../components/ProductionCard.vue";
 import { useToast } from "wot-design-uni";
 import SelfInspectForm from "./form.vue";
+import ManageApi from "@/api/product/manage";
 
+const pagingRef = ref();
+const paramsId = ref();
 const toast = useToast();
 const dialog = reactive({
   visible: false,
@@ -39,25 +44,27 @@
 const cardAttr = ref<any[]>([
   {
     label: "鍗曚綅",
-    value: "n惟路m",
+    prop: "inspectionUnit",
   },
   {
     label: "鏍囧噯鍊�",
-    value: "1246",
+    prop: "standardValue",
   },
   {
     label: "鑷鍊�",
-    value: "1245",
+    prop: "inspectionItem",
   },
   {
     label: "鑷缁撴灉",
-    value: "涓嶅悎鏍�",
+    prop: "inspectionResult",
     color: "#FF1E1E",
   },
 ]);
-const addReport = () => {
-  dialog.visible = true;
-};
+const cardList = ref<any[]>([]);
+
+// const addReport = () => {
+//   dialog.visible = true;
+// };
 
 const toEdit = () => {
   uni.navigateTo({
@@ -73,20 +80,29 @@
   toast.show("鍙栨秷");
   dialog.visible = false;
 };
+
+const getList = async () => {
+  const { data } = await ManageApi.getSelfInspection({
+    outPutId: paramsId.value,
+    type: "缁炵嚎",
+  });
+  pagingRef.value.complete(data);
+};
+
+onLoad((options: any) => {
+  paramsId.value = options.id;
+});
 </script>
 
 <style lang="scss" scoped>
-.page {
+.list {
+  height: calc(100vh - 120px);
+  padding: 12px;
   background: #f3f9f8;
-  .list {
-    height: calc(100vh - 120px);
-    margin: 12px;
-    overflow: scroll;
 
-    :deep() {
-      .round {
-        border-radius: 4px;
-      }
+  :deep() {
+    .round {
+      border-radius: 4px;
     }
   }
 }
diff --git a/src/pages/production/wire/backman/form.vue b/src/pages/production/wire/backman/form.vue
index e4cf542..47ac348 100644
--- a/src/pages/production/wire/backman/form.vue
+++ b/src/pages/production/wire/backman/form.vue
@@ -1,13 +1,12 @@
 <template>
   <wd-form ref="form" :model="model" class="relative form_box">
     <wd-cell-group :border="true">
-      <wd-input
+      <wd-picker
         v-model="model.workbench"
+        :columns="columns"
         label="鏉傚伐鍚嶇О"
         label-width="100px"
-        prop="workbench"
-        clearable
-        placeholder="璇疯緭鍏ユ潅宸ュ悕绉�"
+        placeholder="璇烽�夋嫨鏉傚伐鍚嶇О"
       />
       <wd-input
         v-model="model.poleNo"
@@ -47,6 +46,13 @@
 
 <script setup lang="ts">
 import useFormData from "@/hooks/useFormData";
+import ManageApi from "@/api/product/manage";
+import { onLoad } from "@dcloudio/uni-app";
+import { useToast } from "wot-design-uni";
+
+const columns = ref([]);
+const paramsId = ref();
+const toast = useToast();
 const { form: model } = useFormData({
   backmanName: undefined, // 鏉傚伐鍚嶇О
   unit: undefined, // 鍗曚綅
@@ -54,6 +60,37 @@
   caller: undefined, // 鎶ュ伐浜�
   callerDate: undefined, // 鎶ュ伐鏃ユ湡
 });
+
+const getBackman = async () => {
+  const { data } = await ManageApi.getBackmanDetailByType({ type: "鎷変笣" });
+  columns.value = data.map((item: any) => item.backmanProject);
+};
+
+const submit = async () => {
+  const { code } = await ManageApi.addBackmanDetail([
+    {
+      wireId: paramsId.value,
+      type: "鎷変笣",
+      ...model,
+    },
+  ]);
+  if (code == 200) {
+    toast.success("鎻愪氦鎴愬姛");
+    return true;
+  } else {
+    toast.error("鎻愪氦澶辫触");
+    return false;
+  }
+};
+
+onLoad((options: any) => {
+  paramsId.value = options.id;
+  getBackman();
+});
+
+defineExpose({
+  submit,
+});
 </script>
 <style lang="scss" scoped>
 .form_box {
diff --git a/src/pages/production/wire/backman/index.vue b/src/pages/production/wire/backman/index.vue
index 17c724d..9def21c 100644
--- a/src/pages/production/wire/backman/index.vue
+++ b/src/pages/production/wire/backman/index.vue
@@ -1,8 +1,10 @@
 <template>
-  <view class="page pt-2">
-    <CardTitle title="鏉傚伐淇℃伅" :hideAction="true" @action="addReport" />
-    <view class="list">
-      <wd-card type="rectangle" custom-class="round">
+  <view class="list">
+    <z-paging ref="pagingRef" v-model="cardList" :fixed="false" @query="getList">
+      <template #top>
+        <CardTitle title="鏉傚伐淇℃伅" :full="false" :hideAction="true" @action="addReport" />
+      </template>
+      <wd-card v-for="(item, index) in cardList" :key="index" type="rectangle" custom-class="round">
         <template #title>
           <view class="flex justify-between">
             <view>
@@ -14,13 +16,13 @@
         </template>
         <ProductionCard :data="cardAttr" color="#0D867F" />
       </wd-card>
-    </view>
+    </z-paging>
     <wd-popup v-model="dialog.visible" position="bottom" custom-class="yl-popup">
       <view class="action px-3">
         <wd-button type="text" @click="cancel">鍙栨秷</wd-button>
         <wd-button type="text" @click="submit">纭畾</wd-button>
       </view>
-      <BackmanForm />
+      <BackmanForm ref="backmanFormRef" />
     </wd-popup>
     <wd-toast />
   </view>
@@ -31,7 +33,11 @@
 import ProductionCard from "../../components/ProductionCard.vue";
 import { useToast } from "wot-design-uni";
 import BackmanForm from "./form.vue";
+import ManageApi from "@/api/product/manage";
 
+const pagingRef = ref();
+const backmanFormRef = ref();
+const paramsId = ref();
 const toast = useToast();
 const dialog = reactive({
   visible: false,
@@ -64,6 +70,8 @@
   },
 ]);
 
+const cardList = ref<any[]>([]);
+
 const toEdit = () => {
   uni.navigateTo({
     url: "/pages/production/wire/backman/edit",
@@ -75,28 +83,36 @@
 };
 
 const submit = () => {
-  toast.show("鎻愪氦");
-  dialog.visible = false;
+  dialog.visible = backmanFormRef.value.submit();
 };
 
 const cancel = () => {
   toast.show("鍙栨秷");
   dialog.visible = false;
 };
+
+const getList = async () => {
+  const { data } = await ManageApi.getBackmanDetail({
+    outPutId: paramsId.value,
+    type: "鎷変笣",
+  });
+  pagingRef.value.complete(data);
+};
+
+onLoad((options: any) => {
+  paramsId.value = options.id;
+});
 </script>
 
 <style lang="scss" scoped>
-.page {
+.list {
+  height: calc(100vh - 120px);
+  padding: 12px;
   background: #f3f9f8;
-  .list {
-    height: calc(100vh - 120px);
-    margin: 12px;
-    overflow: scroll;
 
-    :deep() {
-      .round {
-        border-radius: 4px;
-      }
+  :deep() {
+    .round {
+      border-radius: 4px;
     }
   }
 }
diff --git a/src/pages/production/wire/report/wire.vue b/src/pages/production/wire/report/wire.vue
index 496ae82..3a129dc 100644
--- a/src/pages/production/wire/report/wire.vue
+++ b/src/pages/production/wire/report/wire.vue
@@ -1,6 +1,6 @@
 <template>
-  <view class="page pt-2">
-    <z-paging ref="pagingRef" v-model="wireReportList" class="list" @query="getWireReportList">
+  <view class="list">
+    <z-paging ref="pagingRef" v-model="wireReportList" :fixed="false" @query="getWireReportList">
       <template #top>
         <CardTitle title="鎶ュ伐淇℃伅" :hideAction="true" :full="false" @action="addReport" />
       </template>
@@ -26,7 +26,6 @@
         </template>
       </wd-card>
     </z-paging>
-
     <wd-popup v-model="dialog.visible" position="bottom" custom-class="yl-popup">
       <view class="action px-3">
         <wd-button type="text" @click="cancel">鍙栨秷</wd-button>
@@ -45,7 +44,6 @@
 import zPaging from "@/components/z-paging/z-paging.vue";
 import { onLoad } from "@dcloudio/uni-app";
 import ManageApi from "@/api/product/manage";
-import WireApi from "@/api/product/wire";
 
 const pagingRef = ref();
 const wireFormRef = ref();
@@ -74,7 +72,7 @@
   },
   {
     label: "鐩橀暱(m)",
-    prop: "ontLength",
+    prop: "oneLength",
   },
   {
     label: "鐞嗚閲嶉噺(kg)",
@@ -98,13 +96,8 @@
   dialog.visible = true;
 };
 
-const submit = async () => {
-  toast.show("鎻愪氦");
-  await WireApi.addWireOutput({
-    wireId: paramsId.value,
-    type: "鎷変笣",
-    ...wireFormRef.value.model,
-  });
+const submit = () => {
+  dialog.visible = wireFormRef.value.submit();
 };
 
 const cancel = () => {
@@ -133,17 +126,14 @@
 </script>
 
 <style lang="scss" scoped>
-.page {
+.list {
+  height: calc(100vh - 120px);
+  padding: 12px;
   background: #f3f9f8;
 
-  .list {
-    margin: 12px;
-    background: #f3f9f8;
-
-    :deep() {
-      .round {
-        border-radius: 4px;
-      }
+  :deep() {
+    .round {
+      border-radius: 4px;
     }
   }
 }
diff --git a/src/pages/production/wire/report/wireForm.vue b/src/pages/production/wire/report/wireForm.vue
index 4fb91c4..b248788 100644
--- a/src/pages/production/wire/report/wireForm.vue
+++ b/src/pages/production/wire/report/wireForm.vue
@@ -58,23 +58,47 @@
         placeholder="璇疯緭鍏ュ疄闄呴噸閲�"
       />
     </wd-cell-group>
+    <wd-toast />
   </wd-form>
 </template>
 
 <script lang="ts" setup>
 import useFormData from "@/hooks/useFormData";
+import { useToast } from "wot-design-uni";
+import WireApi from "@/api/product/wire";
 
+const paramsId = ref();
+const toast = useToast();
 const { form: model } = useFormData({
   poleNumber: undefined, // 棰嗙敤鏉嗗彿
   poleWeight: undefined, // 瀹㈡埛鍚嶇О
   monofilamentNumber: undefined, // 鍗曚笣鐩樺彿
   model: undefined, // 瑙勬牸鍨嬪彿
-  ontLength: undefined, // 鐩橀暱
+  oneLength: undefined, // 鐩橀暱
   singleDisc: undefined, // 鍗曚笣鐩橀暱
 });
 
+const submit = async () => {
+  const { code } = await WireApi.addWireOutput({
+    wireId: paramsId.value,
+    type: "鎷変笣",
+    ...model,
+  });
+  if (code == 200) {
+    toast.success("鎻愪氦鎴愬姛");
+    return true;
+  } else {
+    toast.error("鎻愪氦澶辫触");
+    return false;
+  }
+};
+
+onLoad((options: any) => {
+  paramsId.value = options.id;
+});
+
 defineExpose({
-  model,
+  submit,
 });
 </script>
 
diff --git a/src/pages/production/wire/selfInspect/index.vue b/src/pages/production/wire/selfInspect/index.vue
index 7b18466..bbd9cb9 100644
--- a/src/pages/production/wire/selfInspect/index.vue
+++ b/src/pages/production/wire/selfInspect/index.vue
@@ -1,20 +1,22 @@
 <template>
-  <view class="page pt-2">
-    <CardTitle title="鎷変笣鑷" :hideAction="true" @action="addReport" />
-    <view class="list">
-      <wd-card type="rectangle" custom-class="round">
+  <view class="list">
+    <z-paging ref="pagingRef" v-model="cardList" :fixed="false" @query="getList">
+      <template #top>
+        <CardTitle title="鎷変笣鑷" :hideAction="false" />
+      </template>
+      <wd-card v-for="(item, index) in cardList" :key="index" type="rectangle" custom-class="round">
         <template #title>
           <view class="flex justify-between">
             <view>
               <wd-icon name="a-rootlist" color="#0D867F"></wd-icon>
-              <text class="text-[#252525] ml-2 font-medium">鑷椤圭洰鍚嶇О</text>
+              <text class="text-[#252525] ml-2 font-medium">{{ item.inspectionProject }}</text>
             </view>
             <view class="text-[#A8A8A8]" @click="toEdit">缂栬緫</view>
           </view>
         </template>
-        <ProductionCard :data="cardAttr" color="#0D867F" />
+        <ProductionCard :data="cardAttr" :value="item" color="#0D867F" />
       </wd-card>
-    </view>
+    </z-paging>
     <wd-popup v-model="dialog.visible" position="bottom" custom-class="yl-popup">
       <view class="action px-3">
         <wd-button type="text" @click="cancel">鍙栨秷</wd-button>
@@ -31,7 +33,10 @@
 import ProductionCard from "../../components/ProductionCard.vue";
 import { useToast } from "wot-design-uni";
 import SelfInspectForm from "./form.vue";
+import ManageApi from "@/api/product/manage";
 
+const pagingRef = ref();
+const paramsId = ref();
 const toast = useToast();
 const dialog = reactive({
   visible: false,
@@ -39,25 +44,27 @@
 const cardAttr = ref<any[]>([
   {
     label: "鍗曚綅",
-    value: "n惟路m",
+    prop: "inspectionUnit",
   },
   {
     label: "鏍囧噯鍊�",
-    value: "1246",
+    prop: "standardValue",
   },
   {
     label: "鑷鍊�",
-    value: "1245",
+    prop: "inspectionItem",
   },
   {
     label: "鑷缁撴灉",
-    value: "涓嶅悎鏍�",
+    prop: "inspectionResult",
     color: "#FF1E1E",
   },
 ]);
-const addReport = () => {
-  dialog.visible = true;
-};
+const cardList = ref<any[]>([]);
+
+// const addReport = () => {
+//   dialog.visible = true;
+// };
 
 const toEdit = () => {
   uni.navigateTo({
@@ -73,20 +80,29 @@
   toast.show("鍙栨秷");
   dialog.visible = false;
 };
+
+const getList = async () => {
+  const { data } = await ManageApi.getSelfInspection({
+    outPutId: paramsId.value,
+    type: "鎷変笣",
+  });
+  pagingRef.value.complete(data);
+};
+
+onLoad((options: any) => {
+  paramsId.value = options.id;
+});
 </script>
 
 <style lang="scss" scoped>
-.page {
+.list {
+  height: calc(100vh - 120px);
+  padding: 12px;
   background: #f3f9f8;
-  .list {
-    height: calc(100vh - 120px);
-    margin: 12px;
-    overflow: scroll;
 
-    :deep() {
-      .round {
-        border-radius: 4px;
-      }
+  :deep() {
+    .round {
+      border-radius: 4px;
     }
   }
 }

--
Gitblit v1.9.3