From 33ad9bff8eb0e6be50efbaab76ae71c76b6e218b Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期四, 21 八月 2025 14:17:33 +0800
Subject: [PATCH] PDA报工页面投料产量和汇报产量放到主页面,调整逻辑,接口联调,取消报工页面逻辑梳理,接口联调

---
 pages/wareHouse/nuclearScale/createwriteoffform.vue |  672 +++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 520 insertions(+), 152 deletions(-)

diff --git a/pages/wareHouse/nuclearScale/createwriteoffform.vue b/pages/wareHouse/nuclearScale/createwriteoffform.vue
index e4f4353..29fcb08 100644
--- a/pages/wareHouse/nuclearScale/createwriteoffform.vue
+++ b/pages/wareHouse/nuclearScale/createwriteoffform.vue
@@ -13,133 +13,225 @@
     <u-form
       :model="form"
       ref="uForm"
-      :label-width="200"
+      :label-width="235"
+      labelAlign="left"
       :rules="rules"
       :error-type="['toast']"
       class="uForm"
     >
-      <u-form-item label="浜у搧绫诲瀷" :border-bottom="false" prop="value0">
-        <u-radio-group v-model="form.value0">
-          <u-radio name="瀵间綋">瀵间綋</u-radio>
-          <u-radio name="閾滄潌">閾滄潌</u-radio>
-          <u-radio name="瀵间綋2.6">瀵间綋2.6</u-radio>
+      <u-form-item
+        label="浜у搧绫诲瀷锛�"
+        :border-bottom="false"
+        prop="productType"
+        style="font-size: small"
+      >
+        <u-radio-group
+          v-model="form.productType"
+          @change="handleProductTypeChange"
+          style="font-size: small"
+        >
+          <u-radio name="DT01">瀵间綋</u-radio>
+          <u-radio name="TG01">閾滄潌</u-radio>
+          <u-radio name="DT02">瀵间綋2.6</u-radio>
         </u-radio-group>
       </u-form-item>
-      <u-form-item label="鏇挎崲浜岀淮鐮�" :border-bottom="false" prop="value1">
-        <u-radio-group v-model="form.value1">
+      <u-form-item
+        label="鏇挎崲浜岀淮鐮侊細"
+        :border-bottom="false"
+        prop="replace"
+        style="font-size: small"
+      >
+        <u-radio-group v-model="form.replace" style="font-size: small">
           <u-radio name="1">鏄�</u-radio>
           <u-radio name="0">鍚�</u-radio>
         </u-radio-group>
       </u-form-item>
-      <u-form-item label="杞︾墝鍙�" :border-bottom="false" prop="value2">
+      <u-form-item
+        label="杞︾墝鍙凤細"
+        :border-bottom="false"
+        prop="licensePlate"
+        style="font-size: small"
+      >
         <u-input
-          v-model="form.value2"
+          v-model="form.licensePlate"
           type="select"
           placeholder="璇疯緭鍏ヨ溅鐗屽彿"
           @click="lpn"
         />
       </u-form-item>
-      <u-form-item label="瀹㈡埛鍚嶇О" :border-bottom="false" prop="value3">
+      <u-form-item
+        label="瀹㈡埛鍚嶇О1锛�"
+        :border-bottom="false"
+        prop="customerName1"
+        style="font-size: small"
+      >
         <picker
           class="item-one item-two"
           style="width: 100%; text-align: right"
-          @change="locNoNumBindChange($event, locNoList)"
-          :value="locNoNumIndex"
-          :range="locNoList"
+          @change="selClientChange($event, selClientList, 'customerName1')"
+          :value="selClientIndex1"
+          :range="selClientList"
           range-key="label"
         >
           <view>
             <text
-              :style="{ color: locNoNumIndex == null ? '#a5abb4' : '#0c0c0c' }"
+              :style="{
+                color: selClientIndex1 == null ? '#a5abb4' : '#0c0c0c',
+              }"
               >{{
-                locNoNumIndex == null
+                selClientIndex1 == null
                   ? "璇烽�夋嫨"
-                  : locNoList[locNoNumIndex].label
+                  : selClientList[selClientIndex1].label
               }}</text
             >
           </view>
         </picker>
         <u-icon
