zhengkaixin 1 rok pred
rodič
commit
db13bb420d
47 zmenil súbory, kde vykonal 12725 pridanie a 0 odobranie
  1. 231 0
      pages/canteenManagement/consumption/consumption.vue
  2. 194 0
      pages/canteenManagement/consumption/consumptionDetail.vue
  3. 334 0
      pages/canteenManagement/dataStatistics/dataStatistics.vue
  4. 233 0
      pages/canteenManagement/dataStatistics/records.vue
  5. 229 0
      pages/canteenManagement/login.vue
  6. 206 0
      pages/canteenManagement/mine/mine.vue
  7. 112 0
      pages/canteenManagement/mine/qrCode.vue
  8. 422 0
      pages/homePage/homePage.vue
  9. 319 0
      pages/index/index.vue
  10. 410 0
      pages/login/index.vue
  11. 219 0
      pages/login/login.vue
  12. 38 0
      pages/mine/cropImage.vue
  13. 246 0
      pages/mine/data.vue
  14. 170 0
      pages/mine/feedback.vue
  15. 368 0
      pages/mine/issue.vue
  16. 563 0
      pages/mine/mine.vue
  17. 160 0
      pages/mine/myComment.vue
  18. 161 0
      pages/mine/myLike.vue
  19. 231 0
      pages/mine/myMealCard.vue
  20. 123 0
      pages/mine/myWinningRecord.vue
  21. 374 0
      pages/mine/paymentCode.vue
  22. 614 0
      pages/mine/personalPage.vue
  23. 245 0
      pages/mine/phone.vue
  24. 361 0
      pages/mine/points/points.vue
  25. 147 0
      pages/mine/points/pointsExchange/orderDetails.vue
  26. 292 0
      pages/mine/points/pointsExchange/pointsExchange.vue
  27. 243 0
      pages/mine/points/pointsExchange/prizeDetails.vue
  28. 268 0
      pages/mine/points/rankingList.vue
  29. 59 0
      pages/mine/result.vue
  30. 565 0
      pages/news/articleDetails.vue
  31. 266 0
      pages/news/list.vue
  32. 169 0
      pages/news/news.vue
  33. 149 0
      pages/scanToPay/payResult.vue
  34. 92 0
      pages/search/search.vue
  35. 307 0
      pages/search/searchResult.vue
  36. 248 0
      pages/staffHome/activityCenter/activityCenter.vue
  37. 255 0
      pages/staffHome/activityCenter/activityDetail.vue
  38. 179 0
      pages/staffHome/activityReward/activityReward.vue
  39. 90 0
      pages/staffHome/activityReward/rewardDetail.vue
  40. 153 0
      pages/staffHome/commend.vue
  41. 646 0
      pages/staffHome/filesonic.vue
  42. 541 0
      pages/staffHome/filesonicInfo.vue
  43. 340 0
      pages/staffHome/orderReport.vue
  44. 210 0
      pages/staffHome/staffHome.vue
  45. 254 0
      pages/staffHome/teamHonor/badgeDetails-old.vue
  46. 413 0
      pages/staffHome/teamHonor/badgeDetails.vue
  47. 276 0
      pages/staffHome/teamHonor/teamHonor.vue

+ 231 - 0
pages/canteenManagement/consumption/consumption.vue

