From a12107da40cbde2e62303e3ea7192dfd12da20e0 Mon Sep 17 00:00:00 2001 From: joey Date: Wed, 4 Jun 2025 17:45:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89iconfont?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- miniprogram/app.less | 274 ++- miniprogram/assets/font/demo.css | 539 ++++++ miniprogram/assets/font/demo_index.html | 1568 +++++++++++++++++ miniprogram/assets/font/iconfont.css | 255 +++ miniprogram/assets/font/iconfont.js | 1 + miniprogram/assets/font/iconfont.json | 429 +++++ miniprogram/assets/font/iconfont.less | 257 +++ miniprogram/assets/font/iconfont.ttf | Bin 0 -> 14016 bytes miniprogram/assets/font/iconfont.woff | Bin 0 -> 7884 bytes miniprogram/assets/font/iconfont.woff2 | Bin 0 -> 6728 bytes .../components/word-card/word-card.less | 3 +- .../components/word-card/word-card.wxml | 8 +- .../components/word-input/word-input.wxml | 6 +- miniprogram/pages/index/index.json | 1 + miniprogram/pages/index/index.wxml | 10 +- miniprogram/ui/button/button.ts | 40 +- miniprogram/ui/icon/icon.json | 4 + miniprogram/ui/icon/icon.less | 21 + miniprogram/ui/icon/icon.ts | 35 + miniprogram/ui/icon/icon.wxml | 4 + miniprogram/ui/wxs/base.wxs | 60 + 21 files changed, 3463 insertions(+), 52 deletions(-) create mode 100644 miniprogram/assets/font/demo.css create mode 100644 miniprogram/assets/font/demo_index.html create mode 100644 miniprogram/assets/font/iconfont.css create mode 100644 miniprogram/assets/font/iconfont.js create mode 100644 miniprogram/assets/font/iconfont.json create mode 100644 miniprogram/assets/font/iconfont.less create mode 100644 miniprogram/assets/font/iconfont.ttf create mode 100644 miniprogram/assets/font/iconfont.woff create mode 100644 miniprogram/assets/font/iconfont.woff2 create mode 100644 miniprogram/ui/icon/icon.json create mode 100644 miniprogram/ui/icon/icon.less create mode 100644 miniprogram/ui/icon/icon.ts create mode 100644 miniprogram/ui/icon/icon.wxml create mode 100644 miniprogram/ui/wxs/base.wxs diff --git a/miniprogram/app.less b/miniprogram/app.less index 6164d4b..f2467bc 100644 --- a/miniprogram/app.less +++ b/miniprogram/app.less @@ -1,27 +1,253 @@ -/**app.wxss**/ -// .container { -// height: 100%; -// display: flex; -// flex-direction: column; -// align-items: center; -// justify-content: space-between; -// padding: 200rpx 0; -// box-sizing: border-box; -// } - -.border-1px { - position: relative; +@font-face { + font-family: "j-icon"; + /* Project id 4489595 */ + src: url('./assets/font/iconfont.ttf?t=1715597123285') format('truetype'); } -.border-1px::after { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 200%; - height: 200%; - border: 1px solid #141414; - transform: scale(0.5); - transform-origin: 0 0; - box-sizing: border-box; +.j-icon { + font-family: 'j-icon' !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +.j-icon-error:before { + content: '\e73b'; +} + +.j-icon-more:before { + content: '\e73a'; +} + +.j-icon-scan:before { + content: '\e738'; +} + +.j-icon-fire:before { + content: '\e739'; +} + +.j-icon-arrow-down-circle:before { + content: '\e731'; +} + +.j-icon-map:before { + content: '\e732'; +} + +.j-icon-map-fill:before { + content: '\e733'; +} + +.j-icon-help-circle:before { + content: '\e72f'; +} + +.j-icon-warn-circle:before { + content: '\e730'; +} + +.j-icon-backspace:before { + content: '\e72d'; +} + +.j-icon-backspace-fill:before { + content: '\e72c'; +} + +.j-icon-eye-close:before { + content: '\e72e'; +} + +.j-icon-upload:before { + content: '\e722'; +} + +.j-icon-eye-disable:before { + content: '\e726'; +} + +.j-icon-record:before { + content: '\e725'; +} + +.j-icon-icon-test3:before { + content: '\e724'; +} + +.j-icon-icon-test5:before { + content: '\e723'; +} + +.j-icon-icon-test9:before { + content: '\e721'; +} + +.j-icon-editor-fill:before { + content: '\e72b'; +} + +.j-icon-share:before { + content: '\e729'; +} + +.j-icon-share-fill:before { + content: '\e728'; +} + +.j-icon-editor:before { + content: '\e72a'; +} + +.j-icon-wechat:before { + content: '\e727'; +} + +.j-icon-telephone:before { + content: '\e71c'; +} + +.j-icon-user:before { + content: '\e71a'; +} + +.j-icon-add:before { + content: '\e700'; +} + +.j-icon-add-circle:before { + content: '\e710'; +} + +.j-icon-arrow-up-circle:before { + content: '\e720'; +} + +.j-icon-arrow-right-circle:before { + content: '\e71f'; +} + +.j-icon-arrow-down:before { + content: '\e702'; +} + +.j-icon-ashbin:before { + content: '\e71d'; +} + +.j-icon-arrow-right:before { + content: '\e703'; +} + +.j-icon-eye:before { + content: '\e719'; +} + +.j-icon-bottom:before { + content: '\e707'; +} + +.j-icon-arrow-left-circle:before { + content: '\e71e'; +} + +.j-icon-attachment:before { + content: '\e714'; +} + +.j-icon-code:before { + content: '\e717'; +} + +.j-icon-close:before { + content: '\e704'; +} + +.j-icon-complete:before { + content: '\e718'; +} + +.j-icon-download:before { + content: '\e716'; +} + +.j-icon-minus:before { + content: '\e701'; +} + +.j-icon-picture:before { + content: '\e712'; +} + +.j-icon-search:before { + content: '\e711'; +} + +.j-icon-select:before { + content: '\e705'; +} + +.j-icon-success:before { + content: '\e706'; +} + +.j-icon-add-bold:before { + content: '\e708'; +} + +.j-icon-arrow-left-bold:before { + content: '\e70f'; +} + +.j-icon-arrow-up-bold:before { + content: '\e70e'; +} + +.j-icon-close-bold:before { + content: '\e70d'; +} + +.j-icon-arrow-down-bold:before { + content: '\e70c'; +} + +.j-icon-minus-bold:before { + content: '\e709'; +} + +.j-icon-arrow-right-bold:before { + content: '\e70b'; +} + +.j-icon-select-bold:before { + content: '\e70a'; +} + +.j-icon-arrow-up-fill:before { + content: '\e737'; +} + +.j-icon-arrow-down-fill:before { + content: '\e736'; +} + +.j-icon-arrow-left-fill:before { + content: '\e735'; +} + +.j-icon-arrow-right-fill:before { + content: '\e734'; +} + +.j-icon-user-fill:before { + content: '\e71b'; +} + +.j-icon-success-filling:before { + content: '\e713'; +} + +.j-icon-top-filling:before { + content: '\e715'; +} \ No newline at end of file diff --git a/miniprogram/assets/font/demo.css b/miniprogram/assets/font/demo.css new file mode 100644 index 0000000..a67054a --- /dev/null +++ b/miniprogram/assets/font/demo.css @@ -0,0 +1,539 @@ +/* Logo 字体 */ +@font-face { + font-family: "iconfont logo"; + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); +} + +.logo { + font-family: "iconfont logo"; + font-size: 160px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* tabs */ +.nav-tabs { + position: relative; +} + +.nav-tabs .nav-more { + position: absolute; + right: 0; + bottom: 0; + height: 42px; + line-height: 42px; + color: #666; +} + +#tabs { + border-bottom: 1px solid #eee; +} + +#tabs li { + cursor: pointer; + width: 100px; + height: 40px; + line-height: 40px; + text-align: center; + font-size: 16px; + border-bottom: 2px solid transparent; + position: relative; + z-index: 1; + margin-bottom: -1px; + color: #666; +} + + +#tabs .active { + border-bottom-color: #f00; + color: #222; +} + +.tab-container .content { + display: none; +} + +/* 页面布局 */ +.main { + padding: 30px 100px; + width: 960px; + margin: 0 auto; +} + +.main .logo { + color: #333; + text-align: left; + margin-bottom: 30px; + line-height: 1; + height: 110px; + margin-top: -50px; + overflow: hidden; + *zoom: 1; +} + +.main .logo a { + font-size: 160px; + color: #333; +} + +.helps { + margin-top: 40px; +} + +.helps pre { + padding: 20px; + margin: 10px 0; + border: solid 1px #e7e1cd; + background-color: #fffdef; + overflow: auto; +} + +.icon_lists { + width: 100% !important; + overflow: hidden; + *zoom: 1; +} + +.icon_lists li { + width: 100px; + margin-bottom: 10px; + margin-right: 20px; + text-align: center; + list-style: none !important; + cursor: default; +} + +.icon_lists li .code-name { + line-height: 1.2; +} + +.icon_lists .icon { + display: block; + height: 100px; + line-height: 100px; + font-size: 42px; + margin: 10px auto; + color: #333; + -webkit-transition: font-size 0.25s linear, width 0.25s linear; + -moz-transition: font-size 0.25s linear, width 0.25s linear; + transition: font-size 0.25s linear, width 0.25s linear; +} + +.icon_lists .icon:hover { + font-size: 100px; +} + +.icon_lists .svg-icon { + /* 通过设置 font-size 来改变图标大小 */ + width: 1em; + /* 图标和文字相邻时,垂直对齐 */ + vertical-align: -0.15em; + /* 通过设置 color 来改变 SVG 的颜色/fill */ + fill: currentColor; + /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 + normalize.css 中也包含这行 */ + overflow: hidden; +} + +.icon_lists li .name, +.icon_lists li .code-name { + color: #666; +} + +/* markdown 样式 */ +.markdown { + color: #666; + font-size: 14px; + line-height: 1.8; +} + +.highlight { + line-height: 1.5; +} + +.markdown img { + vertical-align: middle; + max-width: 100%; +} + +.markdown h1 { + color: #404040; + font-weight: 500; + line-height: 40px; + margin-bottom: 24px; +} + +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + color: #404040; + margin: 1.6em 0 0.6em 0; + font-weight: 500; + clear: both; +} + +.markdown h1 { + font-size: 28px; +} + +.markdown h2 { + font-size: 22px; +} + +.markdown h3 { + font-size: 16px; +} + +.markdown h4 { + font-size: 14px; +} + +.markdown h5 { + font-size: 12px; +} + +.markdown h6 { + font-size: 12px; +} + +.markdown hr { + height: 1px; + border: 0; + background: #e9e9e9; + margin: 16px 0; + clear: both; +} + +.markdown p { + margin: 1em 0; +} + +.markdown>p, +.markdown>blockquote, +.markdown>.highlight, +.markdown>ol, +.markdown>ul { + width: 80%; +} + +.markdown ul>li { + list-style: circle; +} + +.markdown>ul li, +.markdown blockquote ul>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown>ul li p, +.markdown>ol li p { + margin: 0.6em 0; +} + +.markdown ol>li { + list-style: decimal; +} + +.markdown>ol li, +.markdown blockquote ol>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown code { + margin: 0 3px; + padding: 0 5px; + background: #eee; + border-radius: 3px; +} + +.markdown strong, +.markdown b { + font-weight: 600; +} + +.markdown>table { + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; + border: 1px solid #e9e9e9; + width: 95%; + margin-bottom: 24px; +} + +.markdown>table th { + white-space: nowrap; + color: #333; + font-weight: 600; +} + +.markdown>table th, +.markdown>table td { + border: 1px solid #e9e9e9; + padding: 8px 16px; + text-align: left; +} + +.markdown>table th { + background: #F7F7F7; +} + +.markdown blockquote { + font-size: 90%; + color: #999; + border-left: 4px solid #e9e9e9; + padding-left: 0.8em; + margin: 1em 0; +} + +.markdown blockquote p { + margin: 0; +} + +.markdown .anchor { + opacity: 0; + transition: opacity 0.3s ease; + margin-left: 8px; +} + +.markdown .waiting { + color: #ccc; +} + +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + opacity: 1; + display: inline-block; +} + +.markdown>br, +.markdown>p>br { + clear: both; +} + + +.hljs { + display: block; + background: white; + padding: 0.5em; + color: #333333; + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} + +/* 代码高亮 */ +/* PrismJS 1.15.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre)>code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre)>code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/miniprogram/assets/font/demo_index.html b/miniprogram/assets/font/demo_index.html new file mode 100644 index 0000000..f484757 --- /dev/null +++ b/miniprogram/assets/font/demo_index.html @@ -0,0 +1,1568 @@ + + + + + iconfont Demo + + + + + + + + + + + + + +
+

