From eeff5fca55deb0de745405871ff1ae52061bc98d Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期五, 18 七月 2025 11:26:12 +0800
Subject: [PATCH] 优化打印蓝牙连接弹出框,增加监听打印回调解决全部打印只能打印一张问题

---
 pages/wareHouse/nuclearScale/createwriteoffform.vue | 1025 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 610 insertions(+), 415 deletions(-)

diff --git a/pages/wareHouse/nuclearScale/createwriteoffform.vue b/pages/wareHouse/nuclearScale/createwriteoffform.vue
index e4f4353..dfaa5e2 100644
--- a/pages/wareHouse/nuclearScale/createwriteoffform.vue
+++ b/pages/wareHouse/nuclearScale/createwriteoffform.vue
@@ -1,437 +1,632 @@
 <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.value1">
-          <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 item-two"
-          style="width: 100%; text-align: right"
-          @change="locNoNumBindChange($event, locNoList)"
-          :value="locNoNumIndex"
-          :range="locNoList"
-          range-key="label"
-        >
-          <view>
-            <text
-              :style="{ color: locNoNumIndex == null ? '#a5abb4' : '#0c0c0c' }"
-              >{{
-                locNoNumIndex == null
+	<!-- 鏍哥褰曞叆 -->
+	<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="210" labelAlign="left" :rules="rules" :error-type="['toast']"
+			class="uForm">
+			<u-form-item label="浜у搧绫诲瀷锛�" :border-bottom="false" prop="productType">
+				<u-radio-group v-model="form.productType" @change="handleProductTypeChange">
+					<u-radio name="1">瀵间綋</u-radio>
+					<u-radio name="2">閾滄潌</u-radio>
+					<u-radio name="3">瀵间綋2.6</u-radio>
+				</u-radio-group>
+			</u-form-item>
+			<u-form-item label="鏇挎崲浜岀淮鐮侊細" :border-bottom="false" prop="replace">
+				<u-radio-group v-model="form.replace">
+					<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">
+				<u-input v-model="form.licensePlate" type="select" placeholder="璇疯緭鍏ヨ溅鐗屽彿" @click="lpn" />
+			</u-form-item>
+			<u-form-item label="瀹㈡埛鍚嶇О1锛�" :border-bottom="false" prop="customerName1">
+				<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
                   ? "璇烽�夋嫨"
-                  : 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 item-two"
-          style="width: 100%; text-align: right"
-          @change="locNoNumBindChange($event, locNoList)"
-          :value="locNoNumIndex"
-          :range="locNoList"
-          range-key="label"
-        >
-          <view>
-            <text
-              :style="{ color: locNoNumIndex == null ? '#a5abb4' : '#0c0c0c' }"
-              >{{
-                locNoNumIndex == 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">
+				<u-input v-model="form.shippingNoticeNo1" placeholder="" disabled />
+			</u-form-item>
+			<u-form-item label="瀹㈡埛鍚嶇О2锛�" :border-bottom="false" prop="customerName2">
+				<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
                   ? "璇烽�夋嫨"
-                  : 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 item-two"
-          style="width: 100%; text-align: right"
-          @change="locNoNumBindChange($event, locNoList)"
-          :value="locNoNumIndex"
-          :range="locNoList"
-          range-key="label"
-        >
-          <view>
-            <text
-              :style="{ color: locNoNumIndex == null ? '#a5abb4' : '#0c0c0c' }"
-              >{{
-                locNoNumIndex == 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">
+				<u-input v-model="form.shippingNoticeNo2" placeholder="" disabled />
+			</u-form-item>
+			<u-form-item label="鐢熶骇杞﹂棿锛�" :border-bottom="false" prop="workshop">
+				<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
                   ? "璇烽�夋嫨"
-                  : 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
-    >
+                  : 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">
+				<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">
+				<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="confirmSelection"
-      @cancel="cancel"
-    >
-      <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>
-    </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">
+			<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>
+		</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: [
-        {
-          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,
-        },
-      ],
-      background: {
-        backgroundImage: `url(${content_bg})`,
-        backgroundAttachment: "fixed",
-        backgroundSize: "100% auto",
-        backgroundRepeat: "no-repeat",
-      },
-      show: false,
-      num: 1,
-      form: {
-        value0: "",
-        value1: "",
-        value2: "",
-        value3: "",
-        value4: "111",
-        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"],
-        //   },
-        // ],
-        value4: [
-          {
-            required: true,
-            message: "璇疯緭鍏ュ彂璐ч�氱煡鍗曞彿",
-            trigger: ["change"],
-          },
-        ],
-        value5: [
-          {
-            required: true,
-            message: "璇烽�夋嫨鐢熶骇杞﹂棿",
-            trigger: ["change"],
-          },
-        ],
-        value6: [
-          {
-            required: true,
-            message: "璇烽�夋嫨鍙哥鍛�",
-            trigger: ["change"],
-          },
-        ],
-        value7: [
-          {
-            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: null,
-      showModal: false,
-      selectedItems: [],
-    };
-  },
-  onReady() {
-    this.$refs.uForm.setRules(this.rules);
-  },
-  onShow() {},
-  methods: {
-    // 澶嶉�夋鍙樺寲浜嬩欢
-    checkboxChange(e) {
-      const values = e.detail.value;
-      this.checkboxList = this.checkboxList.map((item) => {
-        return {
-          ...item,
-          checked: values.includes(item.value),
-        };
-      });
-    },
+	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",
+				},
+				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);
+				});
+			},
 
-    // 纭閫夋嫨
-    confirmSelection() {
-      this.form.value7 = this.checkboxList
-        .filter((item) => item.checked)
-        .map((item) => item.label);
-    },
-    openForkliftDriverList() {
-      this.showModal = true;
-    },
-    locNoNumBindChange(e, storage) {
-      if (storage.length <= 0) {
-        this.locNoNumIndex = 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 === "") {
-        uni.showToast({
-          title: "璇峰厛閫夋嫨瀹㈡埛鍚嶇О",
-          icon: "none",
-        });
-        return;
-      }
-    },
-  },
-};
+			/**
+			 * 鑾峰彇杞﹂棿鍒楄〃
+			 */
+			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];
+
+				// 妫�鏌ヤ骇鍝佺被鍨嬫槸鍚︿负閾滄潌(鍊间负2)
+				if (productType === '2') {
+					// 閾滄潌鍙兘閫夋嫨閾滄潌鐩稿叧杞﹂棿
+					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" scoped>
-@import "index.scss";
+	@import "index.scss";
 
-/* 寮圭獥鏍峰紡 */
-.popup-content {
-  padding: 30rpx;
-  max-height: 70vh;
-  overflow-y: auto;
-}
+	/* 寮圭獥鏍峰紡 */
+	.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;
-}
+	.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;
-}
+	.title {
+		font-size: 32rpx;
+		font-weight: bold;
+	}
 
