From 66a4579ac674f0f3958f2f365718c34e3bac49da Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期二, 12 八月 2025 08:32:52 +0800
Subject: [PATCH] 核磅录入

---
 pages/wareHouse/nuclearScale/createwriteoffform.vue | 1019 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 796 insertions(+), 223 deletions(-)

diff --git a/pages/wareHouse/nuclearScale/createwriteoffform.vue b/pages/wareHouse/nuclearScale/createwriteoffform.vue
index a35a595..29fcb08 100644
--- a/pages/wareHouse/nuclearScale/createwriteoffform.vue
+++ b/pages/wareHouse/nuclearScale/createwriteoffform.vue
@@ -1,232 +1,805 @@
 <template>
-	<!-- 鏍哥褰曞叆 -->
-	<div class="page">
-		<view class="packing-registration-bg" />
-		<u-navbar title="鏍哥褰曞叆" :background="background" :border-bottom="false" :title-bold="true" title-color="#000"
-			back-icon-color="#000" />
-		<u-form :model="form" ref="uForm" :label-width="200" :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-radio-group>
-			</u-form-item>
-			<u-form-item label="鏇挎崲浜岀淮鐮�" :border-bottom="false" prop="value1">
-				<u-radio-group v-model="form.value0">
-					<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-input v-model="form.value2" type="select" placeholder="璇疯緭鍏ヨ溅鐗屽彿" @click="lpn" />
-			</u-form-item>
-			<u-form-item label="瀹㈡埛鍚嶇О" :border-bottom="false" prop="value3">
-				<picker class="item-one" style="width: 100%;text-align: right;"
-					@change="locNoNumBindChange($event, locNoList)" :value="locNoNumIndex" :range="locNoList"
-					range-key="label">
-					<view>
-						<text>{{locNoNumIndex==null ? "璇烽�夋嫨":locNoList[locNoNumIndex].label}}</text>
-					</view>
-				</picker>
-				<u-icon v-if="locNoNumIndex == 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>
-			<u-form-item label="鐢熶骇杞﹂棿" :border-bottom="false" prop="value5">
-				<picker class="item-one" style="width: 100%;text-align: right;"
-					@change="locNoNumBindChange($event, locNoList)" :value="locNoNumIndex" :range="locNoList"
-					range-key="label">
-					<view>
-						<text>{{locNoNumIndex==null ? "璇烽�夋嫨":locNoList[locNoNumIndex].label}}</text>
-					</view>
-				</picker>
-				<u-icon v-if="locNoNumIndex == null" name="arrow-right" color="#687792" size="28"></u-icon>
-			</u-form-item>
-			<u-form-item label="鍙哥鍛�" :border-bottom="false" prop="value6">
-				<picker class="item-one" style="width: 100%;text-align: right;"
-					@change="locNoNumBindChange($event, locNoList)" :value="locNoNumIndex" :range="locNoList"
-					range-key="label">
-					<view>
-						<text>{{locNoNumIndex==null ? "璇烽�夋嫨":locNoList[locNoNumIndex].label}}</text>
-					</view>
-				</picker>
-				<u-icon v-if="locNoNumIndex == null" name="arrow-right" color="#687792" size="28"></u-icon>
-			</u-form-item>
-			<u-form-item label="鍙夎溅宸�" :border-bottom="false" prop="value7">
-				<u-input v-model="form.value7" type="select" placeholder="璇烽�夋嫨" @click="openForkliftDriverList" />
-			</u-form-item>
-		</u-form>
-		<u-button type="primary" class="bottom-button" @click="submit">鎻愪氦</u-button>
+  <!-- 鏍哥褰曞叆 -->
+  <div class="page">
+    <view class="packing-registration-bg" />
+    <u-navbar
+      title="鏍哥褰曞叆"
+      :background="background"
+      :border-bottom="false"
+      :title-bold="true"
+      title-color="#000"
+      back-icon-color="#000"
+    />
+    <u-form
+      :model="form"
+      ref="uForm"
+      :label-width="235"
+      labelAlign="left"
+      :rules="rules"
+      :error-type="['toast']"
+      class="uForm"
+    >
+      <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="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="licensePlate"
+        style="font-size: small"
+      >
+        <u-input
+          v-model="form.licensePlate"
+          type="select"
+          placeholder="璇疯緭鍏ヨ溅鐗屽彿"
+          @click="lpn"
+        />
+      </u-form-item>
+      <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="selClientChange($event, selClientList, 'customerName1')"
+          :value="selClientIndex1"
+          :range="selClientList"
+          range-key="label"
+        >
+          <view>
+            <text
+              :style="{
+                color: selClientIndex1 == null ? '#a5abb4' : '#0c0c0c',
+              }"
+              >{{
+                selClientIndex1 == null
+                  ? "璇烽�夋嫨"
+                  : selClientList[selClientIndex1].label
+              }}</text
+            >
+          </view>
+        </picker>
+        <u-icon
+          v-if="selClientIndex1 == null"
+          name="arrow-right"
+          color="#687792"
+          size="28"
+        ></u-icon>
+      </u-form-item>
+      <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="瀹㈡埛鍚嶇О2锛�"
+        :border-bottom="false"
+        prop="customerName2"
+        style="font-size: small"
+      >
+        <picker
+          class="item-one item-two"
+          style="width: 100%; text-align: right"
+          @change="selClientChange($event, selClientList, 'customerName2')"
+          :value="selClientIndex2"
+          :range="selClientList"
+          range-key="label"
+        >
+          <view>
+            <text
+              :style="{
+                color: selClientIndex2 == null ? '#a5abb4' : '#0c0c0c',
+              }"
+              >{{
+                selClientIndex2 == null
+                  ? "璇烽�夋嫨"
+                  : selClientList[selClientIndex2].label
+              }}</text
+            >
+          </view>
+        </picker>
+        <u-icon
+          v-if="selClientIndex2 == null"
+          name="arrow-right"
+          color="#687792"
+          size="28"
+        ></u-icon>
+      </u-form-item>
+      <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="workshopChange($event, workshopList)"
+          :value="workshopIndex"
+          :range="workshopList"
+          range-key="label"
+          :disabled="!form.productType"
+        >
+          <view>
+            <text
+              :style="{ color: workshopIndex == null ? '#a5abb4' : '#0c0c0c' }"
+              >{{
+                workshopIndex == null
+                  ? "璇烽�夋嫨"
+                  : workshopList[workshopIndex].label
+              }}</text
+            >
+          </view>
+        </picker>
+        <u-icon
+          v-if="workshopIndex == null"
+          name="arrow-right"
+          color="#687792"
+          size="28"
+        ></u-icon>
+      </u-form-item>
+      <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.forkliftOperator"
+          type="select"
+          placeholder="璇烽�夋嫨"
+          @click="openForkliftDriverList"
+        />
+      </u-form-item>
+    </u-form>
+    <u-button type="primary" class="bottom-button1" @click="submit"
+      >鍒涘缓</u-button
+    >
 
