yyb
3 天以前 4d98f85da66a261583894af65ad9f53d8017bbf6
样式调整,移库增加二维码扫描功能,报工二维码扫描回显
已修改5个文件
1403 ■■■■ 文件已修改
common/http.api.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/product/report/index.vue 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/wareHouse/moveWareHouse/index.vue 619 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/wareHouse/nuclearScale/createwriteoffform.vue 728 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/wareHouse/nuclearScale/index.scss 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/http.api.js
@@ -489,8 +489,9 @@
            //获取任务类型
            getAssemblyProcessType:(params = {}) => vm.$u.get('/admin/dict/type/assembly_process_type')
        },
        // PDA
        // 报工
        workReporting: {
            // 获取车间订单列表
            getWorkshopOrder:(params = {}) => vm.$u.get('/mes/plan/manufacturingOrder/page' , params),
        }
    };
pages/product/report/index.vue
@@ -8,20 +8,20 @@
          <u-radio name="铜杆">铜杆</u-radio>
        </u-radio-group>
      </u-form-item>
      <u-form-item label="报工单号" :border-bottom="false" prop="value1">
        <u-input v-model="form.value1" type="select" placeholder="请扫描报工单号" @click="open" />
      <u-form-item label="报工单号" :border-bottom="false" prop="taskNo">
        <u-input v-model="form.taskNo" type="select" placeholder="请扫描报工单号" @click="open" />
      </u-form-item>
      <u-form-item label="工序" :border-bottom="false" prop="value2">
        <u-input v-model="form.value2" type="select" placeholder="请扫描报工单号" />
      <u-form-item label="工序" :border-bottom="false" prop="name">
        <u-input v-model="form.name" type="select" placeholder="请扫描报工单号" />
      </u-form-item>
      <u-form-item label="订单号" :border-bottom="false" prop="value3">
        <u-input v-model="form.value3" type="select" placeholder="点击选择" @click="openList" />
      <u-form-item label="订单号" :border-bottom="false" prop="moOn">
        <u-input v-model="form.moOn" type="select" placeholder="点击选择" @click="openList" />
      </u-form-item>
      <u-form-item label="零件号" :border-bottom="false" prop="value4">
        <u-input v-model="form.value4" placeholder="" disabled />
      <u-form-item label="零件号" :border-bottom="false" prop="partNo">
        <u-input v-model="form.partNo" placeholder="" disabled />
      </u-form-item>
      <u-form-item label="零件描述" :border-bottom="false" prop="value5">
        <u-input v-model="form.value5" placeholder="" disabled />
      <u-form-item label="零件描述" :border-bottom="false" prop="partName">
        <u-input v-model="form.partName" placeholder="" disabled />
      </u-form-item>
      <u-form-item label="批量大小" :border-bottom="false" prop="value6">
        <u-input v-model="form.value6" placeholder="" disabled />
