浏览代码

修改:1.修改我的页面部分样式;2.修改研究报告tab;3.增加培训实况;

littleblue55 5 天之前
父节点
当前提交
ba41876c12

+ 23 - 0
api/edu.js

@@ -135,4 +135,27 @@ export function loadCreditDatial(data){
 		'method': 'post',
 		data: data
 	})
+}
+
+
+//培训实况
+export function loadRecordList(data){
+	return request({
+		'url': '/live/list',
+		headers: {
+			isToken: true
+		},
+		'method': 'post',
+		data: data
+	})
+}
+
+export function loadRecordDetailById(id){
+	return request({
+		'url': '/live/'+ id,
+		headers: {
+			isToken: true
+		},
+		'method': 'get'
+	})
 }

+ 22 - 0
pages.json

@@ -558,6 +558,28 @@
 					"titleNView": false
 				}
 			}
+		},
+		{
+			"path" : "pages/goOnEdu/trainRecord/trainRecord",
+			"style": {
+				"navigationBarBackgroundColor": "#FFFFFF",
+				"navigationBarTitleText": "培训实况",
+				"enablePullDownRefresh": false,
+				"app-plus": {
+					"titleNView": false
+				}
+			}
+		},
+		{
+			"path" : "pages/goOnEdu/trainRecordDetail/trainRecordDetail",
+			"style": {
+				"navigationBarBackgroundColor": "#FFFFFF",
+				"navigationBarTitleText": "实况详情",
+				"enablePullDownRefresh": false,
+				"app-plus": {
+					"titleNView": false
+				}
+			}
 		}
 	],
 	"globalStyle": {

+ 82 - 46
pages/goOnEdu/course/courseHome/courseHome.vue

@@ -1,23 +1,39 @@
 <template>
 	<view class="container">
-		<!-- 搜索 -->
-		<u-search @search="toSearch" :show-action="false" shape="round" placeholder="搜索您想要的内容"
-			v-model="searchForm.keyword"></u-search>
-		<!-- tabs -->
-		<view class="tabs-container">
-			<scroll-view scroll-x="true" style="width:100%;" :scroll-with-animation="true" :show-scrollbar="true">
-				<u-tabs style="flex: 1;" :list="tabsList" :is-scroll="true" font-size="24" :bold="false"
-					inactive-color="#000000" active-color="#000000" :bar-style="{'background-color': '#2979ff'}"
-					:gutter="30" height="45" v-model="currentTab" @change="changeTab"></u-tabs>
-			</scroll-view>
-			<!-- <u-icon name="list" style="flex: 0 0 auto;padding-left: 20rpx;"></u-icon> -->
+		<view class="header-box">
+			<u-search @search="toSearch" :show-action="false" shape="round" placeholder="搜索您想要的内容"
+				v-model="searchForm.keyword"></u-search>
+			<!-- tabs -->
+			<view class="tabs-container">
+				<scroll-view scroll-x="true" style="width:100%;" :scroll-with-animation="true" :show-scrollbar="true">
+					<u-tabs style="flex: 1;" 
+					:list="tabsList" 
+					:is-scroll="true" 
+					font-size="28" 
+					:bold="false"
+					inactive-color="#000000" 
+					active-color="#ffffff"
+					:bar-style="{'background-color': '#2979ff'}"
+					:active-item-style="{'background-color': '#2979ff', 'border-radius':'30rpx'}"
+					:gutter="35" 
+					height="45" 
+					v-model="currentTab" 
+					:show-bar="false"
+					duration="0"
+					@change="changeTab"></u-tabs>
+				</scroll-view>
+				<!-- <u-icon name="list" style="flex: 0 0 auto;padding-left: 20rpx;"></u-icon> -->
+			</view>
 		</view>
+		<!-- 搜索 -->
+
 		<!-- 列表 -->
 		<view class="course-list">
-			<view v-for="(course,index) in filterCourses" :key="course.id" >
+			<view v-for="(course,index) in filterCourses" :key="course.id">
 				<view class="course-item">
 					<view class="course-item-image">
-						<image class="course-image" :src="course.thumImg ? course.thumImg : course.cover" mode="aspectFit" @click="toPage(course)"></image>
+						<image class="course-image" :src="course.thumImg ? course.thumImg : course.cover"
+							mode="aspectFit" @click="toPage(course)"></image>
 					</view>
 					<view class="course-item-content">
 						<view class="course-title">
@@ -43,16 +59,17 @@
 						</view>
 						<view v-else style="height: 30rpx;width: 100%;"></view> -->
 						<!-- 如果没结束 -->
-						<view class="func" v-if="course.status !== '2' && course.status !== '3'" @click="toPage(course)">
+						<view class="func" v-if="course.status !== '2' && course.status !== '3'"
+							@click="toPage(course)">
 							<!-- 如果是免费,直接显示免费 -->
 							<view v-if="course.viewMode==='1'" class="func-box" style="justify-content: flex-end;">
 								<view class="button free">免费</view>
 							</view>
-							<view v-else-if="course.viewMode==='2' && isMember" class="func-box" >
+							<view v-else-if="course.viewMode==='2' && isMember" class="func-box">
 								<view class="price">¥{{ course.price }}元</view>
 								<view class="button member-free">会员免费</view>
 							</view>
-							<view v-else-if="course.viewMode==='2' && !isMember" class="func-box" >
+							<view v-else-if="course.viewMode==='2' && !isMember" class="func-box">
 								<view style="flex: 0 0 auto;display: flex;align-items: center;">
 									<view class="member-free">
 										会员免费
@@ -91,13 +108,16 @@
 						<!-- 如果课程结束了 -->
 						<view class="func" v-else>
 							<!-- regType: 0 线下 ;1 线上 -->
-							<view v-if="course.regType==='0' && course.status === '2'" class="func-box" style="justify-content: flex-end;">
+							<view v-if="course.regType==='0' && course.status === '2'" class="func-box"
+								style="justify-content: flex-end;">
 								<view class="button over" @click="toPage(course)">已结束</view>
 							</view>
-							<view v-if="course.regType==='0' && course.status === '3' && !course.actId" class="func-box" style="justify-content: flex-end;">
+							<view v-if="course.regType==='0' && course.status === '3' && !course.actId" class="func-box"
+								style="justify-content: flex-end;">
 								<view class="button over" @click="toPage(course)">已结束</view>
 							</view>
-							<view v-if="course.regType==='0' && course.status === '3' && course.actId" class="func-box" style="justify-content: flex-end;">
+							<view v-if="course.regType==='0' && course.status === '3' && course.actId" class="func-box"
+								style="justify-content: flex-end;">
 								<view class="button-long over" @click="toAct(course.actId)">已结束,点击查看活动</view>
 							</view>
 							<view v-if="course.regType==='1'" class="func-box" style="justify-content: flex-end;">
@@ -229,23 +249,23 @@
 	// 日期格式:xxxx年xx月xx日(星期x)
 	function getDateWeek(dateStr) {
 		// 将日期字符串转换为 Date 对象
-		  const date = new Date(dateStr.replace(/-/g, '/'));
-		  // 检查日期是否有效
-		  if (isNaN(date.getTime())) {
-		    return dateStr; // 如果无效,返回原字符串
-		  }
-		  // 获取年月日
-		  const year = date.getFullYear();
-		  const month = String(date.getMonth() + 1).padStart(2, '0');
-		  const day = String(date.getDate()).padStart(2, '0');
-		  // 获取星期几
-		  const weekdays = ['日', '一', '二', '三', '四', '五', '六'];
-		  const weekday = weekdays[date.getDay()];
-		  // 获取时分
-		  const hours = String(date.getHours()).padStart(2, '0');
-		  const minutes = String(date.getMinutes()).padStart(2, '0');
-		  // 组合成新格式
-		  return `${year}-${month}-${day}(星期${weekday}) ${hours}:${minutes}`;
+		const date = new Date(dateStr.replace(/-/g, '/'));
+		// 检查日期是否有效
+		if (isNaN(date.getTime())) {
+			return dateStr; // 如果无效,返回原字符串
+		}
+		// 获取年月日
+		const year = date.getFullYear();
+		const month = String(date.getMonth() + 1).padStart(2, '0');
+		const day = String(date.getDate()).padStart(2, '0');
+		// 获取星期几
+		const weekdays = ['日', '一', '二', '三', '四', '五', '六'];
+		const weekday = weekdays[date.getDay()];
+		// 获取时分
+		const hours = String(date.getHours()).padStart(2, '0');
+		const minutes = String(date.getMinutes()).padStart(2, '0');
+		// 组合成新格式
+		return `${year}-${month}-${day}(星期${weekday}) ${hours}:${minutes}`;
 	}
 
 	// 切换搜索框下面的tab
@@ -331,8 +351,8 @@
 		}
 		search(searchForm.value.keyword);
 	}
