Jelajahi Sumber

feat: 增加图片压缩和数据

gemercheung 1 tahun lalu
induk
melakukan
0059646e1d
31 mengubah file dengan 491 tambahan dan 69 penghapusan
  1. 3 0
      package.json
  2. 453 55
      pnpm-lock.yaml
  3. TEMPAT SAMPAH
      public/img/back_arrow.png
  4. TEMPAT SAMPAH
      public/img/dot.png
  5. TEMPAT SAMPAH
      public/img/ex_back.png
  6. TEMPAT SAMPAH
      public/img/guide_1.png
  7. TEMPAT SAMPAH
      public/img/guide_2.png
  8. TEMPAT SAMPAH
      public/img/guide_3.png
  9. TEMPAT SAMPAH
      public/img/guide_4.png
  10. TEMPAT SAMPAH
      public/img/guide_5.png
  11. TEMPAT SAMPAH
      public/img/h_banner_bg.png
  12. TEMPAT SAMPAH
      public/img/logo.png
  13. TEMPAT SAMPAH
      public/img/notice_list_bg.png
  14. TEMPAT SAMPAH
      public/img/see_more.png
  15. TEMPAT SAMPAH
      public/img/sub_back_btn.png
  16. TEMPAT SAMPAH
      public/img/sub_bg.png
  17. TEMPAT SAMPAH
      public/img/sub_logo.png
  18. TEMPAT SAMPAH
      public/img/sub_nav_bg.png
  19. TEMPAT SAMPAH
      public/img/sub_title_bg.png
  20. TEMPAT SAMPAH
      public/img/sub_title_logo.png
  21. TEMPAT SAMPAH
      public/img/subtitle_1.png
  22. TEMPAT SAMPAH
      public/img/subtitle_2.png
  23. TEMPAT SAMPAH
      public/img/vr_btn.png
  24. TEMPAT SAMPAH
      public/img/vr_button.png
  25. 1 1
      src/components/infoBox.vue
  26. 17 2
      src/components/noticeBox.vue
  27. 3 4
      src/views/collect.vue
  28. 1 1
      src/views/exhibition.vue
  29. 1 1
      src/views/home.vue
  30. 3 4
      src/views/info.vue
  31. 9 1
      vite.config.js

+ 3 - 0
package.json

@@ -14,6 +14,9 @@
     "axios": "^1.6.2",
     "naive-ui": "^2.35.0",
     "pinia": "^2.1.7",
+    "sharp": "^0.32.6",
+    "svgo": "^3.0.4",
+    "vite-plugin-image-optimizer": "^1.1.7",
     "vue": "^3.3.8",
     "vue-router": "^4.0.13"
   },

File diff ditekan karena terlalu besar
+ 453 - 55
pnpm-lock.yaml


TEMPAT SAMPAH
public/img/back_arrow.png


TEMPAT SAMPAH
public/img/dot.png


TEMPAT SAMPAH
public/img/ex_back.png


TEMPAT SAMPAH
public/img/guide_1.png


TEMPAT SAMPAH
public/img/guide_2.png


TEMPAT SAMPAH
public/img/guide_3.png


TEMPAT SAMPAH
public/img/guide_4.png


TEMPAT SAMPAH
public/img/guide_5.png


TEMPAT SAMPAH
public/img/h_banner_bg.png


TEMPAT SAMPAH
public/img/logo.png


TEMPAT SAMPAH
public/img/notice_list_bg.png


TEMPAT SAMPAH
public/img/see_more.png


TEMPAT SAMPAH
public/img/sub_back_btn.png


TEMPAT SAMPAH
public/img/sub_bg.png


TEMPAT SAMPAH
public/img/sub_logo.png


TEMPAT SAMPAH
public/img/sub_nav_bg.png


TEMPAT SAMPAH
public/img/sub_title_bg.png


TEMPAT SAMPAH
public/img/sub_title_logo.png


TEMPAT SAMPAH
public/img/subtitle_1.png


TEMPAT SAMPAH
public/img/subtitle_2.png


TEMPAT SAMPAH
public/img/vr_btn.png


TEMPAT SAMPAH
public/img/vr_button.png


+ 1 - 1
src/components/infoBox.vue

@@ -11,7 +11,7 @@
         <span> {{ time }}</span>
         <div class="see-more" @click="$router.push(`/info-detail/${id}`)">
           查看
