From 1f017a1ebe252ef945e42dc868ac8c24e2b6d534 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期四, 21 八月 2025 17:35:49 +0800
Subject: [PATCH] pda报工选择投料接口变更

---
 pages/product/report/index.vue | 1117 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 651 insertions(+), 466 deletions(-)

diff --git a/pages/product/report/index.vue b/pages/product/report/index.vue
index e12c3ec..2c90dc9 100644
--- a/pages/product/report/index.vue
+++ b/pages/product/report/index.vue
@@ -1,489 +1,674 @@
 <template>
-	<view class="body">
-		<view class="top_code">
-			<u-icon class="product-number-icon"></u-icon>缂栧彿锛�
-			<text selectable>{{ dutyNo }}</text>
-			<view class="top_code_edit">
-				<u-icon class="product-edit-icon" @click="edit" v-show="true"></u-icon>
-			</view>
+	<!-- 鎶ュ伐 -->
+	<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="FeedInputProductionVolume" style="font-size:small">
+				<u-input v-model="form.FeedInputProductionVolume" type="select" placeholder="璇峰~鍐欐姇鏂欎骇閲�"
+					@click="FeedInputProductionVolumeCLick" />
+			</u-form-item>
+			<u-form-item label="姹囨姤浜ч噺" :border-bottom="false" prop="reportProductionVolume" style="font-size:small">
+				<u-input v-model="form.reportProductionVolume" type="select" placeholder="璇峰~鍐欐眹鎶ヤ骇閲�"
+					@click="reportProductionVolumeCLick" />
+			</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>
-		<view class="main_view">
-			<h3 class="main_top_title">宸ヤ綔鍙�</h3>
-			<view class="main_item" @click="goPage(0)">
-				<span style="color:#4F4F4F">宸ヤ綔绔�</span>
-				<view>
-					<span style="color:#333333;margin-right: 20rpx;">{{ query.workstationName }}</span>
-					<u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon>
+		<!-- 濉啓鎶ュ伐鍗� -->
+		<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>
-			<view class="main_item" @click="goPage(1)">
-				<span style="color:#4F4F4F">宸ュ簭</span>
-				<view>
-					<span style="color:#333333;margin-right: 20rpx;">{{ query.operationName }}</span>
-					<u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon>
-				</view>
+		</u-modal>
+		<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>
-			<view class="main_item" @click="goPage(2)">
-				<span style="color:#4F4F4F">鏃ユ湡</span>
-				<view>
-					<span style="color:#333333;margin-right: 20rpx;">{{ query.updateTime }}</span>
-					<u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon>
-				</view>
-			</view>
-			<view class="main_item" @click="goPage(3)">
-				<span style="color:#4F4F4F">鐝</span>
-				<view>
-					<span style="color:#333333;margin-right: 20rpx;">{{ query.clazzType }}</span>
-					<u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon>
-				</view>
-			</view>
-			<view class="main_item" @click="goPage(4)">
-				<span style="color:#4F4F4F;width: 118rpx;">鐢熶骇浜哄憳</span>
-				<view class="value2">
-					<span style="color:#333333;margin-right: 20rpx;">{{ staffNameJoin }}</span>
-				</view>
-				<u-icon v-if="isShowButton" name="arrow-right" color="#687792" size="28"></u-icon>
-			</view>
-			<view class="main_item">
-				<span style="color:#4F4F4F">鍒涘缓浜�</span>
-				<view>
-					<span style="color:#333333;">{{ query.createUser }}</span>
-				</view>
-			</view>
-			<view class="btns">
-				<u-button :custom-style="customStyle" @click="goPage(9)">鏉傚伐</u-button>
-				<u-button :custom-style="customStyle" style="width: 150rpx;" @click="goPage(6)">
-					<u-icon class="icon_history" size="26rpx" />
-					<span style="line-height: 40rpx;">鍘嗗彶</span>
-				</u-button>
-				<u-button v-if="isShowButton" @click="submit" :custom-style="customStyle"
-					style="background: #30AFFF;color: #fff;border: 0;width: 150rpx;">
-					<u-icon class="icon_save" size="26rpx" />
-					<span style="line-height: 40rpx;">淇濆瓨</span>
-				</u-button>
-				<u-button :custom-style="customStyle" style="background: #214DED;color: #fff;border: 0;width: 150rpx;"
-					@click="goPage(8)">
-					<u-icon class="icon_right" size="26rpx" />
-					<span style="line-height: 40rpx;">鎶ュ伐</span></u-button>
-			</view>
-		</view>
-		<u-calendar v-model="calendarShow" :mode="mode" @change="changeCalendar"></u-calendar>
-		<!--宸ュ簭涓嬫媺妗�-->
-		<u-select :default-value="[operationIndex]" v-model="selectShowOperation" :list="operationList"
-			@confirm="confirmOperation"></u-select>
-		<u-select v-model="selectShowClazzType" :list="clazzTypeList" @confirm="confirmClazzType"></u-select>
-		<u-toast ref="uToast" />
-	</view>
+		</u-modal>
+		<scan></scan>
+	</div>
 </template>
 
 <script>