@@ -0,0 +1,231 @@
+<template>
+	<view>
+		
+		<!-- 搜索 -->
+		<view class="search">
+			<u-search :clearabled="false" placeholder="输入姓名或手机号搜索" v-model="keyword"></u-search>
+		</view>
+		<!-- 筛选 -->
+		<view class="options">
+			<view class="date-option" @click="show = true">
+				{{date}}<u-icon name="arrow-down" size="24"></u-icon>
+				<!-- <view class="date-box" v-if="dateShow">
+					<view class="options-item">
+						2023年4月
+					</view>
+					
+					
+				</view> -->
+			</view>
+			<view class="department-option" @click="changeDepartmentShow">
+				全部部门<u-icon name="arrow-down" size="24"></u-icon>
+				<view class="department-box" v-if="departmentShow">
+					<view class="options-item">
+						全部部门
+					</view>
+					
+					
+				</view>
+			</view>
+		</view>
+		
+		<u-picker mode="time" v-model="show" :params="params" :defaultTime="defaultTime" @confirm="confirm">
+		</u-picker>
+		
+		<!-- 明细 -->
+		<view class="details">
+			<view class="detail-item" v-for="item in 8">
+				<view class="head">
+					<view class="name">
+						李四
+					</view>
+					<view class="tel">
+						197****2849
+					</view>
+					<view class="money">
+						15.00
+					</view>
+				</view>
+				<view class="content">
+					<view class="department">
+						荆州地方铁路 机务段
+					</view>
+					<view class="date">
+						4月1日 12:00
+					</view>
+				</view>
+				
+			</view>
+			
+		</view>
+		
+		
+		
+		<canteenTabbar  ref="mytabbar"
+				current="1"></canteenTabbar>
+	</view>
+</template>
+
+<script>
+	import canteenTabbar from "../../../components/canteenTabbar.vue"
+	export default {
+		components: {
+			canteenTabbar
+		},
+		data() {
+			
+			return {
+				keyword: '',
+				dateShow:false,
+				departmentShow:false,
+				defaultTime: '',
+				params: {
+					year: true,
+					month: true,
+					day: true,
+					hour: false,
+					minute: false,
+					second: false,
+					timestamp: true
+				},
+				show: false,
+				date: ''
+			}
+		},
+		onReady() {
+			var date = new Date();
+			var year = date.getFullYear();
+			var month = date.getMonth() + 1;
+			var day = date.getDate();
+			this.date = year + '年' + month + '月' + day + '日';
+			if (month >= 1 && month <= 9) {
+				month = '0' + month;
+			}
+			if (day >= 1 && day <= 9) {
+				day = '0' + day;
+			}
+			this.defaultTime = year + '-' + month + '-' + day;
+		},
+		methods: {
+			confirm(params) {
+				this.date = params.year + '年' + parseInt(params.month) + '月' + parseInt(params.day) + '日';
+			},
+			changeDateShow() {
+				this.dateShow = !this.dateShow
+			},
+			changeDepartmentShow() {
+				this.departmentShow = !this.departmentShow
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		padding-bottom: 100px;
+	}
+	// 搜索
+	.search{
+		padding: 16rpx 32rpx;
+		background-color: #fff;
+		/deep/.u-search{
+			position: relative;
+		}
+		/deep/.u-action{
+			position: absolute;
+			right: 16rpx;
+			color: rgba(31, 74, 153, 1);
+		}
+	}
+	
+// 筛选
+.options{
+		background-color: #fff;
+		padding: 0 92rpx;
+		line-height: 88rpx;
+		display: flex;
+		justify-content: space-between;
+		color: #7D7D7D;
+		border-bottom: 1px solid rgba(232, 232, 232, 1);
+		.date-option,.department-option{
+			position: relative;
+		}
+		/deep/.uicon-arrow-down{
+			margin-left: 8rpx;
+		}
+		.date-box{
+			background-color: #fff;
+			z-index: 999;
+			width: 180rpx;
+			box-shadow: 0px 0px 2px #999999;
+			position: absolute;
+			top: 70rpx;
+		    right: 0px;
+		
+			.options-item {
+				line-height: 60rpx;
+				padding-left: 8rpx;
+				background-color: #2A8EFB ;
+				color: #fff;
+			}
+		
+		}
+		.department-box{
+			background-color: #fff;
+			z-index: 999;
+			width: 180rpx;
+			box-shadow: 0px 0px 2px #999999;
+			position: absolute;
+			top: 70rpx;
+		    left: 0px;
+		
+			.options-item {
+				line-height: 60rpx;
+				padding-left: 8rpx;
+				background-color: #2A8EFB ;
+				color: #fff;
+			}
+		
+		}
+	}
+
+// 明细
+.details{
+	background-color: #fff;
+	.detail-item{
+		padding: 32rpx;
+		border-bottom: 1px solid rgba(232, 232, 232, 1);
+		.head{
+			display: flex;
+			align-items: center;
+			.name{
+				color: rgba(51, 51, 51, 1);
+				font-size: 32rpx;
+				font-family: 'PingFang Regular';
+				font-weight: bold;
+			}
+			.tel{
+				color: rgba(16, 16, 16, 1);
+				font-size: 32rpx;
+				
+				margin-left: 16rpx;
+			}
+			.money{
+				color: rgba(31, 74, 153, 1);
+				font-size: 40rpx;
+				font-weight: bold;
+				margin-left: auto;
+			}
+		}
+		
+		.content{
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			font-family: 'Alibaba-PuHuiTi-Regular';
+			color: rgba(119, 119, 119, 1);
+			margin-top:12rpx;
+		}
+	}
+}
+</style>

+ 194 - 0
pages/canteenManagement/consumption/consumptionDetail.vue

@@ -0,0 +1,194 @@
+<template>
+	<view>
+		<u-navbar title="消费详情"></u-navbar>
+		<!-- 消费详情 -->
+		<view class="details">
+			<view class="title">
+				荆州地方铁路食堂
+			</view>
+			<view class="price">
+				15.00
+			</view>
+			<view class="infos">
+				<view class="info-item">
+					<view class="info-title">
+						实付金额(元)
+					</view>
+					<view class="value">
+						15.00
+					</view>
+				</view>
+				<view class="info-item">
+					<view class="info-title">
+						饭卡余额(元)
+					</view>
+					<view class="value">
+						
+						315.00
+						
+					</view>
+				</view>
+				<view class="info-item">
+					<view class="info-title">
+						订单号
+						
+					</view>
+					<view class="value">
+						000111222333444
+						
+					</view>
+				</view>
+				<view class="info-item">
+					<view class="info-title">
+						支付时间
+					</view>
+					<view class="value">
+						2023-04-10 12:00:00
+					</view>
+				</view>
+				
+			</view>
+			
+		</view>
+		
+		<!-- 消费用户 -->
+		<view class="user">
+			<view class="user-title">
+				<view class="string">
+					
+				</view>
+				<view class="text">
+					消费用户
+				</view>
+			</view>
+			<view class="user-info">
+				<view class="info-item">
+					<view class="title">
+						用户姓名
+					</view>
+					<view class="value">
+						周斌
+					</view>
+				</view>
+				<view class="info-item">
+					<view class="title">
+						
+						手机号码
+						
+					</view>
+					<view class="value">
+						
+						135****1010
+						
+					</view>
+				</view>
+				<view class="info-item">
+					<view class="title">
+						所属部门
+					</view>
+					<view class="value">
+						机务段
+					</view>
+				</view>
+				
+			</view>
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	// 消费详情
+	.details{
+		background-color: #fff;
+		margin: 24rpx 32rpx;
+		padding: 40rpx;
+		border-radius: 8px;
+		text-align: center;
+		font-family: 'PingFang Regular';
+		.title{
+			color: rgba(51, 51, 51, 1);
+			font-size: 48rpx;
+			font-family: 'PingFang Regular';
+		}
+		.price{
+			margin-top: 24rpx;
+			font-size: 72rpx;
+			color: rgba(31, 74, 153, 1);
+			font-weight: bold;
+		}
+		.infos{
+			margin-top: 48rpx;
+			.info-item{
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				margin-bottom: 24rpx;
+				.info-title{
+					color: rgba(134, 137, 140, 1);
+					font-size: 32rpx;
+				}
+				.value{
+					color: rgba(51, 51, 51, 1);
+					font-size: 32rpx;
+				}
+			}
+		}
+		
+	}
+
+// 消费用户
+.user{
+	background-color: #fff;
+	padding: 32rpx;
+	margin: 32rpx;
+	border-radius: 8px;
+	.user-title{
+		display: flex;
+		align-items: center;
+		.string{
+			width: 8rpx;
+			height: 24rpx;
+			background-color: rgba(24, 90, 198, 1);
+			margin-right: 16rpx;
+		}
+		.text{
+			color: rgba(16, 16, 16, 1);
+			font-size: 32rpx;
+			font-weight: bold;
+			font-family: 'Regular';
+		}
+	}
+	.user-info{
+		margin-top: 40rpx;
+		.info-item{
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			margin-bottom: 24rpx;
+			font-family: 'PingFang Regular';
+			.title{
+				color: rgba(134, 137, 140, 1);
+				font-size: 32rpx;
+			}
+			.value{
+				color: rgba(51, 51, 51, 1);
+				font-size: 32rpx;
+			}
+		}
+	}
+}
+</style>

+ 334 - 0
pages/canteenManagement/dataStatistics/dataStatistics.vue

@@ -0,0 +1,334 @@
+<template>
+	<view>
+		<view class="head">
+			<view class="title">
+				<view class="name">
+					食堂管理系统
+				</view>
+				<view class="option" @click="changePlaceShow">
+					地方铁路食堂<u-icon name="arrow-down"></u-icon>
+					<view class="options-box" v-if="placeShow">
+						<view class="options-item">
+							选项1
+						</view>
+						<view class="options-item">
+							选项2
+						</view>
+						<view class="options-item">
+							选项3
+						</view>
+					</view>
+				</view>
+
+			</view>
+			<!-- 曲线图 -->
+			<view class="chart">
+				<view class="chart-title">
+					<view class="name">
+						月度饭卡消费曲线图
+					</view>
+					<view class="time" @click="changeTimeShow">
+						2023年4月<u-icon name="arrow-down"></u-icon>.
+						<view class="time-box" v-if="timeShow">
+							<view class="options-item">
+								2023年4月
+							</view>
+
+						</view>
+					</view>
+				</view>
+				<img src="../../../assets/img/chart.png" alt="">
+			</view>
+
+		</view>
+
+		<!-- 订餐上报 -->
+		<view class="order-food">
+			<view class="title">
+				<view class="name">
+					<text><img src="../../../assets/img/riLine-calendar-2-line@1x.png" alt=""></text>订餐上报
+				</view>
+				<view class="record">
+					全部记录 <u-icon name="arrow-right" size="20"></u-icon>
+				</view>
+			</view>
+			<!-- 记录卡片 -->
+			<view class="record-card" v-for="item in 2">
+				<view class="record-title">
+					<view class="date">
+						2023年4月10日 星期一
+					</view>
+					<view class="people-number">
+						订餐人数 <text class="num1">29</text>
+					</view>
+				</view>
+				<view class="classify">
+					<view class="item">
+						<view class="type1">
+							机务段
+						</view>
+						<view class="number">
+							订餐人数 <text class="num2">10</text>
+						</view>
+					</view>
+
+					<view class="item">
+						<view class="type2">
+							荆州南
+						</view>
+						<view class="number">
+							订餐人数 <text class="num3">19</text>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+<canteenTabbar  ref="mytabbar"
+		current="0"></canteenTabbar> 
+	</view>
+</template>
+
+<script>
+	import canteenTabbar from "../../../components/canteenTabbar.vue"
+	export default {
+		components: {
+			canteenTabbar
+		},
+		data() {
+			return {
+				placeShow: false,
+				timeShow: false
+			}
+		},
+		methods: {
+			changePlaceShow() {
+				this.placeShow = !this.placeShow
+			},
+			changeTimeShow() {
+				this.timeShow = !this.timeShow
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+		padding-bottom: 100px;
+
+	}
+
+	.head {
+		padding: 24rpx 32rpx;
+		background: linear-gradient(180deg, rgba(183, 208, 255, 1) 0%, rgba(244, 244, 246, 1) 100%);
+		height: 177px;
+
+		.title {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+
+			.name {
+				color: rgba(31, 74, 153, 1);
+				font-size: 40rpx;
+				font-family: 'Medium';
+			}
+
+			.option {
+				color: rgba(65, 80, 88, 1);
+				font-size: 32rpx;
+				position: relative;
+
+				.options-box {
+					background-color: #fff;
+					z-index: 999;
+					width: 240rpx;
+					box-shadow: 0px 0px 2px #999999;
+					position: absolute;
+					top: 50rpx;
+					left: 0px;
+
+					.options-item {
+						line-height: 60rpx;
+						padding-left: 8rpx;
+					}
+
+				}
+			}
+		}
+
+		// 曲线图
+		.chart {
+			border-radius: 12px;
+			margin-top: 24rpx;
+			background-color: #fff;
+			height: 268px;
+
+			.chart-title {
+				padding: 38rpx 24rpx;
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				font-size: 32rpx;
+
+				.name {
+					color: rgba(51, 51, 51, 1);
+					font-weight: bold;
+					font-family: 'Medium';
+				}
+
+				.time {
+					color: rgba(119, 119, 119, 1);
+					position: relative;
+
+					.time-box {
+						background-color: #fff;
+						z-index: 999;
+						width: 200rpx;
+						box-shadow: 0px 0px 2px #999999;
+						position: absolute;
+						top: 50rpx;
+						left: 0px;
+
+						.options-item {
+							line-height: 64rpx;
+							padding-left: 8rpx;
+						}
+
+					}
+				}
+			}
+
+			img {
+				width: 100%;
+				height: 200px;
+			}
+		}
+	}
+
+	// 订餐上报
+
+	.order-food {
+		padding: 0 32rpx;
+		margin-top: 160px;
+		font-family: 'PingFang Regular';
+
+		.title {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+
+			.name {
+				color: rgba(56, 109, 205, 1);
+				font-size: 36rpx;
+				line-height: 36rpx;
+				font-weight: bold;
+
+				text {
+					vertical-align: middle;
+					margin-right: 8rpx;
+				}
+			}
+
+			.record {
+				color: rgba(119, 119, 119, 1);
+
+			}
+		}
+	}
+
+	// 记录卡片
+	.record-card {
+		padding: 24rpx;
+		margin-top: 24rpx;
+		border-radius: 12px;
+		background-color: rgba(255, 255, 255, 1);
+
+		.record-title {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			margin-bottom: 16rpx;
+
+			.date {
+				color: rgba(51, 51, 51, 1);
+				font-size: 32rpx;
+		 }
+
+			.people-number {
+				color: rgba(51, 51, 51, 1);
+				font-size: 16px;
+
+				text {
+					margin-left: 8rpx;
+				}
+			}
+		}
+
+		.classify {
+			display: flex;
+
+			align-items: center;
+
+			.item {
+				display: flex;
+				align-items: center;
+
+				.type1 {
+				 width: 112rpx;
+					height: 48rpx;
+					line-height: 48rpx;
+					border-radius: 4px;
+					border: 1px solid rgba(96, 184, 201, 1);
+					color: rgba(96, 184, 201, 1);
+					text-align: center;
+					margin-right: 8rpx;
+				}
+
+				.type2 {
+					width: 112rpx;
+					height: 48rpx;
+					line-height: 48rpx;
+					border-radius: 4px;
+				 border: 1px solid rgba(77, 140, 255, 1);
+					color: rgba(77, 140, 255, 1);
+					text-align: center;
+					margin-right: 8rpx;
+				}
+
+				.number {
+					color: rgba(51, 51, 51, 1);
+
+					text {
+						margin-left: 8rpx;
+					}
+				}
+			}
+
+			.item:nth-of-type(2) {
+				margin-left: 48rpx;
+			}
+		}
+
+		.num1 {
+			color: #FF6923;
+			font-weight: bold;
+		}
+
+		.num2 {
+			color: #85C8D5;
+			font-weight: bold;
+		}
+
+		.num3 {
+			color: #74A5FF;
+			font-weight: bold;
+		}
+	}
+
+	/deep/.uicon-arrow-down,
+	/deep/.uicon-arrow-right {
+		margin-left: 8rpx;
+
+	}
+</style>

+ 233 - 0
pages/canteenManagement/dataStatistics/records.vue

@@ -0,0 +1,233 @@
+<template>
+	<view>
+		<u-navbar title="订餐上报"></u-navbar>
+		<!-- 筛选 -->
+		<view class="options">
+			<view class="date-option" @click="changeDateShow">
+				2023年4月<u-icon name="arrow-down" size="24"></u-icon>
+				<view class="date-box" v-if="dateShow">
+					<view class="options-item">
+						2023年4月
+					</view>
+					
+					
+				</view>
+			</view>
+			<view class="department-option" @click="changeDepartmentShow">
+				全部部门<u-icon name="arrow-down" size="24"></u-icon>
+				<view class="department-box" v-if="departmentShow">
+					<view class="options-item">
+						全部部门
+					</view>
+					
+					
+				</view>
+			</view>
+		</view>
+		<!-- 记录卡片 -->
+		<view class="main">
+			<view class="record-card" v-for="item in 6">
+				<view class="record-title">
+					<view class="date">
+						2023年4月10日 星期一
+					</view>
+					<view class="people-number">
+						订餐人数 <text class="num1">29</text>
+					</view>
+				</view>
+				<view class="classify">
+					<view class="item">
+						<view class="type1">
+							机务段
+						</view>
+						<view class="number">
+							订餐人数 <text class="num2">10</text>
+						</view>
+					</view>
+			
+					<view class="item">
+						<view class="type2">
+							荆州南
+						</view>
+						<view class="number">
+							订餐人数 <text class="num3">19</text>
+						</view>
+					</view>
+				</view>
+			</view>
+		</view>
+	<u-divider bg-color="#F2F4F4" border-color="#CFD2D5">没有更多数据了</u-divider>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				dateShow:false,
+				departmentShow:false
+			}
+		},
+		methods: {
+			changeDateShow() {
+				this.dateShow = !this.dateShow
+			},
+			changeDepartmentShow() {
+				this.departmentShow = !this.departmentShow
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		padding-bottom: 100px;
+		font-family: 'PingFang Regular';
+	}
+	// 筛选
+	.options{
+		background-color: #fff;
+		padding: 0 92rpx;
+		line-height: 88rpx;
+		display: flex;
+		justify-content: space-between;
+		color: #7D7D7D;
+		.date-option,.department-option{
+			position: relative;
+		}
+		/deep/.uicon-arrow-down{
+			margin-left: 8rpx;
+		}
+		.date-box{
+			background-color: #fff;
+			z-index: 999;
+			width: 180rpx;
+			box-shadow: 0px 0px 2px #999999;
+			position: absolute;
+			top: 70rpx;
+		    right: 0px;
+		
+			.options-item {
+				line-height: 60rpx;
+				padding-left: 8rpx;
+				background-color: #2A8EFB ;
+				color: #fff;
+			}
+		
+		}
+		.department-box{
+			background-color: #fff;
+			z-index: 999;
+			width: 180rpx;
+			box-shadow: 0px 0px 2px #999999;
+			position: absolute;
+			top: 70rpx;
+		    left: 0px;
+		
+			.options-item {
+				line-height: 60rpx;
+				padding-left: 8rpx;
+				background-color: #2A8EFB ;
+				color: #fff;
+			}
+		
+		}
+	}
+
+// 记录卡片
+.main{
+	padding: 0 32rpx;
+}
+.record-card {
+		padding: 24rpx;
+		margin-top: 24rpx;
+		border-radius: 12px;
+		
+		background-color: rgba(255, 255, 255, 1);
+
+		.record-title {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			margin-bottom: 16rpx;
+
+			.date {
+				color: rgba(51, 51, 51, 1);
+				font-size: 32rpx;
+		 }
+
+			.people-number {
+				color: rgba(51, 51, 51, 1);
+				font-size: 16px;
+
+				text {
+					margin-left: 8rpx;
+				}
+			}
+		}
+
+		.classify {
+			display: flex;
+
+			align-items: center;
+
+			.item {
+				display: flex;
+				align-items: center;
+
+				.type1 {
+				 width: 112rpx;
+					height: 48rpx;
+					line-height: 48rpx;
+					border-radius: 4px;
+					border: 1px solid rgba(96, 184, 201, 1);
+					color: rgba(96, 184, 201, 1);
+					text-align: center;
+					margin-right: 8rpx;
+				}
+
+				.type2 {
+					width: 112rpx;
+					height: 48rpx;
+					line-height: 48rpx;
+					border-radius: 4px;
+				 border: 1px solid rgba(77, 140, 255, 1);
+					color: rgba(77, 140, 255, 1);
+					text-align: center;
+					margin-right: 8rpx;
+				}
+
+				.number {
+					color: rgba(51, 51, 51, 1);
+
+					text {
+						margin-left: 8rpx;
+					}
+				}
+			}
+
+			.item:nth-of-type(2) {
+				margin-left: 48rpx;
+			}
+		}
+
+		.num1 {
+			color: #FF6923;
+			font-weight: bold;
+		}
+
+		.num2 {
+			color: #85C8D5;
+			font-weight: bold;
+		}
+
+		.num3 {
+			color: #74A5FF;
+			font-weight: bold;
+		}
+	}
+	/deep/.u-divider{
+		margin-top: 40rpx !important;
+		font-family: 'PingFang Regular';
+	}
+</style>

+ 229 - 0
pages/canteenManagement/login.vue

@@ -0,0 +1,229 @@
+<template>
+	<view>
+		
+		<view class="main">
+			
+			<view class="logo">
+				<img src="../../assets/img/logo.png" alt="">
+			</view>
+			<view class="name">
+				食堂管理系统
+			</view>
+
+			<view class="login">
+				<view class="login-box">
+					
+						<view :class="['tel',telHighlight==true?'highlight':'']" >
+						<view class="icon" >
+							<u-icon name="account-fill" size="40" ></u-icon>
+						</view>
+						
+						
+						<view class="line">
+						</view>
+						<view class="tips">
+							<u-input v-model="phone"  @focus="handleTelFocus" @blur="handleTelBlur" class="telInput" type="number" placeholder="请输入手机号" />
+						<!-- <view class="clear" v-if="this.telHighlight==true">
+							<img src="../../assets/img/riFill-close-circle-fill@1x.png" alt="">
+						</view> -->
+						</view>
+					</view>
+					
+					<view :class="['pwd',pwdHighlight==true?'highlight':'']" >
+						<view class="icon">
+							<u-icon name="chat-fill" size="40"></u-icon>
+
+						</view>
+						<view class="line">
+						</view>
+						<view class="tips">
+							<view class="input">
+								<u-input   :type="type" :password-icon="passwordIcon" @focus="handlePwdFocus" @blur="handlePwdBlur"   placeholder="请输入密码" />
+							</view>
+							
+
+						</view>
+					</view>
+				</view>
+			</view>
+			
+			<view class="btn">
+				<button>登录</button>
+			</view>
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+                show:true,
+			    telHighlight:false,
+				pwdHighlight:false,
+				type: 'password',
+			    passwordIcon: true,
+				phone:'',
+			}
+		},
+		methods: {
+			// 帐号框聚焦失焦
+			handleTelFocus(){
+				this.telHighlight=true
+			},
+			handleTelBlur(){
+				this.telHighlight=false
+			},
+			// 密码框聚焦失焦
+			handlePwdFocus(){
+				this.pwdHighlight=true
+			},
+			handlePwdBlur(){
+				this.pwdHighlight=false
+			}
+               
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+	   background: url("../../assets/img/bgc.png");
+	}
+
+	
+	
+	
+
+	.main {
+		width: 100%;
+		padding-top:240rpx;
+		position: relative;
+        .close{
+			position: absolute;
+			top: 24rpx;
+			left: 24rpx;
+		}
+		.logo {
+			display: flex;
+			justify-content: center;
+		}
+
+		.name {
+			color: rgba(16, 16, 16, 1);
+			font-size: 40rpx;
+			text-align: center;
+			font-weight: bold;
+			margin-top: 8rpx;
+			font-family: 'SemiBold';
+		}
+
+	}
+
+	.login-box {
+		margin-top: 160rpx;
+
+		.tel {
+			/deep/.u-input {
+				width: 450rpx;
+			}
+		}
+		.pwd{
+			/deep/.u-input {
+				width: 450rpx;
+			}
+		}
+		.clear{
+			   img{
+				   vertical-align: middle;
+			   }
+		}
+		
+		
+          .line{
+			  width: 2rpx;
+			  height: 40rpx;
+			  background-color: #C1CCDF;
+			  position: absolute;
+			  top: 20rpx;
+			  left: 70rpx;
+		  }
+		  
+		.tel,
+		.pwd {
+			position: relative;
+			display: flex;
+			width: 74.4%;
+			height: 80rpx;
+			line-height: 80rpx;
+			color: rgba(183, 172, 172, 1);
+			margin: auto;
+			margin-bottom: 36rpx;
+			border: 1px solid rgba(193, 204, 223, 1);
+			border-radius: 8px;
+           /deep/.u-input__input{
+			   font-size: 32rpx;
+		   }
+			.icon {
+				width: 14%;
+				text-align: center;
+                color: #B0B8C8;
+				img {
+					vertical-align: middle;
+				}
+			}
+
+
+			.tips {
+				
+				text-indent: 16rpx;
+				padding-right: 16rpx;
+				display: flex;
+				justify-content: space-between;
+
+				/deep/uni-input {
+					height: 80rpx !important;
+					line-height: 80rpx !important;
+				}
+
+				.input {
+					width: 60%;
+				}
+			}
+
+			/deep/.uicon-eye-fill,/deep/.uicon-eye{
+				color: rgba(0, 90, 217, 1) !important;
+			}
+		}
+        // 高亮
+		.highlight {
+			border: 1px solid rgba(31, 74, 153, 1);
+			box-shadow: 0px 0px 8rpx 0px rgba(0, 90, 217, 50);
+			/deep/.u-input__input{
+				color: rgba(0, 90, 217, 1);
+			}
+			.icon{
+				color: #1F4A99;
+			}
+			.line{
+						  background-color: #005AD9;
+			}
+		}
+		
+	}
+
+  .btn{
+	  width: 100%;
+	  margin-top: 120rpx;
+	  
+	  uni-button{
+		  margin:0 96rpx;
+		  height: 80rpx;
+		  border-radius: 8px;
+		  background-color: rgba(31, 74, 153, 1);
+		  color: rgba(255, 255, 255, 1);
+		  font-size: 16px;
+	  }
+  }
+</style>

+ 206 - 0
pages/canteenManagement/mine/mine.vue

@@ -0,0 +1,206 @@
+<template>
+	<view>
+		<view class="head">
+			<view class="photo">
+				<img src="../../../assets/img/qrLogo.png" alt="">
+			</view>
+			<view class="name">
+				地方铁路食堂
+			</view>
+			<view class="switch">
+				<view class="img"><img src="../../../assets/img/riLine-exchange-line@1x.png" alt="">
+				</view>
+				<view class="text">
+					切换帐号
+				</view>
+			</view>
+		</view>
+		
+		
+		<!-- 功能 -->
+		<view class="function-group group1"     >
+			<view class="item">
+				<view class="title">
+					<view class="icon">
+						<img src="../../../assets/img/riLine-qr-code-line@1x.png" alt="">
+					</view>
+					<view class="text">
+						收款二维码
+					</view>
+				</view>
+				<view class="right">
+					<u-icon name="arrow-right" size="32" color="#cccccc"></u-icon>
+				</view>
+			</view>
+		
+			<view class="item" >
+				<view class="title">
+					<view class="icon">
+						<img src="../../../assets/img/riLine-file-edit-line@1x.png" alt="">
+					</view>
+					<view class="text">
+						意见反馈
+					</view>
+				</view>
+				<view class="right">
+					<u-icon name="arrow-right" size="32" color="#cccccc"></u-icon>
+				</view>
+			</view>
+			
+			<view class="item" >
+				<view class="title">
+					<view class="icon">
+						<img src="../../../assets/img/riLine-customer-service-2-line@1x.png" alt="">
+					</view>
+					<view class="text">
+						联系我们
+					</view>
+					
+				</view>
+				<view class="right">
+					<text class="tel">
+						0716-8888888
+					</text>
+					<u-icon name="arrow-right" size="32" color="#cccccc"></u-icon>
+				</view>
+			</view>
+			
+			<view class="item" >
+				<view class="title">
+					<view class="icon">
+						<img src="../../../assets/img/riLine-logout-box-r-line@1x.png" alt="">
+					</view>
+					<view class="text">
+						退出账号
+					</view>
+				</view>
+				<view class="right">
+					<u-icon name="arrow-right" size="32" color="#cccccc"></u-icon>
+				</view>
+			</view>
+		
+		</view>
+		
+		
+		<canteenTabbar  ref="mytabbar"
+				current="2"></canteenTabbar>
+	</view>
+	
+</template>
+
+<script>
+	import canteenTabbar from "../../../components/canteenTabbar.vue"
+	export default {
+		components: {
+			canteenTabbar
+		},
+		data() {
+			
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		font-family: 'PingFang Regular';
+		padding-bottom: 100px;
+	}
+	.head{
+		padding: 48rpx 0 48rpx 32rpx;
+		display: flex;
+		align-items: center;
+		.photo{
+			width: 120rpx;
+			height: 120rpx;
+			border-radius: 50px;
+			background-color: rgba(255, 255, 255, 1);
+			box-shadow: 0px 2px 8px 0px rgba(35, 72, 75, 15);
+			border: 2px solid rgba(255, 255, 255, 1);
+			overflow: hidden;
+			img{
+				width: 100%;
+				height: 100%;
+			}
+		}
+		.name{
+			color: rgba(51, 51, 51, 1);
+			font-size: 40rpx;
+			margin-left: 24rpx;
+			font-weight: bold;
+		}
+		.switch{
+			width: 216rpx;
+			height: 76rpx;
+			border-radius: 50px 0px 0px 50px;
+			background-color: rgba(255, 255, 255, 1);
+			text-align: center;
+			box-shadow: 0px 2px 4px 0px rgba(79, 125, 226, 15);
+			margin-left: auto;
+		   
+		   display: flex;
+		   justify-content: center;
+		   align-items: center;
+		   color: rgba(31, 74, 153, 1);
+		   .img{
+			   
+			   margin-right: 8rpx;
+			   img{
+				   vertical-align: middle;
+			   }
+		   }
+		   }
+			
+	}
+
+.function-group {
+		border-radius: 8px;
+		background-color: rgba(255, 255, 255, 1);
+		padding: 0 0 0 24rpx;
+		margin: 0 32rpx;
+		margin-top: 24rpx;
+
+		.item {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			height: 96rpx;
+			border-bottom: 1px solid #E6E6E6;
+
+			.title {
+				display: flex;
+				align-items: center;
+
+				.icon {
+					margin-right: 24rpx;
+
+					img {
+						width: 40rpx;
+						height: 40rpx;
+						vertical-align: middle;
+					}
+				}
+
+				.text {
+					color: rgba(119, 119, 119, 1);
+					
+				}
+			}
+
+			.right {
+				margin-right: 16rpx;
+				margin-left: 8rpx;
+				display: flex;
+			}
+		}
+		.tel{
+			margin-right: 16rpx;
+			color: rgba(119, 119, 119, 1);
+		}
+	}
+</style>

+ 112 - 0
pages/canteenManagement/mine/qrCode.vue

@@ -0,0 +1,112 @@
+<template>
+	<view>
+		<u-navbar title="收款二维码"></u-navbar>
+		<!-- 二维码 -->
+		<view class="code-box">
+			<view class="qr-code">
+				<img src="../../../assets/img/qrCode.png" alt="">
+				<view class="logo">
+					<img src="../../../assets/img/qrLogo.png" alt="">
+				</view>
+			</view>
+			<view class="hint">
+				用微信扫描二维码,可以付款就餐
+			</view>
+			
+		</view>
+		<!-- 保存到相册 -->
+		<view class="save">
+			<view class="photo">
+				<img src="../../../assets/img/antFill-picture@1x.png" alt="">
+			</view>
+			<view class="text">
+				保存到相册
+			</view>
+			
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		font-family: 'PingFang Regular';
+	}
+	// 二维码
+	.code-box{
+		margin: 80rpx 56rpx;
+		padding: 92rpx 0rpx;
+		border-radius: 8px;
+		text-align: center;
+		background-color: rgba(255, 255, 255, 1);
+		.qr-code{
+			width: 400rpx;
+			height: 400rpx;
+			position: relative;
+			margin: auto;
+			img{
+				width: 100%;
+				height: 100%;
+			}
+		}
+		.logo{
+			width: 112rpx;
+			height: 112rpx;
+			position: absolute;
+			top: 0;
+			left: 0;
+			right: 0;
+			bottom: 0;
+			margin: auto;
+			border: 4px solid #fff;
+			border-radius: 4px;
+			img{
+				width: 100%;
+				height: 100%;
+			}
+		}
+		.hint{
+			color: rgba(51, 51, 51, 1);
+			margin-top: 16rpx;
+			font-weight: bold;
+		}
+	}
+
+ // 保存到相册
+ .save{
+	 margin-top: 80rpx;
+	 text-align: center;
+	 .photo{
+		 height: 120rpx;
+		 width: 120rpx;
+		 border-radius: 999px;
+		 background-color: rgba(255, 255, 255, 1);
+		 text-align: center;
+		 margin: auto;
+         line-height: 120rpx;
+          
+		 img{
+			 vertical-align: middle;
+		 }
+		 
+	 }
+	 .text{
+	 			 color: rgba(119, 119, 119, 1);
+	 			 font-size: 24rpx;
+	 			 margin-top: 8rpx;
+	 }
+ }
+</style>

+ 422 - 0
pages/homePage/homePage.vue

@@ -0,0 +1,422 @@
+
+<template>
+	<view>
+		<!-- 吸顶搜索框 -->
+		<view class="sticky" v-if="flag">
+			<input type="text" @click="gotoUrl('pages/search/searchResult')" placeholder="请输入搜索内容">
+		</view>
+		<!-- 轮播图 -->
+		<view class="slideshow">
+			<view class="wrap">
+				<view class="search-box"  @click="gotoUrl('pages/search/searchResult')" >
+					<u-search color="black"
+					
+					 search-icon-color="#fff" placeholder-color="#fff" bg-color="#8a7170"
+						placeholder="请输入搜索内容" :show-action="false" input-align="center"></u-search>
+				</view>
+				<u-swiper mode="none" @click="swiperclick" img-mode="scaleToFill" 
+				:list="list" :title="true" height="422"></u-swiper>
+			</view>
+		</view>
+		<!-- 公告 -->
+		<view class="notice">
+			<view class="title">
+				公告
+			</view>
+			<view class="content">
+				<u-notice-bar :volume-icon="false"
+				padding=" 12px 0 " duration="4000" @click="noticeclick"
+				 type="none" :is-circular="false" @change="noticechange"
+				 mode="vertical" :list="toplistShow"></u-notice-bar>
+				
+			</view>
+			<view class="date" v-if="toplist.length">
+				{{substrDate(toplist[topindex].createTime)}}
+			</view>
+		</view>
+		<!-- 宫格 -->
+		<view class="grid">
+			<u-grid :col="4" :border="false">
+				<u-grid-item @click="ckList(noticeList[0],'铁路概况')" >
+					<img src="../../assets/img/tlgk.png" alt="">
+					<view class="grid-text">铁路概况</view>
+				</u-grid-item>
+				<u-grid-item  @click="ckList(noticeList[1],'机构设置')">
+					<img src="../../assets/img/jgsz.png" alt="">
+					<view class="grid-text">机构设置</view>
+				</u-grid-item>
+				<u-grid-item  @click="ckList(noticeList[2],'政务动态')">
+					<img src="../../assets/img/zwdt.png"   alt="">
+					<view class="grid-text">政务动态</view>
+				</u-grid-item>
+				<u-grid-item  @click="ckList(noticeList[3],'党建动态')" >
+					<img src="../../assets/img/djdt.png" alt="">
+					<view class="grid-text">党建动态</view>
+				</u-grid-item>
+				<u-grid-item  @click="ckList(noticeList[4],'法治宣传')"  >
+					<img src="../../assets/img/fzxc.png" alt="">
+					<view class="grid-text">法治宣传</view>
+				</u-grid-item>
+				<u-grid-item  @click="ckList(noticeList[8],'纪检监察')">
+					<img src="../../assets/img/jjjc.png" alt="">
+					<view class="grid-text">纪检监察</view>
+				</u-grid-item>
+				<u-grid-item  @click="ckList(noticeList[9],'文明创建')" >
+					<img src="../../assets/img/wmcj.png" alt="">
+					<view class="grid-text">文明创建</view>
+				</u-grid-item>
+				<u-grid-item @click="ckList(noticeList[5],'为您服务')">
+					<img src="../../assets/img/wnfw.png"  alt="">
+					<view class="grid-text">为您服务</view>
+				</u-grid-item>
+			</u-grid>
+		</view>
+		<!-- 新闻资讯 -->
+		<view class="news"  style="padding-bottom: 0px;">
+			<view class="title">
+				<view class="icon">
+					<img src="../../assets/img/news.png" alt="">
+				</view>
+				<view class="text">
+					新闻资讯
+				</view>
+
+			</view>
+			<view class="news-item" v-for="(item,i) in footlist" @click="ckInfo(item.id)" :key="i" >
+				<view class="content">
+					<view class="news-title">
+						{{item.title}}
+					</view>
+					<view class="information">
+						<view class="classify">
+							{{item.typeName}}
+						</view>
+						<view class="date">
+							{{substrDate(item.createTime)}}
+						</view>
+
+					</view>
+				</view>
+
+				<view class="img">
+					<img  v-if="item.pic" :src="imgurl+item.pic" alt="">
+					<img  v-else src="@/assets/img/default_img.png" alt="">
+					
+				</view>
+
+			</view>
+		</view>
+		<u-divider bg-color="#F2F4F4" @click="ckList(noticeList[7],'新闻资讯')" border-color="#CFD2D5">点击查看更多</u-divider>
+		<tabbar  ref="mytabbar"
+		current="0"></tabbar>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/news.js'
+
+	import tabbar from "../../components/Tabbar.vue"
+	export default {
+		components: {
+			tabbar
+		},
+		data() {
+			return {
+				noticeList:[
+					"2044eba8-776d-4195-b54f-b3d00928ed98",//	铁路概况0
					"86e29bf7-9e8f-4a28-9361-1001705d3dc6",//	机构设置	1	
					"939fbcca-8c31-478f-a7dc-6c649648164e",//	政务动态	2
					"f57b8b67-db9a-4110-bc9b-7ec382a07954",//	党建动态	3
					"39599bb3-78e9-4e84-99b5-2d6a5c1c40e3",//	法治宣传	4
					"7288376a-b582-4e9a-98fa-c218e35b5c30",//	为您服务5
					"696d571d-54ba-4954-804e-74f4310e4d6a",//	公众参与6
					"ee0ea72a-75bf-4970-ad34-11e3132bc6a3",//	图片新闻7		
					"8e7f6d22-2b5b-4efc-b354-dbcddb46a8b3",//	纪检监察8	
					"a4870553-44e0-4172-91db-263cedf5938f",//	文明创建9	
					"de3958c2-0010-4009-b7e1-15bfdcc60cef",//	通知公告10
+					"",//all   11
+					
+				],
+				flag: false,
+				scrollTop: "",
+				list: [
+				],
+				toplist:[],
+				footlist:[],
+				topindex:0,
+				imgurl:'',
+			}
+		},
+		onLoad(){
+			 
+				this.getSwiperList()
+				this.getListtoplist("de3958c2-0010-4009-b7e1-15bfdcc60cef",5,"toplist");//通知公告
+				this.getListfootlist("ee0ea72a-75bf-4970-ad34-11e3132bc6a3",5,"footlist");//新闻资讯-图片新闻
+			//ee0ea72a-75bf-4970-ad34-11e3132bc6a3
+			
+		},
+		onShow(){
+			
+		},
+		computed:{
+			toplistShow(){
+				var sz=[];
+				for(var i in this.toplist){
+					var item=this.toplist[i]
+					sz.push(item.title)
+				}
+				return sz;
+			}
+		},
+		methods: {
+			noticeclick(e){
+				var id=this.toplist[e].id;
+				this.ckInfo(id);
+			},
+			noticechange(e){
+				this.topindex=e
+			},
+			ckList(id,title){
+				var url="/pages/news/news?id="+id+"&title="+title;
+				uni.navigateTo({
+					url:url
+				})
+			},
+			ckInfo(id){
+				var url="/pages/news/articleDetails?id="+id;
+				uni.navigateTo({
+					url:url
+				})
+			},
+			swiperclick(index){
+				
+				var id=this.list[index].id;
+				this.ckInfo(id);
+			},
+			getListfootlist(id,pageSize,sz){
+				
+				API.pageList({
+					pageSize: pageSize,
+					typeId:id,
+				}).then((response) => {
+					uni.hideLoading();
+					this.footlist=response.data.data
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			getListtoplist(id,pageSize,sz){
+				
+				API.pageList({
+					pageSize: pageSize,
+					typeId:id,
+				}).then((response) => {
+					uni.hideLoading();
+					this.toplist=response.data.data
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			getSwiperList(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.swiperList({
+					pageSize: 5,
+					
+				}).then((response) => {
+					uni.hideLoading();
+					this.list=[]
+					for(var i in response.data){
+						var item=response.data[i]
+						if(item.url){
+							this.list.push({
+								id:item.id,
+								image: ''+item.url,
+								title:item.title
+							})
+						}
+						
+					}
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			onPageScroll(e) {
+				this.scrollTop = e.scrollTop;
+				//console.log(this.scrollTop);
+				if (this.scrollTop >= 200) {
+					this.flag = true;
+				} else {
+					this.flag = false;
+				}
+			},
+
+		},
+
+
+
+	}
+</script>
+
+
+<style scoped lang="scss">
+	page {
+		padding-bottom: 50px;
+		font-family: 'Regular';
+	}
+
+	.sticky {
+		width: 100%;
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		z-index: 100;
+		border-bottom: 1px solid #fff;
+		padding: 16rpx 40rpx;
+		background-color: #fff;
+		uni-input {
+			background-color: #E8E8E8;
+			height: 32px;
+			line-height: 32px;
+			border-radius: 8px;
+			text-align: center;
+		}
+	}
+
+
+
+	.u-search {
+
+
+		/deep/.uni-input-placeholder {
+			font-weight: bold;
+		}
+
+		/deep/.uni-input-input {
+			color: #ffffff !important;
+			font-weight: bold;
+		}
+	}
+
+	.search-box {
+		width: 100%;
+		background-color: #4F3C27;
+		padding: 16rpx 40rpx;
+		position: absolute;
+		line-height: 32px;
+		color: #ffffff !important;
+		opacity: 0.4;
+		z-index: 999;
+		opacity: 0.4;
+	}
+
+
+	// 公告
+	.notice {
+		background-color: rgba(255, 255, 255, 1);
+		line-height: 40px;
+		display: flex;
+		padding: 0 32rpx;
+
+		.title {
+			color: rgba(31, 74, 153, 1);
+			font-size: 18px;
+			font-weight: bold;
+		}
+
+		.content {
+			width: 380rpx;
+			white-space: nowrap;
+			overflow: hidden;
+			text-overflow: ellipsis;
+			color: rgba(51, 51, 51, 1);
+			margin-left: 14px;
+		}
+
+		.date {
+			color: rgba(119, 119, 119, 1);
+			margin-left: auto;
+		}
+	}
+
+	// 宫格
+	.grid {
+		img {
+			width: 80rpx;
+			height: 80rpx;
+		}
+
+		.grid-text {
+			color: rgba(51, 51, 51, 1);
+			margin-top: 8rpx;
+		}
+	}
+
+	// 新闻资讯
+	.news {
+		padding: 40rpx 32rpx;
+		background-color: rgba(244, 244, 244, 1);
+
+		.title {
+			display: flex;
+			align-items: center;
+			margin-bottom: 40rpx;
+           font-family: 'SemiBold';
+			img {
+				width: 40rpx;
+				height: 40rpx;
+				margin-right: 8rpx;
+			}
+		}
+
+		.news-item {
+			display: flex;
+			justify-content: space-between;
+			margin-bottom: 40rpx;
+			max-height:100px;
+			min-height: 80px;
+			.content {
+				display: flex;
+				flex-direction: column;
+				justify-content: space-between;
+
+				.news-title {
+					color: rgba(51, 51, 51, 1);
+					font-size: 16px;
+					text-align: justify;
+					width: 438rpx;
+					font-weight: bold;
+					// white-space: nowrap;
+					overflow: hidden;
+					text-overflow: ellipsis;
+				}
+
+				.information {
+					margin-top: 8rpx;
+					display: flex;
+					justify-content: space-between;
+					color: #777777;
+				}
+			}
+		}
+
+		.img {
+			width: 224rpx;
+			
+			border-radius: 5px;
+			overflow: hidden;
+
+			img {
+				border-radius: 5px;
+				width: 100%;
+				height: 100%;
+				
+			}
+		}
+	}
+</style>

+ 319 - 0
pages/index/index.vue

@@ -0,0 +1,319 @@
+<template>
+	<view>
+	<view class="welcome">
+		
+		<view class="welcome-state1" >
+			<view class="welcome-next" style="z-index: 999;" @click="gotoIndex()">{{step?step+'|':''}}跳过</view>
+			
+		</view>
+		
+		<u-image  id="imgw"
+		 height="auto"
+		 v-if="imgmode"   @load="imgsload" ref="imgw"   mode="widthFix">
+			<view slot="loading"></view>
+			<view slot="error"></view>
+		</u-image>
+		
+		<u-image   v-if="!imgmode"  :height="imgH"   mode="aspectFill">
+			<view slot="loading"></view>
+			<view slot="error"></view>
+		</u-image>
+		
+		<view class="welcome-foot">
+			<u-image width="185px" height="48px" src="/static/logo.png"></u-image>
+		</view>
+	
+	</view>
+	</view>
+</template>
+
+<script>
+	import * as loginApi from '@/apis/login.js'
+	import * as API from '@/apis/index.js'
+	
+	export default {
+		data() {
+			return {
+				isReady:true,
+				isReady2:false,
+				step:2,
+				imgH:'',
+				imgmode:true
+			}
+		},
+		onUnload(){
+			document.body.style=""
+		},
+		onReady() {
+			
+		},
+		onLoad(op) {
+			this.findNoLTextConfigure()
+			this.findByOpenId()
+			if(op.friends){
+				
+				this.carhelp.set("friends_invitation",{
+					op:op,
+					date:new Date().getTime()
+				})
+				uni.redirectTo({
+					url:'/pages/login/index'
+				})
+					//this.onReadyIng()
+			}else  if(op.gunId){
+				var k=API.codeOperation("jp_team51_charge_id:A_"+op.gunId);
+				if(k){
+					uni.redirectTo({
+						url:k
+					})
+				}
+			
+			}else if(op.jpcode){
+				
+				var k=API.codeOperation(op.jpcode);
+				if(k){
+					uni.redirectTo({
+						url:k
+					})
+				}
+							
+			}else{
+				
+				this.onReadyIng()
+			}
+		},
+		methods: {
+			
+				imgsload(e){
+					 
+					
+					uni.getSystemInfo({
+						success: (res) => {
+							//(res)
+							
+							const query = uni.createSelectorQuery().in(this);
+							query.select('#imgw').boundingClientRect(data => {
+							  //("得到布局位置信息" + JSON.stringify(data));
+							  //("节点离页面顶部的距离为" + data.height);
+							  var windowH=res.windowHeight;
+							  var imgH= data.height;
+							  var value=windowH-imgH;
+							  //(value)
+							  if(value>=100){
+								  this.imgmode=true
+								  document.getElementsByClassName("welcome-foot")[0].style="height:"+value+"px"
+							  }else{
+								  this.imgmode=false
+								  
+							  }
+							}).exec();
+							
+						}
+					})
+				},
+				 findNoLTextConfigure(){
+					 API.getTips().then((response) => {
+					 				
+					 	this.carhelp.setConfigMessage(response.data.tipsList) 
+					
+					 }).catch(error => {
+					 	
+					 })
+					 
+					 loginApi.findNoLTextConfigure().then((response) => {
+					
+					 	this.carhelp.setConfig(response.data.configure) 
+					 	this.setBackImg()
+					 }).catch(error => {
+					 	uni.showToast({
+					 		title: error,
+					 		icon: "none"
+					 	})
+					 })
+				 },
+				findByOpenId(){
+					
+					var openId=this.carhelp.getOpenId()
+					if(openId==""){
+						//("--------findByOpenId----------")
+						setTimeout(()=>{
+							this.findByOpenId()
+						},1000)
+						return
+					}
+					uni.request({
+						method:'get',
+						url: process.car.BASE_URL + "/mobile/regUser/findByOpenId",
+						data: {
+							openId:openId,			
+						},
+						header: {
+							'Content-Type': 'application/x-www-form-urlencoded',
+							'X-Requested-With': 'XMLHttpRequest',
+						}
+					}).then((response) => {
+						let [error, res] = response;
+						 
+						if (res.data.code == 200&&res.data.result) {			
+							var token = res ? res.data.data.token : '';					
+							this.carhelp.setPersonInfo(res.data.data.regUser );
+							this.carhelp.setToken(token);
+							
+							this.carhelp.setPersonInfoPlus(res.data.data);
+						
+						} else{
+							this.carhelp.logoff()
+						}
+						this.isReady2=true;
+						
+					}).catch(error => {
+						
+					
+					})
+				},
+				setBackImg(){
+					var  img=this.carhelp.getConfig().homepageLogo
+						
+							if(img){
+								this.$refs.imgw.src=img
+								//document.body.style="background:url("+img+") no-repeat;background-size: 100%;"
+							}else{
+								this.$refs.imgw.src="/static/welcome_bg.png"
+							}
+					if(this.$refs.imgw){	}
+					
+					
+				},
+				gotoIndex(){
+					if(this.isReady){
+						this.isReady=false
+						uni.redirectTo({
+							url: '/pages/index/index'
+						});
+					}
+					
+				},
+				indexstep(){
+						setTimeout(()=>{
+							
+							this.step--;
+							if(this.step<0){
+								if(this.isReady2){
+									this.gotoIndex()
+								}else{
+									this.step=0;
+									this.indexstep()
+								}
+								
+							}else{
+								
+								this.indexstep()
+							}
+							
+						},1000)
+				},
+				onReadyIng(){
+					//let state = {};
+					uni.getSystemInfo({
+						success: (res) => {
+							 var windowH=res.windowHeight;
+							this.imgH=(windowH-100)+"px";
+							
+						}
+					})
+									
+					this.indexstep()
+					this.setBackImg( )
+				},
+		}
+	}
+</script>
+
+<style  lang="scss">
+	.content {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		.logo {
+			height: 200rpx;
+			width: 200rpx;
+			margin-top: 200rpx;
+			margin-left: auto;
+			margin-right: auto;
+			margin-bottom: 50rpx;
+		}
+	}
+
+	/* .logo {
+		height: 200rpx;
+		width: 200rpx;
+		margin-top: 200rpx;
+		margin-left: auto;
+		margin-right: auto;
+		margin-bottom: 50rpx;
+	} */
+
+	.text-area {
+		display: flex;
+		justify-content: center;
+	}
+
+	.title {
+		font-size: 36rpx;
+		color: #8f8f94;
+	}
+</style>
+<style>
+	page{
+		
+		background-color: #ffffff;
+	}
+</style>
+<style  lang="scss" scoped>
+	.welcome{
+		position: relative;
+	}
+	.welcome-next{
+		position: absolute;
+		padding: 4px 15px;
+		color:#fff;
+		border-radius: 14px;
+		background:rgba(0,0,0,0.5);
+		right: 15px;
+		top: 15px;
+	}
+	.welcome-foot{
+		position:fixed;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		background-color: #fff;
+		height: 100px;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+	.welcome-logo{
+		position: absolute;
+		left: 50%;
+		margin-left: -100px;
+		top: 120px;
+	}
+	.welcome-btn{
+		position: fixed;
+		left: 48px;
+		right: 48px;
+		bottom:48px;
+		text-align: center;
+		.welcomeBtn{
+			color:#009143;
+			border-color:#fff;
+		}
+		p{
+			color:#fff;
+			margin-top: 12px;
+			font-size: 16px;
+		}
+	}
+</style>

+ 410 - 0
pages/login/index.vue

@@ -0,0 +1,410 @@
+<template>
+	<view>
+		
+		<view class="main">
+			<view class="close" @click="goBack">
+				<u-icon name="close" size="32" color="#101010"></u-icon>
+			</view>
+			<view class="logo">
+				<img src="../../assets/img/logo.png" alt="">
+			</view>
+			<view class="name">
+				荆州市地方铁路有限公司
+			</view>
+
+			<view class="login">
+				<view class="login-box">
+					<view :class="['tel',telHighlight==true?'highlight':'']" >
+						<view class="icon">
+							<u-icon name="account-fill" size="40"></u-icon>
+
+						</view>
+						<view class="line">
+						</view>
+						<view class="tips">
+							<u-input type="number"
+							   @focus="handleTelFocus" @blur="handleTelBlur" 
+							  v-model="form.phone" placeholder="请填写系统预留手机号码" />
+						</view>
+					</view>
+					<view :class="['pwd',pwdHighlight==true?'highlight':'']">
+						<view class="icon">
+							<u-icon name="chat-fill" size="40"></u-icon>
+
+						</view>
+						<view class="line">
+						</view>
+						<view class="tips">
+							<view class="input">
+								<u-input type="number" v-model="form.code" 
+								  @focus="handlePwdFocus" @blur="handlePwdBlur" 
+								 placeholder="请输入验证码" />
+							</view>
+							<view class="verification-code"  @click="getCode"  >{{codeTips}}</view>
+							<u-verification-code :seconds="sendMsgSecond" ref="uCode" @change="codeChange" @end="end" @start="start">
+							</u-verification-code>
+						</view>
+					</view>
+				</view>
+			</view>
+			
+			<view class="btn">
+				<button
+				:class="{
+					'login-btn':!(form.phone&&form.code)
+				}" type="primary"
+				@click="finish"
+				
+				>登录</button>
+				
+			</view>
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/user.js'
+	import {
+		checkPhone
+	} from '@/apis/utils'
+	export default {
+		data() {
+			return {
+				form: {
+					name: '',
+					
+					phone: '',
+					code: '',
+				},
+				codeTips: '',
+				isSendMsgIng: false,
+				sendMsgSecond: 60 * 2,
+				customStyle: {
+					background: '#1677ff'
+				},
+				telHighlight:false,
+				pwdHighlight:false
+			}
+		},
+		onLoad(op) {
+		
+			// this.message = op.message;
+			// this.backUrl = op.back;
+			if (op.phone) {
+				this.form.phone = op.phone;
+			}
+		
+		},
+		onReady() {
+			this.query()
+			
+		},
+		methods: {
+			// 帐号框聚焦失焦
+			handleTelFocus(){
+				this.telHighlight=true
+			},
+			handleTelBlur(){
+				this.telHighlight=false
+			},
+			// 密码框聚焦失焦
+			handlePwdFocus(){
+				this.pwdHighlight=true
+			},
+			handlePwdBlur(){
+				this.pwdHighlight=false
+			},
+			goBack(){
+				uni.redirectTo({
+					url: '/'
+				})
+			},codeChange(text) {
+				this.codeTips = text;
+			},
+			//倒计时
+		
+			end() {
+				this.sendMsgSecond = 2 * 60;
+				this.isSendMsgIng = false;
+			},
+			finish() {
+		
+				if (!this.carhelp.getOpenId()) {
+					// uni.showToast({
+					// 	title: "请使用“微信”访问本系统登录"
+					// })
+					// return
+				}
+				if (!this.form.phone) {
+					uni.showToast({
+						title: "请输入手机号"
+					})
+					return
+				}
+				if (!this.form.code) {
+					uni.showToast({
+						title: "请输入验证码"
+					})
+					return
+				}
+		
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				var headImg = "";
+				var userInfo = this.carhelp.get("xpgj_wx_user_info")
+				if (userInfo) {
+		
+					headImg = userInfo.headimgurl;
+				}
+		
+		
+				API.validateCode({
+					verifyCode: this.form.code,
+					telephone: this.form.phone,
+					openId: this.carhelp.getOpenId(),
+					headImg: headImg
+				}).then((response) => {
+					this.loginset(response)
+		
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			start() {
+				if (!this.isSendMsgIng) {
+		
+		
+					uni.showLoading({
+						title: "加载中",
+						mask: true,
+					})
+					API.getVerifyCode(this.form.phone).then((response) => {
+		
+		
+						uni.hideLoading();
+						this.carhelp.set("getvcodetime", new Date().getTime());
+		
+						if (!"") {
+							//倒计时
+							uni.showToast({
+								title: "发送成功"
+							})
+						} else {
+							uni.showToast({
+								title: "您的验证码已经发送[5分钟有效],请勿重复点击"
+							})
+						}
+					}).catch(error => {
+						uni.showToast({
+							title: error,
+							icon: "none"
+						})
+					})
+		
+		
+				}
+			},
+			// 获取验证码
+			getCode() {
+				if (this.$refs.uCode.canGetCode) {
+		
+				} else {
+		
+					uni.showToast({
+						title: '倒计时结束后再发送',
+						icon: "none"
+					})
+					return
+				}
+		
+				var checkPhoneResult = checkPhone(this.form.phone);
+		
+				if (checkPhoneResult !== true) {
+					uni.showToast({
+						title: checkPhoneResult,
+		
+					})
+					return;
+				}
+				this.$refs.uCode.start();
+			},
+			loginset(response){
+				var token = response ? response.data.token : '';
+				this.carhelp.setToken(token);
+				this.carhelp.setPersonInfo(response.data.regUser);
+				this.carhelp.setPersonInfoPlus(response.data)
+				//this.gotoUrl("pages/user/index")
+				uni.redirectTo({
+					url: '/'
+				})
+			},
+			query(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.findByOpenId({
+					noerror:true,
+					openId: this.carhelp.getOpenId(),
+					
+				}).then((response) => {
+					this.loginset(response)
+					
+				
+				}).catch(error => {
+					uni.hideLoading();
+					// if (!this.carhelp.getOpenId()) {
+					// 	uni.showToast({
+					// 		title: "请使用“微信”访问本系统登录"
+					// 	})
+					// 	return
+					// }
+					var time = this.carhelp.get("getvcodetime");
+					if (time) {
+						//this.$refs.uCode.start();
+						var nowtime = new Date().getTime()
+						var differ = (nowtime - time) / 1000
+						if (differ < 2 * 60) {
+							this.sendMsgSecond = 2 * 60 - parseInt(differ)
+							this.isSendMsgIng = true;
+							this.$refs.uCode.start();
+						}
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+	   background: url("../../assets/img/bgc.png");
+	}
+
+	
+
+	.main {
+		width: 100%;
+		padding-top:240rpx;
+		position: relative;
+        .close{
+			position: absolute;
+			top: 24rpx;
+			left: 24rpx;
+		}
+		.logo {
+			display: flex;
+			justify-content: center;
+		}
+
+		.name {
+			color: rgba(16, 16, 16, 1);
+			font-size: 40rDDpx;
+			text-align: center;
+			font-weight: bold;
+			margin-top: 8rpx;
+		}
+
+	}
+
+	.login-box {
+		margin-top: 160rpx;
+
+		.tel {
+			/deep/.u-input {
+				width: 400rpx;
+			}
+		}
+    .line{
+			  width: 2rpx;
+			  height: 40rpx;
+			  background-color: #C1CCDF;
+			  position: absolute;
+			  top: 20rpx;
+			  left: 70rpx;
+		  }
+		.tel,
+		.pwd {
+				position: relative;
+			display: flex;
+			width: 74.4%;
+			height: 80rpx;
+			line-height: 80rpx;
+			color: rgba(183, 172, 172, 1);
+			margin: auto;
+			margin-bottom: 36rpx;
+			border: 1px solid rgba(193, 204, 223, 1);
+			
+			border-radius: 8px;
+           /deep/.u-input__input{
+			   font-size: 32rpx;
+		   }
+			.icon {
+				width: 14%;
+				text-align: center;
+   color: #B0B8C8;
+				img {
+					vertical-align: middle;
+				}
+			}
+
+
+			.tips {
+				text-indent: 16rpx;
+				padding-right: 16rpx;
+				display: flex;
+				justify-content: space-between;
+
+				/deep/uni-input {
+					height: 80rpx !important;
+					line-height: 80rpx !important;
+				}
+
+				.input {
+					width: 50%;
+				}
+			}
+
+			// 验证码
+			.verification-code {
+				color: #1F4A99;
+				line-height: 80rpx;
+			}
+		}
+
+		.highlight {
+			border: 1px solid rgba(31, 74, 153, 1);
+			box-shadow: 0px 0px 8rpx 0px rgba(0, 90, 217, 50);
+			/deep/.u-input__input{
+				color: rgba(0, 90, 217, 1);
+			}
+			.icon{
+				color: #1F4A99;
+			}
+			.line{
+						  background-color: #005AD9;
+			}
+		}
+	}
+
+  .btn{
+	  width: 100%;
+	  margin-top: 120rpx;
+	  
+	  uni-button{
+		  margin:0 96rpx;
+		  height: 80rpx;
+		  border-radius: 8px;
+		  background-color: rgba(31, 74, 153, 1);
+		  color: rgba(255, 255, 255, 1);
+		  font-size: 16px;
+	  }
+  }
+</style>

+ 219 - 0
pages/login/login.vue

@@ -0,0 +1,219 @@
+<template>
+	<view>
+		
+		<view class="main">
+			<view class="close">
+				<u-icon name="close" size="32" color="#101010"></u-icon>
+			</view>
+			<view class="logo">
+				<img src="../../assets/img/logo.png" alt="">
+			</view>
+			<view class="name">
+				荆州市地方铁路有限公司
+			</view>
+
+			<view class="login">
+				<view class="login-box">
+					
+						<view :class="['tel',telHighlight==true?'highlight':'']" >
+						<view class="icon" >
+							<u-icon name="account-fill" size="40" ></u-icon>
+						</view>
+						
+						
+						<view class="line">
+						</view>
+						<view class="tips">
+							<u-input  @focus="handleTelFocus" @blur="handleTelBlur" class="telInput" type="number" placeholder="请填写系统预留手机号码" />
+						</view>
+					</view>
+					
+					<view :class="['pwd',pwdHighlight==true?'highlight':'']" >
+						<view class="icon">
+							<u-icon name="chat-fill" size="40"></u-icon>
+
+						</view>
+						<view class="line">
+						</view>
+						<view class="tips">
+							<view class="input">
+								<u-input  @focus="handlePwdFocus" @blur="handlePwdBlur" type="number"  placeholder="请输入验证码" />
+							</view>
+							<view class="verification-code">获取验证码</view> 
+
+						</view>
+					</view>
+				</view>
+			</view>
+			
+			<view class="btn">
+				<button>登录</button>
+				
+			</view>
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+                show:true,
+			    telHighlight:false,
+				pwdHighlight:false
+				
+			}
+		},
+		methods: {
+			// 帐号框聚焦失焦
+			handleTelFocus(){
+				this.telHighlight=true
+			},
+			handleTelBlur(){
+				this.telHighlight=false
+			},
+			// 密码框聚焦失焦
+			handlePwdFocus(){
+				this.pwdHighlight=true
+			},
+			handlePwdBlur(){
+				this.pwdHighlight=false
+			}
+               
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+	   background: url("../../assets/img/bgc.png");
+	}
+
+	
+	
+	
+
+	.main {
+		width: 100%;
+		padding-top:240rpx;
+		position: relative;
+        .close{
+			position: absolute;
+			top: 24rpx;
+			left: 24rpx;
+		}
+		.logo {
+			display: flex;
+			justify-content: center;
+		}
+
+		.name {
+			color: rgba(16, 16, 16, 1);
+			font-size: 40rpx;
+			text-align: center;
+			font-weight: bold;
+			margin-top: 8rpx;
+			font-family: 'SemiBold';
+		}
+
+	}
+
+	.login-box {
+		margin-top: 160rpx;
+
+		.tel {
+			/deep/.u-input {
+				width: 400rpx;
+			}
+		}
+		
+          .line{
+			  width: 2rpx;
+			  height: 40rpx;
+			  background-color: #C1CCDF;
+			  position: absolute;
+			  top: 20rpx;
+			  left: 70rpx;
+		  }
+		  
+		.tel,
+		.pwd {
+			position: relative;
+			display: flex;
+			width: 74.4%;
+			height: 80rpx;
+			line-height: 80rpx;
+			color: rgba(183, 172, 172, 1);
+			margin: auto;
+			margin-bottom: 36rpx;
+			border: 1px solid rgba(193, 204, 223, 1);
+			border-radius: 8px;
+           /deep/.u-input__input{
+			   font-size: 32rpx;
+		   }
+			.icon {
+				width: 14%;
+				text-align: center;
+                color: #B0B8C8;
+				img {
+					vertical-align: middle;
+				}
+			}
+
+
+			.tips {
+				
+				text-indent: 16rpx;
+				padding-right: 16rpx;
+				display: flex;
+				justify-content: space-between;
+
+				/deep/uni-input {
+					height: 80rpx !important;
+					line-height: 80rpx !important;
+				}
+
+				.input {
+					width: 60%;
+				}
+			}
+
+			// 验证码
+			.verification-code {
+				color: #1F4A99;
+				line-height: 80rpx;
+				font-family: 'Regular';
+			}
+		}
+        // 高亮
+		.highlight {
+			border: 1px solid rgba(31, 74, 153, 1);
+			box-shadow: 0px 0px 8rpx 0px rgba(0, 90, 217, 50);
+			/deep/.u-input__input{
+				color: rgba(0, 90, 217, 1);
+			}
+			.icon{
+				color: #1F4A99;
+			}
+			.line{
+						  background-color: #005AD9;
+			}
+		}
+		
+	}
+
+  .btn{
+	  width: 100%;
+	  margin-top: 120rpx;
+	  
+	  uni-button{
+		  margin:0 96rpx;
+		  height: 80rpx;
+		  border-radius: 8px;
+		  background-color: rgba(31, 74, 153, 1);
+		  color: rgba(255, 255, 255, 1);
+		  font-size: 16px;
+	  }
+  }
+</style>

+ 38 - 0
pages/mine/cropImage.vue

@@ -0,0 +1,38 @@
+<template>
+	<view class="content" >
+		<limeClipper :width="options.width" :scale-ratio="2" :is-lock-width="false" :is-lock-height="false" :height="options.height" :image-url="path"  
+			@success="successFn" @cancel="cancel"  />
+	</view>
+</template>
+<script>
+import limeClipper from '@/components/limeClipper/limeClipper.vue';
+export default {
+	components: {limeClipper},
+	data() {return {path: '',options:{"width":600,"height":600}}},
+	onLoad({path,options}) {
+		this.path = path
+		//('path-path-path-path',path);
+		if(options){
+			this.options = JSON.parse(options)
+		}
+	},
+	methods:{
+		successFn(e){
+			this.getOpenerEventChannel().emit('success',e.url)
+			uni.navigateBack()
+		},
+		cancel(){
+			uni.navigateBack()
+		}
+	}
+}
+</script>
+
+<style>
+	.box{
+		width: 400rpx;
+	}
+	.mt{
+		margin-top: -10px;
+	}
+</style>

+ 246 - 0
pages/mine/data.vue

@@ -0,0 +1,246 @@
+<template>
+	<view>
+		<u-navbar title="编辑个人资料">
+			<view class="slot-wrap" @click="submit">
+				保存
+			</view>	
+		</u-navbar>
+		<view class="data">
+			<view class="data-img">
+				<view class="data-icon">
+					<u-icon name="camera-fill"  color="#fff" size="32"></u-icon>
+				</view>
+				<img v-if="form.headImg" :src="form.headImg" style="width: 160rpx;" alt="">
+				
+				<u-avatar v-else  size="160" ></u-avatar>
+			</view>
+			<view class="change"  @click="uploadPhoto" >
+				点击更换头像
+			</view>
+			
+			<view class="nickname">
+				<view class="title">
+					昵称
+				</view>
+				<view class="input">
+					<input type="text" placeholder="修改昵称"  v-model="form.name" >
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/user.js'
+	import * as API_common from '@/apis/common.js'
+	
+	export default {
+		data() {
+			return {
+				plusInfo:{},
+				userInfo:{},
+				form:{},
+			}
+		},
+		onLoad() {
+			this.plusInfo=this.carhelp.getPersonInfoPlus();
+			this.userInfo=this.carhelp.getPersonInfo();
+			this.form={
+				name:this.userInfo.name,
+				headImg:this.userInfo.headImg
+			}
+			
+		},
+		methods: {
+			submit() {
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})		
+				API.changeData(this.form).then((res) => {
+					uni.hideLoading();
+					this.userInfo.name=this.form.name
+					this.userInfo.headImg=this.form.headImg
+					this.carhelp.setPersonInfo(this.userInfo);
+					uni.showToast({
+						title: "提交成功",
+						icon: "none"
+					})
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			uploadPhoto() {
+				let _self = this;
+				
+				const crop = {
+					quality: 100,
+					width: 600,
+					height: 600,
+					resize: true
+				};
+				
+				// 上传图片
+				uni.chooseImage({
+					count: 1,
+					crop,
+					success: async (res) => {
+						//(res);
+						let tempFile = res.tempFiles[0],
+							avatar_file = {
+								// #ifdef H5
+								extname: tempFile.name.split('.')[tempFile.name.split('.').length - 1],
+								// #endif
+								// #ifndef H5
+								extname: tempFile.path.split('.')[tempFile.path.split('.').length - 1]
+								// #endif
+							},
+							filePath = res.tempFilePaths[0]
+							
+						// #ifndef APP-PLUS
+						//(`filePath=${filePath}`)
+						
+						//非app端用前端组件剪裁头像,app端用内置的原生裁剪
+						let fileData = await new Promise((callback) => {
+							uni.navigateTo({
+								url: '/pages/mine/cropImage?path=' + filePath +
+									`&options=${JSON.stringify(crop)}`,
+								animationType: "fade-in",
+								events: {
+									success: url => {
+										callback(url)
+									}
+								}
+							});
+						})
+						// #endif
+						
+						
+						function dataURLtoBlob(dataurl){
+						    var arr = dataurl.split(','),
+						      mime = arr[0].match(/:(.*?);/)[1],
+						      bstr = atob(arr[1]),
+						      n = bstr.length,
+						      u8arr = new Uint8Array(n);
+						    while (n--) {
+						      u8arr[n] = bstr.charCodeAt(n);
+						    }
+						    return new Blob([u8arr], { type: mime });
+						  }
+						  //2,再将blob转换为file
+						function  blobToFile(theBlob, fileName){
+						     theBlob.lastModifiedDate = new Date();  // 文件最后的修改日期
+						     theBlob.name = fileName;                // 文件名
+						     return new File([theBlob], fileName, {type: theBlob.type, lastModified: Date.now()});
+						  }
+						  
+						  
+						  var blob= dataURLtoBlob(fileData)
+						  var file= blobToFile(blob,parseInt(Math.random()*100000000)+'.jpg')
+						  console.log(file)
+						  
+						//返回 base64 图片
+						//(fileData);
+					var formData = new FormData();
+					
+					formData.append('subFolder', "headimg");
+					
+					formData.append('photoFile', file);
+					var token=this.carhelp.getToken()
+						
+						uni.uploadFile({
+								 url: process.car.BASE_URL + "uploadPicture",//仅为示例,非真实的接口地址
+									files: [{
+										name:"photoFile",
+										file:file
+									}],
+									header: {
+									    'Authorization': token,
+										//'Content-Type': 'multipart/form-data',
+										'X-Requested-With': 'XMLHttpRequest',
+									//	'content-type': 'multipart/form-data'
+									},
+									name: 'file',
+									formData: {
+										subFolder:"headimg"
+									},
+									success: (uploadFileRes) => {
+										
+										
+										var obj=JSON.parse(uploadFileRes.data)
+										console.log(obj);
+										 _self.form.headImg = obj.data.fileUrl;
+												
+										// uni.hideLoading();
+									}
+								});
+					
+					 
+					}
+				});
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		background-color: #fff;
+		font-family: 'Regular';
+	}
+	/deep/.u-slot-content {
+		display: block;
+		text-align: right !important;
+		margin-right: 16px;
+		color: rgba(31, 74, 153, 1);
+		font-size: 16px;
+	}
+	.data-icon{
+		height: 56rpx;
+		width: 56rpx;
+		background-color: #4E8DF6;
+		border-radius: 14px;
+		border: 2px solid #fff;
+		text-align: center;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		position: absolute;
+		z-index: 999;
+		right: 0;
+		bottom:0;
+		
+		
+	}
+	.data-img{
+		margin: 40rpx auto 16rpx;
+		height: 160rpx;
+		width: 160rpx;
+		position: relative;
+	}
+	
+	.change{
+		color: rgba(31, 74, 153, 1);
+		text-align: center;
+	}
+	
+	.nickname{
+		margin-top: 40rpx;
+		display: flex;
+		justify-content: space-between;
+		padding: 0 30rpx;
+		height: 88rpx;
+		line-height: 88rpx;
+		border-bottom: 1px solid rgba(244, 244, 244, 1);
+		uni-input{
+			line-height: 88rpx;
+			height: 88rpx;
+		     text-align: right;
+			 color: #888888;
+			 font-family: Microsoft Yahei;
+		}
+	}
+</style>

+ 170 - 0
pages/mine/feedback.vue

@@ -0,0 +1,170 @@
+<template>
+	<view>
+		<u-navbar title="意见反馈"></u-navbar>
+		<view class="main">
+			<textarea name="" id="" 
+			v-model="subForm.opinion" maxlength="200"
+			cols="30" rows="10" placeholder="填写反馈内容(必填)"></textarea>
+		
+			<u-upload   ref="uUpload" 
+			name="photoFile"
+			  :max-size="50 * 1024 * 1024"
+			:form-data="formData" :header="header" :action="action"
+			:file-list="fileList" upload-text=""></u-upload>
+
+			<input type="text" 
+			 v-model="subForm.phone"
+			placeholder="请留下联系方式,方便我们与您取得联系" />
+		</view>
+
+		<button  @click="submit">提交</button>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/user.js'
+	import * as WxJsApi from '@/apis/utils/wxJsApi'
+	
+	export default {
+		data() {
+			return {
+				action:"",
+				formData:{},
+				fileList:[],
+				header:{
+					
+				},
+				subForm: {
+					opinion: '',
+					photoUrl: '',
+					phone: ''
+				}
+			}
+		},onLoad() {
+			this.action=process.car.BASE_URL+"uploadPicture"
+			
+			this.formData.subFolder="feedback"
+			//接口应该免登陆
+			var token=this.carhelp.getToken()
+			
+			this.header={
+		
+				'Authorization':token
+			}
+			// //获取微信配置
+			// WxJsApi.getWxConfig(['getLocation','addEventListener']).then((res)=>{
+			
+			// 	this.isReady=true;
+			// 	//(res)
+			 
+			// }).catch(error => {
+			// 		//(res)
+			// })
+		},
+		methods: {
+			//表单检测
+			checkFrom() {
+				if (!this.subForm.opinion) {
+				
+					uni.showToast({
+						title: "请输入内容"
+					})
+					return false;
+				} else {
+					return true;
+				}
+			},
+			
+			//提交
+			submit() {
+				let files = [];
+								// 通过filter,筛选出上传进度为100的文件(因为某些上传失败的文件,进度值不为100,这个是可选的操作)
+								files = this.$refs.uUpload.lists
+								// 如果您不需要进行太多的处理,直接如下即可
+								// files = this.$refs.uUpload.lists;
+				
+				console.log(files);
+					
+				var photoUrl=files.map(item=>{
+					return item.response.data.fileUrl;
+				})
+				console.log(photoUrl);
+				this.subForm.photoUrl = photoUrl.join(',');
+				
+			
+				if (this.checkFrom()) {
+					//this.subForm.picUrl = this.listPic.join(',');
+					uni.showLoading({
+						title: "加载中",
+						mask: true,
+					})
+					
+					API.addFeedback(this.subForm).then(response => {
+						
+						uni.hideLoading()
+						uni.showModal({
+							title: '提示',
+							content: '提交成功',
+							showCancel:false,
+							success: res=>{
+								if (res.confirm) {
+									uni.navigateBack({
+										
+									})
+								} else if (res.cancel) {
+									//('用户点击取消');
+								}
+							}
+						});
+						
+			
+					}).catch(error => {
+					
+						uni.showToast({
+							title: error
+						})
+					})
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+		background-color: #fff;
+	}
+
+	.main {
+		padding: 32rpx;
+
+		/deep/.u-add-tips {
+			margin-top: 0;
+		}
+
+		// /deep/.u-icon__icon {
+		// 	font-size: 90rpx !important;
+		// 	color: #b0b0b0 !important;
+		// }
+		.u-upload{
+			margin-top: 32rpx;
+		}
+
+		uni-input {
+			margin-top: 32rpx;
+			height: 80rpx;
+			border-bottom: 1px solid #b5b5b5;
+			color: #b5b5b5;
+			font-size: 14px
+		}
+
+	}
+	uni-button {
+		margin:80rpx 32rpx;
+		border-radius: 8px;
+		background-color: rgba(31, 74, 153, 1);
+		color: rgba(255, 255, 255, 1);
+		font-size: 16px;
+		height: 88rpx;
+	}
+</style>

+ 368 - 0
pages/mine/issue.vue

@@ -0,0 +1,368 @@
+<template>
+	<view>
+		<u-navbar title="发布内容" back-icon-name="close" ref="refNavbar" >
+			<view class="slot-wrap"
+			 :class="{
+				 'slot-wrap-a':true,
+				 'slot-wrap-b':subForm.synopsis
+			 }"
+			 @click="selectvideo()">		 
+				 	发布		
+			</view>	
+		</u-navbar>
+		
+		<textarea placeholder="记录点滴生活..."
+		v-model="subForm.synopsis" maxlength="200"
+		 name="" id="" cols="30" rows="10"></textarea>
+		<view style="float: right;">字数限制:{{subForm.synopsis?subForm.synopsis.length:0}}/200</view>
+	 
+	  <view class="upload">
+		
+	  	<u-upload-file  ref="uUpload" :action="action"
+		  :max-size="50 * 1024 * 1024"
+		  :file-max-size="50 * 1024 * 1024"
+		   :maxCount="9"
+		  :form-data="formData" :header="header"
+		 :file-list="fileList" ></u-upload-file>
+	  </view>
+	  
+	  <view class="select" v-if="false">
+	  	<view class="join">
+	  		<text class="sign">#</text>
+			<text class="text">参与活动</text>
+	  	</view>
+		<view class="choose" @click="selectshare" >
+				<text >{{itemshare.label?itemshare.label:'选择活动'}}</text>
+				<u-icon name="arrow-right"></u-icon>
+		</view>
+	  </view>
+	  <view style="padding: 10px;">每周只能发布一次 ,每周一重置次数</view>
+	  <view style="padding: 10px;">上传备注:<br/>1.最多上传9张(含图片\视频)
+	  <br/>2.文件大小限制为50M
+	  <br/> 3.图片一行显示3个,视频一行显示1个;
+	  <br/>4.发布后图片排列在视频前面,其余顺序按上传顺序排列</view>
+	  
+	  <view class="bottom"  v-if="false" >
+	  			<button>发布作品</button>
+	  </view>
+	  <u-select v-model="showshare" :default-value=[itemshare.index?itemshare.index:0] @confirm="confirmshare"
+	   value-name="index" label-name="title"
+	   :list="listshare"></u-select>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/activity.js'
+	import * as API_share from '@/apis/pagejs/share.js'
+	
+	export default {
+		data() {
+			return {
+				listshare:[],
+				itemshare:{},
+				showshare:false,
+				action:"",
+				formData:{},
+				fileList:[],
+				header:{
+					
+				},
+				nic:0,
+				listForm:{
+					pageIndex:1,
+					pageSize:50,
+					status:'7d69d622-3785-470e-b36c-d0f155b79dfa',
+					
+				},
+				subForm:{
+					
+				},
+			}
+		},onLoad(op) {
+			this.action=process.car.BASE_URL+"uploadPicture"
+			
+			this.formData.subFolder="mineissue"
+			//接口应该免登陆
+			var token=this.carhelp.getToken()
+			
+			this.header={
+		
+				'Authorization':token
+			}
+			// //获取微信配置
+			// WxJsApi.getWxConfig(['getLocation','addEventListener']).then((res)=>{
+			
+			// 	this.isReady=true;
+			// 	//(res)
+			 
+			// }).catch(error => {
+			// 		//(res)
+			// })
+			if(op.id){
+				this.itemshare.id=op.id;
+				this.itemshare.index=-1;
+			}
+			if(op.nic){
+				this.nic=op.nic;
+			}
+			//this.getShareList()
+		},
+		methods:{
+			confirmshare(es){
+				
+				var e=es[0]
+				this.itemshare=e
+				this.itemshare.index=e.value;
+			},
+			getShareList(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.pageList(this.listForm).then((res) => {
+					
+					uni.hideLoading();
+					this.listshare = res.data.data;
+					
+						for(var i in this.listshare){
+							var item=this.listshare[i]
+							item.index=i;
+							if(this.itemshare.index==-1){
+								
+								if(item.id==this.itemshare.id){
+										this.confirmshare([{value:i,label:item.title}])
+												
+								}
+							}
+						}
+				
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			selectshare(){
+				this.showshare=true;
+			},
+			selectvideo(){
+				if(this.subForm.synopsis){
+					
+				}else{
+					return
+				}
+				
+				
+				if(this.itemshare.label){
+					this.subForm.activityId=this.listshare[this.itemshare.value].id;
+				}
+				
+				var lists2 = this.$refs.uUpload.lists;
+				var lists1 = [];
+				var urls=[]
+				var isPics=[]
+				
+				var bl=true;
+				for(var i in lists2){
+					//console.log(item.progress)
+					//console.log(lists2[i])
+					if(lists2[i].progress!=100){
+						uni.showToast({
+							title:"图片/视频上传中,请稍后"
+						})
+						bl=false
+						break;
+					}
+					if(lists2[i].response){
+						
+					}else{
+						continue;
+					}
+					var p =lists2[i].response.data;
+					var fileName=p.fileName
+					
+					if(fileName.indexOf('.mp4')>=0){
+						p.isPic=false
+					}else{
+						p.isPic=true
+					}
+					lists1.push(p);
+				}
+				if(!bl){
+					return
+				}
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				lists1=lists1.sort(function(item1,item2){
+					
+					if(!item1.isPic&&item2.isPic){
+						return 1
+					}
+					if(item1.isPic&&!item2.isPic){
+						return -1
+					}
+					if(item1.isPic&&item2.isPic){
+						return 0
+					}
+					return 0
+				})
+				
+				for(var i in lists1){
+					
+					var p =lists1[i];
+					var fileName=p.fileName
+					urls.push(p.fileUrl)
+					isPics.push(p.isPic)
+				}
+				this.subForm.urls=urls.join()
+				this.subForm.isPics=isPics.join()
+				
+				console.log(isPics.join())
+				
+				API_share.addShare(this.subForm).then((res) => {
+					
+					uni.hideLoading();
+					this.carhelp.set("addShare",1);
+					if(this.nic){
+						uni.showModal({
+							showCancel:false,
+							 title:"提示",
+							content:"操作成功",
+							
+							cancelText:"确定",
+							success: res1 => {
+							
+								this.$refs.refNavbar.goBack()
+								
+							}})
+					}else{
+						uni.showModal({
+						
+							 title:"提示",
+							content:"操作成功",
+							confirmText:"前往分享空间",
+							cancelText:"返回",
+							success: res1 => {
+								
+								if (res1.confirm) {
+									uni.redirectTo({
+										url:"/pages/staffHome/filesonic"
+									})
+								}else{
+									this.$refs.refNavbar.goBack()
+								}
+								
+								
+								
+							}})
+					}
+					
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.bottom{
+		   padding: 16rpx 32rpx;
+		   background-color: #fff;
+		   position: fixed;
+		   bottom: 0;
+		   left: 0;
+		   right: 0;
+		   uni-button{
+			   border-radius: 8px;
+			   background-color: rgba(31, 74, 153, 1);
+			   color: rgba(255, 255, 255, 1);
+			   font-size: 16px;
+			   line-height: 40px;
+			   
+		   }
+		   
+	}
+	page{
+		background-color: #fff;
+		font-family: 'Regular';
+	}
+	/deep/.u-slot-content {
+		display: block;
+		text-align: right !important;
+		margin-right: 16px;
+		color: #333333;
+	
+	}
+	/deep/.uicon-close{
+		font-size: 32rpx !important;
+		color: #101010 !important;
+	}
+	.slot-wrap-a{
+		
+	}
+	.slot-wrap-b{
+		background-color: #03a9f4 !important;
+	}
+	
+	.slot-wrap{
+		background-color: rgba(204, 204, 204, 1);
+		width: 104rpx;
+		height:56rpx;
+		line-height:56rpx ;
+		border-radius: 8px;
+		
+		color: #fff;
+		text-align: center;
+		position: absolute;
+		top: 50%;
+		right: 32rpx;
+		transform: translateY(-50%);
+	}
+
+uni-textarea{
+	width: 100%;
+	
+	text-indent: 28rpx;
+	padding-top:28rpx;
+	font-family: Microsoft Yahei;
+}
+.upload{
+	padding: 32rpx;
+	/deep/.u-add-tips{
+		// display: none;
+	}
+}
+.select{
+	display: flex;
+	justify-content: space-between;
+	padding: 0 32rpx;
+	height: 56px;
+	line-height: 56px;
+	.join{
+		
+		color: rgba(16, 16, 16, 1);
+		font-size: 16px;
+		.sign{
+			color: #1F4A99;
+			margin-right: 8rpx;
+		}
+		
+	}
+	.choose{
+		text{
+			margin-right: 8rpx;
+		}
+		color: rgba(153, 153, 153, 1);
+	}
+}
+</style>

+ 563 - 0
pages/mine/mine.vue

@@ -0,0 +1,563 @@
+<template>
+	<view>
+		<!-- 个人信息 -->
+		<view class="person-infos" :class="isCard ? '': 'isCard-padd'">
+			<view class="main">
+				<view class="photo">
+					<img v-if="userInfo.headImg" :src="userInfo.headImg" alt="">
+					
+					<u-avatar  v-else  size="120" ></u-avatar>
+				</view>
+				<view class="infos">
+					<view class="name">
+						{{userInfo.name}}
+					</view>
+					<view class="department-position">
+						<view class="department" v-if="userInfo.orgName">
+							<view class="icon">
+								
+								<img src="../../assets/img/department.png" alt="">
+							</view>
+							<view class="text">
+								{{userInfo.orgName}}
+							</view>
+						</view>
+						<view class="position">
+							<text class="icon">
+								<img src="../../assets/img/position.png" alt="">
+							</text>
+							<text class="text">
+								员工
+							</text>
+						</view>
+					</view>
+				</view>
+				<view class="to-homepage"   >
+					<text class="text" @click="gotoUrl('pages/mine/personalPage')"  >个人主页</text><text>
+						<u-icon size="32" name="arrow-right"></u-icon>
+					</text>
+				</view>
+			</view>
+			<view class="grid"  >
+				<view class="item"  @click="gotoUrl('pages/mine/personalPage')" >
+					<view class="amout">
+						{{plusInfo.userShare}}
+					</view>
+					<view class="text">
+						<u>发布</u>
+					</view>
+				</view>
+				<view class="item" @click="gotoUrl('pages/mine/myLike')" >
+					<view class="amout">
+						{{plusInfo.userNewsLike}}
+					</view>
+					<view class="text">
+						<u>点赞</u>
+					</view>
+				</view>
+				<view class="item" @click="gotoUrl('pages/mine/myComment')" >
+					<view class="amout">
+						{{plusInfo.userNewsComment}}
+					</view>
+					<view class="text">
+						  <u>评论</u>
+					</view>
+				</view>
+				<view class="item"  >
+					<!-- // -->
+					<view class="amout" @click="gotoUrl('pages/mine/points/points')" >
+						{{plusInfo.userPoints}}
+					</view>
+					<view class="text">
+						<u>积分</u>
+					</view>
+				</view>
+			</view>
+
+		</view>
+		<!-- 饭票卡片信息 -->
+		<!-- <view class="meal-ticket" v-if="isCard">
+			<view class="head">
+				<view class="balance">
+					饭卡余额(元)
+				</view>
+				<view class="check" @click="gotoUrl('pages/mine/myMealCard')">
+					<text><img src="../../assets/img/riLine-eye-line@1x.png" alt=""></text>查看消费记录
+				</view>
+			</view>
+			<view class="content">
+				<view class="number-time">
+					<view class="number">
+						{{balance}}
+					</view>
+					<view class="time">
+						<text class="icon"><img src="../../assets/img/riLine-information-line@1x.png" alt=""></text>
+						<text>下次清零 2023月6月1日 0点</text>
+					</view>
+				</view>
+				<view class="payment-code" @click="gotoUrl('pages/mine/paymentCode')">
+					<view class="code">
+						<img src="../../assets/img/iconPark-pay-code-one@1x.png" alt="">
+					</view>
+					<view class="text">
+						付款码
+					</view>
+				</view>
+			</view>
+		</view> -->
+		<!-- 功能 -->
+		<view class="function-group group1"   @click="gotoUrl('pages/mine/myWinningRecord')"  >
+			<view class="item">
+				<view class="title">
+					<view class="icon">
+						<img src="../../assets/img/riLine-gift-2-line@2x.png" alt="">
+					</view>
+					<view class="text">
+						我的获奖记录
+					</view>
+				</view>
+				<view class="right">
+					<u-icon name="arrow-right" size="32" color="#cccccc"></u-icon>
+				</view>
+			</view>
+
+			<view class="item" v-if="false" >
+				<view class="title">
+					<view class="icon">
+						<img src="../../assets/img/riLine-coin-line@2x.png" alt="">
+					</view>
+					<view class="text">
+						积分兑换
+					</view>
+				</view>
+				<view class="right">
+					<u-icon name="arrow-right" size="32" color="#cccccc"></u-icon>
+				</view>
+			</view>
+
+		</view>
+
+		<view class="function-group ">
+			<view class="item" @click="gotoUrl('pages/mine/data')">
+				<view class="title">
+					<view class="icon">
+						<img src="../../assets/img/riLine-account-box-line@2x.png" alt="">
+					</view>
+					<view class="text">
+						个人资料
+					</view>
+				</view>
+				<view class="right">
+					<u-icon name="arrow-right" size="32" color="#cccccc"></u-icon>
+				</view>
+			</view>
+
+			<view class="item"  @click="gotoUrl('pages/mine/phone')" >
+				<view class="title">
+					<view class="icon">
+						<img src="../../assets/img/riLine-smartphone-line@2x.png" alt="">
+					</view>
+					<view class="text">
+						绑定手机
+					</view>
+				</view>
+				<view class="right">
+					<text class="value">{{userPhone}}</text>
+					<u-icon name="arrow-right" size="32" color="#cccccc"></u-icon>
+				</view>
+			</view>
+			<view class="item"   @click="gotoUrl('pages/mine/feedback')" >
+				<view class="title">
+					<view class="icon">
+						<img src="../../assets/img/riLine-file-edit-line@2x.png" alt="">
+					</view>
+					<view class="text">
+						意见反馈
+					</view>
+				</view>
+				<view class="right">
+					<u-icon name="arrow-right" size="32" color="#cccccc"></u-icon>
+				</view>
+			</view>
+			<view class="item" v-if="false">
+				<view class="title">
+					<view class="icon">
+						<img src="../../assets/img/riLine-customer-service-2-line@2x.png" alt="">
+					</view>
+					<view class="text">
+						联系我们
+					</view>
+				</view>
+				<view class="right">
+					<text class="value">0716-8888888</text>
+					<u-icon name="arrow-right" size="32" color="#cccccc"></u-icon>
+				</view>
+			</view>
+			<view class="item"  @click="logout" >
+				<view class="title">
+					<view class="icon">
+						<img src="../../assets/img/riLine-logout-box-r-line@2x.png" alt="">
+					</view>
+					<view class="text">
+						退出账号
+					</view>
+				</view>
+				<view class="right">
+					<u-icon name="arrow-right" size="32" color="#cccccc"></u-icon>
+				</view>
+			</view>
+		</view>
+
+		<tabbar current="2"></tabbar>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/user.js'
+	import * as mineAPI from '@/apis/pagejs/mine.js'
+	
+	import tabbar from "../../components/Tabbar.vue"
+	export default {
+		components: {
+			tabbar
+		},
+		data() {
+			return {
+				plusInfo:{},
+				userInfo:{},
+				userPhone:"",
+				balance: 0,
+				isCard: false
+			}
+		},
+		onLoad() {
+			
+			this.init()
+		},
+		onShow(){
+			this.findByOpenId()
+		
+		},
+		methods: {
+			getCardPayAmountList() {
+				// uni.showLoading({
+				// 	title: "加载中",
+				// 	mask: true,
+				// })
+				mineAPI.cardPayAmountList().then((response) => {
+					//uni.hideLoading();
+					this.balance = response.data.balance;
+					this.isCard = true;
+				}).catch(error => {
+					uni.hideLoading();
+					this.isCard = false;
+					// uni.showToast({
+					// 	title: error,
+					// 	icon: "none"
+					// })
+				})
+			},
+			init(){
+				this.plusInfo=this.carhelp.getPersonInfoPlus();
+				this.userInfo=this.carhelp.getPersonInfo();
+				
+				
+				if(this.userInfo&&this.userInfo.phone){
+					var phone = this.userInfo.phone;
+					var phone1 = phone.slice(0,3);
+					var phone2 = phone.slice(-4);
+					this.userPhone = phone1 + '****' + phone2;
+				}
+			},
+			findByOpenId(){
+				API.findByOpenId({
+					noerror:true,
+					openId: this.carhelp.getOpenId(),
+					
+				}).then((response) => {
+					this.carhelp.setToken(response.data.token);
+					this.carhelp.setPersonInfo(response.data.regUser);
+					this.carhelp.setPersonInfoPlus(response.data)
+					this.init();
+					this.getCardPayAmountList();
+				}).catch(error => {
+					uni.hideLoading();
+					
+				})
+			},
+			logoutApi(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				var data = {
+					
+				};
+				 
+				API.logout(data).then((res) => {
+					this.carhelp.logoff();
+				
+					
+					uni.reLaunch({
+						url:"/"
+					})
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error
+					})
+				})
+			},
+			phone(){
+				uni.makePhoneCall({
+				    phoneNumber:this.tel //仅为示例
+				});
+			},
+			logout(){
+						uni.showModal({
+							title: '提示',
+							content: '确认是否退出?',
+							success: res=> {
+								if (res.confirm) {
+								   //付钱  改为组件
+								   this.logoutApi();
+								   
+								} else if (res.cancel) {
+									console.log('用户点击取消');
+								}
+							}
+						});
+					},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		font-family: 'PingFang Regular';
+	}
+	
+	.isCard-padd {
+		padding: 40rpx 32rpx 60rpx 32rpx !important;
+	}
+	
+	// 个人信息
+	.person-infos {
+		background: linear-gradient(45.45deg, rgba(6, 50, 130, 1) -0.45%, rgba(0, 88, 209, 1) 23.41%, rgba(0, 53, 153, 1) 52.12%, rgba(0, 66, 178, 1) 77.4%, rgba(0, 20, 130, 1) 100.65%);
+		color: rgba(255, 255, 255, 1);
+		padding: 40rpx 32rpx 260rpx 32rpx;
+
+		.main {
+			display: flex;
+			align-items: center;
+
+			.photo {
+				img {
+					width: 120rpx;
+					height: 120rpx;
+					border-radius: 50px;
+				}
+
+			}
+
+			.infos {
+				margin-left: 24rpx;
+
+				.name {
+					line-height: 28px;
+					font-size: 20px;
+					font-family: 'Medium';
+				}
+
+				.department-position {
+					display: flex;
+					align-items: center;
+					margin-top: 16rpx;
+
+
+					.icon {
+						margin-right: 8rpx;
+
+						img {
+							width: 28rpx;
+							height: 28rpx;
+							
+						}
+					}
+
+					.department {
+						display: flex;
+						
+						.text{
+							line-height: 16px;
+						}
+
+
+					}
+
+					.position {
+						display: flex;
+						
+						margin-left: 24rpx;
+                .text{
+                	line-height: 16px;
+                }
+
+
+					}
+				}
+			}
+
+			.to-homepage {
+				margin-left: auto;
+
+				.text {
+					font-size: 16px;
+					margin-right: 8rpx;
+
+				}
+			}
+		}
+
+		.grid {
+			width: 100%;
+			display: flex;
+			flex-direction: row;
+			flex-wrap: wrap;
+			align-items: center;
+			margin-top: 24rpx;
+
+			.item {
+				width: 25%;
+				text-align: center;
+
+				.amout {
+					font-size: 48rpx;
+					line-height: 64rpx;
+
+				}
+
+				.text {
+					font-size: 32rpx;
+					line-height: 44rpx;
+				}
+			}
+		}
+
+	}
+
+	// 饭票信息
+	.meal-ticket{
+		border-radius: 8px 8px 0px 0px;
+		background: linear-gradient(87.06deg, rgba(240,225,198,1) 5.57%,rgba(236,193,148,1) 96.45%);
+		margin: -232rpx 32rpx 0;
+		height: 232rpx;
+		padding: 32rpx;
+		.head{
+			display: flex;
+			justify-content: space-between;
+			color: rgba(49, 54, 66, 1);
+			font-weight: bold;
+			.check{
+				text{
+					vertical-align: middle;
+					margin-right: 8rpx;
+				}
+			}
+		}
+		.content{
+			
+			display: flex;
+			justify-content: space-between;
+			align-items:flex-end;
+			.number-time{
+				.number{
+					color: rgba(16, 16, 16, 1);
+					font-size: 72rpx;
+					font-weight: bold;
+				}
+				.time{
+					opacity: 0.7;
+					color: rgba(49, 54, 66, 1);
+					font-size: 24rpx;
+					margin-top: 8rpx;
+					.icon{
+						vertical-align: middle;
+						margin-right: 4rpx;
+					}
+				}
+			}
+			.payment-code{
+				
+				width: 96rpx;
+				height: 96rpx;
+				border-radius: 4px;
+				background-color: #F0CFAD;
+				text-align: center;
+				font-size: 20rpx;
+				color: rgba(49, 54, 66, 1);
+				padding: 8rpx 0;
+				
+				.code{
+					width: 48rpx;
+					height: 48rpx;
+					text-align: center;
+					margin: auto;
+					img{
+						width: 100%;
+						height: 100%;
+						vertical-align: middle;
+					}
+				}
+			}
+		}
+	}
+	
+	
+	// 功能
+	.group1 {
+		// margin-top: -72rpx !important;
+	}
+
+	.function-group {
+		border-radius: 8px 8px 0px 0px;
+		background-color: rgba(255, 255, 255, 1);
+		padding: 0 0 0 24rpx;
+		margin: 0 32rpx;
+		margin-top: 24rpx;
+
+		.item {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			height: 96rpx;
+			border-bottom: 1px solid #E6E6E6;
+
+			.title {
+				display: flex;
+				align-items: center;
+
+				.icon {
+					margin-right: 24rpx;
+
+					img {
+						width: 40rpx;
+						height: 40rpx;
+						vertical-align: middle;
+					}
+				}
+
+				.text {
+					color: rgba(51, 51, 51, 1);
+					font-weight: bold;
+				}
+			}
+
+			.right {
+				margin-right: 16rpx;
+				margin-left: 8rpx;
+				display: flex;
+			}
+		}
+	}
+</style>

+ 160 - 0
pages/mine/myComment.vue

@@ -0,0 +1,160 @@
+<template>
+	<view>
+		<u-navbar title="我的评论"  >	
+		</u-navbar>
+		<view class="main">
+			<template v-for="(item,i) in list">
+			<view class="like-box"   v-if="item"  @click="ckInfo(item.id)" :key="i">
+				<view class="content">
+					<view class="title">
+						{{item.title}}
+					</view>
+					<view class="else">
+						<view class="classify">
+							{{item.typeName}}
+						</view>
+						<view class="date">
+							{{substrDate(item.createTime)}}
+						</view>
+					</view>
+				</view>
+				<view class="picture">
+					<img  v-if="item.pic" :src="item.pic" alt="">
+					<img  v-else src="@/assets/img/default_img.png" alt="">
+					
+				</view>
+					
+			</view>
+			<view class="like-box"  v-else   :key="i">
+				<view class="content">
+					<view class="title">
+						<span style="color: red;">当前新闻已被删除</span>	
+					</view>
+					<view class="else">
+						<view class="classify">
+						
+						</view>
+						<view class="date">
+							
+						</view>
+					</view>
+				</view>
+				<view class="picture">
+					
+					<img   src="@/assets/img/default_img.png" alt="">
+					
+				</view>	
+			</view>
+			</template>
+		</view>
+		<u-divider   v-if="list.length==recordsTotal"
+		 :isnone="list.length==0" nonetext="你还没有参与评论"
+		bg-color="#F2F4F4" border-color="#CFD2D5">已经到底了</u-divider>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/news.js'
+	
+	export default {
+		data() {
+			return {
+				list:[],
+				listForm:{
+					pageIndex:1,
+				
+					pageSize:20,
+				},
+				recordsTotal:0,
+			}
+		},
+		onLoad(op){
+		
+			this.getList()
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {			
+				this.myLoadmore();
+			}
+		},
+		methods: {
+			ckInfo(id){
+				var url="/pages/news/articleDetails?id="+id;
+				uni.navigateTo({
+					url:url
+				})
+			},
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+			getList(){
+				
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.newsCommentspageList(this.listForm).then((res) => {
+					uni.hideLoading();
+					this.list = [
+						...this.list,
+						...res.data.data
+					];
+					this.recordsTotal = res.data.recordsTotal;
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.main{
+		padding: 24rpx 32rpx;
+		.like-box{
+			border-radius: 8px;
+			background-color: rgba(255, 255, 255, 1);
+			display: flex;
+			justify-content: space-between;
+			padding: 24rpx;
+			margin-bottom: 24rpx;
+			.content{
+				width: 390rpx;
+				display: flex;
+			    flex-direction:column;
+				justify-content: space-between;
+				.title{
+					color: rgba(51, 51, 51, 1);
+					font-size: 32rpx;
+					line-height: 46rpx;
+					font-weight: bold;
+					font-family: 'Medium';
+				}
+				.else{
+					display: flex;
+					justify-content: space-between;
+					color: rgba(119, 119, 119, 1);
+					font-size: 24rpx;
+					font-family: 'Regular';
+				}
+			}
+			.picture{
+				 width: 224rpx;
+				 height: 172rpx;
+				 border-radius: 5px;
+				 overflow: hidden;
+				 img{
+					 width: 100%;
+					 height: 100%;
+					 
+				 }
+			}
+		}
+	}
+
+</style>

+ 161 - 0
pages/mine/myLike.vue

@@ -0,0 +1,161 @@
+<template>
+	<view>
+		<u-navbar title="我的点赞"  >	
+		</u-navbar>
+		<view class="main">
+			<template v-for="(item,i) in list">
+				<view class="like-box"  v-if="item"  @click="ckInfo(item.id)" :key="i">
+					<view class="content">
+						<view class="title">
+							{{item.title}}
+						</view>
+						<view class="else">
+							<view class="classify">
+								{{item.typeName}}
+							</view>
+							<view class="date">
+								{{substrDate(item.createTime)}}
+							</view>
+						</view>
+					</view>
+					<view class="picture">
+						<img  v-if="item.pic" :src="item.pic" alt="">
+						<img  v-else src="@/assets/img/default_img.png" alt="">
+						
+					</view>	
+				</view>
+				<view class="like-box"  v-else   :key="i">
+					<view class="content">
+						<view class="title">
+							<span style="color: red;">当前新闻已被删除</span>	
+						</view>
+						<view class="else">
+							<view class="classify">
+							
+							</view>
+							<view class="date">
+								
+							</view>
+						</view>
+					</view>
+					<view class="picture">
+						
+						<img   src="@/assets/img/default_img.png" alt="">
+						
+					</view>	
+				</view>
+			</template>
+			
+			
+		</view>
+		<u-divider   v-if="list.length==recordsTotal"
+		 :isnone="list.length==0" nonetext="你还没有参与点赞"
+		bg-color="#F2F4F4" border-color="#CFD2D5">已经到底了</u-divider>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/news.js'
+	
+	export default {
+		data() {
+			return {
+				list:[],
+				listForm:{
+					pageIndex:1,
+				
+					pageSize:20,
+				},
+				recordsTotal:0,
+			}
+		},
+		onLoad(op){
+		
+			this.getList()
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {			
+				this.myLoadmore();
+			}
+		},
+		methods: {
+			ckInfo(id){
+				var url="/pages/news/articleDetails?id="+id;
+				uni.navigateTo({
+					url:url
+				})
+			},
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+			getList(){
+				
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.newsLikespageList(this.listForm).then((res) => {
+					uni.hideLoading();
+					this.list = [
+						...this.list,
+						...res.data.data
+					];
+					this.recordsTotal = res.data.recordsTotal;
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.main{
+		padding: 24rpx 32rpx;
+		.like-box{
+			border-radius: 8px;
+			background-color: rgba(255, 255, 255, 1);
+			display: flex;
+			justify-content: space-between;
+			padding: 24rpx;
+			margin-bottom: 24rpx;
+			.content{
+				width: 390rpx;
+				display: flex;
+			    flex-direction:column;
+				justify-content: space-between;
+				.title{
+					color: rgba(51, 51, 51, 1);
+					font-size: 32rpx;
+					line-height: 46rpx;
+					font-weight: bold;
+					font-family: 'Medium';
+				}
+				.else{
+					display: flex;
+					justify-content: space-between;
+					color: rgba(119, 119, 119, 1);
+					font-size: 24rpx;
+					font-family: 'Regular';
+				}
+			}
+			.picture{
+				 width: 224rpx;
+				 height: 172rpx;
+				 border-radius: 5px;
+				 overflow: hidden;
+				 img{
+					 width: 100%;
+					 height: 100%;
+					 
+				 }
+			}
+		}
+	}
+
+</style>

+ 231 - 0
pages/mine/myMealCard.vue

@@ -0,0 +1,231 @@
+<template>
+	<view>
+		<u-navbar title="我的饭卡"></u-navbar>
+		<view class="background">
+			<view class="head">
+				<view class="balance">
+					饭卡余额(元)
+				</view>
+				<view class="time">
+					<!-- <text class="icon"><img src="../../assets/img/riLine-information-line@1x.png" alt=""></text>
+					<text>下次清零 2023月6月1日 0点</text> -->
+				</view>
+			</view>
+			<view class="main">
+				<view class="number">
+					{{balance}}
+				</view>
+				<view class="img">
+					<img src="../../assets/img/ze-card@1x.png" alt="">
+				</view>
+			</view>
+
+		</view>
+
+		<view class="content">
+			<view class="tabs">
+				<u-tabs bar-width="100" inactive-color="#bbbbbb" active-color="#101010" :list="list" :is-scroll="false"
+					:current="current" @change="change"></u-tabs>
+			</view>
+			<!-- 消费 -->
+			<view class="consumption" v-if="this.current==0">
+				<view class="total">
+					{{month}}月消费{{payAmountTotal}}元
+				</view>
+				<view class="each" v-for="(item,index) in payAmountList" :key="index">
+					<view class="place-date">
+						<view class="place">
+							{{item.deviceName}}
+						</view>
+						<view class="date">
+							{{item.payTime}}
+						</view>
+					</view>
+					<view class="number">
+						-{{item.payAmount}}
+					</view>
+				</view>
+			</view>
+			<!-- 餐费存入 -->
+			<view class="deposit" v-if="this.current==1">
+				<view class="each" v-for="(item,index) in rechargeRecordList" :key="index">
+					<view class="place-date">
+						<view class="place">
+							{{item.chargeTime.slice(0,4)}}年{{parseInt(item.chargeTime.slice(5,7))}}月餐费存入
+						</view>
+						<view class="date">
+							{{item.chargeTime}}
+						</view>
+					</view>
+					<view class="number">
+						+{{item.rechargeAmount}}
+					</view>
+				</view>
+			</view>
+
+		</view>
+
+		<!-- <u-divider bg-color="#F2F4F4" border-color="#CFD2D5">已经到底了</u-divider> -->
+	</view>
+</template>
+
+<script>
+	import * as mineAPI from '@/apis/pagejs/mine.js'
+	
+	export default {
+		data() {
+			return {
+				list: [{
+					name: '余额消费'
+				}, {
+					name: '餐费存入'
+				}],
+				current: 0,
+				balance: 0,
+				payAmountList: [],
+				payAmountTotal: 0,
+				rechargeRecordList: [],
+				month: ''
+			}
+		},
+		onReady() {
+			var date = new Date();
+			this.month = date.getMonth() + 1;
+			
+			this.getCardPayAmountList();
+		},
+		methods: {
+			getCardPayAmountList() {
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				mineAPI.cardPayAmountList().then((response) => {
+					uni.hideLoading();
+					this.balance = response.data.balance;
+					this.payAmountList = response.data.payAmountList;
+					this.payAmountTotal = response.data.payAmountTotal;
+					this.rechargeRecordList = response.data.rechargeRecordList;
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			change(index) {
+				this.current = index;
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	page {
+		padding-bottom: 100px;
+	}
+
+	.background {
+		background: linear-gradient(-0.06deg, rgba(246, 248, 248, 1) -0.15%, rgba(240, 225, 198, 1) 48.47%, rgba(236, 193, 148, 1) 101.15%);
+		padding: 32rpx;
+		color: #fff;
+		height: 231px;
+
+		.head {
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+
+			.balance {
+				color: rgba(51, 51, 51, 1);
+				font-family: 'Regular';
+			}
+
+			.time {
+				opacity: 0.7;
+				color: rgba(49, 54, 66, 1);
+				font-size: 24rpx;
+				font-family: 'PingFang Regular';
+
+				.icon {
+					vertical-align: middle;
+					margin-right: 4rpx;
+				}
+			}
+		}
+
+		.main {
+
+			display: flex;
+			justify-content: space-between;
+
+			.number {
+				color: rgba(16, 16, 16, 1);
+				font-size: 80rpx;
+				font-weight: bold;
+			}
+
+			.img {
+				margin-top: -20rpx
+			}
+		}
+
+
+
+	}
+
+	.content {
+		margin: -260rpx 32rpx 24rpx;
+		background-color: #fff;
+		border-radius: 8px 8px 0px 0px;
+		overflow: hidden;
+		min-height: 800rpx;
+
+		/deep/.u-tab-bar {
+			background-color: #0076FF !important;
+		}
+
+		// 消费
+		.consumption,
+		.deposit {
+			padding: 0 36rpx;
+
+			.total {
+				line-height: 88rpx;
+				color: rgba(16, 16, 16, 1);
+				font-size: 36rpx;
+				border-top: 1px solid #E6E6E6;
+				font-family: 'Alibaba-PuHuiTi-Regular';
+			}
+
+			.each {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				padding: 28rpx 0;
+				border-top: 1px solid #E6E6E6;
+
+				.place-date {
+					.place {
+						color: #101010;
+						font-size: 32rpx;
+						font-weight: bold;
+						font-family: 'Alibaba-PuHuiTi-Regular';
+					}
+
+					.date {
+						color: rgba(119, 119, 119, 1);
+						margin-top: 16rpx;
+					}
+				}
+
+				.number {
+					color: rgba(31, 74, 153, 1);
+					font-size: 48rpx;
+					font-weight: bold;
+				}
+
+			}
+		}
+	}
+</style>

+ 123 - 0
pages/mine/myWinningRecord.vue

@@ -0,0 +1,123 @@
+<template>
+	<view>
+		<u-navbar title="获奖记录"  >
+		</u-navbar>
+		<view class="main">
+			<view class="winning-box"  v-for="(item,i) in list"  :key="i" >
+				<view class="item">
+					<view class="title">
+						活动:
+					</view>
+					<view class="value">
+						{{item.name}}
+					</view>
+				</view>
+				<view class="item">
+					<view class="title">
+						奖励:
+					</view>
+					<view class="value highlight">
+						{{item.prize}}
+					</view>
+				</view>
+				<view class="else">
+					<view class="state">
+					  {{item.status}}
+					</view>
+					<view class="date">
+						{{item.date}}
+					</view>
+				</view>
+			</view>
+			
+		</view>
+		<u-divider  v-if="list.length==recordsTotal"
+		 :isnone="!list.length" nonetext="获奖记录为空"  bg-color="#F2F4F4" border-color="#CFD2D5">已经到底了</u-divider>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/activity.js'
+	
+	export default {
+		data() {
+			return {
+				list:[],
+				listForm:{
+					pageIndex:1,
+					
+					pageSize:20,
+				},
+				recordsTotal:0,
+			}
+		},
+		onLoad(op){
+		
+			this.getList()
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {			
+				this.myLoadmore();
+			}
+		},
+		methods: {
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+			getList(){
+				
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.myAwards(this.listForm).then((res) => {
+					uni.hideLoading();
+					this.list = [
+						...this.list,
+						...res.data.data
+					];
+					this.recordsTotal = res.data.recordsTotal;
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.main{
+		padding: 24rpx 32rpx;
+		.winning-box{
+			padding: 24rpx;
+			border-radius: 8px;
+			background-color: rgba(255, 255, 255, 1);
+			margin-bottom: 24rpx;
+			.item{
+				display: flex;
+				margin-bottom: 16rpx;
+				color: rgba(51, 51, 51, 1);
+				font-size: 16px;
+				font-weight: bold;
+				font-family: 'Medium';
+				.highlight{
+					color:#018BB9;
+				}
+			}
+			.else{
+				display: flex;
+				color: rgba(119, 119, 119, 1);
+				font-size: 12px;
+				justify-content: space-between;
+				margin-top: 24rpx;
+				font-family: 'Regular';
+			}
+		}
+	}
+
+</style>

+ 374 - 0
pages/mine/paymentCode.vue

@@ -0,0 +1,374 @@
+<template>
+	<view>
+		<u-navbar title="付款码">
+		</u-navbar>
+		<view class="content">
+			<!-- 饭卡信息 -->
+			<view class="head">
+				<view class="person">
+					<view class="photo">
+						<img v-if="userInfo.headImg" :src="userInfo.headImg" alt="">
+						<u-avatar v-else size="48"></u-avatar>
+					</view>
+					<view class="name">
+						{{userInfo.name}}
+					</view>
+				</view>
+				<view class="balance">
+					<view class="title">
+						饭卡余额:
+					</view>
+					<view class="value">
+						{{balance}} 元
+					</view>
+				</view>
+			</view>
+			<!-- 二维码 -->
+			<view class="qr-code ">
+				<view class="img">
+					<div id="qrCodeDiv" ref="qrCodeDiv"></div>
+				</view>
+				<!-- <view class="img">
+					<img src="../../assets/img/qrCode.png" alt="">
+					<view class="qr-logo">
+						<img src="../../assets/img/qrLogo.png" alt="">
+					</view>
+				</view> -->
+				<view class="hint">
+					将二维码对准摄像头,即可付款就餐
+				</view>
+			</view>
+			<!-- 付款中 -->
+			<view class="paying" v-if="isPaying">
+				<view class="loading-img">
+					<img src="../../assets/img/if-spinner@1x.png" alt="">
+				</view>
+				<view class="">
+					付款中...
+				</view>
+			</view>
+			<!-- 我的消费记录 -->
+			<view class="consumption-record" @click="gotoUrl('pages/mine/myMealCard')">
+				<view class="icon">
+					<img src="../../assets/img/riLine-file-list-3-line@1x.png" alt="">
+				</view>
+				<view class="text">
+					我的消费记录
+				</view>
+				<view class="right">
+					<u-icon name="arrow-right" color="#999999"></u-icon>
+				</view>
+			</view>
+		</view>
+
+	</view>
+</template>
+
+<script>
+	import * as mineAPI from '@/apis/pagejs/mine.js'
+	import QRCode from 'qrcodejs2'
+
+	export default {
+		components: {
+			QRCode
+		},
+		data() {
+			return {
+				userInfo: {},
+				balance: '',
+				isPaying: false,
+				card: '',
+				time: ''
+			}
+		},
+		onReady() {
+			this.userInfo=this.carhelp.getPersonInfo();
+			
+			this.getLoadCardData();
+			this.getCardAndTime();
+		},
+		methods: {
+			getCardAndTime() {
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				mineAPI.getCardInfo().then((response) => {
+					uni.hideLoading();
+					this.card = response.data.cardId;
+					
+					var date = new Date();
+					var year = date.getFullYear();
+					var month = date.getMonth() + 1;
+					var day = date.getDate();
+					var hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
+					var minute = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
+					var second = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
+					month >= 1 && month <= 9 ? (month = "0" + month) : "";
+					day >= 0 && day <= 9 ? (day = "0" + day) : "";
+					this.time = year + month + day + hour + minute + second;
+					
+					this.getQrcode();
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			getPayAmount() {
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				mineAPI.payAmount().then((response) => {
+					uni.hideLoading();
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			getLoadCardData() {
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				mineAPI.loadCardData().then((response) => {
+					uni.hideLoading();
+					this.balance = response.data.balance;
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			getQrcode() {
+				this.$nextTick(() => {
+					let div = document.createElement('div');// 创建一个div,用来生成二维码
+					// 生成二维码
+					let qrcode = new QRCode(div, {
+						text: 'card='+this.card+'&time='+this.time, // 你的扫码内容,填网址
+						width: 200, // 二维码宽度 
+						height: 200, // 二维码高度
+						colorDark: "#333333", //二维码颜色
+						colorLight: "#ffffff", //二维码背景色
+						correctLevel: QRCode.CorrectLevel.H, //从上至下生成码密度越来越高 L - M - Q - H
+						// 容错率越高,越复杂
+					})
+					let logo = new Image();
+					logo.crossOrigin = 'Anonymous';
+					logo.src = require("@/assets/img/qrLogo.png") // 填入你本地log图片
+					// 生成log图
+					logo.onload = () => {
+						let container = this.$refs['qrCodeDiv']; 
+						// 获取页面上的div,可以使用document.querySelector()等等方法,不类推了
+						if (container.innerHTML != "") {
+							// 获取页面div , 有则清空已存在的
+							container.innerHTML = ""
+						}
+						let qrImg = qrcode._el.getElementsByTagName('img')[0]; // 获取二维码
+						let canvas = qrcode._el.getElementsByTagName('canvas')[0]; // 获取canvas
+				
+						let ctx = canvas.getContext("2d");
+						ctx.drawImage(logo, 200 * 0.5 - 22, 200 * 0.5 - 22, 56, 56); // 写入log
+						qrImg.src = canvas.toDataURL();
+						container.appendChild(qrcode._el);
+					}
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	// #qrCodeDiv {
+	// 	width: 400rpx;
+	// 	height: 400rpx;
+	// 	position: relative;
+	// 	// margin: 0 144rpx;
+	// 	padding: 0 144rpx 0 144rpx;
+	// }
+	
+	.loading-img{
+		animation: rotation 2s linear infinite;
+	}
+	@keyframes rotation{
+		from {transform: rotate(0deg)}
+		to {transform: rotate(360deg)}
+	}
+	
+	page {
+		background-color: #2A8EFB;
+		font-family: 'PingFang Regular';
+	}
+
+	/deep/.u-navbar {
+		background-color: #2A8EFB !important;
+
+	}
+
+	/deep/.u-title {
+		color: #fff !important;
+		font-weight: bold !important;
+	}
+
+	/deep/.uicon-nav-back {
+		color: #fff !important
+	}
+
+	/deep/.u-border-bottom:after {
+		border-bottom-width: 0px;
+	}
+
+	.content {
+		border-radius: 24rpx;
+		background-color: rgba(255, 255, 255, 1);
+		margin: 48rpx 32rpx;
+
+		// 饭卡信息
+		.head {
+			padding: 32rpx 0;
+			margin: 0 32rpx;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			border-bottom: 1px solid rgba(232, 232, 232, 1);
+
+			.person {
+				display: flex;
+				align-items: center;
+
+				.photo {
+					width: 48rpx;
+					height: 48rpx;
+					border-radius: 100rpx;
+					overflow: hidden;
+
+					img {
+						width: 100%;
+						height: 100%;
+					}
+				}
+
+				.name {
+					color: rgba(51, 51, 51, 1);
+					font-size: 36rpx;
+					margin-left: 16rpx;
+				}
+			}
+
+			.balance {
+				display: flex;
+				align-items: center;
+				color: rgba(16, 16, 16, 1);
+				font-size: 32rpx;
+				font-weight: bold;
+			}
+		}
+
+		// 二维码
+		.qr-code {
+			padding: 80rpx 0;
+
+			.img {
+				// width: 400rpx;
+				// height: 400rpx;
+				// position: relative;
+				// margin: 0 144rpx;
+				padding: 0 144rpx 0 144rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+
+				img {
+					width: 100%;
+					height: 100%;
+				}
+			}
+
+			.qr-logo {
+				width: 112rpx;
+				height: 112rpx;
+				position: absolute;
+				top: 0;
+				left: 0;
+				right: 0;
+				bottom: 0;
+				margin: auto;
+
+				img {
+					width: 100%;
+					height: 100%;
+				}
+			}
+
+			// 付款中
+
+		}
+
+		.hint {
+			margin-top: 16rpx;
+			color: rgba(51, 51, 51, 1);
+			text-align: center;
+		}
+
+		//我的消费记录
+		.consumption-record {
+			display: flex;
+			align-items: center;
+			padding: 32rpx 0;
+			margin: 0 32rpx;
+			border-top: 1px solid rgba(232, 232, 232, 1);
+
+			.icon {
+				width: 40rpx;
+				height: 40rpx;
+
+				img {
+					width: 100%;
+					height: 100%;
+				}
+			}
+
+			.text {
+				color: rgba(51, 51, 51, 1);
+				font-size: 32rpx;
+				margin-left: 8rpx;
+			}
+
+			.right {
+				margin-left: auto;
+			}
+		}
+	}
+
+	// 付款中
+	.paying {
+		width: 160rpx;
+		height: 160rpx;
+		border-radius: 8px;
+		background-color: rgba(0, 0, 0, 1);
+		color: #fff;
+		padding: 22rpx 0;
+		text-align: center;
+		position: absolute;
+		top: 440rpx;
+		left: 0;
+		right: 0;
+
+		margin: auto;
+
+		img {
+			width: 72rpx;
+			height: 72rpx;
+		}
+	}
+
+	// 透明
+	.opacity {
+		opacity: 0.3;
+	}
+</style>

+ 614 - 0
pages/mine/personalPage.vue

@@ -0,0 +1,614 @@
+<template>
+	<view>
+		<u-navbar v-show="false" ref="refNavbar" >
+			
+		</u-navbar>
+		
+		<view class="header">
+			<!-- 导航 -->
+			<view :class="flag?'sticky':'navbar'">
+				<view class="back" style="font-size: 32rpx;" @click="back()">
+					<u-icon name="arrow-left" size="40"></u-icon>返回
+				</view>
+				<view class="title">
+					个人主页
+				</view>
+				<view class="camera" @click="issueMethod()" >
+					<u-icon name="camera-fill" size="48"></u-icon>
+				</view>
+			</view>
+			<!-- 个人信息 -->
+			<view class="person-infos">
+				 <view class="photo">
+				 	
+					<img v-if="userInfo.headImg" :src="userInfo.headImg" alt="">
+					
+					<u-avatar  v-else  size="120" ></u-avatar>
+				 </view>
+				<view class="infos">
+					<view class="name">
+						{{userInfo.name}}
+					</view>
+					<view class="department-position">
+						<view class="department" v-if="userInfo.orgName">
+							<view class="icon">
+								<img src="../../assets/img/department2.png" alt="">
+							</view>
+							<view class="text">
+								{{userInfo.orgName}}
+							</view>
+						</view>
+						<view class="position">
+							<text class="icon">
+								<img src="../../assets/img/position2.png" alt="">
+							</text>
+							<text class="text">
+								员工
+							</text>
+						</view>
+					</view>
+				</view>
+			</view>
+			
+			<view class="grid">
+				<view class="item">
+					<view class="amout">
+						{{plusInfo.userShare}}
+					</view>
+					<view class="text">
+						发布
+					</view>
+				</view>
+				<view class="item">
+					<view class="amout">
+						{{plusInfo.userNewsLike}}
+					</view>
+					<view class="text">
+						点赞
+					</view>
+				</view>
+				<view class="item">
+					<view class="amout">
+						{{plusInfo.userNewsComment}}
+					</view>
+					<view class="text">
+						评论
+					</view>
+				</view>
+				
+			</view>
+		</view>
+		<!-- 分享 -->
+		<view class="share">
+			<view class="item"  v-for="(item,i) in list" :key="i" >
+				<view class="date">
+					<view class="day">
+						{{day(item.createTime)}}
+					</view>
+					<view class="year-month">
+						{{yearmonth(item.createTime)}}
+					</view>
+					<view class="status" style="color: red;" v-if="item.status!=1">
+						[{{item.status==0?'审核中':''}}{{item.status==2?'审核不通过':''}}]
+					</view>
+					
+					<view class="status" style="color: #19be6b;" @click="delShare(item.id)" v-if="item.status!=1">
+						<u>点击删除</u>
+					</view>
+				</view>
+				<view class="tagMain">
+				<view class="content">
+					<view class="title">
+						<textarea placeholder="记录点滴生活..." :auto-height="true"
+						v-model="item.synopsis"  maxlength="200"  readonly
+						 name="" id="" ></textarea>
+					</view>
+					<view class="photos">
+						<template v-for="(pic,i2) in item.listShareFiles"  v-if="pic.url">
+							<img   v-if="pic.isPic" :key="i2"
+							@click="previewImage(item.listShareFiles,i2)"
+							:src="pic.url" alt="">
+							
+							<video v-else :key="i2" :src="pic.url"  :class="{videoplay:playurl==pic.url}"  @play="playurl=pic.url"
+							                    enable-danmu danmu-btn controls></video>
+						</template>
+					</view>
+				</view>
+				<view class="likeMain" v-if="item.status==1" >
+						<view class="like"   >
+							<view class="icon">
+								<u-icon name="thumb-up" size="38"></u-icon>
+							</view>
+							<view class="number">
+								{{item.likesNum}}
+							</view>
+						</view>
+						
+						
+						<view class="like"  style="margin-left: 18rpx;">
+							<view class="icon">
+								<img  style="width: 40rpx; height: 48rpx;"
+								src="../../assets/img/riLine-chat-4-line.svg"></img>
+							</view>
+							<view class="number"> {{item.commentNum}}</view>
+						</view>
+						<view class="like"  style="margin-left: 18rpx;"
+						 @click="gotoUrl('pages/staffHome/filesonicInfo?id='+item.id)" >
+							<view class="icon">
+								<u-icon name="photo" size="38"></u-icon>
+								
+							</view>
+							<view class="number"> 查看</view>
+						</view>
+					</view>
+					
+				
+				<view  class="messageListMain" v-show="item.listShareLikes.length||item.listShareComment.length" >
+					<view  class="mLikeList"   v-show="item.listShareLikes.length">
+						<u-icon name="thumb-up" size="38"></u-icon>
+						<span v-for="(itemlike,ilike) in item.listShareLikes" :key="ilike">
+							{{ilike==0?' ':', '}}{{itemlike.userName}}
+						</span>
+						<span v-show="item.likesNum>item.listShareLikes.length">...</span>
+					</view>
+					<view  class="messageList" v-show="item.listShareComment.length">
+						<view class="messageItem" v-for="(itemcom,ico) in item.listShareComment"  :key="ico" >
+							<span class="mItemTitle">{{itemcom.userName}}:</span>
+							<span class="mItemBody">{{itemcom.content}}</span>
+						</view>
+						<view class="messageItemEnd" v-show="item.commentNum>item.listShareComment.length" >最多显示20条评论</view>
+					</view>
+					
+				</view>
+				</view>
+			</view>
+		</view>
+		<u-divider  :isnone="list.length==0" nonetext="没有找到相关内容" border-color="#CFD2D5">已经到底了</u-divider>
+		
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/user.js'
+	import * as API_share from '@/apis/pagejs/share.js'
+	
+	export default {
+		data() {
+			return {
+				flag: false,
+				scrollTop: "",
+				playurl:"",
+				plusInfo:{},
+				userInfo:{},
+				listForm:{
+					pageIndex:1,
+					pageSize:20,
+					queryStatus:1
+				},
+				list:[],
+				recordsTotal:0,
+			}
+		},
+		onLoad() {
+			this.carhelp.set("addShare",0);
+			this.init()
+			this.getList()
+		},
+		onShow(){
+			this.findByOpenId()
+			if(	this.carhelp.get("addShare")){
+				this.listForm.pageIndex=1;
+				this.getList()
+			}
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {			
+				this.myLoadmore();
+			}
+		},
+		methods: {
+			delShare(id){
+				uni.showModal({
+					title: '提示',
+					content: '是否删除分享?',
+					
+					success: res=>{
+						if (res.confirm) {
+							this.delShareApi(id)
+						} else if (res.cancel) {
+							//('用户点击取消');
+						}
+					}
+				});
+			},
+			delShareApi(id){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API_share.delShare({
+					shareId:id
+				}).then((res) => {
+				
+					uni.showToast({
+						title: "删除成功",
+						icon: "none"
+					})
+					
+					this.listForm.pageIndex=1;
+					this.getList()
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+					this.listForm.pageIndex=1;
+					this.getList()
+				})
+			},
+			day(time){
+				if(time){
+					
+					return time.substring(8,10)
+				}else
+				return''
+			},
+			yearmonth(time){
+				if(time){
+					
+					return time.substring(0,7).replace('-','.')
+				}else
+				return''
+			},
+			issueMethod(id){
+				
+				this.gotoUrl('pages/mine/issue?nic=1')
+			},
+			init(){
+				this.plusInfo=this.carhelp.getPersonInfoPlus();
+				this.userInfo=this.carhelp.getPersonInfo();
+				
+			},
+			findByOpenId(){
+				API.findByOpenId({
+					noerror:true,
+					openId: this.carhelp.getOpenId(),
+					
+				}).then((response) => {
+					this.carhelp.setToken(response.data.token);
+					this.carhelp.setPersonInfo(response.data.regUser);
+					this.carhelp.setPersonInfoPlus(response.data)
+					this.init();
+				}).catch(error => {
+					uni.hideLoading();
+					
+				})
+			},
+			back(){
+				this.$refs.refNavbar.goBack()
+			},
+			onPageScroll(e) {
+				this.scrollTop = e.scrollTop;
+				console.log(this.scrollTop);
+				
+				if (this.scrollTop >=44) {
+					this.flag = true;
+				} else {
+					this.flag = false;
+				}
+			
+			
+			},previewImage(img,j) {
+				let imgs = [];
+				img.forEach(it=>{
+					if(it.isPic){
+						imgs.push(it.url)
+					}
+				})
+				
+				
+				uni.previewImage({
+					indicator:"number",
+					indicatorDots:true,
+					loop:true,
+					urls: imgs,
+					current: j,
+					success:(e)=>{
+						
+					}
+					
+				})
+			},getList(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API_share.pageList(this.listForm).then((res) => {
+					this.carhelp.set("addShare",0);
+					uni.hideLoading();
+					//this.list=response.data.data
+					if(this.listForm.pageIndex==1){
+						this.list = res.data.data;
+					}else{
+						this.list = [
+							...this.list,
+							...res.data.data
+						];
+					}
+					this.recordsTotal = res.data.recordsTotal;
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	
+	
+	.tagMain {
+		// display: flex;
+		// justify-content: space-between;
+		.messageListMain{
+			border-radius: 4px;
+			background-color: rgba(240, 240, 240, 1);
+		
+			color: #224466 ;
+			.mLikeList{
+				padding:16rpx;
+				border-bottom: 1px solid rgba(222, 222, 222, 1);
+			}
+			.messageList{
+				padding:16rpx;
+				.messageItem{
+					// display: flex;
+					// flex-wrap: wrap;
+					.mItemBody{
+						color: #101010;
+		
+					}
+				}
+				.messageItemEnd{
+					text-align: center;
+					    color: #9E9E9E;
+				}
+				
+			}
+		}
+		.likeMain{
+			display: flex;
+			justify-content: flex-end;
+			.like {
+				margin-top: 16rpx;
+				line-height: 24px;
+				display: flex;
+				color:#224466 ;
+				.number {
+					margin-left: 16rpx;
+				}
+			}
+		}
+		.tag {
+			margin-top: 16rpx;
+			line-height: 24px;
+	
+			.symbol {
+				color: rgba(31, 74, 153, 100);
+				font-size: 16px
+			}
+	
+			.text {
+				color: rgba(31, 74, 153, 1);
+				margin-left: 14rpx;
+			}
+		}
+	}
+	
+	
+	uni-textarea{
+		width: 500rpx;
+		text-indent: 28rpx;
+		padding-top:28rpx;
+		font-family: Microsoft Yahei;
+	}
+	page{
+		background-color: #fff;
+		padding-bottom: 50px;
+		font-family: 'Regular';
+	}
+	.header{
+		padding: 0 0 48rpx 0;
+		background: linear-gradient(180deg, rgba(183,208,255,1) 0%,rgba(244,244,246,1) 100%);
+		.navbar{
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			height: 44px;
+			padding: 0 32rpx;
+			.title{
+				font-size: 16px;
+				color: rgba(16, 16, 16, 1);
+			}
+		}
+		.sticky{
+			background-color: #fff;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			height: 44px;
+			padding: 0 32rpx;
+			position: fixed;
+			top: 0;
+			left: 0;
+			right: 0;
+			.title{
+				font-size: 16px;
+				color: rgba(16, 16, 16, 1);
+			}
+			
+		}
+		
+		// 个人信息
+		.person-infos{
+			margin-top: 32rpx;
+			padding: 0 48rpx;
+			display: flex;
+			align-items: center;
+			margin-bottom: 48rpx;
+			.photo {
+				box-shadow: 0px 2px 8px 0px rgba(35, 72, 75, 15);
+				border: 2px solid rgba(255, 255, 255, 1);
+				border-radius: 50px;
+				width: 120rpx;
+				height: 120rpx;
+				overflow: hidden;
+				img {
+				     vertical-align: middle;
+					border-radius: 50px; 
+					width: 120rpx;
+					height: 120rpx;
+				}
+			
+			}
+			
+			.infos {
+				margin-left:32rpx;
+			
+				.name {
+					line-height: 28px;
+					font-size: 20px;
+					font-family: 'Medium';
+				}
+			
+				.department-position {
+					display: flex;
+					margin-top: 16rpx;
+			       color: rgba(119, 119, 119, 1);  
+			
+					.icon {
+						margin-right: 8rpx;
+			
+						img {
+							width: 28rpx;
+							height: 28rpx;
+							
+						}
+					}
+					
+			
+					.department {
+						display: flex;
+						
+			           .text{
+			           	line-height: 16px;
+			           }
+			           
+					}
+			
+					.position {
+						display: flex;
+						
+						margin-left: 24rpx;
+			.text{
+				line-height: 16px;
+			}
+					}
+				}
+			}
+		}
+	
+	.grid {
+		width: 100%;
+		display: flex;
+		flex-direction: row;
+		flex-wrap: wrap;
+		align-items: center;
+		margin-top: 24rpx;
+	  justify-content: space-between;
+		.item {
+			width: 33.3%;
+			text-align: center;
+	
+			.amout {
+				font-size: 48rpx;
+				line-height: 64rpx;
+	
+			}
+	
+			.text {
+				font-size: 32rpx;
+				line-height: 44rpx;
+			}
+		}
+	}
+	}
+    
+	.share{
+		padding: 32rpx;
+		.item{
+			margin-bottom: 48rpx;
+			display: flex;
+			.date{
+				width: 120rpx;
+				.day{
+					color: rgba(51, 51, 51, 1);
+					font-size: 18px;
+					font-weight:bold;
+					line-height: 25px;
+					font-family: 'Medium';
+				}
+				.year-month{
+					color: rgba(51, 51, 51, 1);
+
+				}
+			}
+			.content{
+				margin-left: 52rpx;
+				border-bottom: 1px solid rgba(232, 232, 232, 1);
+				padding-bottom: 32rpx;
+				 .title{
+					 color: rgba(51, 51, 51, 1);
+					 font-size: 16px;
+					 margin-bottom: 16rpx;
+					 line-height: 22px;
+				 }
+				 .photos{
+					 
+					 img{
+						 width: 168rpx;
+						 height: 168rpx;
+						 border-radius: 16rpx;
+						 margin-right: 4rpx;
+					 }
+					 .videoplay{
+					 	height: 400rpx;
+					 }
+					 video {
+					 	width: 100%;
+					 	height: 200rpx;
+					 	border-radius: 16rpx;
+					 	margin-bottom: 16rpx;
+					 	//margin-left: 16rpx;
+					 }
+				 }
+			}
+			
+		}
+		.item:last-of-type{
+			.content{
+				border: none;
+			}
+		}
+	}
+</style>

+ 245 - 0
pages/mine/phone.vue

@@ -0,0 +1,245 @@
+<template>
+	<view >
+		<u-navbar title="修改手机号"></u-navbar>
+		<view class="login-form">
+			<view class="login-form-item">
+				<view class="input">
+					<u-input   type="number"  v-model="form.phone"  placeholder="请输入手机号"/>
+				</view>
+			</view>
+			<view class="login-form-item">
+				<view class="input">
+					<u-input  v-model="form.code"    type="number" placeholder="请输入验证码" placeholder-style="font-size:16px;color:#ccc;"/>
+					<view class="code"  @click="getCode" >{{codeTips}}</view>
+				</view>
+				<u-verification-code :seconds="sendMsgSecond" ref="uCode" @change="codeChange" @end="end" @start="start">
+				</u-verification-code>
+			</view>
+		</view>
+		
+		<u-button class="login-btn" @click="finish" type="success" shape="circle" >确认修改</u-button>
+		
+		
+	</view>
+</template>
+
+<script>
+	
+	import * as API from '@/apis/pagejs/user.js'
+	import {
+		checkPhone
+	} from '@/apis/utils'
+	export default {
+		data() {
+			return {
+				form: {
+					name: '',
+					
+					phone: '',
+					code: '',
+				},
+				codeTips: '',
+				isSendMsgIng: false,
+				sendMsgSecond: 60 * 2,
+			}
+		},
+		methods: {
+			
+			codeChange(text) {
+				this.codeTips = text;
+			},
+			//倒计时
+					
+			end() {
+				this.sendMsgSecond = 2 * 60;
+				this.isSendMsgIng = false;
+			},
+			finish() {
+					
+				if (!this.carhelp.getOpenId()) {
+					// uni.showToast({
+					// 	title: "请使用“微信”访问本系统登录"
+					// })
+					// return
+				}
+				if (!this.form.phone) {
+					uni.showToast({
+						title: "请输入手机号"
+					})
+					return
+				}
+				if (!this.form.code) {
+					uni.showToast({
+						title: "请输入验证码"
+					})
+					return
+				}
+					
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+					
+					
+				API.changePhone({
+					verifyCode: this.form.code,
+					telephone: this.form.phone,
+				
+				}).then((response) => {
+					
+					this.query()
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			start() {
+				if (!this.isSendMsgIng) {
+					
+					
+					uni.showLoading({
+						title: "加载中",
+						mask: true,
+					})
+					API.getVerifyCode(this.form.phone).then((response) => {
+					
+					
+						uni.hideLoading();
+						this.carhelp.set("getvcodetime", new Date().getTime());
+					
+						if (!"") {
+							//倒计时
+							uni.showToast({
+								title: "发送成功"
+							})
+						} else {
+							uni.showToast({
+								title: "您的验证码已经发送[5分钟有效],请勿重复点击"
+							})
+						}
+					}).catch(error => {
+						uni.showToast({
+							title: error,
+							icon: "none"
+						})
+					})
+					
+					
+				}
+			},
+			// 获取验证码
+			getCode() {
+				if (this.$refs.uCode.canGetCode) {
+					
+				} else {
+					
+					uni.showToast({
+						title: '倒计时结束后再发送',
+						icon: "none"
+					})
+					return
+				}
+					
+				var checkPhoneResult = checkPhone(this.form.phone);
+					
+				if (checkPhoneResult !== true) {
+					uni.showToast({
+						title: checkPhoneResult,
+					
+					})
+					return;
+				}
+				this.$refs.uCode.start();
+			},loginset(response){
+				var token = response ? response.data.token : '';
+				this.carhelp.setToken(token);
+				this.carhelp.setPersonInfo(response.data.regUser);
+				this.carhelp.setPersonInfoPlus(response.data)
+				//this.gotoUrl("pages/user/index")
+				uni.redirectTo({
+					url: '/pages/mine/mine'
+				})
+			},
+			query(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.findByOpenId({
+					noerror:true,
+					openId: this.carhelp.getOpenId(),
+					
+				}).then((response) => {
+					this.loginset(response)
+					
+				
+				}).catch(error => {
+					uni.hideLoading();
+					// if (!this.carhelp.getOpenId()) {
+					// 	uni.showToast({
+					// 		title: "请使用“微信”访问本系统登录"
+					// 	})
+					// 	return
+					// }
+					var time = this.carhelp.get("getvcodetime");
+					if (time) {
+						//this.$refs.uCode.start();
+						var nowtime = new Date().getTime()
+						var differ = (nowtime - time) / 1000
+						if (differ < 2 * 60) {
+							this.sendMsgSecond = 2 * 60 - parseInt(differ)
+							this.isSendMsgIng = true;
+							this.$refs.uCode.start();
+						}
+					}
+				})
+			}
+		
+		}
+	}
+</script>
+<style>
+	page{
+		background-color: #fff;
+	}
+</style>
+<style lang="scss" scoped>
+	
+	
+	
+	.login-form{
+		background-color: #fff;
+		padding: 12px 28px;
+		
+	}
+	.login-form-item{
+		
+		.title{
+			margin-bottom: 8px;
+		}
+		.input {
+			padding: 4px 0;
+			border-bottom: 1px solid #cccccc;
+			position: relative;
+			margin-bottom: 16rpx;
+		}
+		.code{
+			position: absolute;
+			right: 0;
+			top:12px;
+			color:#1F4A99;
+		}
+		
+	}
+		
+	.login-btn {
+		margin: 56rpx ;
+		background-color: rgba(31, 74, 153, 1);
+		color: rgba(255, 255, 255, 1);
+		border-radius: 8px;
+	}
+</style>

+ 361 - 0
pages/mine/points/points.vue

@@ -0,0 +1,361 @@
+<template>
+	<view>
+		<u-navbar title="积分">
+			<view class="slot-wrap"  @click="showPointsRule()" >
+				积分规则
+			</view>	
+		</u-navbar>
+		<u-modal v-model="showPointsRuleBl" title="积分规则" >
+			<view class="showPointsRuleClass">
+				<view>登陆微官网 +1分</view>
+				<view>点赞 +1分<span class="viewspan" v-text="'[<图片新闻><政务动态>]'"></span></view>
+				<view>分享 +1分<span class="viewspan">[同上]</span></view>
+				<view>评论 +1分<span class="viewspan">[同上](需要审核通过)</span></view>
+				<view>空间发布 +1分<span class="viewspan">(需要审核通过)</span></view>
+				<view>每天上限为5分</view>
+			</view>
+		</u-modal>
+
+		<view class="background">
+			<view class="points">
+				<view class="number">
+					{{plusInfo.userPoints}}
+				</view>
+				<view class="unit">
+					积分
+				</view>
+			</view>
+			<view class="rank" v-if="this.current==0" @click="gotoUrl('pages/mine/points/rankingList')">
+				<view class="img"><img src="../../../assets/img/riFill-bar-chart-2-fill@1x.png" alt=""></view>
+				<view class="text">积分排名{{top&&top.userSortNo?'第'+top.rank+'名':''}}</view>
+				<view><u-icon name="arrow-right" color="#fff" size="28"></u-icon></view>
+			</view>
+			<view class="rank" v-if="this.current==1">
+				<view class="img"><img src="../../../assets/img/riLine-gift-2-line@1x.png" alt=""></view>
+				<view class="text">积分兑换</view>
+				<view><u-icon name="arrow-right" color="#fff" size="28"></u-icon></view>
+			</view>
+			
+		</view>
+		
+		<view class="record">
+			<view class="tabs" v-if="false">
+				<u-tabs bar-width="100" inactive-color="#bbbbbb" active-color="#101010" :list="tablist" :is-scroll="false" :current="current" @change="change" ></u-tabs>
+			</view>
+			<view class="get" v-if="this.current==0" >
+				<!-- <view class="total">
+					6月获取278
+				</view> -->
+				<view class="each" v-for="(item,i) in list" :key="i">
+					<view class="way-date">
+						<view class="way">
+							{{item.source}}
+						</view>
+						<view class="date">
+							{{item.createTime}}
+						</view>
+					</view>
+					<view class="number">
+						{{item.score?"+"+item.score:item.score}}
+					</view>
+				</view>
+				
+			</view>
+		    <view class="exchange" v-if="this.current==1">
+		    	<view class="item">
+		    		<view class="month">
+		    			6月
+		    		</view>
+					<view class="details" v-for="(item,i) in 2"  :key="i">
+						<view class="picture">
+							<img src="../../../assets/img/riLine-gift-2-line@1x.png" alt="">
+						</view>
+						<view class="infos">
+							<view class="name">
+								兑换礼品名称
+							</view>
+							<view class="price">
+								<text>价格:</text>
+								<text>30积分</text>
+							</view>
+							<view class="date">
+								<text>时间:</text>
+								<text>2022-06-23 14:27:22兑换</text>
+							</view>
+						</view>
+					</view>
+		    	</view>
+				
+				<view class="item">
+					<view class="month">
+						5月
+					</view>
+					<view class="details"  v-for="(item,i) in 2"  :key="i">
+						<view class="picture">
+							<img src="../../../assets/img/riLine-gift-2-line@1x.png" alt="">
+						</view>
+						<view class="infos">
+							<view class="name">
+								兑换礼品名称
+							</view>
+							<view class="price">
+								<text>价格:</text>
+								<text>30积分</text>
+							</view>
+							<view class="date">
+								<text>时间:</text>
+								<text>2022-05-23 14:27:22兑换</text>
+							</view>
+						</view>
+					</view>
+				</view>
+		    </view>
+		
+		</view>
+		<u-divider  :isnone="list.length==0" nonetext="你还没有获取到积分" bg-color="#F2F4F4" border-color="#CFD2D5">已经到底了</u-divider>
+	</view>
+</template>
+
+
+<script>
+	import * as API from '@/apis/pagejs/user.js'
+	
+	export default {
+		data() {
+			return {
+				plusInfo:{},
+				userInfo:{},
+				tablist: [{
+					name: '积分获取'
+				}, {
+					name: '积分兑换'
+				}],
+				listForm:{
+					pageIndex:1,
+					pageSize:20,
+				},
+				recordsTotal:0,
+				list:[],
+				current: 0,
+				top:null,
+				showPointsRuleBl:false,
+			}
+		},
+		onLoad() {
+			this.plusInfo=this.carhelp.getPersonInfoPlus();
+			this.userInfo=this.carhelp.getPersonInfo();
+				this.getList()
+				this.pointsNotes()
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {			
+				this.myLoadmore();
+			}
+		},
+		methods: {
+			showPointsRule(){
+				this.showPointsRuleBl=true;
+			},
+			pointsNotes(){
+				var year=new Date().getFullYear()
+				API.myPointsSort({
+					year:year,
+				
+				}).then((res) => {
+						
+					
+						if(res.data.myPoint){
+							this.top=res.data.myPoint
+							this.top.rank=parseInt(res.data.myPoint.userSortNo)
+						}
+						
+					uni.hideLoading();
+					
+				}).catch(error => {
+					
+				})
+			},
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+			change(index) {
+				this.current = index;
+			},
+			getList(){
+				
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.myPointsNotes(this.listForm).then((res) => {
+					uni.hideLoading();
+					this.list = [
+						...this.list,
+						...res.data.data
+					];
+					this.recordsTotal = res.data.recordsTotal;
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.viewspan{
+		font-size: 24rpx;
+	}
+	.showPointsRuleClass{
+		padding: 0 20px
+	}
+	/deep/.u-slot-content {
+		display: block;
+		text-align: right !important;
+		margin-right: 16px;
+		color: rgba(31, 74, 153, 1);
+		font-size: 16px;
+	}
+	.background{
+		background: linear-gradient(180deg, rgba(18,114,238,1) 0%,rgba(244,244,246,1) 100%);
+		padding: 32rpx;
+		color: #fff;
+		display: flex;
+		justify-content: space-between;
+		align-items: baseline;
+		height: 231px;
+		.points{
+			display: flex;
+			align-items: baseline;
+			.number{
+				font-size: 36px;
+				font-family: 'Medium';
+			}
+			.unit{
+				font-size: 16px;
+				margin-left: 16rpx;
+				font-family: 'Regular';
+			}
+		}
+		.rank{
+			display: flex;
+			align-items: center;
+			font-size: 32rpx;
+			
+			.img{
+				width: 32rpx;
+				height: 32rpx;
+				img{
+					width: 100%;
+					height: 100%;
+				}
+			}
+			.text{
+				margin-left: 8rpx;
+				margin-right: 4rpx;
+				font-family: 'Regular';
+			}
+		}
+	}
+
+     .record{
+		 margin: -320rpx 32rpx 24rpx;
+		 background-color: #fff;
+		 border-radius: 8px 8px 0px 0px;
+		 min-height: 800rpx;
+		.tabs{
+			padding: 0 160rpx;
+			height: 40px;
+			border-bottom: 1px solid #E6E6E6;
+			/deep/.u-tab-bar{
+						 background-color: #0076FF !important ;
+			}
+		}
+		.get{
+			
+			.total{
+				height: 44px;
+				line-height: 44px;
+				color: rgba(51, 51, 51, 1);
+				font-size: 16px;
+				border-bottom: 1px solid #E6E6E6;
+				text-indent:32rpx;
+			}
+			.each{
+				font-family: 'Regular';
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				padding: 28rpx 0;
+				margin: 0 32rpx;
+				border-bottom: 1px solid #E6E6E6;
+				.way-date{
+					.way{
+						color: rgba(51, 51, 51, 1);
+						font-size: 16px;
+					}
+					.date{
+						color: rgba(119, 119, 119, 1);
+						margin-top: 16rpx;
+					}
+				}
+				.number{
+					color: rgba(31, 74, 153, 1);
+					font-size: 24px;
+				}
+				
+			}
+		}
+	 
+	    .exchange{
+			padding:0 32rpx 32rpx;
+			.item{
+				
+				.month{
+					height: 88rpx;
+					line-height: 88rpx;
+					color: #101010;
+				}
+				.details{
+					display: flex;
+					border-radius: 4px;
+					background-color: rgba(242, 242, 242, 1);
+					padding: 16rpx ;
+					margin-bottom: 16rpx;
+					.picture{
+						width: 128rpx;
+						height:128rpx;
+						border-radius: 4px;
+						background-color: rgba(255, 70, 41, 1);
+						display: flex;
+						align-items: center;
+						justify-content: center;
+						img{
+							width: 88rpx;
+							height: 88rpx;
+						}
+					}
+					.infos{
+						margin-left: 16rpx;
+						.name{
+							color: rgba(16, 16, 16, 1);
+							font-size: 32rpx;
+						}
+						.price,.date{
+							color: rgba(102, 102, 102, 1);
+							line-height: 28rpx;
+							margin-top: 14rpx;
+							font-size: 28rpx
+						}
+					}
+				}
+			}
+		}
+	
+	 }
+</style>

+ 147 - 0
pages/mine/points/pointsExchange/orderDetails.vue

@@ -0,0 +1,147 @@
+<template>
+	<view>
+		<u-navbar title="兑换详情">
+				
+		</u-navbar>
+		<!-- 奖品 -->
+		<view class="prize">
+			<view class="picture">
+				<img src="../../../../assets/img/orderPic.png" alt="">
+			</view>
+			<view class="infos">
+				 <view class="title">
+				 	官方十年留影打印纸-3卷/盒哈哈哈哈哈
+				 </view>
+				 <view class="else">
+				 	<view class="points">
+				 		1500 积分
+				 	</view>
+					<view class="amount">
+						×1
+					</view>
+				 </view>
+			</view>
+			
+		</view>
+		<!-- 详情 -->
+		<view class="details">
+			<view class="item">
+				<view class="title">
+					积分抵扣
+				</view>
+				<view class="value">
+					减1500积分
+				</view>
+			</view>
+			<view class="item">
+				<view class="title">
+					订单编号
+				</view>
+				<view class="value">
+					
+					20230107125058015470
+				</view>
+			</view>
+			<view class="item">
+				<view class="title">
+					创建时间
+				</view>
+				<view class="value">
+					2023-01-07 12:50:58
+					
+				</view>
+			</view>
+			<view class="item">
+				<view class="title">
+					发放时间
+				</view>
+				<view class="value">
+					2023-02-12 16:12:33
+				</view>
+			</view>
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		font-family: 'Regular';
+	}
+	// 奖品
+	.prize{
+		margin: 24rpx 32rpx;
+		background-color: #fff;
+		border-radius: 8px;
+		padding: 24rpx;
+		display: flex;
+		.picture{
+			width: 200rpx;
+			height: 200rpx;
+			border-radius: 4px;
+			overflow: hidden;
+			img{
+				width: 100%;
+				height: 100%;
+			}
+		}
+		.infos{
+			margin-left: 24rpx;
+			display: flex;
+			flex-direction: column;
+			justify-content: space-between;
+			.title{
+				color: rgba(16, 16, 16, 1);
+				font-size: 32rpx;
+				line-height: 44rpx;
+				font-weight: bold;
+			}
+			.else{
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				.points{
+					color: rgba(255, 61, 0, 1);
+					font-size: 18px;
+					font-weight: bold;
+				}
+				.amount{
+					color: rgba(148, 148, 148, 1);
+					font-size: 18px;
+				}
+			}
+		}
+	}
+
+// 详情
+.details{
+	margin: 0 32rpx;
+	background-color: #fff;
+	border-radius: 8px;
+	padding: 24rpx ;
+	.item{
+		display: flex;
+		justify-content: space-between;
+		color: #333333;
+		
+		line-height: 70rpx;
+		.value{
+			font-weight: bold;
+			font-family: 'Medium';
+		}
+	}
+}
+</style>

+ 292 - 0
pages/mine/points/pointsExchange/pointsExchange.vue

@@ -0,0 +1,292 @@
+<template>
+	<view>
+		<u-navbar title="积分兑换">
+			<view class="slot-wrap" v-if="false">
+				兑换规则
+			</view>	
+		</u-navbar>
+		<view class="header">
+			<!-- 积分 -->
+					<view class="points">
+						<view class="picture">
+							<img src="../../../../assets/img/riFill-vip-diamond-fill Copy@1x.png" alt="">
+						</view>
+						<view class="number">
+							{{plusInfo.userPoints}}
+						</view>
+						<view class="button"   @click="gotoUrl('pages/mine/points/points')">
+							兑换记录
+						</view>
+					</view>
+			<!-- 提示 -->
+			<view class="hint" v-if="false">
+				 <view class="img"><img src="../../../../assets/img/md-notifications@1x.png" alt=""></view>
+					 <view class="text">
+					 	积分将于1月1日0时自动清零,记得使用哦~
+					 </view>
+			</view>
+			<!-- 标签 -->
+			<view class="tabs">
+				<u-tabs font-size="28" height="64 " :list="tablist" :is-scroll="false" :current="current" @change="change"></u-tabs>
+			</view>
+		</view>
+		<!-- 奖品 -->
+		<view class="prize">
+			<view class="item"  v-for="(item,i) in list" :key="i" @click="ckItem(item)" >
+				<view class="picture">
+					<img :src="item.photoUrl" alt="">
+				</view>
+				<view class="name">
+					{{item.name}}
+				</view>
+				<view class="infos">
+					<view class="points">
+						{{item.needPoint}}积分
+					</view>
+					<view class="remain">
+						剩余{{item.quantity}}
+					</view>
+				</view>
+				
+			</view>
+			
+			
+		</view>
+		<u-divider  :isnone="list.length==0" nonetext="敬请期待" bg-color="#B5D0F4" border-color="#A1B2D1">已经到底了</u-divider>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/goods.js'
+	
+	export default {
+		data() {
+			return {
+				tablist: [{
+					name: '全部'
+				}, {
+					name: '1万及以上',
+					start:10000,
+						end:'',
+					
+				}, {
+					name: '5千-1万',
+					start:5000,
+					end:10000,
+					
+				}, {
+					name: '1千-5千',
+					start:1000,
+					end:5000,
+					
+				}, {
+					name: '1千以下',
+					start:'',
+					end:1000,
+				}],
+				current: 0,
+				plusInfo:{},
+				list:[],
+				listForm:{
+					pageIndex:1,
+					typeId:"",
+					title:"",
+					pageSize:20,
+				},
+				recordsTotal:0,
+			}
+		},
+		onLoad(){
+			//this.userInfo
+			this.plusInfo=this.carhelp.getPersonInfoPlus()
+			this.getList();
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {			
+				this.myLoadmore();
+			}
+		},
+		methods: {
+			ckItem(item){
+				if(item.badgeId){
+					var url="/pages/staffHome/teamHonor/badgeDetails?type="+item.badgeId+"&id="+item.type;
+					uni.navigateTo({
+						url:url
+					})
+				}
+			},
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+			change(index) {
+				
+				this.current = index;
+				this.listForm.queryPointStart='';
+				this.listForm.queryPointEnd='';
+				if(index){
+					
+					this.listForm.queryPointStart=this.tablist[index].end;
+					this.listForm.queryPointEnd=this.tablist[index].start;
+				}
+				
+				this.listForm.pageIndex=1;
+				
+				this.getList();
+			},
+			getList(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.goodsList(this.listForm).then((res) => {
+					uni.hideLoading();
+									if(this.listForm.pageIndex==1){
+										this.list = res.data.data;
+									}else{
+										this.list = [
+											...this.list,
+											...res.data.data
+										];
+									}
+					
+					this.recordsTotal = res.data.recordsTotal;
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			}
+			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+     background-color: #B5D0F4;
+	 padding-bottom: 100px;
+	}
+	/deep/.u-slot-content {
+		display: block;
+		text-align: right !important;
+		margin-right: 16px;
+		color: rgba(31, 74, 153, 1);
+		font-size: 16px;
+	}
+	.header{
+				background: linear-gradient(180deg, rgba(18,114,238,1) 0%,rgba(181,208,244,1) 100%);
+	// 积分
+		.points{
+			padding: 48rpx 32rpx;
+			display: flex;
+			align-items: center;
+			.picture{
+				width: 80rpx;
+				height: 80rpx;
+				background-color: rgba(255, 175, 18, 1);
+				border: 3px solid rgba(252, 236, 107, 1);
+				border-radius: 20px;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+			}
+			.number{
+				color: rgba(255, 255, 255, 1);
+				font-size: 36px;
+				margin-left: 24rpx;
+				font-weight: bold;
+				font-family: 'Medium';
+			}
+			.button{
+				font-family: 'Regular';
+				width: 144rpx;
+				height: 56rpx;
+				line-height: 56rpx;
+				border-radius: 50px;
+				background-color: rgba(255, 255, 255, 0.3);
+				color: rgba(255, 255, 255, 1);
+				text-align: center;
+				margin-left: auto;
+			}
+		}
+	
+	// 提示
+	.hint{
+		font-family: 'Regular';
+		  border-radius: 8px;
+		  background-color: #018BB9;
+		  color: #fff;
+		  height: 72rpx;
+		   font-size: 14rpx;
+		  margin: 40rpx 48rpx 24rpx;
+		  display: flex;
+		  align-items: center;
+		  .img{
+			  
+			  margin-left: 8rpx;
+		  }
+		  img{
+			  vertical-align: middle;
+		  }
+	}
+	
+	// 标签
+   .tabs{
+	    margin: 0 32rpx;
+		height: 96rpx;
+		line-height:96rpx;
+		background-color: #fff;
+		border-radius: 8px;
+		overflow: hidden;
+   }	
+	}
+  
+// 奖品
+.prize{
+	margin-top: 32rpx;
+	padding: 0 32rpx;
+	display: flex;
+	flex-wrap: wrap;
+	justify-content: space-between;
+	.item{
+		background-color: #fff;
+		border-radius: 8px;
+		width: 336rpx;
+		padding-bottom: 22rpx;
+		margin-bottom: 24rpx;
+		.picture{
+			height: 336rpx;
+			img{
+				width: 100%;
+				height: 100%;
+			}
+		}
+		.name{
+			font-family: 'Medium';
+			margin-top: 24rpx;
+			color: #101010;
+			font-weight: bold;
+			padding-left: 16rpx;
+		}
+		.infos{
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			padding: 0 16rpx;
+			margin-top: 16rpx;
+			.points{
+				color: rgba(255, 61, 0, 1);
+				font-size: 32rpx;
+				font-family: 'SemiBold';
+			}
+			.remain{
+				color: rgba(148, 148, 148, 1);
+				font-family: 'Regular';
+			}
+		}
+	}
+}
+</style>

+ 243 - 0
pages/mine/points/pointsExchange/prizeDetails.vue

@@ -0,0 +1,243 @@
+<template>
+	<view>
+		<u-navbar title="奖品详情">
+				
+		</u-navbar>
+		<!-- 奖品图 -->
+		<view class="prize-img">
+			<img src="../../../../assets/img/plane.png" alt="">
+		</view>
+		<!-- 奖品信息 -->
+		<view class="prize-infos">
+			<view class="name">
+				单人春节往返海南机票*2
+			</view>
+			<view class="explain">
+				奖品说明文字内容
+			</view>
+			<view class="points">
+				<view class="number">
+					1500 积分
+				</view>
+				<view class="hint">
+					*兑换后积分不退还
+				</view>
+			</view>
+			
+		</view>
+		<!-- 兑换说明 -->
+		<view class="exchange-explain">
+			<view class="title">
+				兑换说明
+			</view>
+			<view class="item">
+				<view class="name">
+					使用
+				</view>
+				<view class="value">
+					<p>1、使用有效期:自绑定当日起第7天24点前可用,逾期未使用,自动作废;</p>
+					<p>2、每个职工账户一年度限兑换1次;</p>
+					<p>3、兑换记录可在“我的-积分-积分兑换”中查看</p>
+				</view>
+			</view>
+			<view class="item">
+				<view class="name">
+					说明
+				</view>
+				<view class="value">
+					<p>1.对机票的使用等有任何疑问可以拨打综合办公室电话:0716-4108989/4108979。</p>
+					
+				</view>
+			</view>
+		</view>
+		
+		<!-- 底部 -->
+		<view class="bottom">
+			<view class="points">
+				<view class="need">
+					<text>1500</text>
+					<text class="unit">积分</text>
+				</view>
+				<view class="have">
+					<text>当前积分</text>
+					<text class="num">20</text>
+				</view>
+			</view>
+			<!-- 立即兑换 -->
+			<view class="button">
+				立即兑换
+			</view>
+			<!-- 积分不足 -->
+			<!-- <view class="button button2">
+				积分不足
+			</view> -->
+			<!-- 待开抢 -->
+			<!-- <view class="button button3">
+				<p class="p1">待开抢</p>
+				<p  class="p2">01月07日10:00开抢</p>
+			</view> -->
+			<!-- 已兑完 -->
+			<!-- <view class="button button4">
+			   已兑完
+			</view> -->
+			
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		font-family: 'Regular';
+	}
+	// 奖品图片
+	.prize-img{
+		width: 100%;
+		height:424rpx;
+		img{
+			width: 100%;
+			height: 100%;
+		}
+	}
+	
+ // 奖品信息
+ .prize-infos{
+	 padding: 32rpx;
+	 background-color: #fff;
+	 
+	 .name{
+		 color: rgba(51, 51, 51, 1);
+		 font-size: 40rpx;
+		 font-weight: bold;
+		 font-family: 'SemiBold';
+	 }
+	 .explain{
+		 color: rgba(119, 119, 119, 1);
+        margin-top: 8rpx;
+		
+	 }
+	 .points{
+		 margin-top: 40rpx;
+		 display: flex;
+		 justify-content: space-between;
+		 align-items: center;
+		 color: rgba(255, 61, 0, 1);
+		 font-weight:bold;
+		 .number{
+			 font-size: 40rpx;
+			 
+		 }
+		 
+	 }
+ }
+
+// 兑换说明
+.exchange-explain{
+	background-color: #fff;
+	margin-top: 24rpx;
+	padding:24rpx 32rpx;
+	.title{
+		color: rgba(51, 51, 51, 1);
+		font-size: 18px;
+		margin-bottom: 48rpx;
+		font-family: 'Medium';
+	}
+	.item{
+		display: flex;
+		line-height: 40rpx;
+		margin-bottom: 40rpx;
+		.name{
+			width: 56rpx;
+			color: #777777;
+		}
+		.value{
+			flex: 1;
+			margin-left: 40rpx;
+			color: #333333;
+			p{
+				margin-bottom: 16rpx;
+			}
+		}
+	}
+	
+}
+
+// 底部
+.bottom{
+	position: fixed;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	background-color: #fff;
+	padding: 36rpx 32rpx;
+	display: flex;
+	justify-content: space-between;
+	.points{
+		.need{
+			font-family: 'Medium';
+			color: rgba(255, 61, 0, 1);
+			font-size: 16px;
+			.unit{
+				margin-left: 8rpx;
+			}
+		}
+		.have{
+			color: rgba(119, 119, 119, 1);
+			.num{
+				margin-left: 8rpx;
+			}
+		}
+	}
+	.button{
+		font-family: 'Medium';
+		width:280rpx;
+		
+		height: 80rpx;
+		line-height: 80rpx;
+		border-radius: 50px;
+		background-color: rgba(255, 61, 0, 1);
+		color: #fff;
+		font-size: 32rpx;
+		text-align: center;
+	}
+	.button2,.button3,.button4{
+		background-color: rgba(226, 226, 226, 1);
+        color: #777777;
+		font-weight: bold;
+		
+	}
+	.button3{
+		
+		
+		.p1{
+			font-size: 28rpx;
+			line-height: 40rpx;
+			margin-top: 4rpx;
+		}
+		.p2{
+			font-size: 24rpx;
+			line-height: 34rpx;
+		}
+	}
+	@media screen and(max-width:320px) {
+		.button3{
+			width: auto;
+			padding:0 32rpx;
+		}
+	}
+}
+
+</style>

+ 268 - 0
pages/mine/points/rankingList.vue

@@ -0,0 +1,268 @@
+<template>
+	<view>
+		<u-navbar title="积分排行榜">	
+		</u-navbar>
+		<view class="background">
+			积分排行榜
+			<view style="font-size: 12px;">当前积分排名为昨日数据,凌晨1点更新</view>
+		</view>
+		
+		<view class="self" v-if="plusInfo" >
+			<view class="rank" v-if="top">
+				 
+				<img v-if="top.rank==1" src="../../../assets/img/Gold Medal@1x.png" alt="">
+				<img v-else-if="top.rank==2" src="../../../assets/img/Silver Medal Copy@1x.png" alt="">
+				<img v-else-if="top.rank==3" src="../../../assets/img/Bronze Medal Copy@1x.png" alt="">
+				<span v-else>{{top.rank}}</span>
+			</view>
+			<view class="photo">
+				<img v-if="userInfo.headImg" :src="userInfo.headImg" alt="">
+				<u-avatar  v-else  size="80" ></u-avatar>
+			</view>
+			<view class="name">
+				{{userInfo.name}}
+			</view>
+			<view class="points">
+				{{top?top.userScore:plusInfo.userPoints}}积分
+			</view>
+		</view>
+		
+		<view class="else" v-if="list.length" >
+			<view class="item" v-for="(item,i) in  list"  :key="i" >
+				<view class="rank">
+					<img v-if="i==0" src="../../../assets/img/Gold Medal@1x.png" alt="">
+					<img v-else-if="i==1" src="../../../assets/img/Silver Medal Copy@1x.png" alt="">
+					<img v-else-if="i==2" src="../../../assets/img/Bronze Medal Copy@1x.png" alt="">
+					<span v-else>{{i+1}}</span>
+					
+				</view>
+				<view class="photo">
+					<img v-if="item.userImg" :src="item.userImg" alt="">
+					<u-avatar  v-else  size="80" ></u-avatar>
+					
+				</view>
+				<view class="name">
+					{{item.userName}}
+				</view>
+				<view class="points " :class="{
+					points1:i==0,
+					points2:i==1,
+					points3:i==2
+				}">
+					{{item.userScore}}积分
+				</view>
+			</view>
+			
+		</view>
+		<u-divider   :isnone="!list.length" nonetext="统计中,敬请期待"  bg-color="#F2F4F4" border-color="#CFD2D5">只显示前{{recordsTotal}}条</u-divider>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/user.js'
+	export default {
+		data() {
+			return {
+				list:[],
+				listForm:{
+					pageIndex:1,
+					typeId:"",
+					title:"",
+					pageSize:20,
+				},
+				recordsTotal:0,
+				top:null,
+				userInfo:{},
+				plusInfo:{}
+			}
+		},
+		onLoad() {
+			this.listForm.year=new Date().getFullYear()
+			this.getList();
+			this.userInfo=this.carhelp.getPersonInfo()
+			this.plusInfo=this.carhelp.getPersonInfoPlus()
+			
+			if(this.userInfo){
+				this.myPointsSort();
+			}
+			
+		},
+		onReachBottom() {
+			// if (this.list.length < this.recordsTotal) {			
+			// 	this.myLoadmore();
+			// }
+		},
+		methods: {
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+			myPointsSort(){
+				
+				
+				API.myPointsSort(this.listForm).then((res) => {
+						
+						
+ 						if(res.data.myPoint){
+							this.top=res.data.myPoint
+							if(res.data.myPoint.userSortNo){
+								this.top.rank=parseInt(res.data.myPoint.userSortNo)
+								
+							}
+						}
+						
+				
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			getList(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.pointsNotes(this.listForm).then((res) => {
+						
+						this.list = [
+							...this.list,
+							...res.data.pointsList.data
+						];
+						this.recordsTotal = res.data.pointsList.pageSize;
+						
+ 					// 	if(res.data.myPoint){
+						// 	this.top=res.data.myPoint
+						// 	if(res.data.myPoint.userSortNo){
+						// 		this.top.rank=parseInt(res.data.myPoint.userSortNo)
+								
+						// 	}
+						// }
+						
+					uni.hideLoading();
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.background{
+		height: 224rpx;
+		color: rgba(255, 255, 255, 1);
+		font-size: 48rpx;
+		padding: 44rpx 32rpx;
+		
+		background:url("../../../assets/img/Group Copy@1x.png" ),url("../../../assets/img/Group@1x.png"),
+		linear-gradient(180deg, rgba(255,150,0,1) 0%,rgba(255,61,0,1) 100%) ;
+		background-repeat: no-repeat,no-repeat;
+		background-position: 85% 50%,105% 40%;
+		font-family: 'SemiBold';
+	}
+	.self{
+		background-color: #fff;
+		 margin: 0 32rpx 24rpx;
+		 margin-top: -80rpx;
+		 height: 64px;
+		 z-index: 999;
+		 overflow: hidden;
+		 position: relative;
+		 border-radius: 8px;
+		 padding: 36rpx 42rpx;
+		 display: flex;
+		 align-items: center;
+		 .rank{
+			 color: rgba(31, 74, 153, 1);
+			 font-size: 16px;
+		 }
+		 .photo{
+			 width: 80rpx;
+			 height: 80rpx;
+			 border-radius: 8px;
+			 overflow: hidden;
+			 margin-left: 24rpx;
+			 img{
+				 width: 100%;
+				 height: 100%;
+			 }
+		 }
+		 .name{
+			 color: rgba(51, 51, 51, 1);
+			 font-size: 16px;
+			 margin-left: 24rpx;
+			 width: 100px;
+			 font-family: 'Medium';
+		 }
+		 .points{
+			 color: rgba(31, 74, 153, 1);
+			 font-size: 16px;
+            margin-left: auto;
+			
+			font-family: 'Regular';
+		 }
+	}
+   .else{
+	   background: #fff;
+	   border-radius: 8px;
+	   padding: 24rpx 48rpx;
+	   margin: 20rpx 32rpx 24rpx;
+	   .item{
+		   display: flex;
+		   align-items: center;
+		   height: 128rpx;
+	   }
+	   .rank{
+	   			 color: rgba(31, 74, 153, 1);
+	   			 font-size: 16px;
+				 width: 48rpx;
+				 height: 48rpx;
+				 img{
+					 width: 100%;
+					 height: 100%;
+				 }
+	   }
+	   .photo{
+	   			 width: 80rpx;
+	   			 height: 80rpx;
+	   			 border-radius: 8px;
+	   			 overflow: hidden;
+	   			 margin-left: 24rpx;
+	   			 img{
+	   				 width: 100%;
+	   				 height: 100%;
+	   			 }
+	   }
+	   .name{
+	   			 color: rgba(51, 51, 51, 1);
+	   			 font-size: 16px;
+	   			 margin-left: 24rpx;
+				  width: 100px;
+				 font-family: 'Medium';
+	   }
+	   .points{
+	   			 color: rgba(31, 74, 153, 1);
+	   			 font-size: 16px;
+	           margin-left: auto;
+			   font-family: 'Regular';
+			   
+	   }
+	   .points1{
+		   color: rgba(226, 14, 22, 1);
+	   }
+	   .points2{
+		   color: rgba(255, 94, 0, 1);
+	   }
+	   .points3{
+		   color: rgba(255, 150, 0, 1);
+	   }
+   }
+</style>

+ 59 - 0
pages/mine/result.vue

@@ -0,0 +1,59 @@
+<template>
+	<view>
+		<u-navbar title="修改手机号"></u-navbar>
+				
+				 <view class="bgc">
+				 	<img src="../../assets/img/result.png" alt="">
+					
+				 </view>
+				 <view class="success">
+				 	修改成功
+				 </view>
+				 <view class="hint">
+				 	您的密码已经修改生效
+				 </view>
+		  <button >立即登录</button>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.bgc{
+		display: flex;
+		justify-content: center;
+		padding-top: 100rpx;
+		
+	}
+	.success{
+		color: rgba(16, 16, 16, 1);
+		font-size: 20px;
+		text-align: center;
+		font-family: 'Regular';
+	}
+	.hint{
+		color: rgba(119, 119, 119, 1);
+		font-family: 'Regular';
+		text-align: center;
+		margin-top: 8rpx;
+	}
+   uni-button{
+	   margin: 80rpx 70rpx;
+	   height: 44px;
+	   border-radius: 8px;
+	   background-color: rgba(31, 74, 153, 1);
+	   color: rgba(255, 255, 255, 1);
+	   font-size: 16px;
+   }
+</style>

+ 565 - 0
pages/news/articleDetails.vue

@@ -0,0 +1,565 @@
+<template>
+	<view>
+		
+		<u-navbar :isBack="back" ></u-navbar>
+		 
+		  <share-server ref="share"  ></share-server>
+	<!-- 新闻内容 -->
+	    <view class="content">
+	    	<view class="title">
+	    		{{info.title}}
+	    	</view>
+			<view class="infos">
+				<view class="date">
+					{{info.createTime}}
+				</view>
+				<view class="pageview"  >
+					<view class="icon">
+						<u-icon name="eye" size="32"></u-icon>
+					</view>
+					<view class="number">
+						{{info.hits}}
+					</view>
+				</view>
+			</view>
+	    <view class="text news-content" v-html="info.content">
+	    	
+	    
+	    </view>
+		
+	
+		
+		</view>
+		<!-- 评论 -->
+		<template v-if="typeNameBl">
+			
+		
+		<view class="comment" v-if="info.title&&infolistComment&&infolistComment.length"   >
+			<view class="title">
+				精华评论
+			</view>
+			
+		<view class="comment-item"  v-for="(item,i) in infolistComment" :key="i" >
+			<view class="photo">
+				<img  v-if="item.headImg" :src="item.headImg" alt="">
+				<u-avatar  v-else  size="80" ></u-avatar>
+				
+			</view>
+			<view class="details">
+				<view class="name-date">
+					<view class="name" :class="{
+						red:!item.userName
+					}" >
+						{{item.userName?item.userName:'用户异常'}}
+					</view>
+					<view class="date">
+						{{item.date}}
+					</view>
+				</view>
+				<view class="comment-content">
+					{{item.content}}
+					<view class="mine" v-if="userInfo&&(item.userId==userInfo.id)">
+						<view class="my-comment">
+							我的评论<span style="color:red;margin-left: 2px;"  v-if="item.status==0">[审批中]</span>
+						</view>
+						 
+						<view class="delete" @click="newsCommentsdelete(item.id)">
+							删除	
+						</view>
+					</view>
+				</view>
+			   
+			</view>
+		</view>
+			<u-divider  style="margin-top: 20px;"   v-if="infolistComment.length==recordsTotal" >已经到底了,欢迎留下你的评论</u-divider>
+		
+		</view>
+		
+		<view class="bottom"  v-if="userInfo" >
+			<view class="input" @click="showMessage=true">
+				<view class="inputT">发表评论</view>
+			</view>
+			<view class="like" :class="{
+				red:info.iLike
+			}" @click="changeLikes()">
+				<view class="icon">
+					<u-icon name="thumb-up"   size="32"></u-icon>
+				</view>
+				<view class="number">
+					{{info.likesNum}}
+				</view>
+			</view>
+		</view>
+		<view class="bottom"  v-else >
+			<view class="input" @click="issueMethod()">
+				<view class="inputT">未登录,前往登录</view>
+			</view>
+			<view class="like" :class="{
+				red:info.iLike
+			}" >
+				<view class="icon">
+					<u-icon name="thumb-up"   size="32"></u-icon>
+				</view>
+				<view class="number">
+					{{info.likesNum}}
+				</view>
+			</view>
+		</view>
+		</template>
+		<u-popup v-model="showMessage" border-radius="34" mode="bottom" >
+			<view class="showMessage">
+				<view class="showMessage1"><h3>发表评论({{content.length}}/50)</h3></view>
+				<view class="showMessage2">
+					<textarea name="" id=""   style="  width:100%"
+					v-model="content" maxlength="50"
+					cols="30" rows="5" placeholder="填写内容"></textarea>
+				</view>
+				<view class="showMessage3">
+					<u-button type="primary" @click="submitMessage()">提交</u-button>
+				</view>
+			</view>
+					
+			</u-popup>
+		
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/news.js'
+	import ShareServer from '@/components/ShareServer.vue'
+	
+	export default {
+		components: {
+		  ShareServer
+		},
+		data() {
+			return {
+				id:"",
+				content:"",
+				info:{},
+				showMessage:false,
+				userInfo:null,
+				list:[],
+				infolistComment:[],
+				listForm:{
+					pageIndex:1,
+					newsId:"",
+					queryStatus:0,
+					pageSize:10,
+				},
+				 back:true,
+				recordsTotal:0,
+				getNewsCommentsListBl:true,
+			}
+		},
+		onLoad(op){
+			if(op.back&&op.back=="share"){
+				this.back=false
+			}
+			this.id=op.id
+			this.listForm.newsId=this.id;
+			this.userInfo=this.carhelp.getPersonInfo()
+			this.getInfo(true)
+			
+		},
+		computed:{
+			typeNameBl(){
+				if(this.info&&(this.info.typeName=='图片新闻'||this.info.typeName=='政务动态')){
+					return true
+				}else{
+					return false
+				}
+			}
+		},
+		methods: {
+			onReachBottom() {
+				if (this.infolistComment.length < this.recordsTotal&&this.getNewsCommentsListBl) {			
+					this.myLoadmore();
+				}
+			},
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getNewsCommentsList();
+			},
+			issueMethod(){
+				uni.showModal({
+					title:"提示",
+					content:"未登录,登录后参与评论",
+					confirmText:"前往登录",
+					showCancel:true,
+					success: function (res) {
+						if(res.confirm){
+							uni.navigateTo({
+								url:'/pages/login/index'
+							})
+						}
+					}
+				})
+				
+			},
+			newsCommentsdelete(id){
+				uni.showModal({
+					title: '提示',
+					content: '是否删除评论?',
+					
+					success: res=>{
+						if (res.confirm) {
+							this.newsCommentsdeletemethods(id)
+						} else if (res.cancel) {
+							//('用户点击取消');
+						}
+					}
+				});
+			},
+			newsCommentsdeletemethods(id){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.newsCommentsdelete(id).then((res) => {
+				
+					uni.showToast({
+						title: "删除成功",
+						icon: "none"
+					})
+					
+					//this.getInfo();
+					this.getNewsCommentsList(true)
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			submitMessage(){
+				if(!this.content){
+					uni.showToast({
+						title: "请填写内容",
+						icon: "none"
+					})
+					return
+				}
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.commentNews({
+					newsId:this.id,
+					content:this.content,
+				}).then((res) => {
+					this.content=""
+					uni.showToast({
+						title: "提交成功",
+						icon: "none"
+					})
+					this.showMessage=false
+					//this.getInfo();
+					
+					this.getNewsCommentsList(true)
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			changeLikes(){
+				if(!this.info.iLike){
+					uni.showLoading({
+						title: "加载中",
+						mask: true,
+					})
+					
+					
+					API.changeLikes({
+						newsId:this.id
+					}).then((res) => {
+						this.info.iLike=true;
+						this.info.likesNum++;
+						uni.hideLoading();
+						//this.getInfo(true)
+					}).catch(error => {
+						uni.showToast({
+							title: error,
+							icon: "none"
+						})
+					})
+				}else{
+					uni.showToast({
+						title: "您已经点过赞了",
+						icon: "none"
+					})
+				}
+				
+			},
+			getNewsCommentsList(bl){
+				if(this.typeNameBl){
+					
+				}else{
+					return
+				}
+				if(bl){
+					this.listForm.pageIndex=1;
+					this.infolistComment=[];
+					this.getNewsCommentsListBl=false
+				}
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				if(this.userInfo){
+					this.listForm.queryStatus =1
+				}
+				API.newsCommentsList(this.listForm).then((res) => {
+					uni.hideLoading();
+					this.infolistComment = [
+						...this.infolistComment,
+						...res.data.data
+					];
+					this.recordsTotal = res.data.recordsTotal;
+					this.$nextTick(()=>{
+						this.getNewsCommentsListBl=true
+					})
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+				
+			},
+			getInfo(bl){
+				if(bl){
+					uni.showLoading({
+						title: "加载中",
+						mask: true,
+					})
+				}
+				
+				var userId=null
+				if(this.userInfo){
+					userId=this.userInfo.id
+				}
+				
+				API.detail({
+					id:this.id,
+					userId:userId
+				}).then((res) => {
+					
+					
+					if(bl){
+						uni.hideLoading();
+					}
+					this.info=res.data;
+					if(this.$refs.share){
+						this.$refs.share.setUrl("/pages/news/articleDetails?back=share&id="+this.id);
+						
+						this.$refs.share.setTitle(this.info.title,this.id);
+						
+					}
+					
+					this.$nextTick(()=>{
+					    var list =document.getElementsByClassName("news-content")[0].getElementsByTagName("img");
+						
+						for(var i=0;i<list.length;i++){
+					        list[i].style='width: 100%;height: 100%;'
+							
+					    }
+							 
+					})
+					this.getNewsCommentsList();
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			}
+		}
+	}
+</script>
+
+<style>
+	
+</style>
+<style lang="scss" scoped>
+	.showPointsRuleClass{
+		    padding: 10px 30px;
+	}
+	
+	page{
+		border-top: 1px solid #f1f1f1;
+		
+		padding-bottom:100px;
+		font-family: 'Regular';
+	}
+	
+	// 新闻内容
+	.content{
+		
+		padding: 32rpx 32rpx 48rpx 32rpx;
+		background-color: #fff;
+		.title{
+			color: rgba(16, 16, 16, 1);
+			font-size: 20px;
+			text-align: justify;
+		     font-weight: 550;
+			 font-family: 'SemiBold';
+		}
+		.infos{
+			display: flex;
+			justify-content: space-between;
+			padding: 24rpx 0 32rpx 0;
+			border-bottom: 1px solid rgba(241, 241, 241, 1);
+			color: rgba(119, 119, 119, 1);
+			font-size: 12px;
+			.pageview{
+				display: flex;
+			}
+			.icon{
+				margin-right:8rpx ;
+			}
+		}
+		.text{
+			margin-top: 40rpx;
+			line-height: 28px;
+			color: rgba(51, 51, 51, 1);
+		}
+		.picture{
+			
+			margin-top: 40rpx;
+			img{
+				width: 100%;
+				height: 155px;
+			}
+			.pic-title{
+				margin-top: 7px;
+				color: rgba(119, 119, 119, 1);
+				font-size: 12px;
+				text-align: center;
+			}
+		}
+	}
+	.showMessage{
+		padding: 60rpx 50rpx ;
+		.showMessage2{
+			background-color: #E5E7EA;
+			margin: 40rpx 0;
+			textarea{
+				padding: 8rpx;
+				border-radius:34px;
+			}
+		}
+		
+	}
+	// 评论
+	.comment{
+		margin-top:24rpx;
+		background-color: #fff;
+		padding: 32rpx 32rpx 48rpx 32rpx;
+		.title{
+			color: rgba(51, 51, 51, 1);
+			font-size: 18px;
+		}
+		.comment-item:last-of-type{
+			.comment-content{
+				border: none;
+			}
+		}
+		.comment-item{
+			display: flex;
+			padding-top: 58rpx;
+			.photo{
+				margin-top: -12px;
+				img{
+					width: 80rpx;
+					height: 80rpx;
+					border-radius: 50px;
+				}
+			}
+			.details{
+				margin-left: 24rpx;
+				width: 100%;
+				.name-date{
+					display: flex;
+					justify-content: space-between;
+					.name{
+						color: rgba(51, 51, 51, 1);
+						font-size: 16px;
+					}
+					.date{
+						color: rgba(119, 119, 119, 1);
+						font-size: 12px;
+					}
+				}
+				
+			}
+			.comment-content{
+				margin-top: 16rpx;
+				color: rgba(51, 51, 51, 1);
+				line-height: 20px;
+				border-bottom: 1px solid rgba(232, 232, 232, 1);
+				padding-bottom: 40rpx;
+				.mine{
+					margin-top: 16rpx;
+					display: flex;
+					justify-content: space-between;
+						line-height: 20px;
+					.my-comment{
+						
+						color: rgba(119, 119, 119, 1);
+						font-size: 12px;
+						border: 1px solid rgba(153, 153, 153, 1);
+						padding: 0rpx 12rpx;
+						border-radius: 4px;
+					}
+					.delete{
+						color: rgba(119, 119, 119, 1);
+						font-size: 12px;
+					}
+				}
+			}
+			
+			
+		}
+	}
+    .red{
+    	color: red !important;
+    }
+	.bottom{
+		position: fixed;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		background-color: #fff;
+		padding: 16rpx 32rpx;
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		.input{
+			background-color: rgba(229, 231, 234, 1);
+			height: 32px;
+			line-height: 32px;
+			border-radius: 8rpx;
+			width: 520rpx;
+			padding-left: 16rpx;
+		}
+		/deep/.uni-input-placeholder{
+			text-indent: 28rpx;
+		}
+		/deep/.uni-input-input{
+			text-indent: 28rpx;
+		}
+		
+		.like{
+			display: flex;
+			.number{
+				margin-left: 16rpx;
+			}
+		}
+	}
+  
+</style>

+ 266 - 0
pages/news/list.vue

@@ -0,0 +1,266 @@
+<template>
+	<view>
+		<u-navbar title="">
+			
+		</u-navbar>
+		
+		<view class="news">
+			<table  class="table" v-if="recordsTotalList" >
+				<tr>
+					<td class="tb31">荣誉类型</td>
+					<td class="tb32">荣誉细则<span class="tb33"><br>(点击下方内容可查看详情)</span></td>
+				</tr>
+				<template v-for="(not,j) in noticeList">
+					<template v-if="not.list.length">
+						<tr v-for="(item,i) in not.list" :class="{trtop:i==0}" @click="ckInfo(item.id)" :key="i+'_'+j">
+							<td v-if="i==0" class="tb1" :rowspan="not.list.length" v-html="htmlShow(not.name)" ></td> <td  class="tb2">{{item.title}}</td>
+						</tr>
+						
+					</template>
+				</template>
+				
+			</table>
+			
+		   </view>
+		<u-divider  v-if="recordsTotal==noticeList.length"
+		 :isnone="recordsTotalList==0" nonetext="没有找到相关内容" 
+		border-color="#CFD2D5">已经到底了</u-divider>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/news.js'
+	
+	export default {
+		data() {
+			return {
+				title:"列表",
+				list:[],
+				list2:[],
+				listForm:{
+					pageIndex:1,
+					typeId:"",
+					title:"",
+					pageSize:999,
+				},
+				noticeList:[
+					{
+						id:"7288376a-b582-4e9a-98fa-c218e35b5c30",
+						name:"个人荣誉",
+						list:[]
+					},
+					{
+						
+						id:"86e29bf7-9e8f-4a28-9361-1001705d3dc6",
+						name:"集体荣誉",
+						list:[]
+					}	
+				],
+				noticeList2:[
+					{
+						id:"9dbeddd2-a863-42d0-a145-260fe008bdbb",
+						name:"个人荣誉",
+						list:[]
+					},
+					{
+						id:"412eff92-a443-42f7-98c6-5c67d9e64ad8",
+						name:"集体荣誉",
+						list:[]
+					}	
+				],
+				recordsTotal:0,
+				recordsTotalList:0,
+				imgurl:'',
+				listBl:false,
+				listBl2:false,
+			}
+		},
+		onLoad(op){
+		},
+		
+		 
+		onReady() {
+			uni.showLoading({
+				title: "加载中",
+				mask: true,
+			})
+			//86e29bf7-9e8f-4a28-9361-1001705d3dc6
+				//7288376a-b582-4e9a-98fa-c218e35b5c30
+			var _this=this;
+			// this.getList("86e29bf7-9e8f-4a28-9361-1001705d3dc6","")
+			// this.getList("7288376a-b582-4e9a-98fa-c218e35b5c30","2")
+				this.getList2()
+				
+			// this.getList(this.list,"9dbeddd2-a863-42d0-a145-260fe008bdbb",this.listBl)
+			// this.getList(this.list2,"412eff92-a443-42f7-98c6-5c67d9e64ad8",this.listBl2)
+			
+		},
+		methods: {
+			htmlShow(str){
+				var t="";
+				for(var i in str){
+					t+=str[i]+"<br/>"
+				}
+				return  t
+			},
+			ckInfo(id){
+				var url="/pages/news/articleDetails?id="+id;
+				uni.navigateTo({
+					url:url
+				})
+			},
+			getList2Set(i){
+				var item=this.noticeList[i];
+				API.pageList({
+					
+						pageIndex:1,
+						typeId:item.id,
+					
+						pageSize:999,
+					
+				}).then((res) => {
+					//bl=true
+					item=this.noticeList[i];
+					item.list=res.data.data
+					this.recordsTotalList+=item.list.length
+					this.recordsTotal++;
+					
+					if(this.recordsTotal==this.noticeList.length){
+						uni.hideLoading()
+					}
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+				
+			},
+			getList2(){
+				for(var i in this.noticeList){
+					this.getList2Set(i)
+				}
+				
+			},
+			getList(id,cb){
+				
+				API.pageList({
+					
+						pageIndex:1,
+						typeId:id,
+					
+						pageSize:999,
+					
+				}).then((res) => {
+					//bl=true
+					this['list'+cb]=res.data.data
+					this['listBl'+cb]=true
+					if(this.listBl2&&this.listBl2){
+						uni.hideLoading()
+					}
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.table{
+		border-collapse:collapse;
+		width: 100%;
+		border: 1px solid;
+		.trtop{
+			    border-top: 2px solid;
+		}
+		td{
+			border: 1px solid;
+			text-align: center;
+			margin: 0;
+			padding: 10px 0px;
+			
+		}
+		.tb1{
+			font-weight: bold;
+			font-size: 18px;
+			width: 20%;
+			max-width: 200rpx;
+			min-width: 150rpx;
+		}
+		.tb2{
+			
+			font-size: 14px;
+		}
+		.tb32,.tb31{
+			font-weight: bold;
+			font-size: 14px;
+		}
+		.tb33{
+			font-weight: normal;
+			font-size: 12px;
+			color: #565656;
+		}
+	}
+	page{
+		background-color: #ffffff;
+		font-family: 'Regular';
+	}
+	/deep/.u-slot-content {
+		display: block;
+		text-align: right !important;
+		margin-right: 16px;
+		color: #333333;
+	}
+.news{
+	padding: 40rpx 32rpx;
+
+  .news-item{
+	  display: flex;
+	  justify-content: space-between;
+	  margin-bottom: 40rpx;
+	  	max-height:100px;
+	  .content{
+		  display: flex;
+		  flex-direction: column;
+		  justify-content: space-between;
+		  .news-title{
+			  color: rgba(51, 51, 51, 1);
+			  font-size: 16px;
+			  text-align: justify;
+			  width: 438rpx;
+			  // white-space: nowrap;
+			  overflow: hidden;
+			  text-overflow: ellipsis;
+			  font-weight: bold;
+		  }
+		  
+		  .information{
+			  margin-top: 8rpx;
+			  display: flex;
+			  justify-content: space-between;
+			  color: #777777;
+		  }
+	  }
+  }
+.img{
+	width: 224rpx;
+	border-radius: 5px;
+	overflow: hidden;
+	img{
+		border-radius: 5px;
+        width: 100%;
+		height: 100%;
+	}
+}
+}
+/deep/.u-divider{
+	background-color: #ffffff !important;
+	color: rgba(182, 189, 195, 1);
+	font-size: 12px;
+	font-weight: bold;
+}
+</style>

+ 169 - 0
pages/news/news.vue

@@ -0,0 +1,169 @@
+<template>
+	<view>
+		<u-navbar :title="title">
+			<view class="slot-wrap">
+				<u-icon name="search" 
+				@click="gotoUrl('pages/search/searchResult?type='+listForm.typeId)"
+				size="48" color="#777777"></u-icon>
+			</view>	
+		</u-navbar>
+		
+		<view class="news">
+			
+			<view class="news-item" v-for="(item,i) in list" @click="ckInfo(item.id)" :key="i">
+				<view class="content">
+					<view class="news-title">
+						{{item.title}}
+					</view>
+					<view class="information">
+						<view class="classify">
+							{{item.typeName}}
+						</view>
+						<view class="date">
+							{{substrDate(item.createTime)}}
+						</view>
+						
+					</view>
+				</view>
+				
+				<view class="img">
+					<img  v-if="item.pic" :src="imgurl+item.pic" alt="">
+					<img  v-else src="@/assets/img/default_img.png" alt="">
+					
+				</view>
+				
+			</view>
+		   </view>
+		<u-divider  v-if="list.length==recordsTotal"
+		 :isnone="list.length==0" nonetext="没有找到相关内容" 
+		border-color="#CFD2D5">已经到底了</u-divider>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/news.js'
+	
+	export default {
+		data() {
+			return {
+				title:"列表",
+				list:[],
+				listForm:{
+					pageIndex:1,
+					typeId:"",
+					title:"",
+					pageSize:20,
+				},
+				recordsTotal:0,
+				imgurl:'',
+				
+			}
+		},
+		onLoad(op){
+			if(op.title){
+				this.title=op.title
+			}
+			this.listForm.typeId=op.id
+			this.getList()
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {			
+				this.myLoadmore();
+			}
+		},
+		methods: {
+			ckInfo(id){
+				var url="/pages/news/articleDetails?id="+id;
+				uni.navigateTo({
+					url:url
+				})
+			},
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+			getList(){
+				
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.pageList(this.listForm).then((res) => {
+					uni.hideLoading();
+					this.list = [
+						...this.list,
+						...res.data.data
+					];
+					this.recordsTotal = res.data.recordsTotal;
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		background-color: #ffffff;
+		font-family: 'Regular';
+	}
+	/deep/.u-slot-content {
+		display: block;
+		text-align: right !important;
+		margin-right: 16px;
+		color: #333333;
+	}
+.news{
+	padding: 40rpx 32rpx;
+
+  .news-item{
+	  display: flex;
+	  justify-content: space-between;
+	  margin-bottom: 40rpx;
+	  	max-height:100px;
+	  .content{
+		  display: flex;
+		  flex-direction: column;
+		  justify-content: space-between;
+		  .news-title{
+			  color: rgba(51, 51, 51, 1);
+			  font-size: 16px;
+			  text-align: justify;
+			  width: 438rpx;
+			  // white-space: nowrap;
+			  overflow: hidden;
+			  text-overflow: ellipsis;
+			  font-weight: bold;
+		  }
+		  
+		  .information{
+			  margin-top: 8rpx;
+			  display: flex;
+			  justify-content: space-between;
+			  color: #777777;
+		  }
+	  }
+  }
+.img{
+	width: 224rpx;
+	border-radius: 5px;
+	overflow: hidden;
+	img{
+		border-radius: 5px;
+        width: 100%;
+		height: 100%;
+	}
+}
+}
+/deep/.u-divider{
+	background-color: #ffffff !important;
+	color: rgba(182, 189, 195, 1);
+	font-size: 12px;
+	font-weight: bold;
+}
+</style>

+ 149 - 0
pages/scanToPay/payResult.vue

@@ -0,0 +1,149 @@
+<template>
+	<view>
+		<u-navbar title="付款结果"></u-navbar>
+		<view class="main">
+			<view class="icon">
+				<img src="../../assets/img/success.png" alt="">
+			</view>
+			<!-- 金额 -->
+			<view class="money">
+				15.00
+			</view>
+			<view class="text">
+				付款成功
+			</view>
+			<!-- 订单信息 -->
+			<view class="infos">
+				<view class="item">
+					<view class="title">
+						饭卡余额(元)
+					</view>
+					<view class="value">
+						315.00
+					</view>
+				</view>
+				<view class="item">
+					<view class="title">
+						订单号
+					</view>
+					<view class="value">
+						000111222333444
+					</view>
+				</view>
+				<view class="item">
+					<view class="title">
+						支付时间
+					</view>
+					<view class="value">
+			        2023-04-10 12:00:00
+					</view>
+				</view>
+			</view>
+			<!-- 按钮 -->
+			 <view class="button">
+			 	 <view class="close">
+			 	 	<button>关闭页面</button>
+			 	 </view>
+				 <view class="check">
+				 	<button>查看消费记录</button>
+				 </view>
+			 </view>
+		</view>
+		
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		background-color: #fff;
+	}
+	/deep/.u-border-bottom:after {
+	       border-bottom-width: 0px;
+	}
+	.main{
+		text-align: center;
+		.icon{
+			margin: 100rpx auto 40rpx;
+			
+		}
+		// 金额
+		.money{
+			color: rgba(51, 51, 51, 1);
+			font-size: 96rpx;
+			font-weight: bold;
+			font-family: Roboto-medium;
+		}
+		.text{
+			color: rgba(16, 16, 16, 1);
+			font-size: 48rpx;
+			margin-top: 8rpx;
+			font-family: 'PingFang Regular';
+			
+		}
+		// 订单信息
+		.infos{
+			margin: 48rpx 72rpx;
+			.item{
+				display: flex;
+				justify-content: space-between;
+				margin-bottom: 32rpx;
+				.title{
+					color: rgba(134, 137, 140, 1);
+					font-size: 32rpx;
+					font-family: 'PingFang Regular';
+				}
+				.value{
+					color: rgba(51, 51, 51, 1);
+					font-size: 32rpx;
+					
+				}
+			}
+		}
+		// 按钮
+		.button{
+			margin: 0 72rpx;
+			display: flex;
+			justify-content: space-between;
+			font-size: 32rpx;
+			text-align: center;
+			.close{
+				uni-button{
+					width: 280rpx;
+					height: 80rpx;
+					line-height: 80rpx;
+					border-radius: 16rpx;
+					font-size: 32rpx;
+					background-color: rgba(255, 255, 255, 1);
+					color: rgba(51, 51, 51, 1);
+					border: 1px solid rgba(153, 153, 153, 1);
+				}
+			}
+			.check{
+				uni-button{
+					width: 280rpx;
+					height: 80rpx;
+					line-height: 80rpx;
+					border-radius: 16rpx;
+					font-size: 32rpx;
+					background-color: rgba(255, 255, 255, 1);
+					color: rgba(31, 74, 153, 1);
+					border: 1px solid rgba(31, 74, 153, 1);
+				}
+			}
+		}
+	}
+
+</style>

+ 92 - 0
pages/search/search.vue

@@ -0,0 +1,92 @@
+<template>
+	<view>
+		<!-- 搜索框 -->
+		<view class="search">
+		<u-icon name="arrow-left"size="36"></u-icon><u-search search-icon="none"></u-search>
+		</view>
+		<!-- 搜索历史 -->
+		<view class="main">
+			<view class="search-history">
+				<view class="title">
+					搜索历史
+				</view>
+				<view class="clear">
+					清空历史
+				</view>
+			</view>
+			<view class="history">
+				<view class="item">
+					荆州
+				</view>
+				<view class="item">
+					铁路
+				</view>
+			</view>
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			}
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		background-color: #fff;
+	}
+	// 搜索框
+	.search{
+		padding:12rpx 24rpx;
+		display: flex;
+		align-items: center;
+		.u-icon--right{
+			margin-right: 24rpx;
+		}
+		/deep/.u-content{
+			border-radius: 8px !important;
+		}
+		/deep/.u-action{
+			color: rgba(31, 74, 153, 1);
+			font-size: 16px;
+		}
+	}
+   // 搜索历史
+   .main{
+	   margin: 36rpx;
+	   .search-history{
+		   display: flex;
+		   justify-content: space-between;
+		   align-items: center;
+		   .title{
+			   color: #111111;
+		   }
+		   .clear{
+			   color: rgba(31, 74, 153, 1);
+			   font-size: 12px;
+		   }
+	   }
+	   .history{
+		   display: flex;
+		   margin-top: 24rpx;
+		   .item{
+			   border-radius: 10px;
+			   background-color: rgba(239, 240, 245, 1);
+			   color: rgba(88, 88, 88, 1);
+			   height: 33px;
+			   line-height: 33px;
+			   margin-right: 26rpx;
+			   padding: 0 48rpx;
+		   }
+	   }
+   }
+</style>

+ 307 - 0
pages/search/searchResult.vue

@@ -0,0 +1,307 @@
+<template>
+	<view>
+		<u-navbar title="发布内容" v-show="false" ref="refNavbar"  >
+			
+		</u-navbar>
+		<!-- 搜索框 -->
+		<view class="search" >
+		<u-icon name="arrow-left" size="36"  @tap="goBack" ></u-icon>
+		<u-search   ref="searchinput"
+		v-model="key"  @blur="blur()"  @focus="focus()" @custom="submit" @search="submit" @keyup.enter="submit" 
+		search-icon="none"></u-search>
+		</view>
+		<!-- 搜索历史 -->
+		<view class="main"  v-show="step">
+			<view class="search-history"  >
+				<view class="title">
+					搜索历史
+				</view>
+				<view class="clear"  @click="clear()">
+					清空历史
+				</view>
+			</view>
+			<view class="history">
+				<view class="item"  v-for="(mod,index) in searchHistory"  :key="index" v-text="mod" @click="key=mod,submit()">
+					荆州
+				</view>
+				
+			</view>
+			
+		</view>
+		<!-- 搜索结果 -->
+		<view class="result"  v-show="!step">
+			 <view class="result-item" v-for="(item,i) in list" @click="ckInfo(item.id)" :key="i" >
+				 <view class="content">
+				 	<view class="title">
+				 		{{item.title}}
+				 	</view>
+					<view class="infos">
+						<view class="classify">
+							{{item.typeName}}
+						</view>
+						<view class="date">
+							{{substrDate(item.createTime)}}
+						</view>
+					</view>
+				 </view>
+				 <view class="picture">
+					 <img  v-if="item.pic" :src="item.pic" alt="">
+					 <img  v-else src="@/assets/img/default_img.png" alt="">
+					 
+				 </view>
+			 	
+			 </view>
+			<u-divider :isnone="list.length==0" nonetext="没有找到相关内容" border-color="#CFD2D5">已经到底了</u-divider>
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/news.js'
+	
+	export default {
+		data() {
+			return {
+				step:true,//步骤 ,true第一步查询,false第二步显示结果
+				 key:"",
+				  recordsTotal:0,
+				 listForm:{
+					 typeId:"",
+					 title:"",
+				         pageIndex: 1,
+				         pageSize: 4,
+				         totalPage: 1,
+				        
+				     },
+					 list: [
+					 ],
+					searchHistory:[],
+			}
+		},
+		computed:{
+			
+		},
+		onLoad(op){
+			if(op.type){
+				this.listForm.typeId=op.type
+			}
+			
+			var sz=this.carhelp.get("setSearchHistory");
+			if(sz){
+				this.searchHistory=sz
+			}else{
+				this.searchHistory= []
+			}
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {			
+				this.myLoadmore();
+			}
+		},
+		methods: {
+			 
+			ckInfo(id){
+				var url="/pages/news/articleDetails?id="+id;
+				uni.navigateTo({
+					url:url
+				})
+			},
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.query();
+			},
+			setSearchHistory(obj){
+				this.searchHistory=obj
+					this.carhelp.set("setSearchHistory",obj)
+			},
+			focus(){
+				this.step=true;
+			},
+			blur(){
+			    // if(this.step&&this.$refs.searchinput.getRef()){
+			    //     this.$refs.searchinput.getRef().focus()//自动聚焦
+			    // }
+			},
+			clear(){
+			    this.setSearchHistory([]);
+			    mui.toast("搜索内容已清空");
+			},
+			goBack(){
+				this.$refs.refNavbar.goBack()
+			},
+            setHistory(){
+                //搜索记录保存
+				console.log(this.key)
+                var sz=this.searchHistory;
+                if(!sz){
+                    sz=[];
+                }
+                var temp =[];
+                //去重 ,后插入的,排队到最前面
+                if(sz.length){
+                    for(var i in sz){
+                        if(i==0){
+                            temp.push(this.key);
+                        }
+                        if(sz[i]==this.key){
+                            continue;
+                        }
+                        temp.push(sz[i]);
+
+                        if(temp.length==10){
+                            break
+                        }
+
+                    }
+                }else{
+                    temp.push(this.key);
+                }
+				
+                this.setSearchHistory(temp);
+            },
+			 query(){
+				
+				 this.listForm.title=this.key
+				 uni.showLoading({
+				 	title: "加载中",
+				 	mask: true,
+				 })
+				 
+				 API.pageList(this.listForm).then((res) => {
+				 	uni.hideLoading();
+					if(this.listForm.pageIndex==1){
+						this.list = res.data.data;
+					}else{
+						this.list = [
+							...this.list,
+							...res.data.data
+						];
+					}
+				 	
+				 	this.recordsTotal = res.data.recordsTotal;
+				 }).catch(error => {
+				 	uni.showToast({
+				 		title: error,
+				 		icon: "none"
+				 	})
+				 })
+				 
+			 }, submit(){
+				 if(!this.key){
+					return 
+				 }
+                this.setHistory()
+				this.step=false;
+				this.listForm.pageIndex=1
+				// var ref =this.$refs.searchinput.getRef()
+				// ref.blur()
+				 this.query();
+			}
+			 
+			 
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		background-color: #fff;
+		font-family: 'Regular';
+	}
+	// 搜索框
+	.search{
+		padding:12rpx 24rpx;
+		display: flex;
+		align-items: center;
+		.u-icon--right{
+			margin-right: 24rpx;
+		}
+		/deep/.u-content{
+			border-radius: 8px !important;
+		}
+		/deep/.u-action{
+			color: rgba(31, 74, 153, 1);
+			font-size: 16px;
+		}
+	}
+
+ // 搜索历史
+   .main{
+	   margin: 36rpx;
+	   .search-history{
+		   display: flex;
+		   justify-content: space-between;
+		   align-items: center;
+		   .title{
+			   color: #111111;
+		   }
+		   .clear{
+			   color: rgba(31, 74, 153, 1);
+			   font-size: 12px;
+		   }
+	   }
+	   .history{
+		   // display: flex;
+		   margin-top: 24rpx;
+		   .item{
+			   min-width: 140rpx;
+			   text-align: center;
+			   display: inline-block;
+			   border-radius:8px;
+			   background-color: rgba(239, 240, 245, 1);
+			   color: rgba(88, 88, 88, 1);
+			   height: 66rpx;
+			   line-height: 66rpx;
+			   margin-right: 26rpx;
+			   margin-top:12rpx;
+			   font-size: 28rpx;
+			   padding: 2rpx 48rpx;
+		   }
+	   }
+   }
+   // 搜索结果
+   .result{
+	   padding: 36rpx 32rpx;
+	   .result-item{
+		   display: flex;
+		   justify-content: space-between;
+		   margin-bottom: 40rpx;
+		  
+		   .content{
+			   display: flex;
+			     width: 100%;
+			   justify-content: space-between;
+			   flex-direction: column;
+			   .title{
+				   color: rgba(51, 51, 51, 1);
+				   font-size: 32rpx;
+				   text-align: justify;
+			   }
+			   .infos{
+				   display: flex;
+				   justify-content: space-between;
+				   align-items: center;
+				   .classify{
+					   color: rgba(119, 119, 119, 1);
+					   font-size: 24rpx;
+				   }
+				   .date{
+					   color: rgba(119, 119, 119, 1);
+					   font-size:24rpx;
+				   }
+			   }
+		   }
+	   
+	    .picture{
+			   margin-left: 24rpx;
+			img{
+				width: 224rpx;
+				height: 172rpx;
+				border-radius: 5px;
+			}
+		}
+	   
+	   }
+   }
+</style>

+ 248 - 0
pages/staffHome/activityCenter/activityCenter.vue

@@ -0,0 +1,248 @@
+<template>
+	<view>
+		<u-navbar title="活动中心"></u-navbar>
+		<view class="tabs"  >
+			<u-tabs bar-width="60" :bold="false" inactive-color="#B3B3B3" active-color="#333333" height="88"
+				:list="tabList" :is-scroll="false" :current="current" @change="change"></u-tabs>
+		</view>
+		<view class="main">
+			 <view class="activity-item"  v-for="(item,i) in list" :key="i">
+			 	<view class="title">
+			 		{{item.title}}
+					<view class="have-used" v-if="item.status=='77d93870-e1e1-4369-b2b6-629e8645e8d9'" >
+						<img src="../../../assets/img/overdue.png" alt="">
+					</view>
+					<view class="have-used" v-if="item.status=='eaab19ae-893f-40e7-b730-85a13af00137'" >
+						<img src="../../../assets/img/overend.png" alt="">
+					</view>
+			 	</view>
+			 	<view class="pictures">
+			 		<img v-if="item.pic1" @click="previewImage(item.pic1)"  :src="item.pic1" alt="">
+			 		<img v-if="item.pic2"  @click="previewImage(item.pic2)"  :src="item.pic2" alt="">
+			 		<img v-if="item.pic3"  @click="previewImage(item.pic3)"   :src="item.pic3" alt="">
+			 		
+			 	</view>
+				<view class="introduce">
+					{{item.synopsis}}
+				</view>
+				<view class="to-detail"  @click="ckItem(item)" >
+					<view class="tag" >
+						{{item.typeName}}
+					</view>
+					<view class="click">
+						<text>点击查看活动详情</text>
+						<text><u-icon name="arrow-right" color="#777777"></u-icon></text>
+					</view>
+				</view>
+				
+				
+			 </view>
+			 
+			
+		</view>
+		<u-divider :isnone="list.length==0" nonetext="没有找到相关内容" bg-color="#F2F4F4" border-color="#CFD2D5">已经到底了</u-divider>
+		<view class="bottom" v-if="false">
+			<img src="../../../assets/img/riFill-camera-fill@2x.png">
+		</view>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/activity.js'
+	import * as API_share from '@/apis/pagejs/share.js'
+	
+	export default {
+		data() {
+			return {
+				listForm:{
+					pageIndex:1,
+					pageSize:20,
+					
+				},
+				current: 0,
+				list:[],
+				recordsTotal:0,
+					tabList: [],
+			}
+		},
+		onLoad(op){
+		
+			this.getList()
+			this.dataList()
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {			
+				this.myLoadmore();
+			}
+		},
+		methods: {
+			dataList(){
+				
+				
+				API_share.dataList("活动类型").then((res) => {
+				
+					this.tabList=[
+						{
+							id:'',
+							name:'全部'
+						},
+						...res.data
+					]
+					
+				}).catch(error => {
+					
+				})
+			},
+			previewImage(pic) {
+				let imgs = [pic];
+				
+				uni.previewImage({
+					indicator:"default",
+					loop:true,
+					urls: imgs,
+					current: 0
+				})
+			},
+			ckItem(item){
+				var url="/pages/staffHome/activityCenter/activityDetail?id="+item.id;
+				uni.navigateTo({
+					url:url
+				})
+			},
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+			change(index) {
+				this.current = index;
+			
+				this.listForm.pageIndex = 1;
+				this.listForm.typeId=this.tabList[index].id
+				this.getList()
+			},
+			getList(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.pageList(this.listForm).then((res) => {
+					
+					uni.hideLoading();
+					//this.list=response.data.data
+					if(this.listForm.pageIndex==1){
+						this.list = res.data.data;
+					}else{
+						this.list = [
+							...this.list,
+							...res.data.data
+						];
+					}
+					this.recordsTotal = res.data.recordsTotal;
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.have-used{
+		  
+		  width: 64px;
+		  height: 0;
+		  position: relative;
+		  top: -30px;
+		  top: -36px;
+		  left: 520rpx;
+		  right: 0;
+		  img{
+			  width: 100%;
+			  //height: 100%;
+		  }
+	}
+	.main{
+		margin:24rpx 32rpx;
+		
+		.activity-item{
+			background-color: #fff;
+			padding: 24rpx;
+			border-radius: 8px;
+			margin-bottom: 24rpx;
+			.title{
+				color: rgba(51, 51, 51, 1);
+				font-size: 18px;
+				font-family: 'Medium';
+			}
+			.pictures {
+				display: flex;
+				justify-content: space-between;
+				margin-top: 16rpx;
+			
+				img {
+					width: 31.4%;
+					height: 150rpx;
+					border-radius: 16rpx;
+				}
+			}
+			.introduce{
+				color: rgba(119, 119, 119, 1);
+				line-height: 20px;
+				margin-top: 16rpx;
+				font-family: 'Regular';
+			}
+			
+		}
+		.to-detail{
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			margin-top: 16rpx;
+			padding-top: 36rpx;
+			border-top: 1px solid #F4F6F6;
+			.tag{
+				border-radius: 4px;
+				color: rgba(31, 74, 153, 1);
+				font-size: 12px;
+				text-align: center;
+				border: 1px solid rgba(31, 74, 153, 1);
+				line-height: 18px;
+				padding: 0 17rpx;
+				font-family: 'Medium';
+				
+			}
+			.tag2{
+				color: rgba(238, 49, 56, 1);
+				border: 1px solid rgba(238, 49, 56, 1);
+			}
+			.click{
+				color: rgba(119, 119, 119, 1);
+				font-family: 'Regular';
+			}
+		}
+		
+	}
+
+   .bottom{
+	   background: linear-gradient(223.81deg, rgba(0,90,217,1) 14.24%,rgba(0,52,148,1) 86.67%);
+	   width: 104rpx;
+	   height: 104rpx;
+	   border-radius: 50px;
+	   display: flex;
+	   justify-content: center;
+	   align-items: center;
+	   position: fixed;
+	   right: 72rpx;
+	   bottom: 72rpx;
+	   img{
+		   width: 56rpx;
+		   height: 56rpx;
+		   
+	   }
+   }
+</style>

+ 255 - 0
pages/staffHome/activityCenter/activityDetail.vue

@@ -0,0 +1,255 @@
+<template>
+	<view>
+		<u-navbar title="活动详情"></u-navbar>
+		
+		<view class="main" v-html="info.content">
+			
+		
+		
+		
+		</view>
+		<view class="bottom" v-if="!userInfo" >
+					
+					<u-button  @click="issueMethod()">未登录</u-button>
+		</view>
+		
+		 <view class="bottom" v-else-if="info.status=='77d93870-e1e1-4369-b2b6-629e8645e8d9'" >
+			<u-button  >活动已结束</u-button>
+		 </view>
+		 <view class="bottom" v-else   >
+					<u-button  type="primary"  v-if="!info.isJoin"
+					@click="enrollMethod()" >线上报名</u-button>
+					
+					<u-button v-else @click="cancelMethod()" >已报名</u-button>
+					<!-- <u-button type="info">发布作品</u-button> -->
+		 </view>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/activity.js'
+	
+	export default {
+		data() {
+			return {
+				userInfo:null,
+				authorInfo:null,
+				id:'',
+				info:{},
+			}
+		},
+		onLoad(op){
+			this.userInfo=this.carhelp.getPersonInfo()
+			console.log(this.userInfo)
+			if(op.id){
+				this.id=op.id
+				this.getInfo()
+			}
+			
+		},
+		methods: {
+			cancelActivity(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.cancelActivity(this.id).then((res) => {
+					//this.list=response.data.data
+					this.info.isJoin=false;
+					uni.hideLoading();
+					uni.showToast({
+						title:"取消报名"
+					})
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			joinActivity(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.joinActivity(this.id).then((res) => {
+					//this.list=response.data.data
+					this.info.isJoin=true;
+					uni.hideLoading();
+					uni.showToast({
+						title:"报名成功!"
+					})
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			cancelMethod(){
+				
+					var _this=this;
+					uni.showModal({
+						title:_this.info.title,
+						content:"确认是否取消报名?",
+						confirmText:"取消报名",
+						showCancel:true,
+						success: (res)=> {
+							if(res.confirm){
+								_this.cancelActivity()
+							}
+							
+						}
+					})
+			},
+			enrollMethod(){
+				var _this=this;
+				uni.showModal({
+					title:_this.info.title,
+					content:"确认是否参与本活动报名?",
+					confirmText:"报名",
+					showCancel:true,
+					success: (res)=> {
+						if(res.confirm){
+							_this.joinActivity()
+						}
+						
+					}
+				})
+			},
+			issueMethod(){
+				uni.showModal({
+					title:"提示",
+					content:"未登录,登录后参与分享活动",
+					confirmText:"前往登录",
+					showCancel:true,
+					success: function (res) {
+						if(res.confirm){
+							uni.navigateTo({
+								url:'/pages/login/index'
+							})
+						}
+						
+					
+					}
+				})
+				
+				
+			},
+			getInfo(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.edit(this.id).then((res) => {
+					
+					uni.hideLoading();
+					//this.list=response.data.data
+					this.info=res.data;
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		padding-bottom: 100px;
+	}
+	
+	.main{
+		margin: 24rpx 32rpx 0 32rpx;
+		// 活动介绍
+		.introduction{
+			margin-top: 24rpx;
+			font-family: 'Regular';
+			.title{
+				color: rgba(16, 16, 16, 1);
+				font-size: 18px;
+				line-height: 26px;
+			}
+			.content{
+				color: rgba(51, 51, 51, 1);
+				line-height: 24px;
+				margin-top: 16rpx;
+			}
+		}
+		
+	// 活动时间
+	.date{
+		font-family: 'Regular';
+		margin-top: 32rpx;
+		.title{
+			color: rgba(16, 16, 16, 1);
+			font-size: 18px;
+			line-height: 26px;
+		}
+		.item{
+			margin-top:16rpx;
+			display: flex;
+			color: rgba(51, 51, 51, 1);
+			line-height: 20px;
+			.item-title{
+				margin-right: 24rpx;
+			}
+			.name{
+				width: 100rpx;
+			}
+		}
+	}
+	
+	}
+	// 积分获取
+	.integral{
+		margin-top: 32rpx;
+		.title{
+			color: rgba(16, 16, 16, 1);
+			font-size: 18px;
+			line-height: 26px;
+			font-family: 'Regular';
+		}
+		.integral-group{
+			margin-top: 24rpx;
+			background-color: #fff;
+			.item{
+				display: flex;
+				justify-content: space-between;
+				line-height: 44px;
+				padding-left: 16rpx;
+				color: rgba(51, 51, 51, 1);
+				font-size: 16px;
+				border-bottom: solid 1px #e6e6e6;
+				font-size: 14rpx;
+				.value{
+					width: 170rpx;
+					text-align: center;
+				}
+			}
+			.item1{
+				color: rgba(16, 16, 16, 1);
+				font-size: 16px;
+			}
+		}
+	}
+ 
+ 
+   .bottom{
+	   padding: 16rpx 32rpx;
+	   background-color: #fff;
+	   position: fixed;
+	   bottom: 0;
+	   left: 0;
+	   right: 0;
+	   font-family: Arial;
+	 
+   }
+  
+</style>

+ 179 - 0
pages/staffHome/activityReward/activityReward.vue

@@ -0,0 +1,179 @@
+<template>
+	<view>
+		<u-navbar title="活动奖励"></u-navbar>
+		<view class="main">
+			<view class="reward-detail"  v-for="(item,i) in list" :key="i" @click="ckItem(item)"  >
+				<view class="content">
+					<view class="title">
+						{{item.title}}
+					</view>
+					<view class="tag">
+						<view class="item">
+							{{item.typeName}}
+						</view>
+					</view>
+					
+				</view>
+				 <view class="picture">
+				 	<img v-if="item.pic1" @click="previewImage(item.pic1)"  :src="item.pic1" alt="">
+				 	<img v-else-if="item.pic2"  @click="previewImage(item.pic2)"  :src="item.pic2" alt="">
+				 	<img v-else-if="item.pic3"  @click="previewImage(item.pic3)"   :src="item.pic3" alt="">
+				 	
+				 </view>
+			</view>
+			
+			 
+			
+		</view>
+		<u-divider :isnone="list.length==0" nonetext="没有找到相关内容" bg-color="#F2F4F4" border-color="#CFD2D5">已经到底了</u-divider>
+		<view class="bottom" v-if="false">
+			<img src="../../../assets/img/riFill-camera-fill@2x.png">
+		</view>
+<!-- 		<u-divider bg-color="#F2F4F4" border-color="#CFD2D5">已经到底了</u-divider>
+ -->	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/activity.js'
+	
+	export default {
+		data() {
+			return {
+				listForm:{
+					pageIndex:1,
+					pageSize:20,
+					
+				},
+				list:[],
+				recordsTotal:0,
+			}
+		},
+		onLoad(op){
+		
+			this.getList()
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {			
+				this.myLoadmore();
+			}
+		},
+		methods: {
+			previewImage(pic) {
+				let imgs = [pic];
+				
+				uni.previewImage({
+					indicator:"default",
+					loop:true,
+					urls: imgs,
+					current: i
+				})
+			},
+			ckItem(item){
+				var url="/pages/staffHome/activityReward/rewardDetail?id="+item.id;
+				uni.navigateTo({
+					url:url
+				})
+			},
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+			getList(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.pageList(this.listForm).then((res) => {
+					
+					uni.hideLoading();
+					//this.list=response.data.data
+					if(this.listForm.pageIndex==1){
+						this.list = res.data.data;
+					}else{
+						this.list = [
+							...this.list,
+							...res.data.data
+						];
+					}
+					this.recordsTotal = res.data.recordsTotal;
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	.bottom{
+		   background: linear-gradient(223.81deg, rgba(0,90,217,1) 14.24%,rgba(0,52,148,1) 86.67%);
+		   width: 104rpx;
+		   height: 104rpx;
+		   border-radius: 50px;
+		   display: flex;
+		   justify-content: center;
+		   align-items: center;
+		   position: fixed;
+		   right: 72rpx;
+		   bottom: 72rpx;
+		   img{
+			   width: 56rpx;
+			   height: 56rpx;
+			   
+		   }
+	}
+	.main{
+		font-family: 'Medium';
+		padding: 24rpx 32rpx 0 32rpx;
+		.reward-detail{
+			background-color: #fff;
+			padding: 24rpx;
+			display: flex;
+			justify-content: space-between;
+			margin-bottom: 24rpx;
+			.content{
+				display: flex;
+				justify-content: space-between;
+				flex-direction: column;
+				margin-right:24rpx;
+				.title{
+					color: rgba(51, 51, 51, 1);
+					font-size: 16px;
+					line-height: 23px;
+				}
+				.tag{
+					display: flex;
+					.item{
+						margin-top: 32rpx;
+						line-height: 48rpx;
+						padding: 0 12rpx;
+						border: 1px solid rgba(31, 74, 153, 1);
+						color:rgba(31, 74, 153, 1) ;
+						border-radius: 8rpx;
+						font-size: 24rpx;
+						text-align: center;
+					}
+					.item1{
+						border: 1px solid rgba(238, 49, 56, 1);
+						color:rgba(238, 49, 56, 1) ;
+					}
+				}
+			}
+			.picture{
+				width: 224rpx;
+				height: 86px;
+				border-radius:5px ;
+				img{
+					width: 100%;
+					height: 100%;
+				}
+			}
+		}
+	}
+
+</style>

+ 90 - 0
pages/staffHome/activityReward/rewardDetail.vue

@@ -0,0 +1,90 @@
+<template>
+	<view>
+		<u-navbar title="活动奖励详情"></u-navbar>
+		
+		<view class="reward-group" >
+				<view v-for="(item,i) in list" :key="i">
+					<view class="reward-item">
+						{{item.place}}
+					</view>
+					<view class="reward-item">
+						{{item.listName.join()}}
+					</view>
+				</view>
+			
+			
+			</view>
+			<u-divider :isnone="list.length==0" nonetext="没有找到相关内容" bg-color="#F2F4F4" border-color="#CFD2D5">已经到底了</u-divider>
+			
+		</view>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/activity.js'
+	
+	export default {
+		data() {
+			return {
+				id:'',
+				list:[],
+			}
+		},
+		onLoad(op){
+			if(op.id){
+				this.id=op.id
+				this.getInfo()
+			}
+			
+		},
+		methods: {
+			getInfo(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.notesList(this.id).then((res) => {
+					
+					uni.hideLoading();
+					//this.list=response.data.data
+					this.list=res.data;
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	
+	.banner {
+		margin: 32rpx;
+		background: url(../../../assets/img/banner.png) no-repeat;
+		background-size: 100% 200rpx;
+		color: rgba(255, 255, 255, 1);
+		font-size: 20px;
+		text-align: center;
+		padding: 44rpx 0;
+		font-family: 'Medium';
+	}
+	
+ .reward-group{
+	 margin:24rpx 32rpx;
+	 background-color: #fff;
+	 .reward-item{
+		 	border-bottom: solid 1px #e6e6e6;
+			
+			min-height: 64px;
+		 line-height: 44px;
+		 padding-left: 16rpx;
+	 }
+	 .reward-item:last-of-type{
+		min-height: 84px;
+	 }
+ }
+</style>

+ 153 - 0
pages/staffHome/commend.vue

@@ -0,0 +1,153 @@
+<template>
+	<view>
+		<u-navbar title="公司表彰"></u-navbar>
+		<view class="tabs">
+			<u-tabs bar-width="60" inactive-color="#777777" active-color="#018bb9" height="88" :list="list" :is-scroll="false" :current="current" @change="change"></u-tabs>
+		</view>
+		
+		<view class="commend-box">
+			<view class="commend-content">
+				<view class="title">
+					表彰类型
+				</view>
+				<view class="commendation">
+					表彰词内容表彰词内容表彰词内容表彰词内容
+				</view>
+				<view class="integral">
+					<view class="icon">
+						<img src="../../assets/img/riFill-copper-diamond-fill@2x.png" alt="">
+					</view>
+					<view class="text">
+						100积分
+					</view>
+				</view>
+			</view>
+			<view class="gainer">
+				<img src="../../assets/img/photo.png" alt="">
+				<view class="name">
+					赵晓婧
+				</view>
+			</view>
+		</view>
+		
+		<view class="commend-box">
+			<view class="commend-content">
+				<view class="title">
+					表彰类型
+				</view>
+				<view class="commendation">
+					表彰词内容表彰词内容表彰词内容表彰词内容
+				</view>
+				<view class="integral">
+					<view class="icon">
+						<img src="../../assets/img/riFill-copper-diamond-fill@2x.png" alt="">
+					</view>
+					<view class="text">
+						50积分
+					</view>
+				</view>
+			</view>
+			<view class="gainer">
+				<img src="../../assets/img/dmr.png" alt="">
+				<view class="name">
+					丁曼容
+				</view>
+			</view>
+		</view>
+		<u-divider bg-color="#F2F4F4" border-color="#CFD2D5">已经到底了</u-divider>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				list: [{
+					name: '全部'
+				}, {
+					name: '员工成长'
+				}, {
+					name: '业绩认可',
+				}],
+				current: 0
+			}
+		},
+		methods: {
+			change(index) {
+				this.current = index;
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	
+	.tabs{
+		background-color: rgba(255, 255, 255, 1);
+		// /deep/.u-tabs{
+		// 	width: 408rpx;
+		// }
+		margin-bottom: 24rpx;
+	}
+	
+	.commend-box{
+		background-color: #fff;
+		border-radius: 8px;
+	    margin: 0 32rpx 24rpx 32rpx;
+		padding: 24rpx;
+		display: flex;
+		justify-content: space-between;
+		.commend-content{
+			.title{
+				color: rgba(51, 51, 51, 1);
+				font-size: 16px;
+				line-height: 23px;
+				font-family: 'Medium';
+			}
+			.commendation{
+				color: rgba(119, 119, 119, 1);
+				font-size: 12px;
+				line-height: 17px;
+				margin-top: 4rpx;
+				width: 480rpx;
+				font-family: 'Regular';
+			}
+			.integral{
+				margin-top: 48rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				background-color: rgba(230, 239, 255, 1);
+				width: 164rpx;
+				border-radius: 50px;
+				height: 28px;
+				.icon{
+					width: 32rpx;
+					height: 32rpx;
+					img{
+						width: 100%;
+					}
+				}
+				.text{
+					font-size: 12px;
+					color: rgba(119, 119, 119, 1);
+					font-family: 'Regular';
+				}
+				
+			}
+		}
+	
+	.gainer{
+		img{
+			width: 120rpx;
+			height: 120rpx;
+			border-radius: 50px;
+		}
+		.name{
+			text-align: center;
+			color: rgba(51, 51, 51, 1);
+			margin-top: 8rpx;
+		}
+	}
+	}
+</style>

+ 646 - 0
pages/staffHome/filesonic.vue

@@ -0,0 +1,646 @@
+<template>
+	<view>
+		<u-navbar title="分享空间"></u-navbar>
+		<!-- 图片 -->
+		<view class="image" v-if="false">
+			<u-image width="100%" height="200rpx" :src="src" border-radius="16"></u-image>
+		</view>
+
+		<!-- 分享内容 -->
+		<view class="share-content">
+			<view class="item" v-for="(item,i) in list" :key="i" @click="ckItem(item)">
+				<view class="infos">
+					<view class="person">
+						<view class="photo">
+							<img v-if="item.regUser&&item.regUser.headImg" :src="item.regUser.headImg" alt="">
+							<u-avatar v-else size="64"></u-avatar>
+						</view>
+						<view class="name">
+							{{item.createName}}
+						</view>
+					</view>
+					<view class="date">
+						{{item.createTime}}
+					</view>
+				</view>
+				<view class="share-text">
+					<textarea placeholder="记录点滴生活..." disabled="disabled" :auto-height="true" style="width:auto"
+						v-model="item.synopsis" readonly maxlength="200" name="" id=""></textarea>
+
+				</view>
+				<view class="pictures">
+					<template v-for="(pic,i2) in item.listShareFiles" v-if="pic.url">
+						<image class="img" v-if="pic.isPic" :key="i2" mode="aspectFill"
+							@click="previewImage(item.listShareFiles,i2)" :src="pic.url" alt="">
+
+							<video v-else :key="i2" :src="pic.url" :class="{videoplay:playurl==pic.url}"
+								@play="playurl=pic.url" enable-danmu danmu-btn controls></video>
+					</template>
+
+
+				</view>
+				<view class="tagMain">
+					<view class="tag" v-if="!item.activityId" :class="item.activityId">
+						<text class="status" style="color: red;"
+							v-if="item.status!=1">[{{item.status==0?'审核中':''}}{{item.status==2?'审核不通过':''}}]</text>
+
+					</view>
+					<view class="tag" v-else :class="item.activityId" @click="issueMethod(item.activityId)">
+						<text class="status" style="color: red;"
+							v-if="item.status!=1">[{{item.status==0?'审核中':''}}{{item.status==2?'审核不通过':''}}]</text>
+						<template>
+
+							<text class="symbol">#</text>
+							<text class="text">{{item.activityName}}</text>
+							<text class="icon">
+								<u-icon size="28" color="#cccccc" name="arrow-right"></u-icon>
+							</text>
+						</template>
+					</view>
+					<view class="tag status" style="color: #19be6b;" @click="delShare(item.id)" v-if="item.status!=1">
+						<u>点击删除</u>
+					</view>
+					<view class="likeMain">
+						<view class="like" v-if="item.status==1" @click="changeLikes(item)" :class="{
+								red:item.isLike
+							}">
+							<view class="icon">
+								<u-icon name="thumb-up" size="38"></u-icon>
+							</view>
+							<view class="number">
+								{{item.likesNum}}
+							</view>
+						</view>
+						
+						
+						<view class="like"  style="margin-left: 18rpx;"
+						v-if="item.status==1" @click="showMessageBtn(item)" >
+							<view class="icon">
+								<img  style="width: 40rpx; height: 48rpx;"
+								src="../../assets/img/riLine-chat-4-line.svg"></img>
+							</view>
+							<view class="number"> 评论</view>
+						</view>
+						
+						<view class="like"  style="margin-left: 18rpx;"
+						v-if="item.status==1" @click="gotoUrl('pages/staffHome/filesonicInfo?id='+item.id)" >
+							<view class="icon">
+								<u-icon name="photo" size="38"></u-icon>
+								
+							</view>
+							<view class="number"> 查看</view>
+						</view>
+					</view>
+					
+				</view>
+				<view  class="messageListMain" v-show="item.listShareLikes.length||item.listShareComment.length" >
+					<view  class="mLikeList"   v-show="item.listShareLikes.length">
+						<u-icon name="thumb-up" size="38"></u-icon>
+						<span v-for="(item,i) in item.listShareLikes" :key="i">
+							{{i==0?' ':', '}}{{item.userName}}
+						</span>
+						<span v-show="item.likesNum>item.listShareLikes.length">...</span>
+					</view>
+					<view  class="messageList" v-show="item.listShareComment.length">
+						<view class="messageItem" v-for="(item,i) in item.listShareComment"  :key="i" >
+							<span class="mItemTitle">{{item.userName}}:</span>
+							<span class="mItemBody">{{item.content}}</span>
+						</view>
+						<view class="messageItemEnd" v-show="item.commentNum>item.listShareComment.length" >最多显示20条评论</view>
+					</view>
+					
+				</view>
+	
+
+
+
+			</view>
+
+
+
+		</view>
+		<u-divider :isnone="list.length==0" v-if="list.length==recordsTotal" nonetext="没有找到相关内容"
+			border-color="#CFD2D5">已经到底了</u-divider>
+
+		<view class="bottom" @click="issueMethod()">
+			<img src="../../assets/img/riFill-camera-fill@2x.png">
+		</view>
+		
+		<u-popup v-model="showMessage" border-radius="34" mode="bottom" >
+			<view class="showMessage">
+				<view class="showMessage1"><h3>发表评论({{content.length}}/50)</h3></view>
+				<view class="showMessage2">
+					<textarea name="" id=""   style="  width:100%"
+					v-model="content" maxlength="50"
+					cols="30" rows="5" placeholder="填写内容"></textarea>
+				</view>
+				<view class="showMessage3">
+					<u-button type="primary" @click="submitMessage()">提交</u-button>
+				</view>
+			</view>
+					
+			</u-popup>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/share.js'
+	import {
+		isWeiXin
+	} from '@/apis/utils'
+	export default {
+		data() {
+			return {
+				listForm: {
+					pageIndex: 1,
+					pageSize: 5,
+
+				},
+				playurl: "",
+				list: [],
+				recordsTotal: 0,
+				tabList: [],
+				current: 0,
+				showMessage:false,
+				showMessageItem:{},
+				showMessageId:'',
+				content:"",
+			}
+		},
+		onLoad(op) {
+			this.carhelp.set("addShare", 0);
+			if ((process.env.NODE_ENV === "development") || isWeiXin()) {
+				this.getList()
+			} else {
+				alert("请使用微信打开本页面")
+			}
+
+			//this.dataList()
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {
+				this.myLoadmore();
+			}
+		},
+		onShow() {
+			console.log("onShow")
+			if (this.carhelp.get("addShare")) {
+				this.listForm.pageIndex = 1;
+				this.getList()
+			}
+
+		},
+		methods: {
+			showMessageBtn(item){
+				this.showMessage=true;
+				this.showMessageId=item.id;
+				this.showMessageItem=item
+				this.content=""
+			},
+			submitMessage(){
+				if(!this.content){
+					uni.showToast({
+						title: "请填写内容",
+						icon: "none"
+					})
+					return
+				}
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.createComment({
+					shareId:this.showMessageId,
+					content:this.content,
+				}).then((res) => {
+					
+					uni.showToast({
+						title: "提交成功",
+						icon: "none"
+					})
+					this.showMessage=false
+					//this.getInfo();
+					var user=this.carhelp.getPersonInfo()
+					
+					this.showMessageItem.listShareComment.unshift({
+						userName:user.name,
+						content:this.content
+					})
+					
+					//this.getNewsCommentsList(true)
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			delShare(id) {
+				uni.showModal({
+					title: '提示',
+					content: '是否删除分享?',
+
+					success: res => {
+						if (res.confirm) {
+							this.delShareApi(id)
+						} else if (res.cancel) {
+							//('用户点击取消');
+						}
+					}
+				});
+			},
+			delShareApi(id) {
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+
+				API.delShare({
+					shareId: id
+				}).then((res) => {
+
+					uni.showToast({
+						title: "删除成功",
+						icon: "none"
+					})
+
+					this.listForm.pageIndex = 1;
+					this.getList()
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+					this.listForm.pageIndex = 1;
+					this.getList()
+				})
+			},
+			changeLikes(info) {
+				var userInfo = this.carhelp.getPersonInfo()
+				if (!userInfo) {
+					return
+				}
+
+
+				if (!info.isLike) {
+					uni.showLoading({
+						title: "加载中",
+						mask: true,
+					})
+
+
+					API.changeLikes({
+						shareId: info.id
+					}).then((res) => {
+						info.isLike = true;
+						info.likesNum++;
+						var user=this.carhelp.getPersonInfo()
+						
+						info.listShareLikes.unshift({
+							userName:user.name
+						})
+						uni.hideLoading();
+						//this.getInfo(true)
+					}).catch(error => {
+						uni.showToast({
+							title: error,
+							icon: "none"
+						})
+					})
+				} else {
+					uni.showToast({
+						title: "您已经点过赞了",
+						icon: "none"
+					})
+				}
+
+			},
+			issueMethod(id) {
+
+				var userInfo = this.carhelp.getPersonInfo()
+
+				if (!userInfo) {
+					uni.showModal({
+						title: "提示",
+						content: "未登录,登录后参与分享活动",
+						confirmText: "前往登录",
+						showCancel: true,
+						success: function(res) {
+							if (res.confirm) {
+								uni.navigateTo({
+									url: '/pages/login/index'
+								})
+							}
+						}
+					})
+				} else {
+					if (id) {
+						this.gotoUrl('pages/mine/issue?id=' + id)
+					} else {
+						this.gotoUrl('pages/mine/issue?nic=1')
+					}
+
+				}
+
+
+			},
+			previewImage(img, i) {
+				let imgs = [];
+				img.forEach(it => {
+					if (it.isPic) {
+						imgs.push(it.url)
+					}
+				})
+
+
+				uni.previewImage({
+					//indicator:"default",
+					indicator: "number",
+					loop: true,
+					urls: imgs,
+					current: i
+				})
+			},
+			ckItem(item) {
+
+			},
+			dataList() {
+
+
+				API.dataList("活动类型").then((res) => {
+
+					this.tabList = [{
+							id: '',
+							name: '全部'
+						},
+						...res.data
+					]
+
+				}).catch(error => {
+
+				})
+			},
+			getList() {
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+
+				API.pageList(this.listForm).then((res) => {
+					this.carhelp.set("addShare", 0);
+					uni.hideLoading();
+					var list = res.data.data;
+
+
+					if (this.listForm.pageIndex == 1) {
+						this.list = list;
+					} else {
+						this.list = [
+							...this.list,
+							...list
+						];
+					}
+					this.recordsTotal = res.data.recordsTotal;
+
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			myLoadmore() {
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+			change(index) {
+				this.current = index;
+
+				this.listForm.pageIndex = 1;
+				this.listForm.type = this.tabList[index].id
+				this.getList()
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.showMessage{
+		padding: 60rpx 50rpx ;
+		.showMessage2{
+			background-color: #E5E7EA;
+			margin: 40rpx 0;
+			textarea{
+				padding: 8rpx;
+				border-radius:34px;
+			}
+		}
+		
+	}
+	.messageListMain{
+		border-radius: 4px;
+		background-color: rgba(240, 240, 240, 1);
+	
+		color: #224466 ;
+		.mLikeList{
+			padding:16rpx;
+			border-bottom: 1px solid rgba(222, 222, 222, 1);
+		}
+		.messageList{
+			padding:16rpx;
+			.messageItem{
+				// display: flex;
+				// flex-wrap: wrap;
+				.mItemBody{
+					color: #101010;
+
+				}
+			}
+			.messageItemEnd{
+				text-align: center;
+				    color: #9E9E9E;
+			}
+			
+		}
+	}
+	
+	
+	.red {
+		color: red !important;
+	}
+
+	.like {
+		margin-top: 16rpx;
+		line-height: 24px;
+		display: flex;
+		color:#224466 ;
+		.number {
+			margin-left: 16rpx;
+		}
+	}
+
+	page {
+		background-color: #fff;
+		padding-bottom: 100px;
+	}
+
+	.image {
+		padding: 0 32rpx;
+		margin: 24rpx 0;
+	}
+
+	.tabs {
+		background-color: rgba(255, 255, 255, 1);
+		padding: 0 32rpx;
+
+		/deep/.u-tab-item {
+			flex: none !important;
+			margin-right: 32rpx;
+		}
+
+		/deep/.u-tabs-scorll-flex {
+			justify-content: start;
+		}
+	}
+
+	// 分享内容
+	.share-content {
+		margin: 48rpx 32rpx 0 32rpx;
+
+		.item {
+			padding-bottom: 32rpx;
+			border-bottom: 1px solid rgba(232, 232, 232, 1);
+			margin-top: 48rpx;
+			font-family: 'Regular';
+
+			.infos {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+
+				.person {
+					display: flex;
+					align-items: center;
+
+					.photo {
+						img {
+							width: 64rpx;
+							height: 64rpx;
+							border-radius: 50px;
+						}
+					}
+
+					.name {
+						color: rgba(51, 51, 51, 1);
+						font-size: 16px;
+						margin-left: 24rpx;
+						font-family: 'Medium';
+					}
+				}
+			}
+
+			.share-text {
+				margin-top: 24rpx;
+				color: #101010;
+				font-size: 16px;
+				line-height: 22px;
+			}
+
+			.pictures {
+				display: flex;
+				justify-content: start;
+				flex-wrap: wrap;
+				margin-top: 16rpx;
+
+				.videoplay {
+					height: 400rpx;
+				}
+
+				video {
+					width: 100%;
+
+					height: 200rpx;
+					border-radius: 16rpx;
+					margin-bottom: 16rpx;
+					margin-left: 16rpx;
+				}
+
+				.img {
+					width: 31%;
+					height: 216rpx;
+					border-radius: 16rpx;
+					margin-bottom: 16rpx;
+					margin-left: 16rpx;
+				}
+
+				img {
+					width: 31%;
+					height: 216rpx;
+					border-radius: 16rpx;
+					margin-bottom: 16rpx;
+					margin-left: 16rpx;
+				}
+			}
+
+			.video {
+				margin-top: 16rpx;
+
+				uni-video {
+					width: 100%;
+					height: 380rpx;
+					border-radius: 8px;
+				}
+			}
+
+			.tagMain {
+				display: flex;
+				justify-content: space-between;
+				.likeMain{
+					display: flex;
+				}
+				.tag {
+					margin-top: 16rpx;
+					line-height: 24px;
+
+					.symbol {
+						color: rgba(31, 74, 153, 100);
+						font-size: 16px
+					}
+
+					.text {
+						color: rgba(31, 74, 153, 1);
+						margin-left: 14rpx;
+					}
+				}
+			}
+
+		}
+
+	}
+
+	.item:last-of-type {
+		border: none;
+		margin-bottom: 26rpx;
+	}
+
+	.bottom {
+		z-index: 999;
+		background: linear-gradient(223.81deg, rgba(0, 90, 217, 1) 14.24%, rgba(0, 52, 148, 1) 86.67%);
+		width: 104rpx;
+		height: 104rpx;
+		border-radius: 50px;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		position: fixed;
+		right: 72rpx;
+		bottom: 72rpx;
+
+		img {
+			width: 56rpx;
+			height: 56rpx;
+
+		}
+	}
+</style>

+ 541 - 0
pages/staffHome/filesonicInfo.vue

@@ -0,0 +1,541 @@
+<template>
+	<view>
+		<u-navbar title="详情"  :isBack="back" ></u-navbar>
+		<share-server ref="share"  ></share-server>
+		
+		<!-- 分享内容 -->
+		<view class="share-content">
+			<view class="item" v-for="(item,i) in list" :key="i" @click="ckItem(item)">
+				<view class="infos">
+					<view class="person">
+						<view class="photo">
+							<img v-if="item.regUser&&item.regUser.headImg" :src="item.regUser.headImg" alt="">
+							<u-avatar v-else size="64"></u-avatar>
+						</view>
+						<view class="name" v-if="item.regUser">
+							{{item.regUser.name}}
+						</view>
+					</view>
+					<view class="date">
+						{{item.createTime}}
+					</view>
+				</view>
+				<view class="share-text">
+					<textarea placeholder="记录点滴生活..." disabled="disabled" :auto-height="true" style="width:auto"
+						v-model="item.synopsis" readonly maxlength="200" name="" id=""></textarea>
+		
+				</view>
+				<view class="pictures">
+					<template v-for="(pic,i2) in item.listShareFiles" v-if="pic.url">
+						<image class="img" v-if="pic.isPic" :key="i2" mode="aspectFill"
+							@click="previewImage(item.listShareFiles,i2)" :src="pic.url" alt="">
+		
+							<video v-else :key="i2" :src="pic.url" :class="{videoplay:playurl==pic.url}"
+								@play="playurl=pic.url" enable-danmu danmu-btn controls></video>
+					</template>
+		
+		
+				</view>
+				<view class="tagMain">
+					<view class="tag" v-if="!item.activityId" :class="item.activityId">
+						<text class="status" style="color: red;"
+							v-if="item.status!=1">[{{item.status==0?'审核中':''}}{{item.status==2?'审核不通过':''}}]</text>
+		
+					</view>
+					<view class="tag" v-else :class="item.activityId" @click="issueMethod(item.activityId)">
+						<text class="status" style="color: red;"
+							v-if="item.status!=1">[{{item.status==0?'审核中':''}}{{item.status==2?'审核不通过':''}}]</text>
+						<template>
+		
+							<text class="symbol">#</text>
+							<text class="text">{{item.activityName}}</text>
+							<text class="icon">
+								<u-icon size="28" color="#cccccc" name="arrow-right"></u-icon>
+							</text>
+						</template>
+					</view>
+					
+					<view class="likeMain">
+						<view class="like" v-if="item.status==1" @click="changeLikes(item)" :class="{
+								red:item.isLike
+							}">
+							<view class="icon">
+								<u-icon name="thumb-up" size="38"></u-icon>
+							</view>
+							<view class="number">
+								{{item.likesNum}}
+							</view>
+						</view>
+						
+						
+						<view class="like"  style="margin-left: 18rpx;"
+						v-if="item.status==1" @click="showMessageBtn(item)" >
+							<view class="icon">
+								<img  style="width: 40rpx; height: 48rpx;"
+								src="../../assets/img/riLine-chat-4-line.svg"></img>
+							</view>
+							<view class="number"> 评论</view>
+						</view>
+						
+						<view class="like" v-show="item.listShareLikes.length>20" style="margin-left: 18rpx;"
+						 @click="showlike=!showlike" >
+							<view class="icon">
+								<u-icon name="chat" size="38"></u-icon>
+								
+							</view>
+							<view class="number"> {{showlike?'收起':'展开'}}点赞</view>
+						</view>
+						
+						
+					</view>
+					
+				</view>
+				<view  class="messageListMain" v-show="item.listShareLikes.length||item.listShareComment.length" >
+					<view  class="mLikeList"  v-show="item.listShareLikes.length">
+						<u-icon name="thumb-up" size="38"></u-icon>
+						<span v-for="(itemlike,ilike) in item.listShareLikes" :key="ilike" v-show="showlike||ilike<=20">
+							{{ilike==0?' ':', '}}{{itemlike.userName}}
+						</span>
+						<span v-show="item.listShareLikes.length>20&&!showlike">...</span>
+					</view>
+					<view  class="messageList" v-show="item.listShareComment.length">
+						<view class="messageItem" v-for="(itemcom,ico) in item.listShareComment"  :key="ico" >
+							<span class="mItemTitle">{{itemcom.userName}}
+							<span class="mItemTitleColor" v-if="item.regUser&&userInfo&&(item.regUser.id==itemcom.userId)">[作者]</span>
+							<span class="mItemTitleColor" v-else-if="item.regUser&&userInfo&&(itemcom.userId==userInfo.id)">[本人]</span>
+							:</span>
+							<span class="mItemBody">{{itemcom.content}}</span>
+						</view>
+					</view>
+					
+				</view>
+			
+		
+		
+		
+			</view>
+		
+		
+			
+		</view>
+		
+		<u-popup v-model="showMessage" border-radius="34" mode="bottom" >
+			<view class="showMessage">
+				<view class="showMessage1"><h3>发表评论({{content.length}}/50)</h3></view>
+				<view class="showMessage2">
+					<textarea name="" id=""   style="  width:100%"
+					v-model="content" maxlength="50"
+					cols="30" rows="5" placeholder="填写内容"></textarea>
+				</view>
+				<view class="showMessage3">
+					<u-button type="primary" @click="submitMessage()">提交</u-button>
+				</view>
+			</view>
+					
+			</u-popup>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/share.js'
+	import ShareServer from '@/components/ShareServer.vue'
+	
+	export default {
+		components: {
+		  ShareServer
+		},
+		data() {
+			return {
+				userInfo:null,
+				id:'',
+				info:{},
+				list: [],
+				showMessage:false,
+				showMessageItem:{},
+				showMessageId:'',
+				content:"",
+				showlike:false,
+			}
+		},
+		onLoad(op){
+			if(op.back&&op.back=="share"){
+				this.back=false
+			}
+			this.userInfo=this.carhelp.getPersonInfo()
+			console.log(this.userInfo)
+			if(op.id){
+				this.id=op.id
+				this.getInfo()
+			}
+			
+		},
+		methods: {
+			ckItem(item) {
+			
+			},
+			previewImage(img, i) {
+				let imgs = [];
+				img.forEach(it => {
+					if (it.isPic) {
+						imgs.push(it.url)
+					}
+				})
+			
+			
+				uni.previewImage({
+					//indicator:"default",
+					indicator: "number",
+					loop: true,
+					urls: imgs,
+					current: i
+				})
+			},
+			submitMessage(){
+				if(!this.content){
+					uni.showToast({
+						title: "请填写内容",
+						icon: "none"
+					})
+					return
+				}
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.createComment({
+					shareId:this.showMessageId,
+					content:this.content,
+				}).then((res) => {
+					
+					uni.showToast({
+						title: "提交成功",
+						icon: "none"
+					})
+					this.showMessage=false
+					//this.getInfo();
+					var user=this.carhelp.getPersonInfo()
+					
+					this.showMessageItem.listShareComment.unshift({
+						userName:user.name,
+						content:this.content,
+						userId:user.id
+					})
+					
+					//this.getNewsCommentsList(true)
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			showMessageBtn(item){
+				this.showMessage=true;
+				this.showMessageId=item.id;
+				this.showMessageItem=item
+				this.content=""
+			},
+			changeLikes(info) {
+				var userInfo = this.carhelp.getPersonInfo()
+				if (!userInfo) {
+					return
+				}
+			
+			
+				if (!info.isLike) {
+					uni.showLoading({
+						title: "加载中",
+						mask: true,
+					})
+			
+			
+					API.changeLikes({
+						shareId: info.id
+					}).then((res) => {
+						info.isLike = true;
+						info.likesNum++;
+						var user=this.carhelp.getPersonInfo()
+						
+						info.listShareLikes.unshift({
+							userName:user.name
+						})
+						uni.hideLoading();
+						//this.getInfo(true)
+					}).catch(error => {
+						uni.showToast({
+							title: error,
+							icon: "none"
+						})
+					})
+				} else {
+					uni.showToast({
+						title: "您已经点过赞了",
+						icon: "none"
+					})
+				}
+			
+			},
+			getInfo(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.details({
+					id:this.id
+				}).then((res) => {
+					
+					
+					
+					uni.hideLoading();
+					 var item=res.data.share
+					 item.listShareLikes=res.data.likesList.data
+					 item.listShareComment=res.data.commentList.data
+					item.likesNum=res.data.likesList.data.length
+					item.commentNum=res.data.commentList.data.length
+					
+					if(this.$refs.share&&item.regUser){
+						this.$refs.share.setUrl("/pages/staffHome/filesonicInfo?back=share&id="+this.id);
+						
+						this.$refs.share.setTitle("来自"+item.regUser.name+"的分享",this.id);
+						
+					}
+					// var share=res.data.share;
+					// this.likesList=res.data.likesList;
+					// this.commentList=res.data.commentList;
+					 this.list=[item]
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.showMessage{
+		padding: 60rpx 50rpx ;
+		.showMessage2{
+			background-color: #E5E7EA;
+			margin: 40rpx 0;
+			textarea{
+				padding: 8rpx;
+				border-radius:34px;
+			}
+		}
+		
+	}
+	.messageListMain{
+		border-radius: 4px;
+		background-color: rgba(240, 240, 240, 1);
+	
+		color: #224466 ;
+		.mLikeList{
+			padding:16rpx;
+			border-bottom: 1px solid rgba(222, 222, 222, 1);
+		}
+		.messageList{
+			padding:16rpx;
+			.messageItem{
+				// display: flex;
+				// flex-wrap: wrap;
+				.mItemTitleColor{
+					color:#03a9f4;
+					margin-left: 8rpx;
+				}
+				.mItemBody{
+					color: #101010;
+
+				}
+			}
+			.messageItemEnd{
+				text-align: center;
+				    color: #9E9E9E;
+			}
+			
+		}
+	}
+	
+	
+	.red {
+		color: red !important;
+	}
+
+	.like {
+		margin-top: 16rpx;
+		line-height: 24px;
+		display: flex;
+		color:#224466 ;
+		.number {
+			margin-left: 16rpx;
+		}
+	}
+
+	page {
+		background-color: #fff;
+		padding-bottom: 100px;
+	}
+
+	.image {
+		padding: 0 32rpx;
+		margin: 24rpx 0;
+	}
+
+	.tabs {
+		background-color: rgba(255, 255, 255, 1);
+		padding: 0 32rpx;
+
+		/deep/.u-tab-item {
+			flex: none !important;
+			margin-right: 32rpx;
+		}
+
+		/deep/.u-tabs-scorll-flex {
+			justify-content: start;
+		}
+	}
+
+	// 分享内容
+	.share-content {
+		margin: 48rpx 32rpx 0 32rpx;
+		  background: #fff;
+		.item {
+			padding-bottom: 32rpx;
+			border-bottom: 1px solid rgba(232, 232, 232, 1);
+			margin-top: 48rpx;
+			font-family: 'Regular';
+
+			.infos {
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+
+				.person {
+					display: flex;
+					align-items: center;
+
+					.photo {
+						img {
+							width: 64rpx;
+							height: 64rpx;
+							border-radius: 50px;
+						}
+					}
+
+					.name {
+						color: rgba(51, 51, 51, 1);
+						font-size: 16px;
+						margin-left: 24rpx;
+						font-family: 'Medium';
+					}
+				}
+			}
+
+			.share-text {
+				margin-top: 24rpx;
+				color: #101010;
+				font-size: 16px;
+				line-height: 22px;
+			}
+
+			.pictures {
+				display: flex;
+				justify-content: start;
+				flex-wrap: wrap;
+				margin-top: 16rpx;
+
+				.videoplay {
+					height: 400rpx;
+				}
+
+				video {
+					width: 100%;
+
+					height: 200rpx;
+					border-radius: 16rpx;
+					margin-bottom: 16rpx;
+					margin-left: 16rpx;
+				}
+
+				.img {
+					width: 31%;
+					height: 216rpx;
+					border-radius: 16rpx;
+					margin-bottom: 16rpx;
+					margin-left: 16rpx;
+				}
+
+				img {
+					width: 31%;
+					height: 216rpx;
+					border-radius: 16rpx;
+					margin-bottom: 16rpx;
+					margin-left: 16rpx;
+				}
+			}
+
+			.video {
+				margin-top: 16rpx;
+
+				uni-video {
+					width: 100%;
+					height: 380rpx;
+					border-radius: 8px;
+				}
+			}
+
+			.tagMain {
+				display: flex;
+				justify-content: space-between;
+				.likeMain{
+					display: flex;
+				}
+				.tag {
+					margin-top: 16rpx;
+					line-height: 24px;
+
+					.symbol {
+						color: rgba(31, 74, 153, 100);
+						font-size: 16px
+					}
+
+					.text {
+						color: rgba(31, 74, 153, 1);
+						margin-left: 14rpx;
+					}
+				}
+			}
+
+		}
+
+	}
+
+	.item:last-of-type {
+		border: none;
+		margin-bottom: 26rpx;
+	}
+
+	.bottom {
+		z-index: 999;
+		background: linear-gradient(223.81deg, rgba(0, 90, 217, 1) 14.24%, rgba(0, 52, 148, 1) 86.67%);
+		width: 104rpx;
+		height: 104rpx;
+		border-radius: 50px;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		position: fixed;
+		right: 72rpx;
+		bottom: 72rpx;
+
+		img {
+			width: 56rpx;
+			height: 56rpx;
+
+		}
+	}
+</style>

+ 340 - 0
pages/staffHome/orderReport.vue

@@ -0,0 +1,340 @@
+<template>
+	<view>
+		<u-navbar title="订餐上报"></u-navbar>
+		<view class="head">
+			<view class="department">
+				订餐部门:{{orgName}}
+			</view>
+			<view class="date" @click="show = true">
+				{{orderFoodDate}}<u-icon name="arrow-down" size="24"></u-icon>
+			</view>
+		</view>
+
+		<u-picker mode="time" v-model="show" :params="params" :defaultTime="defaultTime" @confirm="confirm">
+		</u-picker>
+
+		<!-- 上报记录 -->
+		<view class="records">
+			<!-- <view class="record-item">
+				<view class="date">
+					{{today}}
+				</view>
+				<view class="number report" @click="maskShow">
+					{{report}} <u-icon name="arrow-right" size="20"></u-icon>
+				</view>
+			</view> -->
+			<view class="record-item" v-for="(item,index) in orderFoodList" :key="index">
+				<view class="date">
+					{{item.date}}
+				</view>
+				<view class="number report" @click="maskShow(item)" v-if="item.date == today">
+					{{report}} <u-icon name="arrow-right" size="20"></u-icon>
+				</view>
+				<view class="number" v-else>
+					订餐{{item.peopleNum}}人
+				</view>
+			</view>
+		</view>
+		<!-- 遮罩层 -->
+		<u-mask :show="show1" @click="show1 = false" :zoom='false'>
+			<view class="warp">
+				<view class="rect" @tap.stop>
+					<view class="title">
+						<u-icon name="close" color="#777777" @click="close"></u-icon>
+						订餐人数
+					</view>
+					<u-input v-model="name1" :clearable="false" type="number" placeholder="请填写订餐人数"> </u-input>
+					<view class="unit">
+						人
+					</view>
+					<u-button class="btn" @click="submit">保存</u-button>
+				</view>
+			</view>
+		</u-mask>
+	</view>
+</template>
+
+<script>
+	import * as staffHomeAPI from '@/apis/pagejs/staffHome.js'
+
+	export default {
+		data() {
+			return {
+				dateShow: false,
+				show1: false,
+				report: '点击上报',
+				name1: '',
+				defaultTime: '',
+				params: {
+					year: true,
+					month: true,
+					day: false,
+					hour: false,
+					minute: false,
+					second: false,
+					timestamp: true
+				},
+				show: false,
+				orderFoodDate: '',
+				orderFoodList: [],
+				yearMonth: '',
+				today: '',
+				orgName: '',
+				orderFoodId: ''
+			}
+		},
+		onReady() {
+			var date = new Date();
+			var year = date.getFullYear();
+			var month = date.getMonth() + 1;
+			var day = date.getDate();
+			var week = "星期" + "日一二三四五六".charAt(new Date().getDay())
+			if (month >= 1 && month <= 9) {
+				month = '0' + month;
+			}
+			this.defaultTime = year + '-' + month;
+			this.yearMonth = year + '-' + month;
+			this.orderFoodDate = year + '年' + parseInt(month) + '月';
+			this.today = month + '月' + day + '日' + ' ' + week;
+
+			this.getOrderFoodList();
+		},
+		methods: {
+			getOrderFoodList() {
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				staffHomeAPI.monthList({
+					yearMonth: this.yearMonth
+				}).then((response) => {
+					uni.hideLoading();
+					var list = response.data.mapList;
+					if(this.yearMonth == this.defaultTime) {
+						if(list.length == 0) {
+							list.unshift({
+								id: '',
+								date: this.today,
+								peopleNum: 0
+							});
+						} else if(list[0].date != this.today) {
+							list.unshift({
+								id: '',
+								date: this.today,
+								peopleNum: 0
+							});
+						} else {
+							this.report = "订餐" + list[0].peopleNum + "人";
+							this.name1 = list[0].peopleNum;
+						}
+					}
+					this.orderFoodList = list;
+					this.orgName = response.data.orgName;
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			confirm(params) {
+				this.orderFoodDate = params.year + '年' + parseInt(params.month) + '月';
+				this.yearMonth = params.year + '-' + params.month;
+				this.getOrderFoodList();
+			},
+			maskShow(item) {
+				this.show1 = true;
+				this.orderFoodId = item.id;
+			},
+			close() {
+				this.show1 = false;
+			},
+			submit() {
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				if(this.orderFoodId.length == 0) {
+					staffHomeAPI.add({
+						peopleNum: this.name1
+					}).then((response) => {
+						uni.hideLoading();
+						this.show1 = false;
+						this.getOrderFoodList();
+					}).catch(error => {
+						uni.showToast({
+							title: error,
+							icon: "none"
+						})
+					})
+				} else {
+					staffHomeAPI.update({
+						id: this.orderFoodId,
+						peopleNum: this.name1
+					}).then((response) => {
+						uni.hideLoading();
+						this.show1 = false;
+						this.getOrderFoodList();
+					}).catch(error => {
+						uni.showToast({
+							title: error,
+							icon: "none"
+						})
+					})
+				}
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.head {
+		background: linear-gradient(89.02deg, rgba(18, 114, 238, 1) 1.34%, rgba(102, 169, 255, 1) 99.5%);
+		padding: 40rpx 32rpx;
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		color: rgba(255, 255, 255, 1);
+
+		.department {
+
+			font-size: 36rpx;
+			font-family: 'Medium';
+		}
+
+		.date {
+			width: 218rpx;
+			height: 72rpx;
+			line-height: 72rpx;
+			text-align: center;
+			border-radius: 8px;
+			border: 1px solid rgba(255, 255, 255, 1);
+			position: relative;
+
+			/deep/.uicon-arrow-down {
+				margin-left: 8rpx;
+			}
+
+			.date-box {
+				background-color: #fff;
+				z-index: 999;
+				width: 180rpx;
+				box-shadow: 0px 0px 2px #999999;
+				position: absolute;
+				top: 70rpx;
+				left: 0px;
+
+				.options-item {
+					line-height: 60rpx;
+					padding-left: 16rpx;
+					background-color: #fff;
+					color: #101010;
+					text-align: left;
+				}
+
+			}
+		}
+	}
+
+	// 上报记录
+	.records {
+		background-color: #fff;
+
+		.record-item {
+			font-family: 'PingFang Regular';
+			padding: 0 24rpx;
+			line-height: 88rpx;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			color: rgba(16, 16, 16, 1);
+			border-bottom: 1px solid rgba(232, 232, 232, 1);
+
+		}
+
+		.report {
+			color: rgba(18, 114, 238, 1);
+
+			/deep/.uicon-arrow-right {
+				margin-left: 8rpx;
+			}
+		}
+	}
+
+	.warp {
+
+		position: fixed;
+		left: 0;
+		bottom: 0;
+		width: 100%;
+
+		/deep/.uicon-close {
+			position: absolute;
+			left: 32rpx;
+			top: 6rpx !important;
+
+		}
+
+		;
+
+		.title {
+			color: rgba(16, 16, 16, 100);
+			line-height: 48rpx;
+			color: rgba(16, 16, 16, 1);
+			font-size: 36rpx;
+			text-align: center;
+			position: relative;
+			font-weight: bold
+		}
+	}
+
+	.rect {
+		width: 100%;
+		height: 100%;
+		background-color: #fff;
+		padding: 32rpx 0;
+
+
+
+		/deep/.u-input {
+			width: 87.2%;
+			border-radius: 8px;
+			background-color: rgba(229, 231, 234, 100);
+			margin: 40rpx auto 0;
+			height: 96rpx;
+			line-height: 96rpx !important;
+			padding: 0 16rpx;
+			position: relative;
+
+		}
+
+		/deep/.u-input__input {
+			height: 96rpx !important;
+			line-height: 96rpx !important;
+			text-indent: 24rpx;
+		}
+
+		.unit {
+			width: 20px;
+			height: 20px;
+			position: absolute;
+			top: 140rpx;
+			right: 60rpx;
+			color: rgba(16, 16, 16, 1);
+			font-size: 36rpx;
+
+		}
+
+
+
+		.u-btn {
+			width: 89.2%;
+			color: rgba(255, 255, 255, 100);
+			font-size: 36rpx;
+			border-radius: 8px;
+			margin-top: 48rpx;
+			z-index: 99999;
+			background-color: rgba(31, 74, 153, 1);
+		}
+	}
+</style>

+ 210 - 0
pages/staffHome/staffHome.vue

@@ -0,0 +1,210 @@
+<template>
+	<view>
+		<u-navbar title="职工之家" :is-back="false"></u-navbar>
+		<view class="banner" v-if="false">
+			<view class="">
+				2023年度荆州市地方铁路优先公司
+			</view>
+			<view class="">
+				企业文化建设获奖名单
+			</view>
+		</view>
+
+		<view class="grid">
+			<u-grid :col="3" :border="false">
+				<u-grid-item @click="ckList2()" v-if="false">
+					<view class="icon icon0">
+						<img src="../../assets/img/tdry.png" alt="">
+					</view>
+					<view class="grid-text">荣誉列表</view>
+				</u-grid-item>
+				<u-grid-item @click="gotoUrl('pages/staffHome/teamHonor/teamHonor?type=my')">
+					<view class="icon">
+						<img src="../../assets/img/riFill-vip-crown-2-fill@2x.png" alt="">
+					</view>
+					<view class="grid-text">个人荣誉</view>
+				</u-grid-item>
+				<u-grid-item @click="gotoUrl('pages/staffHome/teamHonor/teamHonor?type=team')">
+					<view class="icon icon0">
+						<img src="../../assets/img/tdry.png" alt="">
+					</view>
+					<view class="grid-text">团队荣誉</view>
+				</u-grid-item>
+				<u-grid-item @click="gotoUrl('pages/staffHome/filesonic')">
+					<view class="icon icon1">
+						<img src="../../assets/img/fxkj.png" alt="">
+					</view>
+					<view class="grid-text">分享空间</view>
+				</u-grid-item>
+				<u-grid-item @click="gotoUrl('pages/staffHome/activityCenter/activityCenter')">
+					<view class="icon icon 2">
+						<img src="../../assets/img/hdzx.png" alt="">
+					</view>
+					<view class="grid-text">活动中心</view>
+				</u-grid-item>
+				<u-grid-item @click="gotoUrl('pages/staffHome/activityReward/activityReward')">
+					<view class="icon icon3">
+						<img src="../../assets/img/hdjl.png" alt="">
+					</view>
+					<view class="grid-text">活动奖励</view>
+				</u-grid-item>
+				<u-grid-item @click="gotoUrl('pages/mine/points/rankingList')">
+					<view class="icon icon4">
+						<img src="../../assets/img/phb.png" alt="">
+					</view>
+					<view class="grid-text">排行榜</view>
+				</u-grid-item>
+				<u-grid-item v-if="false&&userInfo.canteenPermissions" @click="thisGotoUrl('pages/mine/points/pointsExchange/pointsExchange')">
+					<view class="icon icon5">
+						<img src="../../assets/img/jfyh.png" alt="">
+					</view>
+					<view class="grid-text">食堂台账</view>
+				</u-grid-item>
+				<u-grid-item v-if="false&&userInfo.orderFoodFlag" @click="gotoUrl('pages/staffHome/orderReport')">
+					<view class="icon icon6">
+						<img src="../../assets/img/dcsb.png" alt="">
+					</view>
+					<view class="grid-text">订餐上报</view>
+				</u-grid-item>
+			</u-grid>
+		</view>
+
+
+		<tabbar current="1"></tabbar>
+	</view>
+</template>
+
+<script>
+	import * as staffHomeAPI from '@/apis/pagejs/staffHome.js'
+	import tabbar from "../../components/Tabbar.vue"
+
+	export default {
+		components: {
+			tabbar
+		},
+		data() {
+			return {
+				noticeList: [
+					"9dbeddd2-a863-42d0-a145-260fe008bdbb", //	个人荣誉0
+					"412eff92-a443-42f7-98c6-5c67d9e64ad8", //	集体荣誉1
+				],
+				
+				userInfo:{}
+			}
+		},
+		onReady() {
+		
+			//this.getLoadUserOrderFlag();
+		},
+		onShow() {
+			this.userInfo=this.carhelp.getPersonInfo()
+
+		},
+		methods: {
+			thisGotoUrl(url){
+				var url="http://jsrailway.com.cn/railroad-canteen/#/"
+				window.open(url);
+			},
+			getLoadUserOrderFlag() {
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				staffHomeAPI.loadUserOrderFlag().then((response) => {
+					uni.hideLoading();
+					this.isOrderReport = response.data;
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			ckList2() {
+				var url = "/pages/news/list";
+				uni.navigateTo({
+					url: url
+				})
+			},
+			ckList(id, title) {
+				var url = "/pages/news/news?id=" + id + "&title=" + title;
+				uni.navigateTo({
+					url: url
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+		background-color: #fff;
+	}
+
+	.banner {
+		margin: 32rpx;
+		background: url(../../assets/img/banner.png) no-repeat;
+		background-size: 100% 200rpx;
+		color: rgba(255, 255, 255, 1);
+		font-size: 40rpx;
+		text-align: center;
+		padding: 44rpx 0;
+		font-family: 'Medium';
+	}
+
+	.grid {
+		font-family: 'Regular';
+
+		.icon {
+			width: 96rpx;
+			height: 96rpx;
+			border-radius: 8px;
+			background: linear-gradient(180deg, rgba(134, 198, 255, 1) 0%, rgba(76, 161, 255, 1) 100%);
+			display: flex;
+			align-items: center;
+			text-align: center;
+			justify-content: center;
+
+			img {
+				width: 64rpx;
+				height: 64rpx;
+			}
+		}
+
+		.icon0 {
+			background: linear-gradient(180deg, rgba(255, 212, 119, 1) 3%, rgba(255, 186, 88, 1) 100%);
+		}
+
+		.icon1 {
+			background: linear-gradient(180deg, rgba(103, 226, 232, 1) 2%, rgba(54, 202, 209, 1) 100%);
+		}
+
+		.icon2 {
+			background: linear-gradient(180deg, rgba(189, 172, 255, 1) 0%, rgba(162, 139, 255, 1) 100%);
+		}
+
+		.icon3 {
+			background: linear-gradient(180deg, rgba(255, 168, 118, 1) 0%, rgba(255, 152, 92, 1) 100%);
+		}
+
+		.icon4 {
+			background: linear-gradient(180deg, rgba(134, 198, 255, 1) 0%, rgba(76, 161, 255, 1) 100%);
+		}
+
+		.icon5 {
+			background: linear-gradient(180deg, rgba(103, 226, 232, 1) 2%, rgba(54, 202, 209, 1) 100%);
+		}
+
+		.icon6 {
+			background: linear-gradient(180deg, rgba(189, 172, 255, 1) 0%, rgba(162, 139, 255, 1) 100%);
+		}
+
+		.icon7 {
+			background: linear-gradient(180deg, rgba(255, 212, 119, 1) 3%, rgba(255, 186, 88, 1) 100%);
+		}
+
+		.grid-text {
+			margin-top: 16rpx;
+		}
+	}
+</style>

+ 254 - 0
pages/staffHome/teamHonor/badgeDetails-old.vue

@@ -0,0 +1,254 @@
+<template>
+	<view>
+		<u-navbar title="荣誉详情"></u-navbar>
+		<!-- 荣誉名称 -->
+		<view class="honor-name">
+			<view class="icon">
+				<!-- <img :src="info.img" alt=""> -->
+				<!-- <img src="@/assets/img/honorPic2.png" alt=""> -->
+			</view>
+			
+			<view class="explain">
+				{{info.content}}
+			</view>
+			
+		</view>
+		<!-- 荣誉记录 -->
+		<view class="record">
+			<view class="record-title">
+				<view class="rec">
+
+				</view>
+				<view class="text">
+					荣誉记录
+				</view>
+			</view>
+
+			<view class="commend-box"  v-for="(item,i) in list" :key="i">
+				<view class="commend-content">
+					<view class="title">
+						{{item.orgName?item.orgName:item.typeName}}
+					</view>
+					<view class="commendation">
+						{{item.content}}
+					</view>
+					<view class="integral">
+						<view class="flex">
+							<view class="icon">
+								<img src="../../../assets/img/riFill-copper-diamond-fill@2x.png" alt="">
+							</view>
+							<view class="text">
+								{{item.scoreInfo}}积分
+							</view>
+						</view>
+						<view class="date">
+							{{item.createTime}}
+						</view>
+					</view>
+				</view>
+				
+			</view>
+			
+		</view>
+		<u-divider bg-color="#F2F4F4" border-color="#CFD2D5">已经到底了</u-divider>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/cite.js'
+	
+	export default {
+		data() {
+			return {
+				type:'',
+				listForm:{
+					pageIndex:1,
+					pageSize:20,
+					
+				},
+				info:{},
+				list:[],
+				recordsTotal:0,
+			}
+		},
+		onLoad(op){
+			this.type=op.id
+			
+			this.getInfo()
+			
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {			
+				this.myLoadmore();
+			}
+		},
+		methods: {
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+			getInfo(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.editBadge(this.type).then((res) => {
+					
+					uni.hideLoading();
+					//this.list=response.data.data
+					this.info=res.data.cite;
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			getList(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.pageList(this.listForm).then((res) => {
+					
+					uni.hideLoading();
+					//this.list=response.data.data
+					if(this.listForm.pageIndex==1){
+						this.list = res.data.data;
+					}else{
+						this.list = [
+							...this.list,
+							...res.data.data
+						];
+					}
+					this.recordsTotal = res.data.recordsTotal;
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		font-family: 'Regular';
+	}
+	// 荣誉名称
+	.honor-name {
+		background-color: #fff;
+		padding: 32rpx 0;
+		text-align: center;
+    
+		.icon {
+			img {
+				max-width: 536rpx;
+				height: 140rpx;
+			}
+		}
+
+		.name {
+			color: rgba(51, 51, 51, 1);
+			font-size: 18px;
+		}
+
+		.explain {
+			color: rgba(119, 119, 119, 1);
+			margin-top: 24rpx;
+
+		}
+	}
+
+	// 荣誉记录
+	.record {
+		margin-top: 26px;
+		padding: 0 32rpx;
+
+		.record-title {
+			display: flex;
+			align-items: center;
+			margin-bottom: 19px;
+           color: rgba(51, 51, 51, 1);
+            font-size: 18px;
+			line-height: 18px;
+			font-family: 'Regular';
+			.rec {
+				width: 4px;
+				height: 16px;
+				background-color: rgba(31, 74, 153, 1);
+				margin-right: 4px;
+			}
+		}
+
+
+		.commend-box {
+			background-color: #fff;
+			border-radius: 8px;
+			padding: 24rpx;
+			display: flex;
+			justify-content: space-between;
+            margin-bottom: 12px;
+			.commend-content {
+				    width: 100%;
+				.title {
+					color: rgba(51, 51, 51, 1);
+					font-size: 16px;
+					line-height: 23px;
+					font-family: 'Medium';
+				}
+
+				.commendation {
+					color: rgba(119, 119, 119, 1);
+					font-size: 12px;
+					line-height: 17px;
+					margin-top: 4rpx;
+					
+				}
+
+				.integral {
+					margin-top: 14rpx;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					
+					.flex{
+						display: flex;
+						border-radius: 50px;
+						height: 28px;
+						font-size: 24rpx;
+						background-color: rgba(230, 239, 255, 1);
+						justify-content: center;
+						align-items: center;
+						padding: 0 16rpx;
+						.icon {
+							width: 32rpx;
+							height: 32rpx;
+						
+							img {
+								width: 100%;
+							}
+						}
+						
+						.text {
+							font-size: 24rpx;
+							color: rgba(119, 119, 119, 1);
+						}
+					}
+
+				}
+				.date{
+					color: rgba(153, 153, 153, 1);
+					font-size: 12px;
+				}
+			}
+
+			
+		}
+	}
+</style>

+ 413 - 0
pages/staffHome/teamHonor/badgeDetails.vue

@@ -0,0 +1,413 @@
+<template>
+	<view>
+		<u-navbar title="" ></u-navbar>
+		
+		<view class="news">
+			<table  class="table"  >
+				<tr>
+					<td class="tb31" colspan="2">
+					<h3>{{info.remark?""+info.remark:''}}{{info.honorId}}名单</h3></td>
+				</tr>
+				<tr v-if="false">
+					<td  class="tb1" v-html='htmlShow("表彰词")'></td>
+					<td class="tb2">
+						<textarea  style="width: 100%;" :auto-height="true"
+					v-model="info.content"
+					 name="" id="" readonly ></textarea></td>
+				</tr>
+				<tr v-if="info.orgName">
+					<td  class="tb1"  v-html='htmlShow(info.orgName)' ></td>
+					<td class="tb2">{{info.orgUserNames}}</td>
+				</tr>
+				<template v-for="(item,j) in dept">
+					<template>
+						<tr :key="j">
+							<td class="tb1"  v-html="htmlShow(item.orgName)" ></td>
+							 <td  class="tb2">
+								 
+							 <template v-for="(str,k) in item.list">
+							 	<template v-if="k!=0">
+							 		, 
+							 	</template>
+								<span class="tb22" :key="k">{{showName(str)}}</span>	
+							 	
+							 </template>
+							</td>
+						</tr>
+						
+					</template>
+				</template>
+				<tr>
+					<td  class="tb1">奖励<br/>
+					积分</td>
+					<td class="tb2"> <span v-if="info.isTeam" >每人</span>+{{info.scoreInfo}}积分</td>
+				</tr>
+				
+				
+			</table>
+			
+		   </view>
+		<u-divider 
+		
+		border-color="#CFD2D5">已经到底了</u-divider>
+		 <view class="reward-group" v-if="false" >
+			 <view >
+			 	<view class="reward-item-title" style="text-align: center;font-size: 36rpx;">
+			 		{{info.remark?""+info.remark:''}}{{info.honorId}}名单
+			 	</view>
+			 	
+			 </view>
+			 <view >
+			 	
+			 	<view class="reward-item">
+			 		
+					<textarea  style="width: 100%;" :auto-height="true"
+					v-model="info.content"
+					 name="" id="" readonly ></textarea>
+			 	</view>
+			 </view>
+			 
+			 <template v-for="(item,i) in dept">
+				 <view :key="i" >
+				 				 
+				 	<view class="reward-item-title">
+				 		{{item.orgName}}
+				 	</view>
+				 	<view class="reward-item"  >
+						
+				 		
+				 	</view>
+				 </view>
+			 </template>
+			 
+			 <view >
+				 
+			 	<view class="reward-item-title">
+			 		{{info.orgName}} {{info.userName}}
+			 	</view>
+			 	<view class="reward-item" v-if="info.orgUserNames">
+			 		{{info.orgUserNames}}
+			 	</view>
+			 </view>
+			 <view >
+			 	<view class="reward-item">
+			 		奖励积分  <span v-if="info.isTeam" >每人</span>+{{info.scoreInfo}}积分
+			 	</view>
+			 	<view class="reward-item">
+			 		
+			 	</view>
+			 </view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/cite.js'
+	
+	export default {
+		data() {
+			return {
+				type:'',
+				listForm:{
+					pageIndex:1,
+					pageSize:20,
+					
+				},
+				info:{},
+				list:[],
+				dept:[],
+				noticeList:[],
+				recordsTotal:0,
+			}
+		},
+		onLoad(op){
+			this.type=op.id
+			
+			this.getInfo()
+			
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {			
+				this.myLoadmore();
+			}
+		},
+		methods: {
+			showName(str){
+				if(str.length!=2){
+					
+						return  str
+				}else if(str.length==2){
+					return str[0]+" "+str[1]
+					
+				}
+					
+				return  'error'
+			},
+			htmlShow(str){
+				var t="";
+				for(var i in str){
+					t+=str[i]+"<br/>"
+				}
+				return  t
+			},
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+			getInfo(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.editBadge(this.type).then((res) => {
+					
+					uni.hideLoading();
+					//this.list=response.data.data
+					this.info=res.data.cite;
+					if(this.info.regUserList&&this.info.regUserList.length){
+						this.info.orgUserNames=this.info.regUserList.map(item=>{
+							return this.showName(item.name)
+						}).join()
+						if(this.info.regUserList&&this.info.regUserList.length&&!this.info.orgName){
+							this.dept=[];
+							var sz=[];
+							var list=this.info.regUserList;
+							for(var i in list){
+								var item=list[i];
+								var index=sz.indexOf(item.orgName);
+								if(index!=-1){
+									this.dept[index].list.push(item.name)
+								}else{
+									sz.push(item.orgName);
+									this.dept.push({
+										orgName:item.orgName,
+										list:[item.name]
+									})
+								}
+							}
+							console.log(this.dept)
+							
+						}
+					}
+					
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			getList(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.pageList(this.listForm).then((res) => {
+					
+					uni.hideLoading();
+					//this.list=response.data.data
+					if(this.listForm.pageIndex==1){
+						this.list = res.data.data;
+					}else{
+						this.list = [
+							...this.list,
+							...res.data.data
+						];
+					}
+					this.recordsTotal = res.data.recordsTotal;
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page{
+		background-color: #ffffff;
+		font-family: 'Regular';
+	}
+	.news{
+		margin: 10px;
+	}
+	.table{
+		
+		border-collapse:collapse;
+		    background-color: #fff;
+		width: 100%;
+		border: 1px solid;
+		.trtop{
+			    border-top: 2px solid;
+		}
+		td{
+			border: 1px solid;
+			
+			margin: 0;
+			padding: 10px 0px;
+			
+		}
+		.tb22{
+			margin: 0 4px;
+		}
+		.tb1{
+			text-align: center;
+			font-weight: bold;
+			font-size: 28rpx;
+			width: 10%;
+			max-width: 100rpx;
+			min-width: 80rpx;
+		}
+		.tb2{
+			
+			font-size: 28rpx;
+		}
+		.tb32,.tb31{
+			text-align: center;
+			font-weight: bold;
+			font-size: 14px;
+		}
+		.tb33{
+			font-weight: normal;
+			font-size: 12px;
+			color: #565656;
+		}
+	}
+	.reward-group{
+		 margin:24rpx 32rpx;
+		 background-color: #fff;
+		  
+		 .reward-item, .reward-item-title{
+			 border-bottom: solid 1px #e6e6e6;
+			 line-height: 44px;
+			 padding-left: 16rpx;
+		 }
+		 .reward-item-title{
+			 font-weight: bold;
+		 }
+		 .reward-item{
+			min-height: 64px;
+		 }
+	}
+	page{
+		font-family: 'Regular';
+	}
+	// 荣誉名称
+	.honor-name {
+		background-color: #fff;
+		padding: 32rpx 0;
+		text-align: center;
+    
+		.icon {
+			img {
+				max-width: 536rpx;
+				height: 140rpx;
+			}
+		}
+
+		.name {
+			color: rgba(51, 51, 51, 1);
+			font-size: 18px;
+		}
+
+		.explain {
+			color: rgba(119, 119, 119, 1);
+			margin-top: 24rpx;
+
+		}
+	}
+
+	// 荣誉记录
+	.record {
+		margin-top: 26px;
+		padding: 0 32rpx;
+
+		.record-title {
+			display: flex;
+			align-items: center;
+			margin-bottom: 19px;
+           color: rgba(51, 51, 51, 1);
+            font-size: 18px;
+			line-height: 18px;
+			font-family: 'Regular';
+			.rec {
+				width: 4px;
+				height: 16px;
+				background-color: rgba(31, 74, 153, 1);
+				margin-right: 4px;
+			}
+		}
+
+
+		.commend-box {
+			background-color: #fff;
+			border-radius: 8px;
+			padding: 24rpx;
+			display: flex;
+			justify-content: space-between;
+            margin-bottom: 12px;
+			.commend-content {
+				    width: 100%;
+				.title {
+					color: rgba(51, 51, 51, 1);
+					font-size: 16px;
+					line-height: 23px;
+					font-family: 'Medium';
+				}
+
+				.commendation {
+					color: rgba(119, 119, 119, 1);
+					font-size: 12px;
+					line-height: 17px;
+					margin-top: 4rpx;
+					
+				}
+
+				.integral {
+					margin-top: 14rpx;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					
+					.flex{
+						display: flex;
+						border-radius: 50px;
+						height: 28px;
+						font-size: 24rpx;
+						background-color: rgba(230, 239, 255, 1);
+						justify-content: center;
+						align-items: center;
+						padding: 0 16rpx;
+						.icon {
+							width: 32rpx;
+							height: 32rpx;
+						
+							img {
+								width: 100%;
+							}
+						}
+						
+						.text {
+							font-size: 24rpx;
+							color: rgba(119, 119, 119, 1);
+						}
+					}
+
+				}
+				.date{
+					color: rgba(153, 153, 153, 1);
+					font-size: 12px;
+				}
+			}
+
+			
+		}
+	}
+</style>

+ 276 - 0
pages/staffHome/teamHonor/teamHonor.vue

@@ -0,0 +1,276 @@
+<template>
+	<view>
+		<u-navbar :title="title"></u-navbar>
+		<view class="tabs">
+			<u-tabs bar-width="60" inactive-color="#777777" active-color="#018bb9" height="88" :list="tabList" :is-scroll="false" :current="current" @change="change"></u-tabs>
+		</view>
+		
+		<view class="commend-box" v-for="(item,i) in list" :key="i" @click="ckItem(item)">
+			<view class="commend-content">
+				<view class="title">
+					<view class="title1">{{item.honorId}}</view>
+					<view class="title2"></view>
+				</view>
+				<!-- <view class="commendation">
+					{{item.content}}
+					
+				</view> -->
+				<view  class="integralMain">
+					<view class="integral">
+						<view class="icon">
+							<img src="../../../assets/img/riFill-copper-diamond-fill@2x.png" alt="">
+						</view>
+						<view class="text">
+							<span  class="text1"><span v-if="type=='team'" >每人</span>+{{item.scoreInfo}}积分</span>
+							
+						</view>
+					</view>
+					<span  class="text2"   >{{item.remark?item.remark:''}}<!-- {{item.userName?item.userName:item.badgeName}} --> </span>
+					
+				</view>
+				
+			</view>
+			<view class="gainer" v-if="false" >
+				<template v-if="type=='team'">
+					<!-- <img src="@/assets/img/honorPic2.png" alt=""> -->
+					<!-- <img v-if="item.badge&&item.badge.imgUrl" :src="item.badge.imgUrl" alt="">
+					<u-avatar  v-else  size="136" ></u-avatar> -->
+					
+				</template>
+				<template v-if="type=='my'">
+				<!-- 	<img v-if="item.regUser&&item.regUser.headImg" :src="item.regUser.headImg" alt="">
+					<u-avatar  v-else  size="136" ></u-avatar> -->
+				</template>
+			
+			
+				<view class="name">
+					<!-- {{item.userName?item.userName:item.badgeName}} -->
+				</view>
+			</view>
+		</view>
+		
+		
+		<u-divider :isnone="list.length==0" nonetext="没有找到相关内容" bg-color="#F2F4F4" border-color="#CFD2D5">已经到底了</u-divider>
+	</view>
+</template>
+
+<script>
+	import * as API from '@/apis/pagejs/cite.js'
+	
+	export default {
+		data() {
+			return {
+				title:'',
+				type:'',
+				listForm:{
+					pageIndex:1,
+					pageSize:20,
+					
+				},
+				list:[],
+				recordsTotal:0,
+				tabList: [{
+					name: '全部'
+				}, {
+					name: '荣誉类型'
+				}, {
+					name: '荣誉类型',
+				}],
+				current: 0
+			}
+		},
+		onLoad(op){
+			if(op.type){
+				this.type=op.type
+				if(this.type=='my'){
+					this.listForm.isTeam=false
+					this.title="个人荣誉"
+				}else if(this.type=='team'){
+					this.listForm.isTeam=true
+					this.title="团队荣誉"
+				}	
+			}
+			this.getByType()
+			this.getList()
+		},
+		onReachBottom() {
+			if (this.list.length < this.recordsTotal) {			
+				this.myLoadmore();
+			}
+		},
+		methods: {
+			
+			ckItem(item){
+				var url="/pages/staffHome/teamHonor/badgeDetails?id="+item.id;
+				uni.navigateTo({
+					url:url
+				})
+			},
+			myLoadmore(){
+				this.listForm.pageIndex += 1;
+				this.getList();
+			},
+			getList(){
+				uni.showLoading({
+					title: "加载中",
+					mask: true,
+				})
+				
+				API.pageList(this.listForm).then((res) => {
+					
+					uni.hideLoading();
+					//this.list=response.data.data
+					if(this.listForm.pageIndex==1){
+						this.list = res.data.data;
+					}else{
+						this.list = [
+							...this.list,
+							...res.data.data
+						];
+					}
+					this.recordsTotal = res.data.recordsTotal;
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			getByType(){
+				
+			
+				
+				API.getByType(this.type).then((response) => {
+				
+					this.tabList=[
+						{
+							id:'',
+							name:'全部'
+						},
+						...response.data
+					]
+					
+				}).catch(error => {
+					uni.showToast({
+						title: error,
+						icon: "none"
+					})
+				})
+			},
+			change(index) {
+				this.current = index;
+				
+				this.listForm.pageIndex = 1;
+				this.listForm.type=this.tabList[index].id
+				this.getList()
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.tabs{
+		background-color: rgba(255, 255, 255, 1);
+		// /deep/.u-tabs{
+		// 	width: 408rpx;
+		// }
+		margin-bottom: 24rpx;
+	}
+	
+	.commend-box{
+		background-color: #fff;
+		border-radius: 8px;
+	    margin: 0 32rpx 24rpx 32rpx;
+		padding: 24rpx;
+		display: flex;
+		justify-content: space-between;
+		.commend-content{
+			width: 100%;
+			.title{
+				color: rgba(51, 51, 51, 1);
+				font-size: 16px;
+				line-height: 23px;
+				font-family: 'Medium';
+				display: flex;
+				justify-content: space-between;
+				
+				.title1{
+					width: 60%;
+					min-width:  430rpx;
+					font-weight: bold;
+					padding-left: 4px;
+					    padding-bottom: 4px;
+				}
+				.title2{
+					width: 30%;
+					text-align: right;
+				}
+			}
+			.commendation{
+				color: rgba(119, 119, 119, 1);
+				font-size: 12px;
+				line-height: 17px;
+				margin-top: 4rpx;
+				padding: 8rpx 0px;
+				//width: 430rpx;
+			
+			}
+			.commendationMy{
+				
+				
+			}
+			.integralMain{
+				display: flex;
+				justify-content: space-between;
+				.text2{
+					vertical-align: middle;
+					padding-top: 14rpx;
+					margin-top: 10rpx;
+					font-size: 32rpx;
+				}
+			}
+			.integral{
+				font-family: 'Regular';
+				margin-top: 14rpx;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				background-color: rgba(230, 239, 255, 1);
+				width: 260rpx;
+				border-radius: 50px;
+				height: 28px;
+				font-size: 24rpx;
+				.icon{
+					width: 32rpx;
+					height: 32rpx;
+					img{
+						width: 100%;
+					}
+				}
+				.text{
+					font-size: 24rpx;
+					color: rgba(119, 119, 119, 1);
+					
+					
+				}
+				
+			}
+		}
+	
+	.gainer{
+			
+		img{
+			width: 136rpx;
+			height: 140rpx;
+			border-radius: 50px;
+		}
+		.name{
+			text-align: center;
+			color: rgba(51, 51, 51, 1);
+			font-family: 'Regular';
+		
+		}
+	}
+	}
+</style>