Bläddra i källkod

动态详情修改点赞图标

zhuli 1 dag sedan
förälder
incheckning
c4408ee5e3

+ 2 - 0
.eslintignore

@@ -13,3 +13,5 @@ dist
 /bin
 /src/mock/*
 stats.html
+# 忽略 iconfont 自动生成的文件
+/src/assets/dianzanFont/iconfont.js

+ 539 - 0
src/assets/dianzanFont/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;
+}

+ 213 - 0
src/assets/dianzanFont/demo_index.html

@@ -0,0 +1,213 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8" />
+    <title>iconfont Demo</title>
+    <link
+      rel="shortcut icon"
+      href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"
+      type="image/x-icon"
+    />
+    <link
+      rel="icon"
+      type="image/svg+xml"
+      href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"
+    />
+    <link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css" />
+    <link rel="stylesheet" href="demo.css" />
+    <link rel="stylesheet" href="iconfont.css" />
+    <script src="iconfont.js"></script>
+    <!-- jQuery -->
+    <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
+    <!-- 代码高亮 -->
+    <script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
+    <style>
+      .main .logo {
+        height: auto;
+        margin-top: 0;
+      }
+      .main .logo a {
+        display: flex;
+        align-items: center;
+      }
+      .main .logo .sub-title {
+        margin-left: 0.5em;
+        font-size: 22px;
+        color: #ffffff;
+        background: linear-gradient(-45deg, #3967ff, #b500fe);
+        background-clip: text;
+        -webkit-text-fill-color: transparent;
+      }
+    </style>
+  </head>
+  <body>
+    <div class="main">
+      <h1 class="logo">
+        <a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank">
+          <img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg" />
+        </a>
+      </h1>
+      <div class="nav-tabs">
+        <ul id="tabs" class="dib-box">
+          <li class="dib active"><span>Unicode</span></li>
+          <li class="dib"><span>Font class</span></li>
+          <li class="dib"><span>Symbol</span></li>
+        </ul>
+
+        <a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=5086350" target="_blank" class="nav-more"
+          >查看项目</a
+        >
+      </div>
+      <div class="tab-container">
+        <div class="content unicode" style="display: block">
+          <ul class="icon_lists dib-box">
+            <li class="dib">
+              <span class="icon iconfont">&#xe6bb;</span>
+              <div class="name">点赞-b</div>
+              <div class="code-name">&amp;#xe6bb;</div>
+            </li>
+          </ul>
+          <div class="article markdown">
+            <h2 id="unicode-">Unicode 引用</h2>
+            <hr />
+
+            <p>Unicode 是字体在网页端最原始的应用方式,特点是:</p>
+            <ul>
+              <li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
+              <li>默认情况下不支持多色,直接添加多色图标会自动去色。</li>
+            </ul>
+            <blockquote>
+              <p>
+                注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol
+                引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)
+              </p>
+            </blockquote>
+            <p>Unicode 使用步骤如下:</p>
+            <h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
+            <pre><code class="language-css"
+>@font-face {
+  font-family: 'iconfont';
+  src: url('iconfont.woff2?t=1765949690977') format('woff2'),
+       url('iconfont.woff?t=1765949690977') format('woff'),
+       url('iconfont.ttf?t=1765949690977') format('truetype');
+}
+</code></pre>
+            <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
+            <pre><code class="language-css"
+>.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+</code></pre>
+            <h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
+            <pre>
+<code class="language-html"
+>&lt;span class="iconfont"&gt;&amp;#x33;&lt;/span&gt;
+</code></pre>
+            <blockquote>
+              <p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
+            </blockquote>
+          </div>
+        </div>
+        <div class="content font-class">
+          <ul class="icon_lists dib-box">
+            <li class="dib">
+              <span class="icon iconfont icon-dianzanb"></span>
+              <div class="name">点赞-b</div>
+              <div class="code-name">.icon-dianzanb</div>
+            </li>
+          </ul>
+          <div class="article markdown">
+            <h2 id="font-class-">font-class 引用</h2>
+            <hr />
+
+            <p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p>
+            <p>与 Unicode 使用方式相比,具有如下特点:</p>
+            <ul>
+              <li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li>
+              <li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li>
+            </ul>
+            <p>使用步骤如下:</p>
+            <h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3>
+            <pre><code class="language-html">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
+</code></pre>
+            <h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
+            <pre><code class="language-html">&lt;span class="iconfont icon-xxx"&gt;&lt;/span&gt;
+</code></pre>
+            <blockquote>
+              <p>" iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
+            </blockquote>
+          </div>
+        </div>
+        <div class="content symbol">
+          <ul class="icon_lists dib-box">
+            <li class="dib">
+              <svg class="icon svg-icon" aria-hidden="true">
+                <use xlink:href="#icon-dianzanb"></use>
+              </svg>
+              <div class="name">点赞-b</div>
+              <div class="code-name">#icon-dianzanb</div>
+            </li>
+          </ul>
+          <div class="article markdown">
+            <h2 id="symbol-">Symbol 引用</h2>
+            <hr />
+
+            <p>
+              这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
+              这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:
+            </p>
+            <ul>
+              <li>支持多色图标了,不再受单色限制。</li>
+              <li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li>
+              <li>兼容性较差,支持 IE9+,及现代浏览器。</li>
+              <li>浏览器渲染 SVG 的性能一般,还不如 png。</li>
+            </ul>
+            <p>使用步骤如下:</p>
+            <h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3>
+            <pre><code class="language-html">&lt;script src="./iconfont.js"&gt;&lt;/script&gt;
+</code></pre>
+            <h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
+            <pre><code class="language-html">&lt;style&gt;
+.icon {
+  width: 1em;
+  height: 1em;
+  vertical-align: -0.15em;
+  fill: currentColor;
+  overflow: hidden;
+}
+&lt;/style&gt;
+</code></pre>
+            <h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
+            <pre><code class="language-html">&lt;svg class="icon" aria-hidden="true"&gt;
+  &lt;use xlink:href="#icon-xxx"&gt;&lt;/use&gt;
+&lt;/svg&gt;
+</code></pre>
+          </div>
+        </div>
+      </div>
+    </div>
+    <script>
+      $(document).ready(function () {
+        $(".tab-container .content:first").show();
+
+        $("#tabs li").click(function (e) {
+          var tabContent = $(".tab-container .content");
+          var index = $(this).index();
+
+          if ($(this).hasClass("active")) {
+            return;
+          } else {
+            $("#tabs li").removeClass("active");
+            $(this).addClass("active");
+
+            tabContent.hide().eq(index).fadeIn();
+          }
+        });
+      });
+    </script>
+  </body>
+</html>

+ 19 - 0
src/assets/dianzanFont/iconfont.css

@@ -0,0 +1,19 @@
+@font-face {
+  font-family: "iconfont"; /* Project id 5086350 */
+  src: url('iconfont.woff2?t=1765949690977') format('woff2'),
+       url('iconfont.woff?t=1765949690977') format('woff'),
+       url('iconfont.ttf?t=1765949690977') format('truetype');
+}
+
+.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.icon-dianzanb:before {
+  content: "\e6bb";
+}
+

