panhui 4 rokov pred
rodič
commit
3db867d19e

+ 136 - 74
src/main/nine-space/package-lock.json

@@ -1357,6 +1357,19 @@
         }
         }
       }
       }
     },
     },
+    "@fortawesome/fontawesome-common-types": {
+      "version": "0.2.36",
+      "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz",
+      "integrity": "sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg=="
+    },
+    "@fortawesome/free-solid-svg-icons": {
+      "version": "5.15.4",
+      "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz",
+      "integrity": "sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==",
+      "requires": {
+        "@fortawesome/fontawesome-common-types": "^0.2.36"
+      }
+    },
     "@hapi/address": {
     "@hapi/address": {
       "version": "2.1.4",
       "version": "2.1.4",
       "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
       "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
@@ -2031,6 +2044,80 @@
         "webpack-chain": "^6.4.0",
         "webpack-chain": "^6.4.0",
         "webpack-dev-server": "^3.11.0",
         "webpack-dev-server": "^3.11.0",
         "webpack-merge": "^4.2.2"
         "webpack-merge": "^4.2.2"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "chalk": {
+          "version": "4.1.2",
+          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "ansi-styles": "^4.1.0",
+            "supports-color": "^7.1.0"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "has-flag": {
+          "version": "4.0.0",
+          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+          "dev": true,
+          "optional": true
+        },
+        "loader-utils": {
+          "version": "2.0.0",
+          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
+          "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
+        "supports-color": {
+          "version": "7.2.0",
+          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "has-flag": "^4.0.0"
+          }
+        },
+        "vue-loader-v16": {
+          "version": "npm:vue-loader@16.8.2",
+          "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.2.tgz",
+          "integrity": "sha512-Nkq+z9mAsMEK+qkXgK+9Ia7D8w9uu9j4ut0IMT5coMfux3rCgIp1QBB1CYwY0M34A1nRMSONEaWXxAAw6xSl/Q==",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "chalk": "^4.1.0",
+            "hash-sum": "^2.0.0",
+            "loader-utils": "^2.0.0"
+          }
+        }
       }
       }
     },
     },
     "@vue/cli-shared-utils": {
     "@vue/cli-shared-utils": {
@@ -4168,6 +4255,11 @@
       "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
       "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
       "dev": true
       "dev": true
     },
     },
+    "cookie-storage": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmjs.org/cookie-storage/-/cookie-storage-6.1.0.tgz",
+      "integrity": "sha512-HeVqbVy8BjXhAAuFtL6MTG+witHoLbxfky2jgVh9FmxmyL6IKa9gSSyPNjevXCCCxPu6Tzd9J8+eXTRQzYU/cg=="
+    },
     "copy-anything": {
     "copy-anything": {
       "version": "2.0.3",
       "version": "2.0.3",
       "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz",
       "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz",
@@ -4197,6 +4289,11 @@
       "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
       "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
       "dev": true
       "dev": true
     },
     },
+    "copy-text-to-clipboard": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz",
+      "integrity": "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q=="
+    },
     "copy-webpack-plugin": {
     "copy-webpack-plugin": {
       "version": "5.1.2",
       "version": "5.1.2",
       "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz",
       "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz",
@@ -8143,6 +8240,11 @@
       "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
       "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=",
       "dev": true
       "dev": true
     },
     },
+    "mutation-observer": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/mutation-observer/-/mutation-observer-1.0.3.tgz",
+      "integrity": "sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA=="
+    },
     "mute-stream": {
     "mute-stream": {
       "version": "0.0.8",
       "version": "0.0.8",
       "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
       "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
@@ -11097,6 +11199,11 @@
         "has-flag": "^3.0.0"
         "has-flag": "^3.0.0"
       }
       }
     },
     },
+    "svelte-fa": {
+      "version": "2.3.3",
+      "resolved": "https://registry.npmjs.org/svelte-fa/-/svelte-fa-2.3.3.tgz",
+      "integrity": "sha512-Izq+L4H9FEsoClSsYe35KuMP+2CUltJq8eP6qrQp9q52zYxRNMQTO3dYylr6K1fFmhKiWcw9q1hUzIiyrJx8dQ=="
+    },
     "svg-tags": {
     "svg-tags": {
       "version": "1.0.0",
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
       "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
@@ -11808,6 +11915,35 @@
       "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
       "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
       "dev": true
       "dev": true
     },
     },
