From ea87c908fb6cdfc3e227a584a53e6730efb8262a Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 26 十月 2023 13:41:12 +0800
Subject: [PATCH] 小程序代码

---
 minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue |  517 +++++++++++++++++++++++++++++---------------------------
 1 files changed, 268 insertions(+), 249 deletions(-)

diff --git a/minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue b/minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue
index 35ea422..5b49724 100644
--- a/minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue
+++ b/minipro_standard/pages_adjust/pages/OrderDetail/OrderDetail.vue
@@ -1,34 +1,25 @@
 <template>
 	<view>
 		<workOrderInfo :orederMessage="info" />
-		<view class="bg_cate">
+		<!-- <view class="bg_cate">
 			<view @click="clickIten(index)" :class="typeView == index ? 'bg_cate_item active' : 'bg_cate_item'"
 				v-for="(item, index) in cate" :key="index">{{ item.name }}</view>
-		</view>
-		<div class="bg_list" v-if="typeView === 0">
+		</view> -->
+		<div class="bg_list">
 			<div class="bg_list_item">
 				<div class="bg_list_item_top">
 					<div class="bg_list_item_top_left">
 						<div class="bg_list_item_top_left_x bg_m"></div>
 						<span>鎶曟枡鏄庣粏</span>
 					</div>
-					<div class="bg_list_item_top_right" @click="jumpTL">
-						<!-- v-if="proxy.$auth('h5:workorderinput:create') && (info.bomType !== 1 || info.bomType == 0 || !info.bomType)" -->
-						<!-- <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="" /> -->
-						<!-- <img src="@/static/gongdan_ic_shoudong@2x.ong" alt="" /> -->
-						<image src="../../static/gongdan_ic_shoudong@2x.png" class="img28" mode=""></image>
-						<span class="cm">鏂板鎶曟枡</span>
-					</div>
 				</div>
 
 				<template v-if="feedingData && feedingData.length > 0">
-					<u-swipe-action>
-						<u-swipe-action-item v-for="(item, index) in feedingData" :key="index" :options="options"
-							@click="deleItem(item.id, 'T')">
+					<view>
+						<view v-for="(item, index) in feedingData" :key="index">
 							<div class="bg_list_item_h">
 								<div class="bg_list_item_num">
 									<div class="bg_list_item_num_item">
-										<!-- <span>{{item.code}}</span> -->
 										<div class="bg_list_item_num_item_wl">
 											<span> {{ item.materialName || '澧欎綋鐮�' }}{{ item.procedureName ? `&nbsp;|&nbsp;${item.procedureName}` : ''
 							            }}</span>
@@ -41,25 +32,17 @@
 											</div>
 										</div>
 										<div class="bg_list_item_num_item_sr">
-											<!-- :disabled="!proxy.$auth('h5:workorderinput:update')" -->
-											<!-- <view class="cY">
-												<span>{{item.num}}{{ item.unitName }}</span>
-												<image src="../../../static/ic_edit@2x.png" class="img48" mode=""></image>
-												<span class="red">鍒犻櫎</span>
-											</view> -->
-											<view class="cY">
-												<input v-model="item.num"
-													@blur="change(item.id, item.num, 'T', item.maxNum, item, item.unitAttribute)"
-													type="number" />
-												<span class="cm">淇濆瓨</span>
+											<view class="cY">
+												<view class="mr10">{{ item.num }}</view>
+												<span v-if="info.umodel">{{ info.umodel.name }}</span>
 											</view>
-											
+
 										</div>
 									</div>
 								</div>
 							</div>
-						</u-swipe-action-item>
-					</u-swipe-action>
+						</view>
+					</view>
 
 				</template>
 				<template v-else>
@@ -73,6 +56,10 @@
 					<div class="bg_list_item_top_left">
 						<div class="bg_list_item_top_left_x bg_m"></div>
 						<span>浜у嚭鏄庣粏</span>