+ + +

+ +
+
+
    + +
  • + +
    error
    +
    
    +
  • + +
  • + +
    more
    +
    
    +
  • + +
  • + +
    scan
    +
    
    +
  • + +
  • + +
    fire
    +
    
    +
  • + +
  • + +
    arrow-down-circle
    +
    
    +
  • + +
  • + +
    map
    +
    
    +
  • + +
  • + +
    map-fill
    +
    
    +
  • + +
  • + +
    help-circle
    +
    
    +
  • + +
  • + +
    warn-circle
    +
    
    +
  • + +
  • + +
    backspace
    +
    
    +
  • + +
  • + +
    backspace-fill
    +
    
    +
  • + +
  • + +
    eye-close
    +
    
    +
  • + +
  • + +
    upload
    +
    
    +
  • + +
  • + +
    eye-disable
    +
    
    +
  • + +
  • + +
    record
    +
    
    +
  • + +
  • + +
    time
    +
    
    +
  • + +
  • + +
    setting
    +
    
    +
  • + +
  • + +
    email
    +
    
    +
  • + +
  • + +
    editor-fill
    +
    
    +
  • + +
  • + +
    share
    +
    
    +
  • + +
  • + +
    share-fill
    +
    
    +
  • + +
  • + +
    editor
    +
    
    +
  • + +
  • + +
    wechat
    +
    
    +
  • + +
  • + +
    telephone
    +
    
    +
  • + +
  • + +
    user
    +
    
    +
  • + +
  • + +
    add
    +
    
    +
  • + +
  • + +
    add-circle
    +
    
    +
  • + +
  • + +
    arrow-up-circle
    +
    
    +
  • + +
  • + +
    arrow-right-circle
    +
    
    +
  • + +
  • + +
    arrow-down
    +
    
    +
  • + +
  • + +
    dustbin
    +
    
    +
  • + +
  • + +
    arrow-right
    +
    
    +
  • + +
  • + +
    eye
    +
    
    +
  • + +
  • + +
    bottom
    +
    
    +
  • + +
  • + +
    arrow-left-circle
    +
    
    +
  • + +
  • + +
    attachment
    +
    
    +
  • + +
  • + +
    code
    +
    
    +
  • + +
  • + +
    close
    +
    
    +
  • + +
  • + +
    complete
    +
    
    +
  • + +
  • + +
    download
    +
    
    +
  • + +
  • + +
    minus
    +
    
    +
  • + +
  • + +
    picture
    +
    
    +
  • + +
  • + +
    search
    +
    
    +
  • + +
  • + +
    select
    +
    
    +
  • + +
  • + +
    success
    +
    
    +
  • + +
  • + +
    add-bold
    +
    
    +
  • + +
  • + +
    arrow-left-bold
    +
    
    +
  • + +
  • + +
    arrow-up-bold
    +
    
    +
  • + +
  • + +
    close-bold
    +
    
    +
  • + +
  • + +
    arrow-down-bold
    +
    
    +
  • + +
  • + +
    minus-bold
    +
    
    +
  • + +
  • + +
    arrow-right-bold
    +
    
    +
  • + +
  • + +
    select-bold
    +
    
    +
  • + +
  • + +
    arrow-up-fill
    +
    
    +
  • + +
  • + +
    arrow-down-fill
    +
    
    +
  • + +
  • + +
    arrow-left-fill
    +
    
    +
  • + +
  • + +
    arrow-right-fill
    +
    
    +
  • + +
  • + +
    user-fill
    +
    
    +
  • + +
  • + +
    success-fill
    +
    
    +
  • + +
  • + +
    top-filling
    +
    
    +
  • + +