+    "vconsole": {
+      "version": "3.9.3",
+      "resolved": "https://registry.npmjs.org/vconsole/-/vconsole-3.9.3.tgz",
+      "integrity": "sha512-zCkS85C21pyE+hJ+QEPFK6MVtkwc3XQE/ccvEnWPKq/Z9eMSOfSHOmBwoqZtYm7pnR+GTuJOsoDB8fvK3YuJTA==",
+      "requires": {
+        "@fortawesome/free-solid-svg-icons": "^5.15.3",
+        "cookie-storage": "^6.1.0",
+        "copy-text-to-clipboard": "^3.0.1",
+        "core-js": "^3.11.0",
+        "mutation-observer": "^1.0.3",
+        "svelte-fa": "^2.2.1"
+      },
+      "dependencies": {
+        "core-js": {
+          "version": "3.19.0",
+          "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.0.tgz",
+          "integrity": "sha512-L1TpFRWXZ76vH1yLM+z6KssLZrP8Z6GxxW4auoCj+XiViOzNPJCAuTIkn03BGdFe6Z5clX5t64wRIRypsZQrUg=="
+        }
+      }
+    },
+    "vconsole-webpack-plugin": {
+      "version": "1.7.1",
+      "resolved": "https://registry.npmjs.org/vconsole-webpack-plugin/-/vconsole-webpack-plugin-1.7.1.tgz",
+      "integrity": "sha512-dC4lPpIPuAFreyYiQQptPmnd/DvMWGNX48OXW58t2fRBhGIqkV8/P1MABMRSlxkkrpEyc45Nz9YFizlEOe7tuA==",
+      "dev": true,
+      "requires": {
+        "vconsole": "^3.6"
+      }
+    },
     "vendors": {
     "vendors": {
       "version": "1.0.4",
       "version": "1.0.4",
       "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz",
       "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz",
@@ -11935,80 +12071,6 @@
         }
         }
       }
       }
     },
     },
-    "vue-loader-v16": {
-      "version": "npm:vue-loader@16.8.1",
-      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.1.tgz",
-      "integrity": "sha512-V53TJbHmzjBhCG5OYI2JWy/aYDspz4oVHKxS43Iy212GjGIG1T3EsB3+GWXFm/1z5VwjdjLmdZUFYM70y77vtQ==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "chalk": "^4.1.0",
-        "hash-sum": "^2.0.0",
-        "loader-utils": "^2.0.0"
-      },
-      "dependencies": {
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true,
-          "optional": true
-        },
-        "loader-utils": {
-          "version": "2.0.0",
-          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
-          "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "big.js": "^5.2.2",
-            "emojis-list": "^3.0.0",
-            "json5": "^2.1.2"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
     "vue-router": {
     "vue-router": {
       "version": "4.0.12",
       "version": "4.0.12",
       "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.12.tgz",
       "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.12.tgz",

+ 1 - 0
src/main/nine-space/package.json

@@ -21,6 +21,7 @@
     "register-service-worker": "^1.7.1",
     "register-service-worker": "^1.7.1",
     "swiper": "^6.8.1",
     "swiper": "^6.8.1",
     "vant": "^3.2.3",
     "vant": "^3.2.3",
+    "vconsole": "^3.9.3",
     "vue": "^3.2.20",
     "vue": "^3.2.20",
     "vue-clipboard2": "^0.3.3",
     "vue-clipboard2": "^0.3.3",
     "vue-croppie": "^2.0.2",
     "vue-croppie": "^2.0.2",

+ 7 - 0
src/main/nine-space/src/App.vue

@@ -24,6 +24,13 @@ export default {
             keeps: []
             keeps: []
         };
         };
     },
     },
+    watch: {
+        $route() {
+            this.$nextTick(() => {
+                this.$el.scrollTop = 0;
+            });
+        }
+    },
     methods: {
     methods: {
         setKeeps(keeps) {
         setKeeps(keeps) {
             this.keeps = keeps;
             this.keeps = keeps;

+ 2 - 0
src/main/nine-space/src/main.js

@@ -14,6 +14,8 @@ import LikeButton from './components/LikeButton.vue';
 import Driver from './components/Driver.vue';
 import Driver from './components/Driver.vue';
 import common from './mixins/common';
 import common from './mixins/common';
 import VueClipboard from 'vue-clipboard2';
 import VueClipboard from 'vue-clipboard2';
+// import VConsole from 'vconsole';
+// const vConsole = new VConsole();
 
 
 createApp(App)
 createApp(App)
     .use(Vant)
     .use(Vant)

+ 10 - 8
src/main/nine-space/src/mixins/common.js

@@ -1,3 +1,4 @@
+import http from '../plugins/http';
 export default {
 export default {
     computed: {
     computed: {
         isLogin() {
         isLogin() {
@@ -50,14 +51,12 @@ export default {
                     });
                     });
             }
             }
         },
         },
-        updateFile(file) {
-            return this.$http
-                .post('/upload/base64', {
-                    base64: file.content
-                })
-                .then(res => {
-                    return Promise.resolve(res);
-                });
+        updateFile(e) {
+            const formData = new FormData();
+            formData.append('file', e.file, e.file.name);
+            return http.axios.post('/upload/file', formData).then(res => {
+                return Promise.resolve(res.data);
+            });
         },
         },
         getImg(imgs = '') {
         getImg(imgs = '') {
             if (!imgs) {
             if (!imgs) {
@@ -101,6 +100,9 @@ export default {
         },
         },
         scrollRefreash() {
         scrollRefreash() {
             this.$toast.clear();
             this.$toast.clear();
+        },
+        wait() {
+            this.$toast('敬请期待');
         }
         }
     }
     }
 };
 };

+ 29 - 0
src/main/nine-space/src/mixins/list.js

@@ -6,5 +6,34 @@ export default {
             finished: false,
             finished: false,
             page: 0
             page: 0
         };
         };
+    },
+    methods: {
+        getData(isFirst = false) {
+            if (isFirst) {
+                this.page = 0;
+                this.list = [];
+            }
+
+            this.loading = true;
+            this.finished = false;
+            this.empty = false;
+            let data = { page: this.page, size: 20, sort: 'createdAt,desc' };
+            if (this.beforeData) {
+                data = {
+                    ...data,
+                    ...this.beforeData()
+                };
+            }
+
+            this.$http.post(this.url, data, { body: 'json' }).then(res => {
+                this.list = [...this.list, ...res.content];
+                this.empty = res.empty;
+                this.loading = false;
+                this.finished = res.last;
+                if (!this.finished) {
+                    this.page = this.page + 1;
+                }
+            });
+        }
     }
     }
 };
 };

+ 1 - 1
src/main/nine-space/src/views/Discover.vue

@@ -280,7 +280,7 @@ export default {
 .box-list {
 .box-list {
     // display: flex;
     // display: flex;
     // flex-wrap: wrap;
     // flex-wrap: wrap;
-    padding: 0 8px;
+    padding: 0 8px 100px;
 }
 }
 
 
 /deep/.van-tab {
 /deep/.van-tab {

+ 1 - 1
src/main/nine-space/src/views/Home.vue

@@ -198,7 +198,7 @@ export default {
     width: 100%;
     width: 100%;
 }
 }
 .home {
 .home {
-    padding: 10px 0 0 0;
+    padding: 10px 0 100px 0;
 }
 }
 
 
 .hot {
 .hot {

+ 16 - 11
src/main/nine-space/src/views/Mine.vue

@@ -15,7 +15,10 @@
                     <div class="text">
                     <div class="text">
                         <div class="text1 van-ellipsis">{{ userInfo.nickname }}</div>
                         <div class="text1 van-ellipsis">{{ userInfo.nickname }}</div>
                         <div class="text2">
                         <div class="text2">
-                            <span>{{ userInfo.id }}</span>
+                            <span>
+                                <small>平台编码:</small>
+                                {{ userInfo.id }}
+                            </span>
                             <img @click="copy" src="../assets/svgs/copy_icon.svg" alt="" />
                             <img @click="copy" src="../assets/svgs/copy_icon.svg" alt="" />
                         </div>
                         </div>
                     </div>
                     </div>
@@ -139,17 +142,17 @@
                     <van-icon :name="require('../assets/dislike.png')" class="search-icon" />
                     <van-icon :name="require('../assets/dislike.png')" class="search-icon" />
                 </template>
                 </template>
             </van-cell>
             </van-cell>
-            <van-cell title="地址管理" is-link>
+            <van-cell title="地址管理" is-link @click="wait">
                 <template #icon>
                 <template #icon>
                     <van-icon :name="require('../assets/icon_dizhi.png')" class="search-icon" />
                     <van-icon :name="require('../assets/icon_dizhi.png')" class="search-icon" />
                 </template>
                 </template>
             </van-cell>
             </van-cell>
-            <van-cell title="了解更多" is-link>
+            <van-cell title="了解更多" is-link @click="wait">
                 <template #icon>
                 <template #icon>
                     <van-icon :name="require('../assets/icon_liaojiegengduo.png')" class="search-icon" />
                     <van-icon :name="require('../assets/icon_liaojiegengduo.png')" class="search-icon" />
                 </template>
                 </template>
             </van-cell>
             </van-cell>
-            <van-cell title="关于我们" is-link>
+            <van-cell title="关于我们" is-link @click="wait">
                 <template #icon>
                 <template #icon>
                     <van-icon :name="require('../assets/icon-guanyuwomen.png')" class="search-icon" />
                     <van-icon :name="require('../assets/icon-guanyuwomen.png')" class="search-icon" />
                 </template>
                 </template>
@@ -200,7 +203,7 @@ export default {
 
 
 <style lang="less" scoped>
 <style lang="less" scoped>
 .mine {
 .mine {
-    padding-bottom: 10px;
+    padding-bottom: 100px;
     background-color: @bg2;
     background-color: @bg2;
 }
 }
 .top {
 .top {
@@ -353,12 +356,14 @@ export default {
         }
         }
 
 
         .verid {
         .verid {
-            color: #d8d8d8;
-            line-height: 24px;
-            background: linear-gradient(45deg, #fdfb60 0%, #ff8f3e 100%);
-            background-clip: text;
-            -webkit-background-clip: text;
-            -webkit-text-fill-color: transparent;
+            /deep/ span {
+                color: #d8d8d8;
+                line-height: 24px;
+                background: linear-gradient(45deg, #fdfb60 0%, #ff8f3e 100%);
+                background-clip: text;
+                -webkit-background-clip: text;
+                -webkit-text-fill-color: transparent;
+            }
         }
         }
     }
     }
 }
 }

+ 9 - 11
src/main/nine-space/src/views/Store.vue

@@ -105,13 +105,13 @@ export default {
         this.$nextTick(() => {
         this.$nextTick(() => {
             this.stiky = this.$refs.top.$el.childNodes[0];
             this.stiky = this.$refs.top.$el.childNodes[0];
         });
         });
-        this.checkLogin().catch(() => {
-            this.empty = true;
-        });
+        this.checkLogin();
     },
     },
     methods: {
     methods: {
         getList() {
         getList() {
             if (!this.isLogin) {
             if (!this.isLogin) {
+                this.empty = true;
+                this.loading = false;
                 return;
                 return;
             }
             }
             if (this.page === 0) {
             if (this.page === 0) {
@@ -190,12 +190,14 @@ export default {
     color: #939599 !important;
     color: #939599 !important;
     min-width: 96px;
     min-width: 96px;
 }
 }
-/deep/.van-sticky {
-    position: relative;
-}
+// /deep/.van-sticky {
+//     position: relative;
+// }
 
 
 .discover {
 .discover {
     background-color: @bg3;
     background-color: @bg3;
+    min-height: 100vh;
+    box-sizing: border-box;
 }
 }
 
 
 /deep/ .mySwiper {
 /deep/ .mySwiper {
@@ -270,11 +272,7 @@ export default {
 .box-list {
 .box-list {
     // display: flex;
     // display: flex;
     // flex-wrap: wrap;
     // flex-wrap: wrap;
-    padding: 8px;
-    min-height: 100vh;
-}
-
-.discover {
+    padding: 8px 8px 100px;
 }
 }
 
 
 /deep/.van-tab {
 /deep/.van-tab {

+ 16 - 4
src/main/nine-space/src/views/account/Setting.vue

@@ -13,7 +13,7 @@
                         fit="cover"
                         fit="cover"
                     />
                     />
 
 
-                    <van-uploader class="avatar" :after-read="afterRead" />
+                    <van-uploader class="avatar" :after-read="afterRead" result-type="file" />
                 </template>
                 </template>
             </van-cell>
             </van-cell>
             <van-cell
             <van-cell
@@ -39,7 +39,7 @@
             <van-cell title="主页背景" class="not" is-link>
             <van-cell title="主页背景" class="not" is-link>
                 <template #value>
                 <template #value>
                     <span> 更换背景图片</span>
                     <span> 更换背景图片</span>
-                    <van-uploader accept="image/png, image/jpeg" class="avatar" :after-read="afterRead2" />
+                    <van-uploader class="avatar" :after-read="afterRead2" result-type="file" />
                 </template>
                 </template>
             </van-cell>
             </van-cell>
             <van-cell class="not" title="编码" :value="userInfo.id" />
             <van-cell class="not" title="编码" :value="userInfo.id" />
@@ -77,13 +77,25 @@ export default {
             this.updateUser({ sex: val.name });
             this.updateUser({ sex: val.name });
         },
         },
         afterRead(e) {
         afterRead(e) {
+            this.$toast.loading({
+                message: '加载中...',
+                forbidClick: true
+            });
             this.updateFile(e).then(img => {
             this.updateFile(e).then(img => {
-                this.updateUser({ avatar: img });
+                this.updateUser({ avatar: img }).then(res => {
+                    this.$toast.clear();
+                });
             });
             });
         },
         },
         afterRead2(e) {
         afterRead2(e) {
+            this.$toast.loading({
+                message: '加载中...',
+                forbidClick: true
+            });
             this.updateFile(e).then(img => {
             this.updateFile(e).then(img => {
-                this.updateUser({ bg: img });
+                this.updateUser({ bg: img }).then(res => {
+                    this.$toast.clear();
+                });
             });
             });
         }
         }
     }
     }

+ 2 - 2
src/main/nine-space/src/views/account/Verified.vue

@@ -87,7 +87,7 @@
                             fit="cover"
                             fit="cover"
                             radius="20"
                             radius="20"
                         />
                         />
-                        <van-uploader name="idFront" accept="image/png, image/jpeg" :after-read="afterRead" />
+                        <van-uploader name="idFront" result-type="file" :after-read="afterRead" />
                     </div>
                     </div>
                 </template>
                 </template>
             </van-field>
             </van-field>
@@ -112,7 +112,7 @@
                             fit="cover"
                             fit="cover"
                             radius="20"
                             radius="20"
                         />
                         />
-                        <van-uploader name="idBack" accept="image/png, image/jpeg" :after-read="afterRead" />
+                        <van-uploader name="idBack" result-type="file" :after-read="afterRead" />
                     </div>
                     </div>
                 </template>
                 </template>
             </van-field>
             </van-field>

+ 14 - 40
src/main/nine-space/src/views/order/Orders.vue

@@ -20,7 +20,7 @@
             </van-tabs>
             </van-tabs>
         </van-sticky>
         </van-sticky>
 
 
-        <van-list class="list" v-model:loading="loading" :finished="finished" finished-text="" @load="getList">
+        <van-list class="list" v-model:loading="loading" :finished="finished" finished-text="" @load="getData">
             <order-info v-for="item in list" :key="item.id" :info="item"></order-info>
             <order-info v-for="item in list" :key="item.id" :info="item"></order-info>
             <van-empty v-if="empty" description="还没有订单哦~" />
             <van-empty v-if="empty" description="还没有订单哦~" />
         </van-list>
         </van-list>
@@ -29,9 +29,11 @@
 
 
 <script>
 <script>
 import OrderInfo from '../../components/order/OrderInfo.vue';
 import OrderInfo from '../../components/order/OrderInfo.vue';
+import list from '../../mixins/list';
 export default {
 export default {
     name: 'discover',
     name: 'discover',
     inject: ['bar'],
     inject: ['bar'],
+    mixins: [list],
     components: {
     components: {
         OrderInfo
         OrderInfo
     },
     },
@@ -56,10 +58,7 @@ export default {
                     name: '已完成'
                     name: '已完成'
                 }
                 }
             ],
             ],
-            empty: false,
-            loading: false,
-            finished: false,
-            page: 0
+            url: '/order/all'
         };
         };
     },
     },
     mounted() {
     mounted() {
@@ -68,37 +67,14 @@ export default {
         }
         }
     },
     },
     methods: {
     methods: {
-        getList() {
-            if (this.page === 0) {
-                this.list = [];
-            }
-            this.loading = true;
-            this.finished = false;
-            this.empty = false;
-            this.$http
-                .post(
-                    '/order/all',
-                    {
-                        size: 20,
-                        query: {
-                            userId: this.$store.state.userInfo.id,
-                            status: this.status,
-                            type: this.type
-                        },
-                        page: this.page,
-                        sort: 'createdAt,desc'
-                    },
-                    { body: 'json' }
-                )
-                .then(res => {
-                    this.list = [...this.list, ...res.content];
-                    this.empty = res.empty;
-                    this.loading = false;
-                    this.finished = res.last;
-                    if (!this.finished) {
-                        this.page = this.page + 1;
-                    }
-                });
+        beforeData() {
+            return {
+                query: {
+                    userId: this.$store.state.userInfo.id,
+                    status: this.status,
+                    type: this.type
+                }
+            };
         },
         },
         changeStatus(name) {
         changeStatus(name) {
             this.$router.replace({
             this.$router.replace({
@@ -108,8 +84,7 @@ export default {
                     type: this.type
                     type: this.type
                 }
                 }
             });
             });
-            this.page = 0;
-            this.getList();
+            this.getData(true);
         },
         },
         changeActive(type) {
         changeActive(type) {
             this.$router.replace({
             this.$router.replace({
@@ -120,8 +95,7 @@ export default {
                 }
                 }
             });
             });
             this.type = type;
             this.type = type;
-            this.page = 0;
-            this.getList();
+            this.getData(true);
         }
         }
     }
     }
 };
 };