@@ -87,12 +87,11 @@
        }
      ],
      form: {
        value0: '',
        value1: '',
        value2: '',
        value3: '',
        value4: '',
        value5: '',
        taskNo: '',
        name: '',
        moOn: '',
        partNo: '',
        partName: '',
        value6: '',
        value7: '',
        value8: '',
@@ -184,7 +183,7 @@
      console.log('页面扫码结果:', data.code);
      if (data.code) {
        let codeInfo = JSON.parse(data.code)
        if (codeInfo.WorkNo) {
        if (codeInfo.moOn) {
          // 扫描报工单二维码
          that.saveForm(codeInfo);
        }
@@ -229,10 +228,14 @@
    },
    // 回显扫码的信息-报工单
    saveForm(val) {
      let { WorkNo, ProcessName, ORDER_NO } = val
      this.form.value1 = WorkNo
      this.form.value2 = ProcessName
      this.form.value3 = ORDER_NO
      console.log('回显的数据',val)
      let { moOn, name, ORDER_NO,taskNo,partName,partNo } = val
      this.form.moOn = moOn
      this.form.name = name
      this.form.taskNo = taskNo
      this.form.partName = partName
      this.form.partNo = partNo
      // this.form.value3 = ORDER_NO
    }
  }
}
pages/wareHouse/moveWareHouse/index.vue
@@ -1,317 +1,344 @@
<template>
    <view class="page">
        <view class="movewarehouse-index-bg" />
        <u-navbar title="移库" :background="background" :border-bottom="false" :title-bold="true" title-color="#000"
            back-icon-color="#000" />
        <view class="packing-registration-param">
            <view class="packing-registration-param-view">
                <view class="packing-registration-param-item param-extra">
                    <view class="packing-registration-param-item-left">
                        <text class="item-one">库位</text>
                    </view>
                    <view class="packing-registration-param-item-right">
                        <text class="item-one item-two">{{registerInfo.storageLocation}}</text>
                    </view>
                </view>
                <view class="packing-registration-param-item param-extra">
                    <view class="packing-registration-param-item-left">
                        <text class="item-one">{{`移库记录(${registerInfo.num}条):`}}</text>
                    </view>
                </view>
            </view>
        </view>
        <view class="wrap">
                    <scroll-view class="packing-registration-scroll-list" scroll-y="true">
                <u-cell-group class="packing-registration-scroll-list-group" :border="false">
                    <!-- <div class="tip" style="text-align: center;" v-if="hasScanSnList.length==0">-请扫码-</div> -->
                    <view class="content" v-for="(item, index) in hasScanSnList" :key="index" :index="index">
                        <view class="content-header">
                            <view class="content-header-title">{{ index+1 }}</view>
                        </view>
                        <view class="content-body">
                            <view class="row-list">
                                <view class="_label">
                                    <view class="_label-name">零件号:</view>
                                </view>
                                <view class="_content">
                                    {{ item.value0 }}
                                </view>
                            </view>
                            <view class="row-list">
                                <view class="_label">
                                    <view class="_label-name">批次号:</view>
                                </view>
                                <view class="_content">
                                    {{ item.value1 }}
                                </view>
                            </view>
                                                        <view class="row-list">
                                <view class="_label">
                                    <view class="_label-name">库位号:</view>
                                </view>
                                <view class="_content">
                                    {{ item.value0 }}
                                </view>
                            </view>
                            <view class="row-list">
                                <view class="_label">
                                    <view class="_label-name">盘点数量:</view>
                                </view>
                                <view class="_content">
                                    {{ item.value1 }}
                                </view>
                            </view>
                        </view>
                    </view>
                </u-cell-group>
            </scroll-view>
        </view>
        <u-modal v-model="showModal" title="" :show-cancel-button="true" :show-confirm-button="true" @confirm="confirm"
            @cancel="cancel">
            <view class="popup-content">
                <view class="packing-registration-param">
                    <view class="packing-registration-param-view">
                        <view class="packing-registration-param-item param-extra">
                            <view class="packing-registration-param-item-left">
                                <text class="item-one">批号</text>
                            </view>
                            <view class="packing-registration-param-item-right">
                                <text class="item-one item-two">{{ 111 }}</text>
                            </view>
                        </view>
                        <view class="packing-registration-param-item param-extra">
                            <view class="packing-registration-param-item-left">
                                <text class="item-one">零件描述</text>
                            </view>
                            <view class="packing-registration-param-item-right">
                                <text class="item-one item-two">{{ 111 }}</text>
                            </view>
                        </view>
                        <view class="packing-registration-param-item param-extra">
                            <view class="packing-registration-param-item-left">
                                <text class="item-one">WDR</text>
                            </view>
                            <view class="packing-registration-param-item-right">
                                <text class="item-one item-two">{{ 111 }}</text>
                            </view>
                        </view>
                        <view class="packing-registration-param-item param-extra">
                            <view class="packing-registration-param-item-left">
                                <text class="item-one">现有数量</text>
                            </view>
                            <view class="packing-registration-param-item-right">
                                <text class="item-one item-two">{{ 111 }}</text>
                            </view>
                        </view>
                        <view class="packing-registration-param-item param-extra">
                            <view class="packing-registration-param-item-left">
                                <text class="item-one">当前库位</text>
                            </view>
                            <view class="packing-registration-param-item-right">
                                <text class="item-one item-two">{{ 111 }}</text>
                            </view>
                        </view>
                    </view>
                </view>
            </view>
        </u-modal>
    </view>
  <view class="page">
    <view class="movewarehouse-index-bg" />
    <u-navbar
      title="移库"
      :background="background"
      :border-bottom="false"
      :title-bold="true"
      title-color="#000"
      back-icon-color="#000"
    />
    <view class="packing-registration-param">
      <view class="packing-registration-param-view">
        <view class="packing-registration-param-item param-extra">
          <view class="packing-registration-param-item-left">
            <text class="item-one">库位</text>
          </view>
          <view class="packing-registration-param-item-right">
            <text class="item-one item-two">{{ registerInfo.storageLocation == '' ? "请扫描库位" : registerInfo.storageLocation }}</text>
          </view>
        </view>
        <view class="packing-registration-param-item param-extra">
          <view class="packing-registration-param-item-left">
            <text class="item-one">{{
              `移库记录(${registerInfo.num}条):`
            }}</text>
          </view>
        </view>
      </view>
    </view>
    <view class="wrap">
      <scroll-view class="packing-registration-scroll-list" scroll-y="true">
        <u-cell-group
          class="packing-registration-scroll-list-group"
          :border="false"
        >
          <!-- <div class="tip" style="text-align: center;" v-if="hasScanSnList.length==0">-请扫码-</div> -->
          <view
            class="content"
            v-for="(item, index) in hasScanSnList"
            :key="index"
            :index="index"
          >
            <view class="content-header">
              <view class="content-header-title">{{ index + 1 }}</view>
            </view>
            <view class="content-body">
              <view class="row-list">
                <view class="_label">
                  <view class="_label-name">零件号:</view>
                </view>
                <view class="_content">
                  {{ item.value0 }}
                </view>
              </view>
              <view class="row-list">
                <view class="_label">
                  <view class="_label-name">批次号:</view>
                </view>
                <view class="_content">
                  {{ item.value1 }}
                </view>
              </view>
              <view class="row-list">
                <view class="_label">
                  <view class="_label-name">库位号:</view>
                </view>
                <view class="_content">
                  {{ item.value0 }}
                </view>
              </view>
              <view class="row-list">
                <view class="_label">
                  <view class="_label-name">盘点数量:</view>
                </view>
                <view class="_content">
                  {{ item.value1 }}
                </view>
              </view>
            </view>
          </view>
        </u-cell-group>
      </scroll-view>
    </view>
    <u-modal
      v-model="showModal"
      title=""
      :show-cancel-button="true"
      :show-confirm-button="true"
      @confirm="confirm"
      @cancel="cancel"
    >
      <view class="popup-content">
        <view class="packing-registration-param">
          <view class="packing-registration-param-view">
            <view class="packing-registration-param-item param-extra">
              <view class="packing-registration-param-item-left">
                <text class="item-one">批号</text>
              </view>
              <view class="packing-registration-param-item-right">
                <text class="item-one item-two">{{ 111 }}</text>
              </view>
            </view>
            <view class="packing-registration-param-item param-extra">
              <view class="packing-registration-param-item-left">
                <text class="item-one">零件描述</text>
              </view>
              <view class="packing-registration-param-item-right">
                <text class="item-one item-two">{{ 111 }}</text>
              </view>
            </view>
            <view class="packing-registration-param-item param-extra">
              <view class="packing-registration-param-item-left">
                <text class="item-one">WDR</text>
              </view>
              <view class="packing-registration-param-item-right">
                <text class="item-one item-two">{{ 111 }}</text>
              </view>
            </view>
            <view class="packing-registration-param-item param-extra">
              <view class="packing-registration-param-item-left">
                <text class="item-one">现有数量</text>
              </view>
              <view class="packing-registration-param-item-right">
                <text class="item-one item-two">{{ 111 }}</text>
              </view>
            </view>
            <view class="packing-registration-param-item param-extra">
              <view class="packing-registration-param-item-left">
                <text class="item-one">当前库位</text>
              </view>
              <view class="packing-registration-param-item-right">
                <text class="item-one item-two">{{ 111 }}</text>
              </view>
            </view>
          </view>
        </view>
      </view>
    </u-modal>
    <scan></scan>
  </view>