-		<!--杞︾墝鍙� -->
-		<modalBg ref="modalBg" :confirm="confirm">
-			<u-field v-model="form.value2" label="杞︾墝鍙凤細" placeholder="璇疯緭鍏�" :border-bottom="false">
-			</u-field>
-		</modalBg>
-		<u-modal v-model="showModal" title="" :show-cancel-button="true" :show-confirm-button="true" @confirm="confirm"
-			@cancel="cancel">
-			<!-- <u-checkbox-group> -->
-				<!-- <u-checkbox :name="item.name" v-for="(item, index) in checkboxList" :key="index" v-model="item.value"
-					@change="changeCheckbox">
-					{{ item.name }}
-				</u-checkbox> -->
-			<!-- </u-checkbox-group> -->
-		</u-modal>
-	</div>
+    <!--杞︾墝鍙� -->
+    <modalBg ref="modalBg" :confirm="confirm">
+      <u-field
+        v-model="form.licensePlate"
+        label="杞︾墝鍙凤細"
+        placeholder="璇疯緭鍏�"
+        :border-bottom="false"
+      >
+      </u-field>
+    </modalBg>
+    <!-- 鍙夎溅宸� -->
+    <u-modal
+      v-model="showModal"
+      title=""
+      :show-cancel-button="true"
+      :show-confirm-button="true"
+      @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">
+            <label
+              class="checkbox-item"
+              v-for="(item, index) in checkboxList"
+              :key="index"
+            >
+              <checkbox :value="item.value" :checked="item.checked" />
+              <text class="label">{{ item.label }}</text>
+            </label>
+          </checkbox-group>
+        </view>
+      </view>
+    <scroll-view/>
+    </u-modal>
+  </div>
 </template>
 
 <script>