-          v-if="locNoNumIndex == null"
+          v-if="selClientIndex1 == null"
           name="arrow-right"
           color="#687792"
           size="28"
         ></u-icon>
       </u-form-item>
-      <u-form-item label="鍙戣揣閫氱煡鍗曞彿" :border-bottom="false" prop="value4">
-        <u-input v-model="form.value4" placeholder="" disabled />
+      <u-form-item
+        label="鍙戣揣閫氱煡鍗曞彿1锛�"
+        :border-bottom="false"
+        prop="shippingNoticeNo1"
+        style="font-size: small"
+		:label-width="245"
+      >
+        <u-input v-model="form.shippingNoticeNo1" placeholder="" disabled />
       </u-form-item>
-      <u-form-item label="鐢熶骇杞﹂棿" :border-bottom="false" prop="value5">
+      <u-form-item
+        label="瀹㈡埛鍚嶇О2锛�"
+        :border-bottom="false"
+        prop="customerName2"
+        style="font-size: small"
+      >
         <picker
           class="item-one item-two"
           style="width: 100%; text-align: right"
-          @change="locNoNumBindChange($event, locNoList)"
-          :value="locNoNumIndex"
-          :range="locNoList"
+          @change="selClientChange($event, selClientList, 'customerName2')"
+          :value="selClientIndex2"
+          :range="selClientList"
           range-key="label"
         >
           <view>
             <text
-              :style="{ color: locNoNumIndex == null ? '#a5abb4' : '#0c0c0c' }"
+              :style="{
+                color: selClientIndex2 == null ? '#a5abb4' : '#0c0c0c',
+              }"
               >{{
-                locNoNumIndex == null
+                selClientIndex2 == null
                   ? "璇烽�夋嫨"
-                  : locNoList[locNoNumIndex].label
+                  : selClientList[selClientIndex2].label
               }}</text
             >
           </view>
         </picker>
         <u-icon
-          v-if="locNoNumIndex == null"
+          v-if="selClientIndex2 == null"
           name="arrow-right"
           color="#687792"
           size="28"
         ></u-icon>
       </u-form-item>
-      <u-form-item label="鍙哥鍛�" :border-bottom="false" prop="value6">
+      <u-form-item
+        label="鍙戣揣閫氱煡鍗曞彿2锛�"
+        :border-bottom="false"
+        prop="shippingNoticeNo2"
+        style="font-size: small"
+		:label-width="245"
+      >
+        <u-input v-model="form.shippingNoticeNo2" placeholder="" disabled />
+      </u-form-item>
+      <u-form-item
+        label="鐢熶骇杞﹂棿锛�"
+        :border-bottom="false"
+        prop="workshop"
+        style="font-size: small"
+      >
         <picker
           class="item-one item-two"
           style="width: 100%; text-align: right"
-          @change="locNoNumBindChange($event, locNoList)"
-          :value="locNoNumIndex"
-          :range="locNoList"
+          @change="workshopChange($event, workshopList)"
+          :value="workshopIndex"
+          :range="workshopList"
           range-key="label"
+          :disabled="!form.productType"
         >
           <view>
             <text
-              :style="{ color: locNoNumIndex == null ? '#a5abb4' : '#0c0c0c' }"
+              :style="{ color: workshopIndex == null ? '#a5abb4' : '#0c0c0c' }"
               >{{
-                locNoNumIndex == null
+                workshopIndex == null
                   ? "璇烽�夋嫨"
-                  : locNoList[locNoNumIndex].label
+                  : workshopList[workshopIndex].label
               }}</text
             >
           </view>
         </picker>
         <u-icon
-          v-if="locNoNumIndex == null"
+          v-if="workshopIndex == null"
           name="arrow-right"
           color="#687792"
           size="28"
         ></u-icon>
       </u-form-item>