</template>
<script>
    import scan from "@/components/scan/scan.vue";
    import content_bg from "@/static/custom/moveWareHouse/locNoBg.png";
    export default {
        components: {
            scan,
        },
import scan from "@/components/scan/scan.vue";
import content_bg from "@/static/custom/moveWareHouse/locNoBg.png";
export default {
  components: {
    scan,
  },
        data() {
            return {
                background: {
                    backgroundImage: `url(${content_bg})`,
                    backgroundAttachment: "fixed",
                    backgroundSize: "100% auto",
                    backgroundRepeat: "no-repeat",
                },
                registerInfo: {
                    storageLocation: "LG001",
                    num: 0,
                },
                showModal: true, // 控制弹窗显示隐藏的变量
                hasScanSnList: [
                    {
                        value0: '11111111111111111111111',
                        value1: '111',
                        value2: '111',
                        value3: '111',
                    },
                    {
                        value0: '111',
                        value1: '111',
                        value2: '111',
                        value3: '111',
                    },
                    {
                        value0: '111',
                        value1: '111',
                        value2: '111',
                        value3: '111',
                    },
                    {
                        value0: '111',
                        value1: '111',
                        value2: '111',
                        value3: '111',
                    },
                    {
                        value0: '111',
                        value1: '111',
                        value2: '111',
                        value3: '111',
                    },
                ],
            };
        },
        onLoad() {},
        onShow() {
            let that = this;
            uni.$off("scan"); // 每次进来先 移除全局自定义事件监听器
            uni.$on("scan", function(data) {
                console.log("onscan");
                //扫码成功后的回调,你可以写自己的逻辑代码在这里
                console.log("扫码结果:", data.code);
            });
        },
        onNavigationBarButtonTap(e) {
            uni.scanCode({
                success: (res) => {
                    try {
                        const result = JSON.parse(res.result);
                    } catch (e) {}
                },
            });
        },
        methods: {
            confirm() {
                // 处理确认逻辑
                this.show = false;
            },
            cancel() {
                this.show = false; // 关闭弹窗
            },
        },
    };
  data() {
    return {
      background: {
        backgroundImage: `url(${content_bg})`,
        backgroundAttachment: "fixed",
        backgroundSize: "100% auto",
        backgroundRepeat: "no-repeat",
      },
      registerInfo: {
        storageLocation: "",
        num: 0,
      },
      showModal: true, // 控制弹窗显示隐藏的变量
      hasScanSnList: [
        {
          value0: "11111111111111111111111",
          value1: "111",
          value2: "111",
          value3: "111",
        },
        {
          value0: "111",
          value1: "111",
          value2: "111",
          value3: "111",
        },
        {
          value0: "111",
          value1: "111",
          value2: "111",
          value3: "111",
        },
        {
          value0: "111",
          value1: "111",
          value2: "111",
          value3: "111",
        },
        {
          value0: "111",
          value1: "111",
          value2: "111",
          value3: "111",
        },
      ],
    };
  },
  onLoad() {},
  onShow() {
    let that = this;
    uni.$off("scan"); // 每次进来先 移除全局自定义事件监听器
    uni.$on("scan", function (data) {
      console.log("onscan");
      //扫码成功后的回调,你可以写自己的逻辑代码在这里
      console.log("页面扫码结果:", data.code);
      if (data.code) {
        let codeInfo = JSON.parse(data.code);
        if (codeInfo.WorkNo) {
          // 扫描报工单二维码
          that.saveForm(codeInfo);
        }
      }
    });
  },
  methods: {
    confirm() {
      // 处理确认逻辑
      this.show = false;
    },
    cancel() {
      this.show = false; // 关闭弹窗
    },
        // 回显扫码的信息-报工单
    saveForm(val) {
      let { WorkNo, ProcessName, ORDER_NO } = val
      this.form.value1 = WorkNo
      this.form.value2 = ProcessName
      this.form.value3 = ORDER_NO
    }
  },
};
</script>
<style lang="scss" scoped>
    .person-btn-view {
        display: flex;
        justify-content: space-between;
        margin-top: 300rpx;
    }
