From 7609c865e80fea169c5c393c55631628aef2f6ed Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期三, 24 九月 2025 17:15:04 +0800
Subject: [PATCH] 核磅录入创建核磅单的创建逻辑修改/重复扫码相同数据添加多条问题修复
---
pages/wareHouse/nuclearScale/createwriteoffform.vue | 1036 +++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 813 insertions(+), 223 deletions(-)
diff --git a/pages/wareHouse/nuclearScale/createwriteoffform.vue b/pages/wareHouse/nuclearScale/createwriteoffform.vue
index a35a595..c76cee3 100644
--- a/pages/wareHouse/nuclearScale/createwriteoffform.vue
+++ b/pages/wareHouse/nuclearScale/createwriteoffform.vue
@@ -1,232 +1,822 @@
<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"
+ >
+ <view class="popup-content" style="padding: 20rpx">
+ <scroll-view
+ scroll-y="true"
+ style="height: 400rpx; transform: translateZ(0)"
+ >
+ <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>
+ </scroll-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: [{
- // 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.form.customerNo2 = selectedCustomer.customerNo;
+ this.id2 = selectedCustomer.id;
+ }
+ if (code === "customerName1") {
+ this.selClientIndex1 = selectedIndex;
+ this.form.customerName1 = selectedCustomer.label;
+ this.form.shippingNoticeNo1 = selectedCustomer.shippingNoticeNo;
+ this.form.customerNo1 = selectedCustomer.customerNo;
+ 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;
+ const submitData = {
+ customerName1: this.form.customerName1,
+ shippingNoticeNo1: this.form.shippingNoticeNo1,
+ customerName2: this.form.customerName2,
+ shippingNoticeNo2: this.form.shippingNoticeNo2,
+ customerNo1: this.form.customerNo1,
+ customerNo2: this.form.customerNo2,
+ productType: this.form.productType,
+ licensePlate: this.form.licensePlate,
+ workshop: this.form.workshop,
+ weighingOperator: this.form.weighingOperator,
+ forkliftOperator: this.form.forkliftOperator,
+ }
+ 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