Jelajahi Sumber

剩余部分开发 01.13

zhuohongkui 1 tahun lalu
induk
melakukan
db1e95a2f9
100 mengubah file dengan 1918 tambahan dan 34 penghapusan
  1. 177 0
      demand.vue
  2. 1613 0
      index.js
  3. 102 10
      package-lock.json
  4. 2 1
      package.json
  5. 2 4
      public/pdf/web/viewer.html
  6. 18 19
      src/App.vue
  7. 4 0
      src/assets/css/common.scss
  8. TEMPAT SAMPAH
      src/assets/icon/activity_info.png
  9. TEMPAT SAMPAH
      src/assets/icon/activity_more.png
  10. TEMPAT SAMPAH
      src/assets/icon/activity_select.png
  11. TEMPAT SAMPAH
      src/assets/icon/activity_select_1.png
  12. TEMPAT SAMPAH
      src/assets/icon/activity_success.png
  13. TEMPAT SAMPAH
      src/assets/icon/activity_time.png
  14. TEMPAT SAMPAH
      src/assets/icon/add.png
  15. TEMPAT SAMPAH
      src/assets/icon/answer.png
  16. TEMPAT SAMPAH
      src/assets/icon/append_shopping_cart.png
  17. TEMPAT SAMPAH
      src/assets/icon/bottom.png
  18. TEMPAT SAMPAH
      src/assets/icon/bottom_gray.png
  19. TEMPAT SAMPAH
      src/assets/icon/card/收藏.png
  20. TEMPAT SAMPAH
      src/assets/icon/card/收藏_1.png
  21. TEMPAT SAMPAH
      src/assets/icon/card/点赞.png
  22. TEMPAT SAMPAH
      src/assets/icon/card/点赞_1.png
  23. TEMPAT SAMPAH
      src/assets/icon/card/评论.png
  24. TEMPAT SAMPAH
      src/assets/icon/card/转发.png
  25. TEMPAT SAMPAH
      src/assets/icon/childNavbar/回复我的_forum.png
  26. TEMPAT SAMPAH
      src/assets/icon/childNavbar/回复我的_forum_1.png
  27. TEMPAT SAMPAH
      src/assets/icon/childNavbar/回答我的.png
  28. TEMPAT SAMPAH
      src/assets/icon/childNavbar/回答我的_1.png
  29. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的关注.png
  30. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的关注_1.png
  31. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的回复_forum.png
  32. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的回复_forum_1.png
  33. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的回答.png
  34. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的回答_1.png
  35. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的报名.png
  36. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的报名_1.png
  37. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的提问.png
  38. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的提问_1.png
  39. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的消息.png
  40. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的消息_1.png
  41. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的订单.png
  42. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的订单_1.png
  43. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的订阅_recruit.png
  44. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的订阅_recruit_1.png
  45. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的评论_forum.png
  46. TEMPAT SAMPAH
      src/assets/icon/childNavbar/我的评论_forum_1.png
  47. TEMPAT SAMPAH
      src/assets/icon/childNavbar/浏览记录.png
  48. TEMPAT SAMPAH
      src/assets/icon/childNavbar/浏览记录_1.png
  49. TEMPAT SAMPAH
      src/assets/icon/childNavbar/给我投的.png
  50. TEMPAT SAMPAH
      src/assets/icon/childNavbar/给我投的_1.png
  51. TEMPAT SAMPAH
      src/assets/icon/childNavbar/评论我的.png
  52. TEMPAT SAMPAH
      src/assets/icon/childNavbar/购物车.png
  53. TEMPAT SAMPAH
      src/assets/icon/childNavbar/购物车_1.png
  54. TEMPAT SAMPAH
      src/assets/icon/close.png
  55. TEMPAT SAMPAH
      src/assets/icon/close_fill.png
  56. TEMPAT SAMPAH
      src/assets/icon/collect.png
  57. TEMPAT SAMPAH
      src/assets/icon/collect_1.png
  58. TEMPAT SAMPAH
      src/assets/icon/copy.png
  59. TEMPAT SAMPAH
      src/assets/icon/deliver_jpg.png
  60. TEMPAT SAMPAH
      src/assets/icon/deliver_pdf.png
  61. TEMPAT SAMPAH
      src/assets/icon/education_black.png
  62. TEMPAT SAMPAH
      src/assets/icon/email.png
  63. TEMPAT SAMPAH
      src/assets/icon/eye.png
  64. TEMPAT SAMPAH
      src/assets/icon/fenxiang.png
  65. TEMPAT SAMPAH
      src/assets/icon/hide.png
  66. TEMPAT SAMPAH
      src/assets/icon/hot_1.png
  67. TEMPAT SAMPAH
      src/assets/icon/hot_2.png
  68. TEMPAT SAMPAH
      src/assets/icon/hot_3.png
  69. TEMPAT SAMPAH
      src/assets/icon/navbar/dizhi.png
  70. TEMPAT SAMPAH
      src/assets/icon/navbar/dizhi_1.png
  71. TEMPAT SAMPAH
      src/assets/icon/navbar/fapiao.png
  72. TEMPAT SAMPAH
      src/assets/icon/navbar/fapiao_1.png
  73. TEMPAT SAMPAH
      src/assets/icon/navbar/kefu.png
  74. TEMPAT SAMPAH
      src/assets/icon/navbar/kefu_1.png
  75. TEMPAT SAMPAH
      src/assets/icon/phone.png
  76. TEMPAT SAMPAH
      src/assets/icon/place-map.png
  77. TEMPAT SAMPAH
      src/assets/icon/place.png
  78. TEMPAT SAMPAH
      src/assets/icon/place_black.png
  79. TEMPAT SAMPAH
      src/assets/icon/place_border.png
  80. TEMPAT SAMPAH
      src/assets/icon/question.png
  81. TEMPAT SAMPAH
      src/assets/icon/recruit-collection.png
  82. TEMPAT SAMPAH
      src/assets/icon/report.png
  83. TEMPAT SAMPAH
      src/assets/icon/share.png
  84. TEMPAT SAMPAH
      src/assets/icon/success_fill.png
  85. TEMPAT SAMPAH
      src/assets/icon/time.png
  86. TEMPAT SAMPAH
      src/assets/icon/tips.png
  87. TEMPAT SAMPAH
      src/assets/icon/upload_black.png
  88. TEMPAT SAMPAH
      src/assets/icon/upload_blue.png
  89. TEMPAT SAMPAH
      src/assets/icon/upload_pdf.png
  90. TEMPAT SAMPAH
      src/assets/icon/work_black.png
  91. TEMPAT SAMPAH
      src/assets/icon/审核.png
  92. TEMPAT SAMPAH
      src/assets/icon/已停止.png
  93. TEMPAT SAMPAH
      src/assets/icon/已售罄.png
  94. TEMPAT SAMPAH
      src/assets/icon/提示.png
  95. TEMPAT SAMPAH
      src/assets/icon/收藏.png
  96. TEMPAT SAMPAH
      src/assets/icon/收藏_1.png
  97. TEMPAT SAMPAH
      src/assets/icon/点赞.png
  98. TEMPAT SAMPAH
      src/assets/icon/点赞_1.png
  99. TEMPAT SAMPAH
      src/assets/icon/评论.png
  100. TEMPAT SAMPAH
      src/assets/icon/转发.png

+ 177 - 0
demand.vue

