235 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
		
		
			
		
	
	
			235 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
|  | <template> | ||
|  | 	<view> | ||
|  | 		<u-navbar title="管理列表" :border-bottom="false"></u-navbar> | ||
|  | 		<scroll-view scroll-y="true" class="scroll"> | ||
|  | 			<view class="flex-col list" v-if='list.length'> | ||
|  | 				<view class="flex-row list_item" v-for="(item, i) in list" @click="GoChat(item)" :key="i"> | ||
|  | 					<u-avatar class="image" :show-sex="vuex_msgList.indexOf(item.fromUserId+'admin,')>=0" sex-icon="" | ||
|  | 						sex-bg-color="red" :src="$u.http.config.imgUrl+item.fromUserHead"></u-avatar> | ||
|  | 					<view class="right-section flex-col"> | ||
|  | 						<view class="top-group justify-between view_1"> | ||
|  | 							<view class="flex-row"> | ||
|  | 								<text class="text_1">{{item.fromUserName}}</text> | ||
|  | 								<view class="right-text-wrapper flex-col items-end"> | ||
|  | 									<text class="text_3">{{item.schoolName}}</text> | ||
|  | 								</view> | ||
|  | 							</view> | ||
|  | 							<text | ||
|  | 								v-if='new Date(item.sendDate) - 0 + (3600000*24)> new Date()&&new Date(item.sendDate).getDate()==new Date().getDate()' | ||
|  | 								class="text_5">{{ item.sendDate.slice(10,16)}}</text> | ||
|  | 							<text v-else class="text_5">{{ item.sendDate.slice(0,10)}}</text> | ||
|  | 						</view> | ||
|  | 						<view class="bottom-group justify-between"> | ||
|  | 							<text class="text_7">{{item.message}}</text> | ||
|  | 							<text class="text_9" v-if="item.messageState == 0">未读</text> | ||
|  | 							<text class="text_9" v-if="item.messageState == 1">已读</text> | ||
|  | 							<text class="text_10" v-if="item.messageState == 2">待回复</text> | ||
|  | 							<text class="text_10" v-if="item.messageState == 3">回复中...</text> | ||
|  | 							<text class="text_10" v-if="item.messageState == 4">已回复</text> | ||
|  | 						</view> | ||
|  | 					</view> | ||
|  | 				</view> | ||
|  | 			</view> | ||
|  | 			<view v-else style='padding-top:30vh'> | ||
|  | 				<!-- <u-empty text="暂无消息列表" mode="message"></u-empty> --> | ||
|  | 				<no-data text="暂无消息列表"></no-data> | ||
|  | 			</view> | ||
|  | 		</scroll-view> | ||
|  | 		<u-toast ref="uToast" /> | ||
|  | 	</view> | ||
|  | </template> | ||
|  | 
 | ||
|  | <script> | ||
|  | import NoData from 'components/NoData.vue' | ||
|  | 	export default { | ||
|  | 		components: { | ||
|  | 			NoData | ||
|  | 		}, | ||
|  | 		data() { | ||
|  | 			return { | ||
|  | 				list: [], | ||
|  | 			}; | ||
|  | 		}, | ||
|  | 		onLoad() {}, | ||
|  | 		onShow() { | ||
|  | 			this.getList() | ||
|  | 		}, | ||
|  | 		methods: { | ||
|  | 			//   去聊天
 | ||
|  | 			GoChat(data) { | ||
|  | 				//管理员聊天绑定
 | ||
|  | 				this.$u.api.toBind({ | ||
|  | 					manageUser: this.vuex_user.id, | ||
|  | 					lockUser: data.fromUserId | ||
|  | 				}).then(res => { | ||
|  | 					uni.navigateTo({ | ||
|  | 						url: '../dialogBox/dialogBox?id=admin' + '&shoolid=' + data.schoolId + '&fromid=' + data | ||
|  | 							.fromUserId | ||
|  | 					}); | ||
|  | 				}).catch(err=>{ | ||
|  | 					/* uni.showToast({ | ||
|  | 						title: '已有老师回复', | ||
|  | 						duration: 2000, | ||
|  | 						icon:'none' | ||
|  | 					}); */ | ||
|  | 					this.$refs.uToast.show({ | ||
|  | 						title: '已有老师回复', | ||
|  | 						type: 'warning', | ||
|  | 					}); | ||
|  | 
 | ||
|  | 					 | ||
|  | 				}) | ||
|  | 				 | ||
|  | 			}, | ||
|  | 			getList() { | ||
|  | 				this.$u.api.getAdminList().then(res => { | ||
|  | 					this.list = res | ||
|  | 				}) | ||
|  | 			}, | ||
|  | 			//返回上一级
 | ||
|  | 			router() { | ||
|  | 				uni.switchTab({ | ||
|  | 					url: '../../message/msgList/msgList' | ||
|  | 				}) | ||
|  | 			}, | ||
|  | 		} | ||
|  | 	}; | ||
|  | </script> | ||
|  | 
 | ||
