liurongli 3 veckor sedan
förälder
incheckning
9454a0141d
3 ändrade filer med 213 tillägg och 29 borttagningar
  1. 1 1
      components/custom-popup-dialog.vue
  2. 186 2
      pages/teacherStudy/learningMonitor/taskDetails.vue
  3. 26 26
      style/common.scss

+ 1 - 1
components/custom-popup-dialog.vue

@@ -47,7 +47,7 @@
 		showDialogFooter:{//是否显示底部按钮
 			type: Boolean,
 			default: true
-		}
+		},
 		showCloseBtn: {//是否显示取消按钮
 			type: Boolean,
 			default: true

+ 186 - 2
pages/teacherStudy/learningMonitor/taskDetails.vue

@@ -32,18 +32,51 @@
 			</view>
 			<view class="task_desc">
 				课程简介:文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案
-				<view><text>展开</text></view>
 			</view>
+			<view class="expand_btn"><text class="expand_text">展开</text><uni-icons class="expand_icon" type="down"></uni-icons></view>
 		</view>
 		<view class="row_gap"></view>
+		<!-- 吸顶 -->
+		<uv-sticky style="top:98rpx">
+			<!-- 搜索框 -->
+			<uni-easyinput class="search_box" v-model="state.searchWord" trim="all" :styles="state.searchInputStyles"
+				:placeholderStyle="state.searchInputPlaceholderStyle" placeholder="请输入关键字搜索" @input="HandleSearchInput">
+				<template #left>
+					<image src="/static/image/overview/search.png" class="search_icon"></image>
+				</template>
+			</uni-easyinput>
+			<scroll-view class="scroll_tabs" scroll-x="true" scroll-left="0" :show-scrollbar="false">
+				<view :class="['tab_item',{'selected':item.value==state.tabsSelected}]" v-for="item in state.tabList" :key="item.value" @click="SelectTabsValue(item.value)">
+					{{item.label}}
+				</view>
+			</scroll-view>
+		</uv-sticky>
 		<view class="page_content">
-			sss
+			<view class="total">共 230 人</view>
+			<view class="list_item">
+				<view class="created_progress_status">
+					<text class="created_by">刘惟安</text>
+					<view class="item_progress">
+						<view class="progress_bar">
+							<view class="bar_width" style="width: 49%;"></view>
+						</view>
+						<view class="progress_label">80%</view>
+					</view>
+					<view class="item_status await">待完成</view>
+				</view>
+				<view class="item_time">
+					<text class="time">开始时间:2025-11-01</text>
+					<text class="time">结束时间:2025-11-04</text>
+				</view>
+			</view>
 		</view>
 	</view>
 </template>
 
 <script setup>
 	import uniEasyinput from '@/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue';
+	import uniIcons from '@/uni_modules/uni-icons/components/uni-icons/uni-icons.vue';
+	import uvSticky from '@/uni_modules/uv-sticky/components/uv-sticky/uv-sticky.vue';//吸顶
 	import navBar from '@/components/nav-bar.vue';
 	import { selectCourseDetail,addQuestionAnswerData } from '@/reqApi/teacherStudy.js';
 	import {
@@ -55,6 +88,22 @@
 	} from 'vue';
 	const state = reactive({
 		id: '', //任务id
+		searchInputStyles: { //搜素框样式
+			borderColor: '#DCDFE6',
+			color: '#333333'
+		},
+		searchInputPlaceholderStyle: 'color: #C0C4CC;fontSize: 28rpx' ,//搜素框样式
+		tabsSelected:'0',
+		tabList:[{
+			label:'全部',
+			value:'0'
+		},{
+			label:'待完成',
+			value:'1'
+		},{
+			label:'已完成',
+			value:'2'
+		}]
 	});
 	onLoad((option) => {
 		state.id = option.id;
@@ -172,6 +221,25 @@
 				display: -webkit-box;
 				-webkit-line-clamp: 3;
 				-webkit-box-orient: vertical;
+				position: relative;
+			}
+			.expand_btn{
+				width: 100%;
+				height: 40rpx;
+				background-color: #FFFFFF;
+				display: flex;
+				justify-content: flex-end;
+				align-items: center;
+				.expand_text{
+					font-weight: 400;
+					font-size: 28rpx;
+					color: #2E64FA;
+					margin-right: 8rpx;
+				}
+				.expand_icon{
+					font-size: 32rpx !important;
+					color: #2E64FA !important;
+				}
 			}
 		}
 	}
@@ -180,4 +248,120 @@
 		width: 100%;
 		height: 24rpx;
 	}
