Browse Source

联系方式,学习流程,表格

eraser 4 years ago
parent
commit
22dc618b92

BIN
assets/contact/QRCode.png


BIN
assets/contact/bubble_01.png


BIN
assets/contact/bubble_02.png


BIN
assets/contact/mail_icon.png


BIN
assets/contact/qrcode_icon.png


BIN
assets/contact/tel_icon.png


BIN
assets/learning/pic_syjj_12.png


BIN
assets/startLearning/learningAndExperiment/TopImage.png


BIN
assets/startLearning/learningAndExperiment/downloadInstruction/1.png


BIN
assets/startLearning/learningAndExperiment/downloadInstruction/2.png


BIN
assets/startLearning/learningAndExperiment/downloadInstruction/3.png


BIN
assets/startLearning/learningAndExperiment/downloadInstruction/4.png


BIN
assets/startLearning/learningAndExperiment/downloadInstruction/5.png


+ 82 - 0
components/startLearning/learningAndExperiment/downloadInstruction.vue

@@ -0,0 +1,82 @@
+<template>
+	<view class='root'>
+	<view class = 'top'>【下载安装说明】</view>
+	<view class = 'first'>本实验采用了更具真实感与影像效果的虚幻引擎,需要通过PC客户端运行。文件大小约0.6G,在10M的主流网速下,预计在2分钟内完成下载</view>
+	<view v-for="(obj,idx) in list" :key="idx">
+		<view class = 'intro'>{{obj.text}}</view>
+		<view v-if='obj.image!=0?1:0'>
+			<image class = 'image' mode="widthFix" :src="obj.image"></image>	
+		</view>
+		
+	</view>	
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				list:[
+					{
+						'text':'1、下载完成后,将压缩包“影视现场实时特效创作实验客户端”解压',
+						'image':require("../../../assets/startLearning/learningAndExperiment/downloadInstruction/1.png"),
+					},
+					{
+						'text':'2、解压后,双击文件夹内的“影视现场实时特效创作实验客户端.exe”,运行客户端',
+						'image':require("../../../assets/startLearning/learningAndExperiment/downloadInstruction/2.png"),
+					},
+					{
+						'text':'3、首次使用需安装虚幻程序,弹出窗口选择是。',
+						'image':require("../../../assets/startLearning/learningAndExperiment/downloadInstruction/3.png"),
+					},
+					{
+						'text':'勾选下方方框,点击“Install”,安装完毕。',
+						'image':require("../../../assets/startLearning/learningAndExperiment/downloadInstruction/4.png"),
+					},
+					{
+						'text':'点击确定安装。',
+						'image':0,
+					},
+					{
+						'text':'安装完成,不用重新启动,直接点击"close",关闭窗口。',
+						'image':require("../../../assets/startLearning/learningAndExperiment/downloadInstruction/5.png"),
+					},
+					{
+						'text':'4、再次双击“影视现场实时特效创作实验客户端.exe”,运行客户端。',
+						'image':0,
+					},
+					{
+						'text':'5、进入客户端界面。点击登录,输入国家ilab的账号及密码,若未注册,请点击注册,注册后回到客户端登录界面,输入并登录。',
+						'image':0,
+					},
+				]
+			}
+		},
+		methods: {
+			
+		}		
+	}
+</script>
+
+<style lang="scss">
+	.root{
+		// border: 1px solid #B4B4B4;
+	}
+	.top{
+		font-weight: 700;
+		font-size: px2vw(22);
+		line-height: px2vw(46);
+	}
+	.first{
+		font-size: px2vw(22);
+		line-height: px2vw(46);
+	}
+	.intro{
+		font-size: px2vw(22);
+		line-height: px2vw(46);
+	}
+	.image{
+		width: 100%;
+		border: 1px solid #B4B4B4;
+	}
+</style>

+ 11 - 3
components/startLearning/learningAndExperiment/ksxx_xxysy_sjkc/ksxx_xxysy_sjkc.vue

@@ -99,6 +99,7 @@
 				<!-- 结论 -->
 				<!-- 结论 -->
 				<view class="ylrz-cy-jl df" v-show="checkedIndex1==1">
 				<view class="ylrz-cy-jl df" v-show="checkedIndex1==1">
 					<view class="ylrz-cy-dt df fdc" v-show="testIndex==1">
 					<view class="ylrz-cy-dt df fdc" v-show="testIndex==1">
+						<view class="totalScore">总分:{{totalScore}}分</view>
 						<view class="right-title df aic">
 						<view class="right-title df aic">
 							<view class="right-title-line"></view>
 							<view class="right-title-line"></view>
 							<view class="right-title-text">查看错题</view>
 							<view class="right-title-text">查看错题</view>
@@ -162,7 +163,7 @@
 				allWrongTest: [],
 				allWrongTest: [],
 				scrollTop: 0,
 				scrollTop: 0,
 				oldScrollTop: 0,
 				oldScrollTop: 0,