-	import modalBg from "@/components/modal/modal-bg.vue";
-	import content_bg from "@/static/custom/packing/backBg.png";
-	export default {
-		components: {
-			modalBg
-		},
-		data() {
-			return {
-				// checkboxList: [{
-				// 		name: '宸ヤ汉1',
-				// 		value: '1'
-				// 	},
-				// 	{
-				// 		name: '宸ヤ汉2',
-				// 		value: '2'
-				// 	},
-				// 	{
-				// 		name: '宸ヤ汉3',
-				// 		value: '3'
-				// 	},
-				// 	{
-				// 		name: '宸ヤ汉4',
-				// 		value: '4'
-				// 	},
-				// 	{
-				// 		name: '宸ヤ汉5',
-				// 		value: '5'
-				// 	},
-				// ],
-				background: {
-					backgroundImage: `url(${content_bg})`,
-					backgroundAttachment: "fixed",
-					backgroundSize: "100% auto",
-					backgroundRepeat: "no-repeat",
-				},
-				show: false,
-				num: 1,
-				form: {
-					value0: "",
-					value1: "",
-					value2: "",
-					value3: "",
-					value4: "",
-					value5: "",
-					value6: "",
-					value7: "",
-					value8: "",
-				},
-				rules: {
-					value0: [{
-						required: true,
-						message: "璇烽�夋嫨杞﹂棿",
-						trigger: ["change"],
-					}, ],
-					value1: [{
-						required: true,
-						message: "璇烽�夋嫨鎶ュ伐鍗曞彿",
-						trigger: ["change", "blur"],
-					}, ],
-					value2: [{
-						required: true,
-						message: "璇烽�夋嫨宸ュ簭",
-						trigger: ["change", "blur"],
-					}, ],
-					value3: [{
-						required: true,
-						message: "璇烽�夋嫨璁㈠崟鍙�",
-						trigger: ["change", "blur"],
-					}, ],
-					value9: [{
-						required: true,
-						message: "璇烽�夋嫨鎶ュ伐绫诲瀷",
-						trigger: ["change"],
-					}, ],
-					value10: [{
-						required: true,
-						message: "璇烽�夋嫨鎺ユ敹闆朵欢绫诲瀷",
-						trigger: ["change"],
-					}, ],
-					value11: [{
-						type: "array",
-						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: 0,
-        showModal:false
-			};
-		},
-		onReady() {
-			this.$refs.uForm.setRules(this.rules);
-		},
-		onShow() {},
-  methods: {
-    openForkliftDriverList() {
-        this.showModal = true
+import modalBg from "@/components/modal/modal-bg.vue";
+import content_bg from "@/static/custom/packing/backBg.png";
+export default {
+  components: {
+    modalBg,
+  },
+  data() {
+    return {
+      checkboxList: [],
+      background: {
+        backgroundImage: `url(${content_bg})`,
+        backgroundAttachment: "fixed",
+        backgroundSize: "100% auto",
+        backgroundRepeat: "no-repeat",
       },
-			locNoNumBindChange(e, storage) {
-				if (storage.length <= 0) {
-					this.locNoNumIndex = null
-					return
-				}
-				this.locNoNumIndex = e.target.value
-				this.registerInfo.locNo = storage[this.locNoNumIndex].label
-				console.log('locNoNumIndex', this.registerInfo.locNo)
-			},
-			// 鎵撳紑寮规--鍚庨潰杩橀渶瑕佺洃鍚壂鐮佹灙鎵爜缁撴灉锛岃祴鍊肩粰鎶ュ伐鍗曞彿瀛楁锛岀劧鍚庢墦寮�寮规閫夋嫨璁㈠崟鍙风瓑鎿嶄綔
-			lpn() {
-				this.$refs.modalBg.open();
-			},
-			// 寮规淇濆瓨
-			confirm() {
-				console.log("淇濆瓨", this.form.value1);
-				// 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊�
-			},
-			// 鎻愪氦鎸夐挳
-			submit() {
-				this.show = true;
-			},
-		},
-	};
+      show: false,
+      num: 1,
+      form: {
+        replace: "0",
+        productType: "",
+        licensePlate: "",
+        customerName1: "",
+        shippingNoticeNo1: "",
+        customerName2: "",
+        shippingNoticeNo2: "",
+        workshop: "",
+        weighingOperator: "",
+        forkliftOperator: "",
+      },
+      rules: {
+        productType: [
+          {
+            required: true,
+            message: "璇烽�夋嫨浜у搧绫诲瀷",
+            trigger: ["change"],
+          },
+        ],
+        replace: [
+          {
+            required: true,
+            message: "璇烽�夋嫨鏄惁鏇挎崲浜岀淮鐮�",
+            trigger: ["change", "blur"],
+          },
+        ],
+        licensePlate: [
+          {
+            required: true,
+            message: "璇疯緭鍏ヨ溅鐗屽彿",
+            trigger: ["change", "blur"],
+          },
+        ],
+        workshop: [
+          {
+            required: true,
+            message: "璇烽�夋嫨鐢熶骇杞﹂棿",
+            trigger: ["change"],
+          },
+        ],
+        weighingOperator: [
+          {
+            required: true,
+            message: "璇烽�夋嫨鍙哥鍛�",
+            trigger: ["change"],
+          },
+        ],
+        forkliftOperator: [
+          {
+            type: "string",
+            required: true,
+            message: "璇疯嚦灏戦�夋嫨涓�涓弶杞﹀伐",
+            trigger: ["change"],
+          },
+        ],
+      },
+      // 瀹㈡埛鍚嶇О
+      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() {
+    // 閲嶇疆琛ㄥ崟鏁版嵁
+    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;
+      this.checkboxList = this.checkboxList.map((item) => {
+        return {
+          ...item,
+          checked: values.includes(item.value),
+        };
+      });
+    },
+
+    // 纭閫夋嫨
+    confirmSelection() {
+      // 灏嗛�変腑鐨勫弶杞﹀伐鏍囩鏁扮粍杞负浠ラ�楀彿鍒嗛殧鐨勫瓧绗︿覆
+      this.form.forkliftOperator = this.checkboxList
+        .filter((item) => item.checked)
+        .map((item) => item.label)
+        .join(",");
+    },
+    cancel() {},
+    openForkliftDriverList() {
+      this.showModal = true;
+    },
+    // 瀹㈡埛鍚嶇О
+    selClientChange(e, storage, code) {
+      if (storage.length <= 0) {
+        this.selClientIndex1 = null;
+        this.selClientIndex2 = null;
+        return;
+      }
+      const selectedIndex = e.target.value;
+      const selectedCustomer = storage[selectedIndex];
+
+      // 妫�鏌ユ槸鍚﹂�夋嫨浜嗙浉鍚岀殑瀹㈡埛
+      if (code === "customerName1" && this.selClientIndex2 === selectedIndex) {
+        uni.showToast({
+          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,
+      };
+    },
+  },
+};
 </script>
 
-<style lang="scss">
-	@import "index.scss";
+<style lang="scss" scoped>
+@import "index.scss";
+
+/* 寮圭獥鏍峰紡 */
+.popup-content {
+  padding: 30rpx;
+  max-height: 70vh;
+  overflow-y: auto;
+}
+
+.popup-header {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding-bottom: 20rpx;
+  border-bottom: 1rpx solid #eee;
+  margin-bottom: 20rpx;
+}
+
+.title {
+  font-size: 32rpx;
+  font-weight: bold;
+}
+
+.confirm-btn {
+  color: #007aff;
+  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 {
+  border-bottom: none;
+}
+
+.checkbox-item .label {
+  margin-left: 20rpx;
+}
+
+.item-one {
+  font-size: small;
+  color: #0c0c0c;
+  margin-right: 6rpx;
+}
+
+.item-two {
+  font-size: small;
+  color: #a5abb4;
+  margin-right: 6rpx;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3