+
+

Unicode 引用

+
+ +

Unicode 是字体在网页端最原始的应用方式,特点是:

+
    +
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • +
  • 默认情况下不支持多色,直接添加多色图标会自动去色。
  • +
+
+

注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)

+
+

Unicode 使用步骤如下:

+

第一步:拷贝项目下面生成的 @font-face

+
@font-face {
+  font-family: 'iconfont';
+  src: url('iconfont.woff2?t=1715597123285') format('woff2'),
+       url('iconfont.woff?t=1715597123285') format('woff'),
+       url('iconfont.ttf?t=1715597123285') format('truetype');
+}
+
+

第二步:定义使用 iconfont 的样式

+
.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+

第三步:挑选相应图标并获取字体编码,应用于页面

+
+<span class="iconfont">&#x33;</span>
+
+
+

"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    + error +
    +
    .icon-error +
    +
  • + +
  • + +
    + more +
    +
    .icon-more +
    +
  • + +
  • + +
    + scan +
    +
    .icon-scan +
    +
  • + +
  • + +
    + fire +
    +
    .icon-fire +
    +
  • + +
  • + +
    + arrow-down-circle +
    +
    .icon-arrow-down-circle +
    +
  • + +
  • + +
    + map +
    +
    .icon-map +
    +
  • + +
  • + +
    + map-fill +
    +
    .icon-map-fill +
    +
  • + +
  • + +
    + help-circle +
    +
    .icon-help-circle +
    +
  • + +
  • + +
    + warn-circle +
    +
    .icon-warn-circle +
    +
  • + +
  • + +
    + backspace +
    +
    .icon-backspace +
    +
  • + +
  • + +
    + backspace-fill +
    +
    .icon-backspace-fill +
    +
  • + +
  • + +
    + eye-close +
    +
    .icon-eye-close +
    +
  • + +
  • + +
    + upload +
    +
    .icon-upload +
    +
  • + +
  • + +
    + eye-disable +
    +
    .icon-eye-disable +
    +
  • + +
  • + +
    + record +
    +
    .icon-record +
    +
  • + +
  • + +
    + time +
    +
    .icon-icon-test3 +
    +
  • + +
  • + +
    + setting +
    +
    .icon-icon-test5 +
    +
  • + +
  • + +
    + email +
    +
    .icon-icon-test9 +
    +
  • + +
  • + +
    + editor-fill +
    +
    .icon-editor-fill +
    +
  • + +
  • + +
    + share +
    +
    .icon-share +
    +
  • + +
  • + +
    + share-fill +
    +
    .icon-share-fill +
    +
  • + +
  • + +
    + editor +
    +
    .icon-editor +
    +
  • + +
  • + +
    + wechat +
    +
    .icon-wechat +
    +
  • + +
  • + +
    + telephone +
    +
    .icon-telephone +
    +
  • + +
  • + +
    + user +
    +
    .icon-user +
    +
  • + +
  • + +
    + add +
    +
    .icon-add +
    +
  • + +
  • + +
    + add-circle +
    +
    .icon-add-circle +
    +
  • + +
  • + +
    + arrow-up-circle +
    +
    .icon-arrow-up-circle +
    +
  • + +
  • + +
    + arrow-right-circle +
    +
    .icon-arrow-right-circle +
    +
  • + +
  • + +
    + arrow-down +
    +
    .icon-arrow-down +
    +
  • + +
  • + +
    + dustbin +
    +
    .icon-ashbin +
    +
  • + +
  • + +
    + arrow-right +
    +
    .icon-arrow-right +
    +
  • + +
  • + +
    + eye +
    +
    .icon-eye +
    +
  • + +
  • + +
    + bottom +
    +
    .icon-bottom +
    +
  • + +
  • + +
    + arrow-left-circle +
    +
    .icon-arrow-left-circle +
    +
  • + +
  • + +
    + attachment +
    +
    .icon-attachment +
    +
  • + +
  • + +
    + code +
    +
    .icon-code +
    +
  • + +
  • + +
    + close +
    +
    .icon-close +
    +
  • + +
  • + +
    + complete +
    +
    .icon-complete +
    +
  • + +
  • + +
    + download +
    +
    .icon-download +
    +
  • + +
  • + +
    + minus +
    +
    .icon-minus +
    +
  • + +
  • + +
    + picture +
    +
    .icon-picture +
    +
  • + +
  • + +
    + search +
    +
    .icon-search +
    +
  • + +
  • + +
    + select +
    +
    .icon-select +
    +
  • + +
  • + +
    + success +
    +
    .icon-success +
    +
  • + +
  • + +
    + add-bold +
    +
    .icon-add-bold +
    +
  • + +
  • + +
    + arrow-left-bold +
    +
    .icon-arrow-left-bold +
    +
  • + +
  • + +
    + arrow-up-bold +
    +
    .icon-arrow-up-bold +
    +
  • + +
  • + +
    + close-bold +
    +
    .icon-close-bold +
    +
  • + +
  • + +
    + arrow-down-bold +
    +
    .icon-arrow-down-bold +
    +
  • + +
  • + +
    + minus-bold +
    +
    .icon-minus-bold +
    +
  • + +
  • + +
    + arrow-right-bold +
    +
    .icon-arrow-right-bold +
    +
  • + +
  • + +
    + select-bold +
    +
    .icon-select-bold +
    +
  • + +
  • + +
    + arrow-up-fill +
    +
    .icon-arrow-up-fill +
    +
  • + +
  • + +
    + arrow-down-fill +
    +
    .icon-arrow-down-fill +
    +
  • + +
  • + +
    + arrow-left-fill +
    +
    .icon-arrow-left-fill +
    +
  • + +
  • + +
    + arrow-right-fill +
    +
    .icon-arrow-right-fill +
    +
  • + +
  • + +
    + user-fill +
    +
    .icon-user-fill +
    +
  • + +
  • + +
    + success-fill +
    +
    .icon-success-filling +
    +
  • + +
  • + +
    + top-filling +
    +
    .icon-top-filling +
    +
  • + +
