resultShowDetail.vue 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967
  1. <template>
  2. <!-- 成果展示 项目成果展示 -->
  3. <div class="rs1apply">
  4. <!-- 头部展示区开始 -->
  5. <div class="header">
  6. <div class="imgBlock">
  7. <img :src="TitleMessage.image" alt="">
  8. </div>
  9. <div class="headerConcent">
  10. <div class="rsHead1Tit">项目名称:<span>{{ TitleMessage.title }}</span></div>
  11. <div class="rsHead2Tit rsHead3Tit">
  12. <div>负责人:<span class="titleMessage">{{ TitleMessage.pro_leader }}</span></div>
  13. </div>
  14. <div class="rsHead3Tit rsHead2Tit">
  15. <div>学院:<span class="titleMessage">{{ TitleMessage.ClassName }}</span></div>
  16. <div>分类:<span class="titleMessage">{{ TitleMessage.TypeName }}</span></div>
  17. </div>
  18. <div class="rsHead2Tit personListUL">
  19. <i class="iconfont icon-duoren1" style="margin-right: 10px;color: #3a78fc;"></i>
  20. <div class="personListLI">
  21. <span v-for="(item,index) in TitleMessage.course_student" :key="index">{{ item.name }}</span>
  22. </div>
  23. </div>
  24. </div>
  25. <!-- <el-button class="backBtn" type="primary" @click="$router.back()">返回</el-button> -->
  26. </div>
  27. <!-- 头部展示区结束 -->
  28. <!--导航栏区域开始-->
  29. <div id="Nav">
  30. <div class="navLi" @click="pageState=0">
  31. <img src="@/assets/anliDetail/proOver.png" alt="">
  32. <span>项目基本内容</span>
  33. </div>
  34. <div class="navLi" @click="pageState=1">
  35. <img src="@/assets/anliDetail/proOverTwo.png" alt="">
  36. <span>项目详细</span>
  37. </div>
  38. <div class="navLi" @click="pageState=2">
  39. <i class="iconStyle iconfont icon-jiegou" style="color:#58c2fe;font-size:22px;margin-right: 7px;"></i>
  40. <span>活动开展</span>
  41. </div>
  42. <div class="navLi" @click="pageState=3">
  43. <i class="iconStyle iconfont icon-wenjian" style="color:#58c2fe;font-size:22px;margin-right: 7px;"></i>
  44. <span>项目附件</span>
  45. </div>
  46. <div class="navLi" @click="pageState=4">
  47. <i class="iconStyle iconfont icon-baogao" style="color:#58c2fe;font-size:22px;margin-right: 7px;"></i>
  48. <span>项目结题报告</span>
  49. </div>
  50. </div>
  51. <!--导航栏区域结束-->
  52. <!--内容区开始-->
  53. <!--基础信息开始-->
  54. <div class="BaseMessage" v-show="pageState==0">
  55. <div class="BaseTitle">
  56. <span>项目基本内容</span>
  57. </div>
  58. <div class="brief">
  59. <div class="brief_title">
  60. <img src="@/assets/anliDetail/jdTitle.png" alt="">
  61. <span>开始时间与结题时间</span>
  62. </div>
  63. <div class="beginTime_EndTime">
  64. <span>{{ TitleMessage.beginTime }}</span>
  65. <i class="el-icon-arrow-right"></i>
  66. <span>{{ TitleMessage.EndTime }}</span>
  67. </div>
  68. </div>
  69. <div class="brief">
  70. <div class="brief_title">
  71. <img src="@/assets/anliDetail/jdTitle.png" alt="">
  72. <span>成员</span>
  73. </div>
  74. <div class="projectStudent">
  75. <el-table
  76. :data="TitleMessage.course_student"
  77. border
  78. style="width: 100%">
  79. <el-table-column
  80. prop="name"
  81. label="姓名"
  82. align="center">
  83. </el-table-column>
  84. <el-table-column
  85. prop="class"
  86. label="班级"
  87. align="center">
  88. </el-table-column>
  89. <el-table-column
  90. prop="phone"
  91. align="center"
  92. label="联系电话">
  93. </el-table-column>
  94. <el-table-column
  95. prop="score"
  96. align="center"
  97. label="学分">
  98. </el-table-column>
  99. </el-table>
  100. </div>
  101. </div>
  102. <div class="brief" v-if="TitleMessage.brief!=''">
  103. <div class="brief_title">
  104. <img src="@/assets/anliDetail/jdTitle.png" alt="">
  105. <span>简介</span>
  106. </div>
  107. <div class="TextView">
  108. {{ TitleMessage.brief }}
  109. </div>
  110. </div>
  111. </div>
  112. <!--基础信息结束-->
  113. <!--项目详细开始-->
  114. <div class="BaseMessage" v-show="pageState==1">
  115. <div class="BaseTitle" type="1">
  116. <span>项目详细</span>
  117. </div>
  118. <div class="brief">
  119. <div class="brief_title" type="1.1">
  120. <img src="@/assets/anliDetail/jdTitle.png" alt="">
  121. <span>项目创新点</span>
  122. </div>
  123. <div class="TextView" >
  124. <VueEditor v-model="DetailMessage[0]" :disabled="true"></VueEditor>
  125. </div>
  126. </div>
  127. <div class="BaseTitle" type="1">
  128. <span>预期取得成果</span>
  129. </div>
  130. <div class="brief">
  131. <div class="brief_title" type="1.1">
  132. <img src="@/assets/anliDetail/jdTitle.png" alt="">
  133. <span>一、项目预期成果、数量及形式</span>
  134. </div>
  135. <div class="TextView" >
  136. <VueEditor v-model="DetailMessage[1]" :disabled="true"></VueEditor>
  137. </div>
  138. </div>
  139. <div class="brief">
  140. <div class="brief_title" type="1.1">
  141. <img src="@/assets/anliDetail/jdTitle.png" alt="">
  142. <span>二、创客人才培养预期成果、数量</span>
  143. </div>
  144. <div class="TextView" >
  145. <VueEditor v-model="DetailMessage[2]" :disabled="true"></VueEditor>
  146. </div>
  147. </div>
  148. <div class="brief">
  149. <div class="brief_title" type="1.1">
  150. <img src="@/assets/anliDetail/jdTitle.png" alt="">
  151. <span>三、项目预期孵化、转化创业项目情况</span>
  152. </div>
  153. <div class="TextView" >
  154. <VueEditor v-model="DetailMessage[3]" :disabled="true"></VueEditor>
  155. </div>
  156. </div>
  157. <div class="brief">
  158. <div class="brief_title" type="1.1">
  159. <img src="@/assets/anliDetail/jdTitle.png" alt="">
  160. <span>项目实施计划</span>
  161. </div>
  162. <div class="TextView" >
  163. <VueEditor v-model="DetailMessage[4]" :disabled="true"></VueEditor>
  164. </div>
  165. </div>
  166. </div>
  167. <!-- 项目详细结束 -->
  168. <!-- 活动开展开始 -->
  169. <div class="BaseMessage" v-show="pageState==2">
  170. <div class="BaseTitle" type="1">
  171. <span>活动开展</span>
  172. </div>
  173. <div class="arrangement" v-for="(item,index) in AllActivity" :key="item.acId">
  174. <div class="arrangement_assignment">
  175. <div class="arrangement_assignment_title">
  176. <span>
  177. <img src="@/assets/anliDetail/jdNewTitle.png">
  178. <span>活动{{ index+1 }}:</span>
  179. <span>{{ item.title }}</span>
  180. </span>
  181. </div>
  182. <div class="brief">
  183. <div class="brief_title">
  184. <!-- <img src="@/assets/anliDetail/jdTitle.png" alt=""> -->
  185. <i class="el-icon-tickets"></i>
  186. <span>基础信息</span>
  187. </div>
  188. <div class="ActivityBaseMessage">
  189. <el-descriptions class="margin-top" :column="3" border>
  190. <el-descriptions-item>
  191. <template slot="label">
  192. <i class="el-icon-s-custom"></i>
  193. 负责人
  194. </template>
  195. {{ item.pro_leader }}
  196. </el-descriptions-item>
  197. <el-descriptions-item>
  198. <template slot="label">
  199. <i class="el-icon-mobile-phone"></i>
  200. 联系电话
  201. </template>
  202. {{ item.phone }}
  203. </el-descriptions-item>
  204. <el-descriptions-item>
  205. <template slot="label">
  206. <i class="el-icon-coordinate"></i>
  207. 活动创建时间
  208. </template>
  209. {{item.create_at}}
  210. </el-descriptions-item>
  211. <el-descriptions-item>
  212. <template slot="label">
  213. <i class="el-icon-date"></i>
  214. 活动开展时间
  215. </template>
  216. {{ JSON.parse(item.begin_at)[0]+"\t至\t"+JSON.parse(item.begin_at)[1] }}
  217. </el-descriptions-item>
  218. <el-descriptions-item>
  219. <template slot="label">
  220. <i class="el-icon-coin"></i>
  221. 活动预算(元)
  222. </template>
  223. {{ item.money }}
  224. </el-descriptions-item>
  225. <el-descriptions-item>
  226. <template slot="label">
  227. <i class="el-icon-user"></i>
  228. 参与学生人数
  229. </template>
  230. {{ item.students }}
  231. </el-descriptions-item>
  232. </el-descriptions>
  233. </div>
  234. <div class="brief_title MarginTop30px">
  235. <!-- <img src="@/assets/anliDetail/jdTitle.png" alt=""> -->
  236. <i class="el-icon-user-solid"></i>
  237. <span>指导老师</span>
  238. </div>
  239. <div class="projectStudent">
  240. <el-table
  241. :data="JSON.parse(item.course_teacher)"
  242. border
  243. style="width: 100%">
  244. <el-table-column
  245. prop="Name"
  246. label="姓名"
  247. align="center">
  248. </el-table-column>
  249. <el-table-column
  250. prop="work"
  251. label="工作单位"
  252. align="center">
  253. </el-table-column>
  254. <el-table-column
  255. prop="takeCharge"
  256. align="center"
  257. label="活动分工">
  258. </el-table-column>
  259. </el-table>
  260. </div>
  261. <div class="brief_title MarginTop30px">
  262. <img src="@/assets/anliDetail/proOverTwo.png" alt="">
  263. <span>活动简介</span>
  264. </div>
  265. <div class="TextView">
  266. {{ item.brief }}
  267. </div>
  268. <div class="brief_title MarginTop30px">
  269. <!-- <img src="@/assets/anliDetail/jdTitle.png" alt=""> -->
  270. <i class="el-icon-edit-outline"></i>
  271. <span>活动计划</span>
  272. </div>
  273. <div class="TextView" >
  274. <VueEditor v-model="JSON.parse(item.chapters)[0]" :disabled="true"></VueEditor>
  275. </div>
  276. <div class="brief_title MarginTop30px">
  277. <!-- <img src="@/assets/anliDetail/jdTitle.png" alt=""> -->
  278. <i class="el-icon-data-line"></i>
  279. <span>预期目标</span>
  280. </div>
  281. <div class="TextView" >
  282. <VueEditor v-model="JSON.parse(item.chapters)[1]" :disabled="true"></VueEditor>
  283. </div>
  284. <div class="brief_title MarginTop30px">
  285. <!-- <img src="@/assets/anliDetail/jdTitle.png" alt=""> -->
  286. <i class="el-icon-pie-chart"></i>
  287. <span>活动受面</span>
  288. </div>
  289. <div class="TextView" >
  290. <VueEditor v-model="JSON.parse(item.chapters)[2]" :disabled="true"></VueEditor>
  291. </div>
  292. <div class="brief_title MarginTop30px">
  293. <!-- <img src="@/assets/anliDetail/jdTitle.png" alt=""> -->
  294. <i class="el-icon-money"></i>
  295. <span>经费支出计划</span>
  296. </div>
  297. <div class="TextView" >
  298. <VueEditor v-model="JSON.parse(item.chapters)[3]" :disabled="true"></VueEditor>
  299. </div>
  300. <div class="brief_title MarginTop30px" v-if="ActivityLookFile[index].url!=''">
  301. <img src="@/assets/anliDetail/jdTitle.png" alt="">
  302. <!-- <i class="el-icon-money"></i> -->
  303. <span>活动完结报告</span>
  304. </div>
  305. <div class="brief" v-if="ActivityLookFile[index].url!=''">
  306. <div class="material">
  307. <div class="material_title">
  308. <img src="@/assets/anliDetail/fileList.png" alt="">
  309. <span>活动完结报告</span>
  310. </div>
  311. <div class="FileShowArea">
  312. <div class="FileShowArea_Left">
  313. <vword
  314. style="width: 100%; height: 100%; overflow: auto"
  315. class="fullStyle"
  316. v-if="checkFileType(ActivityLookFile[index].url)['type']!='pdf'&&checkFileType(ActivityLookFile[index].url)['name']!='图片'"
  317. :pdfUrl="'https://view.officeapps.live.com/op/view.aspx?src='+ActivityLookFile[index].url"
  318. ></vword>
  319. <vpdf
  320. style="width: 100%; height: 100%; overflow: auto"
  321. class="fullStyle"
  322. :pdfUrl="ActivityLookFile[index].url"
  323. v-if="checkFileType(ActivityLookFile[index].url)['type']=='pdf'"
  324. ></vpdf>
  325. <img :src="ActivityLookFile[index].url" alt="图片哦" v-if="checkFileType(ActivityLookFile[index].url)['name']=='图片'" style="width: 100%;height: 100%;">
  326. </div>
  327. <div class="FileShowArea_Right core_dialogue">
  328. <div v-for="(i,index2) in item.reportFile" :key="i.url" @click="Object.assign(ActivityLookFile[index],i)" :class="['FileList',ActivityLookFile[index]['url']==i.url?'lookFile':'']"><span>{{ index2+1 }}.{{ checkFileType(i.url)["name"] }}</span><div>{{ i.fileName }}</div></div>
  329. </div>
  330. </div>
  331. </div>
  332. </div>
  333. </div>
  334. </div>
  335. </div>
  336. </div>
  337. <!-- 活动开展结束 -->
  338. <!-- 项目附件开始 -->
  339. <div class="BaseMessage" v-show="pageState==3">
  340. <div class="BaseTitle" type="3">
  341. <span>项目附件</span>
  342. </div>
  343. <div class="brief" v-if="ProjectLookFile.url!=''">
  344. <div class="material">
  345. <div class="material_title">
  346. <img src="@/assets/anliDetail/fileList.png" alt="">
  347. <span>项目材料</span>
  348. </div>
  349. <div class="FileShowArea">
  350. <div class="FileShowArea_Left">
  351. <vword
  352. style="width: 100%; height: 100%; overflow: auto"
  353. class="fullStyle"
  354. v-if="checkFileType(ProjectLookFile.url)['type']!='pdf'&&checkFileType(ProjectLookFile.url)['name']!='图片'"
  355. :pdfUrl="'https://view.officeapps.live.com/op/view.aspx?src='+ProjectLookFile.url"
  356. ></vword>
  357. <vpdf
  358. style="width: 100%; height: 100%; overflow: auto"
  359. class="fullStyle"
  360. :pdfUrl="ProjectLookFile.url"
  361. v-if="checkFileType(ProjectLookFile.url)['type']=='pdf'"
  362. ></vpdf>
  363. <img :src="ProjectLookFile.url" alt="图片哦" v-if="checkFileType(ProjectLookFile.url)['name']=='图片'" style="width: 100%;height: 100%;">
  364. </div>
  365. <div class="FileShowArea_Right core_dialogue">
  366. <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>
  367. </div>
  368. </div>
  369. </div>
  370. </div>
  371. </div>
  372. <!-- 项目中期报告开始 -->
  373. <div class="BaseMessage" v-show="pageState==4">
  374. <div class="BaseTitle">
  375. <span>结项评价</span>
  376. </div>
  377. <div class="brief">
  378. <div class="brief_title" type="1.1">
  379. <img src="@/assets/anliDetail/jdTitle.png" alt="">
  380. <span>科研办</span>
  381. </div>
  382. <div class="TextView" >
  383. <div class="TextView">
  384. {{ endProjectRemark['kRem'] }}
  385. </div>
  386. <!-- <VueEditor v-model="DetailMessage[0]" :disabled="true"></VueEditor> -->
  387. </div>
  388. </div>
  389. <div class="brief">
  390. <div class="brief_title" type="1.1">
  391. <img src="@/assets/anliDetail/jdTitle.png" alt="">
  392. <span>学术委员会</span>
  393. </div>
  394. <div class="TextView" >
  395. <div class="TextView">
  396. {{ endProjectRemark["bRem"] }}
  397. </div>
  398. <!-- <VueEditor v-model="DetailMessage[0]" :disabled="true"></VueEditor> -->
  399. </div>
  400. </div>
  401. <div class="brief">
  402. <div class="brief_title" type="1.1">
  403. <img src="@/assets/anliDetail/jdTitle.png" alt="">
  404. <span>部门审核评语</span>
  405. </div>
  406. <div class="TextView" >
  407. <div class="TextView">
  408. {{ endProjectRemark["xRem"] }}
  409. </div>
  410. <!-- <VueEditor v-model="DetailMessage[0]" :disabled="true"></VueEditor> -->
  411. </div>
  412. </div>
  413. <div class="BaseTitle" type="5">
  414. <span>项目结题报告</span>
  415. </div>
  416. <div class="brief">
  417. <div class="brief_title">
  418. <img src="@/assets/anliDetail/jdTitle.png" alt="">
  419. <span>项目结题附件</span>
  420. </div>
  421. <div class="material" v-if="ProjectEndLookFile.url!=''">
  422. <div class="material_title">
  423. <img src="@/assets/anliDetail/fileList.png" alt="">
  424. <span>项目结题附件</span>
  425. </div>
  426. <div class="FileShowArea">
  427. <div class="FileShowArea_Left">
  428. <vword
  429. style="width: 100%; height: 100%; overflow: auto"
  430. class="fullStyle"
  431. v-if="checkFileType(ProjectEndLookFile.url)['type']!='pdf'&&checkFileType(ProjectEndLookFile.url)['name']!='图片'"
  432. :pdfUrl="'https://view.officeapps.live.com/op/view.aspx?src='+ProjectEndLookFile.url"
  433. ></vword>
  434. <vpdf
  435. style="width: 100%; height: 100%; overflow: auto"
  436. class="fullStyle"
  437. :pdfUrl="ProjectEndLookFile.url"
  438. v-if="checkFileType(ProjectEndLookFile.url)['type']=='pdf'"
  439. ></vpdf>
  440. <img :src="ProjectEndLookFile.url" alt="图片哦" v-if="checkFileType(ProjectEndLookFile.url)['name']=='图片'" style="width: 100%;height: 100%;">
  441. </div>
  442. <div class="FileShowArea_Right core_dialogue">
  443. <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>
  444. </div>
  445. </div>
  446. </div>
  447. </div>
  448. </div>
  449. <!--项目详结束-->
  450. <!--内容区结束-->
  451. </div>
  452. </template>
  453. <script>
  454. import vpdf from '@/components/vpdf.vue'
  455. import vword from '@/components/vword.vue'
  456. import { VueEditor } from "vue2-editor";
  457. export default {
  458. components:{vpdf,vword,VueEditor},
  459. data() {
  460. return {
  461. pageState:0,
  462. TitleMessage:{ClassName:"",EndTime:"",TypeName:"",beginTime:"",brief:"",course_student:[],image:"",pro_leader:"",title:""},
  463. DetailMessage:[],
  464. ProjectFile:[],
  465. ProjectLookFile:{url:"",type:""},
  466. ProjectEndFile:[],
  467. ProjectEndLookFile:{url:"",type:""},
  468. AllActivity:[],
  469. ActivityLookFile:[],
  470. endProjectRemark:{kRem:"",bRem:"",xRem:""},
  471. canonical:{
  472. Image:/^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i,
  473. File:/^https?:\/\/(.+\/)+.+(\.(docx|xlsx|ppt|pdf))$/i
  474. },
  475. }
  476. },
  477. methods:{
  478. getData(){
  479. this.ActivityLookFile = [];
  480. this.ajax.get(this.$store.state.api+"/GetProjectDetailIsConclusion",{
  481. uid:this.$store.state.userInfo.userid,
  482. pid:this.$route.query["Id"]
  483. }).then(res=>{
  484. let FormData = res.data;
  485. console.log(FormData)
  486. this.TitleMessage = FormData[0][0]
  487. this.TitleMessage['course_student'] = JSON.parse(this.TitleMessage['course_student']);
  488. this.DetailMessage= JSON.parse(FormData[1][0]['chapters'])[0];
  489. this.ProjectFile = JSON.parse(FormData[2][0]['projectFile'])
  490. if(this.ProjectFile!=null)this.ProjectLookFile = this.ProjectFile[0]
  491. else this.ProjectLookFile = {url:'',type:""};
  492. this.ProjectEndFile = JSON.parse(FormData[3][0]['endFile']);
  493. if(this.ProjectEndFile!=null)this.ProjectEndLookFile = this.ProjectEndFile[0];
  494. else this.ProjectEndLookFile = {url:"",type:""}
  495. console.log(FormData[4])
  496. if(FormData[4][0]['title']!=null){
  497. this.AllActivity = FormData[4]
  498. this.AllActivity.forEach(item=>{
  499. if(item['reportFile']!=null&&item['reportFile']!=''){
  500. item['reportFile'] = JSON.parse(item['reportFile']);
  501. this.ActivityLookFile.push({url:item['reportFile'][0].url,fileName:item['reportFile'][0].fileName})
  502. }else this.ActivityLookFile.push({url:"",type:""})
  503. })
  504. };
  505. console.log(this.ActivityLookFile)
  506. if(JSON.parse(FormData[5][0]['endProjectRemark'])!=null)this.endProjectRemark = JSON.parse(FormData[5][0]['endProjectRemark']);
  507. }).catch(err=>{
  508. console.log(err)
  509. })
  510. },
  511. checkFileType(url){
  512. if(typeof url=='undefined')return {type:"",name:""};
  513. let urlSplit = url.split(".");
  514. const type = urlSplit[urlSplit.length-1]
  515. if(this.canonical.Image.test(url))return {type:type,name:"图片"}
  516. if(this.canonical.File.test(url))return {type:type,name:"文档"}
  517. else return {type:type,name:type}
  518. },
  519. ActivityChangeFileLook(index,item){
  520. Object.assign(this.ActivityLookFile[index],item)
  521. }
  522. },
  523. mounted(){
  524. //监听元素滚动
  525. let Nav = document.querySelector("#Nav");
  526. document.querySelector(".core_dialogue").addEventListener("scroll",(e)=>{
  527. console.log()
  528. let scrollTop = e.target.scrollTop;
  529. if(scrollTop>=200){
  530. document.querySelector(".core_dialogue").querySelector('.el-header').style='position:fixed;z-index:10;width:100%'
  531. Nav.style = `width:100%;padding:0 20%;box-sizing: border-box;border-radius:0;display:flex;justify-content: space-around;position: fixed;top:calc(70px - 20px);z-index:99;align-items: center;box-shadow: 0 0 5px gray;`
  532. }else if(scrollTop<=100){
  533. document.querySelector(".core_dialogue").querySelector('.el-header').style=''
  534. Nav.style = ``
  535. }
  536. });
  537. this.getData();
  538. }
  539. }
  540. </script>
  541. <style lang="less" scoped>
  542. .rs1apply{
  543. width: 100%;
  544. height: 100%;
  545. // height: auto;
  546. display: flex;
  547. flex-direction: column;
  548. align-items: center;
  549. background-color: #e6eaf0;
  550. box-sizing: border-box;
  551. padding-bottom: 50px;
  552. }
  553. .header{
  554. width: 100%;
  555. min-height: 200px;
  556. background-color: white;
  557. margin-top: 10px;
  558. display: flex;
  559. align-items: center;
  560. box-sizing: border-box;
  561. padding-left: 5%;
  562. position: relative;
  563. .imgBlock{
  564. width: 230px;
  565. height: 130px;
  566. margin-right: 20px;
  567. img{
  568. width: 100%;
  569. height: 100%;
  570. object-fit: cover;
  571. }
  572. }
  573. .headerConcent{
  574. width: 400px;
  575. height: 130px;
  576. display: flex;
  577. flex-direction: column;
  578. justify-content: space-between;
  579. // width: ;
  580. .rsHead1Tit{
  581. font-size: 22px;
  582. font-weight: bold;
  583. }
  584. .rsHead2Tit{
  585. font-size: 16px;
  586. }
  587. .rsHead3Tit{
  588. display: flex;
  589. div{
  590. margin-right: 30px;
  591. }
  592. }
  593. }
  594. .backBtn{
  595. position: absolute;
  596. right: 10%;
  597. width:100px;
  598. top: 10%;
  599. box-sizing: border-box;
  600. padding: 9px 0;
  601. display: flex;
  602. justify-content: center;
  603. align-items: center;
  604. font-size: 16px;
  605. cursor: pointer;
  606. }
  607. }
  608. #Nav{
  609. box-sizing: border-box;
  610. padding: 0 80px 0 70px;
  611. width: 60%;
  612. min-height: 50px;
  613. background-color: white;
  614. margin-top: 20px;
  615. border-radius: 5px;
  616. display: flex;
  617. justify-content: space-around;
  618. .navLi{
  619. // width: 150px;
  620. height: 100%;
  621. display: flex;
  622. justify-content: flex-start;
  623. align-items: center;
  624. font-size: 18px;
  625. // margin-left: 20px;
  626. cursor: pointer;
  627. img{
  628. height: 40px;
  629. }
  630. }
  631. .navLi:hover span{
  632. color: gray;
  633. }
  634. }
  635. .BaseMessage{
  636. width: 60%;
  637. position: relative;
  638. box-sizing: border-box;
  639. // margin-bottom: 20px;
  640. .BaseTitle{
  641. width: 100%;
  642. height: 85px;
  643. background-color: white;
  644. border-radius: 5px;
  645. margin-top: 20px;
  646. display: flex;
  647. align-items: center;
  648. margin-bottom: 20px;
  649. span{
  650. display: flex;
  651. align-items: center;
  652. // width: 160px;
  653. height: 50px;
  654. box-sizing: border-box;
  655. justify-content: center;
  656. padding-right: 2%;
  657. padding-left: 4%;
  658. align-items: center;
  659. background-image: url('@/assets/anliDetail/longNavBg.png');
  660. background-size: 100% 100%;
  661. margin-left: 20px;
  662. color: white;
  663. font-size: 18px;
  664. }
  665. }
  666. .brief{
  667. width: 100%;
  668. height: auto;
  669. border-radius: 5px;
  670. box-sizing: border-box;
  671. display: flex;
  672. flex-direction: column;
  673. align-items: center;
  674. background-color: white;
  675. padding: 10px 10px 20px 10px;
  676. margin-bottom: 20px;
  677. position: relative;
  678. }
  679. .brief_title{
  680. width: 100%;
  681. height: 40px;
  682. display: flex;
  683. align-items: center;
  684. // margin-top: 10px;
  685. font-size: 18px;
  686. i{
  687. width: 30px;
  688. height: 30px;
  689. font-size: 1.5em;
  690. color: #50c5ff;
  691. }
  692. img{
  693. width: 30px;
  694. height: 30px;
  695. }
  696. span{
  697. margin-left: 10px;
  698. color: gray;
  699. }
  700. }
  701. .TextView{
  702. width: 100%;
  703. box-sizing: border-box;
  704. padding: 10px;
  705. border-radius: 5px;
  706. background-color: rgb(240, 240, 240);
  707. line-height: 2em;
  708. }
  709. .FileView{
  710. width: 100%;
  711. box-sizing: border-box;
  712. padding: 0px 10px 10px 10px;
  713. border-radius:10px ;
  714. background-color: rgb(240, 240, 240);
  715. .FileList{
  716. width: 100%;
  717. height: 50px;
  718. border-radius: 10px;
  719. background-color: white;
  720. display: flex;
  721. overflow: hidden;
  722. cursor: pointer;
  723. box-shadow: 0px 0px 4px rgb(185, 185, 185);
  724. margin-top: 10px;
  725. .FileType{
  726. width: 15%;
  727. height: 100%;
  728. display: flex;
  729. justify-content: center;
  730. align-items: center;
  731. color: white;
  732. font-size: 18px;
  733. background-color:#0c74ab;
  734. }
  735. .FileTitle{
  736. display: flex;
  737. height: 100%;
  738. flex: 1;
  739. align-items: center;
  740. box-sizing: border-box;
  741. padding-left: 2%;
  742. }
  743. }
  744. }
  745. .FileShow{
  746. width: 100%;
  747. height: 200px;
  748. background-color: gray;
  749. }
  750. }
  751. .material{
  752. width: 100%;
  753. height: 900px;
  754. // height: 1000px;
  755. margin-top: 20px;
  756. border-radius: 5px;
  757. box-sizing: border-box;
  758. border: 1px solid #2f89dd;
  759. overflow: hidden;
  760. .material_title{
  761. width: 100%;
  762. height: 40px;
  763. display: flex;
  764. align-items: center;
  765. box-sizing: border-box;
  766. padding-left: 10px;
  767. color: white;
  768. background-color: #2f89dd;
  769. }
  770. .FileShowArea{
  771. width: 100%;
  772. height: calc(100% - 40px);
  773. display: flex;
  774. justify-content: space-around;
  775. align-items: center;
  776. .FileShowArea_Left{
  777. width: 60%;
  778. height: 95%;
  779. background-color: white;
  780. }
  781. .FileShowArea_Right{
  782. width: 35%;
  783. height: 95%;
  784. display: flex;
  785. flex-direction: column;
  786. align-items: center;
  787. background-color: #f6f9fe;
  788. border-radius: 5px;
  789. .FileList{
  790. width: 95%;
  791. height: 45px;
  792. background-color: white;
  793. margin-top: 20px;
  794. border-radius: 10px;
  795. font-size: 18px;
  796. cursor: pointer;
  797. display: flex;
  798. align-items: center;
  799. overflow: hidden;
  800. div{
  801. height: auto;
  802. width: 70%;
  803. display: block;
  804. overflow: hidden;
  805. white-space: nowrap;
  806. text-overflow: ellipsis;
  807. }
  808. span{
  809. max-width: 20%;
  810. min-width: 20%;
  811. height: 100%;
  812. display: flex;
  813. align-items: center;
  814. justify-content: center;
  815. color: white;
  816. background-color: #0c74ab;
  817. margin-right: 10px;
  818. float: left;
  819. }
  820. }
  821. .FileList:hover{
  822. color: gray;
  823. }
  824. }
  825. }
  826. }
  827. .arrangement{
  828. width: 100%;
  829. margin-top: 10px;
  830. background-color: white;
  831. border-radius: 5px;
  832. padding: 10 px;
  833. box-sizing: border-box;
  834. .arrangement_assignment_title{
  835. width: 100%;
  836. height: 50px;
  837. display: flex;
  838. box-sizing: border-box;
  839. padding: 0px 20px 0px 10px;
  840. justify-content: space-between;
  841. font-size: 18px;
  842. align-items: center;
  843. span{
  844. display: flex;
  845. align-items: center;
  846. color: black;
  847. font-weight: 600;
  848. span:nth-of-type(2){
  849. margin-left: 10px;
  850. }
  851. img{
  852. width: 30px;
  853. height: 30px;
  854. margin-right: 10px;
  855. }
  856. }
  857. }
  858. .assignment{
  859. width: 100%;
  860. display: flex;
  861. box-sizing: border-box;
  862. padding: 0px 20px 0px 20px;
  863. justify-content: center;
  864. font-size: 18px;
  865. align-items: space-between;
  866. flex-direction: column;
  867. span{
  868. display: flex;
  869. align-items: center;
  870. color: gray;
  871. img{
  872. width: 30px;
  873. height: 30px;
  874. margin-right: 10px;
  875. }
  876. }
  877. .assignment_message{
  878. width: 100%;
  879. }
  880. }
  881. }
  882. .fullStyle {
  883. width: 100% !important;
  884. max-width: 100% !important;
  885. height: 100% !important;
  886. margin: 0 !important;
  887. }
  888. .personListUL{
  889. width: 100%;
  890. display: flex;
  891. align-items: center;
  892. .personListLI{
  893. width: 80%;
  894. text-overflow: ellipsis;
  895. overflow: hidden;
  896. white-space: nowrap;
  897. span{
  898. margin-right: 10px;
  899. color: darkgray;
  900. }
  901. }
  902. }
  903. .titleMessage{
  904. color: darkgray;
  905. }
  906. .projectStudent{
  907. width:100%;
  908. cursor: default;
  909. }
  910. .beginTime_EndTime{
  911. width: 100%;
  912. height: 40px;
  913. display: flex;
  914. align-items: center;
  915. font-size: 18px;
  916. box-sizing: border-box;
  917. padding-left: 20px;
  918. i{
  919. margin: 0 20px 0 20px;
  920. font-size:22px;
  921. }
  922. // background-color: red;
  923. }
  924. /deep/ .ql-toolbar{
  925. display: none !important;
  926. }
  927. /deep/ .ql-container.ql-snow{
  928. border:none !important;
  929. }
  930. .lookFile{
  931. color: grey;
  932. }
  933. .ActivityBaseMessage{
  934. width: 100%;
  935. height: auto;
  936. }
  937. .MarginTop30px{
  938. margin-top: 30px;
  939. }
  940. </style>