-          <img class="see-more-img" src="img/see_more.png" alt="see more" />
+          <img class="see-more-img" src="/img/see_more.png" alt="see more" />
         </div>
       </div>
     </div>

+ 17 - 2
src/components/noticeBox.vue

@@ -1,5 +1,5 @@
 <template>
-  <n-card :title="title" class="notice-box">
+  <n-card :title="title" class="notice-box" @click="handleDetail">
     {{ content }}
     <template #footer>
       {{ time }}
@@ -7,11 +7,17 @@
   </n-card>
 </template>
 <script setup>
+import { useRouter } from "vue-router";
+const router = useRouter();
 defineOptions({
   name: "notice-box",
 });
 
-defineProps({
+const props = defineProps({
+  id: {
+    type: [String, Number],
+    default: () => "",
+  },
   title: {
     type: String,
     default: () => "",
@@ -25,6 +31,14 @@ defineProps({
     default: () => "",
   },
 });
+
+const handleDetail = () => {
+  if (props.id) {
+    router.push("/info-detail/" + props.id);
+  } else {
+    console.warn("missing id");
+  }
+};
 </script>
 
 <style lang="scss" scoped>
@@ -36,6 +50,7 @@ defineProps({
   // background-image: url("/img/notice_list_bg.png");
   background-size: contain;
   background-repeat: no-repeat;
+  cursor: pointer;
   // background-color: transparent;
 }
 </style>

+ 3 - 4
src/views/collect.vue

@@ -51,9 +51,10 @@
           </n-tab-pane>
           <n-tab-pane name="通知" tab="通知">
             <n-grid :y-gap="YGap" :cols="1" class="tab-grid">
-              <template v-for="item in 16">
+              <template v-for="(_, index) in 16">
                 <n-gi>
                   <notice-box
+                    :id="`${index + 2}_notice`"
                     title="这是一段标题这是一段标题"
                     content="这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段..."
                     time="2023-01-02"
@@ -88,6 +89,4 @@ onMounted(() => {
 });
 </script>
 
-<style lang="scss" scoped>
-
-</style>
+<style lang="scss" scoped></style>

+ 1 - 1
src/views/exhibition.vue

@@ -6,7 +6,7 @@
         <n-tabs type="line" pane-class="tab-content">
           <template #prefix>
             <span class="meta-title">
-              <img src="img/subtitle_2.png" />
+              <img src="/img/subtitle_2.png" />
             </span>
           </template>
           <n-tab-pane name="all" tab="全部展览">

+ 1 - 1
src/views/home.vue

@@ -32,7 +32,7 @@
     </div>
     <div class="right">
       <div class="home_logo">
-        <img src="img/logo.png" />
+        <img src="/img/logo.png" />
       </div>
       <n-space class="navigate" justify="flex-start" align="center">
         <n-button class="btn btn_1" @click="push('/info')" text>

+ 3 - 4
src/views/info.vue

@@ -51,9 +51,10 @@
           </n-tab-pane>
           <n-tab-pane name="通知" tab="通知">
             <n-grid :y-gap="YGap" :cols="1" class="tab-grid">
-              <template v-for="item in 16">
+              <template v-for="(_, index) in 16">
                 <n-gi>
                   <notice-box
+                    :id="`${index + 2}_notice`"
                     title="这是一段标题这是一段标题"
                     content="这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段摘要这是一段..."
                     time="2023-01-02"
@@ -88,6 +89,4 @@ onMounted(() => {
 });
 </script>
 
-<style lang="scss" scoped>
-
-</style>
+<style lang="scss" scoped></style>

+ 9 - 1
vite.config.js

@@ -4,7 +4,7 @@ import path from "path";
 import AutoImport from "unplugin-auto-import/vite";
 import Components from "unplugin-vue-components/vite";
 import { NaiveUiResolver } from "unplugin-vue-components/resolvers";
-
+import { ViteImageOptimizer } from "vite-plugin-image-optimizer";
 // https://vitejs.dev/config/
 export default defineConfig({
   plugins: [
@@ -25,6 +25,14 @@ export default defineConfig({
     Components({
       resolvers: [NaiveUiResolver()],
     }),
+    ViteImageOptimizer({
+      png: {
+        quality: 100,
+      },
+      jpg: {
+        quality: 100,
+      },
+    }),
   ],
   resolve: {
     alias: {