raceOverview.vue 45 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534
  1. <template>
  2. <!-- 项目概况 -->
  3. <div class="pb_content">
  4. <div class="race_content_body">
  5. <div class="raceBox">
  6. <div class="stepBg">
  7. <!-- <div class="steps">
  8. <div>
  9. <img src="../../../../assets/icon/race/progress.png" alt="" />
  10. </div>
  11. <div class="stepRightNav">
  12. <div>项目简介</div>
  13. <div>说明</div>
  14. </div>
  15. </div> -->
  16. <div class="steps">
  17. <div>
  18. <img src="../../../../assets/icon/race/progress.png" alt="" />
  19. </div>
  20. <div class="stepRightNav" @click="jump('first')">
  21. <div>驱动问题</div>
  22. <div class="isFinishCss" v-if="raceOver.driQuestion.brief != ''">
  23. <div class="isFinish">
  24. <img src="../../../../assets/icon/race/finish.png" alt="" />
  25. </div>
  26. <div>已填写</div>
  27. </div>
  28. </div>
  29. </div>
  30. <div class="steps">
  31. <div>
  32. <img src="../../../../assets/icon/race/progress.png" alt="" />
  33. </div>
  34. <div class="stepRightNav" @click="jump('second')">
  35. <div>学习目标</div>
  36. <div class="isFinishCss" v-if="raceOver.tarDesign.brief != ''">
  37. <div class="isFinish">
  38. <img src="../../../../assets/icon/race/finish.png" alt="" />
  39. </div>
  40. <div>已填写</div>
  41. </div>
  42. </div>
  43. </div>
  44. <div class="steps">
  45. <div>
  46. <img src="../../../../assets/icon/race/progress.png" alt="" />
  47. </div>
  48. <div class="stepRightNav" @click="jump('third')">
  49. <div>评价设计</div>
  50. <div class="isFinishCss" v-if="raceOver.actiDesign.brief != ''">
  51. <div class="isFinish">
  52. <img src="../../../../assets/icon/race/finish.png" alt="" />
  53. </div>
  54. <div>已填写</div>
  55. </div>
  56. </div>
  57. </div>
  58. <!-- <div class="steps">
  59. <div>
  60. <img src="../../../../assets/icon/race/progress.png" alt="" />
  61. </div>
  62. <div class="stepRightNav">
  63. <div>平台案例实施(选填)</div>
  64. <div>协同人员</div>
  65. </div>
  66. </div>
  67. <div class="steps">
  68. <div>
  69. <img src="../../../../assets/icon/race/progress.png" alt="" />
  70. </div>
  71. <div class="stepRightNav">
  72. <div>案例评审</div>
  73. <div>评审状态、反馈</div>
  74. </div>
  75. </div> -->
  76. </div>
  77. <div class="right">
  78. <div class="whiteBg">
  79. <div class="firstTop">
  80. <div class="right_title" id="first">驱动问题</div>
  81. <!-- <div class="rightNav">
  82. 可包括阶段性问题和学科问题:阶段性问题是指在核心问题解决的不同阶段,通过提出驱动性问题,明确阶段子任务。学科问题是指从不同学科的角度以及分解和提出要研究解决的主要问题。
  83. </div> -->
  84. </div>
  85. <div class="basic_box1">
  86. <div class="editorCss">
  87. <editor-bar
  88. v-model="raceOver.driQuestion.brief"
  89. @change="upRaceOver"
  90. :placeholder="'可包括阶段性问题和学科问题:阶段性问题是指在核心问题解决的不同阶段,通过提出驱动性问题,明确阶段子任务。学科问题是指从不同学科的角度以及分解和提出要研究解决的主要问题。'"
  91. ></editor-bar>
  92. <div
  93. class="fullCss"
  94. @click="
  95. fullTools(
  96. raceOver.driQuestion.brief,
  97. 1,
  98. '可包括阶段性问题和学科问题:阶段性问题是指在核心问题解决的不同阶段,通过提出驱动性问题,明确阶段子任务。学科问题是指从不同学科的角度以及分解和提出要研究解决的主要问题。'
  99. )
  100. "
  101. >
  102. 全屏编辑
  103. <!-- <img
  104. src="../../../../assets/full.png"
  105. class="full"
  106. @click="
  107. fullTools(
  108. raceOver.driQuestion.brief,
  109. 1,
  110. '可包括阶段性问题和学科问题:阶段性问题是指在核心问题解决的不同阶段,通过提出驱动性问题,明确阶段子任务。学科问题是指从不同学科的角度以及分解和提出要研究解决的主要问题。'
  111. )
  112. "
  113. /> -->
  114. </div>
  115. </div>
  116. <div>
  117. <div class="basic_box">
  118. <!-- <div class="lineBox">
  119. <div class="lineTitle">附件内容</div>
  120. <div class="strLine"></div>
  121. </div> -->
  122. <div>
  123. <div
  124. class="add_chapters_box"
  125. v-if="
  126. raceOver.driQuestion.data &&
  127. raceOver.driQuestion.data.length == 0
  128. "
  129. ></div>
  130. <div
  131. v-else
  132. class="add_chapters_box"
  133. style="display: flex; flex-direction: column"
  134. >
  135. <div
  136. class="chapter_upload"
  137. v-for="(item, index) in raceOver.driQuestion.data"
  138. :key="item.id"
  139. >
  140. <div class="chapter_upload_t"></div>
  141. <div class="chapter_upload_o">
  142. <div class="chapter_upload_l">
  143. <div
  144. v-if="item.type == 2"
  145. class="chapter_upload_l_i1"
  146. ></div>
  147. <div
  148. v-if="item.type == 1 || item.type == 3"
  149. class="chapter_upload_l_i5"
  150. ></div>
  151. </div>
  152. <div class="chapter_upload_ic">
  153. <div class="chapter_upload_ic_l"></div>
  154. <div
  155. class="chapter_upload_ic_r"
  156. @click.stop="deleteChapterData($event, index, 0)"
  157. >
  158. <div></div>
  159. </div>
  160. </div>
  161. <div class="chapter_upload_n">
  162. <input
  163. class="first"
  164. v-if="item.type == 1 || item.type == 3"
  165. :placeholder="item.name"
  166. />
  167. <input
  168. class="first"
  169. v-if="item.type == 2"
  170. :placeholder="item.name"
  171. />
  172. <div class="chapter_upload_ud">
  173. <div class="chapter_upload_up"></div>
  174. <div class="chapter_upload_down"></div>
  175. </div>
  176. </div>
  177. </div>
  178. </div>
  179. </div>
  180. </div>
  181. <div class="add_info_box">
  182. <div class="upTips">
  183. <button class="info_btn" @click="addImg($event)">
  184. 上传附件
  185. <input
  186. type="file"
  187. accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document,video/mp4, video/quicktime, video/x-msvideo,image/*"
  188. style="display: none"
  189. @change="beforeUpload($event, null, 0)"
  190. />
  191. </button>
  192. <div>
  193. 上传文件PPT、Word大小限制为10M,Excel、PDF上传大小限制为5M,其他文件不限制大小。
  194. </div>
  195. </div>
  196. </div>
  197. <div v-if="raceOver.driQuestion.data.proVisible" class="mask">
  198. <div class="progressBox">
  199. <div class="lbox">
  200. <img
  201. src="../../../../assets/loading.gif"
  202. />上传中,请稍后
  203. </div>
  204. <el-progress
  205. :text-inside="true"
  206. :stroke-width="20"
  207. :percentage="
  208. raceOver.driQuestion.data.progress
  209. ? raceOver.driQuestion.data.progress
  210. : 0
  211. "
  212. style="width: 80%"
  213. ></el-progress>
  214. </div>
  215. </div>
  216. </div>
  217. </div>
  218. </div>
  219. </div>
  220. <div class="whiteBg">
  221. <div class="firstTop">
  222. <div class="right_title" id="second">学习目标</div>
  223. <!-- <div class="rightNav">
  224. 学习目标提倡用核心素养来分类概括再描述,具体表述时应行为化、具体化、操作化,可以用“通过什么,达到什么,培养什么”的句式来进行表述
  225. </div> -->
  226. </div>
  227. <div class="basic_box1">
  228. <div class="editorCss">
  229. <editor-bar
  230. v-model="raceOver.tarDesign.brief"
  231. @change="upRaceOver"
  232. :placeholder="'学习目标提倡用核心素养来分类概括再描述,具体表述时应行为化、具体化、操作化,可以用“通过什么,达到什么,培养什么”的句式来进行表述'"
  233. ></editor-bar>
  234. <div
  235. class="fullCss"
  236. @click="
  237. fullTools(
  238. raceOver.tarDesign.brief,
  239. 2,
  240. '学习目标提倡用核心素养来分类概括再描述,具体表述时应行为化、具体化、操作化,可以用“通过什么,达到什么,培养什么”的句式来进行表述'
  241. )
  242. "
  243. >
  244. 全屏编辑
  245. <!-- <img
  246. src="../../../../assets/full.png"
  247. class="full"
  248. @click="
  249. fullTools(
  250. raceOver.tarDesign.brief,
  251. 2,
  252. '学习目标提倡用核心素养来分类概括再描述,具体表述时应行为化、具体化、操作化,可以用“通过什么,达到什么,培养什么”的句式来进行表述'
  253. )
  254. "
  255. /> -->
  256. </div>
  257. </div>
  258. <div>
  259. <div class="basic_box">
  260. <div class="lineBox">
  261. <div class="lineTitle">附件内容</div>
  262. <div class="strLine"></div>
  263. </div>
  264. <div>
  265. <div
  266. class="add_chapters_box"
  267. v-if="
  268. raceOver.tarDesign.data &&
  269. raceOver.tarDesign.data.length == 0
  270. "
  271. ></div>
  272. <div
  273. v-else
  274. class="add_chapters_box"
  275. style="display: flex; flex-direction: column"
  276. >
  277. <div
  278. class="chapter_upload"
  279. v-for="(item1, index1) in raceOver.tarDesign.data"
  280. :key="item1.id"
  281. >
  282. <div class="chapter_upload_t"></div>
  283. <div class="chapter_upload_o">
  284. <div class="chapter_upload_l">
  285. <div
  286. v-if="item1.type == 2"
  287. class="chapter_upload_l_i1"
  288. ></div>
  289. <div
  290. v-if="item1.type == 1 || item1.type == 3"
  291. class="chapter_upload_l_i5"
  292. ></div>
  293. </div>
  294. <div class="chapter_upload_ic">
  295. <div class="chapter_upload_ic_l"></div>
  296. <div
  297. class="chapter_upload_ic_r"
  298. @click.stop="deleteChapterData($event, index1, 1)"
  299. >
  300. <div></div>
  301. </div>
  302. </div>
  303. <div class="chapter_upload_n">
  304. <input
  305. class="first"
  306. v-if="item1.type == 1 || item1.type == 3"
  307. :placeholder="item1.name"
  308. />
  309. <input
  310. class="first"
  311. v-if="item1.type == 2"
  312. :placeholder="item1.name"
  313. />
  314. <div class="chapter_upload_ud">
  315. <div class="chapter_upload_up"></div>
  316. <div class="chapter_upload_down"></div>
  317. </div>
  318. </div>
  319. </div>
  320. </div>
  321. </div>
  322. </div>
  323. <div class="add_info_box">
  324. <div class="upTips">
  325. <button class="info_btn" @click="addImg($event)">
  326. 上传附件
  327. <input
  328. type="file"
  329. accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document,video/mp4, video/quicktime, video/x-msvideo,image/*"
  330. style="display: none"
  331. @change="beforeUpload($event, null, 1)"
  332. />
  333. </button>
  334. <div>
  335. 上传文件PPT、Word大小限制为10M,Excel、PDF上传大小限制为5M,其他文件不限制大小。
  336. </div>
  337. </div>
  338. </div>
  339. <div v-if="raceOver.tarDesign.data.proVisible" class="mask">
  340. <div class="progressBox">
  341. <div class="lbox">
  342. <img
  343. src="../../../../assets/loading.gif"
  344. />上传中,请稍后
  345. </div>
  346. <el-progress
  347. :text-inside="true"
  348. :stroke-width="20"
  349. :percentage="
  350. raceOver.tarDesign.data.progress
  351. ? raceOver.tarDesign.data.progress
  352. : 0
  353. "
  354. style="width: 80%"
  355. ></el-progress>
  356. </div>
  357. </div>
  358. </div>
  359. </div>
  360. </div>
  361. </div>
  362. <div class="whiteBg">
  363. <div class="firstTop">
  364. <div class="right_title" id="third">评价设计</div>
  365. <!-- <div class="rightNav">
  366. 项目学习评价方式需要体现过程性评价与总结性评价相结合,积极使用表现性评价。本次征集案例中,需要将学生的作品和报告作为附件呈现作品评价。
  367. </div> -->
  368. </div>
  369. <div class="basic_box1">
  370. <div class="editorCss">
  371. <editor-bar
  372. v-model="raceOver.actiDesign.brief"
  373. @change="upRaceOver"
  374. :placeholder="'项目学习评价方式需要体现过程性评价与总结性评价相结合,积极使用表现性评价。本次征集案例中,需要将学生的作品和报告作为附件呈现作品评价。'"
  375. ></editor-bar>
  376. <div
  377. class="fullCss"
  378. @click="
  379. fullTools(
  380. raceOver.actiDesign.brief,
  381. 3,
  382. '项目学习评价方式需要体现过程性评价与总结性评价相结合,积极使用表现性评价。本次征集案例中,需要将学生的作品和报告作为附件呈现作品评价。'
  383. )
  384. "
  385. >
  386. 全屏编辑
  387. <!-- <img
  388. src="../../../../assets/full.png"
  389. class="full"
  390. @click="
  391. fullTools(
  392. raceOver.actiDesign.brief,
  393. 3,
  394. '项目学习评价方式需要体现过程性评价与总结性评价相结合,积极使用表现性评价。本次征集案例中,需要将学生的作品和报告作为附件呈现作品评价。'
  395. )
  396. "
  397. /> -->
  398. </div>
  399. </div>
  400. <div>
  401. <div class="basic_box">
  402. <div class="lineBox">
  403. <div class="lineTitle">附件内容</div>
  404. <div class="strLine"></div>
  405. </div>
  406. <div>
  407. <div
  408. class="add_chapters_box"
  409. v-if="
  410. raceOver.actiDesign.data &&
  411. raceOver.actiDesign.data.length == 0
  412. "
  413. ></div>
  414. <div
  415. v-else
  416. class="add_chapters_box"
  417. style="display: flex; flex-direction: column"
  418. >
  419. <div
  420. class="chapter_upload"
  421. v-for="(item2, index2) in raceOver.actiDesign.data"
  422. :key="item2.id"
  423. >
  424. <div class="chapter_upload_t"></div>
  425. <div class="chapter_upload_o">
  426. <div class="chapter_upload_l">
  427. <div
  428. v-if="item2.type == 2"
  429. class="chapter_upload_l_i1"
  430. ></div>
  431. <div
  432. v-if="item2.type == 1 || item2.type == 3"
  433. class="chapter_upload_l_i5"
  434. ></div>
  435. </div>
  436. <div class="chapter_upload_ic">
  437. <div class="chapter_upload_ic_l"></div>
  438. <div
  439. class="chapter_upload_ic_r"
  440. @click.stop="deleteChapterData($event, index2, 2)"
  441. >
  442. <div></div>
  443. </div>
  444. </div>
  445. <div class="chapter_upload_n">
  446. <input
  447. class="first"
  448. v-if="item2.type == 1 || item2.type == 3"
  449. :placeholder="item2.name"
  450. />
  451. <input
  452. class="first"
  453. v-if="item2.type == 2"
  454. :placeholder="item2.name"
  455. />
  456. <div class="chapter_upload_ud">
  457. <div class="chapter_upload_up"></div>
  458. <div class="chapter_upload_down"></div>
  459. </div>
  460. </div>
  461. </div>
  462. </div>
  463. </div>
  464. </div>
  465. <div class="add_info_box">
  466. <div class="upTips">
  467. <button class="info_btn" @click="addImg($event)">
  468. 上传附件
  469. <input
  470. type="file"
  471. accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document,video/mp4, video/quicktime, video/x-msvideo,image/*"
  472. style="display: none"
  473. @change="beforeUpload($event, null, 2)"
  474. />
  475. </button>
  476. <div>
  477. 上传文件PPT、Word大小限制为10M,Excel、PDF上传大小限制为5M,其他文件不限制大小。
  478. </div>
  479. </div>
  480. </div>
  481. <div v-if="raceOver.actiDesign.data.proVisible" class="mask">
  482. <div class="progressBox">
  483. <div class="lbox">
  484. <img
  485. src="../../../../assets/loading.gif"
  486. />上传中,请稍后
  487. </div>
  488. <el-progress
  489. :text-inside="true"
  490. :stroke-width="20"
  491. :percentage="
  492. raceOver.actiDesign.data.progress
  493. ? raceOver.actiDesign.data.progress
  494. : 0
  495. "
  496. style="width: 80%"
  497. ></el-progress>
  498. </div>
  499. </div>
  500. </div>
  501. </div>
  502. </div>
  503. </div>
  504. </div>
  505. </div>
  506. </div>
  507. <el-dialog
  508. title="添加富文本"
  509. :visible.sync="dialogVisible"
  510. :append-to-body="true"
  511. width="500px"
  512. :before-close="handleClose"
  513. class="dialog_diy"
  514. >
  515. <el-form>
  516. <el-form-item label="文本标题">
  517. <el-input
  518. v-model="AttText.title"
  519. auto-complete="off"
  520. @input="change1"
  521. placeholder="请输入文本标题..."
  522. ></el-input>
  523. </el-form-item>
  524. <div>富文本内容</div>
  525. <editor-bar v-model="AttText.text" @change="change"></editor-bar>
  526. </el-form>
  527. <span slot="footer" class="dialog-footer">
  528. <el-button @click="clearAttText">取 消</el-button>
  529. <el-button type="primary" @click="isAddOrUpdateAttText">确定</el-button>
  530. </span>
  531. </el-dialog>
  532. <el-dialog
  533. title="添加链接"
  534. :visible.sync="dialogVisible1"
  535. :append-to-body="true"
  536. width="500px"
  537. :before-close="handleClose"
  538. class="dialog_diy lineCss"
  539. >
  540. <el-form>
  541. <el-form-item label="链接" :label-width="formLabelWidth">
  542. <span>
  543. <el-input
  544. placeholder="请输入链接"
  545. clearable
  546. v-model="line"
  547. class="add_input"
  548. ></el-input>
  549. </span>
  550. </el-form-item>
  551. </el-form>
  552. <span slot="footer" class="dialog-footer">
  553. <el-button @click="clearLine">取 消</el-button>
  554. <el-button type="primary" @click="isAddOrUpdateLine">确定</el-button>
  555. </span>
  556. </el-dialog>
  557. <el-dialog
  558. title="编辑富文本"
  559. :visible.sync="full"
  560. :append-to-body="true"
  561. width="100%"
  562. :before-close="handleClose"
  563. class="dialog_diy fullEditor"
  564. >
  565. <editor-bar v-model="fullBrief" :placeholder="plaText"></editor-bar>
  566. <span slot="footer" class="dialog-footer">
  567. <el-button @click="full = false">取 消</el-button>
  568. <el-button type="primary" @click="addFullText">确定</el-button>
  569. </span>
  570. </el-dialog>
  571. </div>
  572. </template>
  573. <script>
  574. import EditorBar from "../../../tools/wangEnduit";
  575. export default {
  576. components: { EditorBar },
  577. props: ["raceOverView"],
  578. data() {
  579. return {
  580. chapterData: [],
  581. formLabelWidth: "100px",
  582. noneBtnImg: false,
  583. raceOver: {
  584. driQuestion: { brief: "", data: [] },
  585. tarDesign: { brief: "", data: [] },
  586. actiDesign: { brief: "", data: [] },
  587. },
  588. AttText: {},
  589. task: 0,
  590. AttTextType: 0,
  591. AttTextIndex: 0,
  592. dialogVisible: false,
  593. dialogVisible1: false,
  594. full: false,
  595. line: "",
  596. lineCount: 0,
  597. fullBrief: "",
  598. plaText: "",
  599. isBrief: 0,
  600. };
  601. },
  602. methods: {
  603. handleClose(done) {
  604. done();
  605. },
  606. change(val) {
  607. console.log(val);
  608. },
  609. jump(t) {
  610. var a = document.getElementById(t);
  611. var b = document.getElementsByClassName("right")[0];
  612. b.scrollTop = a.offsetTop - 30;
  613. },
  614. change1(val) {
  615. console.log(val);
  616. this.$forceUpdate();
  617. },
  618. upFullBrief() {},
  619. addImg(e) {
  620. var el = e.currentTarget;
  621. el.getElementsByTagName("input")[0].click();
  622. },
  623. imgChange(file, fileList, type, jT) {
  624. if (jT == 0) {
  625. var _tmp = this.raceOver.driQuestion.data;
  626. } else if (jT == 1) {
  627. var _tmp = this.raceOver.tarDesign.data;
  628. } else {
  629. var _tmp = this.raceOver.actiDesign.data;
  630. }
  631. this.noneBtnImg = _tmp.length >= 1;
  632. },
  633. deleteChapterData(e, i, t) {
  634. e.stopPropagation();
  635. if (t == 0) {
  636. this.raceOver.driQuestion.data.splice(i, 1);
  637. } else if (t == 1) {
  638. this.raceOver.tarDesign.data.splice(i, 1);
  639. } else {
  640. this.raceOver.actiDesign.data.splice(i, 1);
  641. }
  642. },
  643. beforeUpload(event, type, jsonType) {
  644. var file = event.target.files[0];
  645. var credentials = {
  646. accessKeyId: "AKIATLPEDU37QV5CHLMH",
  647. secretAccessKey: "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",
  648. }; //秘钥形式的登录上传
  649. window.AWS.config.update(credentials);
  650. window.AWS.config.region = "cn-northwest-1"; //设置区域
  651. var type1 = type;
  652. var bucket = new window.AWS.S3({ params: { Bucket: "ccrb" } }); //选择桶
  653. var _this = this;
  654. var b = [
  655. "DOC",
  656. "DOCX",
  657. "DOCM",
  658. "DOTM",
  659. "DOTX",
  660. "PPTX",
  661. "PPSX",
  662. "PPT",
  663. "PPS",
  664. "PPTM",
  665. "POTM",
  666. "PPAM",
  667. "POTX",
  668. "PPSM",
  669. ];
  670. var c = ["PDF", "DOT", "DOC", "DOCX", "PPT", "PPTX", "XLSX", "XLS"];
  671. var d = [
  672. "BMP",
  673. "PJP",
  674. "APNG",
  675. "PNG",
  676. "JPG",
  677. "GIF",
  678. "SVG",
  679. "JPEG",
  680. "JPG",
  681. "ICO",
  682. "PGPEG",
  683. "AVIF",
  684. ];
  685. if (
  686. b.indexOf(
  687. file.name
  688. .split(".")
  689. [file.name.split(".").length - 1].toLocaleUpperCase()
  690. ) != -1
  691. ) {
  692. if (file.size / 1024 / 1024 > 10) {
  693. this.$message.error("上传文件大于10M,请重新选择文件!");
  694. return;
  695. }
  696. } else if (
  697. c.indexOf(
  698. file.name
  699. .split(".")
  700. [file.name.split(".").length - 1].toLocaleUpperCase()
  701. ) != -1
  702. ) {
  703. if (file.size / 1024 / 1024 > 5) {
  704. this.$message.error("添加的上传文件大于5M,请重新选择文件!");
  705. return;
  706. }
  707. }
  708. if (
  709. c.indexOf(
  710. file.name
  711. .split(".")
  712. [file.name.split(".").length - 1].toLocaleUpperCase()
  713. ) != -1
  714. ) {
  715. type1 = 1;
  716. } else if (
  717. d.indexOf(
  718. file.name
  719. .split(".")
  720. [file.name.split(".").length - 1].toLocaleUpperCase()
  721. ) != -1
  722. ) {
  723. type1 = 3;
  724. } else {
  725. type1 = 2;
  726. }
  727. if (jsonType == 0) {
  728. _this.raceOver.driQuestion.data.progress = 0;
  729. _this.raceOver.driQuestion.data.proVisible = true;
  730. } else if (jsonType == 1) {
  731. _this.raceOver.tarDesign.data.progress = 0;
  732. _this.raceOver.tarDesign.data.proVisible = true;
  733. } else {
  734. _this.raceOver.actiDesign.data.progress = 0;
  735. _this.raceOver.actiDesign.data.proVisible = true;
  736. }
  737. _this.$forceUpdate();
  738. if (file) {
  739. var params = {
  740. Key:
  741. file.name.split(".")[0] +
  742. new Date().getTime() +
  743. "." +
  744. file.name.split(".")[file.name.split(".").length - 1],
  745. ContentType: file.type,
  746. Body: file,
  747. "Access-Control-Allow-Credentials": "*",
  748. ACL: "public-read",
  749. }; //key可以设置为桶的相抵路径,Body为文件, ACL最好要设置
  750. var options = {
  751. partSize: 2048 * 1024 * 1024,
  752. queueSize: 2,
  753. leavePartsOnError: true,
  754. };
  755. bucket
  756. .upload(params, options)
  757. .on("httpUploadProgress", function (evt) {
  758. //这里可以写进度条
  759. // console.log("Uploaded : " + parseInt((evt.loaded * 80) / evt.total) + '%');
  760. if (jsonType == 0) {
  761. _this.raceOver.driQuestion.data.progress = parseInt(
  762. (evt.loaded * 80) / evt.total
  763. );
  764. } else if (jsonType == 1) {
  765. _this.raceOver.tarDesign.data.progress = parseInt(
  766. (evt.loaded * 80) / evt.total
  767. );
  768. } else {
  769. _this.raceOver.actiDesign.data.progress = parseInt(
  770. (evt.loaded * 80) / evt.total
  771. );
  772. }
  773. })
  774. .send(function (err, data) {
  775. if (jsonType == 0) {
  776. _this.raceOver.driQuestion.data.progress = 100;
  777. } else if (jsonType == 1) {
  778. _this.raceOver.tarDesign.data.progress = 100;
  779. } else {
  780. _this.raceOver.actiDesign.data.progress = 100;
  781. }
  782. setTimeout(() => {
  783. if (jsonType == 0) {
  784. _this.raceOver.driQuestion.data.proVisible = false;
  785. } else if (jsonType == 1) {
  786. _this.raceOver.tarDesign.data.proVisible = false;
  787. } else {
  788. _this.raceOver.actiDesign.data.proVisible = false;
  789. }
  790. _this.$forceUpdate();
  791. }, 1000);
  792. if (err) {
  793. _this.$message.error("上传失败");
  794. } else {
  795. if (jsonType == 0) {
  796. _this.raceOver.driQuestion.data.push({
  797. name: file.name,
  798. url: data.Location,
  799. type: type1,
  800. });
  801. _this.imgChange(null, null, type1, jsonType);
  802. } else if (jsonType == 1) {
  803. _this.raceOver.tarDesign.data.push({
  804. name: file.name,
  805. url: data.Location,
  806. type: type1,
  807. });
  808. _this.imgChange(null, null, type1, jsonType);
  809. } else {
  810. _this.raceOver.actiDesign.data.push({
  811. name: file.name,
  812. url: data.Location,
  813. type: type1,
  814. });
  815. _this.imgChange(null, null, type1, jsonType);
  816. }
  817. console.log(data.Location);
  818. }
  819. });
  820. }
  821. },
  822. upRaceOver() {
  823. this.$emit("upRaceOver", this.raceOver);
  824. },
  825. addAttText(i) {
  826. this.AttText = {
  827. title: "",
  828. text: "",
  829. };
  830. this.task = i;
  831. this.AttTextType = 0;
  832. this.$forceUpdate();
  833. this.dialogVisible = true;
  834. },
  835. clearAttText() {
  836. this.AttText = {
  837. title: "",
  838. text: "",
  839. };
  840. this.dialogVisible = false;
  841. },
  842. isAddOrUpdateAttText() {
  843. if (this.AttTextType == 0) {
  844. this.addAttTextMessage();
  845. } else {
  846. this.updateAttText();
  847. }
  848. },
  849. addAttTextMessage() {
  850. if (this.task == 0) {
  851. this.raceOver.driQuestion.data.push({
  852. name: this.AttText.title,
  853. url: this.AttText.text,
  854. type: 3,
  855. });
  856. this.imgChange(null, null, 3, this.task);
  857. } else if (this.task == 1) {
  858. this.raceOver.tarDesign.data.push({
  859. name: this.AttText.title,
  860. url: this.AttText.text,
  861. type: 3,
  862. });
  863. this.imgChange(null, null, 3, this.task);
  864. } else {
  865. this.raceOver.actiDesign.data.push({
  866. name: this.AttText.title,
  867. url: this.AttText.text,
  868. type: 3,
  869. });
  870. this.imgChange(null, null, 3, this.task);
  871. }
  872. this.dialogVisible = false;
  873. this.upRaceOver();
  874. },
  875. updateAttText() {
  876. if (this.task == 0) {
  877. this.raceOver.driQuestion.data[this.AttTextIndex].name =
  878. this.AttText.title;
  879. this.raceOver.driQuestion.data[this.AttTextIndex].url =
  880. this.AttText.text;
  881. } else if (this.task == 1) {
  882. this.raceOver.tarDesign.data[this.AttTextIndex].name =
  883. this.AttText.title;
  884. this.raceOver.tarDesign.data[this.AttTextIndex].url = this.AttText.text;
  885. } else {
  886. this.raceOver.actiDesign.data[this.AttTextIndex].name =
  887. this.AttText.title;
  888. this.raceOver.actiDesign.data[this.AttTextIndex].url =
  889. this.AttText.text;
  890. }
  891. this.dialogVisible = false;
  892. this.upRaceOver();
  893. },
  894. selectAttText(t, i) {
  895. if (t == 0) {
  896. this.AttText.title = this.raceOver.driQuestion.data[i].name;
  897. this.AttText.text = this.raceOver.driQuestion.data[i].url;
  898. } else if (t == 1) {
  899. this.AttText.title = this.raceOver.tarDesign.data[i].name;
  900. this.AttText.text = this.raceOver.tarDesign.data[i].url;
  901. } else {
  902. this.AttText.title = this.raceOver.actiDesign.data[i].name;
  903. this.AttText.text = this.raceOver.actiDesign.data[i].url;
  904. }
  905. this.task = t;
  906. this.AttTextIndex = i;
  907. this.AttTextType = 1;
  908. this.dialogVisible = true;
  909. },
  910. openLine(i) {
  911. this.line = "";
  912. this.task = i;
  913. this.lineCount = i;
  914. this.lineType = 0;
  915. this.$forceUpdate();
  916. this.dialogVisible1 = true;
  917. },
  918. clearLine() {
  919. this.line = "";
  920. this.dialogVisible1 = false;
  921. },
  922. isAddOrUpdateLine() {
  923. if (this.lineType == 0) {
  924. this.addLine();
  925. } else {
  926. this.updateLine();
  927. }
  928. },
  929. addLine() {
  930. if (this.task == 0) {
  931. this.raceOver.driQuestion.data.push({
  932. name: "链接",
  933. url: this.line,
  934. type: 4,
  935. });
  936. this.imgChange(null, null, 4, this.task);
  937. } else if (this.task == 1) {
  938. this.raceOver.tarDesign.data.push({
  939. name: "链接",
  940. url: this.line,
  941. type: 4,
  942. });
  943. this.imgChange(null, null, 4, this.task);
  944. } else {
  945. this.raceOver.actiDesign.data.push({
  946. name: "链接",
  947. url: this.line,
  948. type: 4,
  949. });
  950. this.imgChange(null, null, 4, this.task);
  951. }
  952. this.dialogVisible1 = false;
  953. this.upRaceOver();
  954. },
  955. updateLine() {
  956. if (this.task == 0) {
  957. this.raceOver.driQuestion.data[this.lineCount].url = this.line;
  958. } else if (this.task == 1) {
  959. this.raceOver.tarDesign.data[this.lineCount].url = this.line;
  960. } else {
  961. this.raceOver.actiDesign.data[this.lineCount].url = this.line;
  962. }
  963. this.dialogVisible1 = false;
  964. this.upRaceOver();
  965. },
  966. selectLine(t, i) {
  967. if (t == 0) {
  968. this.line = this.raceOver.driQuestion.data[i].url;
  969. } else if (t == 1) {
  970. this.line = this.raceOver.tarDesign.data[i].url;
  971. } else {
  972. this.line = this.raceOver.actiDesign.data[i].url;
  973. }
  974. this.task = t;
  975. this.lineCount = i;
  976. this.lineType = 1;
  977. this.dialogVisible1 = true;
  978. },
  979. fullTools(b, t, text) {
  980. this.fullBrief = b;
  981. this.isBrief = t;
  982. this.plaText = text;
  983. this.full = !this.full;
  984. },
  985. addFullText() {
  986. if (this.isBrief == 1) {
  987. this.raceOver.driQuestion.brief = this.fullBrief;
  988. } else if (this.isBrief == 2) {
  989. this.raceOver.tarDesign.brief = this.fullBrief;
  990. } else if (this.isBrief == 3) {
  991. this.raceOver.actiDesign.brief = this.fullBrief;
  992. }
  993. this.isBrief = 0;
  994. this.fullBrief = "";
  995. this.plaText = "";
  996. this.full = !this.full;
  997. this.upRaceOver();
  998. },
  999. },
  1000. created() {
  1001. this.raceOver.driQuestion = this.raceOverView.driQuestion;
  1002. this.raceOver.tarDesign = this.raceOverView.tarDesign;
  1003. this.raceOver.actiDesign = this.raceOverView.actiDesign;
  1004. },
  1005. };
  1006. </script>
  1007. <style scoped>
  1008. @media screen and (max-width: 1280px) {
  1009. .fullCss {
  1010. right: 15% !important;
  1011. }
  1012. .fullEditor >>> .el-dialog__footer {
  1013. padding: 4% 20px 20px !important;
  1014. }
  1015. .upTips {
  1016. align-items: flex-start !important;
  1017. }
  1018. }
  1019. .dialog_diy >>> .el-dialog__header {
  1020. background: #3c3c3c !important;
  1021. padding: 15px 20px;
  1022. }
  1023. .dialog_diy >>> .el-dialog__title {
  1024. color: #fff;
  1025. }
  1026. .pb_content {
  1027. width: 100%;
  1028. height: 100%;
  1029. }
  1030. .race_content_body {
  1031. width: 100%;
  1032. position: relative;
  1033. margin: 0;
  1034. height: 100%;
  1035. }
  1036. .raceBox {
  1037. width: 100%;
  1038. height: 100%;
  1039. display: flex;
  1040. flex-direction: row;
  1041. flex-wrap: nowrap;
  1042. align-items: flex-start;
  1043. }
  1044. .stepBg {
  1045. padding: 80px 0 0 0;
  1046. margin: 0 25px 0 0;
  1047. width: 20%;
  1048. display: flex;
  1049. justify-content: flex-start;
  1050. align-items: center;
  1051. flex-wrap: nowrap;
  1052. background: #fff;
  1053. /* min-height: 800px; */
  1054. height: calc(100% - 80px);
  1055. border-radius: 15px;
  1056. overflow: auto;
  1057. min-width: 260px;
  1058. flex-direction: column;
  1059. font-size: 14px;
  1060. }
  1061. .steps {
  1062. display: flex;
  1063. flex-direction: row;
  1064. flex-wrap: nowrap;
  1065. position: relative;
  1066. width: 210px;
  1067. height: 130px;
  1068. }
  1069. .steps > div:nth-child(1) > img {
  1070. z-index: 9;
  1071. position: relative;
  1072. }
  1073. .stepLeft,
  1074. .isSteps {
  1075. width: 30px;
  1076. height: 30px;
  1077. border-radius: 50%;
  1078. text-align: center;
  1079. line-height: 30px;
  1080. border: 2px solid #eee;
  1081. color: #c0c0c0;
  1082. }
  1083. .isSteps {
  1084. background: #1990ff;
  1085. color: #fff;
  1086. border: none;
  1087. }
  1088. .stepRightNav {
  1089. display: flex;
  1090. flex-direction: column;
  1091. flex-wrap: nowrap;
  1092. justify-content: space-between;
  1093. align-items: flex-start;
  1094. margin: 8px 0 0 10px;
  1095. height: 40px;
  1096. cursor: pointer;
  1097. }
  1098. .stepRightNav:hover {
  1099. color: #999;
  1100. }
  1101. .line,
  1102. .isLine {
  1103. position: absolute;
  1104. width: 5px;
  1105. height: 50px;
  1106. border-left: 1px solid #dadada;
  1107. top: 38px;
  1108. left: 15px;
  1109. }
  1110. .isLine {
  1111. border-left: 1px solid #1d92ff !important;
  1112. }
  1113. .right {
  1114. width: calc(100% - 20%);
  1115. background: rgb(255, 255, 255);
  1116. border-radius: 10px;
  1117. overflow: auto;
  1118. height: 100%;
  1119. border-radius: 15px;
  1120. /* max-height: 800px; */
  1121. }
  1122. .allBox {
  1123. padding: 25px;
  1124. }
  1125. .allBox > div:nth-child(1) {
  1126. color: #0f40f5;
  1127. font-size: 18px;
  1128. font-weight: bold;
  1129. }
  1130. .raceTop > div:nth-child(2) {
  1131. width: 80%;
  1132. margin-top: 10px;
  1133. }
  1134. .titleTop {
  1135. display: flex;
  1136. flex-direction: row;
  1137. flex-wrap: nowrap;
  1138. align-items: center;
  1139. width: 100%;
  1140. }
  1141. .titleTop > div:nth-child(2) {
  1142. width: 82%;
  1143. margin-left: 20px;
  1144. }
  1145. .editorCss {
  1146. width: 90% !important;
  1147. }
  1148. .basic_box {
  1149. position: relative;
  1150. margin: 0;
  1151. min-height: 0;
  1152. width: 90%;
  1153. }
  1154. .basic_box1 {
  1155. margin: 10px auto;
  1156. position: relative;
  1157. padding: 0 20px 0 20px;
  1158. }
  1159. .add_info_box {
  1160. margin: 20px 0;
  1161. }
  1162. .add_info_box button {
  1163. margin: 0 10px 10px 0;
  1164. }
  1165. .add_chapters_box {
  1166. text-align: left;
  1167. background-color: rgb(232 234 237);
  1168. width: 100%;
  1169. padding: 0px 15px;
  1170. border-radius: 15px;
  1171. font-size: 16px;
  1172. box-sizing: border-box;
  1173. position: relative;
  1174. padding: 0 10px 5px 10px;
  1175. height: 125px;
  1176. overflow-y: auto;
  1177. overflow-x: hidden;
  1178. }
  1179. .chapter_upload {
  1180. height: 50px;
  1181. margin-top: 8px;
  1182. position: relative;
  1183. display: flex;
  1184. align-items: center;
  1185. width: 100%;
  1186. min-height: 50px;
  1187. }
  1188. .chapter_upload_t {
  1189. background-color: #fff;
  1190. position: absolute;
  1191. height: 100%;
  1192. top: 0px;
  1193. left: 0px;
  1194. border-radius: 40px;
  1195. box-sizing: border-box;
  1196. box-shadow: 0 0 3px 3px #dfdfdf;
  1197. width: 100%;
  1198. }
  1199. .chapter_upload_o {
  1200. width: 100%;
  1201. height: 100%;
  1202. position: relative;
  1203. z-index: 1;
  1204. display: flex;
  1205. align-items: center;
  1206. }
  1207. .chapter_upload_ic {
  1208. height: 30px;
  1209. float: right;
  1210. cursor: pointer;
  1211. position: absolute;
  1212. width: 45px;
  1213. right: 0;
  1214. top: 0;
  1215. }
  1216. .chapter_upload_ic_l {
  1217. width: 50px;
  1218. height: 50px;
  1219. float: left;
  1220. }
  1221. .chapter_upload_ic_l div {
  1222. width: 30px;
  1223. height: 35px;
  1224. background: url("../../../../assets/icon/icon.png");
  1225. }
  1226. .chapter_upload_ic_r {
  1227. width: 50px;
  1228. height: 50px;
  1229. float: left;
  1230. margin-left: 0px;
  1231. display: flex;
  1232. align-items: center;
  1233. position: absolute;
  1234. }
  1235. .chapter_upload_ic_r div {
  1236. width: 25px;
  1237. height: 25px;
  1238. background-image: url("../../../../assets/delete.png");
  1239. background-size: 100% 100%;
  1240. }
  1241. .chapter_upload_n {
  1242. display: flex;
  1243. text-indent: 10px;
  1244. text-decoration: none;
  1245. text-overflow: ellipsis;
  1246. white-space: nowrap;
  1247. overflow: hidden;
  1248. width: 55%;
  1249. margin-left: 10px;
  1250. cursor: pointer;
  1251. margin-top: 2px;
  1252. }
  1253. .chapter_upload_l_i1 {
  1254. background-image: url("../../../../assets/icon/video.png");
  1255. width: 28px;
  1256. height: 28px;
  1257. background-size: 100% 100%;
  1258. }
  1259. .chapter_upload_l_i5 {
  1260. background-image: url("../../../../assets/icon/word.png");
  1261. width: 24px;
  1262. height: 24px;
  1263. background-size: 100% 100%;
  1264. margin-left: 1px;
  1265. }
  1266. .chapter_upload_l_i8 {
  1267. background-image: url("../../../../assets/icon/line.png");
  1268. width: 24px;
  1269. height: 24px;
  1270. background-size: 100% 100%;
  1271. margin-left: 1px;
  1272. }
  1273. .chapter_upload_ud {
  1274. display: flex;
  1275. flex-direction: column;
  1276. margin-left: 5px;
  1277. justify-content: center;
  1278. z-index: 99;
  1279. }
  1280. .chapter_upload_up {
  1281. background-image: url("../../../../assets/icon/up.png");
  1282. width: 17px;
  1283. height: 15px;
  1284. background-size: 100% 100%;
  1285. cursor: pointer;
  1286. }
  1287. .chapter_upload_down {
  1288. background-image: url("../../../../assets/icon/down.png");
  1289. width: 17px;
  1290. height: 15px;
  1291. margin: 2px auto 0 auto;
  1292. background-size: 100% 100%;
  1293. cursor: pointer;
  1294. }
  1295. .chapter_upload_l {
  1296. padding: 1px 0 0 10px;
  1297. }
  1298. .first {
  1299. border: none;
  1300. outline: none;
  1301. width: 80%;
  1302. min-width: 215px;
  1303. z-index: 99;
  1304. font-size: 14px;
  1305. white-space: nowrap;
  1306. overflow: hidden;
  1307. text-overflow: ellipsis;
  1308. }
  1309. .info_btn {
  1310. color: #fff;
  1311. background-color: #0f7eff;
  1312. padding: 8px 24px;
  1313. font-size: 0.9375rem;
  1314. box-shadow: 0px 1px 3px 0px rgb(0 0 0 / 20%), 0px 2px 2px 0px rgb(0 0 0 / 14%),
  1315. 0px 3px 1px -2px rgb(0 0 0 / 12%);
  1316. min-width: 64px;
  1317. font-weight: 500;
  1318. border-radius: 4px;
  1319. box-sizing: border-box;
  1320. border: none;
  1321. cursor: pointer;
  1322. }
  1323. .info_btn:hover {
  1324. background-color: #4f7cd5 !important;
  1325. }
  1326. .right_title {
  1327. height: 30px;
  1328. font-size: 1.5em;
  1329. font-weight: bold;
  1330. color: #0f7eff;
  1331. width: 10%;
  1332. min-width: 100px;
  1333. }
  1334. .whiteBg {
  1335. background: #fff;
  1336. border-radius: 10px;
  1337. }
  1338. .lineBox {
  1339. display: flex;
  1340. margin: 0 0 20px 0;
  1341. flex-direction: row;
  1342. justify-content: flex-start;
  1343. align-items: center;
  1344. }
  1345. .lineTitle {
  1346. margin-top: 15px;
  1347. width: 110px;
  1348. }
  1349. .strLine {
  1350. width: 85%;
  1351. margin: 0 auto;
  1352. border-top: 1px solid #e5e5e5;
  1353. margin-top: 20px;
  1354. }
  1355. .stepBg .steps:nth-child(1) ::after,
  1356. .stepBg .steps:nth-child(2) ::after {
  1357. content: "";
  1358. height: 100%;
  1359. background: #eee;
  1360. width: 4px;
  1361. position: absolute;
  1362. left: 15px;
  1363. top: calc(50% + (35px / 2));
  1364. transform: translateY(-50%);
  1365. z-index: 1;
  1366. }
  1367. .mask {
  1368. background-color: rgb(0 0 0 / 30%);
  1369. /* position: fixed; */
  1370. position: absolute;
  1371. top: 0;
  1372. left: 0;
  1373. width: 100%;
  1374. height: 100%;
  1375. z-index: 20000;
  1376. display: flex;
  1377. align-items: center;
  1378. justify-content: center;
  1379. }
  1380. .progressBox {
  1381. width: 300px;
  1382. height: 150px;
  1383. background: #fff;
  1384. border-radius: 10px;
  1385. box-shadow: 0 0 6px 1px #bfbfbf;
  1386. display: flex;
  1387. align-items: center;
  1388. justify-content: center;
  1389. flex-direction: column;
  1390. }
  1391. .progressBox .lbox {
  1392. height: 100px;
  1393. font-size: 16px;
  1394. display: flex;
  1395. align-items: center;
  1396. }
  1397. .progressBox .lbox img {
  1398. width: 40px;
  1399. margin-right: 20px;
  1400. }
  1401. .progressBox >>> .el-progress-bar__outer {
  1402. background-color: #d1dfff !important;
  1403. }
  1404. .progressBox .lbox {
  1405. height: 100px;
  1406. font-size: 19px;
  1407. display: flex;
  1408. align-items: center;
  1409. }
  1410. .progressBox .lbox img {
  1411. width: 40px;
  1412. margin-right: 20px;
  1413. }
  1414. .firstTop {
  1415. display: flex;
  1416. flex-direction: row;
  1417. flex-wrap: nowrap;
  1418. align-items: center;
  1419. width: 90%;
  1420. padding: 20px 0 20px 20px;
  1421. }
  1422. .rightNav {
  1423. width: 87%;
  1424. color: #a19f9f;
  1425. }
  1426. .isFinishCss {
  1427. display: flex;
  1428. flex-direction: row;
  1429. flex-wrap: nowrap;
  1430. align-items: flex-end;
  1431. }
  1432. .isFinishCss > div:nth-child(2) {
  1433. margin-left: 5px;
  1434. color: #939393;
  1435. }
  1436. .isFinish {
  1437. width: 16px;
  1438. height: 16px;
  1439. margin-top: 5px;
  1440. }
  1441. .isFinish > img {
  1442. width: 100%;
  1443. height: 100%;
  1444. }
  1445. .full,
  1446. .closeImg {
  1447. height: 22px;
  1448. cursor: pointer;
  1449. background: #000;
  1450. }
  1451. .fullCss {
  1452. font-size: 12px;
  1453. position: absolute;
  1454. right: 14%;
  1455. top: 12px;
  1456. cursor: pointer;
  1457. }
  1458. .fullEditor >>> .text {
  1459. height: 100% !important;
  1460. }
  1461. .fullEditor >>> .el-dialog {
  1462. margin: 0 !important;
  1463. height: 100%;
  1464. }
  1465. .fullEditor >>> .el-dialog__body {
  1466. height: 70%;
  1467. }
  1468. .fullEditor >>> .editor {
  1469. height: 100%;
  1470. }
  1471. .fullEditor >>> .el-dialog__footer {
  1472. padding: 2% 20px 20px !important;
  1473. }
  1474. .upTips {
  1475. display: flex;
  1476. flex-direction: row;
  1477. flex-wrap: nowrap;
  1478. align-items: baseline;
  1479. }
  1480. .upTips > div {
  1481. margin-left: 10px;
  1482. color: #999;
  1483. font-size: 14px;
  1484. }
  1485. </style>