yyb
4 天以前 469dc45019c7fdc13a35ee9092181b7405dc6049
pages/product/WorkshopOrderCancellationIssued/index.vue
@@ -17,15 +17,66 @@
            <text class="item-one">订单号</text>
          </view>
          <view class="packing-registration-param-item-right">
            <text class="item-one item-two" @click="seachPersonnelNo()">{{
            <text class="item-one item-two" @click="searchPersonnelNo()">{{
              registerInfo.moNo == "" ? "点击选择" : registerInfo.moNo
            }}</text>
            <u-icon
              name="arrow-right"
              color="#687792"
              size="28"
              @click="seachPersonnelNo()"
              @click="searchPersonnelNo()"
              v-show="registerInfo.moNo == ''"
            ></u-icon>
          </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" @click="searchWork()">{{
              registerInfo.optaskNo == "" ? "点击选择" : registerInfo.optaskNo
            }}</text>
            <u-icon
              name="arrow-right"
              color="#687792"
              size="28"
              @click="searchWork()"
              v-show="registerInfo.optaskNo == ''"
            ></u-icon>
          </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">
            <picker
              class="item-one item-two"
              style="width: 100%; text-align: right"
              @change="machineChange($event, machineList)"
              :value="machineIndex"
              :range="machineList"
              range-key="label"
            >
              <view>
                <text
                  :style="{
                    color: machineIndex == null ? '#a5abb4' : '#a5abb4',
                  }"
                  >{{
                    machineIndex == null
                      ? "点击选择"
                      : machineList[machineIndex].label
                  }}</text
                >
              </view>
            </picker>
            <u-icon
              v-if="machineIndex == null"
              name="arrow-right"
              color="#687792"
              size="28"
            ></u-icon>
          </view>
        </view>
@@ -55,34 +106,18 @@
            <view class="content-body">
              <view class="row-list">
                <view class="_label">
                  <view class="_label-name">批号</view>
                  <view class="_label-name">批号:</view>
                </view>
                <view class="_content">
                  {{ item.moOn }}
                  {{ item.outBatchNo }}
                </view>
              </view>
              <view class="row-list">
                <view class="_label">
                  <view class="_label-name">零件号:</view>
                  <view class="_label-name">取消下发数量:</view>
                </view>
                <view class="_content">
                  {{ item.partNo }}
                </view>
              </view>
              <view class="row-list">
                <view class="_label">
                  <view class="_label-name">零件描述:</view>
                </view>
                <view class="_content">
                  {{ item.partName }}
                </view>
              </view>
              <view class="row-list">
                <view class="_label">
                  <view class="_label-name">取消下发数量</view>
                </view>
                <view class="_content">
                  {{ item.value3 }}
                  {{ item.suppliedQuantity }}
                </view>
              </view>
            </view>
@@ -107,23 +142,41 @@
                <text class="item-one">批号</text>
              </view>
              <view class="packing-registration-param-item-right">
                <text class="item-one item-two">{{ modalList.moOn }}</text>
                <text class="item-one item-two">{{
                  modalList.outBatchNo
                }}</text>
              </view>
            </view>
            <view class="packing-registration-param-item param-extra">
              <view class="packing-registration-param-item-left">
                <text class="item-one">零件号</text>
                <text class="item-one">库位</text>
              </view>
              <view class="packing-registration-param-item-right">
                <text class="item-one item-two">{{ modalList.partNo }}</text>
                <picker
                  class="item-one item-two"
                  style="width: 100%; text-align: right"
                  @change="goSearch($event, locationNoList)"
                  :value="locationIndex"
                  :range="locationNoList"
                  range-key="label"
                >
                  <view>
                    <text
                      :style="{
                        color: locationIndex == null ? '#a5abb4' : '#a5abb4',
                      }"
                      >{{
                        locationIndex == null ? "点击选择" : locationIndex
                      }}</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">{{ modalList.partName }}</text>
                </picker>
                <u-icon
                  v-if="locationIndex == null"
                  name="arrow-right"
                  color="#687792"
                  size="28"
                ></u-icon>
              </view>
            </view>
            <view class="packing-registration-param-item param-extra">
@@ -131,7 +184,10 @@
                <text class="item-one">取消下发数量</text>
              </view>
              <view class="packing-registration-param-item-right">
                <u-input class="item-one item-two" v-model="modalList.value3" />
                <u-input
                  class="item-one item-two"
                  v-model="modalList.returnQuantity"
                />
              </view>
            </view>
          </view>
