From 0043a1a24cbed3ddd40c56c7931da9c5d14e4bc2 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期二, 19 八月 2025 17:09:40 +0800
Subject: [PATCH] PDA报工页面增加投料功能,扫描二维码取消获取产出记录列表,放开取消报工页面,编写取消报工逻辑,联调取消报工接口

---
 pages/product/report/components/saveForm.vue |  381 ++++++--
 pages.json                                   |   20 
 pages/product/report/index.vue               | 1112 +++++++++++++--------------
 pages/product/cancelReport/index.vue         |  845 ++++++++++----------
 pages/sys/home/index.vue                     |   30 
 common/http.api.js                           |    1 
 6 files changed, 1,258 insertions(+), 1,131 deletions(-)

diff --git a/common/http.api.js b/common/http.api.js
index 44fb092..c040bf7 100644
--- a/common/http.api.js
+++ b/common/http.api.js
@@ -507,6 +507,7 @@
 		cancelReporting: {
 			// 鍙栨秷鎶ュ伐纭
 			cancelDTAOfWorkApplication: (params = {}) => vm.$u.get('/mes/product/cancelDTAOfWorkApplication', params),
+			selInputPartInfoPDA: (params = {}) => vm.$u.get('/mes/stock/selInputPartInfoPDA',params),
 		},
 		// 杞﹂棿璁㈠崟涓嬪彂
 		WorkshopOrderIssued: {
diff --git a/pages.json b/pages.json
index 9cf2ae7..f12e773 100644
--- a/pages.json
+++ b/pages.json
@@ -792,16 +792,16 @@
         "navigationBarBackgroundColor": "#3281FF"
       }
     },