+
+

font-class 引用

+
+ +

font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。

+

与 Unicode 使用方式相比,具有如下特点:

+
    +
  • 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
  • +
  • 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 fontclass 代码:

+
<link rel="stylesheet" href="./iconfont.css">
+
+

第二步:挑选相应图标并获取类名,应用于页面:

+
<span class="iconfont icon-xxx"></span>
+
+
+

" + iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    error
    +
    #icon-error
    +
  • + +
  • + +
    more
    +
    #icon-more
    +
  • + +
  • + +
    scan
    +
    #icon-scan
    +
  • + +
  • + +
    fire
    +
    #icon-fire
    +
  • + +
  • + +
    arrow-down-circle
    +
    #icon-arrow-down-circle
    +
  • + +
  • + +
    map
    +
    #icon-map
    +
  • + +
  • + +
    map-fill
    +
    #icon-map-fill
    +
  • + +
  • + +
    help-circle
    +
    #icon-help-circle
    +
  • + +
  • + +
    warn-circle
    +
    #icon-warn-circle
    +
  • + +
  • + +
    backspace
    +
    #icon-backspace
    +
  • + +
  • + +
    backspace-fill
    +
    #icon-backspace-fill
    +
  • + +
  • + +
    eye-close
    +
    #icon-eye-close
    +
  • + +
  • + +
    upload
    +
    #icon-upload
    +
  • + +
  • + +
    eye-disable
    +
    #icon-eye-disable
    +
  • + +
  • + +
    record
    +
    #icon-record
    +
  • + +
  • + +
    time
    +
    #icon-icon-test3
    +
  • + +
  • + +
    setting
    +
    #icon-icon-test5
    +
  • + +
  • + +
    email
    +
    #icon-icon-test9
    +
  • + +
  • + +
    editor-fill
    +
    #icon-editor-fill
    +
  • + +
  • + +
    share
    +
    #icon-share
    +
  • + +
  • + +
    share-fill
    +
    #icon-share-fill
    +
  • + +
  • + +
    editor
    +
    #icon-editor
    +
  • + +
  • + +
    wechat
    +
    #icon-wechat
    +
  • + +
  • + +
    telephone
    +
    #icon-telephone
    +
  • + +
  • + +
    user
    +
    #icon-user
    +
  • + +
  • + +
    add
    +
    #icon-add
    +
  • + +
  • + +
    add-circle
    +
    #icon-add-circle
    +
  • + +
  • + +
    arrow-up-circle
    +
    #icon-arrow-up-circle
    +
  • + +
  • + +
    arrow-right-circle
    +
    #icon-arrow-right-circle
    +
  • + +
  • + +
    arrow-down
    +
    #icon-arrow-down
    +
  • + +
  • + +
    dustbin
    +
    #icon-ashbin
    +
  • + +
  • + +
    arrow-right
    +
    #icon-arrow-right
    +
  • + +
  • + +
    eye
    +
    #icon-eye
    +
  • + +
  • + +
    bottom
    +
    #icon-bottom
    +
  • + +
  • + +
    arrow-left-circle
    +
    #icon-arrow-left-circle
    +
  • + +
  • + +
    attachment
    +
    #icon-attachment
    +
  • + +
  • + +
    code
    +
    #icon-code
    +
  • + +
  • + +
    close
    +
    #icon-close
    +
  • + +
  • + +
    complete
    +
    #icon-complete
    +
  • + +
  • + +
    download
    +
    #icon-download
    +
  • + +
  • + +
    minus
    +
    #icon-minus
    +
  • + +
  • + +
    picture
    +
    #icon-picture
    +
  • + +
  • + +
    search
    +
    #icon-search
    +
  • + +
  • + +
    select
    +
    #icon-select
    +
  • + +
  • + +
    success
    +
    #icon-success
    +
  • + +
  • + +
    add-bold
    +
    #icon-add-bold
    +
  • + +
  • + +
    arrow-left-bold
    +
    #icon-arrow-left-bold
    +
  • + +
  • + +
    arrow-up-bold
    +
    #icon-arrow-up-bold
    +
  • + +
  • + +
    close-bold
    +
    #icon-close-bold
    +
  • + +
  • + +
    arrow-down-bold
    +
    #icon-arrow-down-bold
    +
  • + +
  • + +
    minus-bold
    +
    #icon-minus-bold
    +
  • + +
  • + +
    arrow-right-bold
    +
    #icon-arrow-right-bold
    +
  • + +
  • + +
    select-bold
    +
    #icon-select-bold
    +
  • + +
  • + +
    arrow-up-fill
    +
    #icon-arrow-up-fill
    +
  • + +
  • + +
    arrow-down-fill
    +
    #icon-arrow-down-fill
    +
  • + +
  • + +
    arrow-left-fill
    +
    #icon-arrow-left-fill
    +
  • + +
  • + +
    arrow-right-fill
    +
    #icon-arrow-right-fill
    +
  • + +
  • + +
    user-fill
    +
    #icon-user-fill
    +
  • + +
  • + +
    success-fill
    +
    #icon-success-filling
    +
  • + +
  • + +
    top-filling
    +
    #icon-top-filling
    +
  • + +