.person-btn-view {
  display: flex;
  justify-content: space-between;
  margin-top: 300rpx;
}
    .popup-content {
        width: 600rpx;
        height: 500rpx;
        background-color: #fff;
        border-radius: 8px;
        z-index: 10;
        /* 确保内容在蒙版之上 */
    }
.popup-content {
  width: 600rpx;
  height: 500rpx;
  background-color: #fff;
  border-radius: 8px;
  z-index: 10;
  /* 确保内容在蒙版之上 */
}
    .movewarehouse-index-bg {
        background-color: #f6f9ff;
        background-image: url("~@/static/custom/moveWareHouse/locNoBg.png");
        // background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0));
        padding: 0 20rpx;
        background-attachment: fixed;
        background-size: 100% auto;
        background-repeat: no-repeat;
        position: fixed;
        top: 0;
        bottom: 0;
        width: 100%;
        z-index: -1;
    }
.movewarehouse-index-bg {
  background-color: #f6f9ff;
  background-image: url("~@/static/custom/moveWareHouse/locNoBg.png");
  // background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0));
  padding: 0 20rpx;
  background-attachment: fixed;
  background-size: 100% auto;
  background-repeat: no-repeat;
  position: fixed;
  top: 0;
  bottom: 0;
  width: 100%;
  z-index: -1;
}
    .packing-registration-param {
        padding: 40rpx 30rpx 10rpx 30rpx;
.packing-registration-param {
  padding: 40rpx 30rpx 10rpx 30rpx;
        .packing-registration-param-title {
            display: flex;
            flex-direction: row;
            align-items: center;
            margin-bottom: 30rpx;
  .packing-registration-param-title {
    display: flex;
    flex-direction: row;
    align-items: center;
    margin-bottom: 30rpx;
            .title-label {
                margin-left: 14rpx;
                font-size: 34rpx;
                font-weight: bold;
                color: #283e65;
            }
        }
    .title-label {
      margin-left: 14rpx;
      font-size: 34rpx;
      font-weight: bold;
      color: #283e65;
    }
  }
        .packing-registration-param-view {
            height: 177rpx;
            background-color: #fff;
            border-radius: 10rpx;
            padding: 0rpx 23rpx;
            margin-bottom: 30rpx;
  .packing-registration-param-view {
    height: 177rpx;
    background-color: #fff;
    border-radius: 10rpx;
    padding: 0rpx 23rpx;
    margin-bottom: 30rpx;
            .packing-registration-param-item {
                height: 90rpx;
                border: 1px solid #adc8e4;
                line-height: 90rpx;
                display: flex;
                justify-content: space-between;
                border: none;
    .packing-registration-param-item {
      height: 90rpx;
      border: 1px solid #adc8e4;
      line-height: 90rpx;
      display: flex;
      justify-content: space-between;
      border: none;
                .packing-registration-param-item-left {
                    .item-one {
                        font-size: 30rpx;
                        color: #666666;
                    }
                }
      .packing-registration-param-item-left {
        .item-one {
          font-size: 30rpx;
          color: #666666;
        }
      }
                .packing-registration-param-item-right {
                    display: flex;
                    justify-content: space-between;
      .packing-registration-param-item-right {
        display: flex;
        justify-content: space-between;
                    .item-one {
                        font-size: 30rpx;
                        color: #333333;
                        margin-right: 6rpx;
                    }
        .item-one {
          font-size: 30rpx;
          color: #333333;
          margin-right: 6rpx;
        }
                    .item-two {
                        font-size: 30rpx;
                        color: #a6b4cc;
                        margin-right: 6rpx;
                    }
        .item-two {
          font-size: 30rpx;
          color: #a6b4cc;
          margin-right: 6rpx;
        }
                    .item-three {
                        font-size: 30rpx;
                        color: #214ded;
                        margin-right: 6rpx;
                    }
                }
            }
        .item-three {
          font-size: 30rpx;
          color: #214ded;
          margin-right: 6rpx;
        }
      }
    }
            .param-extra {
                border-bottom: 1px solid #ededed;
            }
        }
    }
    .wrap .packing-registration-scroll-list {
        height: calc(100vh - var(--window-top) - var(--window-bottom) - 360rpx);
        width: 100%;
    }
    .param-extra {
      border-bottom: 1px solid #ededed;
    }
  }
}
.wrap .packing-registration-scroll-list {
  height: calc(100vh - var(--window-top) - var(--window-bottom) - 360rpx);
  width: 100%;
}
    .packing-registration-scroll-list-group {
        ::v-deep .u-cell-item-box {
            background-color: rgba(250, 252, 255, 0.36) !important;
            padding: 0rpx 30rpx;
        }
.packing-registration-scroll-list-group {
  ::v-deep .u-cell-item-box {
    background-color: rgba(250, 252, 255, 0.36) !important;
    padding: 0rpx 30rpx;
  }
  .content {
    font-size: 12px;
@@ -355,7 +382,7 @@
      .row-list {
        height: 60rpx;
        display: flex;
        flex-direction: row;
        flex-direction: row;
        padding: 0px;
        align-items: center;
      }
@@ -386,5 +413,5 @@
      }
    }
  }
    }
}
</style>
pages/wareHouse/nuclearScale/createwriteoffform.vue
@@ -1,437 +1,347 @@
<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' }"
              >{{
    <!-- 核磅录入 -->
    <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
                  ? "请选择"
                  : 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' }"
              >{{
              }}</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
                  ? "请选择"
                  : 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' }"
              >{{
              }}</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
                  ? "请选择"
                  : 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
    >
              }}</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-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.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>
