liurongli 3 veckor sedan
förälder
incheckning
acb741d803

+ 11 - 6
components/custom-popup-dialog.vue

@@ -1,4 +1,5 @@
 <template>
+	<!-- 自定义弹框组件 -->
 	<uni-popup ref="popupDialog">
 		<view class="dialog_wrap" :style="{ width: `${dialogWidth}rpx` }">
 			<view class="dialog_title" v-if="showTitle">
@@ -12,7 +13,7 @@
 				<slot></slot>
 			</view>
 			<!-- 自定义底部按钮区域 -->
-			<view class="dialog_footer">
+			<view class="dialog_footer" v-if="showDialogFooter">
 				<view v-if="showCloseBtn" class="dialog-btn cancel-btn" @click="CloseDialog">取消</view>
 				<view class="dialog-btn confirm-btn" @click="handleConfirm">确定</view>
 			</view>
@@ -27,23 +28,27 @@
 	} from 'vue';
 
 	const props = defineProps({
-		showTitle: {
+		showTitle: {//显示标题
 			type: Boolean,
 			default: true
 		},
-		title: {
+		title: {//标题
 			type: String,
 			default: '提示'
 		},
-		dialogWidth: {
+		dialogWidth: {//弹框宽度
 			type: String,
 			default: '610'
 		},
-		showDialogClose: {
+		showDialogClose: {//关闭按钮
 			type: Boolean,
 			default: true
 		},
-		showCloseBtn: {
+		showDialogFooter:{//是否显示底部按钮
+			type: Boolean,
+			default: true
+		}
+		showCloseBtn: {//是否显示取消按钮
 			type: Boolean,
 			default: true
 		}

+ 1 - 0
components/nav-bar.vue

@@ -1,4 +1,5 @@
 <template>
+	<!-- 头部 -->
 	<uni-nav-bar :class="{'custom_uni_nav_bar':!onlyTitle,'custom_navbar_only_title':onlyTitle}"
 		:height="`${height}rpx`" :backgroundColor="backgroundColor" :title="title" color="#333333" :fixed="true"
 		:border="showHeaderborder" :statusBar="true" :leftWidth="leftWidth" :rightWidth="rightWidth" left-icon="left"

+ 1 - 0
components/page-tabbar.vue

@@ -1,4 +1,5 @@
 <template>
+	<!-- 底部标签栏 -->
 	<uv-tabbar :value="tabBarValue" activeColor="#2E64FA" inactiveColor="#C7CBD6" @change="changeTabBarValue">
 		<uv-tabbar-item v-for="item in tabBarList" :key="item.pathName" :name="item.pathName" :text="item.text">
 			<template v-slot:active-icon>

+ 1 - 0
components/popup-dialog.vue

@@ -1,4 +1,5 @@
 <template>
+	<!-- 提示框 可自定义内容-->
 	<uni-popup ref="popupDialog" type="dialog">
 		<uni-popup-dialog :class="{'white':!showTitle,'footBorder':showFootBorder}" :showClose="showCloseBtn" :style="{'width': `${dialogWidth}rpx`}" @confirm="DialogConfirm" @close="CloseDialog">
 			<view class="dialog_title" v-if="showTitle">

+ 7 - 0
pages.json

@@ -140,6 +140,13 @@
 				"navigationBarTitleText": "教师研修-视频详情",
 				"navigationStyle": "custom"
 			}
+		},
+		{
+			"path": "pages/teacherStudy/learningMonitor/taskDetails",
+			"style": {
+				"navigationBarTitleText": "教师研修-研修监控-任务详情",
+				"navigationStyle": "custom"
+			}
 		}
 	],
 	"easycom": {

+ 7 - 1
pages/teacherStudy/learningMonitor/index.vue

@@ -33,7 +33,7 @@
 					</view>
 					<view class="item_complete_status">
 						<text class="complete_status">完成情况:{{item.learnOver ?? '-'}}/{{item.learnCount ?? '-'}}</text>
-						<text class="btn_detail">查看详情</text>
+						<text class="btn_detail" @click="GoTaskDetails(item.id)">查看详情</text>
 					</view>
 				</view>
 			</view>
@@ -229,6 +229,12 @@
 			state.scrollTop = 0
 		});
 	}
+	//视频详情
+	const GoTaskDetails = (id) => {
+		uni.navigateTo({
+			url: `/pages/teacherStudy/learningMonitor/taskDetails?id=${id}`
+		});
+	}
 </script>
 
 <style lang="scss" scoped>

+ 183 - 0
pages/teacherStudy/learningMonitor/taskDetails.vue

@@ -0,0 +1,183 @@
+<template>
+	<view class="page_body">
+		<!-- 头部 -->
+		<nav-bar height="96" title="任务详情" :onlyTitle="true" :showHeaderborder="true" @GoBack="GoBack"></nav-bar>
+		<view class="page_content padding_btm">
+			<view class="task_title">期中考试集体研讨会的通知期中考试集体研讨会的通知</view>
+			<view class="task_class_collect">
+				<view class="task_class_name">
+					<text class="class_item">必修任务</text>
+					<text class="class_item">课堂观摩</text>
+					<text class="class_item">教务处</text>
+				</view>
+				<view class="task_collect">
+					<view class="preview">
+						<image class="img" src="@/static/image/icon/preview.png"></image>
+						<text class="text">2761</text>
+					</view>
+					<view class="collect">
+						<image class="img" src="@/static/image/icon/collect.png"></image>
+						<text class="text">2761</text>
+					</view>
+				</view>
+			</view>
+			<view class="task_time">
+				<view class="time_day">
+					<text class="time_item">2025-02-02</text>
+					<text class="time_item">至</text>
+					<text class="time_item">2025-02-02</text>
+					<text class="time_item">剩余3天</text>
+				</view>
+				<view class="task_status finished">进行中</view>
+			</view>
+			<view class="task_desc">
+				课程简介:文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案文案
+				<view><text>展开</text></view>
+			</view>
+		</view>
+		<view class="row_gap"></view>
+		<view class="page_content">
+			sss
+		</view>
+	</view>
+</template>
+
+<script setup>
+	import uniEasyinput from '@/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue';
+	import navBar from '@/components/nav-bar.vue';
+	import { selectCourseDetail,addQuestionAnswerData } from '@/reqApi/teacherStudy.js';
+	import {
+		onLoad
+	} from '@dcloudio/uni-app';
+	import {
+		reactive,
+		ref
+	} from 'vue';
+	const state = reactive({
+		id: '', //任务id
+	});
+	onLoad((option) => {
+		state.id = option.id;
+	})
+	//返回
+	const GoBack = () => {
+		uni.navigateBack({
+			delta: 1
+		});
+	}
+</script>
+
+<style scoped lang="scss">
+	.page_content {
+		&.padding_btm{
+			padding-bottom: 24rpx;
+			.task_title{
+				font-weight: 500;
+				font-size: 32rpx;
+				color: #333333;
+				margin-top: 24rpx;
+			}
+			.task_class_collect{
+				display: flex;
+				align-items: flex-start;
+				width: 100%;
+				margin-top: 16rpx;
+				.task_class_name{
+					display: inline-flex;
+					align-items: center;
+					flex-wrap: wrap;
+					flex: 1;
+					gap: 16rpx;
+					.class_item{
+						font-weight: 400;
+						font-size: 24rpx;
+						color: #999999;
+					}
+				}
+				.task_collect{
+					display: inline-flex;
+					gap: 40rpx;
+					.preview,.collect{
+						display: inline-flex;
+						align-items: center;
+					}
+					.img{
+						width: 24rpx;
+						height: 24rpx;
+						margin-right: 12rpx;
+					}
+					.text{
+						font-weight: 400;
+						font-size: 24rpx;
+						color: #999999;
+					}
+				}
+			}
+			.task_time{
+				display: flex;
+				align-items: flex-start;
+				width: 100%;
+				margin-top: 16rpx;
+				.time_day{
+					display: inline-flex;
+					align-items: center;
+					flex-wrap: wrap;
+					flex: 1;
+					.time_item{
+						font-weight: 400;
+						font-size: 24rpx;
+						line-height: 48rpx;
+						color: #999999;
+						&:nth-child(2){
+							margin: 0 8rpx;
+						}
+						&:nth-child(4){
+							color: #2E64FA;
+							margin-left: 16rpx;
+						}
+					}
+				}
+				.task_status{
+					display: inline-flex;
+					align-items: center;
+					height: 48rpx;
+					padding: 0 12rpx;
+					border-radius: 8rpx;
+					font-weight: 400;
+					font-size: 24rpx;
+					&.going{
+						background: rgba(43,198,68,0.1);
+						color: #2BC644;
+					}
+					&.finished{
+						background: rgba(245,108,108,0.1);
+						color: #F56C6C;
+					}
+				}
+			}
+			.task_desc{
+				margin-top: 24rpx;
+				display: flex;
+				width: 100%;
+				padding-top: 24rpx;
+				border-top: 2rpx solid #F3F3F3;
+				font-weight: 400;
+				font-size: 28rpx;
+				color: #999999;
+				line-height: 44rpx;
+				max-height: 168rpx;
+				box-sizing: border-box;
+				overflow: hidden;
+				transition: all 0.25s;
+				display: -webkit-box;
+				-webkit-line-clamp: 3;
+				-webkit-box-orient: vertical;
+			}
+		}
+	}
+	.row_gap{
+		background-color: #F8F9FD;
+		width: 100%;
+		height: 24rpx;
+	}
+</style>

BIN
static/image/icon/collect.png


BIN
static/image/icon/preview.png


+ 5 - 21
unpackage/dist/cache/.vite/deps/_metadata.json

@@ -1,31 +1,15 @@
 {
-  "hash": "01502c9b",
-  "configHash": "5ccaef1e",
+  "hash": "567e918b",
+  "configHash": "1b48dfbe",
   "lockfileHash": "3f808f5a",
-  "browserHash": "8c809959",
+  "browserHash": "63141172",
   "optimized": {
     "jsencrypt": {
       "src": "../../../../../node_modules/jsencrypt/lib/index.js",
       "file": "jsencrypt.js",
-      "fileHash": "133d9783",
+      "fileHash": "24bb345a",
       "needsInterop": false
-    },
-    "pdfh5": {
-      "src": "../../../../../node_modules/pdfh5/js/pdfh5.js",
-      "file": "pdfh5.js",
-      "fileHash": "577e91d6",
-      "needsInterop": true
     }
   },
-  "chunks": {
-    "pdf.min-KBJOEABI": {
-      "file": "pdf__min-KBJOEABI.js"
-    },
-    "pdf.sandbox.min-I7ZVQJ4G": {
-      "file": "pdf__sandbox__min-I7ZVQJ4G.js"
-    },
-    "chunk-UA7ANXNG": {
-      "file": "chunk-UA7ANXNG.js"
-    }
-  }
+  "chunks": {}
 }

+ 15 - 17
unpackage/dist/cache/.vite/deps/jsencrypt.js

@@ -1,6 +1,4 @@
-import "./chunk-UA7ANXNG.js";
-
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/lib/jsbn/util.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/lib/jsbn/util.js
 var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
 function int2char(n) {
   return BI_RM.charAt(n);
@@ -52,7 +50,7 @@ function cbit(x) {
   return r;
 }
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/lib/jsbn/base64.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/lib/jsbn/base64.js
 var b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
 var b64pad = "=";
 function hex2b64(h) {
@@ -113,7 +111,7 @@ function b64tohex(s) {
   return ret;
 }
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/lib/asn1js/hex.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/lib/asn1js/hex.js
 var decoder;
 var Hex = {
   decode: function(a) {
@@ -164,7 +162,7 @@ var Hex = {
   }
 };
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/lib/asn1js/base64.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/lib/asn1js/base64.js
 var decoder2;
 var Base64 = {
   decode: function(a) {
@@ -237,7 +235,7 @@ var Base64 = {
   }
 };
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/lib/asn1js/int10.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/lib/asn1js/int10.js
 var max = 1e13;
 var Int10 = (
   /** @class */
@@ -310,7 +308,7 @@ var Int10 = (
   }()
 );
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/lib/asn1js/asn1.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/lib/asn1js/asn1.js
 var ellipsis = "…";
 var reTimeS = /^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;
 var reTimeL = /^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;
@@ -827,7 +825,7 @@ var ASN1Tag = (
   }()
 );
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/lib/jsbn/jsbn.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/lib/jsbn/jsbn.js
 var dbits;
 var canary = 244837814094590;
 var j_lm = (canary & 16777215) == 15715070;
@@ -2306,7 +2304,7 @@ function nbits(x) {
 BigInteger.ZERO = nbv(0);
 BigInteger.ONE = nbv(1);
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/lib/jsbn/prng4.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/lib/jsbn/prng4.js
 var Arcfour = (
   /** @class */
   function() {
@@ -2349,7 +2347,7 @@ function prng_newstate() {
 }
 var rng_psize = 256;
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/lib/jsbn/rng.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/lib/jsbn/rng.js
 var rng_state;
 var rng_pool = null;
 var rng_pptr;
@@ -2423,7 +2421,7 @@ var SecureRandom = (
   }()
 );
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/lib/jsbn/rsa.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/lib/jsbn/rsa.js
 function pkcs1pad1(s, n) {
   if (n < s.length + 22) {
     console.error("Message too long for RSA");
@@ -2734,7 +2732,7 @@ function removeDigestHeader(str) {
   return str;
 }
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/lib/jsrsasign/yahoo.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/lib/jsrsasign/yahoo.js
 var YAHOO = {};
 YAHOO.lang = {
   /**
@@ -2790,7 +2788,7 @@ YAHOO.lang = {
   }
 };
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.js
 var KJUR = {};
 if (typeof KJUR.asn1 == "undefined" || !KJUR.asn1)
   KJUR.asn1 = {};
@@ -3528,7 +3526,7 @@ KJUR.asn1.DERTaggedObject = function(params) {
 };
 YAHOO.lang.extend(KJUR.asn1.DERTaggedObject, KJUR.asn1.ASN1Object);
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/JSEncryptRSAKey.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/JSEncryptRSAKey.js
 var __extends = /* @__PURE__ */ function() {
   var extendStatics = function(d, b) {
     extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
@@ -3702,7 +3700,7 @@ var JSEncryptRSAKey = (
   }(RSAKey)
 );
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/JSEncrypt.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/JSEncrypt.js
 var _a;
 var version = typeof process !== "undefined" ? (_a = process.env) === null || _a === void 0 ? void 0 : _a.npm_package_version : void 0;
 var JSEncrypt = (
@@ -3786,7 +3784,7 @@ var JSEncrypt = (
   }()
 );
 
-// ../../../../wpl/hjy/workApp/node_modules/jsencrypt/lib/index.js
+// D:/huijiaoyan/mobile8.1/workApp/node_modules/jsencrypt/lib/index.js
 var lib_default = JSEncrypt;
 export {
   JSEncrypt,

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
unpackage/dist/cache/.vite/deps/jsencrypt.js.map


+ 0 - 0
vites.config.js → vite.config.js


Vissa filer visades inte eftersom för många filer har ändrats