icon.nvue 9.1 KB

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