-    // // 鍙栨秷鎶ュ伐
-    // {
-    //   "path": "pages/product/cancelReport/index",
-    //   "style": {
-    //     "navigationStyle": "custom",
-    //     "navigationBarTitleText": "",
-    //     // "navigationBarBackgroundColor": "#3281FF"
-    //     "enablePullDownRefresh": false
-    //   }
-    // },
+    // 鍙栨秷鎶ュ伐
+    {
+      "path": "pages/product/cancelReport/index",
+      "style": {
+        "navigationStyle": "custom",
+        "navigationBarTitleText": "",
+        // "navigationBarBackgroundColor": "#3281FF"
+        "enablePullDownRefresh": false
+      }
+    },
     // 鎺ユ敹(閾滄潌)
     {
       "path": "pages/product/receive/index",
diff --git a/pages/product/cancelReport/index.vue b/pages/product/cancelReport/index.vue
index fd026e7..b453976 100644
--- a/pages/product/cancelReport/index.vue
+++ b/pages/product/cancelReport/index.vue
@@ -1,311 +1,336 @@
 <template>
-  <!-- 鍙栨秷鎶ュ伐 -->
-  <view 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="280"
-      :rules="rules"
-      :error-type="['toast']"
-      class="uForm"
-    >
-      <u-form-item label="璁㈠崟鍙�" :border-bottom="false" prop="moNo">
-        <u-input
-          v-model="form.moNo"
-          type="select"
-          placeholder="鐐瑰嚮閫夋嫨"
-          @click="openList"
-        />
-      </u-form-item>
-      <u-form-item
-        label="鍙栨秷鎶ュ伐璁板綍锛�"
-        :border-bottom="false"
-        prop="value12"
-      ></u-form-item>
-    </u-form>
-    <view class="wrap">
-      <scroll-view class="finishProductIn-locno-scroll-list" scroll-y="true">
-        <u-cell-group
-          class="finishProductIn-locno-scroll-list-group"
-          :border="false"
-        >
-          <view
-            class="content"
-            v-for="(item, index) in list"
-            :key="item.moNo"
-            :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.moNo }}
-                </view>
-              </view>
-              <view class="row-list">
-                <view class="_label">
-                  <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.qtyRequired }}
-                </view>
-              </view>
-            </view>
-          </view>
-        </u-cell-group>
-      </scroll-view>
-    </view>
-    <u-modal
-      width="720rpx"
-      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">{{ detailedList.moNo }}</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">{{ detailedList.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">
-                <span class="item-one">{{
+	<!-- 鍙栨秷鎶ュ伐 -->
+	<view 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="280" :rules="rules" :error-type="['toast']" class="uForm">
+			<u-form-item label="璁㈠崟鍙�" :border-bottom="false" prop="moNo">
+				<u-input v-model="form.moNo" type="select" placeholder="鐐瑰嚮閫夋嫨" @click="openList" />
+			</u-form-item>
+			<u-form-item label="宸ュ崟" :border-bottom="false" prop="optaskNo">
+				<u-input v-model="form.optaskNo" type="select" placeholder="鐐瑰嚮閫夋嫨" @click="seachWork" />
+			</u-form-item>
+			<u-form-item label="鍙栨秷鎶ュ伐璁板綍锛�" :border-bottom="false" prop="value12"></u-form-item>
+		</u-form>
+		<view class="wrap">
+			<scroll-view class="finishProductIn-locno-scroll-list" scroll-y="true">
+				<u-cell-group class="finishProductIn-locno-scroll-list-group" :border="false">
+					<view class="content" v-for="(item, index) in list" :key="item.moNo" :index="index"
+						@click="cancelReport(item,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.outBatchNo }}
+								</view>
+							</view>
+							<view class="row-list">
+								<view class="_label">
+									<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.qtyRequired }}
+								</view>
+							</view>
+						</view>
+					</view>
+				</u-cell-group>
+			</scroll-view>
+		</view>
+		<u-modal width="720rpx" v-model="showModal" title="" :show-cancel-button="true" :show-confirm-button="true"
+			@confirm="confirmModle" @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">{{ detailedList.outBatchNo }}</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">{{ detailedList.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">
+								<span class="item-one">{{
                   detailedList.partName
                 }}</span>
-              </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">
-                <span class="item-one">{{
+							</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">
+								<span class="item-one">{{
                   detailedList.netWeight
                 }}</span>
-              </view>
-            </view>
-          </view>
-        </view>
-      </view>
-    </u-modal>
-    <scan></scan>
-  </view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+		</u-modal>
+		<scan></scan>
+	</view>
 </template>
 
 <script>
-import content_bg from "@/static/custom/packing/backBg.png";
-import scan from "@/components/scan/scan.vue";
+	import content_bg from "@/static/custom/packing/backBg.png";
+	import scan from "@/components/scan/scan.vue";
 
-export default {
-  components: {
-    scan,
-  },
-  data() {
-    return {
-      background: {
-        backgroundImage: `url(${content_bg})`,
-        backgroundAttachment: "fixed",
-        backgroundSize: "100% auto",
-        backgroundRepeat: "no-repeat",
+	export default {
+		components: {
+			scan,
+		},
+		data() {
+			return {
+				background: {
+					backgroundImage: `url(${content_bg})`,
+					backgroundAttachment: "fixed",
+					backgroundSize: "100% auto",
+					backgroundRepeat: "no-repeat",
+				},
+				form: {
+					moNo: "",
+					optaskNo: "",
+					id: "",
+				},
+				detailedList: {},
+				list: [],
+				rules: {},
+        showModal: false,
+        id: "",
+			};
+		},
+		onReady() {},
+		// onShow() {
+		//   let that = this;
+		//   uni.$off("scan"); // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+		//   uni.$on("scan", function (data) {
+		//     console.log("onscan");
+		//     //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
+		//     console.log("椤甸潰鎵爜缁撴灉锛�", data.code);
+		//     if (data.code) {
+		//       let codeInfo = JSON.parse(data.code);
+		//         console.log('222')
+		//       if (codeInfo.moNo) {
+		//         console.log('1111')
+		//         // 鎵弿鎶ュ伐鍗曚簩缁寸爜
+		//         that.saveForm(codeInfo);
+		// 	// that.$forceUpdate();
+		//       }
+		//     }
+		//   });
+		// },
+		methods: {
+			//宸ュ崟
+			seachWork() {
+				if (this.form.moNo == "") {
+					this.$u.toast("璇烽�夋嫨璁㈠崟鍙�");
+					return;
+				}
+				// 浣跨敤uni.navigateTo鏂规硶璺宠浆锛屽苟閫氳繃queryParams浼犻�掑弬鏁�
+				uni.navigateTo({
+					url: "/pages/product/WorkshopOrderIssued/WorkOrderList?id=" +
+						encodeURIComponent(JSON.stringify(this.form.id)),
+				});
+			},
+			cancel() {
+				this.showModal = false; // 鍏抽棴寮圭獥
+			},
+			openList() {
+				uni.navigateTo({
+					url: "/pages/product/report/orderList",
+				});
+			},
+			setNo(val) {
+				this.form.moNo = val.moNo;
+				this.form.id = val.id;
+			},
+			// 鍥炴樉鎵爜鐨勪俊鎭�-鎶ュ伐鍗�
+			saveForm(val) {
+				console.log('1111@@@@@@1', this.form)
+				if (this.form.moNo == '') {
+					uni.showToast({
+						icon: "none",
+						title: "璇峰厛閫夋嫨璁㈠崟鍙凤紒",
+						duration: 2 * 1000,
+					});
+					return;
+				}
+				if (this.form.moNo != val.moNo) {
+					uni.showToast({
+						icon: "none",
+						title: "鎵弿鐨勪簩缁寸爜涓庤璁㈠崟涓嶄竴鑷�",
+						duration: 2 * 1000,
+					});
+					return;
+				}
+				this.detailedList = val;
+				this.showModal = true;
+			},
+			// 宸ュ崟鍥炴樉
+			workNo(val) {
+        this.id = val.id;
+        this.getBGList();
+				this.form.optaskNo = val.optaskNo;
       },
-      form: {
-        moNo: "",
+      getBGList() {
+        this.$u.api.workReporting
+				.getProductMainV1({
+					current: 1,
+					size: -1,
+					id:this.id,
+				})
+          .then((res) => {
+          console.log('res',res)
+					this.list = res.data.productOutputList;
+				});
       },
-      detailedList: {},
-      list: [],
-      rules: {},
-      showModal: false,
-    };
-  },
-  onReady() {},
-  onShow() {
-    let that = this;
-    uni.$off("scan"); // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
-    uni.$on("scan", function (data) {
-      console.log("onscan");
-      //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
-      console.log("椤甸潰鎵爜缁撴灉锛�", data.code);
-      if (data.code) {
-        let codeInfo = JSON.parse(data.code);
-          console.log('222')
-        if (codeInfo.moNo) {
-          console.log('1111')
-          // 鎵弿鎶ュ伐鍗曚簩缁寸爜
-          that.saveForm(codeInfo);
-		// that.$forceUpdate();
-        }
-      }
-    });
-  },
-  methods: {
-    // 鐐瑰嚮纭鍚庤幏鍙栧彇娑堟姤宸ヨ褰�
-    confirm() {
-      // 澶勭悊纭閫昏緫
-      this.$u.api.cancelReporting.cancelDTAOfWorkApplication({outBatchNo:this.detailedList.outBatchNo}).then((res) => {
-        console.log("res", res);
-        this.list = res.data.records;
-        this.showModal = false;
-      });
-    },
-    cancel() {
-      this.showModal = false; // 鍏抽棴寮圭獥
-    },
-    openList() {
-      uni.navigateTo({
-        url: "/pages/product/report/orderList",
-      });
-    },
-    setNo(val) {
-      this.form.moNo = val.moNo;
-    },
-    // 鍥炴樉鎵爜鐨勪俊鎭�-鎶ュ伐鍗�
-    saveForm(val) {
-      console.log('1111@@@@@@1',this.form)
-      if (this.form.moNo == '') {
-        uni.showToast({
-          icon: "none",
-          title: "璇峰厛閫夋嫨璁㈠崟鍙凤紒",
-          duration: 2 * 1000,
-        });
-        return;
-      }
-      if (this.form.moNo != val.moNo) {
-        uni.showToast({
-          icon: "none",
-          title: "鎵弿鐨勪簩缁寸爜涓庤璁㈠崟涓嶄竴鑷�",
-          duration: 2 * 1000,
-        });
-        return;
-      }
-      this.detailedList = val;
-      this.showModal = true;
-    },
-  },
-};
+			// 鍙栨秷鎶ュ伐
+			cancelReport(item, index) {
+				let that = this;
+				uni.showModal({
+					title: "鎻愮ず",
+					content: "鏄惁纭鍙栨秷鎵规" + item.outBatchNo + "鐨勬姤宸�",
+					success: function(res) {
+						if (res.confirm) {
+							that.detailedList = item;
+							that.showModal = true;
+						} else if (res.cancel) {
+							return;
+						}
+					},
+				});
+			},
+			confirmModle() {
+				console.log("鐐瑰嚮纭鍚庤幏鍙栧彇娑堟姤宸ヨ褰�");
+				// 澶勭悊纭閫昏緫
+				this.$u.api.cancelReporting
+					.cancelDTAOfWorkApplication({
+						outBatchNo: this.detailedList.outBatchNo,
+						outputId: this.detailedList.id
+					})
+					.then((res) => {
+						console.log("res", res);
+						this.getBGList();
+						this.showModal = false;
+						// this.getHandelList();
+						this.$u.toast("鍙栨秷鎶ュ伐鎴愬姛");
+					});
+			},
+		},
+	};
 </script>
 
 <style lang="scss" scoped>
-.packing-registration-param {
-  padding: 40rpx 30rpx 10rpx 30rpx;
-  height: 350px;
-  overflow: hidden;
+	.packing-registration-param {
+		padding: 40rpx 30rpx 10rpx 30rpx;
+		height: 350px;
+		overflow: hidden;
 
-  .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 {
-		  word-break: break-all;
-          font-size: 30rpx;
-          color: #666666;
-        }
-      }
+				.packing-registration-param-item-left {
+					.item-one {
+						word-break: break-all;
+						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: #060505;
-          margin-right: 6rpx;
-		  word-break: break-all;
-        }
+					.item-one {
+						font-size: 30rpx;
+						color: #060505;
+						margin-right: 6rpx;
+						word-break: break-all;
+					}
 
-        .item-two {
-          font-size: 15rpx;
-          color: #a6b4cc;
-          margin-right: 6rpx;
-        }
+					.item-two {
+						font-size: 15rpx;
+						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;
-    }
-  }
-}
+			.param-extra {
+				border-bottom: 1px solid #ededed;
+			}
+		}
+	}
+
 	.popup-content {
 		width: 720rpx;
 		height: 400rpx;
@@ -314,148 +339,150 @@
 		z-index: 10;
 		/* 纭繚鍐呭鍦ㄨ挋鐗堜箣涓� */
 	}
-.page {
-  box-sizing: border-box;
-}
 
-.packing-registration-bg {
-  background-color: #f6f9ff;
-  background-image: url("~@/static/custom/packing/backBg.png");
-  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;
-}
+	.page {
+		box-sizing: border-box;
+	}
 
-.uForm {
-  background: #fff;
-  margin: 40rpx 30rpx;
-  padding: 20rpx 30rpx;
-  border-radius: 16rpx;
-}
+	.packing-registration-bg {
+		background-color: #f6f9ff;
+		background-image: url("~@/static/custom/packing/backBg.png");
+		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;
+	}
 
-::v-deep .u-input__input {
-  text-align: right !important;
-}
+	.uForm {
+		background: #fff;
+		margin: 40rpx 30rpx;
+		padding: 20rpx 30rpx;
+		border-radius: 16rpx;
+	}
 
-.u-form-item {
-  padding: 0;
-}
-.wrap .finishProductIn-locno-scroll-list {
-  height: calc(100vh - var(--window-top) - var(--window-bottom) - 242rpx);
-  width: 100%;
-}
+	::v-deep .u-input__input {
+		text-align: right !important;
+	}
 
-.finishProductIn-locno-scroll-list-group {
-  ::v-deep .u-cell-item-box {
-    background-color: rgba(250, 252, 255, 0.36) !important;
-    padding: 0rpx 30rpx;
-  }
+	.u-form-item {
+		padding: 0;
+	}
 
-  .content {
-    font-size: 12px;
-    background-color: #ffffff;
-    box-sizing: border-box;
-    border-radius: 10rpx;
-    margin: 0rpx 0rpx 16rpx;
-    padding: 20rpx 8rpx;
-    box-shadow: none;
-    display: flex;
-    align-items: center;
+	.wrap .finishProductIn-locno-scroll-list {
+		height: calc(100vh - var(--window-top) - var(--window-bottom) - 242rpx);
+		width: 100%;
+	}
 
-    white-space: normal;
+	.finishProductIn-locno-scroll-list-group {
+		::v-deep .u-cell-item-box {
+			background-color: rgba(250, 252, 255, 0.36) !important;
+			padding: 0rpx 30rpx;
+		}
 
-    .content-header {
-      width: 40rpx;
-      height: 90rpx;
-      display: flex;
-      align-items: center;
-      overflow-wrap: break-word;
+		.content {
+			font-size: 12px;
+			background-color: #ffffff;
+			box-sizing: border-box;
+			border-radius: 10rpx;
+			margin: 0rpx 0rpx 16rpx;
+			padding: 20rpx 8rpx;
+			box-shadow: none;
+			display: flex;
+			align-items: center;
 
-      .content-header-icon {
-        background-image: url("~@/static/custom/moveWareHouse/header_icon.png");
-        background-size: 100% auto;
-        background-repeat: no-repeat;
-        height: 28rpx;
-        width: 28rpx;
-      }
+			white-space: normal;
 
-      .content-header-title {
-        width: 40rpx;
-        // margin-left: 11rpx;
-        font-size: 26rpx;
-        color: #333333;
-      }
-    }
+			.content-header {
+				width: 40rpx;
+				height: 90rpx;
+				display: flex;
+				align-items: center;
+				overflow-wrap: break-word;
 
-    .content-body {
-      flex: 1;
-      background: #f5f9ff;
-      border-radius: 10rpx;
-      padding: 0rpx 23rpx;
+				.content-header-icon {
+					background-image: url("~@/static/custom/moveWareHouse/header_icon.png");
+					background-size: 100% auto;
+					background-repeat: no-repeat;
+					height: 28rpx;
+					width: 28rpx;
+				}
 
-      .row-list {
-        height: 60rpx;
-        display: flex;
-        flex-direction: row;
-        padding: 0px;
-        align-items: center;
-      }
+				.content-header-title {
+					width: 40rpx;
+					// margin-left: 11rpx;
+					font-size: 26rpx;
+					color: #333333;
+				}
+			}
 
-      .row-list ._label {
-        display: flex;
-        flex: 0.8;
-        color: #909399;
-        align-items: center;
+			.content-body {
+				flex: 1;
+				background: #f5f9ff;
+				border-radius: 10rpx;
+				padding: 0rpx 23rpx;
 
-        ._label-icon-1 {
-          background-image: url("~@/static/custom/moveWareHouse/label-icon-1.png");
-          background-size: 100% auto;
-          background-repeat: no-repeat;
-          height: 26rpx;
-          width: 26rpx;
-        }
+				.row-list {
+					height: 60rpx;
+					display: flex;
+					flex-direction: row;
+					padding: 0px;
+					align-items: center;
+				}
 
-        ._label-icon-2 {
-          background-image: url("~@/static/custom/moveWareHouse/label-icon-2.png");
-          background-size: 100% auto;
-          background-repeat: no-repeat;
-          height: 26rpx;
-          width: 26rpx;
-        }
+				.row-list ._label {
+					display: flex;
+					flex: 0.8;
+					color: #909399;
+					align-items: center;
 
-        ._label-icon-3 {
-          background-image: url("~@/static/custom/moveWareHouse/label-icon-3.png");
-          background-size: 100% auto;
-          background-repeat: no-repeat;
-          height: 26rpx;
-          width: 26rpx;
-        }
+					._label-icon-1 {
+						background-image: url("~@/static/custom/moveWareHouse/label-icon-1.png");
+						background-size: 100% auto;
+						background-repeat: no-repeat;
+						height: 26rpx;
+						width: 26rpx;
+					}
 
-        ._label-name {
-          margin-left: 11rpx;
-          font-size: 26rpx;
-          font-weight: 500;
-          color: #666666;
-        }
-      }
+					._label-icon-2 {
+						background-image: url("~@/static/custom/moveWareHouse/label-icon-2.png");
+						background-size: 100% auto;
+						background-repeat: no-repeat;
+						height: 26rpx;
+						width: 26rpx;
+					}
 
-      .row-list ._content {
-        flex: 1.5;
-        text-align: right;
-        color: #909399;
-        font-size: 24rpx;
-      }
+					._label-icon-3 {
+						background-image: url("~@/static/custom/moveWareHouse/label-icon-3.png");
+						background-size: 100% auto;
+						background-repeat: no-repeat;
+						height: 26rpx;
+						width: 26rpx;
+					}
 
-      .row-list .s1 {
-        color: #d35651;
-      }
-    }
-  }
-}
+					._label-name {
+						margin-left: 11rpx;
+						font-size: 26rpx;
+						font-weight: 500;
+						color: #666666;
+					}
+				}
+
+				.row-list ._content {
+					flex: 1.5;
+					text-align: right;
+					color: #909399;
+					font-size: 24rpx;
+				}
+
+				.row-list .s1 {
+					color: #d35651;
+				}
+			}
+		}
+	}
 </style>
\ No newline at end of file
diff --git a/pages/product/report/components/saveForm.vue b/pages/product/report/components/saveForm.vue
index 03049c7..ec1c7f5 100644
--- a/pages/product/report/components/saveForm.vue
+++ b/pages/product/report/components/saveForm.vue
@@ -1,144 +1,217 @@
 <template>
-  <u-modal
-    v-model="show"
-    ref="uModal"
-    title=""
-    :show-cancel-button="true"
-    @confirm="confirm"
-    @cancel="cancel"
-    :async-close="true"
-    :loading="loading"
-  >
-    <view class="packing-registration-param">
-      <scroll-view scroll-y="true" style="height: 100%;transform: translateZ(0);-webkit-font-smoothing: antialiased;">
+  <view>
+    <u-modal
+      v-model="show"
+      ref="uModal"
+      title=""
+      :show-cancel-button="true"
+      @confirm="confirm"
+      @cancel="cancel"
+      :async-close="true"
+      :loading="loading"
+    >
+      <view class="packing-registration-param">
+        <scroll-view
+          scroll-y="true"
+          style="
+            height: 100%;
+            transform: translateZ(0);
+            -webkit-font-smoothing: antialiased;
+          "
+        >
+          <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">
+                <u-input class="item-one item-two" v-model="form.outBatchNo" />
+              </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">
+                <u-input
+                  class="item-one item-two"
+                  v-model="form.ifsBatchNoArr"
+                  disabled
+                />
+              </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">
+                <u-input
+                  class="item-one item-two"
+                  v-model="form.overallLength"
+                />
+              </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">
+                <u-input
+                  class="item-one item-two"
+                  v-model="form.proposedLocation"
+                  disabled
+                />
+              </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">
+                <u-input class="item-one item-two" v-model="form.reelNumber" />
+              </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">
+                <u-input class="item-one item-two" v-model="form.reelWeight" />
+              </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">
+                <u-input class="item-one item-two" v-model="form.grossWeight" />
+              </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">
+                <u-input
+                  class="item-one item-two"
+                  v-model="form.netWeight"
+                  disabled
+                />
+              </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">
+                <u-input class="item-one item-two" v-model="form.waste" />
+              </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">
+                <u-input
+                  class="item-one item-two"
+                  v-model="form.name"
+                  disabled
+                />
+              </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">
+                <u-input
+                  class="item-one item-two"
+                  v-model="form.outerDiameter"
+                />
+              </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">
+                <u-input class="item-one item-two" v-model="form.voltage" />
+              </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">
+                <u-input class="item-one item-two" v-model="form.speed" />
+              </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">
+                <u-input class="item-one item-two" v-model="form.pressure" />
+              </view>
+            </view>
+            <view class="packing-registration-param-item param-extra">
+              <view class="packing-registration-param-item-left">
+                <text class="item-one item-two">鐢熶骇閫熷害</text>
+              </view>
+              <view class="packing-registration-param-item-right">
+                <u-input
+                  class="item-one item-two"
+                  v-model="form.productionSpeed"
+                />
+              </view>
+            </view>
+          </view>
+        </scroll-view>
+      </view>
+    </u-modal>
+    <u-modal
+      v-model="showModal"
+      title=""
+      :show-cancel-button="true"
+      :show-confirm-button="true"
+      @confirm="confirmTl"
+      @cancel="cancelTl"
+    >
+      <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">
-              <u-input class="item-one item-two" v-model="form.outBatchNo" />
+              <text class="item-one item-two">{{
+                detailedList.ifsBatchNo
+              }}</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">
-              <u-input class="item-one item-two" v-model="form.overallLength" />
+              <text class="item-one item-two">{{ detailedList.partName }}</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">
               <u-input
                 class="item-one item-two"
-                v-model="form.proposedLocation"
-                disabled
-              />
-            </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">
-              <u-input class="item-one item-two" v-model="form.reelNumber" />
-            </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">
-              <u-input class="item-one item-two" v-model="form.reelWeight" />
-            </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">
-              <u-input class="item-one item-two" v-model="form.grossWeight" />
-            </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">
-              <u-input
-                class="item-one item-two"
-                v-model="form.netWeight"
-                disabled
-              />
-            </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">
-              <u-input class="item-one item-two" v-model="form.waste" />
-            </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">
-              <u-input class="item-one item-two" v-model="form.name" disabled />
-            </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">
-              <u-input class="item-one item-two" v-model="form.outerDiameter" />
-            </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">
-              <u-input class="item-one item-two" v-model="form.voltage" />
-            </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">
-              <u-input class="item-one item-two" v-model="form.speed" />
-            </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">
-              <u-input class="item-one item-two" v-model="form.pressure" />
-            </view>
-          </view>
-          <view class="packing-registration-param-item param-extra">
-            <view class="packing-registration-param-item-left">
-              <text class="item-one item-two">鐢熶骇閫熷害</text>
-            </view>
-            <view class="packing-registration-param-item-right">
-              <u-input
-                class="item-one item-two"
-                v-model="form.productionSpeed"
+                v-model="detailedList.suppliedQuantity"
               />
             </view>
           </view>
         </view>
-      </scroll-view>
-    </view>
-  </u-modal>
+      </view>
+    </u-modal>
+  </view>
 </template>
 
 <script>
@@ -150,15 +223,19 @@
       default: () => ({}),
     },
     dutyId: {
-      type: String,
+      type: Number,
       required: true,
-      default: '',
+      default: "",
     },
   },
   data() {
     return {
+      showModal: false,
+      detailedList: {},
       show: false,
       form: {},
+      ifsBatchNo: [],
+      productInputList: [],
       loading: false,
     };
   },
@@ -221,6 +298,11 @@
         this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
         return;
       }
+      if (this.form.productInputList.length == 0) {
+        this.$u.toast("鎶曟枡鎵规涓嶈兘涓虹┖锛岃鎵爜鎶曟枡");
+        this.$refs.uModal.clearLoading(); // 娓呴櫎鍔犺浇鐘舵��
+        return;
+      }
       this.operationTaskList.operationTaskId = this.operationTaskList.id;
       this.form.operationTaskId = this.operationTaskList.id;
       this.form.status = this.operationTaskList.status;
@@ -235,7 +317,7 @@
       this.$u.api.workReporting
         .submitPDA(this.operationTaskList)
         .then((res) => {
-          this.$emit("update");
+          this.$emit("update",this.operationTaskList);
           this.$refs.uModal.cancel();
         })
         .finally(() => {
@@ -246,11 +328,72 @@
     cancel() {
       this.show = false;
       this.form = {};
+      this.ifsBatchNo = [];
+      this.productInputList = [];
+    },
+    cancelTl() {
+      this.showModal = false;
+      this.detailedList = {};
+    },
+    updateArray(arr, newObj) {
+    // 鏌ユ壘鏁扮粍涓槸鍚︽湁鐩稿悓鐨� id
+    let index = arr.findIndex(item => item.ifsBatchNo === newObj.ifsBatchNo);
+    
+    if (index !== -1) {
+        // 濡傛灉鎵惧埌鐩稿悓 id 鐨勫璞★紝鏇挎崲鍘熸湁瀵硅薄
+        arr[index] = newObj;
+    } else {
+        // 濡傛灉娌℃湁鎵惧埌鐩稿悓 id 鐨勫璞★紝鐩存帴鎺ㄥ叆鏂板璞�
+        arr.push(newObj);
+    }
+    return arr;
+},
+    confirmTl() {
+      let ifsBatchNoArr = [];
+      let updatedArrayList = this.updateArray(this.productInputList, this.detailedList);
+      console.log("updatedArrayList", updatedArrayList);
+      // this.productInputList.push(updatedArrayList);
+      this.$set(this.form, "productInputList", this.productInputList);
+
+      this.productInputList.forEach((item) => { 
+        ifsBatchNoArr.push(item.ifsBatchNo)
+      })
+      console.log("ifsBatchNoArr", ifsBatchNoArr);
+      // this.ifsBatchNo.push(ifsBatchNoArr);
+      this.$set(this.form, "ifsBatchNoArr", ifsBatchNoArr);
+      console.log("this.form", this.form);
+      this.showModal = false;
+      this.detailedList = {};
     },
     open(val) {
       this.show = true;
       this.form = val.data;
     },
+    // 鍥炴樉鎵爜鐨勪俊鎭�-鎶ュ伐鍗�
+    saveForm(val) {
+      this.$u.api.cancelReporting
+        .selInputPartInfoPDA({
+          outBatchNo: val.BN,
+          partNo: val.PN,
+          moOn: this.operationTaskList.moOn,
+        })
+        .then((res) => {
+          const list = {
+            suppliedQuantity: res.data.suppliedQuantity,
+            ifsBatchNo: res.data.ifsBatchNo,
+            partNo: res.data.partNo,
+            partName: res.data.partName,
+            locationNo: res.data.locationNo,
+            ifsLineItemNo: res.data.ifsLineItemNo,
+            serialNo: res.data.serialNo,
+            engChgLevel: res.data.engChgLevel,
+            ifsWdr: res.data.waivDevRejNo,
+            activitySeq: res.data.activitySeq,
+          };
+          this.detailedList = list;
+          this.showModal = true;
+        });
+    },
   },
 };
 </script>
diff --git a/pages/product/report/index.vue b/pages/product/report/index.vue
index 9cc7a83..6129956 100644
--- a/pages/product/report/index.vue
+++ b/pages/product/report/index.vue
@@ -1,424 +1,365 @@
 <template>
-  <!-- 鎶ュ伐 -->
-  <div class="page">
-    <u-form
-      :model="form"
-      ref="uForm"
-      :label-width="200"
-      :rules="rules"
-      :error-type="['toast']"
-    >
-      <u-form-item label="杞﹂棿" :border-bottom="false" prop="work" style="font-size:small">
-        <u-radio-group v-model="form.work" :disabled="subdisabled">
-          <u-radio name="dt"><span style="font-size:small">瀵间綋</span></u-radio>
-          <u-radio name="tg"><span style="fongt-size:small">閾滄潌</span></u-radio>
-        </u-radio-group>
-      </u-form-item>
-      <u-form-item label="鎶ュ伐鍗曞彿" :border-bottom="false" prop="taskNo" style="font-size:small">
-        <u-input
-          v-model="form.taskNo"
-          type="select"
-          placeholder="璇锋壂鎻忔姤宸ュ崟鍙�"
-          @click="open"
-        />
-      </u-form-item>
-      <u-form-item label="宸ュ簭" :border-bottom="false" prop="name" style="font-size:small">
-        <u-input
-          v-model="form.name"
-          type="select"
-          placeholder="璇锋壂鎻忔姤宸ュ崟鍙�"
-        />
-      </u-form-item>
-      <u-form-item label="璁㈠崟鍙�" :border-bottom="false" prop="moOn" style="font-size:small">
-        <u-input
-          v-model="form.moOn"
-          type="select"
-          placeholder="鐐瑰嚮閫夋嫨"
-          @click="openList"
-        />
-      </u-form-item>
-      <u-form-item label="闆朵欢鍙�" :border-bottom="false" prop="partNo" style="font-size:small">
-        <u-input v-model="form.partNo" placeholder="" disabled />
-      </u-form-item>
-      <u-form-item label="闆朵欢鎻忚堪" :border-bottom="false" prop="partName" style="font-size:small">
-        <u-input v-model="form.partName" placeholder="" disabled />
-      </u-form-item>
-      <u-form-item label="鎵归噺澶у皬" :border-bottom="false" prop="qtyRequired" style="font-size:small">
-        <u-input v-model="form.qtyRequired" placeholder="" disabled />
-      </u-form-item>
-      <u-form-item
-        label="鍓╀綑鏁伴噺"
-        :border-bottom="false"
-        prop="Jianqtyfinished"
-        style="font-size:small"
-      >
-        <u-input v-model="form.Jianqtyfinished" placeholder="" disabled />
-      </u-form-item>
-      <u-form-item label="搴撲綅" :border-bottom="false" prop="proposedLocation" style="font-size:small">
-        <u-input v-model="form.proposedLocation" placeholder="" disabled />
-      </u-form-item>
-      <u-form-item label="鎶ュ伐绫诲瀷" label-width="90px" prop="productType" style="font-size:small">
-        <u-radio-group v-model="form.productType" :disabled="subdisabled">
-          <u-radio name="dep"><span style="font-size:small">涓嬫満鎶ュ伐</span></u-radio>
-          <u-radio name="ndep"><span style="font-size:small">鏈笅鏈烘姤宸�</span></u-radio>
-        </u-radio-group>
-      </u-form-item>
-      <u-form-item label="鎺ユ敹闆朵欢" label-width="90px" prop="receive" style="font-size:small">
-        <u-radio-group v-model="form.receive" :disabled="subdisabled">
-          <u-radio name="mo"><span style="font-size:small">杞﹂棿璁㈠崟</span></u-radio>
-          <u-radio name="part"><span style="font-size:small">鏇夸唬闆朵欢</span></u-radio>
-        </u-radio-group>
-      </u-form-item>
-      <u-form-item label="鐗╂枡" label-width="90px" prop="materialCost" style="font-size:small">
-        <u-radio-group v-model="form.materialCost" :disabled="true">
-          <u-radio name="鍊掑啿"><span style="font-size:small">鍊掑啿</span></u-radio>
-          <u-radio name="鎶曟枡"><span style="font-size:small">鎶曟枡</span></u-radio>
-        </u-radio-group>
-      </u-form-item>
-	  <u-form-item label="绠�鍖栫墿鏂欐鏌�" label-width="90px" prop="simplifyMaterials" style="font-size:small">
-	    <u-radio-group v-model="form.simplifyMaterials" :disabled="subdisabled || simplifyDisabled" @change="radioChange">
-	      <u-radio name="true"><span style="font-size:small">鏄�</span></u-radio>
-	      <u-radio name="false"><span style="font-size:small">鍚�</span></u-radio>
-	    </u-radio-group>
-	  </u-form-item>
-      <u-form-item label="鎶ュ伐鏂瑰紡" label-width="90px" prop="status"  style="font-size:small">
-        <u-radio-group v-model="form.status" :disabled="subdisabled" @change="handleReportTypeChange">
-          <u-radio name="false"><span style="font-size:small">鎸夌彮缁勬姤宸�</span></u-radio>
-          <u-radio name="true"><span style="font-size:small">鎸変汉鍛樻姤宸�</span></u-radio>
-        </u-radio-group>
-      </u-form-item>
-      <u-form-item label="浜哄憳鍚嶇О" label-width="90px" :border-bottom="false" prop="Persons"  style="font-size:small">
-				<u-input v-model="form.Persons" type="select" placeholder="璇烽�夋嫨"
-					@click="openselectedPersons" :disabled="!canSelectPerson || subdisabled"/>
+	<!-- 鎶ュ伐 -->
+	<div class="page">
+		<u-form :model="form" ref="uForm" :label-width="200" :rules="rules" :error-type="['toast']">
+			<u-form-item label="杞﹂棿" :border-bottom="false" prop="work" style="font-size:small">
+				<u-radio-group v-model="form.work" :disabled="subdisabled">
+					<u-radio name="dt"><span style="font-size:small">瀵间綋</span></u-radio>
+					<u-radio name="tg"><span style="fongt-size:small">閾滄潌</span></u-radio>
+				</u-radio-group>
 			</u-form-item>
-      <u-form-item label="浜у嚭鍒楄〃" :border-bottom="false"  style="font-size:small"></u-form-item>
-    </u-form>
-    <view class="wrap">
-      <scroll-view class="packing-registration-scroll-list" scroll-y="true">
-        <u-cell-group
-          class="packing-registration-scroll-list-group"
-          :border="false"
-        >
-          <view
-            class="content"
-            v-for="(item, index) in InventoryReceiptList"
-            :key="index"
-            :index="index"
-            @click="cancelReport(item)"
-          >
-            <view class="content-header">
-              <view class="content-header-title" style="font-size:small">{{ 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.outBatchNo }}
-                </view>
-              </view>
-              <view class="row-list">
-                <view class="_label">
-                  <view class="_label-name">鏁伴噺锛�</view>
-                </view>
-                <view class="_content">
-                  {{ item.netWeight }}
-                </view>
-              </view>
-              <view class="row-list">
-                <view class="_label">
-                  <view class="_label-name">搴撲綅锛�</view>
-                </view>
-                <view class="_content">
-                  {{ item.proposedLocation }}
-                </view>
-              </view>
-            </view>
-          </view>
-        </u-cell-group>
-      </scroll-view>
-    </view>
-    <!-- 濉啓鎶ュ伐鍗� -->
-    <modalBg ref="modalBg" :confirm="confirm">
-      <u-field
-        v-model="form.taskNo"
-        label="鎶ュ伐鍗曞彿"
-        placeholder="璇疯緭鍏�"
-        :border-bottom="false"
-        style="font-size:small"
-      >
-      </u-field>
-    </modalBg>
-    <saveForm
-      ref="saveForm"
-      :operationTaskList="this.form"
-      :dutyId="dutyId"
-      @update="handleUpdate"
-    />
-    <u-modal
-      width="720rpx"
-      v-model="showModal"
-      title=""
-      :show-cancel-button="true"
-      :show-confirm-button="true"
-      @confirm="confirmModle"
-      @cancel="cancelModle"
-    >
-      <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">{{ detailedList.outBatchNo }}</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">{{ detailedList.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">
-                <span class="item-one">{{ detailedList.partName }}</span>
-              </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">
-                <span class="item-one">{{ detailedList.netWeight }}</span>
-              </view>
-            </view>
-          </view>
-        </view>
-      </view>
-    </u-modal>
-    <u-modal v-model="personShowModal" title="" :show-cancel-button="true" :show-confirm-button="true"
-			@confirm="confirmSelection" @cancel="cancelSelection">
+			<u-form-item label="鎶ュ伐鍗曞彿" :border-bottom="false" prop="taskNo" style="font-size:small">
+				<u-input v-model="form.taskNo" type="select" placeholder="璇锋壂鎻忔姤宸ュ崟鍙�" @click="open" />
+			</u-form-item>
+			<u-form-item label="宸ュ簭" :border-bottom="false" prop="name" style="font-size:small">
+				<u-input v-model="form.name" type="select" placeholder="璇锋壂鎻忔姤宸ュ崟鍙�" />
+			</u-form-item>
+			<u-form-item label="璁㈠崟鍙�" :border-bottom="false" prop="moOn" style="font-size:small">
+				<u-input v-model="form.moOn" type="select" placeholder="鐐瑰嚮閫夋嫨" @click="openList" />
+			</u-form-item>
+			<u-form-item label="闆朵欢鍙�" :border-bottom="false" prop="partNo" style="font-size:small">
+				<u-input v-model="form.partNo" placeholder="" disabled />
+			</u-form-item>
+			<u-form-item label="闆朵欢鎻忚堪" :border-bottom="false" prop="partName" style="font-size:small">
+				<u-input v-model="form.partName" placeholder="" disabled />
+			</u-form-item>
+			<u-form-item label="鎵归噺澶у皬" :border-bottom="false" prop="qtyRequired" style="font-size:small">
+				<u-input v-model="form.qtyRequired" placeholder="" disabled />
+			</u-form-item>
+			<u-form-item label="鍓╀綑鏁伴噺" :border-bottom="false" prop="Jianqtyfinished" style="font-size:small">
+				<u-input v-model="form.Jianqtyfinished" placeholder="" disabled />
+			</u-form-item>
+			<u-form-item label="搴撲綅" :border-bottom="false" prop="proposedLocation" style="font-size:small">
+				<u-input v-model="form.proposedLocation" placeholder="" disabled />
+			</u-form-item>
+			<u-form-item label="鎶ュ伐绫诲瀷" label-width="90px" prop="productType" style="font-size:small">
+				<u-radio-group v-model="form.productType" :disabled="subdisabled">
+					<u-radio name="dep"><span style="font-size:small">涓嬫満鎶ュ伐</span></u-radio>
+					<u-radio name="ndep"><span style="font-size:small">鏈笅鏈烘姤宸�</span></u-radio>
+				</u-radio-group>
+			</u-form-item>
+			<u-form-item label="鎺ユ敹闆朵欢" label-width="90px" prop="receive" style="font-size:small">
+				<u-radio-group v-model="form.receive" :disabled="subdisabled">
+					<u-radio name="mo"><span style="font-size:small">杞﹂棿璁㈠崟</span></u-radio>
+					<u-radio name="part"><span style="font-size:small">鏇夸唬闆朵欢</span></u-radio>
+				</u-radio-group>
+			</u-form-item>
+			<u-form-item label="鐗╂枡" label-width="90px" prop="materialCost" style="font-size:small">
+				<u-radio-group v-model="form.materialCost" :disabled="true">
+					<u-radio name="鍊掑啿"><span style="font-size:small">鍊掑啿</span></u-radio>
+					<u-radio name="鎶曟枡"><span style="font-size:small">鎶曟枡</span></u-radio>
+				</u-radio-group>
+			</u-form-item>
+			<u-form-item label="绠�鍖栫墿鏂欐鏌�" label-width="90px" prop="simplifyMaterials" style="font-size:small">
+				<u-radio-group v-model="form.simplifyMaterials" :disabled="subdisabled || simplifyDisabled"
+					@change="radioChange">
+					<u-radio name="true"><span style="font-size:small">鏄�</span></u-radio>
+					<u-radio name="false"><span style="font-size:small">鍚�</span></u-radio>
+				</u-radio-group>
+			</u-form-item>
+			<u-form-item label="鎶ュ伐鏂瑰紡" label-width="90px" prop="status" style="font-size:small">
+				<u-radio-group v-model="form.status" :disabled="subdisabled" @change="handleReportTypeChange">
+					<u-radio name="false"><span style="font-size:small">鎸夌彮缁勬姤宸�</span></u-radio>
+					<u-radio name="true"><span style="font-size:small">鎸変汉鍛樻姤宸�</span></u-radio>
+				</u-radio-group>
+			</u-form-item>
+			<u-form-item label="浜哄憳鍚嶇О" label-width="90px" :border-bottom="false" prop="Persons" style="font-size:small">
+				<u-input v-model="form.Persons" type="select" placeholder="璇烽�夋嫨" @click="openselectedPersons"
+					:disabled="!canSelectPerson || subdisabled" />
+			</u-form-item>
+			<u-form-item label="浜у嚭鍒楄〃" :border-bottom="false" style="font-size:small"></u-form-item>
+		</u-form>
+		<view class="wrap">
+			<scroll-view class="packing-registration-scroll-list" scroll-y="true">
+				<u-cell-group class="packing-registration-scroll-list-group" :border="false">
+					<view class="content" v-for="(item, index) in InventoryReceiptList" :key="index" :index="index"
+						@click="cancelReport(item,index)">
+						<view class="content-header">
+							<view class="content-header-title" style="font-size:small">{{ 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.outBatchNo }}
+								</view>
+							</view>
+							<view class="row-list">
+								<view class="_label">
+									<view class="_label-name">鏁伴噺锛�</view>
+								</view>
+								<view class="_content">
+									{{ item.netWeight }}
+								</view>
+							</view>
+							<view class="row-list">
+								<view class="_label">
+									<view class="_label-name">搴撲綅锛�</view>
+								</view>
+								<view class="_content">
+									{{ item.proposedLocation }}
+								</view>
+							</view>
+						</view>
+					</view>
+				</u-cell-group>
+			</scroll-view>
+		</view>
+		<!-- 濉啓鎶ュ伐鍗� -->
+		<modalBg ref="modalBg" :confirm="confirm">
+			<u-field v-model="form.taskNo" label="鎶ュ伐鍗曞彿" placeholder="璇疯緭鍏�" :border-bottom="false"
+				style="font-size:small">
+			</u-field>
+		</modalBg>
+		<saveForm ref="saveForm" :operationTaskList="this.form" :dutyId="dutyId" @update="handleUpdate" />
+		<u-modal width="720rpx" v-model="showModal" title="" :show-cancel-button="true" :show-confirm-button="true"
+			@confirm="confirmModle" @cancel="cancelModle">
 			<view class="popup-content">
-      <scroll-view scroll-y="true" style="height: 100%; transform: translateZ(0); -webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;">
-				<view class="popup-header">
-					<checkbox-group @change="checkboxChange">
-						<label class="checkbox-item" v-for="(item, index) in selectedPersons" :key="index">
-							<checkbox :value="item.staffId" :checked="item.checked" />
-							<text class="label">{{ item.staffName }}</text>
-						</label>
-					</checkbox-group>
+				<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">{{ detailedList.outBatchNo }}</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">{{ detailedList.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">
+								<span class="item-one">{{ detailedList.partName }}</span>
+							</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">
+								<span class="item-one">{{ detailedList.netWeight }}</span>
+							</view>
+						</view>
+					</view>
 				</view>
-      </scroll-view>
 			</view>
 		</u-modal>
-    <scan></scan>
-  </div>
+		<u-modal v-model="personShowModal" title="" :show-cancel-button="true" :show-confirm-button="true"
+			@confirm="confirmSelection" @cancel="cancelSelection">
+			<view class="popup-content">
+				<scroll-view scroll-y="true"
+					style="height: 100%; transform: translateZ(0); -webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;">
+					<view class="popup-header">
+						<checkbox-group @change="checkboxChange">
+							<label class="checkbox-item" v-for="(item, index) in selectedPersons" :key="index">
+								<checkbox :value="item.staffId" :checked="item.checked" />
+								<text class="label">{{ item.staffName }}</text>
+							</label>
+						</checkbox-group>
+					</view>
+				</scroll-view>
+			</view>
+		</u-modal>
+		<scan></scan>
+	</div>
 </template>
 
 <script>
-import modalBg from "@/components/modal/modal-bg.vue";
-import saveForm from "./components/saveForm.vue";
-import scan from "@/components/scan/scan.vue";
-export default {
-  components: {
-    modalBg,
-    saveForm,
-    scan,
-  },
-  data() {
-    return {
-		simplifyDisabled:false,
-      // checkboxList: [
-      //   {
-      //     name: "宸ュ簭鐨勮嚜鍔ㄦ姤鍛�",
-      //     value: false,
-      //     disabled: false,
-      //   },
-      //   {
-      //     name: "绠�鍖栫墿鏂欐鏌�",
-      //     value: false,
-      //     disabled: false,
-      //   },
-      // ],
-      InventoryReceiptList: [],
-        selectedPersons: [],
-      form: {
-        workstationId: "",
-        work: "",
-        taskNo: "",
-        name: "",
-        moOn: "",
-        partNo: "",
-        partName: "",
-        qtyRequired: "",
-        Jianqtyfinished: "",
-        proposedLocation: "",
-        productType: "dep",
-        receive: "mo",
-        materialCost: "",
-        // autoReport: false,
-        simplifyMaterials: 'false',
-        status: 'false',
-        Persons: '',
-        productStaffIds: [],
-        productStaffs:[]
-      },
-      personList: [],
-      canSelectPerson: false,
-      rules: {
-        work: [
-          {
-            required: true,
-            message: "璇烽�夋嫨杞﹂棿",
-            trigger: ["change"],
-          },
-        ],
-        taskNo: [
-          {
-            required: true,
-            message: "璇烽�夋嫨鎶ュ伐鍗曞彿",
-            trigger: ["change", "blur"],
-          },
-        ],
-        name: [
-          {
-            required: true,
-            message: "璇烽�夋嫨宸ュ簭",
-            trigger: ["change", "blur"],
-          },
-        ],
-        moOn: [
-          {
-            required: true,
-            message: "璇烽�夋嫨璁㈠崟鍙�",
-            trigger: ["change", "blur"],
-          },
-        ],
-        productType: [
-          {
-            required: true,
-            message: "璇烽�夋嫨鎶ュ伐绫诲瀷",
-            trigger: ["change"],
-          },
-        ],
-        receive: [
-          {
-            required: true,
-            message: "璇烽�夋嫨鎺ユ敹闆朵欢绫诲瀷",
-            trigger: ["change"],
-          },
-        ],
-        status: [
-          {
-            required: true,
-            message: "璇烽�夋嫨鎶ュ伐鏂瑰紡",
-            trigger: ["change"],
-          },
-        ],
-        Persons: [
-          {
-            required: true,
-            message: "璇烽�夋嫨浜哄憳",
-            trigger: ["change"],
-          },
-        ],
-      },
-      showSave: false,
-      operationTaskId: "",
-      subdisabled: false,
-      codeInfoId: "",
-      detailedList: {},
-      showModal: false,
-      personShowModal: false,
-			checkboxList: [],
-    };
-  },
-  // 鐐瑰嚮鎻愪氦鎸夐挳鐨勪簨浠跺鐞嗗嚱鏁�
-  onNavigationBarButtonTap() {
-    this.$refs.uForm.validate((valid) => {
-      if (valid) {
-        uni.showLoading({
-          mask: true,
-          title: "鍔犺浇涓�",
-        });
-        // 澶勭悊鎻愪氦閫昏緫
-        this.$u.api.workReporting
-          .operationTask({
-            id: this.form.id,
-          })
-          .then((res) => {
-            res.data.name = this.form.name;
-            this.$refs.saveForm.open(res);
-            uni.hideLoading();
-          });
-      } else {
-        // 鍙互鑾峰彇鍏蜂綋鐨勯敊璇俊鎭�
-        const errors = this.$refs.uForm.getError();
-      }
-    });
-  },
-  onReady() {
-    this.$refs.uForm.setRules(this.rules);
-  },
-  onShow() {
-    let that = this;
-    uni.$off("scan"); // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
-    uni.$on("scan", function (data) {
-      //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
-      if (data.code) {
-        let codeInfo = JSON.parse(data.code);
-        if (codeInfo.moOn) {
-           that.codeInfoId = codeInfo.id;
-          // 鎵弿鎶ュ伐鍗曚簩缁寸爜
-          that.saveForm(codeInfo);
-          that.getHandelList();
-        }
-        if (codeInfo.BN) {
-          // 鎵弿鎶ュ伐鍗曚簩缁寸爜
-          that.CopperReportingWork(codeInfo);
-        }
-      }
-    });
-  },
-  watch: {
-    "form.taskNo": function (newVal, oldVal) {
-      this.subdisabled = false;
-    },
-    'form.status'(newVal) {
-      this.selectedPersons = this.selectedPersons.map(item => ({
-        ...item,
-        checked: newVal === 'false'
-      }));
-    }
-  },
-  methods: {
-    // 澶勭悊鎶ュ伐鏂瑰紡鍙樻洿
-    handleReportTypeChange() {
-      // 鍒囨崲鎶ュ伐鏂瑰紡鏃舵竻绌轰汉鍛樺悕绉�
-      this.form.Persons = '';
-      this.form.productStaffs = [];
-      this.form.productStaffIds = [];
-    },
-    // 浜哄憳鍚嶇О
-    			openselectedPersons() {
+	import modalBg from "@/components/modal/modal-bg.vue";
+	import saveForm from "./components/saveForm.vue";
+	import scan from "@/components/scan/scan.vue";
+	export default {
+		components: {
+			modalBg,
+			saveForm,
+			scan,
+		},
+		data() {
+			return {
+				simplifyDisabled: false,
+				// checkboxList: [
+				//   {
+				//     name: "宸ュ簭鐨勮嚜鍔ㄦ姤鍛�",
+				//     value: false,
+				//     disabled: false,
+				//   },
+				//   {
+				//     name: "绠�鍖栫墿鏂欐鏌�",
+				//     value: false,
+				//     disabled: false,
+				//   },
+				// ],
+				InventoryReceiptList: [],
+				selectedPersons: [],
+				form: {
+					workstationId: "",
+					work: "",
+					taskNo: "",
+					name: "",
+					moOn: "",
+					partNo: "",
+					partName: "",
+					qtyRequired: "",
+					Jianqtyfinished: "",
+					proposedLocation: "",
+					productType: "dep",
+					receive: "mo",
+					materialCost: "",
+					// autoReport: false,
+					simplifyMaterials: 'false',
+					status: 'false',
+					Persons: '',
+					productStaffIds: [],
+					productStaffs: []
+				},
+				personList: [],
+				canSelectPerson: false,
+				rules: {
+					work: [{
+						required: true,
+						message: "璇烽�夋嫨杞﹂棿",
+						trigger: ["change"],
+					}, ],
+					taskNo: [{
+						required: true,
+						message: "璇烽�夋嫨鎶ュ伐鍗曞彿",
+						trigger: ["change", "blur"],
+					}, ],
+					name: [{
+						required: true,
+						message: "璇烽�夋嫨宸ュ簭",
+						trigger: ["change", "blur"],
+					}, ],
+					moOn: [{
+						required: true,
+						message: "璇烽�夋嫨璁㈠崟鍙�",
+						trigger: ["change", "blur"],
+					}, ],
+					productType: [{
+						required: true,
+						message: "璇烽�夋嫨鎶ュ伐绫诲瀷",
+						trigger: ["change"],
+					}, ],
+					receive: [{
+						required: true,
+						message: "璇烽�夋嫨鎺ユ敹闆朵欢绫诲瀷",
+						trigger: ["change"],
+					}, ],
+					status: [{
+						required: true,
+						message: "璇烽�夋嫨鎶ュ伐鏂瑰紡",
+						trigger: ["change"],
+					}, ],
+					Persons: [{
+						required: true,
+						message: "璇烽�夋嫨浜哄憳",
+						trigger: ["change"],
+					}, ],
+				},
+				showSave: false,
+				operationTaskId: "",
+				subdisabled: false,
+				codeInfoId: "",
+				detailedList: {},
+				showModal: false,
+				personShowModal: false,
+				checkboxList: [],
+				index: 0,
+			};
+		},
+		// 鐐瑰嚮鎻愪氦鎸夐挳鐨勪簨浠跺鐞嗗嚱鏁�
+		onNavigationBarButtonTap() {
+			this.$refs.uForm.validate((valid) => {
+				if (valid) {
+					uni.showLoading({
+						mask: true,
+						title: "鍔犺浇涓�",
+					});
+					// 澶勭悊鎻愪氦閫昏緫
+					this.$u.api.workReporting
+						.operationTask({
+							id: this.form.id,
+						})
+						.then((res) => {
+							res.data.name = this.form.name;
+							this.$refs.saveForm.open(res);
+							uni.hideLoading();
+						});
+				} else {
+					// 鍙互鑾峰彇鍏蜂綋鐨勯敊璇俊鎭�
+					const errors = this.$refs.uForm.getError();
+				}
+			});
+		},
+		onReady() {
+			this.$refs.uForm.setRules(this.rules);
+		},
+		onShow() {
+			let that = this;
+			uni.$off("scan"); // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+			uni.$on("scan", function(data) {
+				//鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲�
+				if (data.code) {
+					let codeInfo = JSON.parse(data.code);
+					if (codeInfo.moOn) {
+						that.codeInfoId = codeInfo.id;
+						// 鎵弿鎶ュ伐鍗曚簩缁寸爜
+						that.saveForm(codeInfo);
+						// that.getHandelList();
+					}
+					if (codeInfo.ES) {
+						// 鎵弿鎶ュ伐鍗曚簩缁寸爜
+						that.CopperReportingWork(codeInfo);
+					}
+					if (codeInfo.BN) {
+						// 鎵弿鎶ュ伐鍗曚簩缁寸爜
+						that.$refs.saveForm.saveForm(codeInfo);
+					}
+				}
+			});
+		},
+		watch: {
+			"form.taskNo": function(newVal, oldVal) {
+				this.subdisabled = false;
+			},
+			'form.status'(newVal) {
+				this.selectedPersons = this.selectedPersons.map(item => ({
+					...item,
+					checked: newVal === 'false'
+				}));
+			}
+		},
+		methods: {
+			// 澶勭悊鎶ュ伐鏂瑰紡鍙樻洿
+			handleReportTypeChange() {
+				// 鍒囨崲鎶ュ伐鏂瑰紡鏃舵竻绌轰汉鍛樺悕绉�
+				this.form.Persons = '';
+				this.form.productStaffs = [];
+				this.form.productStaffIds = [];
+			},
+			// 浜哄憳鍚嶇О
+			openselectedPersons() {
 				this.personShowModal = true;
-    },
-      			// 澶嶉�夋鍙樺寲浜嬩欢
-    checkboxChange(e) {
-      console.log('e',e)
+			},
+			// 澶嶉�夋鍙樺寲浜嬩欢
+			checkboxChange(e) {
+				console.log('e', e)
 				const values = e.target.value || [];
 				if (this.form.status === 'true') {
 					// 鍗曢�夋ā寮忥紝鍙厑璁搁�夋嫨涓�涓汉
 					const previouslySelected = this.selectedPersons.find(item => item.checked);
-					const newlySelected = values.length > 0 ? values[values.length - 1] : null;					 
+					const newlySelected = values.length > 0 ? values[values.length - 1] : null;
 					if (previouslySelected && newlySelected && previouslySelected.staffId !== newlySelected) {
 						// 宸叉湁閫変腑椤逛笖閫夋嫨浜嗘柊鐨勯」锛屾彁绀哄彧鑳介�夋嫨涓�涓汉
 						this.$u.toast('鎸変汉鍛樻姤宸ユ椂鍙兘閫夋嫨涓�浣嶄汉鍛�');
@@ -426,15 +367,15 @@
 						this.selectedPersons = this.selectedPersons.map(item => ({
 							...item,
 							checked: item.staffId === previouslySelected.staffId
-            }));
-            
+						}));
+
 					} else {
 						// 棣栨閫夋嫨鎴栧彇娑堥�夋嫨
 						this.selectedPersons = this.selectedPersons.map(item => ({
 							...item,
 							checked: newlySelected ? item.staffId === newlySelected : false
-            }));
-            
+						}));
+
 					}
 				} else {
 					// 澶氶�夋ā寮�
@@ -443,10 +384,10 @@
 						checked: values.includes(item.staffId)
 					}));
 				}
-    },
-      			// 纭閫夋嫨
+			},
+			// 纭閫夋嫨
 			confirmSelection() {
-        const selected = this.selectedPersons.filter(item => item.checked);
+				const selected = this.selectedPersons.filter(item => item.checked);
 				// 鏍规嵁鎶ュ伐鏂瑰紡璁剧疆浜哄憳鍚嶇О
 				if (this.form.status === 'true' && selected.length > 0) {
 					this.form.Persons = selected[0].staffName;
@@ -455,173 +396,188 @@
 				}
 				this.form.productStaffs = selected.map(item => item.staffNo);
 				this.form.productStaffIds = selected.map(item => item.staffId);
-    },
-      cancelSelection(){},
-    // 閾滄潌鎶ュ伐
-    CopperReportingWork(val) {
-      const copperList = {};
-      copperList.outBatchNo = val.BN
-      copperList.partNo = val.PN
-      copperList.weighingClerk = val.WC
-      copperList.executiveStandard = val.ES
-      copperList.netWeight = val.NW
-      copperList.specificationType = val.ST
-      copperList.grossWeight = val.TR
-      copperList.operationTaskId = this.form.id
-      copperList.status = this.form.status;
-      copperList.Persons = this.form.Persons;
-      copperList.productStaffIds = this.form.productStaffIds;
-      copperList.productStaffs = this.form.productStaffs;
-      this.form.productOutputList = [];
-      this.form.operationTaskId = this.form.id;
-      this.form.productOutputList.push(copperList);
-      console.log('this.form',this.form)
-      this.$u.api.workReporting.submitPDA(this.form).then((res) => {
-        this.subdisabled = true;
-        this.getHandelList();
-        this.$u.toast("鎶ュ伐鎴愬姛");
-      });
-    },
-    // 鐐瑰嚮纭鍚庤幏鍙栧彇娑堟姤宸ヨ褰�
-    radioChange() {
-      // 澶勭悊鍗曢�夋鍙樺寲浜嬩欢
-    },
-    // 鑾峰彇浜哄憳鍒楄〃
-    getPersonList(dutyId) {
-      console.log('111111')
-      try {
-        this.$u.api.workReporting.getPersonByDutyRecordId({ id: dutyId }).then((res) => {
-        this.selectedPersons = res.data.map(item => ({
-          ...item,
-          checked: this.form.status === 'false'
-        }));
-      })
-      .catch(err => {
-        console.log(err)
-      })
-      } catch (err) {
-        console.log(err)
-        
-      }
+			},
+			cancelSelection() {},
+			// 閾滄潌鎶ュ伐
+			CopperReportingWork(val) {
+				this.$refs.uForm.validate((valid) => {
+					if (valid) {
+						const copperList = {};
+						copperList.outBatchNo = val.BN
+						copperList.partNo = val.PN
+						copperList.weighingClerk = val.WC
+						copperList.executiveStandard = val.ES
+						copperList.netWeight = val.NW
+						copperList.specificationType = val.ST
+						copperList.grossWeight = val.TR
+						copperList.operationTaskId = this.form.id
+						copperList.status = this.form.status;
+						copperList.Persons = this.form.Persons;
+						copperList.productStaffIds = this.form.productStaffIds;
+						copperList.productStaffs = this.form.productStaffs;
+						this.form.productOutputList = [];
+            this.form.operationTaskId = this.form.id;
+            this.form.dutyRecordId = this.dutyId;
+						this.form.productOutputList.push(copperList);
+						console.log('this.form', this.form)
+						this.$u.api.workReporting.submitPDA(this.form).then((res) => {
+							this.subdisabled = true;
+							this.InventoryReceiptList.unshift(this.form);
+							// this.getHandelList();
+							this.$u.toast("鎶ュ伐鎴愬姛");
+						});
+					} else {
+						// 鍙互鑾峰彇鍏蜂綋鐨勯敊璇俊鎭�
+						const errors = this.$refs.uForm.getError();
+					}
+				});
+			},
+			// 鐐瑰嚮纭鍚庤幏鍙栧彇娑堟姤宸ヨ褰�
+			radioChange() {
+				// 澶勭悊鍗曢�夋鍙樺寲浜嬩欢
+			},
+			// 鑾峰彇浜哄憳鍒楄〃
+			getPersonList(dutyId) {
+				console.log('111111', dutyId)
+				try {
+					this.$u.api.workReporting.getPersonByDutyRecordId({
+							id: dutyId
+						}).then((res) => {
 
-    },
+							this.selectedPersons = res.data.map(item => ({
+								...item,
+								checked: this.form.status === 'false'
+							}));
+						})
+						.catch(err => {
+							console.log(err)
+						})
+				} catch (err) {
+					console.log(err)
 
-    confirmModle() {
-      console.log("鐐瑰嚮纭鍚庤幏鍙栧彇娑堟姤宸ヨ褰�");
-      // 澶勭悊纭閫昏緫
-      this.$u.api.cancelReporting
-        .cancelDTAOfWorkApplication({
-          outBatchNo: this.detailedList.outBatchNo,
-          outputId: this.detailedList.id
-        })
-        .then((res) => {
-          console.log("res", res);
-          this.showModal = false;
-          this.getHandelList();
-          this.$u.toast("鍙栨秷鎶ュ伐鎴愬姛");
-        });
-    },
-    cancelModle() {
-      this.showModal = false; // 鍏抽棴寮圭獥
-    },
-    // 鍙栨秷鎶ュ伐
-    cancelReport(item) {
-      let that = this;
-      uni.showModal({
-        title: "鎻愮ず",
-        content: "鏄惁纭鍙栨秷鎵规" + item.outBatchNo + "鐨勬姤宸�",
-        success: function (res) {
-          if (res.confirm) {
-            that.detailedList = item;
-            that.showModal = true;
-          } else if (res.cancel) {
-            return;
-          }
-        },
-      });
-    },
-    getHandelList() {
-      this.$u.api.workReporting
-        .getProductMainV1({
-          current: 1,
-          size: -1,
-          id: this.codeInfoId,
-        })
-        .then((res) => {
-          this.InventoryReceiptList = res.data.productOutputList;
-        });
-    },
-    // 澶氶�夊鐞�
-    // changeCheckbox(val) {
-      // if (val.name === "宸ュ簭鐨勮嚜鍔ㄦ姤鍛�") {
-      //   this.form.autoReport = val.value;
-      // }
-      // if (val.name === "绠�鍖栫墿鏂欐鏌�") {
-      //   this.form.simplifyMaterials = val.value;
-      // }
-    // },
-    handleUpdate() {
-      this.subdisabled = true;
-      this.getHandelList();
-    },
-    // 鎵撳紑寮规--鍚庨潰杩橀渶瑕佺洃鍚壂鐮佹灙鎵爜缁撴灉锛岃祴鍊肩粰鎶ュ伐鍗曞彿瀛楁锛岀劧鍚庢墦寮�寮规閫夋嫨璁㈠崟鍙风瓑鎿嶄綔
-    open() {
-      this.$refs.modalBg.open();
-    },
-    // 寮规淇濆瓨
-    confirm() {},
-    // 閫夋嫨璁㈠崟鍙�
-    openList() {
-      if (this.form.taskNo === "") {
-        uni.showToast({
-          title: "璇峰厛鎵弿鎴栬緭鍏ユ姤宸ュ崟鍙�",
-          icon: "none",
-        });
-        return;
-      }
-      uni.navigateTo({
-        url: "/pages/product/report/orderList",
-      });
-    },
-    // 瀛樿鍗曞彿
-    setNo(val) {
-      this.form.moOn = val.moNo;
-    },
-    // 鍥炴樉鎵爜鐨勪俊鎭�-鎶ュ伐鍗�
-    saveForm(val) {
-      this.form = {
-        id: val.id,
-        workstationId: val.workstationId,
-        work: val.work,
-        taskNo: val.taskNo,
-        name: val.name,
-        moOn: val.moOn,
-        partNo: val.partNo,
-        partName: val.partName,
-        qtyRequired: val.qtyRequired,
-        Jianqtyfinished: val.qtyRequired - val.qtyFinished,
-        proposedLocation: val.proposedLocation,
-        productType: "dep",
-        receive: "mo",
-        materialCost: val.materialCost,
-        // autoReport: false,
-        simplifyMaterials: 'false',
-        status: 'false',
-        Persons:'',
-      };
-      if (this.form.materialCost == "鍊掑啿") {
-        this.simplifyDisabled = true;
-      }
-      // 濡傛灉鏈塪utyNo锛岃幏鍙栦汉鍛樺垪琛�
-      if (val.dutyId) {
-        this.dutyId = val.dutyId;
-        this.getPersonList(val.dutyId);
-      }
-    },
-  },
-};
+				}
+
+			},
+
+			confirmModle() {
+				console.log("鐐瑰嚮纭鍚庤幏鍙栧彇娑堟姤宸ヨ褰�");
+				// 澶勭悊纭閫昏緫
+				this.$u.api.cancelReporting
+					.cancelDTAOfWorkApplication({
+						outBatchNo: this.detailedList.outBatchNo,
+						outputId: this.detailedList.id
+					})
+					.then((res) => {
+						console.log("res", res);
+						this.detailedList.splice(this.index, 1)
+						this.showModal = false;
+						// this.getHandelList();
+						this.$u.toast("鍙栨秷鎶ュ伐鎴愬姛");
+					});
+			},
+			cancelModle() {
+				this.showModal = false; // 鍏抽棴寮圭獥
+			},
+			// 鍙栨秷鎶ュ伐
+			cancelReport(item,index) {
+				let that = this;
+				that.index = index;
+				uni.showModal({
+					title: "鎻愮ず",
+					content: "鏄惁纭鍙栨秷鎵规" + item.outBatchNo + "鐨勬姤宸�",
+					success: function(res) {
+						if (res.confirm) {
+							that.detailedList = item;
+							that.showModal = true;
+						} else if (res.cancel) {
+							return;
+						}
+					},
+				});
+			},
+			// getHandelList() {
+			// 	this.$u.api.workReporting
+			// 		.getProductMainV1({
+			// 			current: 1,
+			// 			size: -1,
+			// 			id: this.codeInfoId,
+			// 		})
+			// 		.then((res) => {
+			// 			this.InventoryReceiptList = res.data.productOutputList;
+			// 		});
+			// },
+			// 澶氶�夊鐞�
+			// changeCheckbox(val) {
+			// if (val.name === "宸ュ簭鐨勮嚜鍔ㄦ姤鍛�") {
+			//   this.form.autoReport = val.value;
+			// }
+			// if (val.name === "绠�鍖栫墿鏂欐鏌�") {
+			//   this.form.simplifyMaterials = val.value;
+			// }
+			// },
+			handleUpdate(val) {
+				this.subdisabled = true;
+				// this.getHandelList();
+				this.InventoryReceiptList.unshift(val);
+			},
+			// 鎵撳紑寮规--鍚庨潰杩橀渶瑕佺洃鍚壂鐮佹灙鎵爜缁撴灉锛岃祴鍊肩粰鎶ュ伐鍗曞彿瀛楁锛岀劧鍚庢墦寮�寮规閫夋嫨璁㈠崟鍙风瓑鎿嶄綔
+			open() {
+				this.$refs.modalBg.open();
+			},
+			// 寮规淇濆瓨
+			confirm() {},
+			// 閫夋嫨璁㈠崟鍙�
+			openList() {
+				if (this.form.taskNo === "") {
+					uni.showToast({
+						title: "璇峰厛鎵弿鎴栬緭鍏ユ姤宸ュ崟鍙�",
+						icon: "none",
+					});
+					return;
+				}
+				uni.navigateTo({
+					url: "/pages/product/report/orderList",
+				});
+			},
+			// 瀛樿鍗曞彿
+			setNo(val) {
+				this.form.moOn = val.moNo;
+			},
+			// 鍥炴樉鎵爜鐨勪俊鎭�-鎶ュ伐鍗�
+			saveForm(val) {
+				this.form = {
+					id: val.id,
+					workstationId: val.workstationId,
+					work: val.work,
+					taskNo: val.taskNo,
+					name: val.name,
+					moOn: val.moOn,
+					partNo: val.partNo,
+					partName: val.partName,
+					qtyRequired: val.qtyRequired,
+					Jianqtyfinished: val.qtyRequired - val.qtyFinished,
+					proposedLocation: val.proposedLocation,
+					productType: "dep",
+					receive: "mo",
+					materialCost: val.materialCost,
+					// autoReport: false,
+					simplifyMaterials: 'false',
+					status: 'false',
+					Persons: '',
+				};
+				if (this.form.materialCost == "鍊掑啿") {
+					this.simplifyDisabled = true;
+				}
+				// 濡傛灉鏈塪utyNo锛岃幏鍙栦汉鍛樺垪琛�
+				if (val.dutyId) {
+					this.dutyId = val.dutyId;
+					this.getPersonList(val.dutyId);
+				}
+			},
+		},
+	};
 </script>
 
 <style lang="scss">
