ComplexChoices.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623
  1. <template>
  2. <div class="filter-bar">
  3. <!-- 所选院系 -->
  4. <div class="filter-group">
  5. <span class="filter-group-title">所选院系:</span>
  6. <!-- <a-radio-group v-model:value="selectedDept" >
  7. <a-radio-button v-for="dept in selectedDepts" :key="dept" :value="dept">{{ dept }}</a-radio-button>
  8. </a-radio-group> -->
  9. <a-spin :spinning="spinningSelectedDepts" tip="">
  10. <div style="display: flex; flex-direction: column">
  11. <MyRadioButtonGroup
  12. ref="Dept"
  13. v-show="selectedDepts.length > 0"
  14. v-model="selectedDept"
  15. @change="handleSelectedDept"
  16. >
  17. <MyRadioButtonOffOut
  18. v-for="(item, index) in selectedDepts"
  19. :key="index"
  20. :value="index"
  21. :label="item.name"
  22. :index="index"
  23. ></MyRadioButtonOffOut>
  24. </MyRadioButtonGroup>
  25. <div style="height: 10px"></div>
  26. <MyRadioButtonGroup
  27. ref="Big"
  28. v-show="selectedDeptBigs.length > 0"
  29. v-model="selectedDeptBig"
  30. @change="handleSelectedCourses"
  31. >
  32. <MyRadioButton
  33. v-for="(item, index) in selectedDeptBigs"
  34. :key="index"
  35. :value="index"
  36. :label="item.name"
  37. :index="index"
  38. ></MyRadioButton>
  39. </MyRadioButtonGroup>
  40. <div style="height: 10px"></div>
  41. <MyRadioButtonGroup
  42. ref="Smail"
  43. v-show="selectedDeptSmails.length > 0"
  44. v-model="selectedDeptSmail"
  45. @change="handleSelectedSmails"
  46. >
  47. <MyRadioButton
  48. v-for="(item, index) in selectedDeptSmails"
  49. :key="index"
  50. :value="index"
  51. :label="item.name"
  52. :index="index"
  53. ></MyRadioButton>
  54. </MyRadioButtonGroup>
  55. </div>
  56. </a-spin>
  57. </div>
  58. <div style="height: 10px"></div>
  59. <div class="line"></div>
  60. <div style="height: 10px"></div>
  61. <!-- 所属课程 -->
  62. <!-- <div class="filter-group">
  63. <span class="filter-group-title">所选课程:</span>
  64. <MyRadioButtonGroup ref="Course" v-model="selectedCourse" @change="handleSelectedCourses1">
  65. <MyRadioButton
  66. v-for="(item, index) in selectedCourses"
  67. :key="index"
  68. :value="item"
  69. :label="item"
  70. :index="index"
  71. ></MyRadioButton>
  72. </MyRadioButtonGroup>
  73. </div>
  74. <div style="height: 10px"></div>
  75. <div class="line"></div>
  76. <div style="height: 10px"></div> -->
  77. <!-- 课程类型和课件格式(联动单选) -->
  78. <div class="filter-group">
  79. <span class="filter-group-title">资源类型:</span>
  80. <!-- <a-radio-group v-model:value="selectedType" @change="handleTypeChange">
  81. <a-radio-button v-for="dept in selectedTypes" :key="dept" :value="dept">{{ dept }}</a-radio-button>
  82. </a-radio-group> -->
  83. <a-spin :spinning="spinningSelectedTypesBig" tip="">
  84. <div style="display: flex; flex-direction: column">
  85. <MyRadioButtonGroup
  86. ref="TypeBig"
  87. v-show="selectedTypesBig.length > 0"
  88. v-model="selectedTypeBig"
  89. @change="handleTypeChangeBig"
  90. >
  91. <MyRadioButton
  92. v-for="(item, index) in selectedTypesBig"
  93. :key="index"
  94. :value="index"
  95. :label="item.name"
  96. :index="index"
  97. ></MyRadioButton>
  98. </MyRadioButtonGroup>
  99. <MyRadioButtonGroup
  100. ref="Type"
  101. v-show="selectedTypes.length > 0"
  102. v-model="selectedType"
  103. @change="handleTypeChange"
  104. >
  105. <MyRadioButton
  106. v-for="(item, index) in selectedTypes"
  107. :key="index"
  108. :value="index"
  109. :label="item.name"
  110. :index="index"
  111. ></MyRadioButton>
  112. </MyRadioButtonGroup>
  113. </div>
  114. </a-spin>
  115. </div>
  116. <div style="height: 10px"></div>
  117. <div class="line"></div>
  118. <div style="height: 10px"></div>
  119. <div class="filter-group">
  120. <span class="filter-group-title">课件格式:</span>
  121. <!-- <a-radio-group v-model:value="selectedFormat" @change="handleFormatChange">
  122. <a-radio-button v-for="dept in selectedFormats" :key="dept" :value="dept">{{ dept }}</a-radio-button>
  123. </a-radio-group> -->
  124. <a-spin :spinning="spinningSelectedFormats" tip="">
  125. <MyRadioButtonGroup ref="Format" v-model="selectedFormat" @change="handleFormatChange">
  126. <MyRadioButton
  127. v-for="(item, index) in selectedFormats"
  128. :key="item"
  129. :value="index"
  130. :label="item.fileExtendName"
  131. :index="index"
  132. ></MyRadioButton>
  133. </MyRadioButtonGroup>
  134. </a-spin>
  135. </div>
  136. <div style="height: 10px"></div>
  137. <div class="line"></div>
  138. <div style="height: 10px"></div>
  139. <!-- 已选条件 -->
  140. <div class="filter-group">
  141. <span class="filter-group-title">已选条件:</span>
  142. <div style="display: flex; align-items: center; margin-top: 7px">
  143. <a-tag
  144. v-for="(tag, index) in selectedTagKeys"
  145. style="display: flex; justify-content: center; align-items: center"
  146. :key="index"
  147. closable
  148. @close="handleTagClose(tag, index)"
  149. >
  150. {{ tag.name }}
  151. </a-tag>
  152. <span v-if="selectedTagKeys.length > 0" class="clean" @click="handleTagCloseAll">清除筛选</span>
  153. </div>
  154. </div>
  155. </div>
  156. </template>
  157. <script setup>
  158. import { ref, computed } from 'vue'
  159. import MyRadioButtonGroup from '../components/MyRadioButtonGroup.vue'
  160. import MyRadioButton from '../components/MyRadioButton.vue'
  161. import MyRadioButtonOffOut from '../components/MyRadioButtonOffOut.vue'
  162. import collegeApi from '@/api/college'
  163. import EventBus from '@/utils/EventBus'
  164. import {
  165. addViewCount,
  166. detail,
  167. add,
  168. cancel,
  169. queryList,
  170. resourcecentreDetail,
  171. getShareLink,
  172. getQueryTreeAll,
  173. getAllListFileFormat
  174. } from '@/api/portal'
  175. import orgApi from '@/api/resourceType/resourceType'
  176. const selectedDept = ref('')
  177. const selectedDeptBig = ref('')
  178. const selectedDeptSmail = ref('')
  179. const selectedCourse = ref('')
  180. const selectedTypeBig = ref('')
  181. const selectedType = ref('')
  182. const selectedFormat = ref('')
  183. const Dept = ref(null)
  184. const Big = ref(null)
  185. const Smail = ref(null)
  186. const Course = ref(null)
  187. const TypeBig = ref(null)
  188. const Type = ref(null)
  189. const Format = ref(null)
  190. const selectedTags = ref([])
  191. const selectedTagKeys = ref([])
  192. const selectedDepts = ref([])
  193. const spinningSelectedDepts = ref(false)
  194. const selectedDeptBigs = ref([])
  195. const selectedDeptBigsList = ref([])
  196. const selectedDeptSmailsList = ref([])
  197. const selectedDeptSmails = ref([])
  198. const selectedCourses = ref([
  199. '全部',
  200. '初级飞行训练',
  201. '高级飞行训练',
  202. '实弹训练',
  203. '低空战术飞行',
  204. '跨区转场训练',
  205. '空气动力学',
  206. '航空气象学',
  207. '航空电子设备',
  208. '飞机结构与系统',
  209. '空军作战指挥',
  210. '战场态势感知',
  211. '模拟对抗训练',
  212. '军队政治工作',
  213. '军事理论',
  214. '战斗精神培育',
  215. '机型改装训练',
  216. '应急程序训练'
  217. ])
  218. const selectedTypesBig = ref([])
  219. const spinningSelectedTypesBig = ref(false)
  220. const selectedTypes = ref([])
  221. const selectedFormats = ref([])
  222. const spinningSelectedFormats = ref(false)
  223. const selectedTypesBigList = ref([])
  224. const selectedTypesList = ref([])
  225. const handleSelectedDept = (e) => {
  226. if (e == 0) {
  227. selectedDeptBigs.value = []
  228. } else {
  229. selectedDeptBigs.value = selectedDeptBigsList.value[e]
  230. }
  231. console.log('handleSelectedDept', e)
  232. selectedDeptSmails.value = []
  233. if (selectedDeptBigs.value.length > 0) {
  234. Big.value.setClean(-1)
  235. }
  236. selectedDeptBig.value = -1
  237. selectedDeptSmail.value = -1
  238. updateSelectedTags()
  239. }
  240. const handleSelectedCourses = (e) => {
  241. if (e == 0) {
  242. selectedDeptSmails.value = []
  243. } else {
  244. selectedDeptSmails.value = selectedDeptSmailsList.value[e - 1]
  245. }
  246. console.log('handleSelectedCourses', e, selectedDeptSmails.value)
  247. if (selectedDeptSmails.value.length > 0) {
  248. Smail.value.setClean(-1)
  249. }
  250. // selectedDeptSmails.value = selectedDeptSmailsList.value[e]
  251. selectedDeptSmail.value = -1
  252. updateSelectedTags()
  253. }
  254. const handleSelectedSmails = (e) => {
  255. // if (e == 0) {
  256. // selectedDeptSmails.value = []
  257. // } else {
  258. // selectedDeptSmails.value = selectedDeptSmailsList.value[e]
  259. // }
  260. // selectedDeptSmails.value = selectedDeptSmailsList.value[e]
  261. updateSelectedTags()
  262. }
  263. // 处理课程类型选择变化
  264. const handleTypeChangeBig = (e) => {
  265. if (e == 0) {
  266. selectedTypes.value = []
  267. } else {
  268. selectedTypes.value = selectedTypesBigList.value[e]
  269. }
  270. console.log('handleTypeChangeBig', e, selectedTypes.value)
  271. if (selectedTypes.value.length > 0) {
  272. Type.value.setClean(-1)
  273. }
  274. selectedType.value = -1
  275. // selectedDeptSmails.value = selectedDeptSmailsList.value[e]
  276. // updateSelectedTags()
  277. // selectedFormat.value = undefined // 选择课程类型时,重置课件格式
  278. updateSelectedTags()
  279. }
  280. const handleTypeChange = (e) => {
  281. console.log('handleTypeChange', ' e ', e, selectedTypes.value)
  282. // selectedFormat.value = undefined // 选择课程类型时,重置课件格式
  283. // updateSelectedTags()
  284. updateSelectedTags()
  285. }
  286. // 处理课件格式选择变化
  287. const handleFormatChange = (e) => {
  288. // selectedType.value = undefined // 选择课件格式时,重置课程类型
  289. updateSelectedTags()
  290. }
  291. // 更新已选条件
  292. const updateSelectedTags = () => {
  293. selectedTags.value = []
  294. selectedTagKeys.value = []
  295. let queryData = {}
  296. // selectedTags.value = [
  297. // ...(selectedDept.value !== '全部' ? { key: 'Dept', list: [selectedDept.value] } : []),
  298. // ...(selectedCourse.value !== '全部' ? { key: 'Course', list: [selectedCourse.value] } : []),
  299. // ...(selectedType.value !== '全部' ? { key: 'Type', list: [selectedType.value] } : []),
  300. // ...(selectedFormat.value !== '全部' ? { key: 'Format', list: [selectedFormat.value] } : [])
  301. // ]
  302. console.log('筛选条件第一个', selectedDept.value, selectedDepts.value)
  303. console.log('筛选条件第二个', selectedDeptBig.value, selectedDeptBigs.value)
  304. console.log('筛选条件第三个', selectedDeptSmail.value, selectedDeptSmails.value)
  305. if (
  306. selectedDept.value !== undefined &&
  307. selectedDept.value !== '' &&
  308. selectedDept.value > 0 &&
  309. selectedDepts.value.length > 0
  310. ) {
  311. if (selectedDepts.value[selectedDept.value]) {
  312. selectedTags.value.push(...[selectedDepts.value[selectedDept.value].fileExtendName])
  313. selectedTagKeys.value.push({
  314. listType: 0,
  315. key: 'collegeId',
  316. index: selectedDept.value,
  317. name: selectedDepts.value[selectedDept.value].name,
  318. id: selectedDepts.value[selectedDept.value].id
  319. })
  320. queryData['collegeId'] = selectedDepts.value[selectedDept.value].id
  321. }
  322. }
  323. if (
  324. selectedDeptBig.value !== undefined &&
  325. selectedDeptBig.value !== '' &&
  326. selectedDeptBig.value > 0 &&
  327. selectedDeptBigs.value.length > 0
  328. ) {
  329. if (selectedDeptBigs.value[selectedDeptBig.value]) {
  330. selectedTags.value.push(...[selectedDeptBigs.value[selectedDeptBig.value].name])
  331. selectedTagKeys.value.push({
  332. listType: 1,
  333. key: 'collegeTwoId',
  334. index: selectedDeptBig.value,
  335. name: selectedDeptBigs.value[selectedDeptBig.value].name,
  336. id: selectedDeptBigs.value[selectedDeptBig.value].id
  337. })
  338. queryData['collegeTwoId'] = selectedDeptBigs.value[selectedDeptBig.value].id
  339. }
  340. }
  341. console.log('selectedDeptSmail', selectedDeptSmail.value, selectedDeptSmails.value)
  342. if (
  343. selectedDeptSmail.value !== undefined &&
  344. selectedDeptSmail.value !== '' &&
  345. selectedDeptSmail.value > 0 &&
  346. selectedDeptSmails.value.length > 0
  347. ) {
  348. if (selectedDeptSmails.value[selectedDeptSmail.value]) {
  349. selectedTags.value.push(...[selectedDeptSmails.value[selectedDeptSmail.value].name])
  350. selectedTagKeys.value.push({
  351. listType: 2,
  352. key: 'collegeThreeId',
  353. index: selectedDeptSmail.value - 1,
  354. name: selectedDeptSmails.value[selectedDeptSmail.value].name,
  355. id: selectedDeptSmails.value[selectedDeptSmail.value].id
  356. })
  357. queryData['collegeThreeId'] = selectedDeptSmails.value[selectedDeptSmail.value].id
  358. }
  359. }
  360. if (
  361. selectedTypeBig.value !== undefined &&
  362. selectedTypeBig.value !== '' &&
  363. selectedTypeBig.value > 0 &&
  364. selectedTypesBig.value.length > 0
  365. ) {
  366. if (selectedTypesBig.value[selectedTypeBig.value]) {
  367. selectedTags.value.push(...[selectedTypesBig.value[selectedTypeBig.value].name])
  368. selectedTagKeys.value.push({
  369. listType: 3,
  370. key: 'resourceType',
  371. index: selectedTypeBig.value,
  372. name: selectedTypesBig.value[selectedTypeBig.value].name,
  373. id: selectedTypesBig.value[selectedTypeBig.value].id
  374. })
  375. queryData['resourceType'] = selectedTypesBig.value[selectedTypeBig.value].id
  376. }
  377. }
  378. if (
  379. selectedType.value !== undefined &&
  380. selectedType.value !== '' &&
  381. selectedType.value > 0 &&
  382. selectedTypes.value.length > 0
  383. ) {
  384. if (selectedTypes.value[selectedType.value]) {
  385. selectedTags.value.push(...[selectedTypes.value[selectedType.value].name])
  386. selectedTagKeys.value.push({
  387. listType: 4,
  388. key: 'resourceTwoType',
  389. index: selectedType.value,
  390. name: selectedTypes.value[selectedType.value].name,
  391. id: selectedTypes.value[selectedType.value].id
  392. })
  393. queryData['resourceTwoType'] = selectedTypes.value[selectedType.value].id
  394. }
  395. }
  396. if (
  397. selectedFormat.value !== undefined &&
  398. selectedFormat.value !== '' &&
  399. selectedFormat.value > 0 &&
  400. selectedFormats.value.length > 0
  401. ) {
  402. if (selectedFormats.value[selectedFormat.value]) {
  403. selectedTags.value.push(...[selectedFormats.value[selectedFormat.value].fileExtendName])
  404. selectedTagKeys.value.push({
  405. listType: 5,
  406. key: 'suffix',
  407. index: selectedFormat.value,
  408. name: selectedFormats.value[selectedFormat.value].fileExtendName,
  409. id: selectedFormats.value[selectedFormat.value].id
  410. })
  411. queryData['suffix'] = selectedFormats.value[selectedFormat.value].fileExtendName
  412. }
  413. }
  414. // if (selectedCourse.value !== '全部') {
  415. // selectedTags.value.push(...[selectedCourse.value])
  416. // selectedTagKeys.value.push('Course')
  417. // }
  418. // if (selectedType.value !== '全部') {
  419. // selectedTags.value.push(...[selectedType.value])
  420. // selectedTagKeys.value.push('Type')
  421. // }
  422. // if (selectedFormat.value !== '全部') {
  423. // selectedTags.value.push(...[selectedFormat.value])
  424. // selectedTagKeys.value.push('Format')
  425. // }
  426. console.log('筛选条件', selectedTags.value, selectedTagKeys.value)
  427. EventBus.emit('upLoadList', queryData)
  428. }
  429. // 删除已选条件
  430. const handleTagClose = (tag, index) => {
  431. // if (tag === selectedDept.value) {
  432. // selectedDept.value = '全部'
  433. // } else if (tag === selectedCourse.value) {
  434. // selectedCourse.value = '全部'
  435. // } else if (tag === selectedType.value) {
  436. // selectedType.value = '全部'
  437. // } else if (tag === selectedFormat.value) {
  438. // selectedFormat.value = '全部'
  439. // }
  440. if (tag.key == 'suffix') {
  441. Format.value.setClean(-1)
  442. selectedFormat.value = -1
  443. }
  444. if (tag.key == 'resourceTwoType') {
  445. Type.value.setClean(-1)
  446. selectedType.value = -1
  447. }
  448. if (tag.key == 'resourceType') {
  449. Type.value.setClean(-1)
  450. selectedType.value = -1
  451. TypeBig.value.setClean(-1)
  452. selectedTypeBig.value = -1
  453. }
  454. if (tag.key == 'collegeThreeId') {
  455. Smail.value.setClean(-1)
  456. selectedDeptSmail.value = -1
  457. }
  458. if (tag.key == 'collegeTwoId') {
  459. Smail.value.setClean(-1)
  460. selectedDeptSmail.value = -1
  461. Big.value.setClean(-1)
  462. selectedDeptBig.value = -1
  463. }
  464. if (tag.key == 'collegeId') {
  465. Smail.value.setClean(-1)
  466. selectedDeptSmail.value = -1
  467. Big.value.setClean(-1)
  468. selectedDeptBig.value = -1
  469. Dept.value.setClean(-1)
  470. selectedDept.value = -1
  471. }
  472. console.log('要删除的东西', tag)
  473. updateSelectedTags()
  474. }
  475. const handleTagCloseAll = () => {
  476. // if (tag === selectedDept.value) {
  477. // selectedDept.value = '全部'
  478. // } else if (tag === selectedCourse.value) {
  479. // selectedCourse.value = '全部'
  480. // } else if (tag === selectedType.value) {
  481. // selectedType.value = '全部'
  482. // } else if (tag === selectedFormat.value) {
  483. // selectedFormat.value = '全部'
  484. // }
  485. Format.value.setClean(-1)
  486. selectedFormat.value = -1
  487. Type.value.setClean(-1)
  488. selectedType.value = -1
  489. Type.value.setClean(-1)
  490. selectedType.value = -1
  491. TypeBig.value.setClean(-1)
  492. selectedTypeBig.value = -1
  493. Smail.value.setClean(-1)
  494. selectedDeptSmail.value = -1
  495. Smail.value.setClean(-1)
  496. selectedDeptSmail.value = -1
  497. Big.value.setClean(-1)
  498. selectedDeptBig.value = -1
  499. Smail.value.setClean(-1)
  500. selectedDeptSmail.value = -1
  501. Big.value.setClean(-1)
  502. selectedDeptBig.value = -1
  503. Dept.value.setClean(-1)
  504. selectedDept.value = -1
  505. // console.log('要删除的东西', tag)
  506. updateSelectedTags()
  507. }
  508. const handleClean = () => {
  509. selectedTags.value = []
  510. selectedDept.value = '全部'
  511. selectedCourse.value = '全部'
  512. selectedType.value = '全部'
  513. selectedFormat.value = '全部'
  514. selectedDeptBigs.value = []
  515. // Dept.value.setClean('全部')
  516. // Big.value.setClean(selectedDeptBigs.value[0])
  517. // Smail.value.setClean(selectedDeptSmails.value[0])
  518. // Course.value.setClean('全部')
  519. // Type.value.setClean('全部')
  520. // Format.value.setClean('全部')
  521. spinningSelectedDepts.value = true
  522. collegeApi.treeAll().then((data) => {
  523. selectedDepts.value = data
  524. selectedDepts.value.forEach((item) => {
  525. selectedDeptBigsList.value.push(item.children)
  526. if (item.children) {
  527. item.children.forEach((item) => {
  528. if (item.children) {
  529. selectedDeptSmailsList.value.push(item.children)
  530. }
  531. })
  532. }
  533. })
  534. spinningSelectedDepts.value = false
  535. console.log('看看最小的', selectedDeptSmailsList.value)
  536. // Dept.value.setClean(0)
  537. // handleSelectedDept(0)
  538. // handleSelectedCourses(0)
  539. })
  540. spinningSelectedTypesBig.value = true
  541. getQueryTreeAll().then((data) => {
  542. selectedTypesBig.value = data.data
  543. selectedTypesBig.value.forEach((item) => {
  544. selectedTypesBigList.value.push(item.children)
  545. if (item.children) {
  546. item.children.forEach((item) => {
  547. if (item.children) {
  548. selectedTypesList.value.push(item.children)
  549. }
  550. })
  551. }
  552. })
  553. spinningSelectedTypesBig.value = false
  554. })
  555. spinningSelectedFormats.value = true
  556. getAllListFileFormat().then((data) => {
  557. selectedFormats.value = data.data
  558. spinningSelectedFormats.value = false
  559. })
  560. // selectedDepts.value.unshift({ name: '全部' })
  561. // selectedDeptBigsList.value.unshift({ name: '全部' })
  562. // selectedDeptSmailsList.value.unshift({ name: '全部' })
  563. // console.log('看看呢', selectedDepts.value)
  564. // updateSelectedTags()
  565. }
  566. onMounted(() => {
  567. // 初始化已选条件
  568. handleClean()
  569. })
  570. </script>
  571. <style scoped>
  572. .filter-bar {
  573. border: 1px solid #00000011; /* 灰色细边框 */
  574. padding-left: 20px;
  575. padding-right: 20px;
  576. padding-top: 5px;
  577. padding-bottom: 20px;
  578. }
  579. .filter-group {
  580. display: flex;
  581. }
  582. .filter-group-title {
  583. color: rgba(0, 0, 0, 0.521);
  584. font-size: 12px;
  585. min-width: 80px;
  586. margin-top: 10px;
  587. }
  588. .line {
  589. width: 100%;
  590. height: 0.25px;
  591. background-color: #00000013;
  592. }
  593. .clean {
  594. color: rgb(133, 183, 224);
  595. cursor: pointer;
  596. }
  597. </style>