+	:deep(.search_box) {
+		display: flex;
+		align-items: center;
+		box-sizing: border-box;
+		width: 100%;
+		padding: 24rpx;
+		box-sizing: border-box;
+		background-color: #FFFFFF;
+		.is-input-border{
+			border-radius: 8rpx;
+			border: 2rpx solid #DCDFE6;
+			border-color: #DCDFE6 !important;
+		}
+		.search_icon {
+			width: 32rpx;
+			height: 32rpx;
+			margin-left:24rpx;
+		}
+		.uni-easyinput__content-input {
+			padding-left: 8rpx !important;
+			font-size: 28rpx;
+			color: #333333;
+			height: 72rpx;
+		}
+	}
+	.scroll_tabs{
+		padding-bottom: 24rpx;
+		background-color: #FFFFFF;
+	}
+	.total{
+		width: 100%;
+		display: flex;
+		font-weight: 400;
+		font-size: 28rpx;
+		color: #333333;
+		padding-bottom: 24rpx;
+		border-bottom: 2rpx solid #F3F3F3;
+	}
+	.list_item{
+		display: flex;
+		flex-direction: column;
+		width: 100%;
+		padding: 24rpx 0;
+		border-bottom: 2rpx solid #F3F3F3;
+		.created_progress_status{
+			display: flex;
+			width: 100%;
+			justify-content: space-between;
+			align-items: center;
+			.created_by{
+				flex:1;
+				font-weight: 500;
+				font-size: 32rpx;
+				color: #333333;
+			}
+			.item_progress{
+				display: inline-flex;
+				align-items: center;
+				width: 308rpx;
+				.progress_bar{
+					width: 200rpx;
+					height: 12rpx;
+					background-color: #E2E6F0;
+					border-radius: 14rpx;
+					position: relative;
+					.bar_width{
+						position: absolute;
+						left:0;
+						top:0;
+						height: 12rpx;
+						background-color: #2E64FA;
+						border-radius: 14rpx;
+					}
+				}
+				.progress_label{
+					flex: 1;
+					margin-left: 24rpx;
+					font-weight: 400;
+					font-size: 32rpx;
+					color: #666666;
+				}
+			}
+			.item_status{
+				display: inline-flex;
+				align-items: center;
+				justify-content: center;
+				width: 96rpx;
+				height: 48rpx;
+				border-radius: 8rpx;
+				font-weight: 400;
+				font-size: 24rpx;
+				margin-left: 68rpx;
+				&.await{
+					background-color: rgba(46,100,250,0.1);
+					color: #2E64FA;
+				}
+				&.finish{
+					background-color: rgba(43,198,68,0.1);
+					color: #2BC644;
+				}
+			}
+		}
+		.item_time{
+			display: flex;
+			width: 100%;
+			align-items: center;
+			flex-wrap: wrap;
+			gap:16rpx;
+			margin-top: 18rpx;
+			.time{
+				font-weight: 400;
+				font-size: 24rpx;
+				color: #999999;
+			}
+		}
+	}
 </style>

+ 26 - 26
style/common.scss

@@ -454,32 +454,32 @@ uni-page-body {
 			}
 		}
 	}
-	// tabs
-	.scroll_tabs {
-		display: flex;
-		height: 56rpx;
-		padding: 0 24rpx;
-		.tab_item {
-			display: inline-flex;
-			font-weight: 400;
-			font-size: 28rpx;
-			color: #999999;
-			position: relative;
-			margin-right: 48rpx;
-			height: 100%;
-			&.selected {
-				font-weight: 500;
-				font-size: 32rpx;
-				color: #2E64FA;
-				&::after {
-					content: '';
-					position: absolute;
-					bottom: 0rpx;
-					left: 0;
-					width: 100%;
-					height: 4rpx;
-					background-color: #2E64FA;
-				}
+}
+//公共 tabs 样式
+.scroll_tabs {
+	display: flex;
+	height: 56rpx;
+	padding: 0 24rpx;
+	.tab_item {
+		display: inline-flex;
+		font-weight: 400;
+		font-size: 28rpx;
+		color: #999999;
+		position: relative;
+		margin-right: 48rpx;
+		height: 100%;
+		&.selected {
+			font-weight: 500;
+			font-size: 32rpx;
+			color: #2E64FA;
+			&::after {
+				content: '';
+				position: absolute;
+				bottom: 0rpx;
+				left: 0;
+				width: 100%;
+				height: 4rpx;
+				background-color: #2E64FA;
 			}
 		}
 	}