-	
-	function toAct(actId){
+
+	function toAct(actId) {
 		// console.log(actId);
 		uni.navigateTo({
 			url: `/pages/dynamic/dynamicDetail/dynamicDetail?id=${actId}`
@@ -344,30 +364,42 @@
 		init();
 		watch(currentTab, (newValue) => {
 			courseStore.setCurrentTab(newValue); // 如果需要在切换时更新 Pinia 状态
-		});
+		}); 
 	});
 	onReachBottom(() => {
 		loadmore()
 	})
 </script>
-
+<style>
+	::v-deep(.u-tab-item){
+		margin-right: 40rpx;
+	}
+</style>
 <style lang="scss" scoped>
 	.container {
 		// padding: 20px;
 		// width: 100vw;
 		// overflow: hidden;
+		.header-box{
+			@include topMagnet();
+			background: #ffffff;
+		}
 	}
 
 	.title {
 		font-size: 48rpx;
 		margin-bottom: 30rpx;
 	}
+
 	.tabs-container {
-	  padding-top: 20rpx;
-	  display: flex;
-	  width: 100%; /* 确保宽度足够 */
-	  overflow-x: auto; /* 横向滚动 */
-	  -webkit-overflow-scrolling: touch; /* 在iOS上启用流畅滚动 */
+		padding: 20rpx 0 10rpx;
+		display: flex;
+		width: 100%;
+		/* 确保宽度足够 */
+		overflow-x: auto;
+		/* 横向滚动 */
+		-webkit-overflow-scrolling: touch;
+		/* 在iOS上启用流畅滚动 */
 	}
 
 	.course-item {
@@ -423,9 +455,11 @@
 				font-size: $uni-font-size-2;
 				font-weight: bold;
 				margin-top: 10rpx;
+
 				view {
 					margin-bottom: 0rpx;
 				}
+
 				.func-box {
 					display: flex;
 					justify-content: space-between;
@@ -437,6 +471,7 @@
 					text-align: center;
 					width: 130rpx;
 				}
+
 				.button-long {
 					text-align: center;
 					width: 270rpx;
@@ -466,7 +501,8 @@
 					border-radius: $uni-card-border-radius;
 					color: $uni-text-color-inverse;
 				}
-				.over{
+
+				.over {
 					padding: 6rpx 25rpx;
 					border-radius: $uni-card-border-radius;
 					color: $uni-text-color-inverse;

+ 6 - 1
pages/goOnEdu/index.vue

@@ -8,6 +8,10 @@
 			<image :src="`${FILE_URL}/edu-icon/net.png`"></image>
 			<text>网络教育</text>
 		</view>
+		<view class="main-btn" @click="toPage(trainUrl)">
+			<image :src="`${FILE_URL}/train-record.png`"></image>
+			<text>培训实况</text>
+		</view>
 	</view>
 </template>
 
@@ -18,7 +22,8 @@
 			return {
 				FILE_URL: configService.FILE_URL,
 				netAppid: "wx65323471c83da344",
-				courseUrl: "/pages/goOnEdu/course/index"
+				courseUrl: "/pages/goOnEdu/course/index",
+				trainUrl: "/pages/goOnEdu/trainRecord/trainRecord"
 			};
 		},
 		methods: {

+ 220 - 0
pages/goOnEdu/trainRecord/trainRecord.vue

@@ -0,0 +1,220 @@
+<template>
+	<view class="container">
+		<u-sticky>
+			<view class="search-box">
+				<u-search v-model="searchForm.keyword" :clearabled="true" bg-color="#E5E5E5" placeholder="请输入搜索内容"
+					@search="onSearchConfirm" @custom="onSearchConfirm"></u-search>
+			</view>
+		</u-sticky>
+		<view class="list-box">
+			<view class="list-item-box" v-for="item in list" :key="item.id" @click="onDynamicClick(item)">
+				<view class="main-box">
+					<view class="icon-box">
+						<!-- <view class="iconfont icon-yingfengdongtai"></view> -->
+						<image
+							mode="aspectFill"
+							style="width: 250rpx;height: 200rpx;"
+							:src="item.cover ? item.cover : '/static/images/avatar-img/1.png'"></image>
+					</view>
+					<view class="content-box">
+						<view class="title" style="margin-bottom: 30rpx;">
+							{{item.title}}
+						</view>
+						<view class="date" style="text-align: right;">
+							{{item.date}}
+						</view>
+					</view>
+				</view>
+				<view class="line-box"></view>
+			</view>
+		</view>
+		<u-loadmore :status="status" :load-text="loadText" style="margin: 20rpx 0;"/>
+	</view>
+</template>
+
+<script setup>
+	import {
+		ref
+	} from 'vue'
+	import {
+		onLoad,onReachBottom
+	} from '@dcloudio/uni-app'
+	import { loadRecordList } from '@/api/edu.js'
+	const uToast = ref()
+	import configService from '@/utils/baseurl.js'
+	const FILE_URL = configService.FILE_URL;
+	const searchInputStyle = {
+		backgroundColor: '#E5E5E5'
+	}
+	const searchForm = ref({
+		keyword: '',
+		pageNumber: 1,
+		pageSize: 10
+	})
+	const total = ref(0);
+	const status = ref('loadmore');
+	const loadText = ref({
+		loadmore: '点击或上拉加载更多',
+		loading: '努力加载中',
+		nomore: '已加载全部数据'
+	})
+	const list = ref([])
+
+	function onDynamicClick(dynamic) {
+		uni.navigateTo({
+			url: `/pages/dynamic/dynamicDetail/dynamicDetail?id=${dynamic.id}&title=${dynamic.title}`
+		})
+	}
+	function onSearchConfirm() {
+		// console.log(searchForm.value.keyword, 1211)
+		searchForm.value.pageNumber = 1
+		search()
+	}
+
+	function search() {
+		status.value = 'loading'
+		list.value = searchForm.value.pageNumber === 1 ? [] : list.value
+		loadRecordList(searchForm.value).then(res => {
+			total.value = res.count
+			list.value = [...list.value, ...res.data]
+			searchForm.value.pageNumber = searchForm.value.pageNumber + 1
+			if(total.value === list.value.length){
+				status.value = 'nomore' 
+			}else{
+				status.value = 'loadmore' 
+			}
+		}).catch(err=>{
+			status.value = 'nomore'
+		})
+	}
+	onLoad(() => {
+		searchForm.value.pageNumber = 1
+		search()
+	})
+	onReachBottom(()=>{
+		if(status.value === 'nomore'){
+			return
+		}
+		search()
+	})
+</script>
+
+<style lang="scss" scoped>
+	.container {
+		width: 100vw;
+		background-color: #FFFFFF;
+		padding: 0 20rpx env(safe-area-inset-bottom, 0);
+
+		.search-box {
+			margin-bottom: 20rpx;
+
+			::v-deep(.u-search) {
+				background-color: #e5e5e5;
+				border-radius: 50rpx;
+
+				.u-action {
+					width: 18%;
+					background-color: $uni-color-primary;
+					border-radius: 50rpx;
+					color: $uni-text-color-inverse;
+					margin-right: 8rpx;
+					font-size: 28rpx;
+					line-height: 50rpx;
+					letter-spacing: 3rpx;
+					text-align: center;
+				}
+			}
+		}
+
+		.list-box {
+			padding: 0 20rpx;
+
+			.list-item-box {
+				.main-box {
+					display: flex;
+					// justify-content: space-between;
+					// align-items: center;
+					padding: 15rpx 0;
+
+					&:active {
+						background-color: $uni-bg-color-hover;
+					}
+
+					.icon-box {
+						flex: 0 0 auto;
+						// width: 15%;
+						margin-right: 20rpx;
+						display: flex;
+						justify-content: center;
+						align-items: center;
+						image{
+							border-radius: 20rpx;
+						}
+						.icon {
+							width: 70rpx;
+							height: 70rpx;
+						}
+
+						.iconfont {
+							font-size: 60rpx;
+							color: #0069f6;
+						}
+					}
+
+					.content-box {
+						// width: 67%;
+						display: flex;
+						flex-direction: column;
+						// justify-content: space-around;
+						justify-content: center;
+						gap: 10rpx;
+						width: 100%;
+
+						.title {
+							// height: calc(70% - 5rpx);
+							font-size: $uni-title-font-size-2;
+							font-weight: bold;
+						}
+
+						.text {
+							height: calc(30% - 5rpx);
+							font-size: $uni-font-size-3;
+							color: $uni-text-color-grey;
+							@include text-overflow();
+						}
+					}
+
+					.other-box {
+						width: 18%;
+						display: flex;
+						flex-direction: column;
+						justify-content: space-around;
+						align-items: center;
+						gap: 10rpx;
+
+						.date {
+							font-size: $uni-font-size-3;
+							color: $uni-text-color-grey;
+						}
+
+						.tag {
+							font-size: $uni-font-size-3;
+							width: 42rpx;
+							background-color: $uni-color-error;
+							color: $uni-text-color-inverse;
+							border-radius: 20rpx;
+							text-align: center;
+						}
+					}
+				}
+
+				.line-box {
+					height: 1rpx;
+					width: 80%;
+					background-color: #E5E5E5;
+					margin: 0 auto;
+				}
+			}
+		}
+	}
+</style>

+ 140 - 0
pages/goOnEdu/trainRecordDetail/trainRecordDetail.vue

@@ -0,0 +1,140 @@
+<template>
+	<view class="announcement-details">
+		<text class="title">{{ announcement.title }}</text>
+		<text class="date">{{ announcement.date }}</text>
+		<view class="content">
+			<u-parse :html="announcement.content" :selectable="true" :show-with-animation="true" style="width: 100%;"></u-parse>
+		</view>
+	</view>
+</template>
+
+<script setup>
+	import {
+		ref
+	} from 'vue'
+	import {
+		onLoad,
+		onShareAppMessage,
+		onShareTimeline
+	} from '@dcloudio/uni-app'
+	import {
+		loadRecordDetailById
+	} from '@/api/edu.js'
+	const announcement = ref({
+		title: "",
+		content: "", // 假设这是后端返回的内容
+		date: "" // ISO格式日期
+	})
+	const currentId = ref(null);
+	const currentTitle = ref(null);
+	function formatDate(dateString) {
+		const options = {
+			year: 'numeric',
+			month: 'long',
+			day: 'numeric'
+		};
+		return new Date(dateString).toLocaleDateString('zh-CN', options);
+	}
+
+	function init(id) {
+		loadRecordDetailById(id).then(res => {
+			if (res?.data) {
+				announcement.value = res.data
+				if(!currentTitle.value){
+					currentTitle.value = res.data.title;
+					uni.setNavigationBarTitle({
+						title: title
+					});
+				}
+			}
+		})
+	}
+	onLoad((option) => {
+		const {
+			id, title
+		} = option
+		currentId.value = id
+		if(title){
+			currentTitle.value = title
+			uni.setNavigationBarTitle({
+				title: title
+			});
+		}
+		init(id)
+	})
+	
+	onShareAppMessage(async (res) => {
+		// console.log(announcement.value.title, 123)
+		return {
+			title: announcement.value.title,
+			path: `/pages/dynamic/dynamicDetail/dynamicDetail?id=${currentId.value}&title=${currentTitle.value}`,
+			imageUrl: announcement.value.cover
+		};
+	})
+	
+	onShareTimeline(async () => {
+		// console.log(announcement.value.title, 1234)
+		// console.log(imgurl.value)
+		return {
+			title: announcement.value.title,
+			query: `id=${currentId.value}&title=${currentTitle.value}`,
+			imageUrl: announcement.value.cover
+		};
+	})
+</script>
+
+<style scoped>
+	.announcement-details {
+		padding: 20px;
+		background-color: #ffffff;
+		display: flex;
+		flex-direction: column;
+		justify-content: space-between;
+		/* height: 100vh; */
+		/* 让页面高度撑满 */
+		
+		margin-bottom: env(safe-area-inset-bottom, 0);
+	}
+
+	.title {
+		font-size: 24px;
+		font-weight: bold;
+		color: #333;
+		text-align: center;
+		/* 标题居中 */
+		margin-bottom: 15px;
+	}
+
+	.content {
+		flex: 1;
+		/* 占据剩余空间 */
+		display: flex;
+		flex-direction: column;
+		align-items: flex-start;
+		/* 内容左对齐 */
+	}
+
+	.body {
+		font-size: 16px;
+		color: #555;
+		text-align: left;
+		/* 内容左对齐 */
+	}
+
+	.body img {
+		width: 50%;
+		height: auto;
+	}
+
+	.date {
+		font-size: 14px;
+		color: #999;
+		text-align: center;
+		/* 时间右对齐 */
+		margin-top: 10px;
+		/* 与内容分离 */
+	}
+	
+	/* 全局样式穿透 */
+	
+</style>

+ 23 - 9
pages/guide/guide/guide.vue

@@ -19,12 +19,15 @@
 					:is-scroll="true"
 					v-model="searchForm.codeCurrent"
 					@change="onSearchTypeChange"
-					font-size="24"
-					:bold="false"
+					font-size="28"
 					inactive-color="#000000"
-					active-color="#000000"
+					active-color="#ffffff"
+					:show-bar="false"
 					:bar-style="{'background-color': '#2979ff'}"
-					height="50"
+					:active-item-style="{'background-color': '#2979ff', 'border-radius':'30rpx'}"
+					:gutter="40"
+					height="55"
+					duration="0"
 				></u-tabs>
 			</view>
 		</view>
@@ -60,6 +63,8 @@
 				</view>
 				<view class="line-box"></view>
 			</view>
+			<uni-load-more v-show="visualLoadMore" :status="loadMoreStatus"></uni-load-more>
+			<!-- <view class="buttom-block" v-show="false"></view> -->
 		</view>
 	</view>
 </template>
@@ -82,7 +87,7 @@
 		}
 	])
 	const pageNum = ref(1)