-import {
-	dateFormat
-} from "@/utils/date.js";
-import UIcon from "../../../uview-ui/components/u-icon/u-icon.vue";
-export default {
-	components: {
-		UIcon
-	},
-	data() {
-		return {
-			customStyle: {
-				'background': '#FFFFFF',
-				'border-radius': '8rpx',
-				'border': '1px solid #D2D2D2',
-				'width': '121rpx',
-				'height': '65rpx',
-				'font-weight': 500,
-				'font-size': '28rpx',
-				'color': '#333333',
-				'pading': '0 30rpx'
-			},
-			calendarShow: false,
-			selectShowOperation: false,
-			selectShowClazzType: false,
-			mode: 'date',
-			id: '',
-			dutyNo: '', // 缂栧彿
-			query: {
-				updateTime: dateFormat(
-					new Date(), 'yyyy-MM-dd'),
-				workstationName: '', // 宸ヤ綔绔欏悕绉�
-				workstationId: '', // 宸ヤ綔绔檌d
-				clazzType: '', // 鐝
-				productionUser: '',
-				operationId: '', // 宸ュ簭id
-				operationName: '', // 宸ュ簭鍚嶇О
-				userList: [],
-				createUser: ''
-			},
-			toId: '',
-			operationList: [],
-			clazzTypeList: [{
-				label: '鐧界彮'
-			},
-			{
-				label: '鏅氱彮'
-			},
-			],
-			workstation: '',
-			staffNameJoin: '',
-			operationIndex: '',
-			isEdit: false, // 鏄惁淇敼
-			isShowButton: false,
-			workCenter: '',
-			addOrEdit: '',
-			info: {},
-			firstOperationId: null,
-			lastOperationId: null,
-		}
-	},
-	onShow() {
-		// this.getLastDutyRecordFun()
-	},
-	onLoad() {
-		uni.$on('dailyListInfo', (info) => {
-			this.dutyNo = info.dutyNo
-			this.id = info.id
-			this.query.createUser = this.vuex_username
-			this.query.clazzType = info.clazzType
-			this.query.workstationId = info.workstationId
-			this.query.workstationName = info.workstationName
-			this.query.productionUser = info.productionUser.split(',').reverse()
-			this.query.userList = info.productionUserList.split(',')
-			this.query.operationId = info.operationId
-			this.getOperation()
-		})
+	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: "",
+					FeedInputProductionVolume: null, //鎶曟枡浜ч噺
+					reportProductionVolume: null, //姹囨姤浜ч噺
+					proposedLocation: "",
+					productType: "dep",
+					receive: "mo",
+					materialCost: "",
+					// autoReport: false,
+					simplifyMaterials: 'false',
+					status: 'false',
+					Persons: '',
+					productStaffIds: [],
+					productStaffs: []
 
-		uni.$on('returnData', (data) => {
-			// 涓存椂瀛樺偍宸ヤ綔绔欑殑鏁版嵁
-			this.workstation = data
-			// 缁欓〉闈㈠伐浣滅珯璧嬪��
-			this.query.workstationName = '(' + data.workCenter + ')' + data.name
-			this.query.workstationId = data.id
-			// 娓呯┖宸ュ簭閫夐」
-			this.query.operationName = ''
-			this.query.operationId = ''
-			this.operationIndex = 0
-			this.getOperationTaskFun(data.workCenter)
-		})
-		uni.$on('checkedList', (data) => {
-			let staffNameList = []
-			let staffNoList = []
-			data.forEach(i => {
-				staffNameList.push(i.staffName)
-				staffNoList.push(i.staffNo)
-			})
-			this.query.productionUser = staffNameList
-			this.query.userList = staffNoList
-		});
-	},
-	onReady() {
-		// 棣栨杩涘叆椤甸潰鑾峰彇褰撳墠鐧诲綍浜烘渶鍚庝竴娆℃彁浜ょ殑鏃ユ姤
-		this.getLastDutyRecordFun()
-	},
-	methods: {
-		isNotOperationName(workCenter, operationName, workCenterTwo) {
-			// 鍒ゆ柇鏄惁涓鸿宸ヤ綔绔�
-			if (workCenter.includes(workCenterTwo)) {
-				// 鍒ゆ柇鏄惁鍖呭惈宸ュ簭鍚嶇О
-				if (!operationName.includes(this.query.operationName)) {
-					return true
-				} else {
-					return false
-				}
-			} else {
-				return false
-			}
+				},
+				reportProductionVolumelist: {},
+				FeedInputProductionVolumeList: [], //鎶曟枡浜ч噺
+				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"],
+					}, ],
+					reportProductionVolume: [{
+						required: true,
+						message: "璇疯緭鍏ユ眹鎶ヤ骇閲�",
+						trigger: ["change"],
+					}, ],
+					// FeedInputProductionVolume: [{
+					// 	required: true,
+					// 	message: "璇疯緭鍏ユ姇鏂欎骇閲�",
+					// 	trigger: ["change"],
+					// }, ],
+
+				},
+				showSave: false,
+				operationTaskId: "",
+				subdisabled: false,
+				codeInfoId: "",
+				detailedList: {},
+				showModal: false,
+				personShowModal: false,
+				checkboxList: [],
+				index: 0,
+			};
 		},
