yyb
2025-11-24 6fdf1bc4b692b7466c57bfc08bfc56735e96286b
pages/wareHouse/nuclearScale/createwriteoffform.vue
@@ -23,16 +23,17 @@
        label="产品类型:"
        :border-bottom="false"
        prop="productType"
        style="font-size: small"
        style="font-size: 16px; height: 40px"
      >
        <u-radio-group
          v-model="form.productType"
          @change="handleProductTypeChange"
          style="font-size: small"
          class="radio-group-large"
        >
          <u-radio name="DT01">导体</u-radio>
          <u-radio name="TG01">铜杆</u-radio>
          <u-radio name="DT02">导体2.6</u-radio>
          <u-radio name="DT01" class="radio-large">导体</u-radio>
          <u-radio name="TG01" class="radio-large">铜杆</u-radio>
          <u-radio name="DT02" class="radio-large">导体2.6</u-radio>
          <!-- <u-radio name="ZF01" class="radio-large">直发</u-radio> -->
        </u-radio-group>
      </u-form-item>
      <!-- <u-form-item
@@ -50,24 +51,34 @@
        label="车牌号:"
        :border-bottom="false"
        prop="licensePlate"
        style="font-size: small"
        style="font-size: 16px; height: 40px"
      >
        <u-input
          v-model="form.licensePlate"
          type="select"
          placeholder="请输入车牌号"
          @click="lpn"
          :custom-style="{
            fontSize: '16px',
            height: '40px',
            lineHeight: '40px',
          }"
          :input-style="{
            fontSize: '16px',
            height: '40px',
            lineHeight: '40px',
          }"
        />
      </u-form-item>
      <u-form-item
        label="客户名称1:"
        :border-bottom="false"
        prop="customerName1"
        style="font-size: small"
        style="font-size: 16px; height: 40px"
      >
        <picker
          class="item-one item-two"
          style="width: 100%; text-align: right"
          style="width: 100%; font-size: 16px; text-align: right"
          @change="selClientChange($event, selClientList, 'customerName1')"
          :value="selClientIndex1"
          :range="selClientList"
@@ -94,23 +105,37 @@
        ></u-icon>
      </u-form-item>
      <u-form-item
        label="发货通知单号1:"
        label="发货通知单号:"
        :border-bottom="false"
        prop="shippingNoticeNo1"
        style="font-size: small"
        :label-width="245"
        style="font-size: 16px; height: 40px"
        :label-width="300"
      >
        <u-input v-model="form.shippingNoticeNo1" placeholder="" disabled />
        <u-input
          v-model="form.shippingNoticeNo1"
          placeholder=""
          disabled
          :custom-style="{
            fontSize: '16px',
            height: '40px',
            lineHeight: '40px',
          }"
          :input-style="{
            fontSize: '16px',
            height: '40px',
            lineHeight: '40px',
          }"
        />
      </u-form-item>
      <u-form-item
        label="客户名称2:"
        :border-bottom="false"
        prop="customerName2"
        style="font-size: small"
        style="font-size: 16px; height: 40px"
      >
        <picker
          class="item-one item-two"
          style="width: 100%; text-align: right"
          style="width: 100%; font-size: 16px; text-align: right"
          @change="selClientChange($event, selClientList, 'customerName2')"
          :value="selClientIndex2"
          :range="selClientList"
@@ -137,23 +162,37 @@
        ></u-icon>
      </u-form-item>
      <u-form-item
        label="发货通知单号2:"
        label="发货通知单号:"
        :border-bottom="false"
        prop="shippingNoticeNo2"
        style="font-size: small"
        :label-width="245"
        style="font-size: 16px; height: 40px"
        :label-width="300"
      >
        <u-input v-model="form.shippingNoticeNo2" placeholder="" disabled />
        <u-input
          v-model="form.shippingNoticeNo2"
          placeholder=""
          disabled
          :custom-style="{
            fontSize: '16px',
            height: '40px',
            lineHeight: '40px',
          }"
          :input-style="{
            fontSize: '16px',
            height: '40px',
            lineHeight: '40px',
          }"
        />
      </u-form-item>
      <u-form-item
        label="生产车间:"
        :border-bottom="false"
        prop="workshop"
        style="font-size: small"
        style="font-size: 16px; height: 40px"
      >
        <picker
          class="item-one item-two"
          style="width: 100%; text-align: right"
          style="width: 100%; text-align: right; font-size: 16px"
          @change="workshopChange($event, workshopList)"
          :value="workshopIndex"
          :range="workshopList"
@@ -182,11 +221,11 @@
        label="司磅员:"
        :border-bottom="false"
        prop="weighingOperator"
        style="font-size: small"
        style="font-size: 16px; height: 40px"
      >
        <picker
          class="item-one item-two"
          style="width: 100%; text-align: right"
          style="width: 100%; text-align: right; font-size: 16px"
          @change="weighmanChange($event, weighmanList)"
          :value="weighmanIndex"
          :range="weighmanList"