-      <u-form-item label="鍙夎溅宸�" :border-bottom="false" prop="value7">
+      <u-form-item
+        label="鍙哥鍛橈細"
+        :border-bottom="false"
+        prop="weighingOperator"
+        style="font-size: small"
+      >
+        <picker
+          class="item-one item-two"
+          style="width: 100%; text-align: right"
+          @change="weighmanChange($event, weighmanList)"
+          :value="weighmanIndex"
+          :range="weighmanList"
+          range-key="label"
+        >
+          <view>
+            <text
+              :style="{ color: weighmanIndex == null ? '#a5abb4' : '#0c0c0c' }"
+              >{{
+                weighmanIndex == null
+                  ? "璇烽�夋嫨"
+                  : weighmanList[weighmanIndex].label
+              }}</text
+            >
+          </view>
+        </picker>
+        <u-icon
+          v-if="weighmanIndex == null"
+          name="arrow-right"
+          color="#687792"
+          size="28"
+        ></u-icon>
+      </u-form-item>
+      <u-form-item
+        label="鍙夎溅宸ワ細"
+        :border-bottom="false"
+        prop="forkliftOperator"
+        style="font-size: small"
+      >
         <u-input
-          v-model="form.value7"
+          v-model="form.forkliftOperator"
           type="select"
           placeholder="璇烽�夋嫨"
           @click="openForkliftDriverList"
         />
       </u-form-item>
     </u-form>
-    <u-button type="primary" class="bottom-button" @click="submit"
+    <u-button type="primary" class="bottom-button1" @click="submit"
       >鍒涘缓</u-button
     >
 
     <!--杞︾墝鍙� -->
     <modalBg ref="modalBg" :confirm="confirm">
       <u-field
-        v-model="form.value2"
+        v-model="form.licensePlate"
         label="杞︾墝鍙凤細"
         placeholder="璇疯緭鍏�"
         :border-bottom="false"
@@ -155,6 +247,7 @@
       @confirm="confirmSelection"
       @cancel="cancel"
     >
+    <scroll-view scroll-y="true" style="height: 100%; transform: translateZ(0); -webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;"></scroll-view>
       <view class="popup-content">
         <view class="popup-header">
           <checkbox-group @change="checkboxChange">
@@ -169,6 +262,7 @@
           </checkbox-group>
         </view>
       </view>
+    <scroll-view/>
     </u-modal>
   </div>
 </template>