|  | <style lang="scss" scoped> | ||
|  | 	::v-deep .u-avatar__sex { | ||
|  | 		width: 0.1rem !important; | ||
|  | 		height: 0.1rem !important; | ||
|  | 		border: none; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.scroll { | ||
|  | 		background-color: rgb(246, 247, 250); | ||
|  | 		width: 100%; | ||
|  | 		height: calc(100vh - 0.44rem); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.list_item { | ||
|  | 		padding-left: 0.2rem; | ||
|  | 		background: #fff; | ||
|  | 		box-shadow: 0px 0.005rem rgb(234, 234, 234); | ||
|  | 		border-bottom: 1px solid rgb(234, 234, 234); | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.image { | ||
|  | 		align-self: center; | ||
|  | 		width: 0.4rem; | ||
|  | 		height: 0.4rem; | ||
|  | 		border-radius: 50%; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.right-section { | ||
|  | 		margin-left: 0.14rem; | ||
|  | 		padding: 0.13rem 0.015rem 0.15rem; | ||
|  | 		flex: 1 1 auto; | ||
|  | 		height: 0.66rem; | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.list_item:last-child .right-section { | ||
|  | 		border: none; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.top-group { | ||
|  | 		margin-top: 0.09rem; | ||
|  | 		width: 0.4rem; | ||
|  | 		height: 0.4rem; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.bottom-group { | ||
|  | 		margin-top: 0.05rem; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.text_5 { | ||
|  | 		text-align: right; | ||
|  | 		margin-right: 0.1rem; | ||
|  | 		margin-top: 0.02rem; | ||
|  | 		color: rgb(193, 196, 204); | ||
|  | 		font-size: 0.12rem; | ||
|  | 		line-height: 0.095rem; | ||
|  | 		letter-spacing: 0.012rem; | ||
|  | 		white-space: nowrap; | ||
|  | 		min-width: 0.5rem; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.text_7 { | ||
|  | 		margin-top: 0.035rem; | ||
|  | 		color: rgb(177, 179, 182); | ||
|  | 		font-size: 0.12rem; | ||
|  | 		line-height: 0.12rem; | ||
|  | 		letter-spacing: 0.012rem; | ||
|  | 		white-space: nowrap; | ||
|  | 		text-align: right; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.text_9 { | ||
|  | 		margin-right: 0.085rem; | ||
|  | 		margin-bottom: 0.035rem; | ||
|  | 		color: rgb(46, 155, 255); | ||
|  | 		font-size: 0.11rem; | ||
|  | 		line-height: 0.11rem; | ||
|  | 		letter-spacing: 0.011rem; | ||
|  | 		white-space: nowrap; | ||
|  | 		min-width: 0.5rem; | ||
|  | 		text-align: right; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.text_10 { | ||
|  | 		color: rgb(177, 179, 182); | ||
|  | 		font-size: 0.11rem; | ||
|  | 		line-height: 0.11rem; | ||
|  | 		letter-spacing: 0.011rem; | ||
|  | 		white-space: nowrap; | ||
|  | 		min-width: 0.5rem; | ||
|  | 		text-align: right; | ||
|  | 		margin-right: 0.1rem; | ||
|  | 		margin-top: 0.035rem; | ||
|  | 
 | ||
|  | 
 | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.text_1 { | ||
|  | 		margin: 0.02rem 0; | ||
|  | 		color: rgb(2, 2, 2); | ||
|  | 		font-size: 0.15rem; | ||
|  | 		line-height: 0.14rem; | ||
|  | 		letter-spacing: 0.015rem; | ||
|  | 		white-space: nowrap; | ||
|  | 		max-width: 0.65rem; | ||
|  | 		overflow: hidden; | ||
|  | 		text-overflow: ellipsis; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.right-text-wrapper { | ||
|  | 		margin-left: 0.045rem; | ||
|  | 		padding: 0.035rem 0.08rem; | ||
|  | 		color: rgb(115, 129, 255); | ||
|  | 		font-size: 0.11rem; | ||
|  | 		line-height: 0.11rem; | ||
|  | 		letter-spacing: 0.011rem; | ||
|  | 		white-space: nowrap; | ||
|  | 		background-color: rgba(115, 129, 255, 0.1); | ||
|  | 		border-radius: 0.09rem; | ||
|  | 		height: 0.18rem; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.text_3 { | ||
|  | 		margin-right: 0.03rem; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.list { | ||
|  | 		padding-top: 0.01rem; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	.view_1 { | ||
|  | 		margin-top: initial; | ||
|  | 		width: initial; | ||
|  | 		height: initial; | ||
|  | 	} | ||
|  | </style> |