@@ -214,12 +253,22 @@
        label="叉车工:"
        :border-bottom="false"
        prop="forkliftOperator"
        style="font-size: small"
        style="font-size: 16px; height: 40px"
      >
        <u-input
          v-model="form.forkliftOperator"
          type="select"
          placeholder="请选择"
          :custom-style="{
            fontSize: '16px',
            height: '40px',
            lineHeight: '40px',
          }"
          :input-style="{
            fontSize: '16px',
            height: '40px',
            lineHeight: '40px',
          }"
          @click="openForkliftDriverList"
        />
      </u-form-item>
@@ -416,6 +465,9 @@
                label: i.customerName,
                value: i.customerName,
                shippingNoticeNo: i.shippingNoticeNo,
                receiverAddress: i.receiverAddress,
                contactPerson: i.contactPerson,
                contactPhone: i.contactPhone,
                id: i.id,
              });
              this.selClientList.push(obj);
@@ -566,7 +618,8 @@
      }
      const selectedIndex = e.target.value;
      const selectedCustomer = storage[selectedIndex];
      console.log("selectedCustomer", selectedCustomer);
      console.log("selectedIndex", selectedIndex);
      // 检查是否选择了相同的客户
      if (code === "customerName1" && this.selClientIndex2 === selectedIndex) {
        uni.showToast({
@@ -582,7 +635,56 @@
        });
        return;
      }
      // 检查是否选择了客户名称相同的客户
      if (code === "customerName1" && this.selClientIndex2 !== null) {
        const otherCustomer = storage[this.selClientIndex2];
        if (selectedCustomer.label === otherCustomer.label) {
          uni.showToast({
            title: "不能选择客户名称相同的客户",
            icon: "none",
          });
          return;
        }
      }
      if (code === "customerName2" && this.selClientIndex1 !== null) {
        const otherCustomer = storage[this.selClientIndex1];
        if (selectedCustomer.label === otherCustomer.label) {
          uni.showToast({
            title: "不能选择客户名称相同的客户",
            icon: "none",
          });
          return;
        }
      }
      // 检查不同客户的收货地址、联系人、联系电话是否相同
      if (code === "customerName1" && this.selClientIndex2 !== null) {
        const otherCustomer = storage[this.selClientIndex2];
        if (
          selectedCustomer.receiverAddress !== otherCustomer.receiverAddress ||
          selectedCustomer.contactPerson !== otherCustomer.contactPerson ||
          selectedCustomer.contactPhone !== otherCustomer.contactPhone
        ) {
          uni.showToast({
            title: "两个客户的收货地址、联系人或联系电话不相同,不能同时选择",
            icon: "none",
          });
          return;
        }
      }
      if (code === "customerName2" && this.selClientIndex1 !== null) {
        const otherCustomer = storage[this.selClientIndex1];
        if (
          selectedCustomer.receiverAddress !== otherCustomer.receiverAddress ||
          selectedCustomer.contactPerson !== otherCustomer.contactPerson ||
          selectedCustomer.contactPhone !== otherCustomer.contactPhone
        ) {
          uni.showToast({
            title: "两个客户的收货地址、联系人或联系电话不相同,不能同时选择",
            icon: "none",
          });
          return;
        }
      }
      if (code === "customerName2") {
        this.selClientIndex2 = selectedIndex;
        this.form.customerName2 = selectedCustomer.label;
@@ -607,7 +709,7 @@
      const productType = this.form.productType;
      const selectedWorkshop = storage[e.target.value];
      console.log('选择的车间:', selectedWorkshop);
      console.log("选择的车间:", selectedWorkshop);
      // 检查产品类型是否为铜杆(值为TG01)
      if (productType === "TG01") {
        // 铜杆只能选择铜杆相关车间
@@ -630,7 +732,14 @@
          return;
        }
      }
      if (selectedWorkshop.label.includes("直发") && productType !== "DT02") {
        uni.showModal({
          title: "提示",
          content: "直发产品只能选择导体2.6车间",
          showCancel: false,
        });
        return;
      }
      this.workshopIndex = e.target.value;
      this.form.workshop = selectedWorkshop.value;
    },
@@ -666,18 +775,18 @@
        // 构建提交数据
        //  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,
      }
          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);
@@ -724,7 +833,10 @@
      // 客户名称验证 - 修改为至少有一个有值
      if (!this.form.customerName1 && !this.form.customerName2) {
        throw { type: "validation", message: "请至少选择一个客户名称" };
        throw {
          type: "validation",
          message: "请至少选择一个客户名称",
        };
      }
      return true;
@@ -819,4 +931,18 @@
  color: #a5abb4;
  margin-right: 6rpx;
}
/* 产品类型单选组样式 */
.radio-group-large {
  font-size: 16px !important;
  height: 40px !important;
  display: flex;
  align-items: center;
}
.radio-large {
  font-size: 15px !important;
  // margin-right: 5px;
  transform: scale(1.2);
}
</style>