@@ -147,9 +203,9 @@
  components: {
    scan,
  },
  data() {
    return {
      showModal: false,
      background: {
        backgroundImage: `url(${content_bg})`,
        backgroundAttachment: "fixed",
@@ -162,96 +218,238 @@
      },
      //弹窗列表
      modalList: {
        partName: "",
        partNo: "",
        moNo: "",
        num: "",
        // locationNoName: "",
        // locationNo: "",
        // suppliedQuantity: "",
        // outBatchNo: "",
      },
      //   主页面列表
      registerInfo: {
        operationTaskId: "",
        id: "",
        moNo: "",
        optaskNo: "",
        workstationId: "",
      },
      //   取消下发记录列表
      hasScanSnList: [],
      codeInfoId: "",
      showModal: false,
      machineIndex: null,
      machineList: [],
      locationNoList: [],
      locationIndex: null,
    };
  },
  onShow() {
    let that = this;
    uni.$off("scan"); // 每次进来先 移除全局自定义事件监听器
    if (registerInfo.moNO == null) {
    uni.$on("scan", function (data) {
      console.log("onscan");
      if (that.registerInfo.workstationId == "") {
      uni.showToast({
        icon: "none",
        title: "请先选择订单号!",
          title: "请先选择机台!",
        duration: 2 * 1000,
      });
      return;
    }
    uni.$on("scan", function (data) {
      console.log("onscan");
      if (data.code) {
      //扫码成功后的回调,你可以写自己的逻辑代码在这里
      console.log("扫码结果:", data.code);
      if (data.code) {
        let codeInfo = JSON.parse(data.code);
        this.codeInfoId = codeInfo.id;
        if (codeInfo.moOn) {
        that.codeInfoId = codeInfo.id;
        if (codeInfo) {
          // 扫描报工单二维码
          that.scanHandle(data.code);
          that.scanHandle(codeInfo);
          that.$forceUpdate();
          that.getHandelList();
        }
      }
    });
  },
  methods: {
    getHandelList() {
      this.$u.api.workReporting
        .getProductMainV1({
          current: 1,
          size: -1,
          id: this.codeInfoId,
        })
        .then((res) => {
          this.hasScanSnList = res.data.productOutputList;
    // 库位选择
    goSearch(e, storage, code) {
      if (storage.length <= 0) {
        this.locationIndex = null;
        return;
      }
      this.locationIndex = e.target.label;
      this.modalList.locationNo = storage[this.locationIndex].label;
      this.modalList.locationId = storage[this.locationIndex].label;
    },
    //查询库位
    getHandymanItem(obj) {
      this.locationNoList = [];
      this.$u.api.WorkshopOrderCancellationIssued.cancelDTAOfWorkApplicationPDA(
        {
          workstationId: this.registerInfo.workstationId,
        }
      ).then((res) => {
        this.locationNoList = [];
        this.locationIndex = null;
        this.modalList.locationNo = "";
        if (res.code === 0 && res.data.length > 0) {
          res.data.forEach((item) => {
            const obj = Object.assign({
              label: item.locName,
              value: item.id,
            });
            this.locationNoList.push(obj);
          });
        }
        this.getReturnInfo(obj);
        });
    },
    // 扫码后数据回显
    scanHandle(val) {
      let { moNo, partNo, partName } = val;
      this.modalList.moNo = moNo;
      this.modalList.partNo = partNo;
      this.modalList.partName = partName;
      this.showModal = true;
    //机台
    machineChange(e, storage, code) {
      this.hasScanSnList = [];
      if (storage.length <= 0) {
        this.machineIndex = null;
        return;
      }
      this.machineIndex = e.target.value;
      this.registerInfo.workstationId = storage[this.machineIndex].value;
    },
    // 点击确认后获取下发记录
    // 点击确认后获取消下发记录
    confirm() {
      if (!this.modalList.outBatchNo) {
        this.$u.toast("请输入批号");
        this.$refs.uModal.clearLoading(); // 清除加载状态
        return;
      }
      if (!this.modalList.locationNo) {
        this.$u.toast("请输入库位");
        this.$refs.uModal.clearLoading(); // 清除加载状态
        return;
      }
      if (!this.modalList.returnQuantity) {
        this.$u.toast("请输入取消下发数量");
        this.$refs.uModal.clearLoading(); // 清除加载状态
        return;
      }
      // 处理确认逻辑
      this.$u.api.workReporting._(this.modalList).then((res) => {
      this.$u.api.WorkshopOrderCancellationIssued.feeding([
        this.modalList,
      ]).then((res) => {
        console.log("res", res);
        if (res.code === 0) {
          this.$u.toast("提交成功");
        this.showModal = false;
        this.getHandelList();
          const obj = {
            suppliedQuantity: this.modalList.suppliedQuantity,
            outBatchNo: this.modalList.returnQuantity,
          };
          this.hasScanSnList.push(obj);
        }
      });
    },
    // 模态框取消
    cancel() {
      this.showModal = false; // 关闭弹窗
    },
    // 工单回显
    workNo(val) {
      this.machineList = [];
      this.machineIndex = null;
      this.registerInfo.workstationId = "";
      this.$u.api.WorkshopOrderIssued.selWorkStation(val).then((res) => {
        console.log("111", res);
        if (res.code === 0 && res.data.length > 0) {
          res.data.forEach((i) => {
            const obj = Object.assign({
              label: i.name,
              value: i.id,
            });
            this.machineList.push(obj);
          });
        }
      });
      this.registerInfo.optaskNo = val.optaskNo;
      this.registerInfo.operationTaskId = val.id;
      this.hasScanSnList = [];
    },
    // 订单号回显
    setNo(val) {
      console.log("11111", val);
      this.registerInfo.moNo = val.moNo;
      (this.registerInfo = {
        operationTaskId: "",
        id: val.id,
        moNo: val.moNo,
        optaskNo: "",
        workstationId: "",
      }),
        (this.machineList = []);
      this.machineIndex = null;
      this.hasScanSnList = [];
    },
    //订单号
    seachPersonnelNo() {
    searchPersonnelNo() {
      console.log("车间订单号");
      uni.navigateTo({
        url: "/pages/product/report/orderList",
      });
    },
    //工单
    searchWork() {
      if (this.registerInfo.moNo == "") {
        this.$u.toast("请选择订单号");
        return;
      }
      console.log("子件");
      // 使用uni.navigateTo方法跳转,并通过queryParams传递参数
      uni.navigateTo({
        url:
          "/pages/product/WorkshopOrderIssued/WorkOrderList?id=" +
          encodeURIComponent(JSON.stringify(this.registerInfo.id)),
      });
    },
    // 扫码后数据回显
    scanHandle(val) {
      const { outBatchNo } = val;
      const { workstationId, operationTaskId } = this.registerInfo;
      const obj = {
        outBatchNo: outBatchNo,
        feedingWorkstationId: workstationId,
        operationTaskId: operationTaskId,
      };
      this.$u.api.WorkshopOrderCancellationIssued.checkReturnPartPDA(obj).then(
        (res) => {
          console.log("res", res);
          if (res.code === 0) {
            this.getHandymanItem(obj);
          }
        }
      );
    },
    //   获取基本信息
    getReturnInfo(obj) {
      this.$u.api.WorkshopOrderCancellationIssued.getReturnInfo(obj).then(
        (res) => {
          console.log("res1", res);
          if (res.code === 0) {
            this.locationIndex = res.data.locationNo;
            res.data.outBatchNo = res.data.ifsBatchNo;
            console.log("1", res.data);
            this.modalList = res.data;
            this.showModal = true;
          }
        }
      );
    },
  },
};
</script>
<style lang="scss" scoped>
.popup-content {
  width: 600rpx;
  height: 350rpx;
  background-color: #fff;
  border-radius: 8px;
  z-index: 10;
  /* 确保内容在蒙版之上 */
}
.packing-registration-bg {
  background-color: #f6f9ff;
  background-image: url("~@/static/custom/packing/backBg.png");
@@ -284,7 +482,7 @@
  }
  .packing-registration-param-view {
    height: 180rpx;
    height: 450rpx;
    background-color: #fff;
    border-radius: 10rpx;
    padding: 0rpx 23rpx;
@@ -311,7 +509,7 @@
        .item-one {
          font-size: 30rpx;
          color: #333333;
          color: #060505;
          margin-right: 6rpx;
        }
@@ -336,7 +534,7 @@
}
.wrap .packing-registration-scroll-list {
  height: calc(100vh - var(--window-top) - var(--window-bottom) - 400rpx);
  height: calc(100vh - var(--window-top) - var(--window-bottom) - 550rpx);
  width: 100%;
}