+
+

Symbol 引用

+
+ +

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 + 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

+
    +
  • 支持多色图标了,不再受单色限制。
  • +
  • 通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。
  • +
  • 兼容性较差,支持 IE9+,及现代浏览器。
  • +
  • 浏览器渲染 SVG 的性能一般,还不如 png。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 symbol 代码:

+
<script src="./iconfont.js"></script>
+
+

第二步:加入通用 CSS 代码(引入一次就行):

+
<style>
+.icon {
+  width: 1em;
+  height: 1em;
+  vertical-align: -0.15em;
+  fill: currentColor;
+  overflow: hidden;
+}
+</style>
+
+

第三步:挑选相应图标并获取类名,应用于页面:

+
<svg class="icon" aria-hidden="true">
+  <use xlink:href="#icon-xxx"></use>
+</svg>
+
+
+
+ +
+
+ + + diff --git a/miniprogram/assets/font/iconfont.css b/miniprogram/assets/font/iconfont.css new file mode 100644 index 0000000..85e5a6c --- /dev/null +++ b/miniprogram/assets/font/iconfont.css @@ -0,0 +1,255 @@ +@font-face { + font-family: "iconfont"; /* Project id 4489595 */ + src: url('iconfont.woff2?t=1715597123285') format('woff2'), + url('iconfont.woff?t=1715597123285') format('woff'), + url('iconfont.ttf?t=1715597123285') format('truetype'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-error:before { + content: "\e73b"; +} + +.icon-more:before { + content: "\e73a"; +} + +.icon-scan:before { + content: "\e738"; +} + +.icon-fire:before { + content: "\e739"; +} + +.icon-arrow-down-circle:before { + content: "\e731"; +} + +.icon-map:before { + content: "\e732"; +} + +.icon-map-fill:before { + content: "\e733"; +} + +.icon-help-circle:before { + content: "\e72f"; +} + +.icon-warn-circle:before { + content: "\e730"; +} + +.icon-backspace:before { + content: "\e72d"; +} + +.icon-backspace-fill:before { + content: "\e72c"; +} + +.icon-eye-close:before { + content: "\e72e"; +} + +.icon-upload:before { + content: "\e722"; +} + +.icon-eye-disable:before { + content: "\e726"; +} + +.icon-record:before { + content: "\e725"; +} + +.icon-icon-test3:before { + content: "\e724"; +} + +.icon-icon-test5:before { + content: "\e723"; +} + +.icon-icon-test9:before { + content: "\e721"; +} + +.icon-editor-fill:before { + content: "\e72b"; +} + +.icon-share:before { + content: "\e729"; +} + +.icon-share-fill:before { + content: "\e728"; +} + +.icon-editor:before { + content: "\e72a"; +} + +.icon-wechat:before { + content: "\e727"; +} + +.icon-telephone:before { + content: "\e71c"; +} + +.icon-user:before { + content: "\e71a"; +} + +.icon-add:before { + content: "\e700"; +} + +.icon-add-circle:before { + content: "\e710"; +} + +.icon-arrow-up-circle:before { + content: "\e720"; +} + +.icon-arrow-right-circle:before { + content: "\e71f"; +} + +.icon-arrow-down:before { + content: "\e702"; +} + +.icon-ashbin:before { + content: "\e71d"; +} + +.icon-arrow-right:before { + content: "\e703"; +} + +.icon-eye:before { + content: "\e719"; +} + +.icon-bottom:before { + content: "\e707"; +} + +.icon-arrow-left-circle:before { + content: "\e71e"; +} + +.icon-attachment:before { + content: "\e714"; +} + +.icon-code:before { + content: "\e717"; +} + +.icon-close:before { + content: "\e704"; +} + +.icon-complete:before { + content: "\e718"; +} + +.icon-download:before { + content: "\e716"; +} + +.icon-minus:before { + content: "\e701"; +} + +.icon-picture:before { + content: "\e712"; +} + +.icon-search:before { + content: "\e711"; +} + +.icon-select:before { + content: "\e705"; +} + +.icon-success:before { + content: "\e706"; +} + +.icon-add-bold:before { + content: "\e708"; +} + +.icon-arrow-left-bold:before { + content: "\e70f"; +} + +.icon-arrow-up-bold:before { + content: "\e70e"; +} + +.icon-close-bold:before { + content: "\e70d"; +} + +.icon-arrow-down-bold:before { + content: "\e70c"; +} + +.icon-minus-bold:before { + content: "\e709"; +} + +.icon-arrow-right-bold:before { + content: "\e70b"; +} + +.icon-select-bold:before { + content: "\e70a"; +} + +.icon-arrow-up-fill:before { + content: "\e737"; +} + +.icon-arrow-down-fill:before { + content: "\e736"; +} + +.icon-arrow-left-fill:before { + content: "\e735"; +} + +.icon-arrow-right-fill:before { + content: "\e734"; +} + +.icon-user-fill:before { + content: "\e71b"; +} + +.icon-success-filling:before { + content: "\e713"; +} + +.icon-top-filling:before { + content: "\e715"; +} + diff --git a/miniprogram/assets/font/iconfont.js b/miniprogram/assets/font/iconfont.js new file mode 100644 index 0000000..8ca1e13 --- /dev/null +++ b/miniprogram/assets/font/iconfont.js @@ -0,0 +1 @@ +window._iconfont_svg_string_4489595='',function(a){var c=(c=document.getElementsByTagName("script"))[c.length-1],l=c.getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var o,t,i,s,h,e=function(c,l){l.parentNode.insertBefore(c,l)};if(l&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}o=function(){var c,l=document.createElement("div");l.innerHTML=a._iconfont_svg_string_4489595,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?e(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(o,0):(t=function(){document.removeEventListener("DOMContentLoaded",t,!1),o()},document.addEventListener("DOMContentLoaded",t,!1)):document.attachEvent&&(i=o,s=a.document,h=!1,m(),s.onreadystatechange=function(){"complete"==s.readyState&&(s.onreadystatechange=null,d())})}function d(){h||(h=!0,i())}function m(){try{s.documentElement.doScroll("left")}catch(c){return void setTimeout(m,50)}d()}}(window); \ No newline at end of file diff --git a/miniprogram/assets/font/iconfont.json b/miniprogram/assets/font/iconfont.json new file mode 100644 index 0000000..ee07ba5 --- /dev/null +++ b/miniprogram/assets/font/iconfont.json @@ -0,0 +1,429 @@ +{ + "id": "4489595", + "name": "SVG2字体", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "", + "glyphs": [ + { + "icon_id": "15838473", + "name": "error", + "font_class": "error", + "unicode": "e73b", + "unicode_decimal": 59195 + }, + { + "icon_id": "15838508", + "name": "more", + "font_class": "more", + "unicode": "e73a", + "unicode_decimal": 59194 + }, + { + "icon_id": "11372685", + "name": "scan", + "font_class": "scan", + "unicode": "e738", + "unicode_decimal": 59192 + }, + { + "icon_id": "11372790", + "name": "fire", + "font_class": "fire", + "unicode": "e739", + "unicode_decimal": 59193 + }, + { + "icon_id": "15838459", + "name": "arrow-down-circle", + "font_class": "arrow-down-circle", + "unicode": "e731", + "unicode_decimal": 59185 + }, + { + "icon_id": "15838499", + "name": "map", + "font_class": "map", + "unicode": "e732", + "unicode_decimal": 59186 + }, + { + "icon_id": "15838614", + "name": "map-fill", + "font_class": "map-fill", + "unicode": "e733", + "unicode_decimal": 59187 + }, + { + "icon_id": "39727400", + "name": "help-circle", + "font_class": "help-circle", + "unicode": "e72f", + "unicode_decimal": 59183 + }, + { + "icon_id": "39727412", + "name": "warn-circle", + "font_class": "warn-circle", + "unicode": "e730", + "unicode_decimal": 59184 + }, + { + "icon_id": "39768554", + "name": "backspace", + "font_class": "backspace", + "unicode": "e72d", + "unicode_decimal": 59181 + }, + { + "icon_id": "39768569", + "name": "backspace-fill", + "font_class": "backspace-fill", + "unicode": "e72c", + "unicode_decimal": 59180 + }, + { + "icon_id": "29306576", + "name": "eye-close", + "font_class": "eye-close", + "unicode": "e72e", + "unicode_decimal": 59182 + }, + { + "icon_id": "15838548", + "name": "upload", + "font_class": "upload", + "unicode": "e722", + "unicode_decimal": 59170 + }, + { + "icon_id": "8776676", + "name": "eye-disable", + "font_class": "eye-disable", + "unicode": "e726", + "unicode_decimal": 59174 + }, + { + "icon_id": "8776711", + "name": "record", + "font_class": "record", + "unicode": "e725", + "unicode_decimal": 59173 + }, + { + "icon_id": "8776715", + "name": "time", + "font_class": "icon-test3", + "unicode": "e724", + "unicode_decimal": 59172 + }, + { + "icon_id": "8776873", + "name": "setting", + "font_class": "icon-test5", + "unicode": "e723", + "unicode_decimal": 59171 + }, + { + "icon_id": "8777166", + "name": "email", + "font_class": "icon-test9", + "unicode": "e721", + "unicode_decimal": 59169 + }, + { + "icon_id": "11372791", + "name": "editor-fill", + "font_class": "editor-fill", + "unicode": "e72b", + "unicode_decimal": 59179 + }, + { + "icon_id": "39768492", + "name": "share", + "font_class": "share", + "unicode": "e729", + "unicode_decimal": 59177 + }, + { + "icon_id": "39768493", + "name": "share-fill", + "font_class": "share-fill", + "unicode": "e728", + "unicode_decimal": 59176 + }, + { + "icon_id": "11372647", + "name": "editor", + "font_class": "editor", + "unicode": "e72a", + "unicode_decimal": 59178 + }, + { + "icon_id": "39768549", + "name": "wechat", + "font_class": "wechat", + "unicode": "e727", + "unicode_decimal": 59175 + }, + { + "icon_id": "15838544", + "name": "telephone", + "font_class": "telephone", + "unicode": "e71c", + "unicode_decimal": 59164 + }, + { + "icon_id": "15838547", + "name": "user", + "font_class": "user", + "unicode": "e71a", + "unicode_decimal": 59162 + }, + { + "icon_id": "15838424", + "name": "add", + "font_class": "add", + "unicode": "e700", + "unicode_decimal": 59136 + }, + { + "icon_id": "15838425", + "name": "add-circle", + "font_class": "add-circle", + "unicode": "e710", + "unicode_decimal": 59152 + }, + { + "icon_id": "15838427", + "name": "arrow-up-circle", + "font_class": "arrow-up-circle", + "unicode": "e720", + "unicode_decimal": 59168 + }, + { + "icon_id": "15838428", + "name": "arrow-right-circle", + "font_class": "arrow-right-circle", + "unicode": "e71f", + "unicode_decimal": 59167 + }, + { + "icon_id": "15838429", + "name": "arrow-down", + "font_class": "arrow-down", + "unicode": "e702", + "unicode_decimal": 59138 + }, + { + "icon_id": "15838430", + "name": "dustbin", + "font_class": "ashbin", + "unicode": "e71d", + "unicode_decimal": 59165 + }, + { + "icon_id": "15838431", + "name": "arrow-right", + "font_class": "arrow-right", + "unicode": "e703", + "unicode_decimal": 59139 + }, + { + "icon_id": "15838432", + "name": "eye", + "font_class": "eye", + "unicode": "e719", + "unicode_decimal": 59161 + }, + { + "icon_id": "15838433", + "name": "bottom", + "font_class": "bottom", + "unicode": "e707", + "unicode_decimal": 59143 + }, + { + "icon_id": "15838437", + "name": "arrow-left-circle", + "font_class": "arrow-left-circle", + "unicode": "e71e", + "unicode_decimal": 59166 + }, + { + "icon_id": "15838442", + "name": "attachment", + "font_class": "attachment", + "unicode": "e714", + "unicode_decimal": 59156 + }, + { + "icon_id": "15838443", + "name": "code", + "font_class": "code", + "unicode": "e717", + "unicode_decimal": 59159 + }, + { + "icon_id": "15838444", + "name": "close", + "font_class": "close", + "unicode": "e704", + "unicode_decimal": 59140 + }, + { + "icon_id": "15838450", + "name": "complete", + "font_class": "complete", + "unicode": "e718", + "unicode_decimal": 59160 + }, + { + "icon_id": "15838464", + "name": "download", + "font_class": "download", + "unicode": "e716", + "unicode_decimal": 59158 + }, + { + "icon_id": "15838514", + "name": "minus", + "font_class": "minus", + "unicode": "e701", + "unicode_decimal": 59137 + }, + { + "icon_id": "15838521", + "name": "picture", + "font_class": "picture", + "unicode": "e712", + "unicode_decimal": 59154 + }, + { + "icon_id": "15838525", + "name": "search", + "font_class": "search", + "unicode": "e711", + "unicode_decimal": 59153 + }, + { + "icon_id": "15838530", + "name": "select", + "font_class": "select", + "unicode": "e705", + "unicode_decimal": 59141 + }, + { + "icon_id": "15838532", + "name": "success", + "font_class": "success", + "unicode": "e706", + "unicode_decimal": 59142 + }, + { + "icon_id": "15838560", + "name": "add-bold", + "font_class": "add-bold", + "unicode": "e708", + "unicode_decimal": 59144 + }, + { + "icon_id": "15838561", + "name": "arrow-left-bold", + "font_class": "arrow-left-bold", + "unicode": "e70f", + "unicode_decimal": 59151 + }, + { + "icon_id": "15838562", + "name": "arrow-up-bold", + "font_class": "arrow-up-bold", + "unicode": "e70e", + "unicode_decimal": 59150 + }, + { + "icon_id": "15838563", + "name": "close-bold", + "font_class": "close-bold", + "unicode": "e70d", + "unicode_decimal": 59149 + }, + { + "icon_id": "15838564", + "name": "arrow-down-bold", + "font_class": "arrow-down-bold", + "unicode": "e70c", + "unicode_decimal": 59148 + }, + { + "icon_id": "15838565", + "name": "minus-bold", + "font_class": "minus-bold", + "unicode": "e709", + "unicode_decimal": 59145 + }, + { + "icon_id": "15838566", + "name": "arrow-right-bold", + "font_class": "arrow-right-bold", + "unicode": "e70b", + "unicode_decimal": 59147 + }, + { + "icon_id": "15838567", + "name": "select-bold", + "font_class": "select-bold", + "unicode": "e70a", + "unicode_decimal": 59146 + }, + { + "icon_id": "15838581", + "name": "arrow-up-fill", + "font_class": "arrow-up-fill", + "unicode": "e737", + "unicode_decimal": 59191 + }, + { + "icon_id": "15838582", + "name": "arrow-down-fill", + "font_class": "arrow-down-fill", + "unicode": "e736", + "unicode_decimal": 59190 + }, + { + "icon_id": "15838583", + "name": "arrow-left-fill", + "font_class": "arrow-left-fill", + "unicode": "e735", + "unicode_decimal": 59189 + }, + { + "icon_id": "15838584", + "name": "arrow-right-fill", + "font_class": "arrow-right-fill", + "unicode": "e734", + "unicode_decimal": 59188 + }, + { + "icon_id": "15838606", + "name": "user-fill", + "font_class": "user-fill", + "unicode": "e71b", + "unicode_decimal": 59163 + }, + { + "icon_id": "15838611", + "name": "success-fill", + "font_class": "success-filling", + "unicode": "e713", + "unicode_decimal": 59155 + }, + { + "icon_id": "15838618", + "name": "top-filling", + "font_class": "top-filling", + "unicode": "e715", + "unicode_decimal": 59157 + } + ] +} diff --git a/miniprogram/assets/font/iconfont.less b/miniprogram/assets/font/iconfont.less new file mode 100644 index 0000000..1dd341c --- /dev/null +++ b/miniprogram/assets/font/iconfont.less @@ -0,0 +1,257 @@ +/* 在线链接服务仅供平台体验和调试使用,平台不承诺服务的稳定性,企业客户需下载字体包自行发布使用并做好备份。 */ +/* 在线链接服务仅供平台体验和调试使用,平台不承诺服务的稳定性,企业客户需下载字体包自行发布使用并做好备份。 */ +@font-face { + font-family: "j-icon"; + /* Project id 4489595 */ + src: url('iconfont.woff2?t=1715597123285') format('woff2'), + url('iconfont.woff?t=1715597123285') format('woff'), + url('iconfont.ttf?t=1715597123285') format('truetype'); +} + +.j-icon { + font-family: 'j-icon' !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.j-icon-error:before { + content: '\e73b'; +} + +.j-icon-more:before { + content: '\e73a'; +} + +.j-icon-scan:before { + content: '\e738'; +} + +.j-icon-fire:before { + content: '\e739'; +} + +.j-icon-arrow-down-circle:before { + content: '\e731'; +} + +.j-icon-map:before { + content: '\e732'; +} + +.j-icon-map-fill:before { + content: '\e733'; +} + +.j-icon-help-circle:before { + content: '\e72f'; +} + +.j-icon-warn-circle:before { + content: '\e730'; +} + +.j-icon-backspace:before { + content: '\e72d'; +} + +.j-icon-backspace-fill:before { + content: '\e72c'; +} + +.j-icon-eye-close:before { + content: '\e72e'; +} + +.j-icon-upload:before { + content: '\e722'; +} + +.j-icon-eye-disable:before { + content: '\e726'; +} + +.j-icon-record:before { + content: '\e725'; +} + +.j-icon-icon-test3:before { + content: '\e724'; +} + +.j-icon-icon-test5:before { + content: '\e723'; +} + +.j-icon-icon-test9:before { + content: '\e721'; +} + +.j-icon-editor-fill:before { + content: '\e72b'; +} + +.j-icon-share:before { + content: '\e729'; +} + +.j-icon-share-fill:before { + content: '\e728'; +} + +.j-icon-editor:before { + content: '\e72a'; +} + +.j-icon-wechat:before { + content: '\e727'; +} + +.j-icon-telephone:before { + content: '\e71c'; +} + +.j-icon-user:before { + content: '\e71a'; +} + +.j-icon-add:before { + content: '\e700'; +} + +.j-icon-add-circle:before { + content: '\e710'; +} + +.j-icon-arrow-up-circle:before { + content: '\e720'; +} + +.j-icon-arrow-right-circle:before { + content: '\e71f'; +} + +.j-icon-arrow-down:before { + content: '\e702'; +} + +.j-icon-ashbin:before { + content: '\e71d'; +} + +.j-icon-arrow-right:before { + content: '\e703'; +} + +.j-icon-eye:before { + content: '\e719'; +} + +.j-icon-bottom:before { + content: '\e707'; +} + +.j-icon-arrow-left-circle:before { + content: '\e71e'; +} + +.j-icon-attachment:before { + content: '\e714'; +} + +.j-icon-code:before { + content: '\e717'; +} + +.j-icon-close:before { + content: '\e704'; +} + +.j-icon-complete:before { + content: '\e718'; +} + +.j-icon-download:before { + content: '\e716'; +} + +.j-icon-minus:before { + content: '\e701'; +} + +.j-icon-picture:before { + content: '\e712'; +} + +.j-icon-search:before { + content: '\e711'; +} + +.j-icon-select:before { + content: '\e705'; +} + +.j-icon-success:before { + content: '\e706'; +} + +.j-icon-add-bold:before { + content: '\e708'; +} + +.j-icon-arrow-left-bold:before { + content: '\e70f'; +} + +.j-icon-arrow-up-bold:before { + content: '\e70e'; +} + +.j-icon-close-bold:before { + content: '\e70d'; +} + +.j-icon-arrow-down-bold:before { + content: '\e70c'; +} + +.j-icon-minus-bold:before { + content: '\e709'; +} + +.j-icon-arrow-right-bold:before { + content: '\e70b'; +} + +.j-icon-select-bold:before { + content: '\e70a'; +} + +.j-icon-arrow-up-fill:before { + content: '\e737'; +} + +.j-icon-arrow-down-fill:before { + content: '\e736'; +} + +.j-icon-arrow-left-fill:before { + content: '\e735'; +} + +.j-icon-arrow-right-fill:before { + content: '\e734'; +} + +.j-icon-user-fill:before { + content: '\e71b'; +} + +.j-icon-success-filling:before { + content: '\e713'; +} + +.j-icon-top-filling:before { + content: '\e715'; +} \ No newline at end of file diff --git a/miniprogram/assets/font/iconfont.ttf b/miniprogram/assets/font/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ec3b6deba11d70b463a9c7151c9adda6651e1c8e GIT binary patch literal 14016 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 YTpU~CMVWayS?Oks+)r`#`OpgRKYm!^bpQYW literal 0 HcmV?d00001 diff --git a/miniprogram/assets/font/iconfont.woff2 b/miniprogram/assets/font/iconfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..add81281ed430693cd9c60c2ebbf411cfb2338e2 GIT binary patch literal 6728 zcmV-O8n@+lPew8T0RR9102)XD3jhEB05-q?02%rK0RR9100000000000000000000 z0000SR0d!Gi7E=xM8hZnHUcCAfpiOe00bZfgl7ka3mfGvWdv*-0EEaVNcR6961Xu$ zs-g7@(ojciY8-4yL1TLq2RSTPH1x@jSs#a7&%ZY3CfonD4K zz+dxSvJ@Q-q?#rYrCeZ%1vL7M0jDGG7~upD$iZUDfP1e5(ARL*vv?JcQd24ceM6<*6MUFRqk@DTBo)qX&sj;U8|`b9ZzRL zK>;`bH$VczXfO+fO_vQD@S`t?EOn*3n?GZ-zXy7edX6;~pgjaEbpGEvg8_0@K5SVx zE%aG?xqwLUu4~}Z*UZMlHquj;#3(Yf5=C^u6pv(JSM~z%bNKSjk30%ka>CoBuR+yw zSH5^A{^4%y<#}Lo3nT#ttXfuXPHgKB!l`A&F_J8zKNKz@=otcnDDD2A^FU8%WWuwu zHnVYbc5<+{v(*=iJT1HgmV8rP4;^E3LjyHMzKSwOs;Qx+F3(`m=wu4j+0E63BM}fx z&g)$OurFwRK?HyvWB?�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 - + - \ No newline at end of file + diff --git a/miniprogram/components/word-input/word-input.wxml b/miniprogram/components/word-input/word-input.wxml index 9442357..ee0f9cf 100644 --- a/miniprogram/components/word-input/word-input.wxml +++ b/miniprogram/components/word-input/word-input.wxml @@ -1,5 +1,9 @@ - + - + + + 打印 + diff --git a/miniprogram/ui/button/button.ts b/miniprogram/ui/button/button.ts index 0dfbf9e..25b9380 100644 --- a/miniprogram/ui/button/button.ts +++ b/miniprogram/ui/button/button.ts @@ -6,36 +6,40 @@ Component({ * 组件的属性列表 */ properties: { - key: { - type: Number, - value: 0, - }, - word: { + type: { type: String, - value: '', + value: 'default', // default, green, white }, - color: { + size: { type: String, - value: '', + value: 'normal', // large, normal, small, mini + }, + icon: { + type: String, + value: '', // 图标名称 + }, + disabled: { + type: Boolean, + value: false, // 是否禁用 + }, + flat: { + type: Boolean, + value: false, // 是否扁平化 + }, + loading: { + type: Boolean, + value: false, // 是否加载中 }, }, /** * 组件的初始数据 */ - data: { - word: '', - color: '', - }, + data: {}, lifetimes: { attached() {}, }, /** * 组件的方法列表 */ - methods: { - onDelete() { - const { key, word } = this.data; - this.triggerEvent('onDelete', { key, word }); - }, - }, + methods: {}, }); diff --git a/miniprogram/ui/icon/icon.json b/miniprogram/ui/icon/icon.json new file mode 100644 index 0000000..4575d1b --- /dev/null +++ b/miniprogram/ui/icon/icon.json @@ -0,0 +1,4 @@ +{ + "usingComponents": {}, + "component": true +} \ No newline at end of file diff --git a/miniprogram/ui/icon/icon.less b/miniprogram/ui/icon/icon.less new file mode 100644 index 0000000..5f607cc --- /dev/null +++ b/miniprogram/ui/icon/icon.less @@ -0,0 +1,21 @@ +@import '../../style/theme.less'; +@import '../../assets/font/iconfont.less'; + +.icon { + margin: 0; + padding: 0; + display: inline-block; + vertical-align: middle; + font-size: inherit; + color: inherit; + + &.icon_image { + width: @font-size-icon; + height: @font-size-icon; + } + + &__image { + width: 100%; + height: 100%; + } +} diff --git a/miniprogram/ui/icon/icon.ts b/miniprogram/ui/icon/icon.ts new file mode 100644 index 0000000..5c90f75 --- /dev/null +++ b/miniprogram/ui/icon/icon.ts @@ -0,0 +1,35 @@ +Component({ + options: { + //@ts-ignore + styleIsolation: 'apply-shared', + }, + properties: { + // icon name + name: { + type: String, + value: '', + optionalTypes: [String], + }, + // icon color + color: { + type: String, + value: '', + optionalTypes: [String], + }, + // icon size + size: { + type: String, + value: '', + optionalTypes: [String], + }, + // icon classPrefix + classPrefix: { + type: String, + value: 'icon', + optionalTypes: [String], + }, + }, + externalClasses: ['ext-class'], + data: {}, + methods: {}, +}); diff --git a/miniprogram/ui/icon/icon.wxml b/miniprogram/ui/icon/icon.wxml new file mode 100644 index 0000000..15b179c --- /dev/null +++ b/miniprogram/ui/icon/icon.wxml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/miniprogram/ui/wxs/base.wxs b/miniprogram/ui/wxs/base.wxs new file mode 100644 index 0000000..62dded1 --- /dev/null +++ b/miniprogram/ui/wxs/base.wxs @@ -0,0 +1,60 @@ +/* eslint-disable */ + +// key加引号会报错 如:{ "a": 1, "b": 0}, 仅支持: { a: 1, b: 0} +function classNames() { + var classes = [], + hasOwn = {}; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if ('Array' === arg.constructor && arg.length) { + var inner = classNames.apply(null, arg); + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + var objStr = JSON.stringify(arg); + var dotReg = getRegExp('"', 'g'); + objStr = objStr.replace('{', '').replace('}', '').split(','); + + for (var i = 0; i < objStr.length; i++) { + var key = objStr[i].split(':')[0], + _key = key.replace(dotReg, ''); + + if (!hasOwn[_key] && arg[_key]) { + classes.push(_key); + hasOwn[_key] = true; + } + } + } + } + + return classes.join(' '); +} + +function isUrl(url) { + var expression = + 'https?://(www.)?[-a-zA-Z0-9@:%._+~#=]{2,256}.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&//=]*)', + regex = getRegExp(expression, 'g'); + + return url.match(regex); +} + +/** + * 禁止事件冒泡 + */ +function stopPropagation() { + return false; +} + +module.exports = { + classNames: classNames, + isUrl: isUrl, + stopPropagation: stopPropagation, +};