From 469dc45019c7fdc13a35ee9092181b7405dc6049 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期二, 08 七月 2025 09:24:21 +0800
Subject: [PATCH] 车间订单取消下发接口联调

---
 pages/product/WorkshopOrderCancellationIssued/index.vue |  366 ++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 282 insertions(+), 84 deletions(-)

diff --git a/pages/product/WorkshopOrderCancellationIssued/index.vue b/pages/product/WorkshopOrderCancellationIssued/index.vue
index 5637244..a576f90 100644
--- a/pages/product/WorkshopOrderCancellationIssued/index.vue
+++ b/pages/product/WorkshopOrderCancellationIssued/index.vue
@@ -1,4 +1,4 @@
-//杞﹂棿璁㈠崟鍙栨秷涓嬪彂
+// 杞﹂棿璁㈠崟鍙栨秷涓嬪彂
 <template>
   <view class="page">
     <view class="packing-registration-bg" />
@@ -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>
-              </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
+                  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>
+                </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",
@@ -160,98 +216,240 @@
         fontSize: "32rpx",
         whiteSpace: "nowrap",
       },
-      //寮圭獥鍒楄〃
+      // 寮圭獥鍒楄〃
       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.showToast({
-        icon: "none",
-        title: "璇峰厛閫夋嫨璁㈠崟鍙凤紒",
-        duration: 2 * 1000,
-      });
-      return;
-    }
     uni.$on("scan", function (data) {
       console.log("onscan");
-      //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
-      console.log("鎵爜缁撴灉锛�", data.code);
+      if (that.registerInfo.workstationId == "") {
+        uni.showToast({
+          icon: "none",
+          title: "璇峰厛閫夋嫨鏈哄彴锛�",
+          duration: 2 * 1000,
+        });
+        return;
+      }
       if (data.code) {
+        //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
+        console.log("鎵爜缁撴灉锛�", 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;
     },
-    // 鎵爜鍚庢暟鎹洖鏄�
-    scanHandle(val) {
-      let { moNo, partNo, partName } = val;
-      this.modalList.moNo = moNo;
-      this.modalList.partNo = partNo;
-      this.modalList.partName = partName;
-
-      this.showModal = true;
+    //鏌ヨ搴撲綅
+    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);
+      });
     },
-    // 鐐瑰嚮纭鍚庤幏鍙栦笅鍙戣褰�
+    //鏈哄彴
+    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);
-        this.showModal = false;
-
-        this.getHandelList();
+        if (res.code === 0) {
+          this.$u.toast("鎻愪氦鎴愬姛");
+          this.showModal = false;
+          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%;
 }
 

--
Gitblit v1.9.3