@@ -0,0 +1,177 @@
+<!--需求 -->
+<template>
+  <div class="wrap">
+    <header-search
+      tabName="需求"
+      :type="8"
+      :tab-idx="1"
+      :bg-img="require('@/assets/bg-21.png')"
+    />
+    <div class="tab" :class="{ 'tab-fixed': scrollTop >= 50 }">
+      <div
+        class="tab-item"
+        v-for="item in tabList"
+        :class="{ current: item.value == params.is_over }"
+        @click="changeTab(item)"
+      >
+        {{ item.label }}
+      </div>
+    </div>
+    <div
+      class="box"
+      :style="{ 'margin-top': scrollTop >= 50 ? '48px' : '13px' }"
+    >
+      <DemandTabulation
+        ref="tabulation"
+        :list="list"
+        :loading="loading"
+        :finished="finished"
+        @onRefresh="onRefresh"
+        @getList="getList"
+      />
+    </div>
+
+    <!-- 发布 -->
+    <publish :list="publishList" />
+
+    <!-- 回到顶部 -->
+    <to-top display-height="0" :toTop="toTop" />
+  </div>
+</template>
+
+<script>
+import { DemandService } from "@/common/service";
+import HeaderSearch from "@/components/header-search.vue";
+import DemandTabulation from "./components/demand-tabulation.vue";
+import Publish from "@/components/publish.vue";
+import ToTop from "@/components/to-top.vue";
+
+export default {
+  components: { HeaderSearch, DemandTabulation, Publish, ToTop },
+  data() {
+    return {
+      scrollTop: 0,
+      params: {
+        is_over: 0, // 是否解决或开源【0否,1是,2开源】
+        page: 1, // 页数
+        page_num: 10, // 每页数
+      },
+      list: [],
+      loading: false,
+      finished: false,
+      currentTab: 0,
+      tabList: [
+        { label: "待解决", value: 0 },
+        { label: "已解决", value: 1 },
+        { label: "开源项目", value: 2 },
+      ],
+      publishList: [
+        {
+          title: "发布需求/项目",
+          path: "/contact-online",
+          icon: require("@/assets/icon-95.png"),
+          class: "",
+        },
+      ],
+    };
+  },
+  mounted() {
+    window.addEventListener("scroll", this.onScroll);
+    this.getList();
+  },
+  beforeDestroy() {
+    window.removeEventListener("scroll", this.onScroll);
+  },
+  methods: {
+    toTop() {
+      window.scrollTo(0, 0);
+    },
+    onScroll() {
+      let scrollPos;
+      if (window.pageYOffset) {
+        scrollPos = window.pageYOffset;
+      } else if (document.compatMode && document.compatMode !== "BackCompat") {
+        scrollPos = document.documentElement.scrollTop;
+      } else if (document.body) {
+        scrollPos = document.body.scrollTop;
+      }
+      this.scrollTop = scrollPos;
+    },
+    onRefresh() {
+      this.params.page = 1;
+      this.finished = false;
+      this.getList();
+    },
+    changeTab(item) {
+      this.params.is_over = item.value;
+      this.onRefresh();
+    },
+    getList() {
+      this.loading = true;
+      DemandService.getRecommendList(this.params)
+        .then(({ data }) => {
+          const list = data.list;
+          this.list = this.params.page === 1 ? list : [...this.list, ...list];
+          if (list.length < this.params.page_num) {
+            this.finished = true;
+          } else {
+            this.params.page++;
+          }
+        })
+        .catch(() => {
+          this.finished = true;
+        })
+        .finally(() => {
+          this.loading = false;
+          this.$refs["tabulation"].refreshLoading = false;
+        });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.wrap {
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+  box-sizing: border-box;
+  min-height: 100vh;
+  background: #f5f5f5;
+  .tab {
+    height: 40px;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    font-weight: 400;
+    color: #444444;
+    padding: 0 15px;
+    position: relative;
+    .tab-item {
+      width: 30%;
+      padding: 5px 10px;
+      font-size: 14px;
+      background-color: white;
+      border-radius: 5px;
+      text-align: center;
+    }
+    .current {
+      font-weight: 500;
+      color: #2a63f3;
+    }
+  }
+  .tab-fixed {
+    position: fixed;
+    left: 0;
+    right: 0;
+    top: 44px;
+    z-index: 999;
+    background-image: url("~@/assets/bg-3.png");
+    background-size: 100% auto;
+    background-position: 0 -44px;
+  }
+  .box {
+    width: 100%;
+  }
+}
+</style>

+ 1613 - 0
index.js

@@ -0,0 +1,1613 @@
+import VueRouter from "vue-router";
+import { getUrlCode } from "@/common/wxjssdk.util";
+import { setCopyFlag } from "@/common/util";
+import { informationRoutes } from "@/router/information-routes";
+import { imageTextRoutes } from "@/router/image-text-routes";
+import { videoRoutes } from "@/router/video-routes";
+import { supplierRoutes } from "@/router/supplier-routes";
+import { activityRoutes } from "@/router/activity-routes";
+import { forumRoutes } from "@/router/forum-routes";
+import { newsRoutes } from "@/router/news-routes";
+import { demandRoutes } from "@/router/demand-routes";
+import { recruitRoutes } from "@/router/recruit-routes";
+import { productRoutes } from "@/router/product-routes";
+const routes = [
+  // 新版设计-视频模块路由
+  ...videoRoutes,
+  // 新版设计-图文模块路由
+  ...imageTextRoutes,
+  // 新版设计-资料模块路由
+  ...informationRoutes,
+  // 新版设计-供应商模块路由
+  ...supplierRoutes,
+  // 新版设计-活动模块路由
+  ...activityRoutes,
+  // 新版设计-问答模块路由
+  ...forumRoutes,
+  // 新版设计-新闻模块路由
+  ...newsRoutes,
+  // 新版设计-需求模块路由
+  ...demandRoutes,
+  // 新版设计-招聘模块路由
+  ...recruitRoutes,
+  // 新版设计-商品模块路由
+  ...productRoutes,
+  {
+    path: "/",
+    redirect: "/index",
+  },
+  // 首页
+  {
+    path: "/home",
+    component: () => import("../views/Home.vue"),
+    meta: {
+      title: "首页", // 页面标题ti.footer-wrap>button tle
+    },
+  },
+  // 首页
+  {
+    path: "/index",
+    component: () => import("../views/index.vue"),
+    meta: {
+      title: "首页", // 页面标题title
+      showTabbar: true, // 显示tabbar
+      keepAlive: true, // 默认开启缓存,防止第一次缓存失败
+    },
+  },
+  // 我的
+  {
+    path: "/my",
+    component: () => import("../views/my.vue"),
+    meta: {
+      title: "我的", // 页面标题title
+      showTabbar: true, // 显示tabbar
+      keepAlive: true, // 默认开启缓存,防止第一次缓存失败
+    },
+  },
+  // 登录
+  {
+    path: "/login",
+    component: () => import("../views/login.vue"),
+    meta: {
+      title: "登录", // 页面标题title
+    },
+  },
+  // 个人信息
+  {
+    path: "/personal-information",
+    component: () => import("../views/personal-information.vue"),
+    meta: {
+      title: "个人信息", // 页面标题title
+    },
+  },
+  // 会员
+  {
+    path: "/member",
+    component: () => import("../views/member.vue"),
+    meta: {
+      title: "会员", // 页面标题title
+    },
+  },
+  // 无偿资料
+  {
+    path: "/free-information",
+    component: () => import("../views/free-information.vue"),
+    meta: {
+      title: "无偿资料", // 页面标题title
+    },
+  },
+  // 有偿投稿视频
+  {
+    path: "/paid-contribution-video",
+    component: () => import("../views/paid-contribution-video.vue"),
+    meta: {
+      title: "有偿投稿视频", // 页面标题title
+    },
+  },
+  // 举报
+  {
+    path: "/report",
+    component: () => import("../views/report.vue"),
+    meta: {
+      title: "举报", // 页面标题title
+    },
+  },
+  // 举报-结果
+  {
+    path: "/report-result",
+    component: () => import("../views/report-result.vue"),
+    meta: {
+      title: "举报结果", // 页面标题title
+    },
+  },
+  // 投稿-结果
+  {
+    path: "/submission-result",
+    component: () => import("../views/submission-result.vue"),
+    meta: {
+      title: "投稿结果", // 页面标题title
+    },
+  },
+  // // 稿件管理
+  // {
+  // 	path: '/manuscript-management',
+  // 	component: () => import('../views/manuscript-management.vue'),
+  // 	meta: {
+  // 		title: '稿件管理', // 页面标题title
+  // 	},
+  // },
+  // 搜索
+  {
+    path: "/search",
+    // component: () => import('../views/search.vue'),
+    component: () => import("../views/search/search.vue"),
+    meta: {
+      title: "搜索", // 页面标题title
+      keepAlive: true, // 开启缓存
+      // 仅前往这些页面时缓存
+      toPagesKeep: ["/search-result"],
+    },
+  },
+  // 搜索结果
+  {
+    path: "/search-result",
+    // component: () => import('../views/search-result.vue'),
+    component: () => import("../views/search/search-result.vue"),
+    meta: {
+      title: "搜索结果", // 页面标题title
+      keepAlive: true, // 开启缓存
+      // 仅前往这些页面时缓存
+      toPagesKeep: ["/video-details", "/report", "/feedback"],
+    },
+  },
+  // // h5/视频
+  // {
+  // 	path: '/video',
+  // 	component: () => import('../views/video.vue'),
+  // 	meta: {
+  // 		title: 'h5/视频', // 页面标题title
+  // 		keepAlive: true, // 开启缓存
+  // 		// 仅前往这些页面时缓存
+  // 		toPagesKeep: [
+  // 			'/video-classification',
+  // 			'/video-details',
+  // 			'/report',
+  // 			'/search',
+  // 			'/free-information',
+  // 			'/paid-contribution-video',
+  // 		],
+  // 	},
+  // },
+  // // 视频-分类
+  // {
+  // 	path: '/video-classification',
+  // 	component: () => import('../views/video-classification.vue'),
+  // 	meta: {
+  // 		title: '视频', // 页面标题title
+  // 		keepAlive: true, // 开启缓存
+  // 		// 仅前往这些页面时缓存
+  // 		toPagesKeep: [
+  // 			// '/video',
+  // 			'/video-details',
+  // 			'/report',
+  // 			'/search',
+  // 			'/free-information',
+  // 			'/paid-contribution-video',
+  // 		],
+  // 	},
+  // },
+  // // 视频详情
+  // {
+  // 	path: '/video-details',
+  // 	component: () => import('../views/video-details.vue'),
+  // 	meta: {
+  // 		title: '视频详情', // 页面标题title
+  // 		toTop: true, // 显示回到顶部
+  // 	},
+  // },
+  // 意见反馈
+  {
+    path: "/feedback",
+    component: () => import("../views/feedback.vue"),
+    meta: {
+      title: "意见反馈", // 页面标题title
+    },
+  },
+  // 意见反馈-结果
+  {
+    path: "/feedback-result",
+    component: () => import("../views/feedback-result.vue"),
+    meta: {
+      title: "意见反馈", // 页面标题title
+    },
+  },
+  // 各种协议页面
+  {
+    path: "/agreement",
+    component: () => import("../views/agreement.vue"),
+    meta: {
+      title: "协议", // 页面标题title
+    },
+  },
+  // // 视频
+  // {
+  // 	path: '/video-tab-list',
+  // 	component: () => import('../views/video-tab-list.vue'),
+  // 	meta: {
+  // 		title: '视频', // 页面标题title
+  // 	},
+  // },
+  // 文件下载
+  {
+    path: "/file-download",
+    component: () => import("../views/file-download.vue"),
+    meta: {
+      title: "文件下载", // 页面标题title
+    },
+  },
+  // 资料
+  // {
+  // 	path: '/information',
+  // 	component: () => import('../views/information.vue'),
+  // 	meta: {
+  // 		title: '资料', // 页面标题title
+  // 		keepAlive: true, // 开启缓存
+  // 		// 仅前往这些页面时缓存
+  // 		toPagesKeep: [
+  // 			'/information-series',
+  // 			'/report',
+  // 			'/paid-contribution-video',
+  // 			'/information-details',
+  // 			'/information-search',
+  // 		],
+  // 	},
+  // },
+  // // 资料
+  // {
+  // 	path: '/information-tab-list',
+  // 	component: () => import('../views/information-tab-list.vue'),
+  // 	meta: {
+  // 		title: '资料', // 页面标题title
+  // 	},
+  // },
+  // // 资料
+  // {
+  // 	path: '/information-release',
+  // 	component: () => import('../views/information-release.vue'),
+  // 	meta: {
+  // 		title: '无偿投稿资料', // 页面标题title
+  // 	},
+  // },
+  // 资料-系列
+  {
+    path: "/information-series",
+    component: () => import("../views/information-series.vue"),
+    meta: {
+      title: "资料-系列", // 页面标题title
+    },
+  },
+  // 资料-详情
+  {
+    path: "/information-details",
+    component: () => import("../views/information-details.vue"),
+    meta: {
+      title: "资料-详情", // 页面标题title
+      keepAlive: true, // 开启缓存
+      // 仅前往这些页面时缓存
+      toPagesKeep: ["/information-series", "/report"],
+    },
+  },
+  // 资料-搜索
+  {
+    path: "/information-search",
+    component: () => import("../views/information-search.vue"),
+    meta: {
+      title: "资料-搜索", // 页面标题title
+      keepAlive: true, // 开启缓存
+      // 仅前往这些页面时缓存
+      toPagesKeep: ["/information-details", "/report", "/feedback"],
+    },
+  },
+  // 图文
+  // {
+  // 	path: '/image-text',
+  // 	component: () => import('../views/image-text.vue'),
+  // 	meta: {
+  // 		title: '图文', // 页面标题title
+  // 		keepAlive: true, // 开启缓存
+  // 		// 仅前往这些页面时缓存
+  // 		toPagesKeep: [
+  // 			'/report',
+  // 			'/image-text-search',
+  // 			'/image-text-details',
+  // 			'/free-information',
+  // 			'/paid-contribution-video',
+  // 		],
+  // 	},
+  // },
+  // 图文-列表
+  {
+    path: "/image-text-list",
+    component: () => import("../views/image-text-list.vue"),
+    meta: {
+      title: "图文-列表", // 页面标题title
+    },
+  },
+  // 图文-搜索
+  {
+    path: "/image-text-search",
+    component: () => import("../views/image-text-search.vue"),
+    meta: {
+      title: "图文-搜索", // 页面标题title
+      keepAlive: true, // 开启缓存
+      // 仅前往这些页面时缓存
+      toPagesKeep: ["/image-text-details", "/report", "/feedback"],
+    },
+  },
+  // // 图文-详情
+  // {
+  // 	path: '/image-text-details',
+  // 	component: () => import('../views/image-text-details.vue'),
+  // 	meta: {
+  // 		title: '图文-详情', // 页面标题title
+  // 		toTop: true,
+  // 	},
+  // },
+  // 无偿投稿文章
+  {
+    path: "/free-articles",
+    component: () => import("../views/free-articles.vue"),
+    meta: {
+      title: "无偿投稿文章", // 页面标题title
+    },
+  },
+  // // 资料-我的发布
+  // {
+  // 	path: '/informationmy-my-release',
+  // 	component: () => import('../views/informationmy-my-release.vue'),
+  // 	meta: {
+  // 		title: '资料-我的发布', // 页面标题title
+  // 	},
+  // },
+  // // 图文-我的发布
+  // {
+  // 	path: '/image-text-my-release',
+  // 	component: () => import('../views/image-text-my-release.vue'),
+  // 	meta: {
+  // 		title: '图文-我的发布', // 页面标题title
+  // 	},
+  // },
+  // // 图文
+  // {
+  // 	path: '/image-text-tab-list',
+  // 	component: () => import('../views/image-text-tab-list.vue'),
+  // 	meta: {
+  // 		title: '图文', // 页面标题title
+  // 	},
+  // },
+  // // 论坛
+  // {
+  //   path: "/forum",
+  //   component: () => import("../views/forum/forum.vue"),
+  //   meta: {
+  //     title: "论坛", // 页面标题title
+  //     showTabbar: true, // 显示tabbar
+  //     keepAlive: true, // 开启缓存
+  //     // 仅前往这些页面时缓存
+  //     toPagesKeep: [
+  //       "/forum-question-details",
+  //       "/forum-message",
+  //       "/forum-release-issues",
+  //       "/search",
+  //     ],
+  //   },
+  // },
+  // {
+  //   path: "/forum-answer-item",
+  //   name: "forum-answer-item",
+  //   component: () => import("../views/forum/forumAnswerItem.vue"),
+  //   meta: {
+  //     title: "回答详情", // 页面标题title
+  //     showTabbar: true, // 显示tabbar
+  //     keepAlive: false, // 开启缓存
+  //   },
+  // },
+  // // 论坛-列表
+  // {
+  //   path: "/forum-tab-list",
+  //   component: () => import("../views/forum/forum-tab-list.vue"),
+  //   meta: {
+  //     title: "我的问答", // 页面标题title
+  //   },
+  // },
+  // // 论坛-我的关注
+  // {
+  //   path: "/forum-attention",
+  //   component: () => import("../views/forum/forum-attention.vue"),
+  //   meta: {
+  //     title: "论坛-我的关注", // 页面标题title
+  //   },
+  // },
+  // // 论坛-点赞我的
+  // {
+  //   path: "/forum-like-me",
+  //   component: () => import("../views/forum/forum-like-me.vue"),
+  //   meta: {
+  //     title: "论坛-点赞我的", // 页面标题title
+  //   },
+  // },
+  // // 论坛-浏览记录
+  // {
+  //   path: "/forum-history",
+  //   component: () => import("../views/forum/forum-history.vue"),
+  //   meta: {
+  //     title: "论坛-浏览记录", // 页面标题title
+  //   },
+  // },
+  // // 论坛-我的点赞
+  // {
+  //   path: "/forum-my-like",
+  //   component: () => import("../views/forum/forum-my-like.vue"),
+  //   meta: {
+  //     title: "论坛-我的点赞", // 页面标题title
+  //     keepAlive: true, // 开启缓存
+  //   },
+  // },
+  // // 论坛-消息
+  // {
+  //   path: "/forum-message",
+  //   component: () => import("../views/forum/forum-message.vue"),
+  //   meta: {
+  //     title: "论坛-消息", // 页面标题title
+  //   },
+  // },
+  // // 论坛-问题详情
+  // {
+  //   path: "/forum-question-details",
+  //   component: () => import("../views/forum/forum-question-details.vue"),
+  //   meta: {
+  //     title: "论坛-问题详情", // 页面标题title
+  //   },
+  // },
+  // // 论坛-举报
+  // {
+  //   path: "/forum-report",
+  //   component: () => import("../views/forum/forum-report.vue"),
+  //   meta: {
+  //     title: "论坛-举报", // 页面标题title
+  //   },
+  // },
+  // // 论坛-我的提问
+  // {
+  //   path: "/forum-my-question",
+  //   component: () => import("../views/forum/forum-my-question.vue"),
+  //   meta: {
+  //     title: "论坛-我的提问", // 页面标题title
+  //   },
+  // },
+  // // 论坛-回复我的
+  // {
+  //   path: "/forum-reply-to-me",
+  //   component: () => import("../views/forum/forum-reply-to-me.vue"),
+  //   meta: {
+  //     title: "论坛-回复我的", // 页面标题title
+  //   },
+  // },
+  // // 论坛-我的回答
+  // {
+  //   path: "/forum-my-reply",
+  //   component: () => import("../views/forum/forum-my-reply.vue"),
+  //   meta: {
+  //     title: "论坛-我的回答", // 页面标题title
+  //   },
+  // },
+  // // 论坛-我的回复
+  // {
+  //   path: "/forum-my-reply-comment",
+  //   component: () => import("../views/forum/forum-my-reply-comment.vue"),
+  //   meta: {
+  //     title: "论坛-我的回复", // 页面标题title
+  //   },
+  // },
+  // // 论坛-回答我的
+  // {
+  //   path: "/forum-answer-me",
+  //   component: () => import("../views/forum/forum-answer-me.vue"),
+  //   meta: {
+  //     title: "论坛-回答我的", // 页面标题title
+  //   },
+  // },
+  // // 论坛-我的评论
+  // {
+  //   path: "/forum-my-comments",
+  //   component: () => import("../views/forum/forum-my-comments.vue"),
+  //   meta: {
+  //     title: "论坛-我的评论", // 页面标题title
+  //   },
+  // },
+  // // 论坛-评论我的
+  // {
+  //   path: "/forum-comment-on-my",
+  //   component: () => import("../views/forum/forum-comment-on-my.vue"),
+  //   meta: {
+  //     title: "论坛-评论我的", // 页面标题title
+  //   },
+  // },
+  // // 论坛-搜索
+  // {
+  //   path: "/forum-search",
+  //   component: () => import("../views/forum/forum-search.vue"),
+  //   meta: {
+  //     title: "论坛-搜索", // 页面标题title
+  //     keepAlive: true, // 开启缓存
+  //     // 仅前往这些页面时缓存
+  //     toPagesKeep: ["/forum-question-details", "/contact-online"],
+  //   },
+  // },
+  // // 论坛-发布问题
+  // {
+  //   path: "/forum-release-issues",
+  //   name: "forum-release-issues",
+  //   component: () => import("../views/forum/forum-release-issues.vue"),
+  //   meta: {
+  //     title: "论坛-发布问题", // 页面标题title
+  //   },
+  // },
+  // // 论坛-回答问题
+  // {
+  //   path: "/forum-question-answering",
+  //   component: () => import("../views/forum/forum-question-answering.vue"),
+  //   meta: {
+  //     title: "论坛-回答问题", // 页面标题title
+  //   },
+  // },
+  // 活动
+  {
+    path: "/activity",
+    component: () => import("../views/activity.vue"),
+    meta: {
+      title: "活动", // 页面标题title
+      keepAlive: true, // 开启缓存
+      // 仅前往这些页面时缓存
+      toPagesKeep: ["/activity-sign-up", "/search", "/contact"],
+    },
+  },
+  // 活动
+  {
+    path: "/activity-tab-list",
+    component: () => import("../views/activity-tab-list.vue"),
+    meta: {
+      title: "活动", // 页面标题title
+    },
+  },
+  // 活动-我的发布
+  {
+    path: "/activit-my-release",
+    component: () => import("../views/activit-my-release.vue"),
+    meta: {
+      title: "活动-我的发布", // 页面标题title
+    },
+  },
+  // 活动-我的报名
+  {
+    path: "/activit-my-registration",
+    component: () => import("../views/activit-my-registration.vue"),
+    meta: {
+      title: "活动-我的报名", // 页面标题title
+    },
+  },
+  // 活动-我的收藏
+  {
+    path: "/activit-my-collection",
+    component: () => import("../views/activit-my-collection.vue"),
+    meta: {
+      title: "活动-我的收藏", // 页面标题title
+    },
+  },
+  // 活动-我的点赞
+  {
+    path: "/activit-my-likes",
+    component: () => import("../views/activit-my-likes.vue"),
+    meta: {
+      title: "活动-我的点赞", // 页面标题title
+    },
+  },
+  // 活动-浏览记录
+  {
+    path: "/activit-browse-records",
+    component: () => import("../views/activit-browse-records.vue"),
+    meta: {
+      title: "活动-浏览记录", // 页面标题title
+    },
+  },
+  // 活动-立即报名
+  {
+    path: "/activity-sign-up",
+    component: () => import("../views/activity-sign-up.vue"),
+    meta: {
+      title: "活动-立即报名", // 页面标题title
+    },
+  },
+  // 活动-立即报名-信息
+  {
+    path: "/activity-sign-up-information",
+    component: () => import("../views/activity-sign-up-information.vue"),
+    meta: {
+      title: "完善信息", // 页面标题title
+    },
+  },
+  // 活动-搜索
+  {
+    path: "/activity-search",
+    component: () => import("../views/activity-search.vue"),
+    meta: {
+      title: "搜索", // 页面标题title
+    },
+  },
+  // 活动-发布
+  {
+    path: "/activit-release",
+    component: () => import("../views/activit-release.vue"),
+    meta: {
+      title: "发布活动", // 页面标题title
+    },
+  },
+  // // 招聘
+  // {
+  // 	path: '/recruit-tab-list',
+  // 	component: () => import('../views/recruit-tab-list.vue'),
+  // 	meta: {
+  // 		title: '招聘', // 页面标题title
+  // 	},
+  // },
+  // // 招聘-详情
+  // {
+  // 	path: '/recruit-details',
+  // 	component: () => import('../views/recruit-details.vue'),
+  // 	meta: {
+  // 		title: '招聘-详情', // 页面标题title
+  // 	},
+  // },
+  // // 招聘-联系HR
+  // {
+  // 	path: '/recruit-contact',
+  // 	component: () => import('../views/recruit-contact.vue'),
+  // 	meta: {
+  // 		title: '联系HR', // 页面标题title
+  // 	},
+  // },
+  // // 招聘-搜索
+  // {
+  // 	path: '/recruit-search',
+  // 	component: () => import('../views/recruit-search.vue'),
+  // 	meta: {
+  // 		title: '搜索', // 页面标题title
+  // 	},
+  // },
+  // // 招聘
+  // {
+  // 	path: '/recruit',
+  // 	component: () => import('../views/recruit.vue'),
+  // 	meta: {
+  // 		title: '招聘', // 页面标题title
+  // 		keepAlive: true, // 开启缓存
+  // 		// 仅前往这些页面时缓存
+  // 		toPagesKeep: [
+  // 			'/recruit-details',
+  // 			'/search',
+  // 			'/contact',
+  // 		],
+  // 	},
+  // },
+  // // 招聘-我的发布
+  // {
+  // 	path: '/recruit-my-release',
+  // 	component: () => import('../views/recruit-my-release.vue'),
+  // 	meta: {
+  // 		title: '招聘-我的发布', // 页面标题title
+  // 	},
+  // },
+  // // 招聘-我的收藏
+  // {
+  // 	path: '/recruit-my-collection',
+  // 	component: () => import('../views/recruit-my-collection.vue'),
+  // 	meta: {
+  // 		title: '招聘-我的收藏', // 页面标题title
+  // 	},
+  // },
+  // // 招聘-浏览记录
+  // {
+  // 	path: '/recruit-browse-records',
+  // 	component: () => import('../views/recruit-browse-records.vue'),
+  // 	meta: {
+  // 		title: '招聘-浏览记录', // 页面标题title
+  // 	},
+  // },
+  // // 商品
+  // {
+  //   path: "/product",
+  //   component: () => import("../views/product.vue"),
+  //   meta: {
+  //     title: "商品", // 页面标题title
+  //   },
+  // },
+  // // 商品
+  // {
+  //   path: "/product-tab-list",
+  //   component: () => import("../views/product-tab-list.vue"),
+  //   meta: {
+  //     title: "商品", // 页面标题title
+  //   },
+  // },
+  // // 商品-确认订单
+  // {
+  //   path: "/product-confirm-order",
+  //   component: () => import("../views/product-confirm-order.vue"),
+  //   meta: {
+  //     title: "确认订单", // 页面标题title
+  //   },
+  // },
+  // // 商品-购物车确认订单
+  // {
+  //   path: "/product-cart-confirm-order",
+  //   component: () => import("../views/product-cart-confirm-order.vue"),
+  //   meta: {
+  //     title: "确认订单", // 页面标题title
+  //   },
+  // },
+  // // 商品-收货地址
+  // {
+  //   path: "/product-address",
+  //   component: () => import("../views/product-address.vue"),
+  //   meta: {
+  //     title: "收货地址", // 页面标题title
+  //   },
+  // },
+  // // 商品-收货地址-添加
+  // {
+  //   path: "/product-address-add",
+  //   component: () => import("../views/product-address-add.vue"),
+  //   meta: {
+  //     title: "收货地址-添加", // 页面标题title
+  //   },
+  // },
+  // // 商品-购物车
+  // {
+  //   path: "/product-address-shopping-cart",
+  //   component: () => import("../views/product-address-shopping-cart.vue"),
+  //   meta: {
+  //     title: "购物车", // 页面标题title
+  //   },
+  // },
+  // // 商品详情
+  // {
+  //   path: "/product-details",
+  //   component: () => import("../views/product-details.vue"),
+  //   meta: {
+  //     title: "商品详情", // 页面标题title
+  //   },
+  // },
+  // // 商品-搜索
+  // {
+  //   path: "/product-search",
+  //   component: () => import("../views/product-search.vue"),
+  //   meta: {
+  //     title: "搜索", // 页面标题title
+  //     keepAlive: true, // 开启缓存
+  //     // 仅前往这些页面时缓存
+  //     toPagesKeep: ["/product-details"],
+  //   },
+  // },
+  // // 商品-客服
+  // {
+  //   path: "/product-customer-service",
+  //   component: () => import("../views/product-customer-service.vue"),
+  //   meta: {
+  //     title: "客服", // 页面标题title
+  //   },
+  // },
+  // // 商品-联系我们
+  // {
+  //   path: "/product-contact",
+  //   component: () => import("../views/product-contact.vue"),
+  //   meta: {
+  //     title: "联系我们", // 页面标题title
+  //   },
+  // },
+  // // 商品-订单详情
+  // {
+  //   path: "/product-order-details",
+  //   component: () => import("../views/product-order-details.vue"),
+  //   meta: {
+  //     title: "订单详情", // 页面标题title
+  //   },
+  // },
+  // // 商品-我的收藏
+  // {
+  //   path: "/product-my-collection",
+  //   component: () => import("../views/product-my-collection.vue"),
+  //   meta: {
+  //     title: "我的收藏", // 页面标题title
+  //   },
+  // },
+  // // 商品-浏览记录
+  // {
+  //   path: "/product-browse-records",
+  //   component: () => import("../views/product-browse-records.vue"),
+  //   meta: {
+  //     title: "浏览记录", // 页面标题title
+  //   },
+  // },
+  // // 商品-我的发布
+  // {
+  //   path: "/product-my-release",
+  //   component: () => import("../views/product-my-release.vue"),
+  //   meta: {
+  //     title: "我的发布", // 页面标题title
+  //   },
+  // },
+  // // 商品-订单
+  // {
+  //   path: "/product-order",
+  //   component: () => import("../views/product-order.vue"),
+  //   meta: {
+  //     title: "订单", // 页面标题title
+  //   },
+  // },
+
+  // // 新闻
+  // {
+  // 	path: '/news',
+  // 	component: () => import('../views/news.vue'),
+  // 	meta: {
+  // 		title: '新闻', // 页面标题title
+  // 	},
+  // },
+  // // 新闻
+  // {
+  // 	path: '/news-tab-list',
+  // 	component: () => import('../views/news-tab-list.vue'),
+  // 	meta: {
+  // 		title: '新闻', // 页面标题title
+  // 	},
+  // },
+  // // 举报
+  // {
+  // 	path: '/news-report',
+  // 	component: () => import('../views/news-report.vue'),
+  // 	meta: {
+  // 		title: '举报', // 页面标题title
+  // 	},
+  // },
+  // // 新闻详情
+  // {
+  // 	path: '/news-details',
+  // 	component: () => import('../views/news-details.vue'),
+  // 	meta: {
+  // 		title: '新闻详情', // 页面标题title
+  // 		toTop: true,
+  // 	},
+  // },
+  // // 新闻搜索
+  // {
+  // 	path: '/news-search',
+  // 	component: () => import('../views/news-search.vue'),
+  // 	meta: {
+  // 		title: '搜索', // 页面标题title
+  // 	},
+  // },
+  // // 新闻-我的收藏
+  // {
+  // 	path: '/news-my-collection',
+  // 	component: () => import('../views/news-my-collection.vue'),
+  // 	meta: {
+  // 		title: '我的收藏', // 页面标题title
+  // 	},
+  // },
+  // // 新闻-浏览记录
+  // {
+  // 	path: '/news-browse-records',
+  // 	component: () => import('../views/news-browse-records.vue'),
+  // 	meta: {
+  // 		title: '浏览记录', // 页面标题title
+  // 	},
+  // },
+  // // 新闻-我的评论
+  // {
+  // 	path: '/news-my-comments',
+  // 	component: () => import('../views/news-my-comments.vue'),
+  // 	meta: {
+  // 		title: '我的评论', // 页面标题title
+  // 	},
+  // },
+  // // 新闻-评论我的
+  // {
+  // 	path: '/news-comments-to-my',
+  // 	component: () => import('../views/news-comments-to-my.vue'),
+  // 	meta: {
+  // 		title: '评论我的', // 页面标题title
+  // 	},
+  // },
+  // // 联系我们
+  // {
+  // 	path: '/news-contact',
+  // 	component: () => import('../views/news-contact.vue'),
+  // 	meta: {
+  // 		title: '联系我们', // 页面标题title
+  // 	},
+  // },
+  // // 新闻-我的回复
+  // {
+  // 	path: '/news-my-reply',
+  // 	component: () => import('../views/news-my-reply.vue'),
+  // 	meta: {
+  // 		title: '新闻-我的回复', // 页面标题title
+  // 	},
+  // },
+  // // 新闻-回复我的
+  // {
+  // 	path: '/news-reply-to-me',
+  // 	component: () => import('../views/news-reply-to-me.vue'),
+  // 	meta: {
+  // 		title: '新闻-回复我的', // 页面标题title
+  // 	},
+  // },
+  // // 新闻-我的点赞
+  // {
+  // 	path: '/news-my-likes',
+  // 	component: () => import('../views/news-my-likes.vue'),
+  // 	meta: {
+  // 		title: '新闻-我的点赞', // 页面标题title
+  // 	},
+  // },
+  // 热搜
+  {
+    path: "/hot-search",
+    component: () => import("../views/hot-search/hot-search.vue"),
+    meta: {
+      title: "热搜", // 页面标题title
+      showTabbar: true, // 显示tabbar
+      // keepAlive: true, // 默认开启缓存,防止第一次缓存失败
+    },
+  },
+  // {
+  //   path: "/hot-search",
+  //   component: () => import("../views/hot-search.vue"),
+  //   meta: {
+  //     title: "热搜", // 页面标题title
+  //     showTabbar: true, // 显示tabbar
+  //     // keepAlive: true, // 默认开启缓存,防止第一次缓存失败
+  //   },
+  // },
+  // // 需求
+  // {
+  // 	path: '/demand',
+  // 	component: () => import('../views/demand.vue'),
+  // 	meta: {
+  // 		title: '需求', // 页面标题title
+  // 	},
+  // },
+  // // 需求
+  // {
+  // 	path: '/demand-tab-list',
+  // 	component: () => import('../views/demand-tab-list.vue'),
+  // 	meta: {
+  // 		title: '需求', // 页面标题title
+  // 	},
+  // },
+  // // 需求-搜索
+  // {
+  // 	path: '/demand-search',
+  // 	component: () => import('../views/demand-search.vue'),
+  // 	meta: {
+  // 		title: '搜索', // 页面标题title
+  // 	},
+  // },
+  // // 需求-发布
+  // {
+  // 	path: '/demand-release',
+  // 	component: () => import('../views/demand-release.vue'),
+  // 	meta: {
+  // 		title: '发布需求', // 页面标题title
+  // 	},
+  // },
+  // // 需求-发布-填写
+  // {
+  // 	path: '/demand-release-write',
+  // 	component: () => import('../views/demand-release-write.vue'),
+  // 	meta: {
+  // 		title: '发布需求-填写', // 页面标题title
+  // 	},
+  // },
+  // // 需求-结果
+  // {
+  // 	path: '/demand-result',
+  // 	component: () => import('../views/demand-result.vue'),
+  // 	meta: {
+  // 		title: '发布结果', // 页面标题title
+  // 	},
+  // },
+  // // 需求-详情
+  // {
+  // 	path: '/demand-details',
+  // 	component: () => import('../views/demand-details.vue'),
+  // 	meta: {
+  // 		title: '需求详情', // 页面标题title
+  // 	},
+  // },
+  // // 需求-详情-我的
+  // {
+  // 	path: '/demand-details-my',
+  // 	component: () => import('../views/demand-details-my.vue'),
+  // 	meta: {
+  // 		title: '需求详情', // 页面标题title
+  // 	},
+  // },
+  // // 需求-浏览记录
+  // {
+  // 	path: '/demand-browse-records',
+  // 	component: () => import('../views/demand-browse-records.vue'),
+  // 	meta: {
+  // 		title: '浏览记录', // 页面标题title
+  // 	},
+  // },
+  // // 需求-我的发布
+  // {
+  // 	path: '/demand-my-release',
+  // 	component: () => import('../views/demand-my-release.vue'),
+  // 	meta: {
+  // 		title: '我的发布', // 页面标题title
+  // 	},
+  // },
+  // // 需求-我的收藏
+  // {
+  // 	path: '/demand-my-collection',
+  // 	component: () => import('../views/demand-my-collection.vue'),
+  // 	meta: {
+  // 		title: '我的收藏', // 页面标题title
+  // 	},
+  // },
+  // // 需求-我的评论
+  // {
+  // 	path: '/demand-my-comments',
+  // 	component: () => import('../views/demand-my-comments.vue'),
+  // 	meta: {
+  // 		title: '需求-我的评论', // 页面标题title
+  // 	},
+  // },
+  // // 需求-评论我的
+  // {
+  // 	path: '/demand-comment-on-my',
+  // 	component: () => import('../views/demand-comment-on-my.vue'),
+  // 	meta: {
+  // 		title: '需求-评论我的', // 页面标题title
+  // 	},
+  // },
+  // 全局搜索
+  {
+    path: "/global-search",
+    component: () => import("../views/global-search.vue"),
+    meta: {
+      title: "全局搜索", // 页面标题title
+    },
+  },
+  // 联系我们
+  {
+    path: "/contact-us",
+    component: () => import("../views/contact-us.vue"),
+    meta: {
+      title: "联系我们", // 页面标题title
+    },
+  },
+  // 我的反馈
+  {
+    path: "/feedback-my",
+    component: () => import("../views/feedback-my.vue"),
+    meta: {
+      title: "我的反馈", // 页面标题title
+    },
+  },
+  // 反馈情况
+  {
+    path: "/feedback-situation",
+    component: () => import("../views/feedback-situation.vue"),
+    meta: {
+      title: "反馈情况", // 页面标题title
+    },
+  },
+  // 消息
+  {
+    path: "/message",
+    component: () => import("../views/message.vue"),
+    meta: {
+      title: "消息", // 页面标题title
+      keepAlive: true, // 开启缓存
+      // 仅前往这些页面时缓存
+      toPagesKeep: ["/message-info"],
+    },
+  },
+  // 消息
+  {
+    path: "/message-info",
+    component: () => import("../views/message-info.vue"),
+    meta: {
+      title: "消息详情", // 页面标题title
+    },
+  },
+  // // 学习服务-图文-历史
+  // {
+  // 	path: '/learning-services-image-text-history',
+  // 	component: () => import('../views/learning-services-image-text-history.vue'),
+  // 	meta: {
+  // 		title: '学习服务-图文-历史', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-图文-回复我的
+  // {
+  // 	path: '/learning-services-image-text-reply-to-me',
+  // 	component: () => import('../views/learning-services-image-text-reply-to-me.vue'),
+  // 	meta: {
+  // 		title: '学习服务-图文-历史', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-图文-我的回复
+  // {
+  // 	path: '/learning-services-image-text-my-reply',
+  // 	component: () => import('../views/learning-services-image-text-my-reply.vue'),
+  // 	meta: {
+  // 		title: '学习服务-图文-我的回复', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-图文-我的已购
+  // {
+  // 	path: '/learning-services-image-text-my-purchased',
+  // 	component: () => import('../views/learning-services-image-text-my-purchased.vue'),
+  // 	meta: {
+  // 		title: '学习服务-图文-我的已购', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-图文-我的评论
+  // {
+  // 	path: '/learning-services-image-text-my-comments',
+  // 	component: () => import('../views/learning-services-image-text-my-comments.vue'),
+  // 	meta: {
+  // 		title: '学习服务-图文-我的评论', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-图文-我的收藏
+  // {
+  // 	path: '/learning-services-image-text-my-collection',
+  // 	component: () => import('../views/learning-services-image-text-my-collection.vue'),
+  // 	meta: {
+  // 		title: '学习服务-图文-我的收藏', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-图文-我的发布
+  // {
+  // 	path: '/learning-services-image-text-my-release',
+  // 	component: () => import('../views/learning-services-image-text-my-release.vue'),
+  // 	meta: {
+  // 		title: '学习服务-图文-我的发布', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-图文-我的点赞
+  // {
+  // 	path: '/learning-services-image-text-my-likes',
+  // 	component: () => import('../views/learning-services-image-text-my-likes.vue'),
+  // 	meta: {
+  // 		title: '学习服务-图文-我的点赞', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-图文-评论我的
+  // {
+  // 	path: '/learning-services-comment-on-my',
+  // 	component: () => import('../views/learning-services-comment-on-my.vue'),
+  // 	meta: {
+  // 		title: '学习服务-图文-评论我的', // 页面标题title
+  // 	},
+  // },
+  // 学习服务-视频-我的下载
+  {
+    path: "/learning-services-video-my-downloads",
+    component: () =>
+      import("../views/learning-services-video-my-downloads.vue"),
+    meta: {
+      title: "学习服务-视频-我的下载", // 页面标题title
+    },
+  },
+  // // 学习服务-视频-我的点赞
+  // {
+  // 	path: '/learning-services-video-my-likes',
+  // 	component: () => import('../views/learning-services-video-my-likes.vue'),
+  // 	meta: {
+  // 		title: '学习服务-视频-我的点赞', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-视频-学习历史
+  // {
+  // 	path: '/learning-services-video-history',
+  // 	component: () => import('../views/learning-services-video-history.vue'),
+  // 	meta: {
+  // 		title: '学习服务-视频-学习历史', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-视频-回复我的
+  // {
+  // 	path: '/learning-services-video-reply-to-me',
+  // 	component: () => import('../views/learning-services-video-reply-to-me.vue'),
+  // 	meta: {
+  // 		title: '学习服务-视频-回复我的', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-视频-我的回复
+  // {
+  // 	path: '/learning-services-video-my-reply',
+  // 	component: () => import('../views/learning-services-video-my-reply.vue'),
+  // 	meta: {
+  // 		title: '学习服务-视频-我的回复', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-视频-我的已购
+  // {
+  // 	path: '/learning-services-video-my-purchased',
+  // 	component: () => import('../views/learning-services-video-my-purchased.vue'),
+  // 	meta: {
+  // 		title: '学习服务-视频-我的已购', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-视频-我的收藏
+  // {
+  // 	path: '/learning-services-video-my-collection',
+  // 	component: () => import('../views/learning-services-video-my-collection.vue'),
+  // 	meta: {
+  // 		title: '学习服务-视频-我的收藏', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-视频-我的评论
+  // {
+  // 	path: '/learning-services-video-my-comments',
+  // 	component: () => import('../views/learning-services-video-my-comments.vue'),
+  // 	meta: {
+  // 		title: '学习服务-视频-我的评论', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-视频-我的发布
+  // {
+  // 	path: '/learning-services-video-my-release',
+  // 	component: () => import('../views/learning-services-video-my-release.vue'),
+  // 	meta: {
+  // 		title: '学习服务-视频-我的发布', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-视频-评论我的
+  // {
+  // 	path: '/learning-services-video-comment-on-my',
+  // 	component: () => import('../views/learning-services-video-comment-on-my.vue'),
+  // 	meta: {
+  // 		title: '学习服务-视频-评论我的', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-资料-我的下载
+  // {
+  // 	path: '/learning-services-information-my-downloads',
+  // 	component: () => import('../views/learning-services-information-my-downloads.vue'),
+  // 	meta: {
+  // 		title: '学习服务-资料-我的下载', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-资料-学习历史
+  // {
+  // 	path: '/learning-services-information-history',
+  // 	component: () => import('../views/learning-services-information-history.vue'),
+  // 	meta: {
+  // 		title: '学习服务-资料-学习历史', // 页面标题title
+  // 	},
+  // },
+  // // 学习服务-资料-我的收藏
+  // {
+  // 	path: '/learning-services-information-my-collection',
+  // 	component: () => import('../views/learning-services-information-my-collection.vue'),
+  // 	meta: {
+  // 		title: '学习服务-资料-我的收藏', // 页面标题title
+  // 	},
+  // },
+  // 学习服务-资料-我的发布
+  {
+    path: "/learning-services-information-my-release",
+    component: () =>
+      import("../views/learning-services-information-my-release.vue"),
+    meta: {
+      title: "学习服务-资料-我的发布", // 页面标题title
+    },
+  },
+  // 联系我们
+  {
+    path: "/contact",
+    component: () => import("../views/contact.vue"),
+    meta: {
+      title: "联系我们", // 页面标题title
+    },
+  },
+  // 在线客服
+  {
+    path: "/contact-online",
+    component: () => import("../views/contact-online.vue"),
+    meta: {
+      title: "在线客服", // 页面标题title
+    },
+  },
+  // PPT预览
+  {
+    path: "/ppt-view",
+    component: () => import("../views/ppt-view.vue"),
+    meta: {
+      title: "PPT预览", // 页面标题title
+    },
+  },
+  // 富文本编辑
+  {
+    path: "/app-rich-text",
+    component: () => import("../views/app-rich-text.vue"),
+    meta: {
+      title: "富文本编辑", // 页面标题title
+    },
+  },
+  // 富文本编辑
+  {
+    path: "/rich-text-view",
+    component: () => import("../views/rich-text-view.vue"),
+    meta: {
+      title: "富文本", // 页面标题title
+    },
+  },
+  // // PDF预览
+  {
+    path: "/pdf-view",
+    component: () => import("../views/pdf.vue"),
+    meta: {
+      title: "PDF预览", // 页面标题title
+    },
+  },
+  // PDF预览
+  // {
+  //   path: "/pdf-view",
+  //   component: () => import("../views/pdf/pdf-view-radius.vue"),
+  //   meta: {
+  //     title: "PDF预览", // 页面标题title
+  //   },
+  // },
+
+  // // 图文模块-合集列表
+  // {
+  // 	path: '/image-text-collection-list',
+  // 	component: () => import('../views/image-text-collection-list.vue'),
+  // 	meta: {
+  // 		title: '合集列表', // 页面标题title
+  // 	},
+  // },
+
+  // // 资料模块-合集列表
+  // {
+  // 	path: '/information-collection-list',
+  // 	component: () => import('../views/information-collection-list.vue'),
+  // 	meta: {
+  // 		title: '合集列表', // 页面标题title
+  // 	},
+  // },
+
+  // 资料模块-压缩包打开
+  {
+    path: "/compressed-package-open",
+    component: () => import("../views/compressed-package-open.vue"),
+    meta: {
+      title: "压缩包打开", // 页面标题title
+    },
+  },
+  // 全局搜索新(资料,图文,视频)
+  {
+    path: "/global-search2",
+    component: () => import("../views/global-search2.vue"),
+    meta: {
+      title: "搜索结果", // 页面标题title
+    },
+  },
+  // 企业用户请绑定手机号
+  {
+    path: "/bind-mobile-phone-number",
+    component: () => import("../views/bind-mobile-phone-number.vue"),
+    meta: {
+      title: "企业用户请绑定手机号", // 页面标题title
+    },
+  },
+  // // 个人中心-资料-我的订阅
+  // {
+  // 	path: '/learning-services-information-my-subscriptions',
+  // 	component: () => import('../views/learning-services-information-my-subscriptions.vue'),
+  // 	meta: {
+  // 		title: '我的订阅', // 页面标题title
+  // 	},
+  // },
+  // // 个人中心-图文-我的订阅
+  // {
+  // 	path: '/learning-services-image-text-my-subscriptions',
+  // 	component: () => import('../views/learning-services-image-text-my-subscriptions.vue'),
+  // 	meta: {
+  // 		title: '我的订阅', // 页面标题title
+  // 	},
+  // },
+  // // 个人中心-视频-我的追番
+  // {
+  // 	path: '/learning-services-video-my-catch-up',
+  // 	component: () => import('../views/learning-services-video-my-catch-up.vue'),
+  // 	meta: {
+  // 		title: '我的追番', // 页面标题title
+  // 	},
+  // },
+  // 首页
+  {
+    path: "/pdf",
+    component: () => import("../views/pdf/index.vue"),
+    meta: {
+      title: "PDF", // 页面标题ti.footer-wrap>button tle
+    },
+  },
+  // // 个人中心-资料-点赞我的
+  // {
+  // 	path: '/learning-services-information-like-me',
+  // 	component: () => import('../views/learning-services-information-like-me.vue'),
+  // 	meta: {
+  // 		title: '点赞我的', // 页面标题title
+  // 	},
+  // },
+  // // 个人中心-资料-回复我的
+  // {
+  // 	path: '/learning-services-information-reply-to-me',
+  // 	component: () => import('../views/learning-services-information-reply-to-me.vue'),
+  // 	meta: {
+  // 		title: '回复我的', // 页面标题title
+  // 	},
+  // },
+  // // 个人中心-资料-评论我的
+  // {
+  // 	path: '/learning-services-information-comment-on-my',
+  // 	component: () => import('../views/learning-services-information-comment-on-my.vue'),
+  // 	meta: {
+  // 		title: '评论我的', // 页面标题title
+  // 	},
+  // },
+  // 新增
+  // // 个人中心-资料-我的点赞
+  // {
+  // 	path: '/learning-services-information-my-likes',
+  // 	component: () => import('../views/learning-services-information-my-likes.vue'),
+  // 	meta: {
+  // 		title: '我的点赞', // 页面标题title
+  // 	},
+  // },
+  // // 个人中心-资料-我的回复
+  // {
+  // 	path: '/learning-services-information-my-reply',
+  // 	component: () => import('../views/learning-services-information-my-reply.vue'),
+  // 	meta: {
+  // 		title: '我的回复', // 页面标题title
+  // 	},
+  // },
+  // // 个人中心-资料-我的评论
+  // {
+  // 	path: '/learning-services-information-my-comments',
+  // 	component: () => import('../views/learning-services-information-my-comments.vue'),
+  // 	meta: {
+  // 		title: '我的评论', // 页面标题title
+  // 	},
+  // },
+  // // 个人中心-图文-点赞我的
+  // {
+  // 	path: '/learning-services-image-text-like-me',
+  // 	component: () => import('../views/learning-services-image-text-like-me.vue'),
+  // 	meta: {
+  // 		title: '点赞我的', // 页面标题title
+  // 	},
+  // },
+  // // 个人中心-视频-点赞我的
+  // {
+  // 	path: '/learning-services-video-like-me',
+  // 	component: () => import('../views/learning-services-video-like-me.vue'),
+  // 	meta: {
+  // 		title: '点赞我的', // 页面标题title
+  // 	},
+  // },
+  // 全局搜索最新
+  {
+    path: "/global-search-new",
+    component: () => import("../views/global-search-new.vue"),
+    meta: {
+      title: "搜索结果", // 页面标题title
+    },
+  },
+];
+
+const router = new VueRouter({
+  mode: "hash",
+  // mode: 'history',
+  routes,
+});
+
+let disabledKeydown = false;
+export const disabledKeydownFn = (bl) => (disabledKeydown = bl);
+document.addEventListener("keydown", (e) => {
+  if (disabledKeydown) {
+    e.preventDefault();
+  }
+});
+router.beforeEach((to, from, next) => {
+  /* 路由发生变化修改页面title */
+
+  // 判断连接是否带token
+  if (to.query.token) {
+    localStorage.setItem("token", to.query.token);
+  }
+
+  // 判断是否APP打开
+  if (to.query.platform) {
+    localStorage.setItem("APP_OPEN", to.query.platform);
+  }
+
+  if (to.meta.title) {
+    document.title = to.meta.title;
+  }
+  if (to.path === "/forum-release-issues") {
+    setCopyFlag(true);
+  } else {
+    setCopyFlag(false);
+  }
+  if (to.path === "/login") {
+    to.params.from_path = from.path;
+  }
+  disabledKeydown = [
+    "/image-text-details", // 图文
+    "/information-details", // 资料
+    "/ppt-view", // 查看ppt
+  ].includes(to.path);
+  // 监听路由中的code
+  getUrlCode(location.href);
+  if (!to.meta.keepAlive) window.scrollTo(0, 0);
+  next();
+});
+
+// 重写back()方法,没有页面时则返回首页
+router.back = () => {
+  const currentPage = location.hash.split("#").join("").split("?")[0];
+  if (localStorage.getItem("APP_OPEN")) {
+    const openPages = [
+      "/video-tab-list",
+      "/image-text-tab-list",
+      "/information-tab-list",
+      "/video-my-release",
+      "/image-text-my-release",
+      "/informationmy-my-releaset",
+    ];
+    try {
+      if (
+        localStorage.getItem("APP_OPEN") === "ios" &&
+        openPages.includes(currentPage)
+      ) {
+        window.webkit.messageHandlers.h5PageBack.postMessage("h5_page_back");
+      }
+    } catch (e) {
+      console.error(e);
+    }
+    setTimeout(() => {
+      window.history.back();
+    }, 100);
+    return;
+  }
+  if (
+    window.history &&
+    (window.history.length <= 1 || window.history.state === null)
+  ) {
+    router.push("/");
+  } else {
+    router.go(-1);
+  }
+};
+export default router;

+ 102 - 10
package-lock.json

@@ -1252,9 +1252,9 @@
       "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA=="
     },
     "@types/event-emitter": {
-      "version": "0.3.3",
-      "resolved": "https://registry.npmjs.org/@types/event-emitter/-/event-emitter-0.3.3.tgz",
-      "integrity": "sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q=="
+      "version": "0.3.5",
+      "resolved": "https://registry.npmjs.org/@types/event-emitter/-/event-emitter-0.3.5.tgz",
+      "integrity": "sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ=="
     },
     "@types/glob": {
       "version": "7.2.0",
@@ -6028,8 +6028,15 @@
     "for-in": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
-      "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
-      "dev": true
+      "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ=="
+    },
+    "for-own": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+      "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==",
+      "requires": {
+        "for-in": "^1.0.1"
+      }
     },
     "forever-agent": {
       "version": "0.6.1",
@@ -7330,8 +7337,7 @@
     "is-extendable": {
       "version": "0.1.1",
       "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
-      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
-      "dev": true
+      "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="
     },
     "is-extglob": {
       "version": "2.1.1",
@@ -7890,6 +7896,11 @@
       "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
       "dev": true
     },
+    "lodash.tail": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz",
+      "integrity": "sha512-+7y6zfkH4TqgS5DYKIqJuxmL5xT3WUUumVMZVRpDUo0UqJREwZqKmGo9wluj12FbPGl1UjRf2TnAImbw/bKtdw=="
+    },
     "lodash.throttle": {
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
@@ -8336,6 +8347,22 @@
         }
       }
     },