-		// 鍒ゆ柇宸ュ崟鏄惁绛変簬,鍚屾椂鍒ゆ柇鏄惁涓虹涓�閬撳伐搴�
-		isFirstOperationId(workCenter, workCenterTwo) {
-			if (workCenter.includes(workCenterTwo)) {
-				// 鍒ゆ柇鏄惁涓嶄负绗竴閬撳伐搴�
-				if (this.query.operationId !== this.firstOperationId) {
-					return true
-				} else {
-					return false
-				}
-			} else {
-				return false
-			}
-		},
-		// 棣栨杩涘叆椤甸潰鑾峰彇褰撳墠鐧诲綍浜烘渶鍚庝竴娆℃彁浜ょ殑鏃ユ姤
-		getLastDutyRecordFun() {
-			this.$u.api.dailyPaper.getLastDutyRecord().then(res => {
-				if (res.code === 0) {
-					this.dutyNo = res.data.dutyNo
-					this.id = res.data.id
-					this.query.createUser = this.vuex_username
-					this.query.clazzType = res.data.clazzType
-					this.query.workstationId = res.data.workstationId
-					this.query.workstationName = res.data.workstationName
-					this.query.productionUser = res.data.productionUser.split(',').reverse()
-					this.query.userList = res.data.productionUserList.split(',')
-					this.query.operationId = res.data.operationId
-					this.getOperation()
-				} else {
-					this.$u.toast(res.msg)
-				}
-			})
-		},
-		// 娓呯┖閫昏緫
-		onNavigationBarButtonTap(e) {
-			this.isEdit = true
-			this.isShowButton = true
-			this.addOrEdit = 'add'
-			this.query.productionUser = ''
-			this.query.productionUserList = []
-			this.staffNameJoin = ''
-			this.query.updateTime = ''
-		},
-		edit() {
-			this.isEdit = !this.isEdit
-			this.isShowButton = this.isEdit
-			this.addOrEdit = 'edit'
-		},
-		goPage(index) {
-			switch (index) {
-				// 璺宠浆鍒板巻鍙查〉闈�
-				case 6:
-					uni.navigateTo({
-						url: '/pages/daily/daily/daily-list'
-					})
-					break;
-				// 璺宠浆鍒版姤宸ラ〉闈�
-				case 8:
-					if (this.isEdit) {
-						this.$refs.uToast.show({
-							title: '璇峰厛淇濆瓨淇敼',
-							type: 'warning '
+		// 鐐瑰嚮鎻愪氦鎸夐挳鐨勪簨浠跺鐞嗗嚱鏁�
+		onNavigationBarButtonTap() {
+			this.$refs.uForm.validate((valid) => {
+				if (valid) {
+					uni.showLoading({
+						mask: true,
+						title: "鍔犺浇涓�",
+					});
+					this.form.operationTaskId = this.form.id;
+					this.reportProductionVolumelist.operationTaskId = this.form.id;
+					this.reportProductionVolumelist.status = this.form.status;
+					this.reportProductionVolumelist.Persons = this.form.Persons;
+					this.reportProductionVolumelist.productStaffIds = this.form.productStaffIds;
+					this.reportProductionVolumelist.productStaffs = this.form.productStaffs;
+					this.reportProductionVolumelist.productInputList = Object.keys(this.FeedInputProductionVolumeList).length === 0 ? null : this.FeedInputProductionVolumeList;
+					this.reportProductionVolumelist.dutyRecordId = this.dutyId;
+					this.form.productOutputList = []; // 鍒涘缓涓�涓┖鏁扮粍
+					this.form.productOutputList.push(this.reportProductionVolumelist); // 鍚戞暟缁勪腑娣诲姞鍏冪礌
+					console.log("this.form", this.form);
+					this.$u.api.workReporting
+						.submitPDA(this.form)
+						.then((res) => {
+							this.subdisabled = true;
+							this.$u.toast("鎻愪氦鎴愬姛");
+							this.InventoryReceiptList.unshift(this.form.productOutputList[0]);
+							this.reportProductionVolumelist = {},
+							this.FeedInputProductionVolumeList = [], //鎶曟枡浜ч噺
+							this.form.FeedInputProductionVolume = null, //鎶曟枡浜ч噺
+							this.form.reportProductionVolume = null, //姹囨姤浜ч噺
+							console.log("this.InventoryReceiptList", this.InventoryReceiptList);
 						})
-						return
+						.finally(() => {
+						});
+				} 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: {
+			// 鎶曟枡浜ч噺
+			FeedInputProductionVolumeCLick() {
+				if (this.form.taskNo === "") {
+					uni.showToast({
+						title: "璇峰厛鎵爜",
+						icon: "none",
+					});
+					return;
+				}
+				if (this.simplifyDisabled) {
+					uni.showToast({
+						title: "鍊掑啿鏃犻渶鎶曟枡",
+						icon: "none",
+					});
+					return;
+				}
+				uni.navigateTo({
+					url: "/pages/product/report/seachPersonnelNo?moOn=" + this.form.moOn + "&workstationId=" + this.form.workstationId,
 
-					let workCenter = this.query.workstationName.split(')')[0].substring(1)
-					let operation = this.query.workstationName.split(')')[1]
-					console.log(workCenter, operation, this.firstOperationId, this.query.operationId, this.query)
-					if (workCenter == "TM-01" || workCenter == "JG-01" || workCenter == "YB-04" || this.isFirstOperationId('DY-01,GY-01,YB-01,YB-02', workCenter) || this.isNotOperationName('ZZ-02', '浜岃,娉ㄦ补', workCenter)) {
-						let item = {
-							workstationId: this.query.workstationId,
-							clazzType: this.query.clazzType,
-							dutyNo: this.dutyNo,
-							userStaffNo: this.query.userList,
-							workstationName: this.query.workstationName,
-							staffNameJoin: this.staffNameJoin,
-							workCenter: workCenter,
-							operationId: this.query.operationId,
-							firstOperationId: this.firstOperationId,
-							lastOperationId: this.lastOperationId
-						}
-						uni.navigateTo({
-							url: '/pages/daily/common/work-reporting?info=' + encodeURIComponent(JSON
-								.stringify(item))
-						})
-					} else if (this.query.workstationName.includes("TX-02") && !this.query.operationName.includes("鍙犺")) {
-						let item = {
-							workstationId: this.query.workstationId,
-							clazzType: this.query.clazzType,
-							dutyNo: this.dutyNo,
-							userStaffNo: this.query.userList,
-							workstationName: this.query.workstationName,
-							staffNameJoin: this.staffNameJoin,
-							workCenter: "TX-02",
-							operationId: this.query.operationId,
-							firstOperationId: this.firstOperationId,
-							lastOperationId: this.lastOperationId
-						}
-						uni.navigateTo({
-							url: '/pages/daily/common/work-reporting?info=' + encodeURIComponent(JSON
-								.stringify(item))
-						})
+
+				});
+			},
+			// 姹囨姤浜ч噺
+			reportProductionVolumeCLick() {
+				if (this.form.taskNo === "") {
+					uni.showToast({
+						title: "璇峰厛鎵爜",
+						icon: "none",
+					});
+					return;
+				}
+				// 澶勭悊鎻愪氦閫昏緫
+				this.$u.api.workReporting
+					.operationTask({
+						id: this.form.id,
+					})
+					.then((res) => {
+						res.data.name = this.form.name;
+						this.$refs.saveForm.open(res);
+						uni.hideLoading();
+					});
+			},
+			// 澶勭悊鎶ュ伐鏂瑰紡鍙樻洿
+			handleReportTypeChange() {
+				// 鍒囨崲鎶ュ伐鏂瑰紡鏃舵竻绌轰汉鍛樺悕绉�
+				this.form.Persons = '';
+				this.form.productStaffs = [];
+				this.form.productStaffIds = [];
+			},
+			// 浜哄憳鍚嶇О
+			openselectedPersons() {
+				this.personShowModal = true;
+			},
+			// 澶嶉�夋鍙樺寲浜嬩欢
+			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;
+					if (previouslySelected && newlySelected && previouslySelected.staffId !== newlySelected) {
+						// 宸叉湁閫変腑椤逛笖閫夋嫨浜嗘柊鐨勯」锛屾彁绀哄彧鑳介�夋嫨涓�涓汉
+						this.$u.toast('鎸変汉鍛樻姤宸ユ椂鍙兘閫夋嫨涓�浣嶄汉鍛�');
+						// 淇濇寔鍘熼�夋嫨
+						this.selectedPersons = this.selectedPersons.map(item => ({
+							...item,
+							checked: item.staffId === previouslySelected.staffId
+						}));
+
 					} else {
-						uni.navigateTo({
-							url: `/pages/daily/common/work-order-list?workstationId=${this.query.workstationId}&toId=${this.toId}&clazzType=${this.query.clazzType}&dutyNo=${this.dutyNo}&userStaffNo=${this.query.userList}&workstationName=${this.query.workstationName}&staffNameJoin=${this.staffNameJoin}`
-						})
-					}
-					break;
-				// 璺宠浆鍒版潅宸ラ〉闈�
-				case 9:
-					if (this.isEdit) {
-						this.$refs.uToast.show({
-							title: '璇峰厛淇濆瓨淇敼',
-							type: 'warning '
-						})
-						return
-					}
-					uni.navigateTo({
-						url: `/pages/daily/handyman/handyman?dutyNo=${this.query.dutyNo}&updateTime=${this.query.updateTime}&userList=${this.query.productionUser}&staffList=${this.query.userList}`
-					})
-					break;
-			}
-			if (!this.isEdit) {
-				return
-			} else {
-				switch (index) {
-					case 0:
-						uni.navigateTo({
-							url: '/pages/daily/workstation/index'
-						})
-						break;
-					case 1:
-						if (!this.query.workstationName) {
-							this.$refs.uToast.show({
-								title: '璇峰厛閫夋嫨宸ヤ綔绔�',
-								type: 'warning '
-							})
-						} else {
-							this.selectShowOperation = true;
-						}
-						break;
-					case 2:
-						this.calendarShow = true;
-						break;
-					case 3:
-						this.selectShowClazzType = true;
-						break;
-					case 4:
-						let staffList = this.query.productionUser
-						let staffNoList = this.query.userList
-						const list = []
-						for (const i in staffList) {
-							const obj = {
-								staffName: staffList[i],
-								staffNo: staffNoList[i]
-							}
-							list.push(obj)
-						}
-						uni.navigateTo({
-							url: '/pages/daily/production-person/production-person?list=' + encodeURIComponent(
-								JSON.stringify(list))
-						})
-						break;
-				}
-			}
-		},
-		// 鎻愪氦鏃ユ姤淇敼
-		submit() {
-			if (!this.query.workstationId) {
-				this.$u.toast('璇烽�夋嫨宸ヤ綔绔�')
-				return
-			} else if (!this.query.operationId) {
-				this.$u.toast('璇烽�夋嫨宸ュ簭')
-				return
-			} else if (!this.query.clazzType) {
-				this.$u.toast('璇烽�夋嫨鐝')
-				return
-			} else if (!this.query.productionUser) {
-				this.$u.toast('璇烽�夋嫨鐢熶骇浜哄憳')
-				return
-			} else if (!this.query.updateTime) {
-				this.$u.toast('璇烽�夋嫨鏃堕棿')
-				return
-			}
+						// 棣栨閫夋嫨鎴栧彇娑堥�夋嫨
+						this.selectedPersons = this.selectedPersons.map(item => ({
+							...item,
+							checked: newlySelected ? item.staffId === newlySelected : false
+						}));
 
-			let params = JSON.parse(JSON.stringify(this.query))
-			this.$delete(params, 'productionUser')
-			this.$delete(params, 'productionUserList')
-			params.updateTime = params.updateTime + ' 00:00:00'
-			params.id = null
-			if (this.addOrEdit === 'add') {
-				this.$u.api.dailyPaper.addDailyPaper(params).then(res => {
-					if (res.code === 0) {
-						// this.getLastDutyRecordFun()
-						this.query.createUser = this.vuex_username
-						this.$u.toast('淇濆瓨鎴愬姛')
-						this.isShowButton = false
-						this.getLastDutyRecordFun()
 					}
-				})
-			} else {
-				params.id = this.id
-				this.$u.api.dailyPaper.editDailyPaper(params).then(res => {
-					if (res.code === 0) {
-						// this.getLastDutyRecordFun()
-						this.$u.toast('淇敼鎴愬姛')
-						this.isShowButton = false
-					}
-				})
-			}
-			this.isEdit = false
-		},
-		changeCalendar(e) {
-			this.query.updateTime = e.result;
-		},
-		confirmOperation(e) {
-			this.query.operationName = e[0].label
-			this.query.operationId = e[0].value
-			const index = this.operationList.findIndex(item => item.value === this.query.operationId)
-			if (index > -1) {
-				this.operationIndex = index
-				this.toId = this.operationList[index].value
-			}
-		},
-		confirmClazzType(e) {
-			this.query.clazzType = e[0].label
-		},
-		// 鏌ヨ宸ヤ綔绔�
-		getOperation() {
-			this.$u.api.dailyPaper.getWorkstation().then(res => {
-				if (res.code === 0) {
-					const index = res.data.findIndex(item => item.name === this.query.workstationName)
-					if (index > -1) {
-						this.workCenter = res.data[index].workCenter
-					}
-					this.query.workstationName = '(' + this.workCenter + ')' + this.query.workstationName
-					this.getOperationTaskFun(this.workCenter, this.query.operationId)
-				}
-			})
-		},
-		getOperationTaskFun(id, operationId) {
-			this.operationList = []
-			const params = {
-				workCenter: id,
-				current: 1,
-				size: -1
-			}
-			// 鏌ヨ宸ュ簭鍒楄〃
-			this.$u.api.dailyPaper.getOperation(params).then(res => {
-				if (res.code === 0) {
-					if (res.data.records.length > 0) {
-						res.data.records.forEach(i => {
-							const obj = Object.assign({
-								label: i.name,
-								value: i.id,
-							})
-							this.operationList.push(obj)
-						})
-						if (operationId) {
-							const index = this.operationList.findIndex(item => item.value === operationId)
-							if (index > -1) {
-								this.operationIndex = index
-								this.query.operationName = this.operationList[index].label
-								this.toId = this.operationList[index].value
-							}
-						}
-						this.firstOperationId = this.operationList[0].value
-						this.lastOperationId = this.operationList[this.operationList.length - 1].value
-					}
-				}
-			})
-		}
-	},
-	watch: {
-		'query.productionUser': {
-			handler(newName, oldName) {
-				if (this.query.productionUser.length > 0) {
-					this.staffNameJoin = this.query.productionUser.join()
 				} else {
-					this.staffNameJoin = ''
+					// 澶氶�夋ā寮�
+					this.selectedPersons = this.selectedPersons.map(item => ({
+						...item,
+						checked: values.includes(item.staffId)
+					}));
 				}
 			},
-			immediate: true,
-			deep: true
-		}
-	}
-}
+			// 纭閫夋嫨
+			confirmSelection() {
+				const selected = this.selectedPersons.filter(item => item.checked);
+				// 鏍规嵁鎶ュ伐鏂瑰紡璁剧疆浜哄憳鍚嶇О
+				if (this.form.status === 'true' && selected.length > 0) {
+					this.form.Persons = selected[0].staffName;
+				} else {
+					this.form.Persons = selected.map(item => item.staffName).join(',');
+				}
+				this.form.productStaffs = selected.map(item => item.staffNo);
+				this.form.productStaffIds = selected.map(item => item.staffId);
+			},
+			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.detailedList);
+				// 澶勭悊纭閫昏緫
+				this.$u.api.cancelReporting
+					.cancelDTAOfWorkApplication({
+						outBatchNo: this.detailedList.outBatchNo,
+						outputId: this.detailedList.id
+					})
+					.then((res) => {
+						console.log("res", res);
+						this.InventoryReceiptList.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.reportProductionVolumelist = val
+				this.form.reportProductionVolume = val.outBatchNo;
+				// 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;
+			},
+			setFeedInputProductionVolume(val) {
+				console.log('val', val)
+				this.FeedInputProductionVolumeList = val;
+				const values = this.FeedInputProductionVolumeList.map((item) => item.ifsBatchNo)
+				console.log('values', values)
+
+          		this.form.FeedInputProductionVolume = values.join('锛�')
+			},
+			// 鍥炴樉鎵爜鐨勪俊鎭�-鎶ュ伐鍗�
+			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

--
Gitblit v1.9.3