-
+				totalScore:0,
 				// ------以下为静态
 				// ------以下为静态
 				arrowSrc: require('../../../../assets/learning/icon_ylrz_arrow.png'),
 				arrowSrc: require('../../../../assets/learning/icon_ylrz_arrow.png'),
 				btnList: [
 				btnList: [
@@ -309,10 +310,13 @@
 				this.updateCheckedAnswerLetter();
 				this.updateCheckedAnswerLetter();
 				this.checkedIndex1 = 1;
 				this.checkedIndex1 = 1;
 				let score = 5-this.allWrongTest.length;
 				let score = 5-this.allWrongTest.length;
+				this.totalScore = score;
 				userController.setupScore_sjkc(score,function(res){
 				userController.setupScore_sjkc(score,function(res){
-					alert("提交成功");
+					// alert("提交成功");
+					console.log("分数提交成功")
 				},function(res){
 				},function(res){
-					alert("提交失败");
+					// alert("提交失败");
+					console.log("分数提交失败")
 				});
 				});
 			},
 			},
 			//更新用户选择答案字母
 			//更新用户选择答案字母
@@ -623,4 +627,8 @@
 	.ylrz-cy-jl {
 	.ylrz-cy-jl {
 		margin-bottom: px2vw(60);
 		margin-bottom: px2vw(60);
 	}
 	}
+	
+	.totalScore{
+		
+	}
 </style>
 </style>

+ 13 - 5
components/startLearning/learningAndExperiment/ksxx_xxysy_ylrz/ksxx_xxysy_ylrz.vue

@@ -100,8 +100,9 @@
 				<!-- 结论 -->
 				<!-- 结论 -->
 				<view class="ylrz-cy-jl df" v-show="checkedIndex1==2">
 				<view class="ylrz-cy-jl df" v-show="checkedIndex1==2">
 					<view class="ylrz-cy-dt df fdc" v-show="testIndex==1">
 					<view class="ylrz-cy-dt df fdc" v-show="testIndex==1">
-						<view class="right-title df aic">
-							<view class="right-title-line"></view>
+						<view class="totalScore">总分:{{totalScore}}分</view>
+						<view class="right-title df aic">						
+							<view class="right-title-line"></view>						
 							<view class="right-title-text">查看错题</view>
 							<view class="right-title-text">查看错题</view>
 						</view>
 						</view>
 						<view class="df fdc" v-for="(wrong,wrongIndex) in allWrongTest" :key="wrongIndex">
 						<view class="df fdc" v-for="(wrong,wrongIndex) in allWrongTest" :key="wrongIndex">
@@ -163,7 +164,7 @@
 				allWrongTest: [],
 				allWrongTest: [],
 				scrollTop: 0,
 				scrollTop: 0,
 				oldScrollTop: 0,
 				oldScrollTop: 0,
