index.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637
  1. <template>
  2. <StudyLayout>
  3. <div class="grid h-full w-full grid-cols-2 gap-6 overflow-hidden p-6">
  4. <div
  5. class="col-span-1 flex h-full flex-col overflow-hidden rounded-xl bg-white shadow-md"
  6. >
  7. <div class="bg-[var(--czr-main-color)]/80 p-4 text-white">
  8. <div class="flex items-center text-xl font-bold">
  9. <i class="fas fa-cubes mr-2"></i>
  10. 板块提升
  11. <div
  12. class="subject-questions-btn bg-subject-color ml-auto flex items-center rounded-full px-3 py-1 text-sm"
  13. @click="$router.push({ name: 'chinese-question' })"
  14. >
  15. <i class="fas fa-question-circle mr-1"></i>
  16. <span>更多</span>
  17. </div>
  18. </div>
  19. </div>
  20. <!-- 图表容器 -->
  21. <div class="flex-1 overflow-y-auto p-4">
  22. <!-- 图表切换标签 -->
  23. <div class="mt-2 mb-4 flex space-x-2">
  24. <button
  25. :class="
  26. state.type === 1
  27. ? 'bg-[var(--czr-main-color)] text-white'
  28. : 'bg-gray-100 text-gray-600'
  29. "
  30. class="chart-tab rounded-full px-3 py-1 text-sm"
  31. @click="state.type = 1"
  32. >
  33. 知识点掌握
  34. </button>
  35. <button
  36. :class="
  37. state.type === 2
  38. ? 'bg-[var(--czr-main-color)] text-white'
  39. : 'bg-gray-100 text-gray-600'
  40. "
  41. class="chart-tab rounded-full px-3 py-1 text-sm"
  42. @click="state.type = 2"
  43. >
  44. 成绩趋势
  45. </button>
  46. <button
  47. :class="
  48. state.type === 3
  49. ? 'bg-[var(--czr-main-color)] text-white'
  50. : 'bg-gray-100 text-gray-600'
  51. "
  52. class="chart-tab rounded-full px-3 py-1 text-sm"
  53. @click="state.type = 3"
  54. >
  55. 练习完成度
  56. </button>
  57. </div>
  58. <!-- 知识点掌握情况图表 -->
  59. <div class="mb-6 h-[300px]">
  60. <chart1 v-if="state.type === 1" />
  61. <chart2 v-if="state.type === 2" />
  62. <chart3 v-if="state.type === 3" />
  63. </div>
  64. <!-- 统计卡片 -->
  65. <div class="mt-4 grid grid-cols-2 gap-4 md:grid-cols-4">
  66. <div
  67. class="stat-card rounded-lg border-l-4 border-blue-500 bg-gray-50 p-3"
  68. >
  69. <div class="text-xs text-gray-500">总练习数</div>
  70. <div class="mt-1 text-2xl font-bold text-gray-800">128</div>
  71. <div class="mt-1 text-xs text-green-500">
  72. <i class="fas fa-arrow-up"></i> 12% 较上月
  73. </div>
  74. </div>
  75. <div
  76. class="stat-card rounded-lg border-l-4 border-green-500 bg-gray-50 p-3"
  77. >
  78. <div class="text-xs text-gray-500">正确率</div>
  79. <div class="mt-1 text-2xl font-bold text-gray-800">85%</div>
  80. <div class="mt-1 text-xs text-green-500">
  81. <i class="fas fa-arrow-up"></i> 3% 较上月
  82. </div>
  83. </div>
  84. <div
  85. class="stat-card rounded-lg border-l-4 border-yellow-500 bg-gray-50 p-3"
  86. >
  87. <div class="text-xs text-gray-500">知识点掌握</div>
  88. <div class="mt-1 text-2xl font-bold text-gray-800">78%</div>
  89. <div class="mt-1 text-xs text-red-500">
  90. <i class="fas fa-arrow-down"></i> 2% 较上月
  91. </div>
  92. </div>
  93. <div
  94. class="stat-card rounded-lg border-l-4 border-purple-500 bg-gray-50 p-3"
  95. >
  96. <div class="text-xs text-gray-500">平均成绩</div>
  97. <div class="mt-1 text-2xl font-bold text-gray-800">86分</div>
  98. <div class="mt-1 text-xs text-green-500">
  99. <i class="fas fa-arrow-up"></i> 5分 较上月
  100. </div>
  101. </div>
  102. </div>
  103. <!-- 薄弱知识点提示 -->
  104. <div
  105. class="mt-6 rounded-lg border border-yellow-100 bg-yellow-50 p-3"
  106. >
  107. <div class="flex items-center font-semibold text-gray-800">
  108. <i class="fas fa-lightbulb mr-2 text-yellow-500"></i>
  109. 学习建议
  110. </div>
  111. <div class="mt-2 text-sm text-gray-600">
  112. 根据你的学习数据,建议重点加强
  113. <span class="font-medium text-red-500">诗歌鉴赏</span> 和
  114. <span class="font-medium text-red-500">文言文</span> 部分的练习。
  115. 这两个知识点的掌握程度低于你的平均水平,可通过专项练习提升。
  116. </div>
  117. <button
  118. class="text-subject-color mt-3 flex items-center text-sm hover:underline"
  119. >
  120. <i class="fas fa-graduation-cap mr-1"></i>
  121. 查看推荐练习
  122. </button>
  123. </div>
  124. </div>
  125. </div>
  126. <div class="col-span-1 flex flex-col gap-6 overflow-hidden px-0.5">
  127. <div
  128. class="flex flex-1 flex-col overflow-hidden rounded-xl bg-white shadow-md"
  129. >
  130. <div class="bg-[var(--czr-main-color)]/80 p-4 text-white">
  131. <div class="relative flex items-center text-xl font-bold">
  132. <i class="fas fa-calendar-alt mr-2"></i>
  133. 考形训练
  134. <div class="absolute right-2 ml-auto flex">
  135. <q-select
  136. class="select ml-4 w-[120px]"
  137. rounded
  138. standout="focus"
  139. v-model="state.query.p1"
  140. :options="[
  141. { label: '近三个月', value: '近三个月' },
  142. { label: '本学期', value: '本学期' },
  143. { label: '上学期', value: '上学期' },
  144. { label: '本年度', value: '本年度' },
  145. { label: '全部', value: '全部' },
  146. ]"
  147. :dense="true"
  148. >
  149. </q-select>
  150. <q-select
  151. class="select ml-4 w-[120px]"
  152. rounded
  153. standout="focus"
  154. v-model="state.query.p2"
  155. :options="[
  156. { label: '全部类型', value: '全部类型' },
  157. { label: '周测', value: '周测' },
  158. { label: '月考', value: '月考' },
  159. { label: '期中考试', value: '期中考试' },
  160. { label: '期末考试', value: '期末考试' },
  161. ]"
  162. :dense="true"
  163. >
  164. </q-select>
  165. </div>
  166. <!-- <div-->
  167. <!-- class="ml-auto flex space-x-2 text-xs font-normal text-gray-800"-->
  168. <!-- >-->
  169. <!-- <div class="relative">-->
  170. <!-- <select-->
  171. <!-- class="focus:ring-subject-color/50 appearance-none rounded-lg bg-gray-100 py-1.5 pr-8 pl-3 text-sm focus:ring-2 focus:outline-none"-->
  172. <!-- >-->
  173. <!-- <option value="recent">最近三个月</option>-->
  174. <!-- <option value="this_term">本学期</option>-->
  175. <!-- <option value="last_term">上学期</option>-->
  176. <!-- <option value="this_year">本年度</option>-->
  177. <!-- <option value="all">全部</option>-->
  178. <!-- </select>-->
  179. <!-- <div-->
  180. <!-- class="pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-gray-500"-->
  181. <!-- >-->
  182. <!-- <i class="fas fa-chevron-down text-xs"></i>-->
  183. <!-- </div>-->
  184. <!-- </div>-->
  185. <!-- <div class="relative">-->
  186. <!-- <select-->
  187. <!-- class="focus:ring-subject-color/50 appearance-none rounded-lg bg-gray-100 py-1.5 pr-8 pl-3 text-sm focus:ring-2 focus:outline-none"-->
  188. <!-- >-->
  189. <!-- <option value="all">全部类型</option>-->
  190. <!-- <option value="weekly">周测</option>-->
  191. <!-- <option value="monthly">月考</option>-->
  192. <!-- <option value="midterm">期中考试</option>-->
  193. <!-- <option value="final">期末考试</option>-->
  194. <!-- </select>-->
  195. <!-- <div-->
  196. <!-- class="pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-gray-500"-->
  197. <!-- >-->
  198. <!-- <i class="fas fa-chevron-down text-xs"></i>-->
  199. <!-- </div>-->
  200. <!-- </div>-->
  201. <!-- </div>-->
  202. </div>
  203. </div>
  204. <!-- 时间轴布局的考试记录 -->
  205. <div class="flex-1 overflow-y-auto p-6">
  206. <div class="timeline-date">2023年12月</div>
  207. <div class="exam-item mb-3 rounded-lg border border-gray-300 p-3">
  208. <div class="mb-2 flex items-start justify-between">
  209. <div>
  210. <div class="flex items-center font-semibold">
  211. <span
  212. class="bg-exam-weekly mr-2 h-2 w-2 rounded-full"
  213. ></span>
  214. 周测
  215. </div>
  216. <div class="mt-0.5 text-sm text-gray-500">12月22日</div>
  217. </div>
  218. <span class="text-sm font-medium text-gray-800">88分</span>
  219. </div>
  220. <div class="mt-3 grid grid-cols-2 gap-3 text-sm md:grid-cols-4">
  221. <div class="rounded bg-gray-50 p-2 text-center">
  222. <div class="text-xs text-gray-500">用时</div>
  223. <div class="font-medium text-gray-800">45分钟</div>
  224. </div>
  225. <div class="rounded bg-gray-50 p-2 text-center">
  226. <div class="text-xs text-gray-500">题量</div>
  227. <div class="font-medium text-gray-800">20题</div>
  228. </div>
  229. <div class="rounded bg-gray-50 p-2 text-center">
  230. <div class="text-xs text-gray-500">错题</div>
  231. <div class="font-medium text-red-500">3题</div>
  232. </div>
  233. <div class="rounded bg-gray-50 p-2 text-center">
  234. <div class="text-xs text-gray-500">正确率</div>
  235. <div class="font-medium text-green-500">85%</div>
  236. </div>
  237. </div>
  238. <div class="mt-3">
  239. <div class="mb-1 text-xs text-gray-500">错题类型:</div>
  240. <div class="flex flex-wrap gap-2">
  241. <span
  242. class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
  243. >阅读理解(2)</span
  244. >
  245. <span
  246. class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
  247. >基础知识(1)</span
  248. >
  249. </div>
  250. </div>
  251. <div class="mt-3 flex justify-end">
  252. <button
  253. class="text-subject-color flex items-center text-xs hover:underline"
  254. @click="$router.push({ name: 'chinese-question' })"
  255. >
  256. <i class="fas fa-file-alt mr-1"></i>
  257. 查看详情
  258. </button>
  259. </div>
  260. </div>
  261. <div class="exam-item mb-3 rounded-lg border border-gray-300 p-3">
  262. <div class="mb-2 flex items-start justify-between">
  263. <div>
  264. <div class="flex items-center font-semibold">
  265. <span
  266. class="bg-exam-weekly mr-2 h-2 w-2 rounded-full"
  267. ></span>
  268. 期中
  269. </div>
  270. <div class="mt-0.5 text-sm text-gray-500">12月12日</div>
  271. </div>
  272. <span class="text-sm font-medium text-gray-800">88分</span>
  273. </div>
  274. <div class="mt-3 grid grid-cols-2 gap-3 text-sm md:grid-cols-4">
  275. <div class="rounded bg-gray-50 p-2 text-center">
  276. <div class="text-xs text-gray-500">用时</div>
  277. <div class="font-medium text-gray-800">45分钟</div>
  278. </div>
  279. <div class="rounded bg-gray-50 p-2 text-center">
  280. <div class="text-xs text-gray-500">题量</div>
  281. <div class="font-medium text-gray-800">20题</div>
  282. </div>
  283. <div class="rounded bg-gray-50 p-2 text-center">
  284. <div class="text-xs text-gray-500">错题</div>
  285. <div class="font-medium text-red-500">3题</div>
  286. </div>
  287. <div class="rounded bg-gray-50 p-2 text-center">
  288. <div class="text-xs text-gray-500">正确率</div>
  289. <div class="font-medium text-green-500">85%</div>
  290. </div>
  291. </div>
  292. <div class="mt-3">
  293. <div class="mb-1 text-xs text-gray-500">错题类型:</div>
  294. <div class="flex flex-wrap gap-2">
  295. <span
  296. class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
  297. >阅读理解(2)</span
  298. >
  299. <span
  300. class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
  301. >基础知识(1)</span
  302. >
  303. </div>
  304. </div>
  305. <div class="mt-3 flex justify-end">
  306. <button
  307. class="text-subject-color flex items-center text-xs hover:underline"
  308. @click="$router.push({ name: 'chinese-question' })"
  309. >
  310. <i class="fas fa-file-alt mr-1"></i>
  311. 查看详情
  312. </button>
  313. </div>
  314. </div>
  315. <div class="timeline-date">2023年11月</div>
  316. <div class="exam-item mb-3 rounded-lg border border-gray-300 p-3">
  317. <div class="mb-2 flex items-start justify-between">
  318. <div>
  319. <div class="flex items-center font-semibold">
  320. <span
  321. class="bg-exam-weekly mr-2 h-2 w-2 rounded-full"
  322. ></span>
  323. 周测
  324. </div>
  325. <div class="mt-0.5 text-sm text-gray-500">12月22日</div>
  326. </div>
  327. <span class="text-sm font-medium text-gray-800">88分</span>
  328. </div>
  329. <div class="mt-3 grid grid-cols-2 gap-3 text-sm md:grid-cols-4">
  330. <div class="rounded bg-gray-50 p-2 text-center">
  331. <div class="text-xs text-gray-500">用时</div>
  332. <div class="font-medium text-gray-800">45分钟</div>
  333. </div>
  334. <div class="rounded bg-gray-50 p-2 text-center">
  335. <div class="text-xs text-gray-500">题量</div>
  336. <div class="font-medium text-gray-800">20题</div>
  337. </div>
  338. <div class="rounded bg-gray-50 p-2 text-center">
  339. <div class="text-xs text-gray-500">错题</div>
  340. <div class="font-medium text-red-500">3题</div>
  341. </div>
  342. <div class="rounded bg-gray-50 p-2 text-center">
  343. <div class="text-xs text-gray-500">正确率</div>
  344. <div class="font-medium text-green-500">85%</div>
  345. </div>
  346. </div>
  347. <div class="mt-3">
  348. <div class="mb-1 text-xs text-gray-500">错题类型:</div>
  349. <div class="flex flex-wrap gap-2">
  350. <span
  351. class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
  352. >阅读理解(2)</span
  353. >
  354. <span
  355. class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
  356. >基础知识(1)</span
  357. >
  358. </div>
  359. </div>
  360. <div class="mt-3 flex justify-end">
  361. <button
  362. class="text-subject-color flex items-center text-xs hover:underline"
  363. @click="$router.push({ name: 'chinese-question' })"
  364. >
  365. <i class="fas fa-file-alt mr-1"></i>
  366. 查看详情
  367. </button>
  368. </div>
  369. </div>
  370. <div class="exam-item mb-3 rounded-lg border border-gray-300 p-3">
  371. <div class="mb-2 flex items-start justify-between">
  372. <div>
  373. <div class="flex items-center font-semibold">
  374. <span
  375. class="bg-exam-weekly mr-2 h-2 w-2 rounded-full"
  376. ></span>
  377. 期中
  378. </div>
  379. <div class="mt-0.5 text-sm text-gray-500">12月12日</div>
  380. </div>
  381. <span class="text-sm font-medium text-gray-800">88分</span>
  382. </div>
  383. <div class="mt-3 grid grid-cols-2 gap-3 text-sm md:grid-cols-4">
  384. <div class="rounded bg-gray-50 p-2 text-center">
  385. <div class="text-xs text-gray-500">用时</div>
  386. <div class="font-medium text-gray-800">45分钟</div>
  387. </div>
  388. <div class="rounded bg-gray-50 p-2 text-center">
  389. <div class="text-xs text-gray-500">题量</div>
  390. <div class="font-medium text-gray-800">20题</div>
  391. </div>
  392. <div class="rounded bg-gray-50 p-2 text-center">
  393. <div class="text-xs text-gray-500">错题</div>
  394. <div class="font-medium text-red-500">3题</div>
  395. </div>
  396. <div class="rounded bg-gray-50 p-2 text-center">
  397. <div class="text-xs text-gray-500">正确率</div>
  398. <div class="font-medium text-green-500">85%</div>
  399. </div>
  400. </div>
  401. <div class="mt-3">
  402. <div class="mb-1 text-xs text-gray-500">错题类型:</div>
  403. <div class="flex flex-wrap gap-2">
  404. <span
  405. class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
  406. >阅读理解(2)</span
  407. >
  408. <span
  409. class="mistake-tag rounded-full bg-red-100 px-2 py-0.5 text-xs text-red-800"
  410. >基础知识(1)</span
  411. >
  412. </div>
  413. </div>
  414. <div class="mt-3 flex justify-end">
  415. <button
  416. class="text-subject-color flex items-center text-xs hover:underline"
  417. @click="$router.push({ name: 'chinese-question' })"
  418. >
  419. <i class="fas fa-file-alt mr-1"></i>
  420. 查看详情
  421. </button>
  422. </div>
  423. </div>
  424. </div>
  425. </div>
  426. <div
  427. class="flex flex-col overflow-hidden rounded-xl bg-white shadow-md"
  428. >
  429. <div class="bg-[var(--czr-main-color)]/80 p-4 text-white">
  430. <div class="flex items-center text-xl font-bold">
  431. <i class="fas fa-clock mr-2"></i>
  432. 错题统计
  433. <div
  434. class="subject-questions-btn bg-subject-color ml-auto flex items-center rounded-full px-3 py-1 text-sm"
  435. @click="$router.push({ name: 'chinese-question' })"
  436. >
  437. <i class="fas fa-question-circle mr-1"></i>
  438. <span>查看详情</span>
  439. </div>
  440. </div>
  441. </div>
  442. <div class="flex flex-col p-4">
  443. <div class="flex gap-4">
  444. <div
  445. class="flex flex-1 items-center justify-between rounded-lg bg-gray-50 p-3"
  446. >
  447. <div class="flex items-center">
  448. <div
  449. class="mr-3 flex h-10 w-10 items-center justify-center rounded-full bg-blue-100"
  450. >
  451. <i class="fas fa-clipboard-list text-blue-600"></i>
  452. </div>
  453. <div>
  454. <div class="text-sm text-gray-500">本学科总做题数</div>
  455. <div class="text-lg font-bold">246题</div>
  456. </div>
  457. </div>
  458. </div>
  459. <div
  460. class="flex flex-1 items-center justify-between rounded-lg bg-gray-50 p-3"
  461. >
  462. <div class="flex items-center">
  463. <div
  464. class="mr-3 flex h-10 w-10 items-center justify-center rounded-full bg-red-100"
  465. >
  466. <i class="fas fa-times-circle text-red-600"></i>
  467. </div>
  468. <div>
  469. <div class="text-sm text-gray-500">错题数</div>
  470. <div class="text-lg font-bold">59题</div>
  471. </div>
  472. </div>
  473. </div>
  474. <div
  475. class="flex flex-1 items-center justify-between rounded-lg bg-gray-50 p-3"
  476. >
  477. <div class="flex items-center">
  478. <div
  479. class="mr-3 flex h-10 w-10 items-center justify-center rounded-full bg-green-100"
  480. >
  481. <i class="fas fa-check-circle text-green-600"></i>
  482. </div>
  483. <div>
  484. <div class="text-sm text-gray-500">正确率</div>
  485. <div class="text-lg font-bold">76%</div>
  486. </div>
  487. </div>
  488. </div>
  489. </div>
  490. <div class="mt-4 border-t border-gray-100 pt-4">
  491. <div class="mb-3 text-sm font-medium">错题最多的知识点</div>
  492. <div class="flex flex-wrap gap-2">
  493. <span
  494. class="mistake-tag rounded-full bg-red-100 px-2 py-1 text-xs text-red-800"
  495. >文言文虚词 (12题)</span
  496. >
  497. <span
  498. class="mistake-tag rounded-full bg-red-100 px-2 py-1 text-xs text-red-800"
  499. >现代文阅读理解 (9题)</span
  500. >
  501. <span
  502. class="mistake-tag rounded-full bg-red-100 px-2 py-1 text-xs text-red-800"
  503. >诗歌鉴赏 (7题)</span
  504. >
  505. </div>
  506. </div>
  507. </div>
  508. </div>
  509. </div>
  510. </div>
  511. </StudyLayout>
  512. </template>
  513. <script setup lang="ts">
  514. import { onMounted, reactive } from 'vue'
  515. import StudyLayout from '@/views/study/components/study-layout.vue'
  516. import chart1 from './chart-1.vue'
  517. import chart2 from './chart-2.vue'
  518. import chart3 from './chart-3.vue'
  519. const state: any = reactive({
  520. type: 1,
  521. query: {
  522. p1: '近三个月',
  523. p2: '全部类型',
  524. },
  525. })
  526. onMounted(() => {})
  527. </script>
  528. <style lang="scss" scoped>
  529. .subject-questions-btn {
  530. transition: all 0.2s ease;
  531. }
  532. .subject-questions-btn:hover {
  533. background-color: var(--czr-main-color);
  534. transform: translateY(-2px);
  535. }
  536. .stat-card {
  537. transition: all 0.3s ease;
  538. }
  539. .stat-card:hover {
  540. transform: translateY(-5px);
  541. box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1);
  542. }
  543. .exam-item {
  544. transition: all 0.2s ease;
  545. position: relative;
  546. }
  547. .exam-item:hover {
  548. background-color: rgba(67, 97, 238, 0.05);
  549. }
  550. .mistake-tag {
  551. cursor: pointer;
  552. transition: all 0.2s ease;
  553. }
  554. .mistake-tag:hover {
  555. background-color: rgba(239, 68, 68, 0.2);
  556. transform: scale(1.05);
  557. }
  558. .progress-ring {
  559. transform: rotate(-90deg);
  560. width: 40px;
  561. height: 40px;
  562. }
  563. .progress-ring-circle {
  564. stroke-dasharray: 100;
  565. stroke-dashoffset: 100;
  566. transition: stroke-dashoffset 0.5s ease;
  567. }
  568. /* 时间轴样式 */
  569. .timeline {
  570. position: relative;
  571. padding-left: 2rem;
  572. }
  573. .timeline::before {
  574. content: '';
  575. position: absolute;
  576. left: 0.5rem;
  577. top: 0;
  578. bottom: 0;
  579. width: 2px;
  580. background-color: #e5e7eb;
  581. }
  582. .timeline-date-group {
  583. margin-bottom: 1.5rem;
  584. }
  585. .timeline-date {
  586. font-weight: 600;
  587. color: #6b7280;
  588. margin-bottom: 0.5rem;
  589. display: flex;
  590. align-items: center;
  591. }
  592. .timeline-date::before {
  593. content: '';
  594. width: 1rem;
  595. height: 1rem;
  596. border-radius: 50%;
  597. background-color: white;
  598. border: 2px solid #4361ee;
  599. margin-right: 0.5rem;
  600. z-index: 10;
  601. position: relative;
  602. }
  603. :deep(.select) {
  604. .ellipsis {
  605. color: #ffffff;
  606. }
  607. .q-select__dropdown-icon {
  608. color: #ffffff;
  609. }
  610. .focus {
  611. background: rgba(0, 0, 0, 0.1);
  612. }
  613. }
  614. </style>