|
@@ -45,7 +45,7 @@
|
|
|
</div>
|
|
|
<div class="navLi" @click="pageState=4">
|
|
|
<i class="iconStyle iconfont icon-baogao" style="color:#58c2fe;font-size:22px;margin-right: 7px;"></i>
|
|
|
- <span>项目中期工作报告</span>
|
|
|
+ <span>项目结题报告</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<!--导航栏区域结束-->
|
|
@@ -175,7 +175,7 @@
|
|
|
<span>活动开展</span>
|
|
|
</div>
|
|
|
|
|
|
- <div class="brief">
|
|
|
+ <!-- <div class="brief">
|
|
|
<div class="brief_title" type="1.2">
|
|
|
<img src="@/assets/anliDetail/jdTitle.png" alt="">
|
|
|
<span>活动开展</span>
|
|
@@ -201,9 +201,9 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
|
|
|
- <div class="brief">
|
|
|
+ <!-- <div class="brief">
|
|
|
<div class="brief_title" type="1.3">
|
|
|
<img src="@/assets/anliDetail/jdTitle.png" alt="">
|
|
|
<span>活动内容</span>
|
|
@@ -224,18 +224,18 @@
|
|
|
>
|
|
|
</vpdf>
|
|
|
</div>
|
|
|
- <div class="FileShowArea_Right">
|
|
|
+ <div class="FileShowArea_Right core_dialogue">
|
|
|
<div class="FileList"><span>1.文档</span>xxxxxxx</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
-
|
|
|
+ </div> -->
|
|
|
+<!--
|
|
|
<div class="BaseTitle" type="2">
|
|
|
<span>项目安排</span>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
|
|
|
- <div class="arrangement">
|
|
|
+ <!-- <div class="arrangement">
|
|
|
<div class="arrangement_assignment">
|
|
|
<div class="arrangement_assignment_title" type="2.1">
|
|
|
<span>
|
|
@@ -329,9 +329,9 @@
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
|
|
|
- <div class="arrangement">
|
|
|
+ <!-- <div class="arrangement">
|
|
|
<div class="arrangement_assignment">
|
|
|
<div class="arrangement_assignment_title" type="2.2">
|
|
|
<span>
|
|
@@ -384,22 +384,15 @@
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
</div>
|
|
|
<!-- 活动开展结束 -->
|
|
|
<!-- 项目附件开始 -->
|
|
|
<div class="BaseMessage" v-show="pageState==3">
|
|
|
<div class="BaseTitle" type="3">
|
|
|
- <span>项目活动过程</span>
|
|
|
+ <span>项目附件</span>
|
|
|
</div>
|
|
|
<div class="brief">
|
|
|
- <div class="brief_title" type="3.1">
|
|
|
- <img src="@/assets/anliDetail/jdTitle.png" alt="">
|
|
|
- <span>阶段一</span>
|
|
|
- </div>
|
|
|
- <div class="TextView">
|
|
|
- {{ ProjectBaseMessage.evaluation }}
|
|
|
- </div>
|
|
|
<div class="material">
|
|
|
<div class="material_title">
|
|
|
<img src="@/assets/anliDetail/fileList.png" alt="">
|
|
@@ -407,56 +400,104 @@
|
|
|
</div>
|
|
|
<div class="FileShowArea">
|
|
|
<div class="FileShowArea_Left">
|
|
|
+ <vword
|
|
|
+ style="width: 100%; height: 100%; overflow: auto"
|
|
|
+ class="fullStyle"
|
|
|
+ v-if="checkFileType(ProjectLookFile.url)['type']!='pdf'&&checkFileType(ProjectLookFile.url)['name']!='图片'"
|
|
|
+ :pdfUrl="'https://view.officeapps.live.com/op/view.aspx?src='+ProjectLookFile.url"
|
|
|
+ ></vword>
|
|
|
<vpdf
|
|
|
style="width: 100%; height: 100%; overflow: auto"
|
|
|
class="fullStyle"
|
|
|
- >
|
|
|
- </vpdf>
|
|
|
+ :pdfUrl="ProjectLookFile.url"
|
|
|
+ v-if="checkFileType(ProjectLookFile.url)['type']=='pdf'"
|
|
|
+ ></vpdf>
|
|
|
+ <img :src="ProjectLookFile.url" alt="图片哦" v-if="checkFileType(ProjectLookFile.url)['name']=='图片'" style="width: 100%;height: 100%;">
|
|
|
</div>
|
|
|
- <div class="FileShowArea_Right">
|
|
|
- <div class="FileList"><span>1.文档</span>xxxxxxx</div>
|
|
|
+ <div class="FileShowArea_Right core_dialogue">
|
|
|
+ <div v-for="(item,index) in ProjectFile" :key="item.url" @click="ProjectLookFile = item" :class="['FileList',ProjectLookFile['url']==item.url?'lookFile':'']"><span>{{ index+1 }}.{{ checkFileType(item.url)["name"] }}</span><div>{{ item.fileName }}</div></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
|
|
|
- <div class="brief_title" type="3.2">
|
|
|
+ <!-- 项目中期报告开始 -->
|
|
|
+ <div class="BaseMessage" v-show="pageState==4">
|
|
|
+ <div class="BaseTitle">
|
|
|
+ <span>结项评价</span>
|
|
|
+ </div>
|
|
|
+ <div class="brief">
|
|
|
+ <div class="brief_title" type="1.1">
|
|
|
<img src="@/assets/anliDetail/jdTitle.png" alt="">
|
|
|
- <span>阶段二</span>
|
|
|
+ <span>科研办</span>
|
|
|
</div>
|
|
|
- <div class="TextView">
|
|
|
- {{ ProjectBaseMessage.evaluation }}
|
|
|
+ <div class="TextView" >
|
|
|
+ <div class="TextView">
|
|
|
+ {{ DetailMessage[0] }}
|
|
|
+ </div>
|
|
|
+ <!-- <VueEditor v-model="DetailMessage[0]" :disabled="true"></VueEditor> -->
|
|
|
</div>
|
|
|
-
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="BaseTitle" type="4">
|
|
|
- <span>取得成果</span>
|
|
|
- </div>
|
|
|
-
|
|
|
<div class="brief">
|
|
|
- <div class="brief_title">
|
|
|
+ <div class="brief_title" type="1.1">
|
|
|
<img src="@/assets/anliDetail/jdTitle.png" alt="">
|
|
|
- <span>取得成果</span>
|
|
|
+ <span>学术委员会</span>
|
|
|
</div>
|
|
|
- <div class="TextView">
|
|
|
- {{ ProjectBaseMessage.evaluation }}
|
|
|
+ <div class="TextView" >
|
|
|
+ <div class="TextView">
|
|
|
+ {{ DetailMessage[0] }}
|
|
|
+ </div>
|
|
|
+ <!-- <VueEditor v-model="DetailMessage[0]" :disabled="true"></VueEditor> -->
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="brief">
|
|
|
+ <div class="brief_title" type="1.1">
|
|
|
+ <img src="@/assets/anliDetail/jdTitle.png" alt="">
|
|
|
+ <span>部门审核评语</span>
|
|
|
+ </div>
|
|
|
+ <div class="TextView" >
|
|
|
+ <div class="TextView">
|
|
|
+ {{ DetailMessage[0] }}
|
|
|
+ </div>
|
|
|
+ <!-- <VueEditor v-model="DetailMessage[0]" :disabled="true"></VueEditor> -->
|
|
|
+ </div>
|
|
|
</div>
|
|
|
-
|
|
|
- <!-- 项目中期报告开始 -->
|
|
|
- <div class="BaseMessage" v-show="pageState==4">
|
|
|
+
|
|
|
<div class="BaseTitle" type="5">
|
|
|
- <span>项目中期报告</span>
|
|
|
+ <span>项目结题报告</span>
|
|
|
</div>
|
|
|
|
|
|
<div class="brief">
|
|
|
<div class="brief_title">
|
|
|
<img src="@/assets/anliDetail/jdTitle.png" alt="">
|
|
|
- <span>活动反思</span>
|
|
|
+ <span>项目结题附件</span>
|
|
|
</div>
|
|
|
- <div class="TextView">
|
|
|
- {{ ProjectBaseMessage.evaluation }}
|
|
|
+ <div class="material">
|
|
|
+ <div class="material_title">
|
|
|
+ <img src="@/assets/anliDetail/fileList.png" alt="">
|
|
|
+ <span>项目结题附件</span>
|
|
|
+ </div>
|
|
|
+ <div class="FileShowArea">
|
|
|
+ <div class="FileShowArea_Left">
|
|
|
+ <vword
|
|
|
+ style="width: 100%; height: 100%; overflow: auto"
|
|
|
+ class="fullStyle"
|
|
|
+ v-if="checkFileType(ProjectEndLookFile.url)['type']!='pdf'&&checkFileType(ProjectEndLookFile.url)['name']!='图片'"
|
|
|
+ :pdfUrl="'https://view.officeapps.live.com/op/view.aspx?src='+ProjectEndLookFile.url"
|
|
|
+ ></vword>
|
|
|
+ <vpdf
|
|
|
+ style="width: 100%; height: 100%; overflow: auto"
|
|
|
+ class="fullStyle"
|
|
|
+ :pdfUrl="ProjectEndLookFile.url"
|
|
|
+ v-if="checkFileType(ProjectEndLookFile.url)['type']=='pdf'"
|
|
|
+ ></vpdf>
|
|
|
+ <img :src="ProjectEndLookFile.url" alt="图片哦" v-if="checkFileType(ProjectEndLookFile.url)['name']=='图片'" style="width: 100%;height: 100%;">
|
|
|
+ </div>
|
|
|
+ <div class="FileShowArea_Right core_dialogue">
|
|
|
+ <div v-for="(item,index) in ProjectEndFile" :key="item.url" @click="ProjectEndLookFile = item" :class="['FileList',ProjectEndLookFile['url']==item.url?'lookFile':'']"><span>{{ index+1 }}.{{ checkFileType(item.url)["name"] }}</span><div>{{ item.fileName }}</div></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -476,56 +517,51 @@
|
|
|
pageState:0,
|
|
|
TitleMessage:{},
|
|
|
DetailMessage:[],
|
|
|
- ProjectBaseMessage:{
|
|
|
- Name:"人工智能测试数据",
|
|
|
- curator:"张紫林",
|
|
|
- unit:"深圳技师学院",
|
|
|
- subject:"个人创客",
|
|
|
- brief:"项目组委托中国软件评测中心对于本项目进行检测并出具了《软件产品登记测试报告》(报告编号:RD161713835)。a.报告中测试项目之功能:“检测抽查软件中C、PHP、Python、Nodejs等主要功能未发现异常。”测试结果为通过,完成本项目合同指标1的第三方检测验证。b.报告中测试项目之功能:“软件的主要功能模块(二级菜单以上)基本挂件。”测试项目之安全稳定性:“软件具有用户权限限制。”测试结",
|
|
|
- question:"云后台在线编程是指不需要经过安装编程的环境,直接在互联网浏览器上编写程序,并且可以运行出结果。而云后台在线编程的主旨是搭建一个功能完善的在线开发平台和学习分享社区。本项目具体拟采用的技术原理以及技术方法:通过Web形式实现可供编码的客户端,当代码运行时,将文件数据传输都后台linux系统进行编译运行,再将其结果反馈回到客户端,使得后端语言学习者免去硬件环境等客观阻碍的因素,能够快速得进行后端语言的学习与开发。以下为项目的几点工艺流程:1、引用云操作系统ufrom,uformd框架,实现web界面的本地化。实现界面的可视化效果。2、搭建键值对数据库mongodb,传统数据库mysql,实现用户多项目管理,目录树管理,文件夹管理,文件管理。3、实现C语言,PHP语言,Nodejs语言,Ruby语言,Perl语言,Python语言的后台编译。",
|
|
|
- objectives:"在线编程是指不需要安装开发环境,直接在互联网浏览器上进行开发,并且可直接以运行代码的互联网平台。目前国内制作的在线开发环境功能参差不全,支持的语言不够多,大部分国内平台只支持语法高亮与代码格式化,只有少部分提供的最基础的调试功能。而“云后台在线编程”的主旨是为团队协同工作提供方便,支持在线同时编辑代码,支持大部分语言鲜明清晰,内置数据文件可以公开,也可以分享给指定ID,可以查看修改记录。本项目的最终目标是搭建一个功能完善的在线开发平台和学习分享社区。",
|
|
|
- evaluation:"云后台在线编程内置的Web IDE意思为免费的在线集成开发环境,项目还包括了供Web IDE实现的云服务架构。云服务架构底层的核心是静态文件服务器集群,静态文件服务器集群是一个操作的集群,操作性能是团队选择实现技术的关键点,Node.js的底层优化和事件模型及其切合了我们的需求。以下为研究内容:1、支持十多种编程语言,例如PHP、Ruby、Python、Go、JavaScript(包括Node.js)等。它可以使开发者在一个事先安装好的环境中快速进入开发,能与其他人协作,并且能在Web开发中做到实时预览和浏览器兼容性测试等。2、完成在线文件管理系统,通过树目录实现文件管理系统功能。3、实现友好的错误提示,当程序发生错误时,提示用户如何解决此错误。4、实现项目之间的分享,让互联网用户更加容易查看到其他人制作的项目,分享成功的经验和失败的教训。5、完成平台至少40个教学案例展示。",
|
|
|
- },
|
|
|
- File:{
|
|
|
- brief:[
|
|
|
- {id:1,title:"演讲视角.jpg",show:true,type:"图片"},
|
|
|
- {id:2,title:"关于晚修课程请假.docx",show:false,type:"文档"}
|
|
|
- ]
|
|
|
- },
|
|
|
+ ProjectFile:[],
|
|
|
+ ProjectLookFile:{url:"https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/0629%E5%AE%9E%E6%97%B6%E8%AF%BE%E5%A0%82%E6%A8%A1%E6%8B%9F%E6%BC%94%E7%A4%BA%E8%AF%BE%E4%BB%B61656920880446.pdf"},
|
|
|
+ ProjectEndFile:[],
|
|
|
+ ProjectEndLookFile:{url:"https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/0629%E5%AE%9E%E6%97%B6%E8%AF%BE%E5%A0%82%E6%A8%A1%E6%8B%9F%E6%BC%94%E7%A4%BA%E8%AF%BE%E4%BB%B61656920880446.pdf"},
|
|
|
canonical:{
|
|
|
- Image:/^\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i
|
|
|
- },
|
|
|
- Develop:{
|
|
|
- arrangement1:false,
|
|
|
- arrangement2:false,
|
|
|
+ Image:/^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i,
|
|
|
+ File:/^https?:\/\/(.+\/)+.+(\.(docx|xlsx|ppt|pdf))$/i
|
|
|
},
|
|
|
}
|
|
|
},
|
|
|
methods:{
|
|
|
getData(){
|
|
|
- // console.log(1)
|
|
|
this.ajax.get(this.$store.state.api+"/GetProjectDetailIsConclusion",{
|
|
|
uid:this.$store.state.userInfo.userid,
|
|
|
pid:this.$route.query["Id"]
|
|
|
}).then(res=>{
|
|
|
console.log(res)
|
|
|
let data = res.data;
|
|
|
+ console.log(data)
|
|
|
this.TitleMessage = data[0][0]
|
|
|
this.TitleMessage['course_student'] = JSON.parse(this.TitleMessage['course_student']);
|
|
|
this.DetailMessage= JSON.parse(data[1][0]['chapters'])[0];
|
|
|
- console.log(this.DetailMessage)
|
|
|
+ this.ProjectFile = JSON.parse(data[2][0]['projectFile'])
|
|
|
+ this.ProjectLookFile = this.ProjectFile[0] || '';
|
|
|
+ this.ProjectEndFile = JSON.parse(data[3][0]['endFile']);
|
|
|
+ this.ProjectEndLookFile = this.ProjectEndFile[0] || ''
|
|
|
+ console.log(this.ProjectEndLookFile)
|
|
|
}).catch(err=>{
|
|
|
console.log(err)
|
|
|
})
|
|
|
-
|
|
|
+ },
|
|
|
+ checkFileType(url){
|
|
|
+ let urlSplit = url.split(".");
|
|
|
+ const type = urlSplit[urlSplit.length-1]
|
|
|
+ if(this.canonical.Image.test(url))return {type:type,name:"图片"}
|
|
|
+ if(this.canonical.File.test(url))return {type:type,name:"文档"}
|
|
|
}
|
|
|
+
|
|
|
},
|
|
|
mounted(){
|
|
|
//监听元素滚动
|
|
|
let Nav = document.querySelector("#Nav");
|
|
|
document.querySelector(".rs1apply").addEventListener("scroll",(e)=>{
|
|
|
let scrollTop = e.target.scrollTop;
|
|
|
- if(scrollTop>=300){
|
|
|
+ if(scrollTop>=200){
|
|
|
Nav.style = `width:100%;padding:0 20%;box-sizing: border-box;border-radius:0;display:flex;justify-content: space-around;position: fixed;top:calc(60px - 20px);z-index:99;align-items: center;box-shadow: 0 0 5px gray;`
|
|
|
}else{
|
|
|
Nav.style = ``
|
|
@@ -669,6 +705,7 @@
|
|
|
background-color: white;
|
|
|
padding: 10px 10px 20px 10px;
|
|
|
margin-bottom: 20px;
|
|
|
+ position: relative;
|
|
|
}
|
|
|
.brief_title{
|
|
|
width: 100%;
|
|
@@ -739,7 +776,8 @@
|
|
|
}
|
|
|
.material{
|
|
|
width: 100%;
|
|
|
- height: 700px;
|
|
|
+ height: 900px;
|
|
|
+ // height: 1000px;
|
|
|
margin-top: 20px;
|
|
|
border-radius: 5px;
|
|
|
box-sizing: border-box;
|
|
@@ -780,13 +818,22 @@
|
|
|
background-color: white;
|
|
|
margin-top: 20px;
|
|
|
border-radius: 10px;
|
|
|
- overflow: hidden;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
font-size: 18px;
|
|
|
cursor: pointer;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ overflow: hidden;
|
|
|
+ div{
|
|
|
+ height: auto;
|
|
|
+ width: 70%;
|
|
|
+ display: block;
|
|
|
+ overflow: hidden;
|
|
|
+ white-space: nowrap;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ }
|
|
|
span{
|
|
|
- width: 80px;
|
|
|
+ max-width: 20%;
|
|
|
+ min-width: 20%;
|
|
|
height: 100%;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
@@ -794,6 +841,7 @@
|
|
|
color: white;
|
|
|
background-color: #0c74ab;
|
|
|
margin-right: 10px;
|
|
|
+ float: left;
|
|
|
}
|
|
|
}
|
|
|
.FileList:hover{
|
|
@@ -903,4 +951,7 @@
|
|
|
/deep/ .ql-container.ql-snow{
|
|
|
border:none !important;
|
|
|
}
|
|
|
+ .lookFile{
|
|
|
+ color: grey;
|
|
|
+ }
|
|
|
</style>
|