-	const pageSize = ref(10)
+	const pageSize = ref(15)
 	const visualLoadMore = ref(false)
 	const loadMoreStatus = ref('more')
 	const searchForm = ref({
@@ -90,7 +95,7 @@
 		code: null,
 		codeCurrent: 0,
 		pageNumber: 1,
-		pageSize: 10
+		pageSize: 15
 	})
 	const list = ref([
 	])
@@ -199,7 +204,11 @@
 		})
 	}
 </script>
-
+<style>
+	::v-deep(.u-tab-item){
+		margin-right: 40rpx;
+	}
+</style>
 <style lang="scss" scoped>
 	.container {
 		height: 100vh;
@@ -232,8 +241,8 @@
 		}
 
 		.list-box {
-			padding: 0 20rpx;
-
+			padding: 0 20rpx calc(env(safe-area-inset-bottom, 0));
+			
 			.list-item-box {
 				.main-box {
 					display: flex;
@@ -315,4 +324,9 @@
 			}
 		}
 	}
+	.buttom-block {
+		height: 100rpx;
+		width: 100vw;
+		padding-bottom: calc(5rpx + env(safe-area-inset-bottom, 0));
+	}
 </style>

+ 16 - 11
pages/order/order.vue

@@ -18,15 +18,15 @@
 					v-model="searchForm.typeCurrent"
 					@change="onSearchTypeChange"
 					font-size="28"