-
+				totalScore:0,
 				// ------以下为静态
 				// ------以下为静态
 				arrowSrc: require('../../../../assets/learning/icon_ylrz_arrow.png'),
 				arrowSrc: require('../../../../assets/learning/icon_ylrz_arrow.png'),
 				btnList: [{
 				btnList: [{
@@ -314,10 +315,13 @@
 				this.updateCheckedAnswerLetter();
 				this.updateCheckedAnswerLetter();
 				this.checkedIndex1 = 2;
 				this.checkedIndex1 = 2;
 				let score = 10 - this.allWrongTest.length;
 				let score = 10 - this.allWrongTest.length;
+				this.totalScore = score;
 				userController.setupScore_ylrz(score,function(res){
 				userController.setupScore_ylrz(score,function(res){
-					alert("提交成功");
+					// alert("提交成功");
+					console.log("分数提交成功")
 				},function(res){
 				},function(res){
-					alert("提交失败");
+					// alert("提交失败");
+					console.log("分数提交失败")
 				});
 				});
 			},
 			},
 			//更新用户选择答案字母
 			//更新用户选择答案字母
@@ -629,4 +633,8 @@
 	.ylrz-cy-jl {
 	.ylrz-cy-jl {
 		margin-bottom: px2vw(60);
 		margin-bottom: px2vw(60);
 	}
 	}
+	
+	.totalScore{
+		
+	}
 </style>
 </style>

+ 687 - 0
components/student/project.vue

@@ -0,0 +1,687 @@
+<template>
+	<view class="m_right">
+		<image src="@/assets/home/homeBG.png" class="s_logo" mode=""></image>
+		<view class="m_right_container">
+		
+			<view class="m_row_class">
+				<view class="m_row">
+					<view class="m_row_link">
+
+					</view>
+					<view class="m_row_title" v-text="'项目管理'">
+
+					</view>
+					<view style="position: relative;margin-left: 40rpx;">
+						<div class="triangle_border_down">
+							<span></span>
+						</div>
+					</view>
+				</view>
+
+				<table style="width: 100%;border: 1px solid #DDDDDD;border-collapse: collapse">
+					<thead class="m-table-hander">
+						<tr>
+							<th>名称</th>
+							<th>类型</th>
+							<th>介绍</th>
+							<th>创始人</th>
+						</tr>
+					</thead>
+					<tbody>
+						<tr v-for="(item,index) in projectData" :key="index">			
+							<th>{{item.ProjectName}}</th>
+							<th>{{item.Type}}</th>
+							<th style="position: relative;"><button type="default" size="mini" @click="viewIntro(item)" class="m_edit">简介</button></th>
+							<th>{{item.CreateUserName}}</th>
+						</tr>
+					</tbody>
+				</table>
+			</view>
+			<view class="m_row_class">
+				<view class="" style="display: flex;justify-content: space-between;">
+					<view class="m_row">
+						<view class="m_row_link">
+						</view>
+						<view class="m_row_title" v-text="'文件管理'">
+						</view>
+						<view style="position: relative;margin-left: 40rpx;">
+							<div class="triangle_border_down">
+								<span></span>
+							</div>
+						</view>
+					</view>
+				</view>
+				<table style="width: 100%;border: 1px solid #DDDDDD;border-collapse: collapse">
+					<thead class="m-table-hander">
+						<tr>
+							<th>文件</th>
+							<th>文件名</th>
+							<th>文件类型</th>
+							<th>上传人</th>
+							<th>上传日期</th>
+							<th>下载</th>
+							<th>审核状态</th>
+						</tr>
+					</thead>
+					<tbody>
+						<tr v-for="(item,index) in fileData" :key="index">
+							<th>{{index+1}}</th>
+							<th>{{item.Name}}</th>
+							<th>{{item.Type}}</th>
+							<th>{{item.UploadUserName}}</th>
+							<th>{{item.UPloadTime.substring(0,9)}}</th>
+							<th style="position: relative;"><button type="default" size="mini" @click="download(index,item)" class="m_edit_1">下载</button></th>
+							<th>{{getShenheText(item.Pass)}}</th>
+						</tr>
+					</tbody>
+				</table>
+			</view>
+			<view class="m_row_class">
+				<view class="" style="display: flex;justify-content: space-between;">
+					<view class="m_row">
+						<view class="m_row_link">
+						</view>
+						<view class="m_row_title" v-text="'成员管理'">
+						</view>
+						<view style="position: relative;margin-left: 40rpx;">
+							<div class="triangle_border_down">
+								<span></span>
+							</div>
+						</view>
+					</view>
+				</view>
+				<table style="width: 100%;border: 1px solid #DDDDDD;border-collapse: collapse">
+					<thead class="m-table-hander">
+						<tr>
+							<th>用户名</th>
+							<th>姓名</th>
+							<th>专业</th>
+							<th>班级</th>
+							<th>职务</th>
+							<th>电话</th>
+						</tr>
+					</thead>
+					<tbody>
+						<tr v-for="(item,index) in projectMembers" :key="index">
+							<th>{{item.User.IlabAccount}}</th>
+							<th>{{item.User.Name}}</th>
+							<th>{{item.User.Profession}}</th>
+							<th>{{item.User.Class}}</th>
+							<th>
+								<div>
+									{{item.User.Type}}
+								</div>
+							</th>
+							<th>{{item.User.PhoneNum}}</th>
+						</tr>
+					</tbody>
+				</table>
+
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		name: "home_project",
+		data() {
+			return {
+				index: 1,
+				title: "",
+				show: false,
+				auditshow: false,
+				callback: "",
+				arr: [],
+				data: [],
+				projectData: [],
+				ProjectItem: [],
+				fileData: [],
+				projectMembers: [],
+			}
+		},
+		components: {
+			
+		},
+		methods: {
+			stopPenetrate(){
+			    return;
+			},
+			paging(obj) {
+				this.index = obj;
+			},
+			viewIntro(item){
+				uni.showModal({
+				    title: '简介',
+					showCancel: false,
+				    content: item.Describe,
+				    success: function (res) {
+				        if (res.confirm) {
+				            console.log('确定');
+				        } else if (res.cancel) {
+				            console.log('取消');
+				        }
+				    }
+				});
+			},
+			//审核状态中文
+			getShenheText(pass){
+				let t = "成功"
+				if (pass == false) {
+					t = "失败"
+				}
+				return t
+			},
+			download(index,item) {
+				window.location.href = item.URL;
+			},
+			getlist() {
+				uni.request({
+					url: mydata_api + "/project/getprojectcontent",
+					data: {
+						"UserID": mydata_userInfo.UserID,
+						"ProjectID": this.projectData[0].Id
+					},
+					method: "POST",
+					dataType: "json",
+					success: res => {
+						if (res.data.Code == 100) {
+							this.projectData[0] = null
+							this.projectData[0] = res.data.Project;
+							this.$forceUpdate()
+						}
+						// console.log("获取了什么样子的信息", this.projectData[0]);
+					}
+				})
+			},
+			getFileList() {
+				uni.request({
+					url: mydata_api + "/project/getprojectcontent",
+					data: {
+						"UserID": mydata_userInfo.UserID,
+						"ProjectID": this.projectData[0].Id
+					},
+					method: "POST",
+					dataType: "json",
+					success: res => {
+						this.fileData = res.data.ProjectItem;
+						// console.log('this.fileData=',this.fileData)
+					}
+				})
+			},
+			viewProject(obj) {
+				// console.log('进来的什么信息',obj)
+				this.projectData = [obj];
+				this.getFileList();
+				this.getMemberList();
+			},
+			getMemberList() {
+				var temp = {
+					"ProjectID": this.projectData[0].Id
+				}
+				uni.request({
+					url: mydata_api + "/project/getmember",
+					data: temp,
+					method: "POST",
+					dataType: "json",
+					success: res => {
+						// console.log("请求学生", res);
+						if (res.data.Code == 100) {
+							this.projectMembers = res.data.Users;
+							// console.log();
+						}
+					}
+				})
+			},
+			bindPickerChange_proType: function(e) {
+				this.index_proType = e.target.value;
+				this.editDialogData.type = this.proType[this.index_proType];
+				// console.log(this.model)
+			},
+			bindPickerChange_proTypeadd: function(e) {
+				this.index_addproType = e.target.value;
+				this.addedMemberModel.type = this.addproType[this.index_addproType];
+				// console.log(this.model)
+			},
+            bindPickerChange_fileType: function(e) {
+                this.index_FileType = e.target.value;
+                this.fileDialogData.type = this.addFileType[this.index_FileType];
+                // console.log(this.model)
+            },
+			deleteMember(item){
+				console.log('删掉成员 ',item)
+				let url = mydata_api + "/project/deletemember"
+				let data = {
+					"userID" : this.projectData[0].CreateUserID,
+					"DeleteUserID":item.User.Id,
+					"ProjectID":this.projectData[0].Id,
+				}
+				console.log('删掉成员 发送数据 '," 地址 ",url," 数据 ",data)
+
+				uni.request({
+					url: url,
+					data: data,
+					method: "POST",
+					dataType: "json",
+					success: res => {
+						console.log('删掉成员 返回',res)
+						if (res.data.Code == 100) {
+							// this.$refs.table.getList();
+							this.getMemberList();
+							this.$forceUpdate();//强制刷新页面
+						}
+						// this.projectData.splice(index,index);
+					}
+				})
+			},
+            delFile(){
+				// this.currentSelect
+				console.log('删除文件', this.currentSelect)
+				// SetFilePass
+				let url = mydata_api + "/project/deleteprojectcontent"
+				// "UserID":"xxxx",           //上传人或者项目创建人
+				// 		"ProjectItemID" : "123"
+				let data = {
+					"UserID" : this.projectData[0].CreateUserID,
+					"ProjectItemID":this.currentSelect.item.Id
+				}
+				console.log('删除文件 发送数据 '," 地址 ",url," 数据 ",data,"项目数据",this.projectData)
+
+				uni.request({
+					url: url,
+					data: data,
+					method: "POST",
+					dataType: "json",
+					success: res => {
+						console.log('删除文件 返回',res)
+						if (res.data.Code == 100) {
+							this.getFileList();
+						}
+					}
+				})
+            },
+            DownloadFile() {
+				window.location.href = this.currentSelect.item.URL;
+            },
+		},
+	}
+</script>
+
+<style lang="scss">
+	.m_right {
+		width: 100%;
+		margin-top: 5rpx;
+		// padding: 0 150rpx;
+		background-color: #fff;
+		box-shadow: 3px 0px 6px 0px rgba(0, 0, 0, 0.1);
+		.m_right_container {
+			padding: 150rpx;
+		}
+		.s_logo {
+			width: 100%;
+			height: 800rpx;
+		}
+		.m_right_hander {
+			text-align: right;
+			height: 250rpx;
+			position: relative;
+
+			.m_btn_red {
+				position: absolute;
+				height: 80rpx;
+				line-height: 80rpx;
+				padding: 0 40rpx;
+				right: 0;
+				top: 50%;
+				transform: translateY(-50%);
+				background: #EA252C;
+				color: #fff;
+			}
+		}
+	}
+	.m_btn_download {
+		height: 80rpx;
+		line-height: 80rpx;
+		padding: 0 70rpx;
+		background: #EA252C;
+		color: #fff;
+		font-family: MicrosoftYaHei;
+	}
+	tbody tr {
+		border-top: 2rpx solid #DDDDDD !important;
+	}
+	tbody tr th:first-child {
+		position: relative;
+	}
+	tbody tr th {
+		font-weight: 400 !important;
+		height: 140rpx;
+		line-height: 140rpx;
+	}
+	tbody tr:hover {
+		// color: #fff;
+		background: #FDEBEC;
+		// opacity: 0.08;
+	}
+	.form-input {
+		width: 100%;
+		border: 1px solid #ece8e8;
+		line-height: 50rpx;
+		font-size: 30rpx;
+		border-radius: 6rpx;
+		padding: 10rpx 40rpx;
+	}
+	.m-table-hander {
+		background-color: #FFF8F7;
+		height: 140rpx;
+		line-height: 140rpx;
+		font-family: MicrosoftYaHei-Bold, MicrosoftYaHei;
+		font-weight: bold;
+	}
+	.m_edit {
+		position: absolute;
+		top: 50%;
+		left: 50%;
+		transform: translate(-50%, -50%);
+		background: rgb(67, 127, 250);
+		color: rgb(255, 255, 255);
+		min-width: 130rpx;
+	}
+	.m_delete {
+		position: absolute;
+		top: 50%;
+		left: 50%;
+		min-width: 130rpx;
+		transform: translate(-50%, -50%);
+		background: rgb(234, 37, 44);
+		color: rgb(255, 255, 255);
+	}
+	.m_edit_1 {
+		position: absolute;
+		top: 50%;
+		left: 50%;
+		transform: translate(-50%, -50%);
+		background: rgb(67, 127, 250);
+		color: rgb(255, 255, 255);
+		min-width: 130rpx;
+	}
+	.m_delete_1 {
+		position: absolute;
+		top: 50%;
+		left: 50%;
+		min-width: 110rpx;
+		transform: translate(-50%, -50%);
+		background: rgb(234, 37, 44);
+		color: rgb(255, 255, 255);
+	}
+	.m_right_footer {
+		margin-top: 80rpx;
+	}
+	.m_logoimg {
+		width: 80rpx;
+		height: 80rpx;
+		position: absolute;
+		top: 50%;
+		left: 50%;
+		transform: translate(-50%, -50%);
+	}
+	.m_paging {
+		text-align: right;
+		.m_paging_item {
+			padding: 10rpx 18rpx;
+			border: 1rpx solid #DDDDDD;
+			border-radius: 8rpx;
+			margin-right: 10rpx;
+		}
+		.p_act {
+			background: #EA252C;
+			color: #fff;
+			border: inherit;
+		}
+	}
+	.m_paging_item:hover {
+		background: #EA252C;
+		color: #fff;
+		border: inherit;
+	}
+	.m_act1 {
+		color: #FF0019;
+	}
+	.m_row {
+		display: flex;
+		height: 60rpx;
+		line-height: 60rpx;
+		font-size: 30rpx;
+		color: #ea252c;
+		padding: 0 0 80rpx 0;
+	}
+	.m_audit {
+		position: absolute;
+		top: 50%;
+		left: 50%;
+		min-width: 65px;
+		-webkit-transform: translate(-50%, -50%);
+		transform: translate(-50%, -50%);
+		color: white;
+		background-color: #FF791B;
+	}
+	.m_audit_1 {
+		position: absolute;
+		top: 50%;
+		left: 50%;
+		min-width: 55px;
+		-webkit-transform: translate(-50%, -50%);
+		transform: translate(-50%, -50%);
+		color: white;
+		background-color: #FF791B;
+	}
+	.m_row_link {
+		width: 10rpx;
+		height: 60rpx;
+		background-color: #ea252c;
+		margin-right: 40rpx;
+	}
+	.m_row_title {
+		color: #ea252c;
+		font-weight: bold;
+		font-size: 40rpx;
+	}
+	/*向下*/
+	.triangle_border_down {
+		width: 0;
+		height: 0;
+		border-width: 25rpx 25rpx 0;
+		border-style: solid;
+		border-color: #ea252c transparent transparent;
+		/*灰 透明 透明 */
+		margin: 20rpx auto;
+		position: relative;
+	}
+	.m_row_class {
+		margin-bottom: 60rpx;
+	}
+	.addMember_box{
+		margin-bottom: 50rpx;
+		height: 80rpx;
+	}
+	.addMember_input_box{
+		width: 500rpx;
+		height: 80rpx;
+	}
+	.addMember_input {
+		width: 100%;
+		height: 100%;
+		border: 1px solid #ece8e8;
+		line-height: 50rpx;
+		font-size: 30rpx;
+		border-radius: 6rpx;
+		padding: 10rpx 40rpx;
+	}
+	.addMember_btn {
+		width: 130rpx;
+		height: 80rpx;
+		transform: translate(-50%, -50%);
+		background: rgb(234, 37, 44);
+		color: rgb(255, 255, 255);
+	}
+	.blank{
+		border:1px solid black;
+	}
+	.table{
+		border:1px solid black;
+	}
+	.input-item {
+		border:1px solid black;
+	}
+	.pop_view{
+		position: fixed;
+		
+		display: flex;
+		justify-content: center;
+		align-items:center;/*垂直居中*/
+		
+		width: 100%;
+		height: 100%;
+		top: 0rpx;
+		left: 0rpx;
+		// z-index: 100;
+		background-color:rgba(0,0,0,0.5)
+	}
+	.edit_form{
+		width: 25%;
+		height: 50%;
+		background-color:rgba(255,255,255,1);
+	 
+		display: flex;
+		justify-content: center;
+		// justify-content: space-between;
+		align-items:center;
+		
+		.edit_BG{
+			width: 90%;
+			height: 90%;
+			
+			display: flex;
+			justify-content: space-between;
+			align-items:center;
+			flex-direction:column;
+			// border:1rpx solid #000000;
+			
+			.edit_row{
+				
+				width: 90%;
+				height: 50%;
+				// border:1rpx solid #000000;
+				
+				display: flex;
+				// justify-content: space-between;
+				align-items:center;
+				flex-direction:row;
+			}
+		}
+	}
+	.edit_title
+	{	
+		width: 80%;
+		height: 100%;
+		font-size: 70rpx;
+		color: #000000;
+		// border:1rpx solid #000000;
+		
+		display: flex;
+		justify-content: center;
+		align-items:center;
+		
+		margin-bottom:10%;
+	}
+	.edit_text{
+		width: 50%;
+		height: 50%;
+	
+		font-size: 30rpx;
+		color: #000000;
+		// border:1rpx solid #000000;
+	}
+	
+	.input_frame{
+		width: 100%;
+		height: 80%;
+	
+		border:1rpx solid #000000;
+		border-radius: 25rpx;
+		
+		display: flex;
+		justify-content: center;
+		align-items:center;
+		
+	}
+	.edit_input{
+		font-size: 30rpx;
+		color: #000000;
+		width: 80%;
+		height: 100%;
+		// border:1rpx solid #000000;
+	}
+	
+	
+	.modify_btn
+	{
+		width: 90%;
+		height: 50%;
+		// border:1rpx solid #000000;
+		
+		display: flex;
+		align-items:center;
+		flex-direction:row;
+		
+		margin-top:10%;
+	}
+	.modify_confirm
+	{
+		background: rgb(67, 127, 250);
+		color: rgb(255, 255, 255);
+		min-width: 30%;
+	}
+	.modify_cancel
+	{
+		min-width: 30%;
+		background: rgb(234, 37, 44);
+		color: rgb(255, 255, 255);
+	}
+	
+	.m_msg {
+		width: 1500rpx;
+		height: 900rpx;
+		padding: 0rpx 0 40rpx 0;
+		position: fixed;
+		top: 50%;
+		left: 50%;
+		border-radius: 10rpx;
+		transform: translate(-50%, -50%);
+		z-index: 100;
+		background-color: #fff;
+		opacity: 1;
+		.layout{
+			position: absolute;
+			left: 50%;
+			bottom: 2%;
+		}
+		.m_edit {
+			position: relative;
+			left: 20%;
+
+			transform: translate(-50%, -50%);
+			background: rgb(67, 127, 250);
+			color: rgb(255, 255, 255);
+			min-width: 130rpx;
+		}
+		.m_delete {
+			position: relative;
+			left: 50%;
+			min-width: 130rpx;
+			transform: translate(-50%, -50%);
+			background: rgb(234, 37, 44);
+			color: rgb(255, 255, 255);
+		}
+	}
+</style>

+ 10 - 4
components/user/personalLearning.vue

@@ -276,6 +276,12 @@
 				// let data = {"categories":["维度1","维度2","维度3","维度4","维度5","维度6"],"series":[{"name":"成交量1","data":[90,110,165,195,187,172]},{"name":"成交量2","data":[190,210,105,35,27,102]}]}
 				// let data = {"categories":["维度1","维度2","维度3","维度4","维度5","维度6"],"series":[{"name":"成交量1","data":[90,110,165,195,187,172]},{"name":"成交量2","data":[190,210,105,35,27,102]}]}
 				// let data = {"categories":["原理认知","实景勘察","虚拟技术搭建","虚拟艺术创作","教师评分(加分项目)"],"series":[{"name":"成绩分布","data":[90,110,165,195,187]}]}
 				// let data = {"categories":["原理认知","实景勘察","虚拟技术搭建","虚拟艺术创作","教师评分(加分项目)"],"series":[{"name":"成绩分布","data":[90,110,165,195,187]}]}
 				// let data = {"categories":["维度1","维度2","维度3"],"series":[{"name":"成交量1","data":[90,110,165,195,187,172]}]}
 				// let data = {"categories":["维度1","维度2","维度3"],"series":[{"name":"成交量1","data":[90,110,165,195,187,172]}]}
+				
+				for(let i=0;i<aData.length;i++){
+					// console.log('aData=',aData[i])
+					
+					aData[i]=aData[i]*20;
+				}
 				let data = {
 				let data = {
 					"categories": ["原理认知", "实景考察", "虚拟技术搭建", "虚拟艺术创作", "教师评分(加分项目)"],
 					"categories": ["原理认知", "实景考察", "虚拟技术搭建", "虚拟艺术创作", "教师评分(加分项目)"],
 					"series": [{
 					"series": [{
@@ -290,12 +296,12 @@
 					$this: _self,
 					$this: _self,
 					canvasId: canvasId,
 					canvasId: canvasId,
 					type: 'radar',
 					type: 'radar',
-					fontSize: 11,
-					padding: [15, 15, 0, 15],
+					fontSize: 15,
+					padding: [0, 0, 0, 0],
 					legend: {
 					legend: {
 						show: true,
 						show: true,
-						padding: 5,
-						lineHeight: 11,
+						padding: 0,
+						lineHeight: 0,
 						margin: 0,
 						margin: 0,
 					},
 					},
 					background: '#FFFFFF',
 					background: '#FFFFFF',

+ 7 - 3
components/user/stuTestDetails.vue

@@ -306,6 +306,10 @@
 				// let data = {"categories":["维度1","维度2","维度3","维度4","维度5","维度6"],"series":[{"name":"成交量1","data":[90,110,165,195,187,172]},{"name":"成交量2","data":[190,210,105,35,27,102]}]}
 				// let data = {"categories":["维度1","维度2","维度3","维度4","维度5","维度6"],"series":[{"name":"成交量1","data":[90,110,165,195,187,172]},{"name":"成交量2","data":[190,210,105,35,27,102]}]}
 				// let data = {"categories":["原理认知","实景勘察","虚拟技术搭建","虚拟艺术创作","教师评分(加分项目)"],"series":[{"name":"成绩分布","data":[90,110,165,195,187]}]}
 				// let data = {"categories":["原理认知","实景勘察","虚拟技术搭建","虚拟艺术创作","教师评分(加分项目)"],"series":[{"name":"成绩分布","data":[90,110,165,195,187]}]}
 				// let data = {"categories":["维度1","维度2","维度3"],"series":[{"name":"成交量1","data":[90,110,165,195,187,172]}]}
 				// let data = {"categories":["维度1","维度2","维度3"],"series":[{"name":"成交量1","data":[90,110,165,195,187,172]}]}
+				
+				for(let i=0;i<aData.length;i++){
+					aData[i]=aData[i]*20;
+				}
 				let data = {
 				let data = {
 					"categories": ["原理认知", "实景考察", "虚拟技术搭建", "虚拟艺术创作", "教师评分(加分项目)"],
 					"categories": ["原理认知", "实景考察", "虚拟技术搭建", "虚拟艺术创作", "教师评分(加分项目)"],
 					"series": [{
 					"series": [{
@@ -320,12 +324,12 @@
 					$this: _self,
 					$this: _self,
 					canvasId: canvasId,
 					canvasId: canvasId,
 					type: 'radar',
 					type: 'radar',
-					fontSize: 11,
-					padding: [15, 15, 0, 15],
+					fontSize: 15,
+					padding: [0, 0, 0, 0],
 					legend: {
 					legend: {
 						show: true,
 						show: true,
 						padding: 5,
 						padding: 5,
-						lineHeight: 11,
+						lineHeight: 0,
 						margin: 0,
 						margin: 0,
 					},
 					},
 					background: '#FFFFFF',
 					background: '#FFFFFF',

+ 1 - 1
myData/myData_XXLC.js

@@ -334,7 +334,7 @@ myData_XXLC_XNZYKJS={
 				"textList":[
 				"textList":[
 					{
 					{
 						"textType":'nor',
 						"textType":'nor',
-						"text":'1、虚拟资源库建设。'
+						"text":'该模块为持续建设,暂无实验操作步骤'
 					}
 					}
 				]
 				]
 			},
 			},

+ 25 - 15
myData/myData_tests.js

@@ -59,29 +59,39 @@ myData_test_SJKC={
 	"test":'实景勘察',
 	"test":'实景勘察',
 	"list":[
 	"list":[
 		{
 		{
-			"q":'虚拟制片是',
-			"a_list":['一种全新的制片方式。','一种全新的创作流程。','制片人通过虚拟技术管理的方法。','一种所见即所得的创作方式。'],
-			"a":[1,1,0,1]
+			"q":'XR虚拟拍摄棚一般包括',
+			"a_list":['绿幕','摄影机运动捕捉系统','星云定位','虚拟引擎服务器','LED墙','集群渲染服务器'],
+			"a":[1,1,1,1,1,1]
 		},
 		},
 		{
 		{
-			"q":'UE',
-			"a_list":['是虚拟引擎。','最初用于游戏行业,核心是实时渲染技术。','在现阶段,相比Unity有更加逼真的效果,因此更多应用于影视行业。Unity更具有使用环境便捷,灵活低廉等优势,广泛应用于博物馆、展览等行业,其高清管线技术正在弥补其逼真度的劣势问题。','在虚拟制片中处于核心地位。'],
-			"a":[1,1,1,1]
+			"q":'LED屏幕',
+			"a_list":['根据像素间距划分清晰度',
+			'一般由500mm的方形屏幕拼接组成任意角度的幕墙',
+			'LED墙的每一个面需要至少配备1台渲染服务器',
+			'普通LED屏幕即可'],
+			"a":[1,1,1,0]
 		},
 		},
 		{
 		{
-			"q":'虚拟制片流程的特点是',
-			"a_list":['将前期虚拟艺术直接投入制作使用,有效节省资本与时间。','改变传统的依次创作流程,在中期拍摄阶段实现各部门的实时协作。','节省后期合成时间成本,避免传统绿屏拍摄的溢出等问题。','在现场,使各部门都能感受到最终场景的气氛,有利于各部门创作。'],
-			"a":[1,1,1,1]
+			"q":'目前服务XR-STAGE的企业包括',
+			"a_list":['UE,提供实时渲染及各软硬件的桥接',
+			'Disguise,专门提供XR解决服务软硬件服务商',
+			'Pixotope,实时媒体制作的混合现实服务商',
+			'APG,LED屏幕供应商',
+			'OptiTrack,运动捕捉系统'],
+			"a":[1,1,1,1,1]
 		},
 		},
 		{
 		{
-			"q":'下列属于虚拟制片的是',
-			"a_list":['运动捕捉','实时抠像','虚拟','LED幕布'],
-			"a":[1,1,1,1]
+			"q":'目前提供XR-STAGE的企业是',
+			"a_list":['Industry Light Magic','Pixmodo','Disguise','UE'],
+			"a":[1,1,1,0]
 		},
 		},
 		{
 		{
-			"q":'虚拟制片流程更适用于',
-			"a_list":['工业级特效电影','文艺片','现实题材电影','大量绿屏拍摄电影'],
-			"a":[1,0,0,1]
+			"q":'对XR摄影棚的描述错误的是',
+			"a_list":['XR摄影棚需要绿幕及跟踪点进行抠像',
+			'XR不再需要绿幕',
+			'XR一定意义上取代了绿幕拍摄',
+			'XR在特殊情况下仍需要绿幕配合'],
+			"a":[1,1,0,0]
 		}
 		}
 	]
 	]
 }
 }

+ 153 - 0
pages/home.vue

@@ -38,6 +38,35 @@
 		<LeftMenu ref="LeftMenu" v-on:onLeftMenuClick="onLeftMenuClick"></LeftMenu>
 		<LeftMenu ref="LeftMenu" v-on:onLeftMenuClick="onLeftMenuClick"></LeftMenu>
 		<webview720 ref="webview720"></webview720>
 		<webview720 ref="webview720"></webview720>
 		<shutDownWebview ref="shutDownWebview" v-on:onHideWebview="onHideWebview" v-on:onClick_KSKC="onClick_KSKC"></shutDownWebview>
 		<shutDownWebview ref="shutDownWebview" v-on:onHideWebview="onHideWebview" v-on:onClick_KSKC="onClick_KSKC"></shutDownWebview>
+		<!-- 联系方式 -->
+		<view class='contact'>
+			<!-- 弹出框 -->
+			<view class='contactPopView'>
+				<view class='qrcode' v-show="bShowQrCode">
+					<!-- <img class="contactPopViewBg" src="../assets/contact/bubble_01.png"></img>	 -->
+					<img class="contactPopViewContent" src="../assets/contact/QRCode.png"></img>							
+				</view>
+				
+				<view class='mail' v-show="bShowMail">
+					<img class="contactPopViewBg"  src="../assets/contact/bubble_02.png"></img>
+					<text selectable="true" class="contactPopViewContent"  src="../assets/contact/QRCode.png">2812319400@qq.com</text>
+				</view>
+				
+				<view class='tel' v-show="bShowTel">
+					<img class="contactPopViewBg" src="../assets/contact/bubble_02.png"></img>
+					<text selectable="true" class="contactPopViewContent" src="../assets/contact/QRCode.png">15017534446</text>
+				</view>
+				
+			</view>	
+			<!-- 背景 -->
+			<view class='contactBg'></view>
+			<!-- icon -->
+			<view class="imageBg">
+				<img src="../assets/contact/qrcode_icon.png" @mousemove="showContact(0)" @mouseout="showContact(4)"></img>
+				<img src="../assets/contact/mail_icon.png" @mousemove="showContact(1)" @mouseout="showContact(4)"></img>
+				<img src="../assets/contact/tel_icon.png" @mousemove="showContact(2)" @mouseout="showContact(4)"></img>
+			</view>
+		</view>
 	</view>
 	</view>
 </template>
 </template>
 
 
@@ -138,6 +167,9 @@
 					false, //22学习资料下载
 					false, //22学习资料下载
 				],
 				],
 				checkedIndex_SYJJ: 0, //实验简介选中标题索引值
 				checkedIndex_SYJJ: 0, //实验简介选中标题索引值
+				bShowQrCode:false,
+				bShowMail:false,
+				bShowTel:false,
 			}
 			}
 		},
 		},
 		onLoad() {
 		onLoad() {
@@ -565,6 +597,34 @@
 				this.$refs.TopMenu.hideTopMenu(false);
 				this.$refs.TopMenu.hideTopMenu(false);
 				this.$refs.shutDownWebview.onClickShow();
 				this.$refs.shutDownWebview.onClickShow();
 				this.$refs.webview720.onClickShow();
 				this.$refs.webview720.onClickShow();
+			},
+			showContact(idx){
+				console.log('idx=',idx)
+				if(0==idx)
+				{
+					this.bShowQrCode = true;
+					this.bShowMail = false;
+					this.bShowTel = false;
+				}
+				else if(1==idx)
+				{
+					this.bShowQrCode = false;
+					this.bShowMail = true;
+					this.bShowTel = false;
+				}
+				else if(2==idx)
+				{
+					this.bShowQrCode = false;
+					this.bShowMail = false;
+					this.bShowTel = true;
+				}
+				else{
+					this.bShowQrCode = false;
+					this.bShowMail = false;
+					this.bShowTel = false;
+				}
+				
+				
 			}
 			}
 		}
 		}
 	}
 	}
@@ -579,4 +639,97 @@
 	.homeContent {
 	.homeContent {
 		margin-top: px2vw(120);
 		margin-top: px2vw(120);
 	}
 	}
+	//联系方式
+	.contact{
+		width: 20%;
+		height: 30%;
+			
+		position: fixed;
+		bottom: 1%;
+		right: 1%;
+		
+		// border: 1px solid #ff0000;
+	}
+	//联系方式图标
+	.contactBg{		
+		width: 15%;
+		height: 60%;
+		
+		position: absolute;
+		right: 0;
+		bottom: 0;
+		
+		background-color: #000000;
+		opacity: 0.5;
+	}
+	.imageBg{
+		width: 15%;
+		height: 60%;
+		
+		position: absolute;
+		right: 0;
+		bottom: 0;
+		
+		display: flex;
+		justify-content: space-around;
+		align-items:center;
+		flex-direction:column;
+	}
+	.contact img{
+		width: 50%;
+		// border: 5px solid #0000ff;
+	}
+	// 联系方式弹出框
+	.contactPopView {
+		width: 85%;
+		height: 100%;
+		// border: 5px solid #0000ff;
+	}
+
+	.qrcode{
+		position: absolute;
+		width: 100%;
+		height: 100%;
+		// border: 5px solid #00aa00;
+		
+		display: flex;
+		justify-content: center;
+		align-items:center;
+	}
+	.mail{
+		position: absolute;
+		width: 100%;
+		height: 100%;
+		
+		display: flex;
+		justify-content: center;
+		align-items:center;
+	}
+	.tel{
+		position: absolute;
+		width: 100%;
+		height: 100%;
+		
+		display: flex;
+		justify-content: center;
+		align-items:center;
+	}
+	
+	.contactPopViewBg{
+		position: absolute;
+		width: 100%;
+		// border: 5px solid #00aa00;
+	}
+	
+	.contactPopViewContent{
+		position: absolute;
+		width: 100%;
+		
+		font-size: px2vw(12);
+		display: flex;
+		justify-content: center;
+		align-items:center;
+		
+		// border: 5px solid #00aa00;
+	}
 </style>
 </style>