liyongli hace 1 año
padre
commit
6a46e5d062

+ 19 - 19
package.json

@@ -12,37 +12,37 @@
   "dependencies": {
     "-": "^0.0.1",
     "@element-plus/icons": "^0.0.11",
-    "@element-plus/icons-vue": "^1.1.3",
+    "@element-plus/icons-vue": "^1.1.4",
     "axios": "^0.26.1",
-    "core-js": "^3.6.5",
+    "core-js": "^3.25.0",
     "dayjs": "^1.11.7",
-    "echarts": "^5.2.1",
+    "echarts": "^5.3.3",
     "echarts-wordcloud": "^2.0.0",
-    "element-plus": "^1.0.2-beta.36",
+    "element-plus": "1.0.2-beta.71",
     "js-sha256": "^0.9.0",
-    "sass-loader": "10.1.1",
-    "vue": "^3.0.0",
-    "vue-router": "^4.0.0-0"
+    "vue": "^3.2.38",
+    "vue-router": "^4.1.5"
   },
   "devDependencies": {
-    "@vue/cli-plugin-babel": "~4.5.0",
-    "@vue/cli-plugin-eslint": "~4.5.0",
-    "@vue/cli-plugin-router": "~4.5.0",
-    "@vue/cli-service": "~4.5.0",
-    "@vue/compiler-sfc": "^3.0.0",
+    "@vue/cli-plugin-babel": "~4.5.19",
+    "@vue/cli-plugin-eslint": "~4.5.19",
+    "@vue/cli-plugin-router": "~4.5.19",
+    "@vue/cli-service": "~4.5.19",
+    "@vue/compiler-sfc": "^3.2.38",
     "babel-eslint": "^10.1.0",
     "clean-webpack-plugin": "^4.0.0",
     "compression-webpack-plugin": "5.0.1",
-    "eslint": "^6.7.2",
-    "eslint-plugin-vue": "^7.0.0",
+    "eslint": "^6.8.0",
+    "eslint-plugin-vue": "^7.20.0",
     "sass": "^1.63.4",
+    "sass-loader": "9.0.0",
     "ssh2-sftp-client": "^9.0.4",
-    "typescript": "^4.3.5",
-    "unplugin-auto-import": "^0.6.6",
-    "unplugin-element-plus": "^0.1.0",
-    "unplugin-vue-components": "^0.15.4",
+    "typescript": "^4.9.5",
+    "unplugin-auto-import": "^0.6.9",
+    "unplugin-element-plus": "^0.1.3",
+    "unplugin-vue-components": "^0.15.6",
     "webpack": "^4.46.0",
-    "webpack-cli": "^4.9.2"
+    "webpack-cli": "^4.10.0"
   },
   "eslintConfig": {
     "root": true,

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 153 - 42
pnpm-lock.yaml


+ 28 - 5
src/assets/iconFont/demo_index.html

@@ -3,8 +3,8 @@
 <head>
   <meta charset="utf-8"/>
   <title>iconfont Demo</title>
-  <link rel="shortcut icon" href="//img.alicdn.com/imgextra/i2/O1CN01ZyAlrn1MwaMhqz36G_!!6000000001499-73-tps-64-64.ico" type="image/x-icon"/>
-  <link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01EYTRnJ297D6vehehJ_!!6000000008020-55-tps-64-64.svg"/>
+  <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">
@@ -54,6 +54,12 @@
       <div class="content unicode" style="display: block;">
           <ul class="icon_lists dib-box">
           
+            <li class="dib">
+              <span class="icon iconfont">&#xe60a;</span>
+                <div class="name">视频号</div>
+                <div class="code-name">&amp;#xe60a;</div>
+              </li>
+          
             <li class="dib">
               <span class="icon iconfont">&#xe60c;</span>
                 <div class="name">今日头条</div>
@@ -144,9 +150,9 @@
 <pre><code class="language-css"
 >@font-face {
   font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1648692917508') format('woff2'),
-       url('iconfont.woff?t=1648692917508') format('woff'),
-       url('iconfont.ttf?t=1648692917508') format('truetype');
+  src: url('iconfont.woff2?t=1687859290684') format('woff2'),
+       url('iconfont.woff?t=1687859290684') format('woff'),
+       url('iconfont.ttf?t=1687859290684') format('truetype');
 }
 </code></pre>
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -172,6 +178,15 @@
       <div class="content font-class">
         <ul class="icon_lists dib-box">
           
+          <li class="dib">
+            <span class="icon iconfont icon-shipinhao"></span>
+            <div class="name">
+              视频号
+            </div>
+            <div class="code-name">.icon-shipinhao
+            </div>
+          </li>
+          
           <li class="dib">
             <span class="icon iconfont icon-jinritoutiao"></span>
             <div class="name">
@@ -307,6 +322,14 @@
       <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-shipinhao"></use>
+                </svg>
+                <div class="name">视频号</div>
+                <div class="code-name">#icon-shipinhao</div>
+            </li>
+          
             <li class="dib">
                 <svg class="icon svg-icon" aria-hidden="true">
                   <use xlink:href="#icon-jinritoutiao"></use>

+ 7 - 3
src/assets/iconFont/iconfont.css

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 2863570 */
-  src: url('iconfont.woff2?t=1648692917508') format('woff2'),
-       url('iconfont.woff?t=1648692917508') format('woff'),
-       url('iconfont.ttf?t=1648692917508') format('truetype');
+  src: url('iconfont.woff2?t=1687859290684') format('woff2'),
+       url('iconfont.woff?t=1687859290684') format('woff'),
+       url('iconfont.ttf?t=1687859290684') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,10 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-shipinhao:before {
+  content: "\e60a";
+}
+
 .icon-jinritoutiao:before {
   content: "\e60c";
 }

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
src/assets/iconFont/iconfont.js


+ 7 - 0
src/assets/iconFont/iconfont.json

@@ -5,6 +5,13 @@
   "css_prefix_text": "icon-",
   "description": "",
   "glyphs": [
+    {
+      "icon_id": "36175487",
+      "name": "视频号",
+      "font_class": "shipinhao",
+      "unicode": "e60a",
+      "unicode_decimal": 58890
+    },
     {
       "icon_id": "1966937",
       "name": "今日头条",

BIN
src/assets/iconFont/iconfont.ttf


BIN
src/assets/iconFont/iconfont.woff


BIN
src/assets/iconFont/iconfont.woff2


+ 2 - 2
src/router/index.js

@@ -1,6 +1,6 @@
 import { createRouter, createWebHashHistory } from "vue-router";
 import countryRouter from "./country";
-import rankRouter from "./rank";
+// import rankRouter from "./rank";
 import rankRouter_old from "./rank_old";
 const routes = [
   {
@@ -201,7 +201,7 @@ const routes = [
     component: () =>
       import(/* webpackChunkName: "newMediaOverview" */ "../views/NMedia/ActivityUser.vue"),
   },
-  ...rankRouter,
+//   ...rankRouter,
   ...rankRouter_old,
   //  新媒体-应用分析-内容分析
   {

+ 26 - 20
src/views/Department/index.vue

@@ -20,26 +20,10 @@
               "
               @click="() => tabChange(item)"
             >
-              <span v-if="item.platform === '微信'" class="icon iconfont"
-                >&#xe603;</span
-              >
               <span
-                v-if="item.platform === '微博'"
-                class="icon iconfont weiboIcon1"
-                >&#xe67a;</span
-              >
-              <span v-if="item.platform === '快手'" class="icon iconfont"
-                >&#xe8dc;</span
-              >
-              <span v-if="item.platform === '抖音'" class="icon iconfont"
-                >&#xe8db;</span
-              >
-              <span v-if="item.platform === 'B站'" class="icon iconfont"
-                >&#xe61e;</span
-              >
-              <span v-if="item.platform === '头条'" class="icon iconfont"
-                >&#xe607;</span
-              >
+                class="icon iconfont"
+                v-html="btnGroup[item.platform].text"
+              />
               {{ item.platform }}
             </el-button>
           </template>
@@ -94,7 +78,6 @@
                   item.sortable ? ['ascending', 'descending', null] : []
                 "
               >
-              
                 <template #default="scope">
                   {{
                     item.type == 'number'
@@ -177,26 +160,37 @@ export default {
         微信: {
           color: '#1cc393',
           class: 'weixin',
+          text: '&#xe603;',
         },
         微博: {
           color: '#ffb712',
           class: 'weibo',
+          text: '&#xe67a;',
         },
         快手: {
           color: '#ffb712',
           class: 'kuaishou',
+          text: '&#xe8dc;',
         },
         抖音: {
           color: '#170b1a',
           class: 'douyin',
+          text: '&#xe8db;',
         },
         头条: {
           color: '#de0517',
           class: 'toutiao',
+          text: '&#xe607;',
         },
         B站: {
           color: '#ffb712',
           class: 'bzhan',
+          text: '&#xe61e;',
+        },
+        视频号: {
+          color: '#ffb712',
+          class: 'weixinshipinhao',
+          text: '&#xe60a;',
         },
       },
       page: 0,
@@ -455,4 +449,16 @@ export default {
   border-color: #fb7299;
   color: #fff;
 }
+.weixinshipinhao .icon {
+  color: #fa9d3b;
+}
+.weixinshipinhaoact,
+.weixinshipinhao:hover,
+.weixinshipinhao:focus,
+.weixinshipinhaoact .icon,
+.weixinshipinhao:hover .icon {
+  background-color: #fa9d3b;
+  border-color: #fa9d3b;
+  color: #fff;
+}
 </style>

+ 18 - 18
src/views/History/index.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="RealOnline">
+  <div class="History">
     <el-breadcrumb separator-class="el-icon-arrow-right">
       <el-breadcrumb-item>新媒体</el-breadcrumb-item>
       <el-breadcrumb-item>用户分析</el-breadcrumb-item>
@@ -14,7 +14,6 @@
             size="small"
             :inline="true"
             label-width="120px"
-            class="demo-form-inline"
           >
             <el-form-item label="应用">
               <el-select
@@ -65,7 +64,6 @@
         size="small"
         :inline="true"
         label-width="120px"
-        class="demo-form-inline"
       >
         <el-form-item label="日期">
           <el-date-picker
@@ -142,7 +140,7 @@
           <el-button type="primary" @click="onExport">导出</el-button>
         </el-form-item>
       </el-form>
-
+      <el-divider />
       <div class="head" v-if="oriData.total">
         <div
           v-for="(item, i) in oriData.total"
@@ -325,20 +323,22 @@ export default {
       date: [new Date(Date.now() - 604800000), new Date(Date.now() - 86400000)],
     };
     this.onSubmit();
-    getUserTotal({ app: this.lastParams.app || this.form.app }).then(r => {
-      this.userTotalList = (r || []).map(v => {
-        return {
-          name: v.name,
-          value: v.value,
-          key: v.name,
-          isNum: isNaN(v.value),
-        };
-      });
-      console.log(this.userTotalList);
-    });
+    this.getUser();
   },
   computed: {},
   methods: {
+    getUser() {
+      getUserTotal({ app: this.form.app }).then(r => {
+        this.userTotalList = (r || []).map(v => {
+          return {
+            name: v.name,
+            value: v.value,
+            key: v.name,
+            isNum: isNaN(v.value),
+          };
+        });
+      });
+    },
     verifyList(list, verify, obj, more) {
       if (!obj) return;
       let li = list || [];
@@ -434,7 +434,6 @@ export default {
         downloads: true,
         ip: true,
       };
-      if (this.type === type) return;
       if (ret[type]) return;
       this.type = type;
       const keyList = [],
@@ -655,6 +654,7 @@ export default {
       };
       //   如果应用选择西部网则渠道默认全部
       this.form.app === '西部网' && (this.form.client = -1);
+      this.getUser();
       getRule({
         db: 'authplat',
         exportMark: '0',
@@ -771,10 +771,10 @@ export default {
 </script>
 
 <style>
-.RealOnline {
+.History {
   margin: 10px 15px;
 }
-.RealOnline .has-seconds .el-time-spinner__wrapper:last-child {
+.History .has-seconds .el-time-spinner__wrapper:last-child {
   display: none;
 }
 .head {

+ 18 - 25
vue.config.js

@@ -2,40 +2,33 @@ const Components = require('unplugin-vue-components/webpack');
 const AutoImport = require('unplugin-auto-import/webpack');
 const { ElementPlusResolver } = require('unplugin-vue-components/resolvers');
 
-const CompressionPlugin = require('compression-webpack-plugin');
+// const CompressionPlugin = require('compression-webpack-plugin');
 
 module.exports = {
   productionSourceMap: false,
   publicPath: './',
   chainWebpack: config => {
     if (process.env.NODE_ENV === 'production') {
-      config.plugin('compressionPlugin').use(
-        new CompressionPlugin({
-          test: /\.js$|\.css|\.less/, // 匹配文件名
-          threshold: 102400, // 对超过10k的数据压缩
-          deleteOriginalAssets: false, // 不删除源文件
-        })
-      );
+      //   config.plugin('compressionPlugin').use(
+      //     new CompressionPlugin({
+      //       test: /\.js$|\.css|\.less/, // 匹配文件名
+      //       threshold: 102400, // 对超过10k的数据压缩
+      //       deleteOriginalAssets: false, // 不删除源文件
+      //     })
+      //   );
       // 移除 prefetch 插件
       config.plugins.delete('prefetch');
 
-      config.module.rules = [
-        {
-          test: /\.s[ac]ss$/i,
-          use: [
-            // 将 Sass 编译成 CSS
-            {
-              loader: 'sass-loader',
-              options: {
-                sassOptions: {
-                  strictMath: true,
-                  noIeCompat: true,
-                },
-              },
-            },
-          ],
-        },
-      ];
+    //   config.module
+    //     .rule(/\.s[ac]ss$/i)
+    //     .use('sass-loader')
+    //     .loader('sass-loader')
+    //     .options({
+    //       sassOptions: {
+    //         strictMath: true,
+    //         noIeCompat: true,
+    //       },
+    //     });
     }
   },
   configureWebpack: {

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio