From 52fa1029d212a81f60f89f5917f64fa85a6abafe Mon Sep 17 00:00:00 2001 From: natsurainko Date: Wed, 2 Oct 2024 21:51:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=A4=A7=E9=87=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=9B=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=9B=E5=BB=BA=E7=AB=8B=20build=20?= =?UTF-8?q?=E7=8E=AF=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + index.html | 2 +- package-lock.json | 322 ++++++++++++++++++++++++++++++++++ package.json | 2 + public/icon.svg | 3 + public/vite.svg | 1 - src/api.ts | 20 ++- src/assets/vue.svg | 1 - src/components/HelloWorld.vue | 41 ----- src/main.ts | 2 +- src/router/index.ts | 6 - src/views/edit-expression.vue | 7 + src/views/expression.vue | 233 +++++++++++++----------- src/views/home.vue | 53 ++++-- src/views/profile.vue | 26 +-- src/views/publish.vue | 10 +- src/views/test.vue | 20 --- vite.config.ts | 4 +- 18 files changed, 551 insertions(+), 204 deletions(-) create mode 100644 public/icon.svg delete mode 100644 public/vite.svg delete mode 100644 src/assets/vue.svg delete mode 100644 src/components/HelloWorld.vue delete mode 100644 src/views/test.vue diff --git a/.gitignore b/.gitignore index a547bf3..9dedc5f 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,5 @@ dist-ssr *.njsproj *.sln *.sw? +tsconfig.app.tsbuildinfo +tsconfig.node.tsbuildinfo diff --git a/index.html b/index.html index f4bac58..ca61970 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - + 工地高墙 | CSite-High-Wall diff --git a/package-lock.json b/package-lock.json index 408df3a..0fe75f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "axios": "^1.7.7", "pinia": "^2.2.2", "vue": "^3.4.37", + "vue-clipboard3": "^2.0.0", "vue-router": "^4.4.5", "vue-waterfall-plugin-next": "^2.6.0" }, @@ -19,6 +20,7 @@ "@vitejs/plugin-vue": "^5.1.2", "typescript": "^5.5.3", "vite": "^5.4.1", + "vite-plugin-top-level-await": "^1.4.4", "vue-tsc": "^2.0.29" } }, @@ -108,6 +110,24 @@ "version": "1.5.0", "license": "MIT" }, + "node_modules/@rollup/plugin-virtual": { + "version": "3.0.2", + "resolved": "https://registry.npmmirror.com/@rollup/plugin-virtual/-/plugin-virtual-3.0.2.tgz", + "integrity": "sha512-10monEYsBp3scM4/ND4LNH5Rxvh3e/cVeL3jWTgZ2SrQ+BmUoQcopVQvnaMcOnykb1VkxUFuDAN+0FnpTFRy2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/rollup-win32-x64-msvc": { "version": "4.22.4", "cpu": [ @@ -120,6 +140,232 @@ "win32" ] }, + "node_modules/@swc/core": { + "version": "1.7.26", + "resolved": "https://registry.npmmirror.com/@swc/core/-/core-1.7.26.tgz", + "integrity": "sha512-f5uYFf+TmMQyYIoxkn/evWhNGuUzC730dFwAKGwBVHHVoPyak1/GvJUm6i1SKl+2Hrj9oN0i3WSoWWZ4pgI8lw==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.12" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.7.26", + "@swc/core-darwin-x64": "1.7.26", + "@swc/core-linux-arm-gnueabihf": "1.7.26", + "@swc/core-linux-arm64-gnu": "1.7.26", + "@swc/core-linux-arm64-musl": "1.7.26", + "@swc/core-linux-x64-gnu": "1.7.26", + "@swc/core-linux-x64-musl": "1.7.26", + "@swc/core-win32-arm64-msvc": "1.7.26", + "@swc/core-win32-ia32-msvc": "1.7.26", + "@swc/core-win32-x64-msvc": "1.7.26" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.7.26", + "resolved": "https://registry.npmmirror.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.26.tgz", + "integrity": "sha512-FF3CRYTg6a7ZVW4yT9mesxoVVZTrcSWtmZhxKCYJX9brH4CS/7PRPjAKNk6kzWgWuRoglP7hkjQcd6EpMcZEAw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.7.26", + "resolved": "https://registry.npmmirror.com/@swc/core-darwin-x64/-/core-darwin-x64-1.7.26.tgz", + "integrity": "sha512-az3cibZdsay2HNKmc4bjf62QVukuiMRh5sfM5kHR/JMTrLyS6vSw7Ihs3UTkZjUxkLTT8ro54LI6sV6sUQUbLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.7.26", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.26.tgz", + "integrity": "sha512-VYPFVJDO5zT5U3RpCdHE5v1gz4mmR8BfHecUZTmD2v1JeFY6fv9KArJUpjrHEEsjK/ucXkQFmJ0jaiWXmpOV9Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.7.26", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.26.tgz", + "integrity": "sha512-YKevOV7abpjcAzXrhsl+W48Z9mZvgoVs2eP5nY+uoMAdP2b3GxC0Df1Co0I90o2lkzO4jYBpTMcZlmUXLdXn+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.7.26", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.26.tgz", + "integrity": "sha512-3w8iZICMkQQON0uIcvz7+Q1MPOW6hJ4O5ETjA0LSP/tuKqx30hIniCGOgPDnv3UTMruLUnQbtBwVCZTBKR3Rkg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.7.26", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.26.tgz", + "integrity": "sha512-c+pp9Zkk2lqb06bNGkR2Looxrs7FtGDMA4/aHjZcCqATgp348hOKH5WPvNLBl+yPrISuWjbKDVn3NgAvfvpH4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.7.26", + "resolved": "https://registry.npmmirror.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.26.tgz", + "integrity": "sha512-PgtyfHBF6xG87dUSSdTJHwZ3/8vWZfNIXQV2GlwEpslrOkGqy+WaiiyE7Of7z9AvDILfBBBcJvJ/r8u980wAfQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.7.26", + "resolved": "https://registry.npmmirror.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.26.tgz", + "integrity": "sha512-9TNXPIJqFynlAOrRD6tUQjMq7KApSklK3R/tXgIxc7Qx+lWu8hlDQ/kVPLpU7PWvMMwC/3hKBW+p5f+Tms1hmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.7.26", + "resolved": "https://registry.npmmirror.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.26.tgz", + "integrity": "sha512-9YngxNcG3177GYdsTum4V98Re+TlCeJEP4kEwEg9EagT5s3YejYdKwVAkAsJszzkXuyRDdnHUpYbTrPG6FiXrQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.7.26", + "resolved": "https://registry.npmmirror.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.26.tgz", + "integrity": "sha512-VR+hzg9XqucgLjXxA13MtV5O3C0bK0ywtLIBw/+a+O+Oc6mxFWHtdUeXDbIi5AiPbn0fjgVJMqYnyjGyyX8u0w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmmirror.com/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.12", + "resolved": "https://registry.npmmirror.com/@swc/types/-/types-0.1.12.tgz", + "integrity": "sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, "node_modules/@types/estree": { "version": "1.0.5", "dev": true, @@ -325,6 +571,17 @@ "balanced-match": "^1.0.0" } }, + "node_modules/clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmmirror.com/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "license": "MIT", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, "node_modules/color": { "version": "3.2.1", "resolved": "https://registry.npmmirror.com/color/-/color-3.2.1.tgz", @@ -406,6 +663,12 @@ "node": ">=0.4.0" } }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "license": "MIT" + }, "node_modules/entities": { "version": "4.5.0", "license": "BSD-2-Clause", @@ -489,6 +752,15 @@ "node": ">= 6" } }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "license": "MIT", + "dependencies": { + "delegate": "^3.1.2" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz", @@ -711,6 +983,12 @@ "compute-scroll-into-view": "^1.0.20" } }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==", + "license": "MIT" + }, "node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz", @@ -739,6 +1017,12 @@ "node": ">=0.10.0" } }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "license": "MIT" + }, "node_modules/to-fast-properties": { "version": "2.0.0", "license": "MIT", @@ -759,6 +1043,20 @@ "node": ">=14.17" } }, + "node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/vite": { "version": "5.4.7", "dev": true, @@ -817,6 +1115,21 @@ } } }, + "node_modules/vite-plugin-top-level-await": { + "version": "1.4.4", + "resolved": "https://registry.npmmirror.com/vite-plugin-top-level-await/-/vite-plugin-top-level-await-1.4.4.tgz", + "integrity": "sha512-QyxQbvcMkgt+kDb12m2P8Ed35Sp6nXP+l8ptGrnHV9zgYDUpraO0CPdlqLSeBqvY2DToR52nutDG7mIHuysdiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rollup/plugin-virtual": "^3.0.2", + "@swc/core": "^1.7.0", + "uuid": "^10.0.0" + }, + "peerDependencies": { + "vite": ">=2.8" + } + }, "node_modules/vscode-uri": { "version": "3.0.8", "resolved": "https://registry.npmmirror.com/vscode-uri/-/vscode-uri-3.0.8.tgz", @@ -842,6 +1155,15 @@ } } }, + "node_modules/vue-clipboard3": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/vue-clipboard3/-/vue-clipboard3-2.0.0.tgz", + "integrity": "sha512-Q9S7dzWGax7LN5iiSPcu/K1GGm2gcBBlYwmMsUc5/16N6w90cbKow3FnPmPs95sungns4yvd9/+JhbAznECS2A==", + "license": "MIT", + "dependencies": { + "clipboard": "^2.0.6" + } + }, "node_modules/vue-router": { "version": "4.4.5", "license": "MIT", diff --git a/package.json b/package.json index a88238b..7058b9a 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "axios": "^1.7.7", "pinia": "^2.2.2", "vue": "^3.4.37", + "vue-clipboard3": "^2.0.0", "vue-router": "^4.4.5", "vue-waterfall-plugin-next": "^2.6.0" }, @@ -20,6 +21,7 @@ "@vitejs/plugin-vue": "^5.1.2", "typescript": "^5.5.3", "vite": "^5.4.1", + "vite-plugin-top-level-await": "^1.4.4", "vue-tsc": "^2.0.29" } } diff --git a/public/icon.svg b/public/icon.svg new file mode 100644 index 0000000..8cccc7c --- /dev/null +++ b/public/icon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/public/vite.svg b/public/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/api.ts b/src/api.ts index 18a0722..8fd169d 100644 --- a/src/api.ts +++ b/src/api.ts @@ -11,8 +11,8 @@ import { import { UserId } from "./stores/auth"; const instance = axios.create({ - baseURL: "http://localhost:8000/", - timeout: 1000, + baseURL: "http://47.98.245.204", + timeout: 60000, }); export async function Register(username: string, password: string) { @@ -127,8 +127,8 @@ export async function FetchAllExpression() { try { var response = await instance.get( UserId.value != "" - ? "/api/community/expressions?user_id=" + UserId.value - : "/api/community/expressions" + ? "/api/community/expressions?enable_truncation=true&user_id=" + UserId.value + : "/api/community/expressions?enable_truncation=true" ); var list: Array = new Array(); @@ -140,11 +140,15 @@ export async function FetchAllExpression() { success: true, data: list, }; - } catch (err) { + } catch (err: any) { console.log(err); return { success: false, - data: "获取墙贴列表失败", + data: + "获取墙贴列表失败," + + (err.code == "ECONNABORTED" + ? "连接出现错误" + : err.response.data.message), }; } } @@ -395,9 +399,9 @@ export async function DeleteReview(reviewId: number) { return { success: false, message: - "删除指定评论失败, " + err.code == "ECONNABORTED" + "删除指定评论失败, " + (err.code == "ECONNABORTED" ? "连接出现错误" - : err.response.data.message, + : err.response.data.message), }; } } diff --git a/src/assets/vue.svg b/src/assets/vue.svg deleted file mode 100644 index 770e9d3..0000000 --- a/src/assets/vue.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue deleted file mode 100644 index b58e52b..0000000 --- a/src/components/HelloWorld.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - - diff --git a/src/main.ts b/src/main.ts index fe872aa..719ce15 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,4 +1,4 @@ -import { createApp, watch } from "vue"; +import { createApp } from "vue"; import { createPinia } from "pinia"; import { Message } from "@arco-design/web-vue"; diff --git a/src/router/index.ts b/src/router/index.ts index 5cc2762..f68c307 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,6 +1,5 @@ import { createRouter, createWebHistory } from "vue-router"; import Home from "../views/home.vue"; -import Test from "../views/test.vue"; import Login from "../views/login.vue"; import Register from "../views/register.vue"; import Profile from "../views/profile.vue"; @@ -19,11 +18,6 @@ const routes = [ name: "Home", component: Home, }, - { - path: "/test", - name: "Test", - component: Test, - }, { path: "/login", name: "Login", diff --git a/src/views/edit-expression.vue b/src/views/edit-expression.vue index cf85aac..02dbc1a 100644 --- a/src/views/edit-expression.vue +++ b/src/views/edit-expression.vue @@ -4,6 +4,7 @@ import { useRoute, useRouter } from "vue-router"; import { EditExpresssion, FetchTargetExpression } from "../api"; import { Message } from "@arco-design/web-vue"; import { Expression } from "../types"; +import { AuthState } from "../stores/auth"; const router = useRouter(); const route = useRoute(); @@ -32,6 +33,11 @@ const handleSubmit = async () => { }; onMounted(async () => { + if (!AuthState.value) { + router.push("/login"); + return + } + var result = await FetchTargetExpression(Number(route.query?.expression_id)); if (result.success) { @@ -113,6 +119,7 @@ onMounted(async () => { 正文 (null); const reviewArray = ref(null); @@ -24,6 +27,7 @@ onMounted(async () => { if (result.success) expression.value = result.data as Expression; else Message.info(result.data); + loadingExpression.value = false; var reviewsResult = await FetchReviewOfExpression( Number(route.query?.expression_id) @@ -31,6 +35,7 @@ onMounted(async () => { if (result.success) reviewArray.value = reviewsResult.data as Review[]; else Message.info(result.data as string); + loadingReviews.value = false; }); const reviewInput = ref(""); @@ -67,48 +72,57 @@ const deleteReviewId = ref(-1); direction="vertical" fill > - - - {{ expression?.title }} - -
- - - - {{ expression?.user_name }} + + + + {{ expression?.title }} + +
-
-
+ + + + {{ expression?.user_name }} +
+
- - {{ expression?.content }} - + + {{ expression?.content }} + - - 发表于:{{ expression?.time }} - + + 发表于:{{ expression?.time }} + - - + - 编辑该贴 - - - 删除该贴 - - - - - 屏蔽此人 - + > + 编辑该贴 + + + 删除该贴 + + + + + 屏蔽此人 + + @@ -176,47 +201,55 @@ const deleteReviewId = ref(-1); - - 评论 - - - + + + + 评论 + + + + (null); onMounted(async () => { var result = await FetchAllExpression(); - if (result.success) { - dataArray.value = result.data as Expression[]; - } + if (result.success) dataArray.value = result.data as Expression[]; + else Message.info(result.data as string); + + loading.value = false; });