-.confirm-btn {
-  color: #007aff;
-  font-size: 28rpx;
-}
+	.confirm-btn {
+		color: #007aff;
+		font-size: 28rpx;
+	}
 
-/* 澶嶉�夋鏍峰紡 */
-.checkbox-item {
-  display: flex;
-  align-items: center;
-  padding: 20rpx 0;
-  border-bottom: 1rpx solid #f5f5f5;
-}
+	/* 澶嶉�夋鏍峰紡 */
+	.checkbox-item {
+		width: 230px;
+		display: flex;
+		align-items: center;
+		padding: 20rpx 0;
+		border-bottom: 1rpx solid #f5f5f5;
+		background-color: #f8f9fa;
 
-.checkbox-item:last-child {
-  border-bottom: none;
-}
+		.label {
+			position: relative;
+			left: 130px;
+		}
+	}
 
-.checkbox-item .label {
-  margin-left: 20rpx;
-}
+	.checkbox-item:last-child {
+		border-bottom: none;
+	}
 
-.item-one {
-  font-size: 30rpx;
-  color: #0c0c0c;
-  margin-right: 6rpx;
-}
+	.checkbox-item .label {
+		margin-left: 20rpx;
+	}
 
-.item-two {
-  font-size: 30rpx;
-  color: #a5abb4;
-  margin-right: 6rpx;
-}
+	.item-one {
+		font-size: 30rpx;
+		color: #0c0c0c;
+		margin-right: 6rpx;
+	}
+
+	.item-two {
+		font-size: 30rpx;
+		color: #a5abb4;
+		margin-right: 6rpx;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3