+    "mixin-object": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz",
+      "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==",
+      "requires": {
+        "for-in": "^0.1.3",
+        "is-extendable": "^0.1.1"
+      },
+      "dependencies": {
+        "for-in": {
+          "version": "0.1.8",
+          "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz",
+          "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g=="
+        }
+      }
+    },
     "mkdirp": {
       "version": "0.5.6",
       "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
@@ -10764,9 +10791,9 @@
       "dev": true
     },
     "preact": {
-      "version": "10.16.0",
-      "resolved": "https://registry.npmjs.org/preact/-/preact-10.16.0.tgz",
-      "integrity": "sha512-XTSj3dJ4roKIC93pald6rWuB2qQJO9gO2iLLyTe87MrjQN+HklueLsmskbywEWqCHlclgz3/M4YLL2iBr9UmMA=="
+      "version": "10.19.2",
+      "resolved": "https://registry.npmjs.org/preact/-/preact-10.19.2.tgz",
+      "integrity": "sha512-UA9DX/OJwv6YwP9Vn7Ti/vF80XL+YA5H2l7BpCtUr3ya8LWHFzpiO5R+N7dN16ujpIxhekRFuOOF82bXX7K/lg=="
     },
     "prelude-ls": {
       "version": "1.1.2",
@@ -13706,6 +13733,71 @@
         "vue-style-loader": "^4.1.0"
       }
     },