+					</div>
+					<div class="bg_list_item_top_right" @click="proRecord">
+						<span style="color: #4275FC;">鏌ョ湅妫�楠岃褰�</span>
+						<u-icon name="arrow-right" color="#4275FC" />
 					</div>
 				</div>
 				<div class="bg_list_item_h">
@@ -80,11 +67,7 @@
 						<div class="bg_list_item_num_item">
 							<span>鑹搧鏁皗{ info.umodel ? `(${info.umodel.name})` : '' }}</span>
 							<div class="bg_list_item_num_item_sr">
-								<!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
-								<!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
-								<input type="number" v-model="produceFrom.qualified"
-									@blur="changeCC('0', produceFrom.qualified, produceFrom.qualifiedId)"
-									placeholder="璇疯緭鍏�" />
+								<view class="mr10">{{ produceFrom.qualified }}</view>
 								<span v-if="info.umodel">{{ info.umodel.name }}</span>
 							</div>
 						</div>
@@ -92,158 +75,83 @@
 				</div>
 				<div class="bg_list_item_h">
 					<div class="bg_list_item_num">
-						<!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
 						<div class="bg_list_item_num_item">
 							<span>涓嶈壇鏁皗{ info.umodel ? `(${info.umodel.name})` : '' }}</span>
 							<div class="bg_list_item_num_item_sr">
-								<!-- :disabled="!proxy.$auth('h5:workorderoutput:update')" -->
-								<!-- @blur="change(item.id, item.num, 'C', item.maxNum, item)" -->
-								<input type="number" v-model="produceFrom.undesirable"
-									@blur="changeCC('1', produceFrom.undesirable, produceFrom.undesirableId)"
-									placeholder="璇疯緭鍏�" />
+								<view class="mr10">{{ produceFrom.undesirable }}</view>
 								<span v-if="info.umodel">{{ info.umodel.name }}</span>
 							</div>
 						</div>
 					</div>
 				</div>