+ 65 - 0
src/assets/dianzanFont/iconfont.js

@@ -0,0 +1,65 @@
+((window._iconfont_svg_string_5086350 =
+  '<svg><symbol id="icon-dianzanb" viewBox="0 0 1024 1024"><path d="M491.52569 867.035062c-18.850323 0-36.611849-7.138584-50.039673-20.107967L173.066661 587.075883c-43.2572-41.558511-67.104327-96.968495-67.104327-155.948795 0-59.014068 23.880897-114.441449 67.224054-156.101267 43.087331-41.35385 100.30038-64.113203 161.081699-64.113203 55.020104 0 102.798271 18.611893 145.716756 56.854892l0.611937 0 10.504238 10.385535 6.986111-7.410783c43.172265-40.249703 92.515067-59.829644 150.71356-59.829644 60.781318 0 117.976972 22.759353 161.030533 64.095807 44.022633 42.068118 67.274196 96.05059 67.274196 156.118664 0 59.031465-23.863501 114.458845-67.189262 156.051125L541.599132 846.910723C528.153912 859.896478 510.37499 867.035062 491.52569 867.035062zM334.268086 263.127839c-47.234791 0-91.614557 17.609053-124.929314 49.563836-32.991392 31.699979-51.161217 73.767074-51.161217 118.436436 0 44.650943 18.152429 86.685291 51.127448 118.351502l268.469498 259.903401c7.138584 6.901177 20.36277 6.91755 27.535123-0.017396L773.677814 549.579897c33.042557-31.733749 51.212382-73.767074 51.212382-118.452809 0-45.467541-17.693987-86.413092-51.14382-118.401644l-0.051165-0.033769c-33.29736-31.954783-77.643358-49.563836-124.894522-49.563836-45.467541 0-82.452897 14.906501-116.259864 46.895053l-40.384779 48.748261-34.181497-38.787398-7.02909-7.41897-7.28287-7.215332C410.771481 276.589432 375.758036 263.127839 334.268086 263.127839z" fill="#231815" ></path></symbol></svg>'),
+  (n => {
+    var t = (e = (e = document.getElementsByTagName("script"))[e.length - 1]).getAttribute("data-injectcss"),
+      e = e.getAttribute("data-disable-injectsvg");
+    if (!e) {
+      var i,
+        o,
+        c,
+        d,
+        s,
+        a = function (t, e) {
+          e.parentNode.insertBefore(t, e);
+        };
+      if (t && !n.__iconfont__svg__cssinject__) {
+        n.__iconfont__svg__cssinject__ = !0;
+        try {
+          document.write(
+            "<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>"
+          );
+        } catch (t) {
+          console && console.log(t);
+        }
+      }
+      ((i = function () {
+        var t,
+          e = document.createElement("div");
+        ((e.innerHTML = n._iconfont_svg_string_5086350),
+          (e = e.getElementsByTagName("svg")[0]) &&
+            (e.setAttribute("aria-hidden", "true"),
+            (e.style.position = "absolute"),
+            (e.style.width = 0),
+            (e.style.height = 0),
+            (e.style.overflow = "hidden"),
+            (e = e),
+            (t = document.body).firstChild ? a(e, t.firstChild) : t.appendChild(e)));
+      }),
+        document.addEventListener
+          ? ~["complete", "loaded", "interactive"].indexOf(document.readyState)
+            ? setTimeout(i, 0)
+            : ((o = function () {
+                (document.removeEventListener("DOMContentLoaded", o, !1), i());
+              }),
+              document.addEventListener("DOMContentLoaded", o, !1))
+          : document.attachEvent &&
+            ((c = i),
+            (d = n.document),
+            (s = !1),
+            r(),
+            (d.onreadystatechange = function () {
+              "complete" == d.readyState && ((d.onreadystatechange = null), l());
+            })));
+    }
+    function l() {
+      s || ((s = !0), c());
+    }
+    function r() {
+      try {
+        d.documentElement.doScroll("left");
+      } catch (t) {
+        return void setTimeout(r, 50);
+      }
+      l();
+    }
+  })(window));