+ 9 - 1
src/main/nine-space/src/views/product/Detail.vue

@@ -86,7 +86,7 @@
             </template>
             </template>
             <template v-if="info.detail">
             <template v-if="info.detail">
                 <div class="page-title">作品描述</div>
                 <div class="page-title">作品描述</div>
-                <div class="page-text" v-html="info.detail"></div
+                <div class="page-text page-detail" v-html="info.detail"></div
             ></template>
             ></template>
         </div>
         </div>
 
 
@@ -450,4 +450,12 @@ export default {
 .swiper-slide {
 .swiper-slide {
     width: 35.2vw;
     width: 35.2vw;
 }
 }
+
+/deep/.page-detail {
+    img {
+        display: block;
+        max-width: 100%;
+        height: auto;
+    }
+}
 </style>
 </style>

+ 14 - 43
src/main/nine-space/src/views/product/List.vue

@@ -4,13 +4,7 @@
             <div class="top">
             <div class="top">
                 <div class="name">{{ pageName }}</div>
                 <div class="name">{{ pageName }}</div>
             </div>
             </div>
-            <van-tabs
-                v-model:active="sort"
-                :ellipsis="false"
-                line-width="16"
-                line-height="2"
-                @change="(page = 0), getList()"
-            >
+            <van-tabs v-model:active="sort" :ellipsis="false" line-width="16" line-height="2" @change="getData(true)">
                 <van-tab
                 <van-tab
                     :title="item.label"
                     :title="item.label"
                     :name="
                     :name="
@@ -31,7 +25,7 @@
             </van-tabs>
             </van-tabs>
         </van-sticky>
         </van-sticky>
 
 
-        <van-list v-model:loading="loading" :finished="finished" finished-text="" @load="getList">
+        <van-list v-model:loading="loading" :finished="finished" finished-text="" @load="getData">
             <template v-for="(item, index) in list" :key="index">
             <template v-for="(item, index) in list" :key="index">
                 <product-info v-model:info="list[index]" @update:info="init"></product-info>
                 <product-info v-model:info="list[index]" @update:info="init"></product-info>
             </template>
             </template>
@@ -44,10 +38,11 @@
 <script>
 <script>
 import ProductInfo from '../../components/product/productInfo.vue';
 import ProductInfo from '../../components/product/productInfo.vue';
 import product from '../../mixins/product';
 import product from '../../mixins/product';
+import list from '../../mixins/list';
 export default {
 export default {
     components: { ProductInfo },
     components: { ProductInfo },
     inject: ['bar'],
     inject: ['bar'],
-    mixins: [product],
+    mixins: [product, list],
     data() {
     data() {
         return {
         return {
             list: [],
             list: [],
@@ -73,9 +68,7 @@ export default {
                     type: 'select'
                     type: 'select'
                 }
                 }
             ],
             ],
-            loading: false,
-            finished: false,
-            page: 0
+            url: '/collection/all'
         };
         };
     },
     },
     computed: {
     computed: {
@@ -89,37 +82,15 @@ export default {
         }
         }
     },
     },
     methods: {
     methods: {
-        getList() {
-            if (this.page === 0) {
-                this.list = [];
-            }
-            this.loading = true;
-            this.finished = false;
-            this.empty = false;
-            this.$http
-                .post(
-                    '/collection/all',
-                    {
-                        page: this.page,
-                        size: 20,
-                        query: {
-                            type: this.type,
-                            onShelf: true,
-                            del: false
-                        },
-                        sort: this.sort
-                    },
-                    { body: 'json' }
-                )
-                .then(res => {
-                    this.list = [...this.list, ...res.content];
-                    this.empty = res.empty;
-                    this.loading = false;
-                    this.finished = res.last;
-                    if (!this.finished) {
-                        this.page = this.page + 1;
-                    }
-                });
+        beforeData() {
+            return {
+                query: {
+                    type: this.type,
+                    onShelf: true,
+                    del: false
+                },
+                sort: this.sort
+            };
         }
         }
     }
     }
 };
 };