-@import "index.scss";
+	@import "index.scss";
 </style>
\ No newline at end of file
diff --git a/pages/sys/home/index.vue b/pages/sys/home/index.vue
index d6bae12..bd262ff 100644
--- a/pages/sys/home/index.vue
+++ b/pages/sys/home/index.vue
@@ -32,26 +32,26 @@
 							url: '/pages/product/report/index',
 							icon: 'one'
 						},
-						// {
-						// 	name: '鍙栨秷鎶ュ伐',
-						// 	url: '/pages/product/cancelReport/index',
-						// 	icon: 'two'
-						// },
+						{
+							name: '鍙栨秷鎶ュ伐',
+							url: '/pages/product/cancelReport/index',
+							icon: 'two'
+						},
 						// {
 						// 	name: '鎺ユ敹锛堥摐鏉嗭級',
 						// 	url: '/pages/product/receive/index',
 						// 	icon: 'three'
 						// },
-						{
-							name: '杞﹂棿璁㈠崟涓嬪彂',
-							url: '/pages/product/WorkshopOrderIssued/index',
-							icon: 'four'
-						},
-						{
-							name: '杞﹂棿鍙栨秷涓嬪彂',
-							url: '/pages/product/WorkshopOrderCancellationIssued/index',
-							icon: 'five'
-						},
+						// {
+						// 	name: '杞﹂棿璁㈠崟涓嬪彂',
+						// 	url: '/pages/product/WorkshopOrderIssued/index',
+						// 	icon: 'four'
+						// },
+						// {
+						// 	name: '杞﹂棿鍙栨秷涓嬪彂',
+						// 	url: '/pages/product/WorkshopOrderCancellationIssued/index',
+						// 	icon: 'five'
+						// },
 					]
 				},
 				{

--
Gitblit v1.9.3