-				<div class="bg_list_item_h" v-if="produceFrom.undesirable > 0">
-					<div class="bg_list_item_num">
-						<div class="bg_list_item_num_item" @click="badShow = true">
-							<span>涓嶈壇椤�</span>
-							<div class="bg_list_item_num_item_sr">
-								<span class="wulll" :style="{ color: form.defectiveName ? '#305ED5' : '' }">{{ form.defectiveName ?
-				              form.defectiveName : '璁剧疆' }}</span>
-								<image src="../../../static/ic_ar@2x.png" class="img_ar" mode=""></image>
-							</div>
-						</div>
-					</div>
-				</div>
-			</div>
-			<div class="bg_plan" @click="TimeShow = true">
-				<div class="bg_plan_label">
-					<span>鎶ュ伐鏃堕暱</span>
-				</div>
-				<div class="bg_plan_label_val">
-					<span
-						:style="{ color: form.durationName ? '#333' : '' }">{{ form.durationName ? form.durationName : '璇烽�夋嫨' }}</span>
-					<image src="../../../static/ic_ar@2x.png" class="img_ar" mode=""></image>
-				</div>
-			</div>
-			<div class="bg_list_item" v-if="arrType && arrType.length > 0">
-				<div class="bg_list_item_top">
-					<div class="bg_list_item_top_left">
-						<div class="bg_list_item_top_left_x bg_m"></div>
-						<span>宸ヨ祫缁╂晥</span>
-					</div>
-				</div>
-				<div class="bg_list_item_h">
-					<div class="bg_list_item_num">
-						<div class="bg_list_item_num_item">
-							<span>璁′欢鏂瑰紡</span>
-							<div class="bg_list_item_num_item_list">
-								<div :class="form.index == index ? 'bg_list_item_num_item_list_item active' : 'bg_list_item_num_item_list_item'"
-									v-for="(item, index) in arrType" :key="index"
-									@click="clickPerformanceType(item, index)">
-									{{ item.name }}
-								</div>
-							</div>
-						</div>
-					</div>
-					<div class="bg_list_item_num">
-						<div class="bg_list_item_num_item">
-							<span>宸ヨ祫鍗曚环</span>
-							<div class="bg_list_item_num_item_sr">
-								<span class="color1">{{ (arrType[form.index].salary / 10 / 10).toFixed(2) }}鍏�/{{ arrType[form.index].type ==
-		                  0 ? '浠�' : '鏃�' }}</span>
-							</div>
-						</div>
-					</div>
-					<div class="bg_list_item_num">
-						<div class="bg_list_item_num_item">
-							<span>棰勮宸ヨ祫</span>
-							<div class="bg_list_item_num_item_sr">
-								<span class="color1">{{ expectedSalary }}鍏�</span>
-							</div>
-						</div>
-					</div>
-					<div class="bg_list_item_num">
-						<div class="bg_list_item_num_item">
-							<span>杈炬爣鐜�</span>
-							<div class="bg_list_item_num_item_sr">
-								<span class="color1">{{ complianceRate }}%</span>
-							</div>
-						</div>
-					</div>
-				</div>
-			</div>
-
+			</div>
+			<div class="bg_list_item">
+				<div class="bg_list_item_top">
+					<div class="bg_list_item_top_left">
+						<div class="bg_list_item_top_left_x bg_m"></div>
+						<span>鐢熶骇鐐规</span>
+					</div>
+				</div>
+				<template v-if="djData && djData.length > 0">
+					<div class="details_dj">
+						
+						<div class="details_dj_list">
+							<scroll-view scroll-y="true" refresher-enabled="true" @scrolltolower="getLists">
+								<view v-for="(item, index) in djData" :key="index">
+									<div class="details_dj_list_item">
+										<span>{{ item.attrName }}锛歿{ item.val }}</span>
+										<span>{{ item.userName }} {{ item.createTime }}</span>
+									</div>
+								</view>
+							</scroll-view>
+						</div>
+					</div>
+				</template>
+				<template v-else>
+					<div class="kong">
+						<span>鏆傛棤鏁版嵁</span>
+					</div>
+				</template>
+			</div>
 		</div>
-		<div class="details_dj" v-if="typeView === 1">
-
-			<div class="details_dj_list">
-				<u-swipe-action>
-					<u-swipe-action-item v-for="(item, index) in djData" :key="index" :options="options"
-						@click="dele(item.id)">
-						<div class="details_dj_list_item">
-							<span>{{ item.attrName }}锛歿{ item.val }}</span>
-							<span>{{ item.userName }} {{ item.createTime }}</span>
-						</div>
-					</u-swipe-action-item>
-				</u-swipe-action>
-			</div>
-		</div>
-		<!-- v-if="info.status === 2 || info.procedureNeedcheck === 1" -->
-		<template>
-			<div class="bh_zw"></div>
-			<div class="bg_footer bg_f7">
-				<div class="bg_footer_submit bg_m" v-if="typeView == 0" @click="submit">纭鎶ュ伐</div>
-				<!-- proxy.$auth('h5:workorder:processRecord') &&  -->
-				<div class="bg_footer_submit1" @click="jumpdj" v-if="typeView == 1">
-					<image src="../../../static/gongdan_ic_shoudong@2x.png" class="fornt-img" mode=""></image>
-					<span>鏂板鐐规</span>
-				</div>
-			</div>
-		</template>
-		<u-datetime-picker :show="TimeShow" @cancel="TimeShow=false" @confirm="timeConfirm" v-model="form.time"
-			mode="time"></u-datetime-picker>
-		<u-popup :show="badShow" @close="badShow=false" :round="8" closeable zIndex="20000">
-			<view class="rp p40 contanir">
-				<view class="c2 b tc">涓嶈壇椤�</view>
-				<view class="content bl_list">
-					<div class="bl_list_item" v-for="(item, i) in cateList" :key="i" @click="changeChecked(i)">
-						<div class="bl_list_item_left">
-							<u-checkbox-group>
-								<u-checkbox :checked="item.active" :label="item.name"
-									:name="item.name">
-								</u-checkbox>
-							</u-checkbox-group>
-						</div>
-						<div class="bl_list_item_right">
-							<input type="number" @click.stop v-model="item.num" placeholder="0" />
-						</div>
-					</div>
-				</view>
-				<view class="flex ap tc bottom-view">
-					<view class="fx1 ml20 ptb20 sbtn_green" @click="confirm">纭畾</view>
-				</view>
-			</view>
-		</u-popup>
+		
 	</view>
 </template>
 
 <script>
-	import workOrderInfo from '@/components/workOrderInfo.vue'
-	import {
-		queryById,
-		createMaterial,
-		createMaterialStandard
+	import workOrderInfo from '@/components/workOrderInfo.vue'
+	import {
+		getBarcodeContent,
+		queryById,
+		getOrocessRecord,
+		deleteCT,
+		updateById,
+		comfirmDone,
+		comfirmDoneStandard,
+		getListByCondition,
+		allForStandard,
+		pageDJ,
+		deletedj,
+		dealWorkorderRecordStandard,
+		getWorkorderRecordListStandard,
+		createMaterial,
+		createMaterialStandard
 	} from '@/util/api/WorkOrderAPI'
+	import {
+		categoryExtList,
+		queryOne,
+		queryList
+	} from '@/util/api/PlanningAPI'
+	import {
+		REGULAR
+	} from '@/util/utils'
 	export default {
 		components: {
 			workOrderInfo
 		},
 		data() {
 			return {
+				workorderId: '',
 				cate: [{
 						name: '鐢熶骇'
 					},
@@ -259,40 +167,19 @@
 					duration: 0,
 					type: 0,
 					index: 0
-				},
+				},
 				info: {},
 				TimeShow: false,
 				badShow: false,
 				typeView: 0,
-				feedingData: [{
-					id: 0,
-					materialName: '澧欎綋鐮�',
-					procedureName: '鍘嬪埗',
-					qualityType: 1,
-					locationName: 'CP-01',
-					batch: '20230713',
-					num: 2,
-					maxNum: 10,
-					unitAttribute: 1,
-					unitName: '鍧�'
-				}],
+				feedingData: [],
 				options: [{
 					text: '鍒犻櫎',
 					style: {
 						backgroundColor: 'red',
 					}
 				}],
-				arrType: [{
-						name: '璁℃椂',
-						type: 1,
-						salary: 1000,
-					},
-					{
-						name: '璁′欢',
-						type: 0,
-						salary: 100
-					},
-				],
+				arrType: [],
 				// 浜у嚭鍚堟牸/涓嶈壇
 				produceFrom: {
 					qualifiedId: '',
@@ -300,18 +187,23 @@
 					undesirableId: '',
 					undesirable: 5 // 涓嶈壇
 				},
-				djData: [{
-					attrName: '鍑烘按鏃堕棿',
-					val: '2022-05-28 16:3',
-					userName: '寮犱笁 ',
-					createTime: '2022-05-28 16:32:'
-				}],
-				cateList: [{
-					active: false,
-					name: '姣涘埡',
-					num: 0
-				}]
+				djData: [],
+				cateList: [],
+				finished: true,
 			};
+		},
+		onLoad(obj) {
+			this.workorderId = obj.id
+			this.queryByIds()
+			this.getOrocessRecords()
+			this.getData()
+			this.getOrocessRecordCC()
+			uni.$on('spotAdd', () => {
+				if (this.typeView == 1) {
+					this.pages.page = 1
+					this.pageDJs()
+				}
+			})
 		},
 		computed: {
 			expectedSalary() {
@@ -353,23 +245,36 @@
 					// return Number(from.qualified) * infoBox.value.salary;
 				}
 			}
-		},
-		onLoad(obj) {
-			this.workorderId = obj.id
-			queryById(this.workorderId)
-				.then(res => {
-					if (res.code === 200) {
-						this.info = res.data
-						this.deviceId = res.data.pgmodel.id
-					}
-				})
 		},
 		methods: {
-			click() {
-
+			getData() {
+				categoryExtList({
+					cateType: "3"
+				}).then(res => {
+					if (res.code === 200) {
+						res.data.forEach(item => {
+							item.active = false
+							item.num = ''
+						})
+						this.cateList = res.data
+					}
+				})
 			},
 			clickIten(index) {
 				this.typeView = index
+				if (this.typeView == 1) {
+					this.pages.page = 1
+					this.finished = true
+					this.pageDJs()
+				}
+			},
+			getLists() {
+				if (!this.finished) {
+					return
+				}
+				this.finished = false
+				this.pages.page += 1
+				this.pageDJs()
 			},
 			timeConfirm({
 				value
@@ -395,68 +300,182 @@
 					if (unitAttribute == 0 && num != '') {
 						if (!REGULAR.positiveInteger.test(num)) {
 							obj.num = obj.ynum
-							Toast({
-								message: '鍙兘杈撳叆姝f暣鏁�'
-							})
+							uni.$u.toast('鍙兘杈撳叆姝f暣鏁�')
 							return
 						}
 					}
 					if (unitAttribute == 1 && num != '') {
 						if (!REGULAR.number.test(num)) {
-							Toast({
-								message: '鍙兘杈撳叆姝f暣鏁版垨灏忔暟锛堟渶澶氬洓浣嶏級'
-							})
+							uni.$u.toast('鍙兘杈撳叆姝f暣鏁版垨灏忔暟锛堟渶澶氬洓浣嶏級')
+
 							obj.num = obj.ynum
 							return
 						}
 					}
 					if (num > maxNum) {
 						obj.num = obj.ynum
-						Toast.fail({
-							message: '瓒呭嚭宸ヨ鎬绘暟'
-						})
+						uni.$u.toast('瓒呭嚭宸ヨ鎬绘暟')
+
 						return
 					}
 				} else if (type === 'C' && num > info.value.planNum) {
 					obj.num = obj.ynum
-					Toast.fail({
-						message: '浜у嚭鏁伴噺涓嶈兘瓒呰繃璁″垝鏁伴噺'
-					})
+					uni.$u.toast('浜у嚭鏁伴噺涓嶈兘瓒呰繃璁″垝鏁伴噺')
+
 					return
 				}
-				// updateById({ id, num }).then(res => {
-				//   if (res.code === 200 && type === 'T') {
-				//     getOrocessRecords()
-				//   } else if (res.code === 200 && type === 'C') {
-				//     // getOrocessRecordCC()
-				//   }
-				// })
+
 			},
 			clickPerformanceType(item, index) {
 				this.form.index = index
 				this.form.type = item.type
 			},
-			submit() {},
-			jumpdj() {},
-			pageDJs() {},
-			dele(id) {
-				// deletedj(id)
-				//     .then(res => {
-				//       if (res.code === 200) {
-				//         djData.value = []
-				//         finished.value = false
-				//         page.page = 1
-				//         djData.value = []
-				//         pageDJs()
-				//       }
-				//     })
+			submit() {
+
 			},
-			confirm() {
-				// console.log('confirm');
+			jumpdj() {
+				uni.navigateTo({
+					url: `/pages_adjust/pages/spotCheck/spotCheck?id=${this.workorderId}`
+				})
+			},
+			proRecord() {
+				uni.navigateTo({
+					url: `/pages_inspect/pages/InspectionRecords/InspectionRecords?id=${this.workorderId}`
+				})
+			},
+			pageDJs() {
+				pageDJ({
+						capacity: this.pages.capacity,
+						page: this.pages.page,
+						model: {
+							workorderId: this.workorderId
+						}
+					}).then(res => {
+						let {
+							data
+						} = res
+						if (data.page == 1) {
+							this.djData = []
+						}
+						this.djData.push(...data.records)
+						// loading.value = false
+					}).catch(err => {
+						// loading.value = false
+						// finished.value = true
+					})
+					.finally(() => {
+						this.finished = true
+					})
+			},
+			dele(id) {
+				deletedj(id)
+					.then(res => {
+						if (res.code === 200) {
+							this.finished = false
+							this.pages.page = 1
+							this.pageDJs()
+						}
+					})
+			},
+			confirm() {
+				let isOpen = false
+				this.cateList.forEach((item, index) => {
+					if (item.active) {
+						isOpen = true
+					}
+				})
+				if (!isOpen) {
+					uni.showToast({
+						title: '璇烽�夋嫨涓嶈壇椤�',
+						duration: 2000,
+						icon: 'none'
+					})
+					return
+				}
+				let arr = []
+				let total = 0
+				let name = ''
+				this.cateList.forEach((item, index) => {
+					if (item.active) {
+						if (item.num <= 0) {
+							uni.showToast({
+								title: '涓嶈壇鏁伴噺蹇呴』澶т簬0',
+								duration: 2000,
+								icon: 'none'
+							})
+							return
+						}
+						total = total += item.num
+						arr.push(item)
+						name += item.name + item.num + '锛�'
+					}
+				})
+				if (total != Number(this.produceFrom.undesirable)) {
+					uni.showToast({
+						title: '涓嶈壇鏁板繀椤荤瓑浜庝骇鍑轰笉鑹暟',
+						duration: 2000,
+						icon: 'none'
+					})
+					return
+				}
+				this.form.defective = arr
+				this.form.defectiveName = name
 				this.badShow = false
 			},
 			changeChecked(i) {
 				this.cateList[i].active = !this.cateList[i].active
+			},
+			queryByIds() {
+				queryById(this.workorderId)
+					.then(res => {
+						this.info = res.data
+						queryList({
+							deleted: 0,
+							departId: res.data.factoryId,
+							materialId: res.data.materialId,
+							procedureId: res.data.procedureId
+						}).then(result => {
+							if (result.code === 200) {
+								if (result.data && result.data.length > 0) {
+									result.data.forEach((item, index) => {
+										item.name = item.type == 0 ? '璁′欢' : '璁℃椂'
+										item.id = item.type
+										item.active = index == 0
+									})
+									this.arrType = result.data
+								} else {
+									this.arrType = []
+								}
+							}
+						})
+					})
+			},
+			getOrocessRecords() {
+				this.feedingData = []
+				allForStandard({
+					workorderId: this.workorderId,
+					type: 0
+				}).then(res => {
+					if (res.code === 200) {
+						this.feedingData = res.data
+					}
+				})
+			},
+			getOrocessRecordCC() {
+				getWorkorderRecordListStandard({
+					workorderId: this.workorderId
+				}).then(res => {
+					if (res.data.length > 0) {
+						this.produceFrom.qualified = res.data[0].qualifiedNum
+						this.produceFrom.undesirable = res.data[0].unqualifiedNum
+					}
+				})
+			},
+			jumpTL() {
+				uni.navigateTo({
+					// url: ''
+					url: `/pages_adjust/pages/manualFeed/manualFeed?id=${this.workorderId}`
+				})
 			}
 		}
 	}
@@ -717,9 +736,9 @@
 							display: flex;
 							align-items: center;
 							justify-content: flex-end;
-
+							font-size: 28rpx;
 							.color1 {
-								font-size: 28rpx;
+								
 								font-family: PingFangSC-Regular, PingFang SC;
 								font-weight: 400;
 								color: #333333;

--
Gitblit v1.9.3