+ 7 - 5
src/main/nine-space/src/views/user/Point.vue

@@ -3,8 +3,8 @@
         <div class="top">
         <div class="top">
             <div class="text1">我的积分</div>
             <div class="text1">我的积分</div>
             <div class="text2">
             <div class="text2">
-                <img src="../../assets/svgs/icon_jiage.svg" alt="" />
-                <span>465.26</span>
+                <!-- <img src="../../assets/svgs/icon_jiage.svg" alt="" /> -->
+                <span>0</span>
             </div>
             </div>
             <img src="../../assets/svgs/topBg.svg" class="top-img" alt="" />
             <img src="../../assets/svgs/topBg.svg" class="top-img" alt="" />
         </div>
         </div>
@@ -25,7 +25,7 @@
             </van-popover>
             </van-popover>
         </div>
         </div>
         <div class="list">
         <div class="list">
-            <div class="info">
+            <!-- <div class="info">
                 <div class="info-text">
                 <div class="info-text">
                     <div class="text1">提现</div>
                     <div class="text1">提现</div>
                     <div class="text2">奶盖</div>
                     <div class="text2">奶盖</div>
@@ -40,7 +40,9 @@
                     <div class="text2">09-03 09:56</div>
                     <div class="text2">09-03 09:56</div>
                 </div>
                 </div>
                 <div class="text3">-320</div>
                 <div class="text3">-320</div>
