guoyujia 1 жил өмнө
parent
commit
31ae436442

+ 8 - 2
components/dialog-confirm/dialog-confirm.vue

@@ -22,7 +22,7 @@
 	const baseDialog = ref(null)
 	const message = ref('')
 	const reqParam = ref({})
-	const emit = defineEmits(['submit'])
+	const emit = defineEmits(['submit','backTurnover'])
 
 	function open(msg) {
 		message.value = msg;
@@ -30,7 +30,13 @@
 	}
 
 	function handleConfirm() {
-		emit('submit');
+		if(message.value ==='是否确认送达?') {
+			emit('submit');
+		}
+		else if(message.value === '是否返回待周转?') {
+		 emit('backTurnover');
+		}
+		
 		close();
 	}
 

+ 18 - 33
components/dialog-selectInviteUser/dialog-selectInviteUser.vue

@@ -1,10 +1,9 @@
 <template>
 	<dialog-base ref="baseDialog" title="请选择">
 		<view class="userList">
-			<uni-data-select v-model="resourceGroupId" :localdata="resourceGroupList" placeholder="请选择资源组" @change="handleResourceGroupChange" style="margin-bottom: 20rpx;"></uni-data-select>
 			<uni-easyinput class="uni-mt-5" v-model="userName" placeholder="请输入协作者编号"
-				@input="debounce(handleSearchUserName,500)" ></uni-easyinput> 
-				<!-- @blur="handleBlur" -->
+				@input="debounce(handleSearchUserName,500)"></uni-easyinput>
+			<!-- @blur="handleBlur" -->
 			<view class="uni-row showUser">
 				<view v-for="(item,index) in userList">
 					<view class="user" @click="handleClickUserName(item)">{{item.nickName}}</view>
@@ -44,18 +43,14 @@
 	import {
 		timestampToTime,
 		debounce
-	} from '@/utils/common.js' 
+	} from '@/utils/common.js'
 	import {
 		getUserByLikeUsername
 	} from '@/api/sys/user.js'
-	import {
-		getResourcGroup
-	} from '@/api/resourceGroup/resourceGroupDetail.js'
 
 	const baseDialog = ref(null)
 	const emit = defineEmits(['handleAddDayWorkItem'])
 	const userId = ref(null)
-	const resourceGroupId = ref(null)
 	const flag = ref(false)
 	const userName = ref(null)
 	const userList = ref([])