-					bold
 					inactive-color="#000000"
 					bg-color="'rgb(141, 204, 255)'"
 					active-color="#ffffff"
-					:show-bar="false"
+					
 					:bar-style="{'background-color': '#2979ff'}"
 					:active-item-style="{'background-color': '#2979ff', 'border-radius':'30rpx'}"
 					:gutter="40"
 					height="55"
+					:show-bar="false"
 					duration="0"
 				></u-tabs>
 			</view>
@@ -329,16 +329,17 @@
 		.list-box {
 			padding: 0 20rpx;
 			.list-item-box {
-				padding: 35rpx 20rpx;
-				margin: 20rpx 0;
+				padding: 40rpx 20rpx;
+				margin: 35rpx 0;
 				/* border-bottom: 5rpx solid #E6E6E6; */
-				box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15);
+				box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
+				background-color: #fff;
 				border-radius: 20rpx;
 				&:active {
 					background-color: $uni-bg-color-hover;
 				}
 				.title-box {
-					font-size: $uni-title-font-size-3;
+					font-size: 28rpx;
 					font-weight: bold;
 					margin-bottom: 20rpx;
 					@include text-overflow()
@@ -346,20 +347,24 @@
 				.main-box {
 					display: flex;
 					justify-content: space-between;
-					padding-left: 20rpx;
+					// padding-left: 20rpx;
 					.info-box {
-						width: 50%;
+						// width: 50%;
+						width: 100%;
+						flex: 1 1 auto;
 						.info-item-box {
 							display: flex;
-							font-size: $uni-font-size-3;
+							font-size: 22rpx;
 							color: $uni-text-color-grey;
-							line-height: 30rpx;
+							line-height: 40rpx;
 							.label {
-								width: 80rpx;
+								// width: 80rpx;
+								margin-right: 10rpx;
 							}
 						}
 					}
 					.price-box {
+						flex: 0 0 auto;
 						display: flex;
 						align-items: flex-end;
 						text-align: right;

+ 7 - 6
pages/personalCenter/personalCenter.vue

@@ -45,7 +45,7 @@
 			</view>
 		</view>
 		<view class="certificate-box">
-			<view class="title-box">
+			<view class="title-box" style="font-size: inherit;">
 				我的证件
 			</view>
 			<view class="list-box">
@@ -495,12 +495,13 @@
 		background: linear-gradient(       180deg, rgb(141, 204, 255) 10%, rgb(247, 247, 247) 30%);
 
 		.user-box {
-			padding: 0 40rpx;
+			padding: 0 20rpx;
 			.icon-name-box {
 				display: flex;
 				align-items: center;
 				gap: 30rpx;
-				margin-bottom: 15rpx;
+				padding-top: 10rpx;
+				margin-bottom: 30rpx;
 				.icon-box {
 					width: 90rpx;
 					height: 90rpx;
@@ -539,7 +540,7 @@
 					align-items: center;
 					gap: 10rpx;
 					margin-bottom: 10rpx;
-					font-size: $uni-font-size-1;
+					font-size: inherit;
 					font-weight: bold;
 					letter-spacing: 3rpx;
 				}
@@ -548,7 +549,7 @@
 
 		.certificate-box {
 			padding: 0 20rpx;
-			margin-top: 20rpx;
+			margin-top: 40rpx;
 			.title-box {
 				font-size: $uni-title-font-size-3;
 				font-weight: bold;
@@ -604,7 +605,7 @@
 
 		.menu-box {
 			padding: 20rpx 20rpx;
-			margin: 10rpx 0;
+			margin: 40rpx 0 30rpx;
 			background-color: #fff;
 			width: 100%;
 			border-radius: $uni-card-border-radius;

+ 20 - 25
pages/researchReport/reportList/reportList.vue

@@ -3,23 +3,18 @@
 		<view class="header-box">
 			<view class="search-box">
 				<u-search v-model="searchForm.keyword" :clearabled="true" bg-color="#E5E5E5"
-					:input-style="searchInputStyle" placeholder="搜索您想要的内容" @search="toSearch" @custom="toSearch"></u-search>
+					:input-style="searchInputStyle" placeholder="搜索您想要的内容" @search="toSearch"
+					@custom="toSearch"></u-search>
 			</view>
-			<view class="tab-box">
+			<view class="tab-box" style="padding: 20rpx 0 10rpx;">
 				<u-tabs name="label" :list="searchType" :is-scroll="true" v-model="searchForm.type"
-					@change="onSearchTypeChange" font-size="24" :bold="false" inactive-color="#000000"
-					active-color="#000000" :bar-style="{'background-color': '#2979ff'}" :gutter="25"
-					height="45"></u-tabs>
+					@change="onSearchTypeChange" font-size="28" :bold="false" inactive-color="#000000"
+					 :bar-style="{'background-color': '#2979ff'}" :gutter="35" :show-bar="false"
+					duration="0" height="45" active-color="#ffffff"
+					:active-item-style="{'background-color': '#2979ff', 'border-radius':'30rpx'}"></u-tabs>
 			</view>
 		</view>
-		<u-empty
-			mode="data"
-			v-if="list.length === 0"
-			iconSize="120"
-			textSize="58"
-			text="暂无数据"
-			margin-top="50"
-		>
+		<u-empty mode="data" v-if="list.length === 0" iconSize="120" textSize="58" text="暂无数据" margin-top="50">
 		</u-empty>
 		<view class="list-box">
 			<view class="list-item-box" v-for="item in list" :key="item.id" @click="onClickReport(item)">
@@ -36,7 +31,7 @@
 					<view class="func">
 						<!-- 如果是免费,直接显示免费 -->
 						<view v-if="item.viewMode==='1'" class="func-box" style="justify-content: flex-end;">
-							<view class="button free" >免费</view>
+							<view class="button free">免费</view>
 						</view>
 						<view v-else-if="item.viewMode==='2' && isMember" class="func-box">
 							<view class="price">¥{{ item.price }}元</view>
@@ -78,9 +73,8 @@
 				</view>
 			</view>
 		</view>
-		<u-loadmore v-if="list.length !==0 && status !== 'nomore'" 
-		:status="status" margin-top="20" margin-bottom="20" 
-		@loadmore="loadmore" />
+		<u-loadmore v-if="list.length !==0 && status !== 'nomore'" :status="status" margin-top="20" margin-bottom="20"
+			@loadmore="loadmore" />
 	</view>
 </template>
 
@@ -90,7 +84,8 @@
 		computed
 	} from 'vue'
 	import {
-		onLoad, onReachBottom
+		onLoad,
+		onReachBottom
 	} from '@dcloudio/uni-app'
 	import {
 		loadReportList
@@ -141,7 +136,7 @@
 	const modelName = ref()
 
 	const list = ref([])
-	
+
 	const listFilter = ref([])
 
 	function onClickReport(report) {
@@ -176,10 +171,10 @@
 				}
 				pageNum.value = pageNumber + 1;
 				count.value = res.count;
-				if(list.value.length===count.value){
-					status.value = 'nomore' 
-				}else{
-					status.value ='loadmore'
+				if (list.value.length === count.value) {
+					status.value = 'nomore'
+				} else {
+					status.value = 'loadmore'
 				}
 			}
 		}).catch(() => {
@@ -188,7 +183,7 @@
 	}
 
 	function loadmore() {
-		if(list.value.length === count.value){
+		if (list.value.length === count.value) {
 			return
 		}
 		search(searchForm.value.keyword, pageNum.value, model.value, currentType.value);
@@ -198,7 +193,7 @@
 		search(searchForm.value.keyword, 1, model.value, currentType.value);
 	}
 
-	onReachBottom(()=>{
+	onReachBottom(() => {
 		loadmore()
 	})