Closingstatement.vue 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497
  1. <template>
  2. <!-- 结项书组件 -->
  3. <div>
  4. <table border="1" cellspacing="0">
  5. <div class="onePage">
  6. <div class="titSchool">深圳技师学院</div>
  7. <div class="title">校级创客项目结题申请书</div>
  8. <div class="basicInformation">
  9. <span>项目名称</span>
  10. <div class="line">{{ myArrayProp[0].title }}</div>
  11. </div>
  12. <div class="basicInformation">
  13. <span>负责人</span>
  14. <div class="line">{{ myArrayProp[0].pro_leader }}</div>
  15. </div>
  16. <div class="basicInformation" style="color: red">
  17. <span>指导教师</span>
  18. <div class="line" style="position: relative">
  19. <span
  20. v-for="(item, index) in myArrayProp[0].course_teacher"
  21. :key="index"
  22. >{{ item.name }}</span
  23. >
  24. <span style="position: absolute; right: -100px"
  25. >{{ myArrayProp[0].course_teacher.length }}(人)</span
  26. >
  27. </div>
  28. </div>
  29. <div class="basicInformation">
  30. <span>申请部门</span>
  31. <div class="line">{{ myArrayProp[0].name }}</div>
  32. </div>
  33. <div class="basicInformation">
  34. <span>申请日期</span>
  35. <div class="line">{{ myArrayProp[0].applyProjectTime }}</div>
  36. </div>
  37. <div
  38. style="
  39. font-size: 22px;
  40. font-family: \4eff\5b8b;
  41. font-weight: bold;
  42. margin-bottom: 10px;
  43. "
  44. >
  45. 创新创业学院制
  46. </div>
  47. <div
  48. style="font-size: 22px; font-family: \4eff\5b8b; font-weight: bold"
  49. >
  50. {{ nowTime }}
  51. </div>
  52. </div>
  53. <tr v-show="false">
  54. <td v-for="i in 8" :key="i">i</td>
  55. </tr>
  56. <tr>
  57. <td colspan="2">项目名称</td>
  58. <td colspan="6">
  59. {{ myArrayProp[0].title }}
  60. </td>
  61. </tr>
  62. <tr>
  63. <td colspan="2">项目类型</td>
  64. <td>学生申报</td>
  65. <td
  66. colspan="2"
  67. style="
  68. text-align: justify;
  69. text-align-last: justify;
  70. padding: 0 30px;
  71. box-sizing: border-box;
  72. "
  73. >
  74. <span
  75. >{{
  76. (myArrayProp[0].typeName = "f3068e26-f51d-11ed-a3f6-509a4c5b67cf"
  77. ? "√"
  78. : "□")
  79. }}创意组</span
  80. >
  81. <span
  82. >{{
  83. (myArrayProp[0].typeName = "f3068e26-f51d-11ed-a3f6-509a4c5b67cf"
  84. ? "□"
  85. : "√")
  86. }}初创组</span
  87. >
  88. </td>
  89. <td>学院申报</td>
  90. <td colspan="2"><span>□创客空间建设</span></td>
  91. </tr>
  92. <tr style="color: red">
  93. <td colspan="2">项目级别</td>
  94. <td colspan="8">
  95. □ 一般资助项目   □ 重点资助项目    □ 特别申报项目
  96. </td>
  97. </tr>
  98. <tr>
  99. <td colspan="2" style="color: red">项目类别</td>
  100. <td colspan="8">
  101. □技术创新项目    □ 公益创新项目    □ 非遗文创项目    □
  102. 乡村振兴项目
  103. </td>
  104. </tr>
  105. <tr>
  106. <td colspan="2">优先支持项目 <br />(可多选)</td>
  107. <td colspan="8" v-if="myArrayProp[0].multiSelectProject != null">
  108. {{
  109. myArrayProp[0].multiSelectProject.includes("1") ? "√" : "□"
  110. }}大赛选拔项目
  111. {{ myArrayProp[0].multiSelectProject.includes("2") ? "√" : "□" }}
  112. 落地注册项目
  113. {{ myArrayProp[0].multiSelectProject.includes("3") ? "√" : "□" }}
  114. 社会征集项目
  115. {{ myArrayProp[0].multiSelectProject.includes("4") ? "√" : "□" }}
  116. 产业命题项目
  117. </td>
  118. <td colspan="8" v-if="myArrayProp[0].multiSelectProject == null">
  119. □大赛选拔项目 □落地注册项目 □ 社会征集项目 □产业命题项目
  120. </td>
  121. </tr>
  122. <tr>
  123. <td colspan="2">美丽校园改造项目 <br />(单选)</td>
  124. <td colspan="8">
  125. {{ myArrayProp[0].schoolRemould == "1" ? "√" : "□" }}校园安全项目
  126. {{ myArrayProp[0].schoolRemould == "2" ? "√" : "□" }}环境治理项目
  127. {{ myArrayProp[0].schoolRemould == "3" ? "√" : "□" }} 校园服务项目
  128. {{ myArrayProp[0].schoolRemould == "4" ? "√" : "□" }} 文创装置项目
  129. </td>
  130. </tr>
  131. <tr>
  132. <td colspan="2">项目负责人身份 <br />(单选)</td>
  133. <td colspan="8">□在校学生 □ 孵化基地创业学生 □ 二级学院项目负责人</td>
  134. </tr>
  135. <tr>
  136. <td colspan="2">项目负责人信息</td>
  137. <td>姓名</td>
  138. <td>
  139. {{ myArrayProp[0].pro_leader }}
  140. </td>
  141. <td>所在学院</td>
  142. <td>
  143. <el-input
  144. type="textarea"
  145. autosize
  146. style="width: 100%"
  147. resize="none"
  148. placeholder=""
  149. v-model="myArrayProp[0].name"
  150. >
  151. </el-input>
  152. </td>
  153. <td>联系电话</td>
  154. <td>
  155. <!-- 16625153232 -->
  156. {{ myArrayProp[0].phone }}
  157. </td>
  158. </tr>
  159. <tr>
  160. <td colspan="2">项目组人数</td>
  161. <td colspan="2">
  162. {{
  163. myArrayProp[0].course_student.length +
  164. myArrayProp[0].course_teacher.length
  165. }}人
  166. </td>
  167. <td>学生人数</td>
  168. <td>{{ myArrayProp[0].course_student.length }}</td>
  169. <td>教师人数</td>
  170. <td>{{ myArrayProp[0].course_teacher.length }}</td>
  171. </tr>
  172. <tr>
  173. <td colspan="2">项目起始时间</td>
  174. <td>{{ myArrayProp[0].begin_at }}</td>
  175. <td colspan="2">项目完成时间</td>
  176. <td>{{ myArrayProp[0].plannedEnd_at }}</td>
  177. <td>预算经费</td>
  178. <td>元</td>
  179. </tr>
  180. <tr>
  181. <td :rowspan="myArrayProp[0].course_student.length + 1">
  182. 学<br />生<br />
  183. 团 <br />队 <br />成 <br />员
  184. </td>
  185. <td>姓名</td>
  186. <td>所在学院及专业</td>
  187. <td colspan="5">项目分工</td>
  188. </tr>
  189. <tr
  190. v-for="(item, index) in myArrayProp[0].course_student"
  191. :key="index + 'a'"
  192. >
  193. <td><span v-text="item.name"></span></td>
  194. <td><span v-text="item.class"></span></td>
  195. <td colspan="5"><span v-text="item.work"></span></td>
  196. </tr>
  197. <tr>
  198. <td :rowspan="myArrayProp[0].course_teacher.length + 1">
  199. 项<br />目<br />
  200. 指 <br />导 <br />教 <br />师
  201. </td>
  202. </tr>
  203. <tr
  204. v-for="(item, index) in myArrayProp[0].course_teacher"
  205. :key="index + 'b'"
  206. >
  207. <td><span v-text="item.name"></span></td>
  208. <td></td>
  209. <td colspan="5"><span v-text="item.work"></span></td>
  210. </tr>
  211. <tr>
  212. <td rowspan="6">
  213. 项 <br />目 <br />研 <br />发 <br />内 <br />容 <br />及 <br />目
  214. <br />标
  215. </td>
  216. </tr>
  217. <tr>
  218. <td colspan="7" style="height: 200px">
  219. <p>一、项目研发内容简介(200字以内)</p>
  220. <el-input
  221. type="textarea"
  222. maxlength="200"
  223. show-word-limit
  224. :autosize="{ minRows: 6 }"
  225. placeholder="请输入内容"
  226. v-model="myArrayProp[0].brief"
  227. >
  228. </el-input>
  229. </td>
  230. </tr>
  231. <tr>
  232. <td colspan="7" style="height: 200px">
  233. <p>目标计划:</p>
  234. <el-input
  235. type="textarea"
  236. :autosize="{ minRows: 6 }"
  237. placeholder="请输入内容"
  238. v-model="myArrayProp[0]['ClosingstatementData'].plan"
  239. >
  240. </el-input>
  241. </td>
  242. </tr>
  243. <tr>
  244. <td colspan="7" style="height: 200px">
  245. <p>二、拟解决的关键技术问题</p>
  246. <el-input
  247. type="textarea"
  248. :autosize="{ minRows: 6 }"
  249. placeholder="请输入内容"
  250. v-model="myArrayProp[0]['ClosingstatementData'].technology"
  251. >
  252. </el-input>
  253. </td>
  254. </tr>
  255. <tr>
  256. <td colspan="7" style="height: 200px">
  257. <p>三、项目的商业(公益)价值评估</p>
  258. <el-input
  259. type="textarea"
  260. :autosize="{ minRows: 6 }"
  261. placeholder="请输入内容"
  262. v-model="myArrayProp[0]['ClosingstatementData'].business"
  263. >
  264. </el-input>
  265. </td>
  266. </tr>
  267. <tr>
  268. <td colspan="7" style="height: 200px">
  269. <p>四、项目创新点评估</p>
  270. <el-input
  271. type="textarea"
  272. :autosize="{ minRows: 6 }"
  273. placeholder="请输入内容"
  274. v-model="myArrayProp[0]['ClosingstatementData'].innovate"
  275. >
  276. </el-input>
  277. </td>
  278. </tr>
  279. <tr>
  280. <td rowspan="10">
  281. 成 <br />果 <br />及 <br />社 <br />会 <br />价 <br />值
  282. </td>
  283. </tr>
  284. <tr>
  285. <td colspan="7">
  286. <p>一、成果(名称、数量及形式,开发产品及取得的专利等)</p>
  287. <p>专利证书获得(提供专利申请或成果证书附件):</p>
  288. <beUpload
  289. style="position: absolute; right: 10px; top: 5px"
  290. @getFile="getFile"
  291. :navName="'上传文件'"
  292. :accept="accept"
  293. :progress="progress7"
  294. ></beUpload>
  295. <el-progress
  296. v-show="progress7.show"
  297. :percentage="progress7.value"
  298. :format="ProgressFormatresultAccessory"
  299. style="width: 80%"
  300. ></el-progress>
  301. <div
  302. :class="
  303. myArrayProp[0]['ClosingstatementData'].resultAccessory.length > 0
  304. ? 'bigBlock'
  305. : 'noFileBox'
  306. "
  307. >
  308. <div
  309. class="fileBlock"
  310. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  311. .resultAccessory"
  312. :key="index + 'a'"
  313. >
  314. <div class="fileBox">
  315. <div class="fileBoxLeft" @click="checkFile(item.url)">
  316. <div class="chapter_upload_l_i3"></div>
  317. <div class="titName">{{ item.fileName }}</div>
  318. </div>
  319. <div class="fileBoxRight">
  320. <div
  321. class="chapter_upload_ic_r"
  322. @click="deleteFile(index, 1)"
  323. ></div>
  324. </div>
  325. </div>
  326. </div>
  327. </div>
  328. <!-- <el-input
  329. type="textarea"
  330. :autosize="{minRows: 6}"
  331. placeholder="请输入内容"
  332. v-model="myArrayProp[0].brief">
  333. </el-input> -->
  334. </td>
  335. </tr>
  336. <tr>
  337. <td colspan="7" style="height: 200px">
  338. <p>企业应用实证(提供企业证明或合作协议证明等附件):</p>
  339. <beUpload
  340. style="position: absolute; right: 10px; top: 5px"
  341. @getFile="getfirmAccessory"
  342. :navName="'上传文件'"
  343. :accept="accept"
  344. :progress="progress1"
  345. ></beUpload>
  346. <el-progress
  347. v-show="progress1.show"
  348. :percentage="progress1.value"
  349. :format="ProgressFormatfirmAccessory"
  350. style="width: 80%"
  351. ></el-progress>
  352. <div
  353. :class="
  354. myArrayProp[0]['ClosingstatementData'].firmAccessory.length > 0
  355. ? 'bigBlock'
  356. : 'noFileBox'
  357. "
  358. >
  359. <div
  360. class="fileBlock"
  361. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  362. .firmAccessory"
  363. :key="index + 'a'"
  364. style="cursor: pointer"
  365. >
  366. <div class="fileBox">
  367. <div class="fileBoxLeft" @click="checkFile(item.url)">
  368. <div class="chapter_upload_l_i3"></div>
  369. <div class="titName">{{ item.fileName }}</div>
  370. </div>
  371. <div class="fileBoxRight">
  372. <div
  373. class="chapter_upload_ic_r"
  374. @click="deleteFile(index, 2)"
  375. ></div>
  376. </div>
  377. </div>
  378. </div>
  379. </div>
  380. <!-- <el-input
  381. type="textarea"
  382. :autosize="{minRows: 6}"
  383. placeholder="请输入内容"
  384. v-model="myArrayProp[0].brief">
  385. </el-input> -->
  386. </td>
  387. </tr>
  388. <tr>
  389. <td colspan="7" style="height: 200px">
  390. <p>双创竞赛成绩(提供参加师生名单、比赛取得的成绩等附件):</p>
  391. <beUpload
  392. style="position: absolute; right: 10px; top: 5px"
  393. @getFile="getcompetitionAccessory"
  394. :navName="'上传文件'"
  395. :accept="accept"
  396. :progress="progress2"
  397. ></beUpload>
  398. <el-progress
  399. v-show="progress2.show"
  400. :percentage="progress2.value"
  401. :format="ProgressFormatcompetitionAccessory"
  402. style="width: 80%"
  403. ></el-progress>
  404. <div
  405. :class="
  406. myArrayProp[0]['ClosingstatementData'].competitionAccessory
  407. .length > 0
  408. ? 'bigBlock'
  409. : 'noFileBox'
  410. "
  411. >
  412. <div
  413. class="fileBlock"
  414. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  415. .competitionAccessory"
  416. :key="index + 'a'"
  417. >
  418. <div class="fileBox">
  419. <div class="fileBoxLeft" @click="checkFile(item.url)">
  420. <div class="chapter_upload_l_i3"></div>
  421. <div class="titName">{{ item.fileName }}</div>
  422. </div>
  423. <div class="fileBoxRight">
  424. <div
  425. class="chapter_upload_ic_r"
  426. @click="deleteFile(index, 3)"
  427. ></div>
  428. </div>
  429. </div>
  430. </div>
  431. </div>
  432. </td>
  433. </tr>
  434. <tr>
  435. <td colspan="7" style="height: 200px">
  436. <p>参展或交流活动(提供参加师生名单、活动方案及照片等附件):</p>
  437. <beUpload
  438. style="position: absolute; right: 10px; top: 5px"
  439. @getFile="getexchangeAccessory"
  440. :navName="'上传文件'"
  441. :accept="accept"
  442. :progress="progress3"
  443. ></beUpload>
  444. <el-progress
  445. v-show="progress3.show"
  446. :percentage="progress3.value"
  447. :format="ProgressFormatexchangeAccessory"
  448. style="width: 80%"
  449. ></el-progress>
  450. <div
  451. :class="
  452. myArrayProp[0]['ClosingstatementData'].exchangeAccessory.length >
  453. 0
  454. ? 'bigBlock'
  455. : 'noFileBox'
  456. "
  457. >
  458. <div
  459. class="fileBlock"
  460. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  461. .exchangeAccessory"
  462. :key="index + 'a'"
  463. >
  464. <div class="fileBox">
  465. <div class="fileBoxLeft" @click="checkFile(item.url)">
  466. <div class="chapter_upload_l_i3"></div>
  467. <div class="titName">{{ item.fileName }}</div>
  468. </div>
  469. <div class="fileBoxRight">
  470. <div
  471. class="chapter_upload_ic_r"
  472. @click="deleteFile(index, 4)"
  473. ></div>
  474. </div>
  475. </div>
  476. </div>
  477. </div>
  478. </td>
  479. </tr>
  480. <tr>
  481. <td colspan="7" style="height: 200px">
  482. <p>创业公司转化(提供公司注册资料、营业执照等附件):</p>
  483. <beUpload
  484. style="position: absolute; right: 10px; top: 5px"
  485. @getFile="getconversionAccessory"
  486. :navName="'上传文件'"
  487. :accept="accept"
  488. :progress="progress4"
  489. ></beUpload>
  490. <el-progress
  491. v-show="progress4.show"
  492. :percentage="progress4.value"
  493. :format="ProgressFormatconversionAccessory"
  494. style="width: 80%"
  495. ></el-progress>
  496. <div
  497. :class="
  498. myArrayProp[0]['ClosingstatementData'].conversionAccessory
  499. .length > 0
  500. ? 'bigBlock'
  501. : 'noFileBox'
  502. "
  503. >
  504. <div
  505. class="fileBlock"
  506. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  507. .conversionAccessory"
  508. :key="index + 'a'"
  509. >
  510. <div class="fileBox">
  511. <div class="fileBoxLeft" @click="checkFile(item.url)">
  512. <div class="chapter_upload_l_i3"></div>
  513. <div class="titName">{{ item.fileName }}</div>
  514. </div>
  515. <div class="fileBoxRight">
  516. <div
  517. class="chapter_upload_ic_r"
  518. @click="deleteFile(index, 5)"
  519. ></div>
  520. </div>
  521. </div>
  522. </div>
  523. </div>
  524. </td>
  525. </tr>
  526. <tr>
  527. <td colspan="7" style="height: 200px">
  528. <p>二、创客人才培养(提供成果、数量、学生名单等附件)</p>
  529. <beUpload
  530. style="position: absolute; right: 10px; top: 5px"
  531. @getFile="gettalentsAccessory"
  532. :navName="'上传文件'"
  533. :accept="accept"
  534. :progress="progress5"
  535. ></beUpload>
  536. <el-progress
  537. v-show="progress5.show"
  538. :percentage="progress5.value"
  539. :format="ProgressFormattalentsAccessory"
  540. style="width: 80%"
  541. ></el-progress>
  542. <div
  543. :class="
  544. myArrayProp[0]['ClosingstatementData'].talentsAccessory.length > 0
  545. ? 'bigBlock'
  546. : 'noFileBox'
  547. "
  548. >
  549. <div
  550. class="fileBlock"
  551. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  552. .talentsAccessory"
  553. :key="index + 'a'"
  554. >
  555. <div class="fileBox">
  556. <div class="fileBoxLeft" @click="checkFile(item.url)">
  557. <div class="chapter_upload_l_i3"></div>
  558. <div class="titName">{{ item.fileName }}</div>
  559. </div>
  560. <div class="fileBoxRight">
  561. <div
  562. class="chapter_upload_ic_r"
  563. @click="deleteFile(index, 6)"
  564. ></div>
  565. </div>
  566. </div>
  567. </div>
  568. </div>
  569. </td>
  570. </tr>
  571. <tr>
  572. <td colspan="7" style="height: 200px">
  573. <p>目标计划:</p>
  574. <el-input
  575. type="textarea"
  576. :autosize="{ minRows: 6 }"
  577. placeholder="请输入内容"
  578. v-model="myArrayProp[0]['ClosingstatementData'].targetPlan"
  579. >
  580. </el-input>
  581. </td>
  582. </tr>
  583. <tr>
  584. <td colspan="7" style="height: 200px">
  585. <p>实际结果:</p>
  586. <el-input
  587. type="textarea"
  588. :autosize="{ minRows: 6 }"
  589. placeholder="请输入内容"
  590. v-model="myArrayProp[0]['ClosingstatementData'].realityResult"
  591. >
  592. </el-input>
  593. </td>
  594. </tr>
  595. <tr>
  596. <td colspan="7" style="height: 200px">
  597. <p>三、社会价值(项目实践运用情况及效果评价)</p>
  598. <el-input
  599. type="textarea"
  600. :autosize="{ minRows: 6 }"
  601. placeholder="请输入内容"
  602. v-model="myArrayProp[0]['ClosingstatementData'].socialValue"
  603. >
  604. </el-input>
  605. </td>
  606. </tr>
  607. <tr>
  608. <td>附件</td>
  609. <td colspan="7" style="height: 200px">
  610. <p>附:课题研究报告、用户评价意见或专家鉴定意见、其它附件等等</p>
  611. <beUpload
  612. style="position: absolute; right: 10px; top: 5px"
  613. @getFile="gettaskAccessory"
  614. :navName="'上传文件'"
  615. :accept="accept"
  616. :progress="progress6"
  617. ></beUpload>
  618. <el-progress
  619. v-show="progress6.show"
  620. :percentage="progress6.value"
  621. :format="ProgressFormattaskAccessory"
  622. style="width: 80%"
  623. ></el-progress>
  624. <div
  625. :class="
  626. myArrayProp[0]['ClosingstatementData'].taskAccessory.length > 0
  627. ? 'bigBlock'
  628. : 'noFileBox'
  629. "
  630. >
  631. <div
  632. class="fileBlock"
  633. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  634. .taskAccessory"
  635. :key="index + 'a'"
  636. >
  637. <div class="fileBox">
  638. <div class="fileBoxLeft" @click="checkFile(item.url)">
  639. <div class="chapter_upload_l_i3"></div>
  640. <div class="titName">{{ item.fileName }}</div>
  641. </div>
  642. <div class="fileBoxRight">
  643. <div
  644. class="chapter_upload_ic_r"
  645. @click="deleteFile(index, 7)"
  646. ></div>
  647. </div>
  648. </div>
  649. </div>
  650. </div>
  651. </td>
  652. </tr>
  653. <tr>
  654. <td rowspan="12">经 <br /><br />费 <br /><br />使 <br /><br />用</td>
  655. <td colspan="2">预算总经费</td>
  656. <td colspan="2">{{ myArrayProp[0].fund }}元</td>
  657. <td>实际使用</td>
  658. <td colspan="2">{{ myArrayProp[0].actualuse }}元</td>
  659. </tr>
  660. <tr>
  661. <td>经费大类</td>
  662. <td>经费小类</td>
  663. <td>支出科目</td>
  664. <td>金额(元)</td>
  665. <td colspan="3">计算依据及理由</td>
  666. </tr>
  667. <tr>
  668. <td rowspan="5">直接经费</td>
  669. </tr>
  670. <!-- total:总经费
  671. 小型仪器设备费:device deviceRemarks
  672. 材料费:Material MaterialRemarks
  673. 测试化验加工费:processing processingRemarks
  674. 项目协作费:Collaboration CollaborationRemarks
  675. 项目成果鉴定费:APPRAISAL APPRAISALRemarks
  676. 参展参赛费:entery enteryRemarks
  677. 创客交流活动费:activities activitiesRemarks
  678. 知识产权事务费:Transaction TransactionRemarks -->
  679. <tr>
  680. <td>小型仪器设备费</td>
  681. <td></td>
  682. <td>
  683. <el-input
  684. v-model="myArrayProp[0]['money'].device"
  685. @change="getPrice"
  686. ></el-input>
  687. </td>
  688. <td colspan="3">
  689. 项目开展所需的小型专用仪器设备、工具、配件购置或租赁费用。
  690. </td>
  691. </tr>
  692. <tr>
  693. <td>材料费</td>
  694. <td></td>
  695. <td>
  696. <el-input
  697. v-model="myArrayProp[0]['money'].Material"
  698. @change="getPrice"
  699. ></el-input>
  700. </td>
  701. <td colspan="3">
  702. 项目开展需消耗的各种原材料、辅助材料等低值易耗品的采购费用。
  703. </td>
  704. </tr>
  705. <tr>
  706. <td>测试化验加工费</td>
  707. <td></td>
  708. <td>
  709. <el-input
  710. v-model="myArrayProp[0]['money'].processing"
  711. @change="getPrice"
  712. ></el-input>
  713. </td>
  714. <td colspan="3">
  715. 项目开展过程中支付给外单位的检验、测试、化验、计算、分析及加工费等费用。
  716. </td>
  717. </tr>
  718. <tr>
  719. <td>项目协作费</td>
  720. <td></td>
  721. <td>
  722. <el-input
  723. v-model="myArrayProp[0]['money'].Collaboration"
  724. @change="getPrice"
  725. ></el-input>
  726. </td>
  727. <td colspan="3">按合同规定支付给协作单位的费用</td>
  728. </tr>
  729. <tr>
  730. <td rowspan="5">间接经费</td>
  731. </tr>
  732. <tr>
  733. <td>项目成果鉴定费</td>
  734. <td></td>
  735. <td>
  736. <el-input
  737. v-model="myArrayProp[0]['money'].APPRAISAL"
  738. @change="getPrice"
  739. ></el-input>
  740. </td>
  741. <td colspan="3">学术会务费、评审费、鉴定费、成果集制作费等费用。</td>
  742. </tr>
  743. <tr>
  744. <td>参展参赛费</td>
  745. <td></td>
  746. <td>
  747. <el-input
  748. v-model="myArrayProp[0]['money'].entery"
  749. @change="getPrice"
  750. ></el-input>
  751. </td>
  752. <td colspan="3">
  753. 参加创客展会、竞赛等所需的报名费、展位费、布展费、宣传推广费及差旅费等费用。
  754. </td>
  755. </tr>
  756. <tr>
  757. <td>创客交流活动费</td>
  758. <td></td>
  759. <td>
  760. <el-input
  761. v-model="myArrayProp[0]['money'].activities"
  762. @change="getPrice"
  763. ></el-input>
  764. </td>
  765. <td colspan="3">
  766. 创客交流活动中支付给校外专家的指导费、咨询费、授课费等费用。
  767. </td>
  768. </tr>
  769. <tr>
  770. <td>知识产权事务费</td>
  771. <td></td>
  772. <td>
  773. <el-input
  774. v-model="myArrayProp[0]['money'].Transaction"
  775. @change="getPrice"
  776. ></el-input>
  777. </td>
  778. <td colspan="3">论文版面费、专利及其他知识产权事务等费用。</td>
  779. </tr>
  780. <tr>
  781. <td>
  782. 所 <br />在 <br />学 <br />院/ <br />部 <br />门 <br />意 <br />见
  783. </td>
  784. <td colspan="7">
  785. <div style="width: 200px; float: right; margin: 10px 300px">
  786. 负责人签章:
  787. </div>
  788. <div style="width: 200px; float: right; margin: 10px 100px">
  789. 年 月 日
  790. </div>
  791. </td>
  792. </tr>
  793. <tr>
  794. <td>专 <br />家 <br />验 <br />收 <br />结 <br />论</td>
  795. <td colspan="7">
  796. <div style="width: 200px; float: right; margin: 10px 300px">
  797. 负责人签章:
  798. </div>
  799. <div style="width: 200px; float: right; margin: 10px 100px">
  800. 年 月 日
  801. </div>
  802. </td>
  803. </tr>
  804. <tr>
  805. <td>双 <br />创 <br />学 <br />院 <br />意 <br />见</td>
  806. <td colspan="7">
  807. <div style="width: 200px; float: right; margin: 10px 300px">
  808. 负责人签章:
  809. </div>
  810. <div style="width: 200px; float: right; margin: 10px 100px">
  811. 年 月 日
  812. </div>
  813. </td>
  814. </tr>
  815. <tr>
  816. <td>学 <br />校 <br />审 <br />批 <br />意 <br />见</td>
  817. <td colspan="7">
  818. <div style="width: 200px; float: right; margin: 10px 300px">
  819. 负责人签章:
  820. </div>
  821. <div style="width: 200px; float: right; margin: 10px 100px">
  822. 年 月 日
  823. </div>
  824. </td>
  825. </tr>
  826. <div class="ending">
  827. <p>备注:1、本表一式三份,专家验收后交双创学院</p>
  828. <p style="text-indent: 3em">
  829. 2、各栏目若不够填写,可自行加页,加页需紧附该栏目之后。
  830. </p>
  831. </div>
  832. </table>
  833. <!-- 展示文档开始 -->
  834. <el-dialog
  835. title="展示文件"
  836. :visible.sync="showFile"
  837. top="1vh"
  838. width="80vw"
  839. append-to-body
  840. >
  841. <div class="showFileArea" style="height: 80vh">
  842. <!-- <vpdf v-if="/^\s*$/g.test(showFileUrl)&&showFileUrl.split('.')[showFileUrl.split('.').length-1]=='pdf'" :pdfUrl="showFileUrl"></vpdf> -->
  843. <div
  844. class="workd_media"
  845. style="width: 90%; height: 90%"
  846. v-if="videoDetail.sources"
  847. >
  848. <video-player
  849. class="video-player vjs-custom-skin"
  850. :playsinline="true"
  851. :options="videoDetail"
  852. @play="onPlayerPlay($event)"
  853. style="width: 90%; height: 90%; margin: 0 auto"
  854. ></video-player>
  855. </div>
  856. <vword
  857. style="width: 100%; height: 100%; overflow: auto"
  858. class="fullStyle"
  859. v-else-if="Wordss['type'] != 'pdf' && Wordss['name'] != '图片'"
  860. :pdfUrl="
  861. 'https://view.officeapps.live.com/op/view.aspx?src=' + showFileUrl
  862. "
  863. ></vword>
  864. <vpdf
  865. style="width: 100%; height: 100%; overflow: auto"
  866. class="fullStyle"
  867. :pdfUrl="showFileUrl"
  868. v-else-if="Wordss['type'] == 'pdf'"
  869. ></vpdf>
  870. <img
  871. :src="showFileUrl"
  872. alt="图片哦"
  873. v-else-if="Wordss['name'] == '图片'"
  874. style="width: auto; height: auto; max-width: 100%; max-height: 100%"
  875. />
  876. </div>
  877. <!-- <el-button type="primary" size="mini" @click="downFile(showFileUrl)">下载文件</el-button> -->
  878. </el-dialog>
  879. </div>
  880. </template>
  881. <script>
  882. import { getNowDate } from "@/components/tool/Date.js";
  883. import beUpload from "@/components/tool/beUpload";
  884. import vpdf from "@/components/vpdf.vue";
  885. import vword from "@/components/vword.vue";
  886. export default {
  887. props: {
  888. myArrayProp: {
  889. type: Array,
  890. required: true,
  891. },
  892. iid: {
  893. type: String,
  894. required: true,
  895. },
  896. },
  897. components: { beUpload, vpdf, vword },
  898. data() {
  899. return {
  900. accept: "*",
  901. nowTime: getNowDate(1),
  902. file: "",
  903. progress1: {
  904. value: 0,
  905. show: false,
  906. },
  907. progress2: {
  908. value: 0,
  909. show: false,
  910. },
  911. progress3: {
  912. value: 0,
  913. show: false,
  914. },
  915. progress4: {
  916. value: 0,
  917. show: false,
  918. },
  919. progress5: {
  920. value: 0,
  921. show: false,
  922. },
  923. progress6: {
  924. value: 0,
  925. show: false,
  926. },
  927. progress7: {
  928. value: 0,
  929. show: false,
  930. },
  931. showFile: false,
  932. showFileUrl: "",
  933. Wordss: { type: "", name: "" },
  934. canonical: {
  935. Image:
  936. /^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i,
  937. File: /^https?:\/\/(.+\/)+.+(\.(docx|xlsx|ppt|pdf))$/i,
  938. },
  939. word: [
  940. "DOC",
  941. "DOCX",
  942. "DOCM",
  943. "DOTM",
  944. "DOTX",
  945. "PPTX",
  946. "PPSX",
  947. "PPT",
  948. "PPS",
  949. "PPTM",
  950. "POTM",
  951. "PPAM",
  952. "POTX",
  953. "PPSM",
  954. "XLSX",
  955. "XLS",
  956. ],
  957. pdf: ["PDF"],
  958. image: [
  959. "BMP",
  960. "PJP",
  961. "APNG",
  962. "PNG",
  963. "JPG",
  964. "GIF",
  965. "SVG",
  966. "JPEG",
  967. "JPG",
  968. "ICO",
  969. "PGPEG",
  970. "AVIF",
  971. ],
  972. vedio: [
  973. "AVI",
  974. "NAVI",
  975. "MPEG",
  976. "ASF",
  977. "MOV",
  978. "WMV",
  979. "3GP",
  980. "RM",
  981. "RMVB",
  982. "FLV",
  983. "F4V",
  984. "H.264",
  985. "H.265",
  986. "REAL VIDEO",
  987. "MKV",
  988. "WebM",
  989. "HDDVD",
  990. "MP4",
  991. "MPG",
  992. "M4V",
  993. "MGV",
  994. "OGV",
  995. "QTM",
  996. "STR",
  997. "AMC",
  998. "DVX",
  999. "EVO",
  1000. "DAT",
  1001. "OGG",
  1002. "OGM",
  1003. ],
  1004. playerOptions: {
  1005. playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
  1006. autoplay: false, //如果true,浏览器准备好时开始回放。
  1007. muted: false, // 默认情况下将会消除任何音频。
  1008. loop: false, // 导致视频一结束就重新开始。
  1009. preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
  1010. language: "zh-CN",
  1011. aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
  1012. fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
  1013. sources: [
  1014. {
  1015. type: "video/mp4", //这里的种类支持很多种:基本视频格式、直播、流媒体等,具体可以参看git网址项目 || "video/ogg"|| "video/webm"
  1016. src: "", //url地址require("../../assets/media/aaa.mp4")
  1017. },
  1018. ],
  1019. // poster: require("../../assets/tu31.png"), //你的封面地址
  1020. // poster: dataRes.imgUrl, //你的封面地址
  1021. notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。
  1022. controlBar: {
  1023. timeDivider: true, //当前时间和持续时间的分隔符
  1024. durationDisplay: true, //显示持续时间
  1025. remainingTimeDisplay: false, //是否显示剩余时间功能
  1026. fullscreenToggle: true, //全屏按钮
  1027. },
  1028. },
  1029. playerO: {},
  1030. videoDetail: {},
  1031. };
  1032. },
  1033. methods: {
  1034. getFile(val) {
  1035. //上传成果文件
  1036. console.log(val);
  1037. this.progress7.show = false;
  1038. this.myArrayProp[0]["ClosingstatementData"].resultAccessory.push(val);
  1039. this.setFile();
  1040. },
  1041. deleteFile(val, t) {
  1042. console.log(val);
  1043. if (t == 1) {
  1044. this.myArrayProp[0]["ClosingstatementData"].resultAccessory.splice(
  1045. val,
  1046. 1
  1047. );
  1048. } else if (t == 2) {
  1049. this.myArrayProp[0]["ClosingstatementData"].firmAccessory.splice(
  1050. val,
  1051. 1
  1052. );
  1053. } else if (t == 3) {
  1054. this.myArrayProp[0]["ClosingstatementData"].competitionAccessory.splice(
  1055. val,
  1056. 1
  1057. );
  1058. } else if (t == 4) {
  1059. this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory.splice(
  1060. val,
  1061. 1
  1062. );
  1063. } else if (t == 5) {
  1064. this.myArrayProp[0]["ClosingstatementData"].conversionAccessory.splice(
  1065. val,
  1066. 1
  1067. );
  1068. } else if (t == 6) {
  1069. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory.splice(
  1070. val,
  1071. 1
  1072. );
  1073. } else {
  1074. this.myArrayProp[0]["ClosingstatementData"].taskAccessory.splice(
  1075. val,
  1076. 1
  1077. );
  1078. }
  1079. this.setFile();
  1080. },
  1081. getfirmAccessory(val) {
  1082. //上传企业应用实证
  1083. this.progress1.show = false;
  1084. this.myArrayProp[0]["ClosingstatementData"].firmAccessory.push(val);
  1085. this.setFile();
  1086. },
  1087. getcompetitionAccessory(val) {
  1088. //双创竞赛成绩
  1089. this.progress2.show = false;
  1090. this.myArrayProp[0]["ClosingstatementData"].competitionAccessory.push(
  1091. val
  1092. );
  1093. this.setFile();
  1094. },
  1095. getexchangeAccessory(val) {
  1096. //参展或交流活动
  1097. this.progress3.show = false;
  1098. this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory.push(val);
  1099. this.setFile();
  1100. },
  1101. getconversionAccessory(val) {
  1102. //创业公司转化
  1103. this.progress4.show = false;
  1104. this.myArrayProp[0]["ClosingstatementData"].conversionAccessory.push(val);
  1105. this.setFile();
  1106. },
  1107. gettalentsAccessory(val) {
  1108. //创客人才培养
  1109. this.progress5.show = false;
  1110. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory.push(val);
  1111. this.setFile();
  1112. },
  1113. gettaskAccessory(val) {
  1114. //
  1115. this.progress6.show = false;
  1116. this.myArrayProp[0]["ClosingstatementData"].taskAccessory.push(val);
  1117. this.setFile();
  1118. },
  1119. ProgressFormattaskAccessory(value) {
  1120. //进度条
  1121. return value == 100 ? "100%" : `${value}%`;
  1122. },
  1123. ProgressFormattalentsAccessory(value) {
  1124. //进度条
  1125. return value == 100 ? "100%" : `${value}%`;
  1126. },
  1127. ProgressFormatconversionAccessory(value) {
  1128. //进度条
  1129. return value == 100 ? "100%" : `${value}%`;
  1130. },
  1131. ProgressFormatexchangeAccessory(value) {
  1132. //进度条
  1133. return value == 100 ? "100%" : `${value}%`;
  1134. },
  1135. ProgressFormatcompetitionAccessory(value) {
  1136. //进度条
  1137. return value == 100 ? "100%" : `${value}%`;
  1138. },
  1139. ProgressFormatfirmAccessory(value) {
  1140. //进度条
  1141. return value == 100 ? "100%" : `${value}%`;
  1142. },
  1143. ProgressFormatresultAccessory(value) {
  1144. //进度条
  1145. return value == 100 ? "100%" : `${value}%`;
  1146. },
  1147. //展示文件
  1148. checkFile(url) {
  1149. this.videoDetail = {};
  1150. if (
  1151. this.vedio.indexOf(
  1152. url.split(".")[url.split(".").length - 1].toLocaleUpperCase()
  1153. ) != -1
  1154. ) {
  1155. this.playerOptions.sources[0].src = url;
  1156. this.videoDetail = this.playerOptions;
  1157. this.showFile = true;
  1158. } else {
  1159. if (
  1160. this.word.indexOf(
  1161. url.split(".")[url.split(".").length - 1].toLocaleUpperCase()
  1162. ) == -1 &&
  1163. this.pdf.indexOf(
  1164. url.split(".")[url.split(".").length - 1].toLocaleUpperCase()
  1165. ) == -1 &&
  1166. this.image.indexOf(
  1167. url.split(".")[url.split(".").length - 1].toLocaleUpperCase()
  1168. ) == -1
  1169. ) {
  1170. this.downFile(url);
  1171. return;
  1172. }
  1173. this.showFileUrl = url;
  1174. this.showFile = true;
  1175. if (typeof url == "undefined") return { type: "", name: "" };
  1176. let urlSplit = url.split(".");
  1177. const type = urlSplit[urlSplit.length - 1];
  1178. if (this.canonical.Image.test(url)) {
  1179. this.Wordss = { type: type, name: "图片" };
  1180. return console.log(this.Wordss);
  1181. }
  1182. if (this.canonical.File.test(url)) {
  1183. this.Wordss = { type: type, name: "文档" };
  1184. return console.log(this.Wordss);
  1185. }
  1186. if (this.canonical.vedio.test(url)) {
  1187. this.Wordss = { type: type, name: "视频" };
  1188. return console.log(this.Wordss);
  1189. } else return (this.Wordss = { type: type, name: type });
  1190. }
  1191. },
  1192. //下载文件
  1193. downFile(f) {
  1194. var credentials = {
  1195. accessKeyId: "AKIATLPEDU37QV5CHLMH",
  1196. secretAccessKey: "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",
  1197. }; //秘钥形式的登录上传
  1198. window.AWS.config.update(credentials);
  1199. window.AWS.config.region = "cn-northwest-1"; //设置区域
  1200. let url2 = f;
  1201. let _url2 = "";
  1202. if (
  1203. url2.indexOf("https://view.officeapps.live.com/op/view.aspx?src=") != -1
  1204. ) {
  1205. _url2 = url2.split(
  1206. "https://view.officeapps.live.com/op/view.aspx?src="
  1207. )[1];
  1208. } else {
  1209. _url2 = url2;
  1210. }
  1211. var s3 = new window.AWS.S3({ params: { Bucket: "ccrb" } });
  1212. let name = decodeURIComponent(
  1213. _url2.split("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/")[1]
  1214. );
  1215. var params = {
  1216. Bucket: "ccrb",
  1217. Key: name,
  1218. };
  1219. s3.getObject(params, function (err, data) {
  1220. if (err) console.log(err, err.stack); // an error occurred
  1221. else {
  1222. let url = window.URL.createObjectURL(new Blob([data.Body]));
  1223. let a = document.createElement("a");
  1224. a.name = name;
  1225. a.href = url;
  1226. a.download = name;
  1227. a.click();
  1228. console.log(data);
  1229. } // sxuccessful response
  1230. });
  1231. return;
  1232. },
  1233. getPrice() {
  1234. var a =
  1235. this.myArrayProp[0]["money"].device != ""
  1236. ? parseInt(this.myArrayProp[0]["money"].device)
  1237. : 0;
  1238. var b =
  1239. this.myArrayProp[0]["money"].Material != ""
  1240. ? parseInt(this.myArrayProp[0]["money"].Material)
  1241. : 0;
  1242. var c =
  1243. this.myArrayProp[0]["money"].processing != ""
  1244. ? parseInt(this.myArrayProp[0]["money"].processing)
  1245. : 0;
  1246. var d =
  1247. this.myArrayProp[0]["money"].Collaboration != ""
  1248. ? parseInt(this.myArrayProp[0]["money"].Collaboration)
  1249. : 0;
  1250. var e =
  1251. this.myArrayProp[0]["money"].APPRAISAL != ""
  1252. ? parseInt(this.myArrayProp[0]["money"].APPRAISAL)
  1253. : 0;
  1254. var f =
  1255. this.myArrayProp[0]["money"].entery != ""
  1256. ? parseInt(this.myArrayProp[0]["money"].entery)
  1257. : 0;
  1258. var g =
  1259. this.myArrayProp[0]["money"].activities != ""
  1260. ? parseInt(this.myArrayProp[0]["money"].activities)
  1261. : 0;
  1262. var h =
  1263. this.myArrayProp[0]["money"].Transaction != ""
  1264. ? parseInt(this.myArrayProp[0]["money"].Transaction)
  1265. : 0;
  1266. this.myArrayProp[0].actualuse = a + b + c + d + e + f + g + h;
  1267. this.$forceUpdate();
  1268. },
  1269. onPlayerPlay() {},
  1270. setFile() {
  1271. this.ajax
  1272. .post(this.$store.state.api + "/updateClosingstatementData", {
  1273. uid: this.$store.state.userInfo.userid,
  1274. pid: this.iid,
  1275. cdata: JSON.stringify(this.myArrayProp[0]["ClosingstatementData"]),
  1276. sta: 2,
  1277. })
  1278. .then(
  1279. (res) => {
  1280. console.log(res);
  1281. this.$forceUpdate();
  1282. },
  1283. (err) => {
  1284. console.log(err);
  1285. }
  1286. );
  1287. },
  1288. },
  1289. mounted() {
  1290. // console.log(this.myArrayProp);
  1291. // this.getData();
  1292. this.getPrice();
  1293. },
  1294. };
  1295. </script>
  1296. <style lang="less" scoped>
  1297. table {
  1298. position: relative;
  1299. color: black;
  1300. width: 1200px;
  1301. margin: 0 auto;
  1302. margin-top: 800px;
  1303. margin-bottom: 100px;
  1304. font-size: 16px;
  1305. font-family: \5b8b\4f53;
  1306. .onePage {
  1307. height: 300px;
  1308. width: 100%;
  1309. position: absolute;
  1310. text-align: center;
  1311. top: -700px;
  1312. .titSchool {
  1313. font-weight: 600;
  1314. font-size: 25px;
  1315. margin-bottom: 30px;
  1316. font-family: \6977\4f53;
  1317. }
  1318. .title {
  1319. font-weight: 600;
  1320. font-size: 32px;
  1321. margin-bottom: 30px;
  1322. font-family: \9ed1\4f53;
  1323. margin-bottom: 100px;
  1324. }
  1325. .line {
  1326. width: 300px;
  1327. border-bottom: 1px black solid;
  1328. }
  1329. .basicInformation {
  1330. display: flex;
  1331. justify-content: center;
  1332. font-size: 22px;
  1333. font-family: \4eff\5b8b;
  1334. font-weight: bold;
  1335. margin-bottom: 50px;
  1336. span {
  1337. width: 100px;
  1338. text-align: justify;
  1339. text-align-last: justify;
  1340. /*兼容ie*/
  1341. text-justify: distribute-all-lines;
  1342. margin-right: 10px;
  1343. }
  1344. }
  1345. }
  1346. tr {
  1347. width: 100%;
  1348. border: none;
  1349. }
  1350. tr td {
  1351. height: 60px;
  1352. width: 10%;
  1353. text-align: center;
  1354. box-sizing: border-box;
  1355. padding: 10px;
  1356. position: relative;
  1357. .noFileBox {
  1358. width: 98%;
  1359. min-height: 200px;
  1360. display: flex;
  1361. flex-direction: column;
  1362. flex-wrap: nowrap;
  1363. align-items: flex-start;
  1364. }
  1365. .bigBlock {
  1366. width: 98%;
  1367. min-height: 200px;
  1368. display: flex;
  1369. flex-direction: column;
  1370. flex-wrap: nowrap;
  1371. align-items: flex-start;
  1372. border: 1px solid #cad1dc;
  1373. border-radius: 4px;
  1374. padding: 10px;
  1375. margin: 20px 0 0 0;
  1376. max-height: 200px;
  1377. overflow: auto;
  1378. .fileBlock {
  1379. width: 98%;
  1380. margin-right: 20px;
  1381. position: relative;
  1382. border-radius: 5%;
  1383. padding: 5px 0 5px 0;
  1384. border-bottom: 1px solid #cad1dc;
  1385. .fileBox {
  1386. display: flex;
  1387. flex-direction: row;
  1388. flex-wrap: nowrap;
  1389. justify-content: space-between;
  1390. align-items: center;
  1391. .fileBoxLeft {
  1392. cursor: pointer;
  1393. display: flex;
  1394. flex-direction: row;
  1395. flex-wrap: nowrap;
  1396. align-items: center;
  1397. .chapter_upload_l_i3 {
  1398. width: 15px;
  1399. height: 15px;
  1400. background-repeat: no-repeat;
  1401. background-size: 100% 100%;
  1402. background-image: url("../../../assets/img/u_video.png");
  1403. }
  1404. .titName {
  1405. width: calc(100% - 15px);
  1406. white-space: nowrap;
  1407. overflow: hidden;
  1408. text-overflow: ellipsis;
  1409. word-break: break-word;
  1410. text-align: left;
  1411. margin-left: 10px;
  1412. max-width: 800px;
  1413. }
  1414. }
  1415. .fileBoxRight {
  1416. cursor: pointer;
  1417. display: flex;
  1418. flex-direction: row;
  1419. flex-wrap: nowrap;
  1420. align-items: center;
  1421. .chapter_upload_ic_r {
  1422. width: 18px;
  1423. height: 18px;
  1424. background-repeat: no-repeat;
  1425. background-size: 100% 100%;
  1426. background-image: url("../../../assets/img/delete_u.png");
  1427. }
  1428. }
  1429. }
  1430. }
  1431. .masking-out {
  1432. width: 100px;
  1433. height: 135px;
  1434. position: absolute;
  1435. top: 0;
  1436. left: 0;
  1437. display: none;
  1438. border-radius: 5%;
  1439. background: #00000053;
  1440. .delete {
  1441. cursor: pointer;
  1442. margin-left: 50%;
  1443. margin-top: 50%;
  1444. transform: translate(-50%, -50%);
  1445. }
  1446. .delete:hover {
  1447. color: #fff;
  1448. }
  1449. }
  1450. .fileBlock:hover .masking-out {
  1451. display: block;
  1452. }
  1453. }
  1454. p {
  1455. text-align: left;
  1456. }
  1457. :deep(.el-textarea__inner) {
  1458. border: none;
  1459. resize: none;
  1460. font-size: 18px;
  1461. }
  1462. }
  1463. .ending {
  1464. position: absolute;
  1465. left: 0;
  1466. bottom: -60px;
  1467. p {
  1468. line-height: 1.5em;
  1469. }
  1470. }
  1471. }
  1472. </style>