Newer
Older
gdtMimiProgram / pages / message / message.vue
MrTan on 23 Nov 2022 4 KB 导出
<!-- 消息 -->
<template>
	<view class="message">
		<TabBar></TabBar>
		<view class="main" v-for="(item, index) in list" :key="index">
			<view class="date-time">{{item.messageTime}}</view>
			<view class="card" @click="clickDetail(item.id)">
				<view class="title">
					<!-- <text v-show="isManager">收到新的访客申请</text>
					<text v-show="!isManager" class="text">您的访客信息{{item.status}}</text> -->
					<view class="ui">
						<view class="text">
							<text class="name">{{item.name}}</text>
							<text class="number">{{item.number}}</text>
						</view>
						
						<view :class="item.status === '未通过' ? 'button-area' : item.status === '已通过' ? 'button-area pass' : 'button-area submit'">申请{{item.status}}</view>
					</view>
					<view class="ui-time">
						<text class="start">{{item.startTime}}</text>
						<text class="text"> 至 </text>
						<text class="end">{{item.endTime}}</text>
						<!-- <text class="end">{{item.timeData}}</text> -->
					</view>
				</view>
				<!-- <view class="content">
					<text class="content-title">申请者工号:</text>
					<text class="value">{{item.number}}</text>
				</view>
				<view class="content">
					<text>ㅤ访客姓名:</text>
					<text>{{item.name}}</text>
				</view>
				<view class="content">
					<text>ㅤ访问时间:</text>
					<text>{{item.time}}</text>
				</view> -->
				<!-- <view class="detail-area">
					<view class="detail" @click="clickDetail">详ㅤ情</view>
				</view> -->
				
			</view>
		</view>
	</view>
</template>

<script>
	import TabBar from '@/components/tabBar/tabBar.vue';
	import { js_date_time } from '../../common/formatTime.js';
	import { getMessageList } from '@/api/message.js';
	import { dateToString, getDateTime } from '@/common/utils.js';
	export default {
		components: {
			TabBar,
		},
		data() {
			return {
				isManager: false,
				list: []
			}
		},
		onShow() {
			//获取页面栈
			let pages = getCurrentPages();
			const curPage = pages[pages.length - 1];
			this.currentPagePath = curPage.route;
			uni.setStorageSync('currentPagePath', this.currentPagePath);
			this.fetchMessageList();
		},
		mounted() {
			const userInfo = JSON.parse(uni.getStorageSync('userInfo'));
			if(userInfo.salt === '物业人员') {
				this.isManager = true;
			} else {
				this.isManager = false;
			}
		},
		methods: {
			clickDetail(id) {
				wx.navigateTo({
					url: `/pages/checkMessageDetail/checkMessageDetail?id=${id}`
				})
			},
			//获取消息列表
			async fetchMessageList() {
				const res = await getMessageList();
				this.list = res.map(item => {
					return {
						id: item.message_id,
						name: item.visitor_name,
						number: item.staff_code,
						timeData: item.apply_time,
						startTime: dateToString(new Date (item.apply_time.slice(0, item.apply_time.indexOf('-'))), 'yyyy-MM-dd'),
						endTime: dateToString(new Date (item.apply_time.slice(item.apply_time.indexOf('-') + 1)), 'yyyy-MM-dd'),
						status: item.visitor_apply_status === '1' ? '已提交' : item.visitor_apply_status === '2' ? '已通过' : '未通过',
						messageTime: getDateTime(new Date(Number(item.send_time)).getTime()),
					}
				})
			}
		}
	}
</script>

<style lang="scss" scoped>
	.message {
		padding: 40rpx;
		padding-bottom: 200rpx;
		.date-time {
			display: flex;
			justify-content: center;
			align-items: center;
			margin-top: 40rpx;
			margin-bottom: 20rpx;
			color: #9b9b9b;
		}
		.card {
			padding: 30rpx 32rpx;
			background-color: #fff;
			border-radius: 16rpx;
			margin-bottom: 20rpx;
			.title {
				display: flex;
				// flex-direction: row;
				flex-direction: column;
				// justify-content: space-between;
				// align-items: center;
				font-size: 32rpx;
				.ui {
					display: flex;
					flex-direction: row;
					justify-content: space-between;
					align-items: center;
					.text {
						display: flex;
						flex-direction: row;
						align-items: center;
						.name {
							color: #333;
							font-weight: 500;
							font-size: 36rpx;
							white-space: nowrap;
						}
						.number {
							color: #b1b1b1;
							margin-left: 20rpx;
						}
					}
				}
				.ui-time {
					display: flex;
					flex-direction: row;
					align-items: center;
					color: #b1b1b1;
					margin-top: 30rpx;
					.text {
						margin: 0 20rpx;
					}
				}
				.text {
					// font-weight: 600;
				}
				.button-area {
					padding: 6rpx 16rpx;
					background-color: #f02a0a;
					border-radius: 16rpx;
					color: #ecf9e8;
					font-size: 28rpx;
					white-space: nowrap;
				}
				.pass {
					background-color: #2ebf00;
				}
				.submit {
					background-color: #1076e3;
				}
			}
			.content {
				margin: 32rpx 0;
				.content-title {
					// margin-right: 32rpx;
				}
			}
			.detail-area {
				width: 100%;
				display: flex;
				justify-content: flex-end;
				.detail {
					width: fit-content;
					padding: 10rpx 16rpx;
					background-color: blue;
					border-radius: 16rpx;
					// letter-spacing: 10rpx;
				}
			}
		}
	}
</style>