icons.nvue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  1. <template>
  2. <view class="container">
  3. <uni-card :is-shadow="false" is-full>
  4. <text class="uni-h6">图标组件方便用户在设计页面的时候,减少小图片的使用。可方便自定义图标单色、尺寸。</text>
  5. </uni-card>
  6. <uni-section title="图标" type="line">
  7. <view class="icon-content">
  8. <view v-for="(item,index) in iconClassList" :key="index" class="icon-item" @click="switchActive(index)">
  9. <uni-icons :type="item.name" :color="activeIndex === index?'#007aff':'#5e6d82'" size="30" />
  10. <text :style="{color:activeIndex === index?'#007aff':'#5e6d82'}"
  11. class="uni-mt-5 uni-subtitle">{{ checked? item.unicode: item.name }}</text>
  12. </view>
  13. </view>
  14. </uni-section>
  15. <!-- #ifndef APP-PLUS -->
  16. <uni-section title="自定义图标" subTitle="引入参考App.vue" type="line">
  17. <view class="icon-content">
  18. <view class="icon-item" >
  19. <uni-icons customPrefix="customicons" type="youxi" color="#5e6d82" size="22" />
  20. <text style="color:#5e6d82;">youxi</text>
  21. </view>
  22. <view class="icon-item" >
  23. <uni-icons customPrefix="customicons" type="wenjian" color="#5e6d82" size="22" />
  24. <text style="color:#5e6d82;">wenjian</text>
  25. </view>
  26. <view class="icon-item" >
  27. <uni-icons customPrefix="customicons" type="zhuanfa" color="#5e6d82" size="22" />
  28. <text style="color:#5e6d82;">zhuanfa</text>
  29. </view>
  30. </view>
  31. </uni-section>
  32. <!-- #endif -->
  33. </view>
  34. </template>
  35. <script>
  36. export default {
  37. components: {},
  38. data() {
  39. return {
  40. iconClassList: [{
  41. "name": "arrow-down",
  42. "unicode": "e6be"
  43. }, {
  44. "name": "arrow-left",
  45. "unicode": "e6bc"
  46. }, {
  47. "name": "arrow-right",
  48. "unicode": "e6bb"
  49. }, {
  50. "name": "arrow-up",
  51. "unicode": "e6bd"
  52. }, {
  53. "name": "bottom",
  54. "unicode": "e6b8"
  55. }, {
  56. "name": "left",
  57. "unicode": "e6b7"
  58. }, {
  59. "name": "right",
  60. "unicode": "e6b5"
  61. }, {
  62. "name": "top",
  63. "unicode": "e6b6"
  64. }, {
  65. "name": "back",
  66. "unicode": "e6b9"
  67. }, {
  68. "name": "forward",
  69. "unicode": "e6ba"
  70. }, {
  71. "name": "checkmarkempty",
  72. "unicode": "e65c"
  73. }, {
  74. "name": "closeempty",
  75. "unicode": "e66c"
  76. }, {
  77. "name": "color",
  78. "unicode": "e6cf"
  79. }, {
  80. "name": "color-filled",
  81. "unicode": "e6c9"
  82. }, {
  83. "name": "wallet",
  84. "unicode": "e6b1"
  85. }, {
  86. "name": "wallet-filled",
  87. "unicode": "e6c2"
  88. }, {
  89. "name": "tune",
  90. "unicode": "e6aa"
  91. }, {
  92. "name": "tune-filled",
  93. "unicode": "e6ca"
  94. }, {
  95. "name": "settings",
  96. "unicode": "e560"
  97. }, {
  98. "name": "settings-filled",
  99. "unicode": "e6ce"
  100. }, {
  101. "name": "folder-add",
  102. "unicode": "e6a9"
  103. }, {
  104. 'name': 'folder-add-filled',
  105. 'unicode': 'e6c8'
  106. }, {
  107. "name": "calendar",
  108. "unicode": "e6a8"
  109. }, {
  110. 'name': 'calendar-filled',
  111. 'unicode': 'e6c0'
  112. }, {
  113. 'name': 'vip',
  114. 'unicode': 'e6a8'
  115. }, {
  116. 'name': 'vip-filled',
  117. 'unicode': 'e6c6'
  118. }, {
  119. "name": "notification",
  120. "unicode": "e6a6"
  121. }, {
  122. 'name': 'notification-filled',
  123. 'unicode': 'e6c1'
  124. }, {
  125. "name": "gift",
  126. "unicode": "e6a4"
  127. }, {
  128. 'name': 'gift-filled',
  129. 'unicode': 'e6c4'
  130. }, {
  131. "name": "medal",
  132. "unicode": "e6a2"
  133. }, {
  134. 'name': 'medal-filled',
  135. 'unicode': 'e6c3'
  136. }, {
  137. "name": "fire",
  138. "unicode": "e6a1"
  139. }, {
  140. 'name': 'fire-filled',
  141. 'unicode': 'e6c5'
  142. }, {
  143. "name": "camera",
  144. "unicode": "e301"
  145. }, {
  146. "name": "camera-filled",
  147. "unicode": "e7ef"
  148. }, {
  149. "name": "cart",
  150. "unicode": "e7f5"
  151. }, {
  152. "name": "cart-filled",
  153. "unicode": "e7f4"
  154. }, {
  155. "name": "chat",
  156. "unicode": "e263"
  157. }, {
  158. "name": "chat-filled",
  159. "unicode": "e847"
  160. }, {
  161. "name": "chatboxes",
  162. "unicode": "e203"
  163. }, {
  164. "name": "chatboxes-filled",
  165. "unicode": "e233"
  166. }, {
  167. "name": "chatbubble",
  168. "unicode": "e202"
  169. }, {
  170. "name": "chatbubble-filled",
  171. "unicode": "e232"
  172. }, {
  173. "name": "minus",
  174. "unicode": "e410"
  175. }, {
  176. "name": "minus-filled",
  177. "unicode": "e440"
  178. }, {
  179. "name": "plus",
  180. "unicode": "e409"
  181. }, {
  182. "name": "plus-filled",
  183. "unicode": "e439"
  184. }, {
  185. "name": "checkbox",
  186. "unicode": "e7fa"
  187. }, {
  188. "name": "checkbox-filled",
  189. "unicode": "e442"
  190. }, {
  191. "name": "close",
  192. "unicode": "e404"
  193. }, {
  194. "name": "clear",
  195. "unicode": "e434"
  196. }, {
  197. "name": "circle",
  198. "unicode": "e411"
  199. }, {
  200. "name": "circle-filled",
  201. "unicode": "e441"
  202. }, {
  203. "name": "help",
  204. "unicode": "e505"
  205. }, {
  206. "name": "help-filled",
  207. "unicode": "e535"
  208. }, {
  209. "name": "info",
  210. "unicode": "e504"
  211. }, {
  212. "name": "info-filled",
  213. "unicode": "e534"
  214. }, {
  215. "name": "smallcircle",
  216. "unicode": "e868"
  217. }, {
  218. "name": "smallcircle-filled",
  219. "unicode": "e801"
  220. }, {
  221. "name": "upload",
  222. "unicode": "e402"
  223. }, {
  224. "name": "upload-filled",
  225. "unicode": "e8b1"
  226. }, {
  227. "name": "download",
  228. "unicode": "e403"
  229. }, {
  230. "name": "download-filled",
  231. "unicode": "e8a4"
  232. }, {
  233. "name": "cloud-download",
  234. "unicode": "e8e4"
  235. }, {
  236. "name": "cloud-download-filled",
  237. "unicode": "e8e9"
  238. }, {
  239. "name": "cloud-upload",
  240. "unicode": "e8e6"
  241. }, {
  242. "name": "cloud-upload-filled",
  243. "unicode": "e8e5"
  244. }, {
  245. "name": "email",
  246. "unicode": "e201"
  247. }, {
  248. "name": "email-filled",
  249. "unicode": "e231"
  250. }, {
  251. "name": "mail-open",
  252. "unicode": "e84e"
  253. }, {
  254. "name": "mail-open-filled",
  255. "unicode": "e84d"
  256. }, {
  257. "name": "eye",
  258. "unicode": "e824"
  259. }, {
  260. "name": "eye-filled",
  261. "unicode": "e568"
  262. }, {
  263. "name": "eye-slash",
  264. "unicode": "e823"
  265. }, {
  266. "name": "eye-slash-filled",
  267. "unicode": "e822"
  268. }, {
  269. "name": "hand-down",
  270. "unicode": "e83c"
  271. }, {
  272. "name": "hand-down-filled",
  273. "unicode": "e83b"
  274. }, {
  275. "name": "hand-up",
  276. "unicode": "e83f"
  277. }, {
  278. "name": "hand-up-filled",
  279. "unicode": "e83d"
  280. }, {
  281. "name": "gear",
  282. "unicode": "e502"
  283. }, {
  284. "name": "gear-filled",
  285. "unicode": "e532"
  286. }, {
  287. "name": "flag",
  288. "unicode": "e508"
  289. }, {
  290. "name": "flag-filled",
  291. "unicode": "e825"
  292. }, {
  293. "name": "heart",
  294. "unicode": "e840"
  295. }, {
  296. "name": "heart-filled",
  297. "unicode": "e83e"
  298. }, {
  299. "name": "home",
  300. "unicode": "e500"
  301. }, {
  302. "name": "home-filled",
  303. "unicode": "e530"
  304. }, {
  305. "name": "image",
  306. "unicode": "e363"
  307. }, {
  308. "name": "image-filled",
  309. "unicode": "e877"
  310. }, {
  311. "name": "images",
  312. "unicode": "e87b"
  313. }, {
  314. "name": "images-filled",
  315. "unicode": "e87a"
  316. }, {
  317. "name": "locked",
  318. "unicode": "e506"
  319. }, {
  320. "name": "locked-filled",
  321. "unicode": "e856"
  322. }, {
  323. "name": "location",
  324. "unicode": "e303"
  325. }, {
  326. "name": "location-filled",
  327. "unicode": "e333"
  328. }, {
  329. "name": "map",
  330. "unicode": "e364"
  331. }, {
  332. "name": "map-filled",
  333. "unicode": "e85c"
  334. }, {
  335. "name": "map-pin",
  336. "unicode": "e85e"
  337. }, {
  338. "name": "map-pin-ellipse",
  339. "unicode": "e864"
  340. }, {
  341. "name": "mic",
  342. "unicode": "e302"
  343. }, {
  344. "name": "mic-filled",
  345. "unicode": "e332"
  346. }, {
  347. "name": "micoff",
  348. "unicode": "e360"
  349. }, {
  350. "name": "micoff-filled",
  351. "unicode": "e892"
  352. }, {
  353. "name": "more",
  354. "unicode": "e507"
  355. }, {
  356. "name": "more-filled",
  357. "unicode": "e537"
  358. }, {
  359. "name": "navigate",
  360. "unicode": "e501"
  361. }, {
  362. "name": "navigate-filled",
  363. "unicode": "e884"
  364. }, {
  365. "name": "paperplane",
  366. "unicode": "e503"
  367. }, {
  368. "name": "paperplane-filled",
  369. "unicode": "e86e"
  370. }, {
  371. "name": "contact",
  372. "unicode": "e100"
  373. }, {
  374. "name": "contact-filled",
  375. "unicode": "e130"
  376. }, {
  377. "name": "auth",
  378. "unicode": "e6ab"
  379. }, {
  380. "name": "auth-filled",
  381. "unicode": "e6cc"
  382. }, {
  383. "name": "staff",
  384. "unicode": "e6a7"
  385. }, {
  386. "name": "staff-filled",
  387. "unicode": "e6cb"
  388. }, {
  389. "name": "person",
  390. "unicode": "e101"
  391. }, {
  392. "name": "person-filled",
  393. "unicode": "e131"
  394. }, {
  395. "name": "personadd",
  396. "unicode": "e102"
  397. }, {
  398. "name": "personadd-filled",
  399. "unicode": "e132"
  400. }, {
  401. "name": "phone",
  402. "unicode": "e200"
  403. }, {
  404. "name": "phone-filled",
  405. "unicode": "e230"
  406. }, {
  407. "name": "refresh",
  408. "unicode": "e407"
  409. }, {
  410. "name": "refresh-filled",
  411. "unicode": "e437"
  412. }, {
  413. "name": "redo",
  414. "unicode": "e405"
  415. }, {
  416. "name": "redo-filled",
  417. "unicode": "e7d9"
  418. }, {
  419. "name": "undo",
  420. "unicode": "e406"
  421. }, {
  422. "name": "undo-filled",
  423. "unicode": "e7d6"
  424. }, {
  425. "name": "qq",
  426. "unicode": "e264"
  427. }, {
  428. "name": "weibo",
  429. "unicode": "e260"
  430. }, {
  431. "name": "weixin",
  432. "unicode": "e261"
  433. }, {
  434. "name": "pyq",
  435. "unicode": "e262"
  436. }, {
  437. "name": "sound",
  438. "unicode": "e590"
  439. }, {
  440. "name": "sound-filled",
  441. "unicode": "e8a1"
  442. }, {
  443. "name": "videocam",
  444. "unicode": "e300"
  445. }, {
  446. "name": "videocam-filled",
  447. "unicode": "e8af"
  448. }, {
  449. "name": "trash",
  450. "unicode": "e401"
  451. }, {
  452. "name": "trash-filled",
  453. "unicode": "e8dc"
  454. }, {
  455. "name": "refreshempty",
  456. "unicode": "e461"
  457. }, {
  458. "name": "reload",
  459. "unicode": "e462"
  460. }, {
  461. "name": "star",
  462. "unicode": "e408"
  463. }, {
  464. "name": "star-filled",
  465. "unicode": "e438"
  466. }, {
  467. "name": "starhalf",
  468. "unicode": "e463"
  469. }, {
  470. "name": "spinner-cycle",
  471. "unicode": "e465"
  472. }, {
  473. "name": "link",
  474. "unicode": "e6a5"
  475. }, {
  476. "name": "font",
  477. "unicode": "e6a3"
  478. }, {
  479. "name": "scan",
  480. "unicode": "e612"
  481. }, {
  482. "name": "search",
  483. "unicode": "e466"
  484. }, {
  485. "name": "compose",
  486. "unicode": "e400"
  487. }, {
  488. "name": "bars",
  489. "unicode": "e563"
  490. }, {
  491. "name": "list",
  492. "unicode": "e562"
  493. }, {
  494. "name": "loop",
  495. "unicode": "e565"
  496. }, {
  497. "name": "paperclip",
  498. "unicode": "e567"
  499. }, {
  500. "name": "plusempty",
  501. "unicode": "e468"
  502. }, {
  503. "name": "pulldown",
  504. "unicode": "e588"
  505. }, {
  506. "name": "headphones",
  507. "unicode": "e8bf"
  508. }, {
  509. "name": "shop",
  510. "shop": "e609"
  511. }, {
  512. 'name': 'shop-filled',
  513. 'unicode': 'e6cd'
  514. }],
  515. activeIndex: -1,
  516. checked: false
  517. }
  518. },
  519. methods: {
  520. change(e) {
  521. // e.detail.value在安卓手机上可能是String类型,后续修复后要修改
  522. this.checked = e.detail.value === 'false' || !e.detail.value ? false : true
  523. },
  524. switchActive(index) {
  525. this.activeIndex = index
  526. }
  527. }
  528. }
  529. </script>
  530. <style lang="scss">
  531. .icon-content {
  532. display: flex;
  533. flex-wrap: wrap;
  534. flex-direction: row;
  535. justify-content: center;
  536. .icon-item {
  537. /* #ifndef APP-NVUE */
  538. display: flex;
  539. box-sizing: border-box;
  540. width: calc(100% / 4);
  541. /* #endif */
  542. /* #ifdef APP-NVUE */
  543. width: 187rpx;
  544. /* #endif */
  545. align-items: center;
  546. padding: 10px;
  547. text-align: center;
  548. flex-direction: column;
  549. }
  550. }
  551. </style>