+ 16 - 0
src/assets/dianzanFont/iconfont.json

@@ -0,0 +1,16 @@
+{
+  "id": "5086350",
+  "name": "alien",
+  "font_family": "iconfont",
+  "css_prefix_text": "icon-",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "908771",
+      "name": "点赞-b",
+      "font_class": "dianzanb",
+      "unicode": "e6bb",
+      "unicode_decimal": 59067
+    }
+  ]
+}

BIN
src/assets/dianzanFont/iconfont.ttf


BIN
src/assets/dianzanFont/iconfont.woff


BIN
src/assets/dianzanFont/iconfont.woff2


+ 11 - 13
src/views/dynamicManagement/index.vue

@@ -47,9 +47,7 @@
               </div>
 
               <div class="like-section" @click.stop="handleLike(item)">
-                <el-icon :size="18" :color="item.isLike == '1' ? '#f56c6c' : '#999'" class="like-icon">
-                  <Star />
-                </el-icon>
+                <i class="iconfont icon-dianzanb" :style="{ fontSize: '18px', color: item.isLike == '1' ? '#f56c6c' : '#999' }" />
                 <span class="like-count">{{ item.dianzanCount }}</span>
               </div>
             </div>
@@ -190,10 +188,10 @@
           <!-- 点赞 -->
           <div class="action-item" @click="handleDetailLike">
             <div class="action-icon">
-              <el-icon :size="28" :color="currentDetail.isLike == '1' ? '#f56c6c' : '#fff'">
-                <StarFilled v-if="currentDetail.isLike" />
-                <Star v-else />
-              </el-icon>
+              <i
+                class="iconfont icon-dianzanb"
+                :style="{ fontSize: '28px', color: currentDetail.isLike == '1' ? '#f56c6c' : '#fff' }"
+              />
             </div>
             <div class="action-count">
               {{ currentDetail.dianzanCount }}
@@ -290,9 +288,7 @@
 
               <div class="comment-actions">
                 <span class="comment-action-item" @click="handleLikeComment(comment)">
-                  <el-icon :size="16" :color="comment.isLiked ? '#f56c6c' : '#999'">
-                    <Star />
-                  </el-icon>
+                  <i class="iconfont icon-dianzanb" :style="{ fontSize: '16px', color: comment.isLiked ? '#f56c6c' : '#999' }" />
                   <span>{{ comment.likeCount || 0 }}</span>
                 </span>
                 <span class="comment-action-item" @click="handleReplyComment(comment)">
@@ -323,7 +319,10 @@
                         @click="handleLikeComment(item)"
                         style="display: flex; align-items: center"
                       >
-                        <el-icon :size="16" :color="item.isLiked ? '#f56c6c' : '#999'"> <Star /> </el-icon>&nbsp;
+                        <i
+                          class="iconfont icon-dianzanb"
+                          :style="{ fontSize: '16px', color: item.isLiked ? '#f56c6c' : '#999' }"
+                        />&nbsp;
                         <span>{{ item.likeCount || 0 }}</span>
                       </span>
                     </div>
@@ -495,8 +494,6 @@ import { ElMessage, ElMessageBox } from "element-plus";
 import {
   Picture,
   Avatar,
-  Star,
-  StarFilled,
   Close,
   ChatDotRound,
   Share,
@@ -1523,6 +1520,7 @@ onMounted(() => {
 </script>
 
 <style scoped lang="scss">
+@import "@/assets/dianzanFont/iconfont.css";
 .dynamic-management-container {
   min-height: calc(100vh - 120px);
   padding: 20px;