Closingstatement.vue 77 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386
  1. <template>
  2. <!-- 结项书组件 -->
  3. <div ref="downPDF">
  4. <!-- <header>创新创业学院管理系统</header> -->
  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">
  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.filter(i=>i.name!='').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 style="font-size: 22px; font-family: \4eff\5b8b; font-weight: bold">
  48. {{ nowTime }}
  49. </div>
  50. </div>
  51. <!-- <table border="1" cellspacing="0" ref="tableBox" v-show="!isDownPdf"> -->
  52. <table border="1" cellspacing="0" ref="tableBox">
  53. <!-- <tr v-if="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 colspan="2" style="padding: 0 30px; box-sizing: border-box">
  66. <span style="margin-right: 10px;">{{ (myArrayProp[0].typeName == "4a4e2cfe-e1a1-11ee-81d4-00ff5c7a43f5"? "☑": "□") }}创新训练项目</span>
  67. <span style="margin-right: 10px;">{{ (myArrayProp[0].typeName == "56f0ad8d-e1a1-11ee-81d4-00ff5c7a43f5"? "☑": "□") }}创业训练项目</span>
  68. <span style="margin-right: 10px;">{{ (myArrayProp[0].typeName == "ed917c55-f51d-11ed-a3f6-509a4c5b67cf"? "☑": "□") }}创业实践项目</span>
  69. <!-- <span
  70. >{{
  71. (myArrayProp[0].typeName = "f3068e26-f51d-11ed-a3f6-509a4c5b67cf"
  72. ? "☑"
  73. : "□")
  74. }}创意组</span
  75. >
  76. <span style="margin-left: 15px"
  77. >{{
  78. (myArrayProp[0].typeName = "f3068e26-f51d-11ed-a3f6-509a4c5b67cf"
  79. ? "□"
  80. : "☑")
  81. }}初创组</span
  82. > -->
  83. </td>
  84. <td>学院申报</td>
  85. <td colspan="2"><span>□创客空间建设</span></td>
  86. </tr>
  87. <tr>
  88. <td colspan="2">项目级别</td>
  89. <td colspan="8">
  90. □ 一般资助项目   □ 重点资助项目    □ 特别申报项目
  91. </td>
  92. </tr>
  93. <tr>
  94. <td colspan="2">项目类别</td>
  95. <td colspan="8">
  96. □技术创新项目  □ 公益创新项目  □ 非遗文创项目  □ 乡村振兴项目
  97. </td>
  98. </tr>
  99. <tr>
  100. <td colspan="2">优先支持项目 <br />(可多选)</td>
  101. <td colspan="8" v-if="myArrayProp[0].multiSelectProject != null" style="height: auto;text-align: left;">
  102. <!-- {{
  103. myArrayProp[0].multiSelectProject.includes("1") ? "☑" : "□"
  104. }}大赛选拔项目
  105. {{ myArrayProp[0].multiSelectProject.includes("2") ? "☑" : "□" }}
  106. 落地注册项目
  107. {{ myArrayProp[0].multiSelectProject.includes("3") ? "☑" : "□" }}
  108. 社会征集项目
  109. {{ myArrayProp[0].multiSelectProject.includes("4") ? "☑" : "□" }}
  110. 产业命题项目 -->
  111. <div class="checkAreaBlc"><span v-text="myArrayProp[0]['multiSelectProject'].includes('1')?'☑ ':'□ '"></span><span>团队合作项目、跨学科合作项目。</span></div>
  112. <div class="checkAreaBlc"><span v-text="myArrayProp[0]['multiSelectProject'].includes('2')?'☑ ':'□ '"></span><span>科技创新、低空经济、银发经济、乡村振兴、助残助学、非遗文创等新技术、新产业、新业态、新模式方面的项目。</span></div>
  113. <div class="checkAreaBlc"><span v-text="myArrayProp[0]['multiSelectProject'].includes('3')?'☑ ':'□ '"></span><span>企业真实生产经营项目或外包服务项目。</span></div>
  114. <div class="checkAreaBlc"><span v-text="myArrayProp[0]['multiSelectProject'].includes('4')?'☑ ':'□ '"></span><span>社会征集项目、产业命题项目。</span></div>
  115. <div class="checkAreaBlc"><span v-text="myArrayProp[0]['multiSelectProject'].includes('5')?'☑ ':'□ '"></span><span>近两年内参与校级以上创新创业大赛并获奖的项目。</span></div>
  116. <div class="checkAreaBlc"><span v-text="myArrayProp[0]['multiSelectProject'].includes('6')?'☑ ':'□ '"></span><span>美丽校园改造计划中的校园智能产品及文创产品的研发项目。</span></div>
  117. <div class="checkAreaBlc"><span v-text="myArrayProp[0]['multiSelectProject'].includes('7')?'☑ ':'□ '"></span><span>企申报人为港澳籍、学校扶贫班及在校贫困生申报的项目</span></div>
  118. </td>
  119. <td colspan="8" v-if="myArrayProp[0].multiSelectProject == null">
  120. □大赛选拔项目 □落地注册项目 □ 社会征集项目 □产业命题项目
  121. </td>
  122. </tr>
  123. <tr>
  124. <td colspan="2">美丽校园改造项目 <br />(单选)</td>
  125. <td colspan="8">
  126. {{ myArrayProp[0].schoolRemould.includes("1") ? "☑" : "□" }}校园安全项目
  127. {{ myArrayProp[0].schoolRemould.includes("2") ? "☑" : "□" }}环境治理项目
  128. {{ myArrayProp[0].schoolRemould.includes("3") ? "☑" : "□" }} 校园服务项目
  129. {{ myArrayProp[0].schoolRemould.includes("4") ? "☑" : "□" }} 文创装置项目
  130. </td>
  131. </tr>
  132. <tr>
  133. <td colspan="2">项目负责人身份 <br />(单选)</td>
  134. <td colspan="8">□在校学生 □ 孵化基地创业学生 □ 二级学院项目负责人</td>
  135. </tr>
  136. <tr>
  137. <td colspan="2">项目负责人信息</td>
  138. <td>姓名</td>
  139. <td>
  140. {{ myArrayProp[0].pro_leader }}
  141. </td>
  142. <td>所在学院</td>
  143. <td>
  144. <div v-html="myArrayProp[0].name"></div>
  145. <!-- <el-input
  146. type="textarea"
  147. autosize
  148. style="width: 100%"
  149. resize="none"
  150. placeholder=""
  151. v-model="myArrayProp[0].name"
  152. >
  153. </el-input> -->
  154. </td>
  155. <td>联系电话</td>
  156. <td>
  157. <!-- 16625153232 -->
  158. {{ myArrayProp[0].phone }}
  159. </td>
  160. </tr>
  161. <tr>
  162. <td colspan="2">项目组人数</td>
  163. <td colspan="2">
  164. {{
  165. myArrayProp[0].course_student.length +
  166. myArrayProp[0].course_teacher.length
  167. }}人
  168. </td>
  169. <td>学生人数</td>
  170. <td>{{ myArrayProp[0].course_student.length }}</td>
  171. <td>教师人数</td>
  172. <td>{{ myArrayProp[0].course_teacher.length }}</td>
  173. </tr>
  174. <tr>
  175. <td style="font-size: 21px">项目起始时间</td>
  176. <td colspan="2">{{ myArrayProp[0].begin_at }}</td>
  177. <td style="font-size: 21px">项目完成时间</td>
  178. <td colspan="2">{{ myArrayProp[0].plannedEnd_at }}</td>
  179. <td>预算经费</td>
  180. <td>{{ myArrayProp[0].fund }}元</td>
  181. </tr>
  182. <!-- 学生创客项目 -->
  183. <tbody>
  184. <tr
  185. v-if="myArrayProp[0].typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'"
  186. >
  187. <td
  188. class="vertical"
  189. :rowspan="myArrayProp[0].course_student.length + 1"
  190. >
  191. 学生团队成员
  192. </td>
  193. <td>姓名</td>
  194. <td colspan="2">所在学院及专业</td>
  195. <td colspan="4">项目分工</td>
  196. </tr>
  197. <tr
  198. v-for="(item, index) in myArrayProp[0].course_student"
  199. :key="index + 'a'"
  200. v-if="myArrayProp[0].typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'"
  201. >
  202. <td><span v-text="item.name"></span></td>
  203. <td colspan="2"><span v-html="item.collage"></span></td>
  204. <td colspan="4"><span v-text="item.work"></span></td>
  205. </tr>
  206. </tbody>
  207. <tbody>
  208. <tr
  209. v-if="myArrayProp[0].typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'"
  210. >
  211. <td
  212. class="vertical"
  213. :rowspan="myArrayProp[0].course_teacher.length + 1"
  214. >
  215. 项目指导教师
  216. </td>
  217. <td>姓名</td>
  218. <td colspan="2">所在学院及专业</td>
  219. <td colspan="4">项目分工</td>
  220. </tr>
  221. <tr
  222. v-for="(item, index) in myArrayProp[0].course_teacher"
  223. :key="index + 'b'"
  224. v-if="myArrayProp[0].typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'"
  225. >
  226. <td><span v-text="item.name"></span></td>
  227. <td colspan="2"><span v-html="item.collage"></span></td>
  228. <td colspan="4"><span v-text="item.work"></span></td>
  229. </tr>
  230. </tbody>
  231. <tbody>
  232. <!-- 特色创客空间建设项目 -->
  233. <tr
  234. v-if="myArrayProp[0].typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'"
  235. >
  236. <td
  237. class="vertical"
  238. :rowspan="myArrayProp[0].course_student.length + 1"
  239. >
  240. 学生团队成员
  241. </td>
  242. <td>姓名</td>
  243. <td>所在学院及专业</td>
  244. <td>年龄</td>
  245. <td colspan="5">项目组任务分工</td>
  246. </tr>
  247. <tr
  248. v-for="(item, index) in myArrayProp[0].course_student"
  249. :key="index + 'c'"
  250. v-if="myArrayProp[0].typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'"
  251. >
  252. <td><span v-text="item.name"></span></td>
  253. <td><span v-html="item.class"></span></td>
  254. <td><span v-html="item.age"></span></td>
  255. <td colspan="5"><span v-text="item.work"></span></td>
  256. </tr>
  257. </tbody>
  258. <tbody>
  259. <tr
  260. v-if="myArrayProp[0].typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'"
  261. >
  262. <td
  263. class="vertical"
  264. :rowspan="myArrayProp[0].course_teacher.length + 1"
  265. >
  266. 项目指导教师
  267. </td>
  268. <td>姓名</td>
  269. <td>专业</td>
  270. <td>职称</td>
  271. <td>学历</td>
  272. <td>所在教研室</td>
  273. <td colspan="5">项目角色分工</td>
  274. </tr>
  275. <tr
  276. v-for="(item, index) in myArrayProp[0].course_teacher"
  277. :key="index + 'd'"
  278. v-if="myArrayProp[0].typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'"
  279. >
  280. <td><span v-text="item.name"></span></td>
  281. <td><span v-html="item.speciality"></span></td>
  282. <td><span v-html="item.title"></span></td>
  283. <td><span v-html="item.education"></span></td>
  284. <td><span v-html="item.section"></span></td>
  285. <td colspan="5"><span v-text="item.work"></span></td>
  286. </tr>
  287. </tbody>
  288. <tbody>
  289. <tr>
  290. <td class="vertical" rowspan="6">
  291. 项目研发内容及目标
  292. </td>
  293. </tr>
  294. <tr>
  295. <td colspan="7" style="text-align: left; height: auto">
  296. <p>一、项目研发内容简介(200字以内)</p>
  297. <div
  298. class="textCss"
  299. v-html="myArrayProp[0].brief.replace(/ /g, '&nbsp;')"
  300. ></div>
  301. <!-- <el-input
  302. type="textarea"
  303. maxlength="200"
  304. show-word-limit
  305. :autosize="{ minRows: 6 }"
  306. placeholder="请输入内容"
  307. v-model="myArrayProp[0].brief"
  308. >
  309. </el-input> -->
  310. </td>
  311. </tr>
  312. <tr>
  313. <td colspan="7" style="text-align: left; height: auto">
  314. <p>目标计划:</p>
  315. <div
  316. class="textCss"
  317. v-html="
  318. myArrayProp[0]['ClosingstatementData'].plan.replace(
  319. / /g,
  320. '&nbsp;'
  321. )
  322. "
  323. ></div>
  324. <!-- <el-input
  325. type="textarea"
  326. :autosize="{ minRows: 6 }"
  327. placeholder="请输入内容"
  328. v-model="myArrayProp[0]['ClosingstatementData'].plan"
  329. >
  330. </el-input> -->
  331. </td>
  332. </tr>
  333. <tr>
  334. <td colspan="7" style="text-align: left; height: auto">
  335. <p>二、拟解决的关键技术问题</p>
  336. <div
  337. class="textCss"
  338. v-html="
  339. myArrayProp[0]['ClosingstatementData'].technology.replace(
  340. / /g,
  341. '&nbsp;'
  342. )
  343. "
  344. ></div>
  345. <!-- <el-input
  346. type="textarea"
  347. :autosize="{ minRows: 6 }"
  348. placeholder="请输入内容"
  349. v-model="myArrayProp[0]['ClosingstatementData'].technology"
  350. >
  351. </el-input> -->
  352. </td>
  353. </tr>
  354. <tr>
  355. <td colspan="7" style="text-align: left; height: auto">
  356. <p>三、项目的商业(公益)价值评估</p>
  357. <div
  358. class="textCss"
  359. v-html="
  360. myArrayProp[0]['ClosingstatementData'].business.replace(
  361. / /g,
  362. '&nbsp;'
  363. )
  364. "
  365. ></div>
  366. <!-- <el-input
  367. type="textarea"
  368. :autosize="{ minRows: 6 }"
  369. placeholder="请输入内容"
  370. v-model="myArrayProp[0]['ClosingstatementData'].business"
  371. >
  372. </el-input> -->
  373. </td>
  374. </tr>
  375. <tr>
  376. <td colspan="7" style="text-align: left; height: auto">
  377. <p>四、项目创新点评估</p>
  378. <div
  379. class="textCss"
  380. v-html="
  381. myArrayProp[0]['ClosingstatementData'].innovate.replace(
  382. / /g,
  383. '&nbsp;'
  384. )
  385. "
  386. ></div>
  387. <!-- <el-input
  388. type="textarea"
  389. :autosize="{ minRows: 6 }"
  390. placeholder="请输入内容"
  391. v-model="myArrayProp[0]['ClosingstatementData'].innovate"
  392. >
  393. </el-input> -->
  394. </td>
  395. </tr>
  396. </tbody>
  397. <tbody>
  398. <tr>
  399. <td class="vertical" rowspan="10">
  400. 成果及社会价值
  401. </td>
  402. </tr>
  403. <tr>
  404. <td colspan="7">
  405. <p>一、成果(名称、数量及形式,开发产品及取得的专利等)</p>
  406. <p>专利证书获得(提供专利申请或成果证书附件):</p>
  407. <beUpload
  408. v-if="!isDownPdf"
  409. style="position: absolute; right: 10px; top: 5px"
  410. @getFile="getFile"
  411. :navName="'上传文件'"
  412. :accept="accept"
  413. :progress="progress7"
  414. ></beUpload>
  415. <el-progress
  416. v-if="progress7.show"
  417. :percentage="progress7.value"
  418. :format="ProgressFormatresultAccessory"
  419. style="width: 80%"
  420. ></el-progress>
  421. <div
  422. :class="
  423. myArrayProp[0]['ClosingstatementData'].resultAccessory.length >
  424. 0
  425. ? 'bigBlock'
  426. : 'noFileBox'
  427. "
  428. >
  429. <div
  430. class="fileBlock"
  431. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  432. .resultAccessory"
  433. :key="index + 'e'"
  434. >
  435. <div class="fileBox">
  436. <div class="fileBoxLeft" @click="checkFile(item.url)">
  437. <div class="chapter_upload_l_i3"></div>
  438. <div class="titName">{{ item.fileName }}</div>
  439. </div>
  440. <div class="fileBoxRight" v-if="!isDownPdf">
  441. <div class="chapter_upload_ud" style="z-index: 99">
  442. <div
  443. class="chapter_upload_up"
  444. @click="upCd($event, index, 1)"
  445. ></div>
  446. <div
  447. class="chapter_upload_down"
  448. @click="downCd($event, index, 1)"
  449. ></div>
  450. </div>
  451. <div
  452. class="chapter_upload_ic_edit"
  453. @click="updataVideoT($event, index, 1)"
  454. ></div>
  455. <div
  456. class="chapter_upload_ic_r"
  457. @click="deleteFile(index, 1)"
  458. ></div>
  459. </div>
  460. </div>
  461. </div>
  462. </div>
  463. <!-- <el-input
  464. type="textarea"
  465. :autosize="{minRows: 6}"
  466. placeholder="请输入内容"
  467. v-model="myArrayProp[0].brief">
  468. </el-input> -->
  469. </td>
  470. </tr>
  471. <tr>
  472. <td colspan="7" style="height: 200px">
  473. <p>企业应用实证(提供企业证明或合作协议证明等附件):</p>
  474. <beUpload
  475. v-if="!isDownPdf"
  476. style="position: absolute; right: 10px; top: 5px"
  477. @getFile="getfirmAccessory"
  478. :navName="'上传文件'"
  479. :accept="accept"
  480. :progress="progress1"
  481. ></beUpload>
  482. <el-progress
  483. v-if="progress1.show"
  484. :percentage="progress1.value"
  485. :format="ProgressFormatfirmAccessory"
  486. style="width: 80%"
  487. ></el-progress>
  488. <div
  489. :class="
  490. myArrayProp[0]['ClosingstatementData'].firmAccessory.length > 0
  491. ? 'bigBlock'
  492. : 'noFileBox'
  493. "
  494. >
  495. <div
  496. class="fileBlock"
  497. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  498. .firmAccessory"
  499. :key="index + 'f'"
  500. style="cursor: pointer"
  501. >
  502. <div class="fileBox">
  503. <div class="fileBoxLeft" @click="checkFile(item.url)">
  504. <div class="chapter_upload_l_i3"></div>
  505. <div class="titName">{{ item.fileName }}</div>
  506. </div>
  507. <div class="fileBoxRight" v-if="!isDownPdf">
  508. <div class="chapter_upload_ud" style="z-index: 99">
  509. <div
  510. class="chapter_upload_up"
  511. @click="upCd($event, index, 2)"
  512. ></div>
  513. <div
  514. class="chapter_upload_down"
  515. @click="downCd($event, index, 2)"
  516. ></div>
  517. </div>
  518. <div
  519. class="chapter_upload_ic_edit"
  520. @click="updataVideoT($event, index, 2)"
  521. ></div>
  522. <div
  523. class="chapter_upload_ic_r"
  524. @click="deleteFile(index, 2)"
  525. ></div>
  526. </div>
  527. </div>
  528. </div>
  529. </div>
  530. <!-- <el-input
  531. type="textarea"
  532. :autosize="{minRows: 6}"
  533. placeholder="请输入内容"
  534. v-model="myArrayProp[0].brief">
  535. </el-input> -->
  536. </td>
  537. </tr>
  538. <tr>
  539. <td colspan="7" style="height: 200px">
  540. <p>双创竞赛成绩(提供参加师生名单、比赛取得的成绩等附件):</p>
  541. <beUpload
  542. v-if="!isDownPdf"
  543. style="position: absolute; right: 10px; top: 5px"
  544. @getFile="getcompetitionAccessory"
  545. :navName="'上传文件'"
  546. :accept="accept"
  547. :progress="progress2"
  548. ></beUpload>
  549. <el-progress
  550. v-if="progress2.show"
  551. :percentage="progress2.value"
  552. :format="ProgressFormatcompetitionAccessory"
  553. style="width: 80%"
  554. ></el-progress>
  555. <div
  556. :class="
  557. myArrayProp[0]['ClosingstatementData'].competitionAccessory
  558. .length > 0
  559. ? 'bigBlock'
  560. : 'noFileBox'
  561. "
  562. >
  563. <div
  564. class="fileBlock"
  565. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  566. .competitionAccessory"
  567. :key="index + 'g'"
  568. >
  569. <div class="fileBox">
  570. <div class="fileBoxLeft" @click="checkFile(item.url)">
  571. <div class="chapter_upload_l_i3"></div>
  572. <div class="titName">{{ item.fileName }}</div>
  573. </div>
  574. <div class="fileBoxRight" v-if="!isDownPdf">
  575. <div class="chapter_upload_ud" style="z-index: 99">
  576. <div
  577. class="chapter_upload_up"
  578. @click="upCd($event, index, 3)"
  579. ></div>
  580. <div
  581. class="chapter_upload_down"
  582. @click="downCd($event, index, 3)"
  583. ></div>
  584. </div>
  585. <div
  586. class="chapter_upload_ic_edit"
  587. @click="updataVideoT($event, index, 3)"
  588. ></div>
  589. <div
  590. class="chapter_upload_ic_r"
  591. @click="deleteFile(index, 3)"
  592. ></div>
  593. </div>
  594. </div>
  595. </div>
  596. </div>
  597. </td>
  598. </tr>
  599. <tr>
  600. <td colspan="7" style="height: 200px">
  601. <p>参展或交流活动(提供参加师生名单、活动方案及照片等附件):</p>
  602. <beUpload
  603. v-if="!isDownPdf"
  604. style="position: absolute; right: 10px; top: 5px"
  605. @getFile="getexchangeAccessory"
  606. :navName="'上传文件'"
  607. :accept="accept"
  608. :progress="progress3"
  609. ></beUpload>
  610. <el-progress
  611. v-if="progress3.show"
  612. :percentage="progress3.value"
  613. :format="ProgressFormatexchangeAccessory"
  614. style="width: 80%"
  615. ></el-progress>
  616. <div
  617. :class="
  618. myArrayProp[0]['ClosingstatementData'].exchangeAccessory
  619. .length > 0
  620. ? 'bigBlock'
  621. : 'noFileBox'
  622. "
  623. >
  624. <div
  625. class="fileBlock"
  626. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  627. .exchangeAccessory"
  628. :key="index + 'h'"
  629. >
  630. <div class="fileBox">
  631. <div class="fileBoxLeft" @click="checkFile(item.url)">
  632. <div class="chapter_upload_l_i3"></div>
  633. <div class="titName">{{ item.fileName }}</div>
  634. </div>
  635. <div class="fileBoxRight" v-if="!isDownPdf">
  636. <div class="chapter_upload_ud" style="z-index: 99">
  637. <div
  638. class="chapter_upload_up"
  639. @click="upCd($event, index, 4)"
  640. ></div>
  641. <div
  642. class="chapter_upload_down"
  643. @click="downCd($event, index, 4)"
  644. ></div>
  645. </div>
  646. <div
  647. class="chapter_upload_ic_edit"
  648. @click="updataVideoT($event, index, 4)"
  649. ></div>
  650. <div
  651. class="chapter_upload_ic_r"
  652. @click="deleteFile(index, 4)"
  653. ></div>
  654. </div>
  655. </div>
  656. </div>
  657. </div>
  658. </td>
  659. </tr>
  660. <tr>
  661. <td colspan="7" style="height: 200px">
  662. <p>创业公司转化(提供公司注册资料、营业执照等附件):</p>
  663. <beUpload
  664. v-if="!isDownPdf"
  665. style="position: absolute; right: 10px; top: 5px"
  666. @getFile="getconversionAccessory"
  667. :navName="'上传文件'"
  668. :accept="accept"
  669. :progress="progress4"
  670. ></beUpload>
  671. <el-progress
  672. v-if="progress4.show"
  673. :percentage="progress4.value"
  674. :format="ProgressFormatconversionAccessory"
  675. style="width: 80%"
  676. ></el-progress>
  677. <div
  678. :class="
  679. myArrayProp[0]['ClosingstatementData'].conversionAccessory
  680. .length > 0
  681. ? 'bigBlock'
  682. : 'noFileBox'
  683. "
  684. >
  685. <div
  686. class="fileBlock"
  687. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  688. .conversionAccessory"
  689. :key="index + 'j'"
  690. >
  691. <div class="fileBox">
  692. <div class="fileBoxLeft" @click="checkFile(item.url)">
  693. <div class="chapter_upload_l_i3"></div>
  694. <div class="titName">{{ item.fileName }}</div>
  695. </div>
  696. <div class="fileBoxRight" v-if="!isDownPdf">
  697. <div class="chapter_upload_ud" style="z-index: 99">
  698. <div
  699. class="chapter_upload_up"
  700. @click="upCd($event, index, 5)"
  701. ></div>
  702. <div
  703. class="chapter_upload_down"
  704. @click="downCd($event, index, 5)"
  705. ></div>
  706. </div>
  707. <div
  708. class="chapter_upload_ic_edit"
  709. @click="updataVideoT($event, index, 5)"
  710. ></div>
  711. <div
  712. class="chapter_upload_ic_r"
  713. @click="deleteFile(index, 5)"
  714. ></div>
  715. </div>
  716. </div>
  717. </div>
  718. </div>
  719. </td>
  720. </tr>
  721. <tr>
  722. <td colspan="7" style="height: 200px">
  723. <p>二、创客人才培养(提供成果、数量、学生名单等附件)</p>
  724. <beUpload
  725. v-if="!isDownPdf"
  726. style="position: absolute; right: 10px; top: 5px"
  727. @getFile="gettalentsAccessory"
  728. :navName="'上传文件'"
  729. :accept="accept"
  730. :progress="progress5"
  731. ></beUpload>
  732. <el-progress
  733. v-if="progress5.show"
  734. :percentage="progress5.value"
  735. :format="ProgressFormattalentsAccessory"
  736. style="width: 80%"
  737. ></el-progress>
  738. <div
  739. :class="
  740. myArrayProp[0]['ClosingstatementData'].talentsAccessory.length >
  741. 0
  742. ? 'bigBlock'
  743. : 'noFileBox'
  744. "
  745. >
  746. <div
  747. class="fileBlock"
  748. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  749. .talentsAccessory"
  750. :key="index + 'k'"
  751. >
  752. <div class="fileBox">
  753. <div class="fileBoxLeft" @click="checkFile(item.url)">
  754. <div class="chapter_upload_l_i3"></div>
  755. <div class="titName">{{ item.fileName }}</div>
  756. </div>
  757. <div class="fileBoxRight" v-if="!isDownPdf">
  758. <div class="chapter_upload_ud" style="z-index: 99">
  759. <div
  760. class="chapter_upload_up"
  761. @click="upCd($event, index, 6)"
  762. ></div>
  763. <div
  764. class="chapter_upload_down"
  765. @click="downCd($event, index, 6)"
  766. ></div>
  767. </div>
  768. <div
  769. class="chapter_upload_ic_edit"
  770. @click="updataVideoT($event, index, 6)"
  771. ></div>
  772. <div
  773. class="chapter_upload_ic_r"
  774. @click="deleteFile(index, 6)"
  775. ></div>
  776. </div>
  777. </div>
  778. </div>
  779. </div>
  780. </td>
  781. </tr>
  782. <tr>
  783. <td colspan="7" style="text-align: left; height: auto">
  784. <p>目标计划:</p>
  785. <div
  786. class="textCss"
  787. v-html="
  788. myArrayProp[0]['ClosingstatementData'].targetPlan.replace(
  789. / /g,
  790. '&nbsp;'
  791. )
  792. "
  793. ></div>
  794. <!-- <el-input
  795. type="textarea"
  796. :autosize="{ minRows: 6 }"
  797. placeholder="请输入内容"
  798. v-model="myArrayProp[0]['ClosingstatementData'].targetPlan"
  799. >
  800. </el-input> -->
  801. </td>
  802. </tr>
  803. <tr>
  804. <td colspan="7" :style="{ height: isDownPdf ? 'auto' : '200px' }">
  805. <p>实际结果:</p>
  806. <el-input
  807. v-if="!isDownPdf"
  808. type="textarea"
  809. :autosize="{ minRows: 6 }"
  810. placeholder="请输入内容"
  811. @change="changeInput"
  812. v-model="myArrayProp[0]['ClosingstatementData'].realityResult"
  813. >
  814. </el-input>
  815. <div v-else style="min-height: 100px">
  816. {{ myArrayProp[0]["ClosingstatementData"].realityResult }}
  817. </div>
  818. </td>
  819. </tr>
  820. <tr>
  821. <td colspan="7" :style="{ height: isDownPdf ? 'auto' : '200px' }">
  822. <p>三、社会价值(项目实践运用情况及效果评价)</p>
  823. <el-input
  824. v-if="!isDownPdf"
  825. type="textarea"
  826. :autosize="{ minRows: 6 }"
  827. placeholder="请输入内容"
  828. @change="changeInput"
  829. v-model="myArrayProp[0]['ClosingstatementData'].socialValue"
  830. >
  831. </el-input>
  832. <div v-else style="min-height: 100px">
  833. {{ myArrayProp[0]["ClosingstatementData"].socialValue }}
  834. </div>
  835. </td>
  836. </tr>
  837. </tbody>
  838. <tbody>
  839. <tr>
  840. <td class="vertical">附件</td>
  841. <td colspan="7" style="height: 200px">
  842. <p>附:课题研究报告、用户评价意见或专家鉴定意见、其它附件等等</p>
  843. <beUpload
  844. v-if="!isDownPdf"
  845. style="position: absolute; right: 10px; top: 5px"
  846. @getFile="gettaskAccessory"
  847. :navName="'上传文件'"
  848. :accept="accept"
  849. :progress="progress6"
  850. ></beUpload>
  851. <el-progress
  852. v-if="progress6.show"
  853. :percentage="progress6.value"
  854. :format="ProgressFormattaskAccessory"
  855. style="width: 80%"
  856. ></el-progress>
  857. <div
  858. :class="
  859. myArrayProp[0]['ClosingstatementData'].taskAccessory.length > 0
  860. ? 'bigBlock'
  861. : 'noFileBox'
  862. "
  863. >
  864. <div
  865. class="fileBlock"
  866. v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
  867. .taskAccessory"
  868. :key="index + 'l'"
  869. >
  870. <div class="fileBox">
  871. <div class="fileBoxLeft" @click="checkFile(item.url)">
  872. <div class="chapter_upload_l_i3"></div>
  873. <div class="titName">{{ item.fileName }}</div>
  874. </div>
  875. <div class="fileBoxRight" v-if="!isDownPdf">
  876. <div class="chapter_upload_ud" style="z-index: 99">
  877. <div
  878. class="chapter_upload_up"
  879. @click="upCd($event, index, 7)"
  880. ></div>
  881. <div
  882. class="chapter_upload_down"
  883. @click="downCd($event, index, 7)"
  884. ></div>
  885. </div>
  886. <div
  887. class="chapter_upload_ic_edit"
  888. @click="updataVideoT($event, index, 7)"
  889. ></div>
  890. <div
  891. class="chapter_upload_ic_r"
  892. @click="deleteFile(index, 7)"
  893. ></div>
  894. </div>
  895. </div>
  896. </div>
  897. </div>
  898. </td>
  899. </tr>
  900. </tbody>
  901. <tbody>
  902. <tr>
  903. <td class="vertical" rowspan="12">经费使用</td>
  904. <td colspan="2">预算总经费</td>
  905. <td colspan="2">{{ myArrayProp[0].fund }}元</td>
  906. <td>实际使用</td>
  907. <td colspan="2">{{ myArrayProp[0].actualuse }}元</td>
  908. </tr>
  909. <tr>
  910. <td>经费大类</td>
  911. <td>经费小类</td>
  912. <td>支出科目</td>
  913. <td>金额(元)</td>
  914. <td colspan="3">计算依据及理由</td>
  915. </tr>
  916. <tr>
  917. <td rowspan="5">直接经费</td>
  918. </tr>
  919. <!-- total:总经费
  920. 小型仪器设备费:device deviceRemarks
  921. 材料费:Material MaterialRemarks
  922. 测试化验加工费:processing processingRemarks
  923. 项目协作费:Collaboration CollaborationRemarks
  924. 项目成果鉴定费:APPRAISAL APPRAISALRemarks
  925. 参展参赛费:entery enteryRemarks
  926. 创客交流活动费:activities activitiesRemarks
  927. 知识产权事务费:Transaction TransactionRemarks -->
  928. <tr>
  929. <td>小型仪器设备费</td>
  930. <td>-</td>
  931. <td>
  932. <el-input
  933. v-if="!isDownPdf"
  934. v-model="myArrayProp[0]['money'].device"
  935. @change="getPrice"
  936. ></el-input>
  937. <div v-else>{{ myArrayProp[0]["money"].device }}</div>
  938. </td>
  939. <td colspan="3">
  940. 项目开展所需的小型专用仪器设备、工具、配件购置或租赁费用。
  941. </td>
  942. </tr>
  943. <tr>
  944. <td>材料费</td>
  945. <td>-</td>
  946. <td>
  947. <el-input
  948. v-if="!isDownPdf"
  949. v-model="myArrayProp[0]['money'].Material"
  950. @change="getPrice"
  951. ></el-input>
  952. <div v-else>{{ myArrayProp[0]["money"].Material }}</div>
  953. </td>
  954. <td colspan="3">
  955. 项目开展需消耗的各种原材料、辅助材料等低值易耗品的采购费用。
  956. </td>
  957. </tr>
  958. <tr>
  959. <td>测试化验加工费</td>
  960. <td>-</td>
  961. <td>
  962. <el-input
  963. v-if="!isDownPdf"
  964. v-model="myArrayProp[0]['money'].processing"
  965. @change="getPrice"
  966. ></el-input>
  967. <div v-else>{{ myArrayProp[0]["money"].processing }}</div>
  968. </td>
  969. <td colspan="3">
  970. 项目开展过程中支付给外单位的检验、测试、化验、计算、分析及加工费等费用。
  971. </td>
  972. </tr>
  973. <tr>
  974. <td>项目协作费</td>
  975. <td>-</td>
  976. <td>
  977. <el-input
  978. v-if="!isDownPdf"
  979. v-model="myArrayProp[0]['money'].Collaboration"
  980. @change="getPrice"
  981. ></el-input>
  982. <div v-else>{{ myArrayProp[0]["money"].Collaboration }}</div>
  983. </td>
  984. <td colspan="3">按合同规定支付给协作单位的费用</td>
  985. </tr>
  986. <tr>
  987. <td rowspan="5">间接经费</td>
  988. </tr>
  989. <tr>
  990. <td>项目成果鉴定费</td>
  991. <td>-</td>
  992. <td>
  993. <el-input
  994. v-if="!isDownPdf"
  995. v-model="myArrayProp[0]['money'].APPRAISAL"
  996. @change="getPrice"
  997. ></el-input>
  998. <div v-else>{{ myArrayProp[0]["money"].APPRAISAL }}</div>
  999. </td>
  1000. <td colspan="3">学术会务费、评审费、鉴定费、成果集制作费等费用。</td>
  1001. </tr>
  1002. <tr>
  1003. <td>参展参赛费</td>
  1004. <td>-</td>
  1005. <td>
  1006. <el-input
  1007. v-if="!isDownPdf"
  1008. v-model="myArrayProp[0]['money'].entery"
  1009. @change="getPrice"
  1010. ></el-input>
  1011. <div v-else>{{ myArrayProp[0]["money"].entery }}</div>
  1012. </td>
  1013. <td colspan="3">
  1014. 参加创客展会、竞赛等所需的报名费、展位费、布展费、宣传推广费及差旅费等费用。
  1015. </td>
  1016. </tr>
  1017. <tr>
  1018. <td>创客交流活动费</td>
  1019. <td>-</td>
  1020. <td>
  1021. <el-input
  1022. v-if="!isDownPdf"
  1023. v-model="myArrayProp[0]['money'].activities"
  1024. @change="getPrice"
  1025. ></el-input>
  1026. <div v-else>{{ myArrayProp[0]["money"].activities }}</div>
  1027. </td>
  1028. <td colspan="3">
  1029. 创客交流活动中支付给校外专家的指导费、咨询费、授课费等费用。
  1030. </td>
  1031. </tr>
  1032. <tr>
  1033. <td>知识产权事务费</td>
  1034. <td>-</td>
  1035. <td>
  1036. <el-input
  1037. v-if="!isDownPdf"
  1038. v-model="myArrayProp[0]['money'].Transaction"
  1039. @change="getPrice"
  1040. ></el-input>
  1041. <div v-else>{{ myArrayProp[0]["money"].Transaction }}</div>
  1042. </td>
  1043. <td colspan="3">论文版面费、专利及其他知识产权事务等费用。</td>
  1044. </tr>
  1045. </tbody>
  1046. <tbody>
  1047. <tr style="height: 350px">
  1048. <td class="vertical">
  1049. 所在学院/部门初审意见
  1050. </td>
  1051. <td colspan="7" style="position: relative">
  1052. <div
  1053. v-if="qpList.length && qpList[2] && qpList[2].type == 4"
  1054. class="qpText"
  1055. v-html="qpList[2].text"
  1056. ></div>
  1057. <div
  1058. style="
  1059. width: 200px;
  1060. position: absolute;
  1061. right: 80px;
  1062. bottom: 50px;
  1063. "
  1064. >
  1065. 负责人签章:<span
  1066. v-if="qpList.length && qpList[2] && qpList[2].type == 4"
  1067. >{{ qpList[2].username }}
  1068. </span>
  1069. </div>
  1070. <div
  1071. v-if="qpList.length && qpList[2] && qpList[2].type == 4"
  1072. style="width: 300px; position: absolute; right: 0px; bottom: 15px"
  1073. >
  1074. 日期:{{ qpList[2].time }}
  1075. </div>
  1076. <div
  1077. style="width: 300px; position: absolute; right: 0px; bottom: 15px"
  1078. v-else
  1079. >
  1080. 年 月 日
  1081. </div>
  1082. </td>
  1083. </tr>
  1084. </tbody>
  1085. <!-- <tr>
  1086. <td>专 <br />家 <br />验 <br />收 <br />结 <br />论</td>
  1087. <td colspan="7">
  1088. <div style="width: 200px; float: right; margin: 10px 300px">
  1089. 负责人签章:
  1090. </div>
  1091. <div style="width: 200px; float: right; margin: 10px 100px">
  1092. 年 月 日
  1093. </div>
  1094. </td>
  1095. </tr> -->
  1096. <tbody>
  1097. <tr style="height: 350px">
  1098. <td class="vertical">创新创业学院审核意见</td>
  1099. <td colspan="7" style="position: relative">
  1100. <div
  1101. v-if="qpList.length && qpList[1] && qpList[1].type == 3"
  1102. class="qpText"
  1103. v-html="qpList[1].text"
  1104. ></div>
  1105. <div
  1106. v-else-if="
  1107. qpList.length &&
  1108. qpList.length == 1 &&
  1109. qpList[0] &&
  1110. qpList[0].type == 0
  1111. "
  1112. class="qpText"
  1113. v-html="qpList[0].text"
  1114. ></div>
  1115. <div
  1116. style="
  1117. width: 200px;
  1118. position: absolute;
  1119. right: 80px;
  1120. bottom: 50px;
  1121. "
  1122. >
  1123. 负责人签章:<span
  1124. v-if="qpList.length && qpList[1] && qpList[1].type == 3"
  1125. >{{ qpList[1].username }} </span
  1126. ><span
  1127. v-else-if="
  1128. qpList.length &&
  1129. qpList.length == 1 &&
  1130. qpList[0] &&
  1131. qpList[0].type == 0
  1132. "
  1133. >{{ qpList[0].username }}
  1134. </span>
  1135. </div>
  1136. <div
  1137. v-if="qpList.length && qpList[1] && qpList[1].type == 3"
  1138. style="width: 300px; position: absolute; right: 0px; bottom: 15px"
  1139. >
  1140. 日期:{{ qpList[1].time }}
  1141. </div>
  1142. <div
  1143. v-else-if="
  1144. qpList.length &&
  1145. qpList.length == 1 &&
  1146. qpList[0] &&
  1147. qpList[0].type == 0
  1148. "
  1149. style="width: 300px; position: absolute; right: 0px; bottom: 15px"
  1150. >
  1151. 日期:{{ qpList[0].time }}
  1152. </div>
  1153. <div
  1154. style="width: 300px; position: absolute; right: 0px; bottom: 15px"
  1155. v-else
  1156. >
  1157. 年 月 日
  1158. </div>
  1159. </td>
  1160. </tr>
  1161. </tbody>
  1162. <tbody>
  1163. <tr style="height: 350px">
  1164. <td class="vertical" style="height: 350px">学校终审意见</td>
  1165. <td colspan="7">
  1166. <div
  1167. style="
  1168. width: 200px;
  1169. position: absolute;
  1170. right: 80px;
  1171. bottom: 50px;
  1172. "
  1173. >
  1174. 负责人签章:
  1175. </div>
  1176. <div
  1177. style="width: 300px; position: absolute; right: 0px; bottom: 15px"
  1178. >
  1179. 年 月 日
  1180. </div>
  1181. </td>
  1182. </tr>
  1183. </tbody>
  1184. </table>
  1185. <!-- <div v-show="isDownPdf" ref="tableBox2">
  1186. </div> -->
  1187. <div class="ending">
  1188. <p>备注:1、本表一式三份,专家验收后交双创学院</p>
  1189. <p style="text-indent: 3em">
  1190. 2、各栏目若不够填写,可自行加页,加页需紧附该栏目之后。
  1191. </p>
  1192. </div>
  1193. <!-- <footer>https://cxcy.ssti.net.cn/</footer> -->
  1194. <!-- 展示文档开始 -->
  1195. <el-dialog
  1196. title="展示文件"
  1197. :visible.sync="showFile"
  1198. top="1vh"
  1199. width="80vw"
  1200. append-to-body
  1201. >
  1202. <div class="showFileArea" style="height: 80vh">
  1203. <!-- <vpdf v-if="/^\s*$/g.test(showFileUrl)&&showFileUrl.split('.')[showFileUrl.split('.').length-1]=='pdf'" :pdfUrl="showFileUrl"></vpdf> -->
  1204. <div
  1205. class="workd_media"
  1206. style="width: 90%; height: 90%"
  1207. v-if="videoDetail.sources"
  1208. >
  1209. <video-player
  1210. class="video-player vjs-custom-skin"
  1211. :playsinline="true"
  1212. :options="videoDetail"
  1213. @play="onPlayerPlay($event)"
  1214. style="width: 90%; height: 90%; margin: 0 auto"
  1215. ></video-player>
  1216. </div>
  1217. <vword
  1218. style="width: 100%; height: 100%; overflow: auto"
  1219. class="fullStyle"
  1220. v-else-if="Wordss['type'] != 'pdf' && Wordss['name'] != '图片'"
  1221. :pdfUrl="
  1222. 'https://view.officeapps.live.com/op/view.aspx?src=' + showFileUrl
  1223. "
  1224. ></vword>
  1225. <vpdf
  1226. style="width: 100%; height: 100%; overflow: auto"
  1227. class="fullStyle"
  1228. :pdfUrl="showFileUrl"
  1229. v-else-if="Wordss['type'] == 'pdf'"
  1230. ></vpdf>
  1231. <img
  1232. :src="showFileUrl"
  1233. alt="图片哦"
  1234. v-else-if="Wordss['name'] == '图片'"
  1235. style="width: auto; height: auto; max-width: 100%; max-height: 100%"
  1236. />
  1237. </div>
  1238. <!-- <el-button type="primary" size="mini" @click="downFile(showFileUrl)">下载文件</el-button> -->
  1239. </el-dialog>
  1240. <el-dialog
  1241. title="修改名称"
  1242. :visible.sync="dialogVisibleupdataVideoT"
  1243. :append-to-body="true"
  1244. width="500px"
  1245. :before-close="handleClose"
  1246. class="dialog_diy"
  1247. >
  1248. <div
  1249. style="
  1250. width: 100%;
  1251. display: flex;
  1252. flex-direction: row;
  1253. flex-wrap: nowrap;
  1254. align-items: center;
  1255. justify-content: center;
  1256. "
  1257. >
  1258. <div style="min-width: fit-content">文件名称:</div>
  1259. <el-input
  1260. v-model="fileName"
  1261. placeholder="请输入要修改的名称"
  1262. ></el-input>
  1263. </div>
  1264. <span slot="footer" class="dialog-footer">
  1265. <el-button @click="dialogVisibleupdataVideoT = false">取 消</el-button>
  1266. <el-button type="primary" @click="updataVideoC">确 定</el-button>
  1267. </span>
  1268. </el-dialog>
  1269. </div>
  1270. </template>
  1271. <script>
  1272. import { getNowDate } from "@/components/tool/Date.js";
  1273. import beUpload from "@/components/tool/beUpload";
  1274. import vpdf from "@/components/vpdf.vue";
  1275. import vword from "@/components/vword.vue";
  1276. export default {
  1277. props: {
  1278. myArrayProp2: {
  1279. type: Array,
  1280. required: true,
  1281. },
  1282. iid: {
  1283. type: String,
  1284. required: true,
  1285. },
  1286. isDownPdf: {
  1287. type: Boolean,
  1288. required: true,
  1289. },
  1290. },
  1291. components: { beUpload, vpdf, vword },
  1292. data() {
  1293. return {
  1294. myArrayProp: [],
  1295. accept: "*",
  1296. nowTime: getNowDate(1),
  1297. file: "",
  1298. progress1: {
  1299. value: 0,
  1300. show: false,
  1301. },
  1302. progress2: {
  1303. value: 0,
  1304. show: false,
  1305. },
  1306. progress3: {
  1307. value: 0,
  1308. show: false,
  1309. },
  1310. progress4: {
  1311. value: 0,
  1312. show: false,
  1313. },
  1314. progress5: {
  1315. value: 0,
  1316. show: false,
  1317. },
  1318. progress6: {
  1319. value: 0,
  1320. show: false,
  1321. },
  1322. progress7: {
  1323. value: 0,
  1324. show: false,
  1325. },
  1326. showFile: false,
  1327. showFileUrl: "",
  1328. Wordss: { type: "", name: "" },
  1329. canonical: {
  1330. Image:
  1331. /^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i,
  1332. File: /^https?:\/\/(.+\/)+.+(\.(docx|xlsx|ppt|pdf))$/i,
  1333. },
  1334. word: [
  1335. "DOC",
  1336. "DOCX",
  1337. "DOCM",
  1338. "DOTM",
  1339. "DOTX",
  1340. "PPTX",
  1341. "PPSX",
  1342. "PPT",
  1343. "PPS",
  1344. "PPTM",
  1345. "POTM",
  1346. "PPAM",
  1347. "POTX",
  1348. "PPSM",
  1349. "XLSX",
  1350. "XLS",
  1351. ],
  1352. pdf: ["PDF"],
  1353. image: [
  1354. "BMP",
  1355. "PJP",
  1356. "APNG",
  1357. "PNG",
  1358. "JPG",
  1359. "GIF",
  1360. "SVG",
  1361. "JPEG",
  1362. "JPG",
  1363. "ICO",
  1364. "PGPEG",
  1365. "AVIF",
  1366. ],
  1367. vedio: [
  1368. "AVI",
  1369. "NAVI",
  1370. "MPEG",
  1371. "ASF",
  1372. "MOV",
  1373. "WMV",
  1374. "3GP",
  1375. "RM",
  1376. "RMVB",
  1377. "FLV",
  1378. "F4V",
  1379. "H.264",
  1380. "H.265",
  1381. "REAL VIDEO",
  1382. "MKV",
  1383. "WebM",
  1384. "HDDVD",
  1385. "MP4",
  1386. "MPG",
  1387. "M4V",
  1388. "MGV",
  1389. "OGV",
  1390. "QTM",
  1391. "STR",
  1392. "AMC",
  1393. "DVX",
  1394. "EVO",
  1395. "DAT",
  1396. "OGG",
  1397. "OGM",
  1398. ],
  1399. playerOptions: {
  1400. playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
  1401. autoplay: false, //如果true,浏览器准备好时开始回放。
  1402. muted: false, // 默认情况下将会消除任何音频。
  1403. loop: false, // 导致视频一结束就重新开始。
  1404. preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
  1405. language: "zh-CN",
  1406. aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
  1407. fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
  1408. sources: [
  1409. {
  1410. type: "video/mp4", //这里的种类支持很多种:基本视频格式、直播、流媒体等,具体可以参看git网址项目 || "video/ogg"|| "video/webm"
  1411. src: "", //url地址require("../../assets/media/aaa.mp4")
  1412. },
  1413. ],
  1414. // poster: require("../../assets/tu31.png"), //你的封面地址
  1415. // poster: dataRes.imgUrl, //你的封面地址
  1416. notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。
  1417. controlBar: {
  1418. timeDivider: true, //当前时间和持续时间的分隔符
  1419. durationDisplay: true, //显示持续时间
  1420. remainingTimeDisplay: false, //是否显示剩余时间功能
  1421. fullscreenToggle: true, //全屏按钮
  1422. },
  1423. },
  1424. playerO: {},
  1425. videoDetail: {},
  1426. qpList: [],
  1427. fileName: "",
  1428. fileIndex: 0,
  1429. fileType: 0,
  1430. dialogVisibleupdataVideoT: false,
  1431. };
  1432. },
  1433. methods: {
  1434. handleClose(done) {
  1435. done();
  1436. },
  1437. getFile(val) {
  1438. //上传成果文件
  1439. console.log(val);
  1440. this.progress7.show = false;
  1441. this.myArrayProp[0]["ClosingstatementData"].resultAccessory.push(val);
  1442. this.setFile();
  1443. },
  1444. deleteFile(val, t) {
  1445. this.$confirm("确定删除此文件吗?", "提示", {
  1446. confirmButtonText: "确定",
  1447. cancelButtonText: "取消",
  1448. type: "warning",
  1449. })
  1450. .then(() => {
  1451. console.log(val);
  1452. if (t == 1) {
  1453. this.myArrayProp[0]["ClosingstatementData"].resultAccessory.splice(
  1454. val,
  1455. 1
  1456. );
  1457. } else if (t == 2) {
  1458. this.myArrayProp[0]["ClosingstatementData"].firmAccessory.splice(
  1459. val,
  1460. 1
  1461. );
  1462. } else if (t == 3) {
  1463. this.myArrayProp[0][
  1464. "ClosingstatementData"
  1465. ].competitionAccessory.splice(val, 1);
  1466. } else if (t == 4) {
  1467. this.myArrayProp[0][
  1468. "ClosingstatementData"
  1469. ].exchangeAccessory.splice(val, 1);
  1470. } else if (t == 5) {
  1471. this.myArrayProp[0][
  1472. "ClosingstatementData"
  1473. ].conversionAccessory.splice(val, 1);
  1474. } else if (t == 6) {
  1475. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory.splice(
  1476. val,
  1477. 1
  1478. );
  1479. } else {
  1480. this.myArrayProp[0]["ClosingstatementData"].taskAccessory.splice(
  1481. val,
  1482. 1
  1483. );
  1484. }
  1485. this.setFile();
  1486. })
  1487. .catch(() => {});
  1488. },
  1489. getfirmAccessory(val) {
  1490. //上传企业应用实证
  1491. this.progress1.show = false;
  1492. this.myArrayProp[0]["ClosingstatementData"].firmAccessory.push(val);
  1493. this.setFile();
  1494. },
  1495. getcompetitionAccessory(val) {
  1496. //双创竞赛成绩
  1497. this.progress2.show = false;
  1498. this.myArrayProp[0]["ClosingstatementData"].competitionAccessory.push(
  1499. val
  1500. );
  1501. this.setFile();
  1502. },
  1503. getexchangeAccessory(val) {
  1504. //参展或交流活动
  1505. this.progress3.show = false;
  1506. this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory.push(val);
  1507. this.setFile();
  1508. },
  1509. getconversionAccessory(val) {
  1510. //创业公司转化
  1511. this.progress4.show = false;
  1512. this.myArrayProp[0]["ClosingstatementData"].conversionAccessory.push(val);
  1513. this.setFile();
  1514. },
  1515. gettalentsAccessory(val) {
  1516. //创客人才培养
  1517. this.progress5.show = false;
  1518. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory.push(val);
  1519. this.setFile();
  1520. },
  1521. gettaskAccessory(val) {
  1522. //
  1523. this.progress6.show = false;
  1524. this.myArrayProp[0]["ClosingstatementData"].taskAccessory.push(val);
  1525. this.setFile();
  1526. },
  1527. ProgressFormattaskAccessory(value) {
  1528. //进度条
  1529. return value == 100 ? "100%" : `${value}%`;
  1530. },
  1531. ProgressFormattalentsAccessory(value) {
  1532. //进度条
  1533. return value == 100 ? "100%" : `${value}%`;
  1534. },
  1535. ProgressFormatconversionAccessory(value) {
  1536. //进度条
  1537. return value == 100 ? "100%" : `${value}%`;
  1538. },
  1539. ProgressFormatexchangeAccessory(value) {
  1540. //进度条
  1541. return value == 100 ? "100%" : `${value}%`;
  1542. },
  1543. ProgressFormatcompetitionAccessory(value) {
  1544. //进度条
  1545. return value == 100 ? "100%" : `${value}%`;
  1546. },
  1547. ProgressFormatfirmAccessory(value) {
  1548. //进度条
  1549. return value == 100 ? "100%" : `${value}%`;
  1550. },
  1551. ProgressFormatresultAccessory(value) {
  1552. //进度条
  1553. return value == 100 ? "100%" : `${value}%`;
  1554. },
  1555. //展示文件
  1556. checkFile(url) {
  1557. this.videoDetail = {};
  1558. if (
  1559. this.vedio.indexOf(
  1560. url.split(".")[url.split(".").length - 1].toLocaleUpperCase()
  1561. ) != -1
  1562. ) {
  1563. this.playerOptions.sources[0].src = url;
  1564. this.videoDetail = this.playerOptions;
  1565. this.showFile = true;
  1566. } else {
  1567. if (
  1568. this.word.indexOf(
  1569. url.split(".")[url.split(".").length - 1].toLocaleUpperCase()
  1570. ) == -1 &&
  1571. this.pdf.indexOf(
  1572. url.split(".")[url.split(".").length - 1].toLocaleUpperCase()
  1573. ) == -1 &&
  1574. this.image.indexOf(
  1575. url.split(".")[url.split(".").length - 1].toLocaleUpperCase()
  1576. ) == -1
  1577. ) {
  1578. this.downFile(url);
  1579. return;
  1580. }
  1581. this.showFileUrl = url;
  1582. this.showFile = true;
  1583. if (typeof url == "undefined") return { type: "", name: "" };
  1584. let urlSplit = url.split(".");
  1585. const type = urlSplit[urlSplit.length - 1];
  1586. if (this.canonical.Image.test(url)) {
  1587. this.Wordss = { type: type, name: "图片" };
  1588. return console.log(this.Wordss);
  1589. }
  1590. if (this.canonical.File.test(url)) {
  1591. this.Wordss = { type: type, name: "文档" };
  1592. return console.log(this.Wordss);
  1593. }
  1594. if (this.canonical.vedio.test(url)) {
  1595. this.Wordss = { type: type, name: "视频" };
  1596. return console.log(this.Wordss);
  1597. } else return (this.Wordss = { type: type, name: type });
  1598. }
  1599. },
  1600. //下载文件
  1601. downFile(f) {
  1602. var credentials = {
  1603. accessKeyId: "AKIATLPEDU37QV5CHLMH",
  1604. secretAccessKey: "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",
  1605. }; //秘钥形式的登录上传
  1606. window.AWS.config.update(credentials);
  1607. window.AWS.config.region = "cn-northwest-1"; //设置区域
  1608. let url2 = f;
  1609. let _url2 = "";
  1610. if (
  1611. url2.indexOf("https://view.officeapps.live.com/op/view.aspx?src=") != -1
  1612. ) {
  1613. _url2 = url2.split(
  1614. "https://view.officeapps.live.com/op/view.aspx?src="
  1615. )[1];
  1616. } else {
  1617. _url2 = url2;
  1618. }
  1619. var s3 = new window.AWS.S3({ params: { Bucket: "ccrb" } });
  1620. let name = decodeURIComponent(
  1621. _url2.split("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/")[1]
  1622. );
  1623. var params = {
  1624. Bucket: "ccrb",
  1625. Key: name,
  1626. };
  1627. s3.getObject(params, function (err, data) {
  1628. if (err) console.log(err, err.stack); // an error occurred
  1629. else {
  1630. let url = window.URL.createObjectURL(new Blob([data.Body]));
  1631. let a = document.createElement("a");
  1632. a.name = name;
  1633. a.href = url;
  1634. a.download = name;
  1635. a.click();
  1636. console.log(data);
  1637. } // sxuccessful response
  1638. });
  1639. return;
  1640. },
  1641. getPrice(t) {
  1642. if (this.myArrayProp && this.myArrayProp.length == 0) {
  1643. return;
  1644. }
  1645. var a =
  1646. this.myArrayProp[0]["money"].device != ""
  1647. ? parseInt(this.myArrayProp[0]["money"].device)
  1648. : 0;
  1649. var b =
  1650. this.myArrayProp[0]["money"].Material != ""
  1651. ? parseInt(this.myArrayProp[0]["money"].Material)
  1652. : 0;
  1653. var c =
  1654. this.myArrayProp[0]["money"].processing != ""
  1655. ? parseInt(this.myArrayProp[0]["money"].processing)
  1656. : 0;
  1657. var d =
  1658. this.myArrayProp[0]["money"].Collaboration != ""
  1659. ? parseInt(this.myArrayProp[0]["money"].Collaboration)
  1660. : 0;
  1661. var e =
  1662. this.myArrayProp[0]["money"].APPRAISAL != ""
  1663. ? parseInt(this.myArrayProp[0]["money"].APPRAISAL)
  1664. : 0;
  1665. var f =
  1666. this.myArrayProp[0]["money"].entery != ""
  1667. ? parseInt(this.myArrayProp[0]["money"].entery)
  1668. : 0;
  1669. var g =
  1670. this.myArrayProp[0]["money"].activities != ""
  1671. ? parseInt(this.myArrayProp[0]["money"].activities)
  1672. : 0;
  1673. var h =
  1674. this.myArrayProp[0]["money"].Transaction != ""
  1675. ? parseInt(this.myArrayProp[0]["money"].Transaction)
  1676. : 0;
  1677. this.myArrayProp[0].actualuse = a + b + c + d + e + f + g + h;
  1678. if (t != 1) {
  1679. this.$emit("myArrayProp2:update", this.myArrayProp);
  1680. }
  1681. this.$forceUpdate();
  1682. },
  1683. onPlayerPlay() {},
  1684. setFile() {
  1685. this.ajax
  1686. .post(this.$store.state.api + "/updateClosingstatementData", {
  1687. uid: this.$store.state.userInfo.userid,
  1688. pid: this.iid,
  1689. cdata: encodeURIComponent(JSON.stringify(this.myArrayProp[0]["ClosingstatementData"])),
  1690. sta: 2,
  1691. })
  1692. .then(
  1693. (res) => {
  1694. console.log(res);
  1695. this.$emit("myArrayProp2:update", this.myArrayProp);
  1696. this.$forceUpdate();
  1697. },
  1698. (err) => {
  1699. console.log(err);
  1700. }
  1701. );
  1702. },
  1703. changeInput() {
  1704. this.$emit("myArrayProp2:update", this.myArrayProp);
  1705. },
  1706. getSign() {
  1707. let param = {
  1708. pid: this.iid,
  1709. };
  1710. // return console.log(param);
  1711. // console.log(param)
  1712. this.ajax.get(this.$store.state.api + "/selectSign", param).then(
  1713. (res) => {
  1714. this.qpList = res.data[0];
  1715. },
  1716. (err) => {
  1717. console.log(err);
  1718. }
  1719. );
  1720. },
  1721. upCd(e, i, t) {
  1722. e.stopPropagation();
  1723. if (i == 0) {
  1724. return;
  1725. }
  1726. if (t == 1) {
  1727. var a = JSON.parse(
  1728. JSON.stringify(
  1729. this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i - 1]
  1730. )
  1731. );
  1732. this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i - 1] =
  1733. JSON.parse(
  1734. JSON.stringify(
  1735. this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i]
  1736. )
  1737. );
  1738. this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i] = a;
  1739. } else if (t == 2) {
  1740. var a = JSON.parse(
  1741. JSON.stringify(
  1742. this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i - 1]
  1743. )
  1744. );
  1745. this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i - 1] =
  1746. JSON.parse(
  1747. JSON.stringify(
  1748. this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i]
  1749. )
  1750. );
  1751. this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i] = a;
  1752. } else if (t == 3) {
  1753. var a = JSON.parse(
  1754. JSON.stringify(
  1755. this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[
  1756. i - 1
  1757. ]
  1758. )
  1759. );
  1760. this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[
  1761. i - 1
  1762. ] = JSON.parse(
  1763. JSON.stringify(
  1764. this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[i]
  1765. )
  1766. );
  1767. this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[i] = a;
  1768. } else if (t == 4) {
  1769. var a = JSON.parse(
  1770. JSON.stringify(
  1771. this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i - 1]
  1772. )
  1773. );
  1774. this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i - 1] =
  1775. JSON.parse(
  1776. JSON.stringify(
  1777. this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i]
  1778. )
  1779. );
  1780. this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i] = a;
  1781. } else if (t == 5) {
  1782. var a = JSON.parse(
  1783. JSON.stringify(
  1784. this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[
  1785. i - 1
  1786. ]
  1787. )
  1788. );
  1789. this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[i - 1] =
  1790. JSON.parse(
  1791. JSON.stringify(
  1792. this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[i]
  1793. )
  1794. );
  1795. this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[i] = a;
  1796. } else if (t == 6) {
  1797. var a = JSON.parse(
  1798. JSON.stringify(
  1799. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i - 1]
  1800. )
  1801. );
  1802. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i - 1] =
  1803. JSON.parse(
  1804. JSON.stringify(
  1805. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i]
  1806. )
  1807. );
  1808. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i] = a;
  1809. } else {
  1810. var a = JSON.parse(
  1811. JSON.stringify(
  1812. this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i - 1]
  1813. )
  1814. );
  1815. this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i - 1] =
  1816. JSON.parse(
  1817. JSON.stringify(
  1818. this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i]
  1819. )
  1820. );
  1821. this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i] = a;
  1822. }
  1823. this.$forceUpdate();
  1824. this.setFile();
  1825. },
  1826. downCd(e, i, t) {
  1827. e.stopPropagation();
  1828. if (t == 1) {
  1829. if (
  1830. i ==
  1831. this.myArrayProp[0]["ClosingstatementData"].resultAccessory.length - 1
  1832. ) {
  1833. return;
  1834. }
  1835. var a = JSON.parse(
  1836. JSON.stringify(
  1837. this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i + 1]
  1838. )
  1839. );
  1840. this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i + 1] =
  1841. JSON.parse(
  1842. JSON.stringify(
  1843. this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i]
  1844. )
  1845. );
  1846. this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i] = a;
  1847. } else if (t == 2) {
  1848. var a = JSON.parse(
  1849. JSON.stringify(
  1850. this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i + 1]
  1851. )
  1852. );
  1853. this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i + 1] =
  1854. JSON.parse(
  1855. JSON.stringify(
  1856. this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i]
  1857. )
  1858. );
  1859. this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i] = a;
  1860. } else if (t == 3) {
  1861. var a = JSON.parse(
  1862. JSON.stringify(
  1863. this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[
  1864. i + 1
  1865. ]
  1866. )
  1867. );
  1868. this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[
  1869. i + 1
  1870. ] = JSON.parse(
  1871. JSON.stringify(
  1872. this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[i]
  1873. )
  1874. );
  1875. this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[i] = a;
  1876. } else if (t == 4) {
  1877. var a = JSON.parse(
  1878. JSON.stringify(
  1879. this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i + 1]
  1880. )
  1881. );
  1882. this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i + 1] =
  1883. JSON.parse(
  1884. JSON.stringify(
  1885. this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i]
  1886. )
  1887. );
  1888. this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i] = a;
  1889. } else if (t == 5) {
  1890. var a = JSON.parse(
  1891. JSON.stringify(
  1892. this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[
  1893. i + 1
  1894. ]
  1895. )
  1896. );
  1897. this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[i + 1] =
  1898. JSON.parse(
  1899. JSON.stringify(
  1900. this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[i]
  1901. )
  1902. );
  1903. this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[i] = a;
  1904. } else if (t == 6) {
  1905. var a = JSON.parse(
  1906. JSON.stringify(
  1907. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i + 1]
  1908. )
  1909. );
  1910. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i + 1] =
  1911. JSON.parse(
  1912. JSON.stringify(
  1913. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i]
  1914. )
  1915. );
  1916. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i] = a;
  1917. } else {
  1918. var a = JSON.parse(
  1919. JSON.stringify(
  1920. this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i + 1]
  1921. )
  1922. );
  1923. this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i + 1] =
  1924. JSON.parse(
  1925. JSON.stringify(
  1926. this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i]
  1927. )
  1928. );
  1929. this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i] = a;
  1930. }
  1931. this.$forceUpdate();
  1932. this.setFile();
  1933. },
  1934. updataVideoT(e, i, t) {
  1935. if (t == 1) {
  1936. this.fileName =
  1937. this.myArrayProp[0]["ClosingstatementData"].resultAccessory[
  1938. i
  1939. ].fileName;
  1940. } else if (t == 2) {
  1941. this.fileName =
  1942. this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i].fileName;
  1943. } else if (t == 3) {
  1944. this.fileName =
  1945. this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[
  1946. i
  1947. ].fileName;
  1948. } else if (t == 4) {
  1949. this.fileName =
  1950. this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[
  1951. i
  1952. ].fileName;
  1953. } else if (t == 5) {
  1954. this.fileName =
  1955. this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[
  1956. i
  1957. ].fileName;
  1958. } else if (t == 6) {
  1959. this.fileName =
  1960. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[
  1961. i
  1962. ].fileName;
  1963. } else {
  1964. this.fileName =
  1965. this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i].fileName;
  1966. }
  1967. this.fileIndex = i;
  1968. this.fileType = t;
  1969. this.dialogVisibleupdataVideoT = true;
  1970. this.$forceUpdate();
  1971. },
  1972. updataVideoC() {
  1973. if (this.fileType == 1) {
  1974. this.myArrayProp[0]["ClosingstatementData"].resultAccessory[
  1975. this.fileIndex
  1976. ].fileName = JSON.parse(JSON.stringify(this.fileName));
  1977. } else if (this.fileType == 2) {
  1978. this.myArrayProp[0]["ClosingstatementData"].firmAccessory[
  1979. this.fileIndex
  1980. ].fileName = JSON.parse(JSON.stringify(this.fileName));
  1981. } else if (this.fileType == 3) {
  1982. this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[
  1983. this.fileIndex
  1984. ].fileName = JSON.parse(JSON.stringify(this.fileName));
  1985. } else if (this.fileType == 4) {
  1986. this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[
  1987. this.fileIndex
  1988. ].fileName = JSON.parse(JSON.stringify(this.fileName));
  1989. } else if (this.fileType == 5) {
  1990. this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[
  1991. this.fileIndex
  1992. ].fileName = JSON.parse(JSON.stringify(this.fileName));
  1993. } else if (this.fileType == 6) {
  1994. this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[
  1995. this.fileIndex
  1996. ].fileName = JSON.parse(JSON.stringify(this.fileName));
  1997. } else {
  1998. this.myArrayProp[0]["ClosingstatementData"].taskAccessory[
  1999. this.fileIndex
  2000. ].fileName = JSON.parse(JSON.stringify(this.fileName));
  2001. }
  2002. this.dialogVisibleupdataVideoT = false;
  2003. this.$forceUpdate();
  2004. this.setFile();
  2005. },
  2006. },
  2007. watch: {
  2008. isDownPdf: {
  2009. handler(newVal) {
  2010. if (newVal) {
  2011. this.isDownPdf = newVal;
  2012. }
  2013. },
  2014. deep: true,
  2015. },
  2016. myArrayProp2: {
  2017. handler(newVal) {
  2018. if (newVal) {
  2019. this.myArrayProp = JSON.parse(JSON.stringify(this.myArrayProp2));
  2020. this.getPrice(1);
  2021. }
  2022. },
  2023. deep: true,
  2024. },
  2025. },
  2026. mounted() {
  2027. // console.log(this.myArrayProp);
  2028. // this.getData();
  2029. this.myArrayProp = JSON.parse(JSON.stringify(this.myArrayProp2));
  2030. this.getPrice(1);
  2031. this.getSign();
  2032. },
  2033. };
  2034. </script>
  2035. <style lang="less" scoped>
  2036. .vertical {
  2037. writing-mode: vertical-rl; /*从右到左竖直书写*/
  2038. // letter-spacing: 4px;
  2039. }
  2040. @media print {
  2041. @page {
  2042. margin: 20px;
  2043. /* 设置页边距 */
  2044. }
  2045. // body {
  2046. // padding: 50px 0;
  2047. // /* 留出页脚空间 */
  2048. // }
  2049. // header {
  2050. // position: fixed;
  2051. // /* 固定页脚位置 */
  2052. // top: 0;
  2053. // /* 置于页面底部 */
  2054. // width: 100%;
  2055. // /* 宽度占满整个页面 */
  2056. // height: 50px;
  2057. // /* 设置页脚高度 */
  2058. // text-align: center;
  2059. // /* 居中对齐 */
  2060. // font-size: 20px;
  2061. // /* 设置字号 */
  2062. // display: block;
  2063. // line-height: 50px;
  2064. // }
  2065. // footer {
  2066. // position: fixed;
  2067. // /* 固定页脚位置 */
  2068. // bottom: 0;
  2069. // /* 置于页面底部 */
  2070. // width: 100%;
  2071. // /* 宽度占满整个页面 */
  2072. // height: 50px;
  2073. // /* 设置页脚高度 */
  2074. // text-align: center;
  2075. // /* 居中对齐 */
  2076. // font-size: 20px;
  2077. // /* 设置字号 */
  2078. // display: block;
  2079. // line-height: 50px;
  2080. // }
  2081. }
  2082. html,
  2083. body {
  2084. overflow: unset;
  2085. .dialog_diy {
  2086. /deep/.el-dialog__header {
  2087. background: #3c3c3c !important;
  2088. padding: 15px 20px;
  2089. }
  2090. /deep/.el-dialog__title {
  2091. color: #fff;
  2092. }
  2093. /deep/.el-dialog__headerbtn {
  2094. top: 19px;
  2095. }
  2096. /deep/.el-dialog__headerbtn .el-dialog__close {
  2097. color: #fff;
  2098. }
  2099. /deep/.el-dialog__headerbtn .el-dialog__close:hover {
  2100. color: #fff;
  2101. }
  2102. /deep/.el-dialog__body,
  2103. /deep/.el-dialog__footer {
  2104. background: #fafafa;
  2105. }
  2106. }
  2107. }
  2108. .onePage {
  2109. width: 100%;
  2110. // height: 1000px;
  2111. box-sizing: border-box;
  2112. padding: 200px 0;
  2113. text-align: center;
  2114. display: flex;
  2115. flex-direction: column;
  2116. justify-content: center;
  2117. // width: 100%;
  2118. // height: 1820px;
  2119. // text-align: center;
  2120. // // margin: 20px auto;
  2121. // display: flex;
  2122. // flex-direction: column;
  2123. // justify-content: center;
  2124. // border: 1px solid #000;
  2125. .titSchool {
  2126. font-weight: 600;
  2127. font-size: 28px;
  2128. margin-bottom: 30px;
  2129. font-family: \6977\4f53;
  2130. }
  2131. .title {
  2132. font-weight: 600;
  2133. font-size: 34px;
  2134. margin-bottom: 30px;
  2135. font-family: \9ed1\4f53;
  2136. margin-bottom: 100px;
  2137. }
  2138. .line {
  2139. width: 300px;
  2140. border-bottom: 1px black solid;
  2141. }
  2142. .basicInformation {
  2143. display: flex;
  2144. justify-content: center;
  2145. font-size: 22px;
  2146. font-family: \4eff\5b8b;
  2147. font-weight: bold;
  2148. margin-bottom: 50px;
  2149. span {
  2150. width: 100px;
  2151. text-align: justify;
  2152. text-align-last: justify;
  2153. /*兼容ie*/
  2154. text-justify: distribute-all-lines;
  2155. margin-right: 10px;
  2156. }
  2157. }
  2158. }
  2159. table {
  2160. position: relative;
  2161. color: black;
  2162. width: 95%;
  2163. margin: 0 auto;
  2164. margin-bottom: 20px;
  2165. font-size: 19px;
  2166. font-family: \5b8b\4f53;
  2167. tr {
  2168. width: 100%;
  2169. border: none;
  2170. }
  2171. tr td {
  2172. height: 60px;
  2173. width: 10%;
  2174. // width: 200px;
  2175. text-align: center;
  2176. box-sizing: border-box;
  2177. padding: 10px;
  2178. position: relative;
  2179. .textCss {
  2180. word-break: break-word;
  2181. white-space: pre-line;
  2182. line-height: 40px;
  2183. }
  2184. // :deep(.el-textarea.is-disabled .el-textarea__inner) {
  2185. // background-color: unset;
  2186. // border-color: unset;
  2187. // color: rgb(0, 0, 0);
  2188. // cursor: unset;
  2189. // }
  2190. .noFileBox {
  2191. width: 98%;
  2192. min-height: 200px;
  2193. display: flex;
  2194. flex-direction: column;
  2195. flex-wrap: nowrap;
  2196. align-items: flex-start;
  2197. }
  2198. .bigBlock {
  2199. width: 98%;
  2200. min-height: 200px;
  2201. display: flex;
  2202. flex-direction: column;
  2203. flex-wrap: nowrap;
  2204. align-items: flex-start;
  2205. border: 1px solid #cad1dc;
  2206. border-radius: 4px;
  2207. padding: 10px;
  2208. margin: 20px 0 0 0;
  2209. .fileBlock {
  2210. width: 98%;
  2211. margin-right: 20px;
  2212. position: relative;
  2213. border-radius: 5%;
  2214. padding: 5px 0 5px 0;
  2215. border-bottom: 1px solid #cad1dc;
  2216. .fileBox {
  2217. display: flex;
  2218. flex-direction: row;
  2219. flex-wrap: nowrap;
  2220. justify-content: space-between;
  2221. align-items: center;
  2222. .fileBoxLeft {
  2223. cursor: pointer;
  2224. display: flex;
  2225. flex-direction: row;
  2226. flex-wrap: nowrap;
  2227. align-items: center;
  2228. .chapter_upload_l_i3 {
  2229. width: 15px;
  2230. height: 15px;
  2231. background-repeat: no-repeat;
  2232. background-size: 100% 100%;
  2233. background-image: url("../../../assets/img/u_video.png");
  2234. }
  2235. .titName {
  2236. width: calc(100% - 15px);
  2237. white-space: nowrap;
  2238. overflow: hidden;
  2239. text-overflow: ellipsis;
  2240. word-break: break-word;
  2241. text-align: left;
  2242. margin-left: 10px;
  2243. max-width: 800px;
  2244. }
  2245. }
  2246. .fileBoxRight {
  2247. cursor: pointer;
  2248. display: flex;
  2249. flex-direction: row;
  2250. flex-wrap: nowrap;
  2251. align-items: center;
  2252. .chapter_upload_ud {
  2253. display: flex;
  2254. flex-direction: row;
  2255. justify-content: center;
  2256. margin: 0 10px 0 0;
  2257. .chapter_upload_up {
  2258. margin-right: 10px !important;
  2259. }
  2260. .chapter_upload_down,
  2261. .chapter_upload_up {
  2262. width: 20px;
  2263. height: 20px;
  2264. background: #e4eaf2;
  2265. cursor: pointer;
  2266. margin: 0 auto;
  2267. border-radius: 5px;
  2268. display: flex;
  2269. justify-content: center;
  2270. align-items: center;
  2271. }
  2272. }
  2273. .chapter_upload_up::after,
  2274. .chapter_upload_down::after {
  2275. content: "";
  2276. background-image: url("../../../assets/img/downBtn.png");
  2277. width: 13px;
  2278. height: 13px;
  2279. background-size: 100% 100%;
  2280. display: block;
  2281. }
  2282. .chapter_upload_up::after {
  2283. background-image: url("../../../assets/img/upBtn.png") !important;
  2284. }
  2285. .chapter_upload_ic_edit {
  2286. width: 18px;
  2287. height: 18px;
  2288. background-repeat: no-repeat;
  2289. background-size: 100% 100%;
  2290. margin-right: 10px;
  2291. background-image: url("../../../assets/img/edit_u.png");
  2292. }
  2293. .chapter_upload_ic_r {
  2294. width: 18px;
  2295. height: 18px;
  2296. background-repeat: no-repeat;
  2297. background-size: 100% 100%;
  2298. background-image: url("../../../assets/img/delete_u.png");
  2299. }
  2300. }
  2301. }
  2302. }
  2303. .masking-out {
  2304. width: 100px;
  2305. height: 135px;
  2306. position: absolute;
  2307. top: 0;
  2308. left: 0;
  2309. display: none;
  2310. border-radius: 5%;
  2311. background: #00000053;
  2312. .delete {
  2313. cursor: pointer;
  2314. margin-left: 50%;
  2315. margin-top: 50%;
  2316. transform: translate(-50%, -50%);
  2317. }
  2318. .delete:hover {
  2319. color: #fff;
  2320. }
  2321. }
  2322. .fileBlock:hover .masking-out {
  2323. display: block;
  2324. }
  2325. }
  2326. p {
  2327. text-align: left;
  2328. }
  2329. :deep(.el-textarea__inner) {
  2330. border: none;
  2331. resize: none;
  2332. font-size: 18px;
  2333. }
  2334. }
  2335. }
  2336. .ending {
  2337. margin-left: 30px;
  2338. p {
  2339. line-height: 1.5em;
  2340. }
  2341. }
  2342. .qpText {
  2343. position: absolute;
  2344. top: 10px;
  2345. left: 10px;
  2346. max-height: 260px;
  2347. text-align: left;
  2348. overflow: auto;
  2349. }
  2350. .qpText::-webkit-scrollbar-track-piece {
  2351. background-color: #f8f8f800;
  2352. }
  2353. .qpText::-webkit-scrollbar {
  2354. width: 6px;
  2355. transition: all 2s;
  2356. }
  2357. .qpText::-webkit-scrollbar-thumb {
  2358. background-color: #929292;
  2359. border-radius: 100px;
  2360. }
  2361. .qpText::-webkit-scrollbar-thumb:hover {
  2362. background-color: #bbb;
  2363. }
  2364. .qpText::-webkit-scrollbar-corner {
  2365. background-color: rgba(255, 255, 255, 0);
  2366. }
  2367. </style>