</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: [{
                        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: "工人",
                        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),
                    };
                });
            },
    // 确认选择
    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;
      }
    },
  },
};
            // 确认选择
            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;
                }
            },
        },
    };
</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: 200px;
        display: flex;
        align-items: center;
        padding: 20rpx 0;
        border-bottom: 1rpx solid #f5f5f5;
        .label{
            position: relative;
            left: 130px;
        }
    }
.checkbox-item:last-child {
  border-bottom: none;
}
    .checkbox-item:last-child {
        border-bottom: none;
    }
.checkbox-item .label {
  margin-left: 20rpx;
}
    .checkbox-item .label {
        margin-left: 20rpx;
    }
.item-one {
  font-size: 30rpx;
  color: #0c0c0c;
  margin-right: 6rpx;
}
    .item-one {
        font-size: 30rpx;
        color: #0c0c0c;
        margin-right: 6rpx;
    }
.item-two {
  font-size: 30rpx;
  color: #a5abb4;
  margin-right: 6rpx;
}
    .item-two {
        font-size: 30rpx;
        color: #a5abb4;
        margin-right: 6rpx;
    }
</style>
pages/wareHouse/nuclearScale/index.scss
@@ -52,7 +52,15 @@
.bottom-button {
  position: fixed;
  bottom: 40rpx;
  left: 45%;
  width: calc(100% - 80rpx);
  transform: translateX(-50%);
}
.bottom-button1 {
  position: fixed;
  bottom: 40rpx;
  left: 50%;
  width: calc(100% - 80rpx);
  transform: translateX(-50%);
}