+    "vue-piczoom": {
+      "version": "1.0.6",
+      "resolved": "https://registry.npmjs.org/vue-piczoom/-/vue-piczoom-1.0.6.tgz",
+      "integrity": "sha512-kiok7dkp9sR94e7rjI1AxpsVGhCVyIk1UuV9EwGscMJ/WR0q3sbtedoXrC4jDxBKuS++lw/5GWPoNYiO4D3t2g==",
+      "requires": {
+        "node-sass": "^4.7.2",
+        "sass-loader": "^6.0.6",
+        "vue": "^2.5.2"
+      },
+      "dependencies": {
+        "clone-deep": {
+          "version": "2.0.2",
+          "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz",
+          "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==",
+          "requires": {
+            "for-own": "^1.0.0",
+            "is-plain-object": "^2.0.4",
+            "kind-of": "^6.0.0",
+            "shallow-clone": "^1.0.0"
+          }
+        },
+        "is-plain-object": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+          "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+          "requires": {
+            "isobject": "^3.0.1"
+          }
+        },
+        "pify": {
+          "version": "3.0.0",
+          "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+          "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg=="
+        },
+        "sass-loader": {
+          "version": "6.0.7",
+          "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.7.tgz",
+          "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==",
+          "requires": {
+            "clone-deep": "^2.0.1",
+            "loader-utils": "^1.0.1",
+            "lodash.tail": "^4.1.1",
+            "neo-async": "^2.5.0",
+            "pify": "^3.0.0"
+          }
+        },
+        "shallow-clone": {
+          "version": "1.0.0",
+          "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz",
+          "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==",
+          "requires": {
+            "is-extendable": "^0.1.1",
+            "kind-of": "^5.0.0",
+            "mixin-object": "^2.0.1"
+          },
+          "dependencies": {
+            "kind-of": {
+              "version": "5.1.0",
+              "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+              "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
+            }
+          }
+        }
+      }
+    },
     "vue-router": {
       "version": "3.6.5",
       "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.6.5.tgz",

+ 2 - 1
package.json

@@ -9,7 +9,7 @@
   "dependencies": {
     "@amap/amap-jsapi-loader": "^1.0.1",
     "@fingerprintjs/fingerprintjs": "^3.3.3",
-    "@wangeditor/editor": "^5.1.22",
+    "@wangeditor/editor": "^5.1.23",
     "@wangeditor/editor-for-vue": "^1.0.2",
     "axios": "^0.27.2",
     "callapp-lib": "^3.5.3",
@@ -28,6 +28,7 @@
     "vue": "^2.6.10",
     "vue-awesome-swiper": "^4.1.1",
     "vue-cropper": "^0.6.4",
+    "vue-piczoom": "^1.0.6",
     "vue-router": "^3.5.2",
     "vue-video-player": "^5.0.2",
     "vuex": "^3.6.2"

+ 2 - 4
public/pdf/web/viewer.html

@@ -109,10 +109,8 @@ See https://github.com/adobe-type-tools/cmap-resources
     <script src="../build/pdf.js"></script>
     <script src="wasm_exec.js"></script>
     <script src="viewer.js"></script>
-
-    <script src="viewer.js"></script>
     <style>
-      .hide_btn{
+      .hide_btn {
         display: none;
       }
     </style>
@@ -810,7 +808,7 @@ See https://github.com/adobe-type-tools/cmap-resources
                   id="editorModeSeparator"
                   class="verticalToolbarSeparator"
                 ></div>
-                
+
                 <!-- 功能 -->
                 <button
                   id="secondaryToolbarToggle"

+ 18 - 19
src/App.vue

@@ -7,9 +7,9 @@
     <Abandon v-model="abandon.show" />
     <isLogin v-model="is_login.show" />
     <ConfirmPopup />
-    <ToTop class="FixedBtn" :style="{ left: btnLeft + 'px' }" />
-    <ToContribute class="FixedBtn" :style="{ left: btnLeft + 'px' }" />
-    <ToContact class="FixedBtn" :style="{ left: btnLeft + 'px' }" />
+    <ToTop class="FixedBtn" :style="{ left: btnLeft + 'rem' }" />
+    <ToContribute class="FixedBtn" :style="{ left: btnLeft + 'rem' }" />
+    <ToContact class="FixedBtn" :style="{ left: btnLeft + 'rem' }" />
   </div>
 </template>
 
@@ -61,27 +61,26 @@ export default {
     },
   },
   mounted() {
-    this.setBtnPosition();
-    this.setBodyZoom();
+    this.setRem();
     window.onresize = () => {
       this.$resizeListenerList.forEach((fn) => fn());
       this.setBtnPosition();
-      this.setBodyZoom();
     };
   },
   methods: {
-    setBodyZoom() {
-      const body = document.querySelector("body"),
+    setRem() {
+      const html = document.querySelector("html"),
         max_width = window.screen.availWidth;
-      body.style.zoom = (max_width / 1920).toFixed("4");
+      html.style.fontSize = (max_width / 1920) * 16 + "px";
+      window.$window_scale = max_width / 1920;
+      this.setBtnPosition();
     },
     setBtnPosition() {
       let btnRight = 100 + 8;
-      // this.btnLeft =
-      //   window.innerWidth - btnRight > 1097
-      //     ? window.innerWidth - btnRight
-      //     : 1097;
-      this.btnLeft = window.innerWidth - btnRight;
+      this.btnLeft =
+        window.innerWidth - btnRight > 1097
+          ? (window.innerWidth - btnRight) / window.$window_scale / 16
+          : 1097 / window.$window_scale / 16;
     },
   },
 };
@@ -90,8 +89,8 @@ export default {
 <style lang="scss">
 @import "~@/assets/css/common.scss";
 :root {
-  --scrollTop: 0px; // 窗口当前滚动位置
-  --windowHeight: 0px; // 窗口最大宽度
+  --scrollTop: 0rem; // 窗口当前滚动位置
+  --windowHeight: 0rem; // 窗口最大宽度
 }
 
 body {
@@ -99,7 +98,7 @@ body {
   margin: 0;
   padding: 0;
   min-width: 1000px;
-  background-color: #f5f5f5;
+  background-color: #f5f5f5 !important;
 }
 .Header {
   position: fixed;
@@ -124,14 +123,14 @@ body {
   z-index: 50;
 }
 
-@media (max-width: 1200px) {
+@media (max-width: 75rem) {
   .Header {
     // position: absolute;
     // top: var(--scrollTop) !important;
   }
   .FixedBtn {
     position: absolute !important;
-    top: calc(var(--scrollTop) + var(--windowHeight) - 80px) !important;
+    top: calc(var(--scrollTop) + var(--windowHeight) - 5rem) !important;
   }
 }
 </style>

+ 4 - 0
src/assets/css/common.scss

@@ -726,6 +726,10 @@ textarea {
   }
 }
 
+span {
+  line-height: 1em;
+}
+
 $body-width-100: calc(100vw - #{$scrollbarWidth}px);
 $body-width-min: 1000px;
 $body-height-100: calc(100vh - (#{$scrollbarHeight}px * 2));

TEMPAT SAMPAH
src/assets/icon/activity_info.png


TEMPAT SAMPAH
src/assets/icon/activity_more.png


TEMPAT SAMPAH
src/assets/icon/activity_select.png


TEMPAT SAMPAH
src/assets/icon/activity_select_1.png


TEMPAT SAMPAH
src/assets/icon/activity_success.png


TEMPAT SAMPAH
src/assets/icon/activity_time.png


TEMPAT SAMPAH
src/assets/icon/add.png


TEMPAT SAMPAH
src/assets/icon/answer.png


TEMPAT SAMPAH
src/assets/icon/append_shopping_cart.png


TEMPAT SAMPAH
src/assets/icon/bottom.png


TEMPAT SAMPAH
src/assets/icon/bottom_gray.png


TEMPAT SAMPAH
src/assets/icon/card/收藏.png


TEMPAT SAMPAH
src/assets/icon/card/收藏_1.png


TEMPAT SAMPAH
src/assets/icon/card/点赞.png


TEMPAT SAMPAH
src/assets/icon/card/点赞_1.png


TEMPAT SAMPAH
src/assets/icon/card/评论.png


TEMPAT SAMPAH
src/assets/icon/card/转发.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/回复我的_forum.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/回复我的_forum_1.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/回答我的.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/回答我的_1.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的关注.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的关注_1.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的回复_forum.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的回复_forum_1.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的回答.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的回答_1.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的报名.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的报名_1.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的提问.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的提问_1.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的消息.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的消息_1.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的订单.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的订单_1.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的订阅_recruit.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的订阅_recruit_1.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的评论_forum.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/我的评论_forum_1.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/浏览记录.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/浏览记录_1.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/给我投的.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/给我投的_1.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/评论我的.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/购物车.png


TEMPAT SAMPAH
src/assets/icon/childNavbar/购物车_1.png


TEMPAT SAMPAH
src/assets/icon/close.png


TEMPAT SAMPAH
src/assets/icon/close_fill.png


TEMPAT SAMPAH
src/assets/icon/collect.png


TEMPAT SAMPAH
src/assets/icon/collect_1.png


TEMPAT SAMPAH
src/assets/icon/copy.png


TEMPAT SAMPAH
src/assets/icon/deliver_jpg.png


TEMPAT SAMPAH
src/assets/icon/deliver_pdf.png


TEMPAT SAMPAH
src/assets/icon/education_black.png


TEMPAT SAMPAH
src/assets/icon/email.png


TEMPAT SAMPAH
src/assets/icon/eye.png


TEMPAT SAMPAH
src/assets/icon/fenxiang.png


TEMPAT SAMPAH
src/assets/icon/hide.png


TEMPAT SAMPAH
src/assets/icon/hot_1.png


TEMPAT SAMPAH
src/assets/icon/hot_2.png


TEMPAT SAMPAH
src/assets/icon/hot_3.png


TEMPAT SAMPAH
src/assets/icon/navbar/dizhi.png


TEMPAT SAMPAH
src/assets/icon/navbar/dizhi_1.png


TEMPAT SAMPAH
src/assets/icon/navbar/fapiao.png


TEMPAT SAMPAH
src/assets/icon/navbar/fapiao_1.png


TEMPAT SAMPAH
src/assets/icon/navbar/kefu.png


TEMPAT SAMPAH
src/assets/icon/navbar/kefu_1.png


TEMPAT SAMPAH
src/assets/icon/phone.png


TEMPAT SAMPAH
src/assets/icon/place-map.png


TEMPAT SAMPAH
src/assets/icon/place.png


TEMPAT SAMPAH
src/assets/icon/place_black.png


TEMPAT SAMPAH
src/assets/icon/place_border.png


TEMPAT SAMPAH
src/assets/icon/question.png


TEMPAT SAMPAH
src/assets/icon/recruit-collection.png


TEMPAT SAMPAH
src/assets/icon/report.png


TEMPAT SAMPAH
src/assets/icon/share.png


TEMPAT SAMPAH
src/assets/icon/success_fill.png


TEMPAT SAMPAH
src/assets/icon/time.png


TEMPAT SAMPAH
src/assets/icon/tips.png


TEMPAT SAMPAH
src/assets/icon/upload_black.png


TEMPAT SAMPAH
src/assets/icon/upload_blue.png


TEMPAT SAMPAH
src/assets/icon/upload_pdf.png


TEMPAT SAMPAH
src/assets/icon/work_black.png


TEMPAT SAMPAH
src/assets/icon/审核.png


TEMPAT SAMPAH
src/assets/icon/已停止.png


TEMPAT SAMPAH
src/assets/icon/已售罄.png


TEMPAT SAMPAH
src/assets/icon/提示.png


TEMPAT SAMPAH
src/assets/icon/收藏.png


TEMPAT SAMPAH
src/assets/icon/收藏_1.png


TEMPAT SAMPAH
src/assets/icon/点赞.png


TEMPAT SAMPAH
src/assets/icon/点赞_1.png


TEMPAT SAMPAH
src/assets/icon/评论.png


TEMPAT SAMPAH
src/assets/icon/转发.png


Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini