index.vue 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652
  1. <template>
  2. <view class="wrap">
  3. <view class="u-border-left u-border-top inner-wrap">
  4. <view @tap="selectIcon(item.name)" class="u-icon-item u-border-bottom u-border-right" v-for="(item, index) in iconList" :key="index">
  5. <u-icon :name="item.name" size="40" color="#909399"></u-icon>
  6. <text class="u-icon-name">{{item.name}}</text>
  7. </view>
  8. </view>
  9. </view>
  10. </template>
  11. <script>
  12. export default {
  13. data() {
  14. return {
  15. iconList: [
  16. {
  17. name: 'level'
  18. },
  19. {
  20. name: 'woman'
  21. },
  22. {
  23. name: 'man'
  24. },
  25. {
  26. name: 'arrow-left-double'
  27. },
  28. {
  29. name: 'arrow-right-double'
  30. },
  31. {
  32. name: 'chat'
  33. },
  34. {
  35. name: 'chat-fill'
  36. },
  37. {
  38. name: 'red-packet'
  39. },
  40. {
  41. name: 'red-packet-fill'
  42. },
  43. {
  44. name: 'order'
  45. },
  46. {
  47. name: 'checkbox-mark'
  48. },
  49. {
  50. name: 'arrow-up-fill'
  51. },
  52. {
  53. name: 'arrow-down-fill'
  54. },
  55. {
  56. name: 'backspace'
  57. },
  58. {
  59. name: 'photo'
  60. },
  61. {
  62. name: 'photo-fill'
  63. },
  64. {
  65. name: 'lock'
  66. },
  67. {
  68. name: 'lock-fill'
  69. },
  70. {
  71. name: 'lock-open'
  72. },
  73. {
  74. name: 'lock-opened-fill'
  75. },
  76. {
  77. name: 'hourglass'
  78. },
  79. {
  80. name: 'hourglass-half-fill'
  81. },
  82. {
  83. name: 'home'
  84. },
  85. {
  86. name: 'home-fill'
  87. },
  88. {
  89. name: 'fingerprint'
  90. },
  91. {
  92. name: 'cut'
  93. },
  94. {
  95. name: 'star'
  96. },
  97. {
  98. name: 'star-fill'
  99. },
  100. {
  101. name: 'share'
  102. },
  103. {
  104. name: 'share-fill'
  105. },
  106. {
  107. name: 'volume-up'
  108. },
  109. {
  110. name: 'volume-up-fill'
  111. },
  112. {
  113. name: 'volume-off'
  114. },
  115. {
  116. name: 'volume-off-fill'
  117. },
  118. {
  119. name: 'trash'
  120. },
  121. {
  122. name: 'trash-fill'
  123. },
  124. {
  125. name: 'rewind-right'
  126. },
  127. {
  128. name: 'rewind-right-fill'
  129. },
  130. {
  131. name: 'rewind-left'
  132. },
  133. {
  134. name: 'rewind-left-fill'
  135. },
  136. {
  137. name: 'shopping-cart'
  138. },
  139. {
  140. name: 'shopping-cart-fill'
  141. },
  142. {
  143. name: 'question'
  144. },
  145. {
  146. name: 'question-circle'
  147. },
  148. {
  149. name: 'question-circle-fill'
  150. },
  151. {
  152. name: 'plus'
  153. },
  154. {
  155. name: 'plus-circle'
  156. },
  157. {
  158. name: 'plus-circle-fill'
  159. },
  160. {
  161. name: 'tags'
  162. },
  163. {
  164. name: 'tags-fill'
  165. },
  166. {
  167. name: 'pause'
  168. },
  169. {
  170. name: 'pause-circle'
  171. },
  172. {
  173. name: 'pause-circle-fill'
  174. },
  175. {
  176. name: 'play-circle'
  177. },
  178. {
  179. name: 'play-circle-fill'
  180. },
  181. {
  182. name: 'map'
  183. },
  184. {
  185. name: 'map-fill'
  186. },
  187. {
  188. name: 'phone'
  189. },
  190. {
  191. name: 'phone-fill'
  192. },
  193. {
  194. name: 'list'
  195. },
  196. {
  197. name: 'list-dot'
  198. },
  199. {
  200. name: 'man-delete'
  201. },
  202. {
  203. name: 'man-add'
  204. },
  205. {
  206. name: 'man-add-fill'
  207. },
  208. {
  209. name: 'person-delete-fill'
  210. },
  211. {
  212. name: 'info'
  213. },
  214. {
  215. name: 'info-circle'
  216. },
  217. {
  218. name: 'info-circle-fill'
  219. },
  220. {
  221. name: 'minus'
  222. },
  223. {
  224. name: 'minus-circle'
  225. },
  226. {
  227. name: 'minus-circle-fill'
  228. },
  229. {
  230. name: 'mic'
  231. },
  232. {
  233. name: 'mic-off'
  234. },
  235. {
  236. name: 'grid'
  237. },
  238. {
  239. name: 'grid-fill'
  240. },
  241. {
  242. name: 'eye'
  243. },
  244. {
  245. name: 'eye-fill'
  246. },
  247. {
  248. name: 'eye-off'
  249. },
  250. {
  251. name: 'file-text'
  252. },
  253. {
  254. name: 'file-text-fill'
  255. },
  256. {
  257. name: 'edit-pen'
  258. },
  259. {
  260. name: 'edit-pen-fill'
  261. },
  262. {
  263. name: 'email'
  264. },
  265. {
  266. name: 'email-fill'
  267. },
  268. {
  269. name: 'download'
  270. },
  271. {
  272. name: 'checkmark'
  273. },
  274. {
  275. name: 'checkmark-circle'
  276. },
  277. {
  278. name: 'checkmark-circle-fill'
  279. },
  280. {
  281. name: 'clock'
  282. },
  283. {
  284. name: 'clock-fill'
  285. },
  286. {
  287. name: 'close'
  288. },
  289. {
  290. name: 'close-circle'
  291. },
  292. {
  293. name: 'close-circle-fill'
  294. },
  295. {
  296. name: 'calendar'
  297. },
  298. {
  299. name: 'calendar-fill'
  300. },
  301. {
  302. name: 'car'
  303. },
  304. {
  305. name: 'car-fill'
  306. },
  307. {
  308. name: 'bell'
  309. },
  310. {
  311. name: 'bell-fill'
  312. },
  313. {
  314. name: 'bookmark'
  315. },
  316. {
  317. name: 'bookmark-fill'
  318. },
  319. {
  320. name: 'attach'
  321. },
  322. {
  323. name: 'play-right'
  324. },
  325. {
  326. name: 'play-right-fill'
  327. },
  328. {
  329. name: 'play-left'
  330. },
  331. {
  332. name: 'play-left-fill'
  333. },
  334. {
  335. name: 'error'
  336. },
  337. {
  338. name: 'error-circle'
  339. },
  340. {
  341. name: 'error-circle-fill'
  342. },
  343. {
  344. name: 'wifi'
  345. },
  346. {
  347. name: 'wifi-off'
  348. },
  349. {
  350. name: 'skip-back-left'
  351. },
  352. {
  353. name: 'skip-forward-right'
  354. },
  355. {
  356. name: 'search'
  357. },
  358. {
  359. name: 'setting'
  360. },
  361. {
  362. name: 'setting-fill'
  363. },
  364. {
  365. name: 'volume'
  366. },
  367. {
  368. name: 'volume-fill'
  369. },
  370. {
  371. name: 'more-dot-fill'
  372. },
  373. {
  374. name: 'more-circle'
  375. },
  376. {
  377. name: 'more-circle-fill'
  378. },
  379. {
  380. name: 'bag'
  381. },
  382. {
  383. name: 'bag-fill'
  384. },
  385. {
  386. name: 'arrow-upward'
  387. },
  388. {
  389. name: 'arrow-downward'
  390. },
  391. {
  392. name: 'arrow-leftward'
  393. },
  394. {
  395. name: 'arrow-rightward'
  396. },
  397. {
  398. name: 'arrow-up'
  399. },
  400. {
  401. name: 'arrow-down'
  402. },
  403. {
  404. name: 'arrow-left'
  405. },
  406. {
  407. name: 'arrow-right'
  408. },
  409. {
  410. name: 'rmb'
  411. },
  412. {
  413. name: 'rmb-circle'
  414. },
  415. {
  416. name: 'rmb-circle-fill'
  417. },
  418. {
  419. name: 'thumb-up'
  420. },
  421. {
  422. name: 'thumb-up-fill'
  423. },
  424. {
  425. name: 'thumb-down'
  426. },
  427. {
  428. name: 'thumb-down-fill'
  429. },
  430. {
  431. name: 'coupon'
  432. },
  433. {
  434. name: 'coupon-fill'
  435. },
  436. {
  437. name: 'kefu-ermai'
  438. },
  439. {
  440. name: 'server-fill'
  441. },
  442. {
  443. name: 'server-man'
  444. },
  445. {
  446. name: 'scan'
  447. },
  448. {
  449. name: 'warning'
  450. },
  451. {
  452. name: 'warning-fill'
  453. },
  454. {
  455. name: 'google'
  456. },
  457. {
  458. name: 'google-circle-fill'
  459. },
  460. {
  461. name: 'chrome-circle-fill'
  462. },
  463. {
  464. name: 'ie'
  465. },
  466. {
  467. name: 'IE-circle-fill'
  468. },
  469. {
  470. name: 'github-circle-fill'
  471. },
  472. {
  473. name: 'android-fill'
  474. },
  475. {
  476. name: 'android-circle-fill'
  477. },
  478. {
  479. name: 'apple-fill'
  480. },
  481. {
  482. name: 'camera'
  483. },
  484. {
  485. name: 'camera-fill'
  486. },
  487. {
  488. name: 'pushpin'
  489. },
  490. {
  491. name: 'pushpin-fill'
  492. },
  493. {
  494. name: 'minus-square-fill'
  495. },
  496. {
  497. name: 'plus-square-fill'
  498. },
  499. {
  500. name: 'heart'
  501. },
  502. {
  503. name: 'heart-fill'
  504. },
  505. {
  506. name: 'reload'
  507. },
  508. {
  509. name: 'account'
  510. },
  511. {
  512. name: 'account-fill'
  513. },
  514. {
  515. name: 'minus-people-fill'
  516. },
  517. {
  518. name: 'plus-people-fill'
  519. },
  520. {
  521. name: 'integral'
  522. },
  523. {
  524. name: 'integral-fill'
  525. },
  526. {
  527. name: 'zhihu'
  528. },
  529. {
  530. name: 'zhihu-circle-fill'
  531. },
  532. {
  533. name: 'gift'
  534. },
  535. {
  536. name: 'gift-fill'
  537. },
  538. {
  539. name: 'zhifubao'
  540. },
  541. {
  542. name: 'zhifubao-circle-fill'
  543. },
  544. {
  545. name: 'weixin-fill'
  546. },
  547. {
  548. name: 'weixin-circle-fill'
  549. },
  550. {
  551. name: 'twitter'
  552. },
  553. {
  554. name: 'twitter-circle-fill'
  555. },
  556. {
  557. name: 'taobao'
  558. },
  559. {
  560. name: 'taobao-circle-fill'
  561. },
  562. {
  563. name: 'weibo'
  564. },
  565. {
  566. name: 'weibo-circle-fill'
  567. },
  568. {
  569. name: 'qq-fill'
  570. },
  571. {
  572. name: 'qq-circle-fill'
  573. },
  574. {
  575. name: 'moments'
  576. },
  577. {
  578. name: 'moments-circel-fill'
  579. },
  580. {
  581. name: 'qzone'
  582. },
  583. {
  584. name: 'qzone-circle-fill'
  585. },
  586. {
  587. name: 'facebook'
  588. },
  589. {
  590. name: 'facebook-circle-fill'
  591. },
  592. {
  593. name: 'baidu'
  594. },
  595. {
  596. name: 'baidu-circle-fill'
  597. },
  598. {
  599. name: 'zhuanfa'
  600. },
  601. ]
  602. };
  603. },
  604. methods: {
  605. selectIcon(name) {
  606. // #ifdef H5
  607. return this.$u.toast('H5暂不支持复制');
  608. // #endif
  609. uni.setClipboardData({
  610. data: name,
  611. success: () => {
  612. }
  613. });
  614. uni.hideToast()
  615. this.$u.toast('图标名称已复制');
  616. }
  617. }
  618. }
  619. </script>
  620. <style scoped lang="scss">
  621. .wrap {
  622. padding: 24rpx;
  623. }
  624. .inner-wrap {
  625. display: flex;
  626. flex-wrap: wrap;
  627. }
  628. .u-icon-item {
  629. display: flex;
  630. flex-direction: column;
  631. align-items: center;
  632. height: 190rpx;
  633. flex: 0 0 33.33333333%;
  634. justify-content: center;
  635. overflow: hidden;
  636. }
  637. .u-icon-name {
  638. color: $u-tips-color;
  639. word-wrap: break-word;
  640. word-break:break-all;
  641. margin-top: 16rpx;
  642. font-size: 26rpx;
  643. padding: 0 14rpx;
  644. // 给定高度是为了图标名超出一行时,进行换行能有更好的效果
  645. height: 26rpx;
  646. }
  647. </style>