@@ -67,7 +62,7 @@
 
 	onLoad(() => {
 		userId.value = store.userInfo.userId || "";
-        planDetailId.value = store.planDetails.id
+		planDetailId.value = store.planDetails.id
 	})
 
 	function resetPage() {
@@ -78,18 +73,8 @@
 	}
 
 	function init() {
-		getResourcGroup({commonId:userId.value,productionPlanDetailId:planDetailId.value }).then(res => {
-			if(res.code == 200) {
-				for (let i = 0; i < res.data.length; i++) {
-					resourceGroupList.value[i] = {
-						value: res.data[i].resourceGroupId,
-						text: res.data[i].resourceGroupCode
-					}
-				}
-				baseDialog.value.open()
-			}
-		})
-		
+		baseDialog.value.open()
+
 	}
 
 	function open(data) {
@@ -120,8 +105,8 @@
 
 	function handleClickUserName(item) {
 		selectedUserList.value.push(item);
-		for(let i =0;i<selectedUserList.value.length;i++) {
-			if(userId.value == selectedUserList.value[i].userId) {	
+		for (let i = 0; i < selectedUserList.value.length; i++) {
+			if (userId.value == selectedUserList.value[i].userId) {
 				handleRemoveUserName(item)
 				uni.showToast({
 					icon: "none",
@@ -142,15 +127,16 @@
 		selectedUserList.value.splice(selectedUserList.value.indexOf(item), 1);
 	}
 
-    function handleResourceGroupChange() {
-		
+	function handleResourceGroupChange() {
+
 	}
+
 	function handleStart() {
 		uni.showModal({
-				title: "提示",
-				content: "确认邀请协作者吗",
-				success: function(res) {
-					if(res.confirm) {
+			title: "提示",
+			content: "确认邀请协作者吗",
+			success: function(res) {
+				if (res.confirm) {
 					if (selectedUserList.value.length == 0) {
 						uni.showToast({
 							icon: "error",
@@ -159,13 +145,12 @@
 						close()
 					} else {
 						let inviteUserList = []
-						let commonType ="person"
-						
+						let commonType = "person"
+
 						for (let i = 0; i < selectedUserList.value.length; i++) {
 							let inviteUser = {}
 							inviteUser.tenantId = store.tenantId
 							inviteUser.deptId = store.curDeptDetails.deptId
-							inviteUser.productionResourceGroupId = resourceGroupId.value
 							inviteUser.commonId = selectedUserList.value[i].userId
 							inviteUser.commonCode = selectedUserList.value[i].userName
 							inviteUser.commonType = commonType
@@ -190,7 +175,7 @@
 							}
 						})
 					}
-					}else if(res.cancel){
+				} else if (res.cancel) {
 					close();
 				}
 			}

+ 205 - 6
pages/handlingList/index.vue

@@ -1,16 +1,19 @@
 <template>
 	<view class='container uni-column'>
 		<view class='nav uni-row'>
-			<text :class='pendingClass' @click='selectPending'>待周转</text>
-			<text :class='turnoverClass' @click='selectTurnover'>周转中</text>
+			<view v-for="(item,index) in statusList" :key="index" :class="{'selecter':singleSelectd(item)}">
+			<!-- <text :class='pendingClass' @click='selectPending'>带周转</text>
+			<text :class='turnoverClass' @click='selectTurnover'>周转中</text> -->
 			<!-- <image class='img' src="../../static/screen.png"></image> -->
+			<text  @click='selectedStatus(item)'> {{item['name']}}</text>
+			</view>
 		</view>
 		<!-- 待周转页面 -->
-		<view class="padding-container" v-if='pendingShow'>
+		<view class="padding-container" v-if='selectedInfo.id == 4'>
 			<view class="scroll-container" >
 				<view v-if="listData.length == 0" style="color: #999;margin: 50% auto;">
 					<text>暂无待周转批次</text>
-				</view>	
+				</view>
 				<view v-else v-for="(item, index) in listData" :key="index"
 					:class="{'list-item':true,'selected':isSelected(item)}">
 					<!-- @click="handleSelection(item)" -->
@@ -55,7 +58,7 @@
 			</view>
 		</view>
 		<!-- 周转中页面 -->
-		<view class='turnover-container' v-if='turnoverShow'>
+		<view class='turnover-container' v-if='selectedInfo.id == 5'>
 			<view class="scroll-container" >
 				<view v-if="lotList.length == 0" style="color: #999;margin: 50% auto;">
 					<text>暂无周转中批次</text>
@@ -99,12 +102,97 @@
 					</view>
 				</view>
 			</view>
+			<view class='bottom-btn-container uni-row' >
+				<button type='primary' class='bottom-btn' @click="handleConfirmDelivery" >确认送达</button>
+				<button type='primary' class='bottom-btn' @click="handleBackturnover" style="margin-left: 24rpx;" >退回上一级</button>
+			</view>
+		</view>
+		<!-- 已送达页面 -->
+		<view class='turnover-container' v-if='selectedInfo.id == 6'>
+			<view class="scroll-container" >
+				<view v-if="deliveredList.length == 0" style="color: #999;margin: 50% auto;">
+					<text>暂无已送达批次</text>
+				</view>
+				<!-- 循环已送达的数据 -->
+				<view v-else class='item-container'>
+					<view :class="{'list-container':true,'selected':isSelected(item)}" v-for="(item,index) in deliveredList"
+						@click="handleSelection(item)" :key='index'>
+						<view class="turnover-title uni-row">
+							<view class="uni-row" style="align-items: center;">
+								<view><text class='title-color'>{{ item[0]['totalCarrier'] }}箱</text></view>
+								<view><text class="second-info">{{item[0].preDeptName + '→' + item[0].deptName }}</text>
+								</view>
+							</view>
+						</view>
+						<view v-for="(lot,index) in item" :key="index" style="margin-bottom: 10rpx;">
+							<view class="list-container-item product-description uni-row">
+								<text class="label left-value">产品描述</text>
+								<text class="label right-value">{{lot['productDescription']}}</text>
+							</view>
+							<view class="list-container-item uni-row">
+								<text class="label left-value">批次</text>
+								<text class="label right-value">{{lot['lotCode']}}</text>
+							</view>
+							<view class="list-container-item uni-row">
+								<text class="label left-value">箱数</text>
+								<text class="label right-value">{{lot['carrierName'].split('、').length}}</text>
+							</view>
+							<view class="list-container-item uni-row">
+								<text class="label left-value">箱号</text>
+								<text class="label right-value">{{lot['carrierName']}}</text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class='bottom-btn-container uni-row'>
+				<button type='primary' class='bottom-btn' @click="handleConfirmDelivery">确认送达</button>
+			</view>
+		</view>
+		<!-- 已接收页面 -->
+		<view class='turnover-container' v-if='selectedInfo.id == 7'>
+			<view class="scroll-container" >
+				<view v-if="receivedList.length == 0" style="color: #999;margin: 50% auto;">
+					<text>暂无已接收批次</text>
+				</view>
+				<!-- 循环已接收的数据 -->
+				<view v-else class='item-container'>
+					<view :class="{'list-container':true,'selected':isSelected(item)}" v-for="(item,index) in receivedList"
+						@click="handleSelection(item)" :key='index'>
+						<view class="turnover-title uni-row">
+							<view class="uni-row" style="align-items: center;">
+								<view><text class='title-color'>{{ item[0]['totalCarrier'] }}箱</text></view>
+								<view><text class="second-info">{{item[0].preDeptName + '→' + item[0].deptName }}</text>
+								</view>
+							</view>
+						</view>
+						<view v-for="(lot,index) in item" :key="index" style="margin-bottom: 10rpx;">
+							<view class="list-container-item product-description uni-row">
+								<text class="label left-value">产品描述</text>
+								<text class="label right-value">{{lot['productDescription']}}</text>
+							</view>
+							<view class="list-container-item uni-row">
+								<text class="label left-value">批次</text>
+								<text class="label right-value">{{lot['lotCode']}}</text>
+							</view>
+							<view class="list-container-item uni-row">
+								<text class="label left-value">箱数</text>
+								<text class="label right-value">{{ lot['carrierName'] ? lot['carrierName'].split('、').length : 0 }}</text>
+							</view>
+							<view class="list-container-item uni-row">
+								<text class="label left-value">箱号</text>
+								<text class="label right-value">{{lot['carrierName']}}</text>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
 			<view class='bottom-btn-container uni-row'>
 				<button type='primary' class='bottom-btn' @click="handleConfirmDelivery">确认送达</button>
 			</view>
 		</view>
 	</view>
-	<dialog-confirm ref="confirm" @submit="handleConfirmUnbind" @reflush="reflush"></dialog-confirm>
+	<dialog-confirm ref="confirm" @submit="handleConfirmUnbind" @backTurnover="handleConfirmBack" @reflush="reflush"></dialog-confirm>
 	<dialog-turnoverTask ref="turnoverTask"></dialog-turnoverTask>
 </template>
 
@@ -138,6 +226,7 @@
 		selecter: false
 	})
 	const selection = ref([])
+	const selectedInfo = ref({})
 	const pendingShow = ref(true)
 	const turnoverShow = ref(false)
 	const listData = ref([])
@@ -145,15 +234,25 @@
 	const confirm = ref(null) // 弹窗组件
 	const turnoverTask = ref(null) // 弹窗组件
 	const lotList = ref([])
+	const deliveredList = ref([])
+	const receivedList = ref([])
+	const statusList = ref([
+		{"id": 4,"name": "待周转"},
+		{"id": 5,"name": "周转中"},
+		{"id": 6,"name": "已送达"},
+		{"id": 7,"name": "已接收"}
+	])
 
 	onLoad(() => {
 		uni.$once('confirmDelivery', function() {
 			init();
 		})
 		init()
+		selectedInfo.value = statusList.value[0]
 	})
 
 	function init() {
+		//待周转
 		getItemList({
 			status: 4
 		}).then(res => {
@@ -166,6 +265,7 @@
 				console.log(res)
 			}
 		})
+		//周转中
 		getItemList({
 			status: 5
 		}).then(res => {
@@ -193,6 +293,66 @@
 				console.log(lotList.value)
 			}
 		})
+		//已送达
+		getItemList({
+			status: 6
+		}).then(res => {
+			if (res.code == 200) {
+				// 通过dayworkId再分组
+				const groupedRows = res.rows.reduce((acc, item) => {
+					const dept = item.deptId;
+					if (acc.hasOwnProperty(dept)) {
+						acc[dept].push(item);
+					} else {
+						acc[dept] = [item];
+					}
+					return acc;
+				}, {});
+				// groupedRows 是一个对象,其键是dayworkId,值是具有相同dayworkId的对象数组
+				// 如果需要将它转换为二维数组,您可以使用 Object.values 方法
+				deliveredList.value = Object.values(groupedRows);
+				// 设置箱数
+				for (let i = 0; i < deliveredList.value.length; i++) {
+					deliveredList.value[i][0].totalCarrier = 0;
+					for (let j = 0; j < deliveredList.value[i].length; j++) {
+						deliveredList.value[i][0].totalCarrier += deliveredList.value[i][j].carrierName.split('、').length;
+					}
+				}
+			}
+		})
+		//已接收
+		getItemList({
+			status: 7
+		}).then(res => {
+			if (res.code == 200) {
+				// 通过dayworkId再分组
+				const groupedRows = res.rows.reduce((acc, item) => {
+					const dept = item.deptId;
+					if (acc.hasOwnProperty(dept)) {
+						acc[dept].push(item);
+					} else {
+						acc[dept] = [item];
+					}
+					return acc;
+				}, {});
+				// groupedRows 是一个对象,其键是dayworkId,值是具有相同dayworkId的对象数组
+				// 如果需要将它转换为二维数组,您可以使用 Object.values 方法
+				receivedList.value = Object.values(groupedRows);
+				// 设置箱数
+				for (let i = 0; i < receivedList.value.length; i++) {
+					receivedList.value[i][0].totalCarrier = 0;
+					for (let j = 0; j < receivedList.value[i].length; j++) {
+						if (receivedList.value[i][j].carrierName) {
+						    receivedList.value[i][0].totalCarrier += receivedList.value[i][j].carrierName.split('、').length;
+						} else {
+						    receivedList.value[i][0].totalCarrier += 0;
+						}
+						// receivedList.value[i][0].totalCarrier += receivedList.value[i][j].carrierName.split('、').length;
+					}
+				}
+				console.log(receivedList.value)
+			}
+		})
 	}
 
 	function reflush() {
@@ -228,6 +388,12 @@
 			})
 		}
 	}
+	function handleBackturnover() {
+		if(selection.value.length>0) {
+			let msg ='是否返回待周转?'
+			confirm.value.open(msg);
+		}
+	}
 
 	function handleDoTurn() {
 		// 设置周转状态
@@ -253,6 +419,32 @@
 		// 清空选中数组
 		selection.value = [];
 	}
+	//回退状态
+	function handleConfirmBack() {
+		// 设置周转状态
+		for (let i = 0; i < selection.value.length; i++) {
+			selection.value[i].status = '4';
+		}
+		// updateBackDayWorkItemBatch(selection.value).then(res => {
+		// 	if (res.code === 200) {
+		// 		uni.showToast({
+		// 			icon: 'success',
+		// 			title: '操作成功',
+		// 			duration: 2000
+		// 		});
+		// 		reflush();
+		// 	} else {
+		// 		uni.showToast({
+		// 			icon: 'error',
+		// 			title: '操作失败',
+		// 			duration: 2000
+		// 		});
+		// 	}
+		// })
+		// // 清空选中数组
+		// selection.value = [];
+		console.log(selection.value)
+	}
 
 	function isSelected(item) {
 		//单选
@@ -293,6 +485,13 @@
 		pendingShow.value = false;
 		turnoverShow.value = true;
 	}
+	function selectedStatus(item) {
+		console.log(item)
+		selectedInfo.value = item
+	}
+	function singleSelectd(item) {
+		return selectedInfo.value == item
+	}
 </script>
 
 <style lang="scss">