-            </div>
+            </div> -->
+
+            <van-empty description="暂时没有任何记录哦~" />
         </div>
         </div>
     </div>
     </div>
 </template>
 </template>
@@ -52,7 +54,7 @@ export default {
         const showPopover = ref(false);
         const showPopover = ref(false);
 
 
         // 通过 actions 属性来定义菜单选项
         // 通过 actions 属性来定义菜单选项
-        const actions = [{ text: '选项一' }, { text: '选项二' }, { text: '选项三' }];
+        const actions = [{ text: '2021年9月' }];
 
 
         return {
         return {
             actions,
             actions,

+ 7 - 6
src/main/nine-space/src/views/user/Wallet.vue

@@ -4,11 +4,11 @@
             <div class="text1">个人账户余额</div>
             <div class="text1">个人账户余额</div>
             <div class="text2">
             <div class="text2">
                 <img src="../../assets/svgs/icon_jiage.svg" alt="" />
                 <img src="../../assets/svgs/icon_jiage.svg" alt="" />
-                <span>465.26</span>
+                <span>0</span>
             </div>
             </div>
             <div class="btns">
             <div class="btns">
-                <van-button plain round color="#939599" size="mini">提现</van-button>
-                <van-button plain round type="primary" size="mini">充值</van-button>
+                <van-button @click="wait" plain round color="#939599" size="mini">提现</van-button>
+                <van-button @click="wait" plain round type="primary" size="mini">充值</van-button>
             </div>
             </div>
             <img src="../../assets/svgs/topBg.svg" class="top-img" alt="" />
             <img src="../../assets/svgs/topBg.svg" class="top-img" alt="" />
         </div>
         </div>
@@ -29,7 +29,7 @@
             </van-popover>
             </van-popover>
         </div>
         </div>
         <div class="list">
         <div class="list">
-            <div class="info">
+            <!-- <div class="info">
                 <div class="info-text">
                 <div class="info-text">
                     <div class="text1">提现</div>
                     <div class="text1">提现</div>
                     <div class="text2">奶盖</div>
                     <div class="text2">奶盖</div>
@@ -44,7 +44,8 @@
                     <div class="text2">09-03 09:56</div>
                     <div class="text2">09-03 09:56</div>
                 </div>
                 </div>
                 <div class="text3">-320</div>
                 <div class="text3">-320</div>
-            </div>
+            </div> -->
+            <van-empty description="暂时没有任何记录哦~" />
         </div>
         </div>
     </div>
     </div>
 </template>
 </template>
@@ -56,7 +57,7 @@ export default {
         const showPopover = ref(false);
         const showPopover = ref(false);
 
 
         // 通过 actions 属性来定义菜单选项
         // 通过 actions 属性来定义菜单选项
-        const actions = [{ text: '选项一' }, { text: '选项二' }, { text: '选项三' }];
+        const actions = [{ text: '2021年9月' }];
 
 
         return {
         return {
             actions,
             actions,

+ 49 - 0
src/main/nine-space/yarn.lock

@@ -1011,6 +1011,18 @@
   resolved "https://registry.yarnpkg.com/@chenfengyuan/vue-qrcode/-/vue-qrcode-2.0.0-rc.1.tgz#524ab4dd03c136428fa7f56e2ed82dc9bfaee0ac"
   resolved "https://registry.yarnpkg.com/@chenfengyuan/vue-qrcode/-/vue-qrcode-2.0.0-rc.1.tgz#524ab4dd03c136428fa7f56e2ed82dc9bfaee0ac"
   integrity sha512-TcdJtpnTX7TlkCV4j0ym+UwjHHhEPFbK3MKJQd4gBEiNZZmClXAwLORnrpsK5XeJtwpk0Hk4DryC7wlja6McAg==
   integrity sha512-TcdJtpnTX7TlkCV4j0ym+UwjHHhEPFbK3MKJQd4gBEiNZZmClXAwLORnrpsK5XeJtwpk0Hk4DryC7wlja6McAg==
 
 
+"@fortawesome/fontawesome-common-types@^0.2.36":
+  version "0.2.36"
+  resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz#b44e52db3b6b20523e0c57ef8c42d315532cb903"
+  integrity sha512-a/7BiSgobHAgBWeN7N0w+lAhInrGxksn13uK7231n2m8EDPE3BMCl9NZLTGrj9ZXfCmC6LM0QLqXidIizVQ6yg==
+
+"@fortawesome/free-solid-svg-icons@^5.15.3":
+  version "5.15.4"
+  resolved "https://registry.yarnpkg.com/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.4.tgz#2a68f3fc3ddda12e52645654142b9e4e8fbb6cc5"
+  integrity sha512-JLmQfz6tdtwxoihXLg6lT78BorrFyCf59SAwBM6qV/0zXyVeDygJVb3fk+j5Qat+Yvcxp1buLTY5iDh1ZSAQ8w==
+  dependencies:
+    "@fortawesome/fontawesome-common-types" "^0.2.36"
+
 "@hapi/address@2.x.x":
 "@hapi/address@2.x.x":
   version "2.1.4"
   version "2.1.4"
   resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
   resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
@@ -3005,6 +3017,11 @@ cookie-signature@1.0.6:
   resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
   resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
   integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
   integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
 
 
+cookie-storage@^6.1.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/cookie-storage/-/cookie-storage-6.1.0.tgz#291b2f662d961be44f999626593421cbfcf23790"
+  integrity sha512-HeVqbVy8BjXhAAuFtL6MTG+witHoLbxfky2jgVh9FmxmyL6IKa9gSSyPNjevXCCCxPu6Tzd9J8+eXTRQzYU/cg==
+
 cookie@0.4.0:
 cookie@0.4.0:
   version "0.4.0"
   version "0.4.0"
   resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
   resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
@@ -3034,6 +3051,11 @@ copy-descriptor@^0.1.0:
   resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
   resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
   integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
   integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
 
 
+copy-text-to-clipboard@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz#8cbf8f90e0a47f12e4a24743736265d157bce69c"
+  integrity sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==
+
 copy-webpack-plugin@^5.1.1:
 copy-webpack-plugin@^5.1.1:
   version "5.1.2"
   version "5.1.2"
   resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz#8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2"
   resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz#8a889e1dcafa6c91c6cd4be1ad158f1d3823bae2"
@@ -3065,6 +3087,11 @@ core-js@^2.4.0:
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
   integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
   integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
 
 
+core-js@^3.11.0:
+  version "3.19.0"
+  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.19.0.tgz#9e40098a9bc326c7e81b486abbd5e12b9d275176"
+  integrity sha512-L1TpFRWXZ76vH1yLM+z6KssLZrP8Z6GxxW4auoCj+XiViOzNPJCAuTIkn03BGdFe6Z5clX5t64wRIRypsZQrUg==
+
 core-js@^3.6.5:
 core-js@^3.6.5:
   version "3.18.3"
   version "3.18.3"
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.3.tgz#86a0bba2d8ec3df860fefcc07a8d119779f01509"
   resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.3.tgz#86a0bba2d8ec3df860fefcc07a8d119779f01509"
@@ -6146,6 +6173,11 @@ multicast-dns@^6.0.1:
     dns-packet "^1.3.1"
     dns-packet "^1.3.1"
     thunky "^1.0.2"
     thunky "^1.0.2"
 
 
+mutation-observer@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/mutation-observer/-/mutation-observer-1.0.3.tgz#42e9222b101bca82e5ba9d5a7acf4a14c0f263d0"
+  integrity sha512-M/O/4rF2h776hV7qGMZUH3utZLO/jK7p8rnNgGkjKUw8zCGjRQPxB8z6+5l8+VjRUQ3dNYu4vjqXYLr+U8ZVNA==
+
 mute-stream@0.0.8:
 mute-stream@0.0.8:
   version "0.0.8"
   version "0.0.8"
   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
   resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
@@ -8367,6 +8399,11 @@ supports-color@^7.1.0:
   dependencies:
   dependencies:
     has-flag "^4.0.0"
     has-flag "^4.0.0"
 
 
+svelte-fa@^2.2.1:
+  version "2.3.3"
+  resolved "https://registry.yarnpkg.com/svelte-fa/-/svelte-fa-2.3.3.tgz#b136b32f397ec64fb708b8a6ff5578bdd65f5be7"
+  integrity sha512-Izq+L4H9FEsoClSsYe35KuMP+2CUltJq8eP6qrQp9q52zYxRNMQTO3dYylr6K1fFmhKiWcw9q1hUzIiyrJx8dQ==
+
 svg-tags@^1.0.0:
 svg-tags@^1.0.0:
   version "1.0.0"
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
   resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
@@ -8884,6 +8921,18 @@ vary@~1.1.2:
   resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
   resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
   integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
   integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
 
 
+vconsole@^3.9.3:
+  version "3.9.3"
+  resolved "https://registry.yarnpkg.com/vconsole/-/vconsole-3.9.3.tgz#b401a7789feaeb327fd31c0bb52e9aae1ca2b044"
+  integrity sha512-zCkS85C21pyE+hJ+QEPFK6MVtkwc3XQE/ccvEnWPKq/Z9eMSOfSHOmBwoqZtYm7pnR+GTuJOsoDB8fvK3YuJTA==
+  dependencies:
+    "@fortawesome/free-solid-svg-icons" "^5.15.3"
+    cookie-storage "^6.1.0"
+    copy-text-to-clipboard "^3.0.1"
+    core-js "^3.11.0"
+    mutation-observer "^1.0.3"
+    svelte-fa "^2.2.1"
+
 vendors@^1.0.0:
 vendors@^1.0.0:
   version "1.0.4"
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
   resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"