@@ -182,33 +276,7 @@
   },
   data() {
     return {
-      checkboxList: [
-        {
-          label: "宸ヤ汉1",
-          value: "a",
-          checked: false,
-        },
-        {
-          label: "宸ヤ汉2",
-          value: "2",
-          checked: false,
-        },
-        {
-          label: "宸ヤ汉3",
-          value: "3",
-          checked: false,
-        },
-        {
-          label: "宸ヤ汉4",
-          value: "4",
-          checked: false,
-        },
-        {
-          label: "宸ヤ汉5",
-          value: "5",
-          checked: false,
-        },
-      ],
+      checkboxList: [],
       background: {
         backgroundImage: `url(${content_bg})`,
         backgroundAttachment: "fixed",
@@ -218,111 +286,251 @@
       show: false,
       num: 1,
       form: {
-        value0: "",
-        value1: "",
-        value2: "",
-        value3: "",
-        value4: "111",
-        value5: "",
-        value6: "",
-        value7: "",
-        value8: "",
+        replace: "0",
+        productType: "",
+        licensePlate: "",
+        customerName1: "",
+        shippingNoticeNo1: "",
+        customerName2: "",
+        shippingNoticeNo2: "",
+        workshop: "",
+        weighingOperator: "",
+        forkliftOperator: "",
       },
       rules: {
-        value0: [
+        productType: [
           {
             required: true,
             message: "璇烽�夋嫨浜у搧绫诲瀷",
             trigger: ["change"],
           },
         ],
-        value1: [
+        replace: [
           {
             required: true,
             message: "璇烽�夋嫨鏄惁鏇挎崲浜岀淮鐮�",
             trigger: ["change", "blur"],
           },
         ],
-        value2: [
+        licensePlate: [
           {
             required: true,
             message: "璇疯緭鍏ヨ溅鐗屽彿",
             trigger: ["change", "blur"],
           },
         ],
-        // value3: [
-        //   {
-        //     required: true,
-        //     message: "璇烽�夋嫨瀹㈡埛鍚嶇О",
-        //     trigger: ["change", "blur"],
-        //   },
-        // ],
-        value4: [
-          {
-            required: true,
-            message: "璇疯緭鍏ュ彂璐ч�氱煡鍗曞彿",
-            trigger: ["change"],
-          },
-        ],
-        value5: [
+        workshop: [
           {
             required: true,
             message: "璇烽�夋嫨鐢熶骇杞﹂棿",
             trigger: ["change"],
           },
         ],
-        value6: [
+        weighingOperator: [
           {
             required: true,
             message: "璇烽�夋嫨鍙哥鍛�",
             trigger: ["change"],
           },
         ],
-        value7: [
+        forkliftOperator: [
           {
-            type: "array",
+            type: "string",
             required: true,
             message: "璇疯嚦灏戦�夋嫨涓�涓弶杞﹀伐",
             trigger: ["change"],
           },
         ],
       },
-      locNoList: [
-        {
-          value: "0",
-          label: "鍏徃1",
-        },
-        {
-          value: "1",
-          label: "鍏徃2",
-        },
-        {
-          value: "2",
-          label: "鍏徃3",
-        },
-        {
-          value: "3",
-          label: "鍏徃4",
-        },
-        {
-          value: "4",
-          label: "鍏徃5",
-        },
-        {
-          value: "5",
-          label: "鍏徃6",
-        },
-      ],
-      locNoNumIndex: null,
+      // 瀹㈡埛鍚嶇О
+      selClientList: [],
+      selClientIndex1: null,
+      selClientIndex2: null,
+      // 鐢熶骇杞﹂棿
+      workshopList: [],
+      workshopIndex: null,
+      // 鍙哥鍛�
+      weighmanList: [],
+      weighmanIndex: null,
       showModal: false,
       selectedItems: [],
+      id1: "",
+      id2: "",
+      isSubmitting: false,
     };
   },
   onReady() {
     this.$refs.uForm.setRules(this.rules);
+    // 浠呭湪缁勪欢鍒濇鍔犺浇鏃惰幏鍙栨暟鎹�
+    if (this.selClientList.length === 0) {
+      this.fetchClients();
+    }
+    if (this.workshopList.length === 0) {
+      this.fetchWorkshops();
+    }
+    if (this.checkboxList.length === 0) {
+      this.fetchForkliftOperators();
+    }
+    if (this.weighmanList.length === 0) {
+      this.fetchWeighmen();
+    }
   },
-  onShow() {},
+  onShow() {
+    // 閲嶇疆琛ㄥ崟鏁版嵁
+    this.form = {
+      replace: "0",
+      productType: "",
+      licensePlate: "",
+      customerName1: "",
+      shippingNoticeNo1: "",
+      customerName2: "",
+      shippingNoticeNo2: "",
+      workshop: "",
+      weighingOperator: "",
+      forkliftOperator: "",
+    };
+    this.selClientIndex1 = null;
+    this.selClientIndex2 = null;
+    this.workshopIndex = null;
+    this.weighmanIndex = null;
+    this.checkboxList = this.checkboxList.map((item) => ({
+      ...item,
+      checked: false,
+    }));
+    this.$refs.uForm && this.$refs.uForm.resetValidation();
+  },
   methods: {
+    /**
+     * 鑾峰彇瀹㈡埛鍒楄〃
+     */
+    fetchClients() {
+      this.$u.api.NuclearScaleEntry.selClient()
+        .then((res) => {
+          console.log("瀹㈡埛鍚嶇О", res);
+          if (res.code === 0) {
+            res.data.forEach((i) => {
+              const obj = Object.assign({
+                label: i.customerName,
+                value: i.customerName,
+                shippingNoticeNo: i.shippingNoticeNo,
+                id: i.id,
+              });
+              this.selClientList.push(obj);
+            });
+          } else {
+            uni.showToast({
+              title: res.msg || "鑾峰彇瀹㈡埛鍚嶇О澶辫触",
+              icon: "none",
+            });
+          }
+        })
+        .catch((err) => {
+          uni.showToast({
+            title: "缃戠粶閿欒锛岃幏鍙栧鎴峰悕绉板け璐�",
+            icon: "none",
+          });
+          console.error("鑾峰彇瀹㈡埛鍚嶇О閿欒:", err);
+        });
+    },
+
+    /**
+     * 鑾峰彇杞﹂棿鍒楄〃
+     */
+    fetchWorkshops() {
+      this.$u.api
+        .dictData({
+          dictType: "workshop",
+        })
+        .then((res) => {
+          if (res.code === 0 && res.data.length > 0) {
+            res.data.forEach((i) => {
+              const obj = Object.assign({
+                label: i.label,
+                value: i.value,
+              });
+              this.workshopList.push(obj);
+            });
+          } else {
+            uni.showToast({
+              title: res.msg || "鑾峰彇杞﹂棿鍒楄〃澶辫触",
+              icon: "none",
+            });
+          }
+        })
+        .catch((err) => {
+          uni.showToast({
+            title: "缃戠粶閿欒锛岃幏鍙栬溅闂村垪琛ㄥけ璐�",
+            icon: "none",
+          });
+          console.error("鑾峰彇杞﹂棿鍒楄〃閿欒:", err);
+        });
+    },
+
+    /**
+     * 鑾峰彇鍙夎溅宸ュ垪琛�
+     */
+    fetchForkliftOperators() {
+      this.$u.api
+        .dictData({
+          dictType: "forklift",
+        })
+        .then((res) => {
+          if (res.code === 0 && res.data.length > 0) {
+            res.data.forEach((i) => {
+              const obj = Object.assign({
+                label: i.label,
+                value: i.label,
+              });
+              this.checkboxList.push(obj);
+            });
+          } else {
+            uni.showToast({
+              title: res.msg || "鑾峰彇鍙夎溅宸ュ垪琛ㄥけ璐�",
+              icon: "none",
+            });
+          }
+        })
+        .catch((err) => {
+          uni.showToast({
+            title: "缃戠粶閿欒锛岃幏鍙栧弶杞﹀伐鍒楄〃澶辫触",
+            icon: "none",
+          });
+          console.error("鑾峰彇鍙夎溅宸ュ垪琛ㄩ敊璇�:", err);
+        });
+    },
+
+    /**
+     * 鑾峰彇鍙哥鍛樺垪琛�
+     */
+    fetchWeighmen() {
+      this.$u.api
+        .dictData({
+          dictType: "weighing",
+        })
+        .then((res) => {
+          if (res.code === 0 && res.data.length > 0) {
+            res.data.forEach((i) => {
+              const obj = Object.assign({
+                label: i.label,
+                value: i.label,
+              });
+              this.weighmanList.push(obj);
+            });
+          } else {
+            uni.showToast({
+              title: res.msg || "鑾峰彇鍙哥鍛樺垪琛ㄥけ璐�",
+              icon: "none",
+            });
+          }
+        })
+        .catch((err) => {
+          uni.showToast({
+            title: "缃戠粶閿欒锛岃幏鍙栧徃纾呭憳鍒楄〃澶辫触",
+            icon: "none",
+          });
+          console.error("鑾峰彇鍙哥鍛樺垪琛ㄩ敊璇�:", err);
+        });
+    },
     // 澶嶉�夋鍙樺寲浜嬩欢
     checkboxChange(e) {
       const values = e.detail.value;
@@ -336,43 +544,196 @@
 
     // 纭閫夋嫨
     confirmSelection() {
-      this.form.value7 = this.checkboxList
+      // 灏嗛�変腑鐨勫弶杞﹀伐鏍囩鏁扮粍杞负浠ラ�楀彿鍒嗛殧鐨勫瓧绗︿覆
+      this.form.forkliftOperator = this.checkboxList
         .filter((item) => item.checked)
-        .map((item) => item.label);
+        .map((item) => item.label)
+        .join(",");
     },
+    cancel() {},
     openForkliftDriverList() {
       this.showModal = true;
     },
-    locNoNumBindChange(e, storage) {
+    // 瀹㈡埛鍚嶇О
+    selClientChange(e, storage, code) {
       if (storage.length <= 0) {
-        this.locNoNumIndex = null;
+        this.selClientIndex1 = null;
+        this.selClientIndex2 = null;
         return;
       }
-      this.locNoNumIndex = e.target.value;
-      this.form.value3 = storage[this.locNoNumIndex].label;
-    },
-    // 鎵撳紑寮规--鍚庨潰杩橀渶瑕佺洃鍚壂鐮佹灙鎵爜缁撴灉锛岃祴鍊肩粰鎶ュ伐鍗曞彿瀛楁锛岀劧鍚庢墦寮�寮规閫夋嫨璁㈠崟鍙风瓑鎿嶄綔
-    lpn() {
-      this.$refs.modalBg.open();
-    },
-    // 寮规淇濆瓨
-    confirm() {
-      console.log("淇濆瓨", this.form.value1);
-      // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
-    },
-    // 鎻愪氦鎸夐挳
-    submit() {
-      if (!this.$refs.uForm.validate()) {
-        console.log("1111");
-        return;
-      }
-      if (this.form.value3 === "") {
+      const selectedIndex = e.target.value;
+      const selectedCustomer = storage[selectedIndex];
+
+      // 妫�鏌ユ槸鍚﹂�夋嫨浜嗙浉鍚岀殑瀹㈡埛
+      if (code === "customerName1" && this.selClientIndex2 === selectedIndex) {
         uni.showToast({
-          title: "璇峰厛閫夋嫨瀹㈡埛鍚嶇О",
+          title: "涓嶈兘閫夋嫨鐩稿悓鐨勫鎴�",
           icon: "none",
         });
         return;
       }
+      if (code === "customerName2" && this.selClientIndex1 === selectedIndex) {
+        uni.showToast({
+          title: "涓嶈兘閫夋嫨鐩稿悓鐨勫鎴�",
+          icon: "none",
+        });
+        return;
+      }
+
+      if (code === "customerName2") {
+        this.selClientIndex2 = selectedIndex;
+        this.form.customerName2 = selectedCustomer.label;
+        this.form.shippingNoticeNo2 = selectedCustomer.shippingNoticeNo;
+        this.id2 = selectedCustomer.id;
+      }
+      if (code === "customerName1") {
+        this.selClientIndex1 = selectedIndex;
+        this.form.customerName1 = selectedCustomer.label;
+        this.form.shippingNoticeNo1 = selectedCustomer.shippingNoticeNo;
+        this.id1 = selectedCustomer.id;
+      }
+    },
+    // 鐢熶骇杞﹂棿
+    workshopChange(e, storage) {
+      if (storage.length <= 0) {
+        this.workshopIndex = null;
+        return;
+      }
+
+      const productType = this.form.productType;
+      const selectedWorkshop = storage[e.target.value];
+
+      // 妫�鏌ヤ骇鍝佺被鍨嬫槸鍚︿负閾滄潌(鍊间负TG01)
+      if (productType === "TG01") {
+        // 閾滄潌鍙兘閫夋嫨閾滄潌鐩稿叧杞﹂棿
+        if (!selectedWorkshop.label.includes("閾滄潌")) {
+          uni.showModal({
+            title: "鎻愮ず",
+            content: "閾滄潌浜у搧鍙兘閫夋嫨閾滄潌鐩稿叧杞﹂棿",
+            showCancel: false,
+          });
+          return;
+        }
+      } else {
+        // 瀵间綋浜у搧涓嶈兘閫夋嫨閾滄潌杞﹂棿
+        if (selectedWorkshop.label.includes("閾滄潌")) {
+          uni.showModal({
+            title: "鎻愮ず",
+            content: "瀵间綋浜у搧涓嶈兘閫夋嫨閾滄潌杞﹂棿",
+            showCancel: false,
+          });
+          return;
+        }
+      }
+
+      this.workshopIndex = e.target.value;
+      this.form.workshop = selectedWorkshop.label;
+    },
+    // 鍙哥鍛�
+    weighmanChange(e, storage) {
+      if (storage.length <= 0) {
+        this.weighmanIndex = null;
+        return;
+      }
+      this.weighmanIndex = e.target.value;
+      this.form.weighingOperator = storage[this.weighmanIndex].label;
+    },
+    lpn() {
+      this.$refs.modalBg.open();
+    },
+    // 寮规淇濆瓨
+    confirm() {},
+
+    /**
+     * 浜у搧绫诲瀷鍙樺寲鏃舵竻绌鸿溅闂撮�夋嫨
+     */
+    handleProductTypeChange() {
+      this.workshopIndex = null;
+      this.form.workshop = "";
+    },
+    // 鎻愪氦鎸夐挳
+    async submit() {
+      if (this.isSubmitting) return;
+
+      try {
+        // 缁熶竴琛ㄥ崟楠岃瘉
+        if (!(await this.validateForm())) return;
+
+        // 鏋勫缓鎻愪氦鏁版嵁
+        const submitData = this.buildSubmitData().customerList;
+        console.log("鎻愪氦鐨勬暟鎹�", submitData);
+        this.isSubmitting = true;
+        const res = await this.$u.api.NuclearScaleEntry.createMain(submitData);
+
+        if (res.code === 0) {
+          this.$u.toast("鎻愪氦鎴愬姛");
+          uni.navigateBack();
+        } else {
+          uni.showToast({
+            title: res.msg || "鎻愪氦澶辫触锛氫笟鍔″鐞嗛敊璇�",
+            icon: "none",
+          });
+          console.error("涓氬姟閿欒:", res);
+        }
+      } catch (err) {
+        if (err.type === "validation") {
+          uni.showToast({
+            title: err.message,
+            icon: "none",
+          });
+        } else if (err.message.includes("Network Error")) {
+          uni.showToast({
+            title: "缃戠粶杩炴帴閿欒锛岃妫�鏌ョ綉缁滃悗閲嶈瘯",
+            icon: "none",
+          });
+        } else {
+          uni.showToast({
+            title: "绯荤粺閿欒锛岃绋嶅悗閲嶈瘯",
+            icon: "none",
+          });
+        }
+        console.error("鎻愪氦琛ㄥ崟閿欒:", err);
+      } finally {
+        this.isSubmitting = false;
+      }
+    },
+
+    // 缁熶竴琛ㄥ崟楠岃瘉
+    async validateForm() {
+      // 浣跨敤uView琛ㄥ崟楠岃瘉
+      if (!(await this.$refs.uForm.validate())) {
+        return false;
+      }
+
+      // 瀹㈡埛鍚嶇О楠岃瘉
+      if (!this.form.customerName1 || !this.form.customerName2) {
+        throw { type: "validation", message: "璇峰厛閫夋嫨瀹㈡埛鍚嶇О" };
+      }
+
+      return true;
+    },
+
+    // 鏋勫缓鎻愪氦鏁版嵁
+    buildSubmitData() {
+      // 鍒涘缓瀹㈡埛鏁版嵁鐨勮緟鍔╁嚱鏁�
+      const createCustomerItem = (customerIndex) => ({
+        customerName: this.form[`customerName${customerIndex}`],
+        shippingNoticeNo: this.form[`shippingNoticeNo${customerIndex}`],
+        shippingNoticeId: this[`id${customerIndex}`],
+        replace: this.form.replace,
+        productType: this.form.productType,
+        licensePlate: this.form.licensePlate,
+        workshop: this.form.workshop,
+        weighingOperator: this.form.weighingOperator,
+        forkliftOperator: this.form.forkliftOperator,
+      });
+
+      // 鏋勫缓瀹㈡埛鍒楄〃
+      const customerList = [1, 2].map(createCustomerItem);
+
+      return {
+        customerList,
+      };
     },
   },
 };
@@ -404,15 +765,22 @@
 
 .confirm-btn {
   color: #007aff;
-  font-size: 28rpx;
+  font-size: small;
 }
 
 /* 澶嶉�夋鏍峰紡 */
 .checkbox-item {
+  width: 230px;
   display: flex;
   align-items: center;
   padding: 20rpx 0;
   border-bottom: 1rpx solid #f5f5f5;
+  background-color: #f8f9fa;
+
+  .label {
+    position: relative;
+    left: 130px;
+  }
 }
 
 .checkbox-item:last-child {
@@ -424,13 +792,13 @@
 }
 
 .item-one {
-  font-size: 30rpx;
+  font-size: small;
   color: #0c0c0c;
   margin-right: 6rpx;
 }
 
 .item-two {
-  font-size: 30rpx;
+  font-size: small;
   color: #a5abb4;
   margin-right: 6rpx;
 }

--
Gitblit v1.9.3