fix-0430: 优化论坛页面展示

This commit is contained in:
Shu Guang 2025-04-06 21:59:05 +08:00
parent 6028118a63
commit 9ecf6e451a
43 changed files with 1078 additions and 392 deletions

6
.gitignore vendored
View File

@ -1,6 +1,6 @@
# .DS_Store
# node_modules
# /dist
.DS_Store
node_modules
/dist
# # local env files
# .env.local

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/edit/tinymce.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/edit/tinymce.vue","mtime":1742646402768},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL3RpbnltY2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTcwNjVlZTlhJnNjb3BlZD10cnVlIgppbXBvcnQgc2NyaXB0IGZyb20gIi4vdGlueW1jZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmV4cG9ydCAqIGZyb20gIi4vdGlueW1jZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmltcG9ydCBzdHlsZTAgZnJvbSAiLi90aW55bWNlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTcwNjVlZTlhJnNjb3BlZD10cnVlJmxhbmc9Y3NzIgoKCi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi8KaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSAiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanMiCnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKAogIHNjcmlwdCwKICByZW5kZXIsCiAgc3RhdGljUmVuZGVyRm5zLAogIGZhbHNlLAogIG51bGwsCiAgIjcwNjVlZTlhIiwKICBudWxsCiAgCikKCi8qIGhvdCByZWxvYWQgKi8KaWYgKG1vZHVsZS5ob3QpIHsKICB2YXIgYXBpID0gcmVxdWlyZSgiL1VzZXJzL3NodWd1YW5nL0Rlc2t0b3Av5q+V6K6+L0NvZGVNYXN0ZXIvQ29kZU1hc3Rlci9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanMiKQogIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKQogIGlmIChhcGkuY29tcGF0aWJsZSkgewogICAgbW9kdWxlLmhvdC5hY2NlcHQoKQogICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNzA2NWVlOWEnKSkgewogICAgICBhcGkuY3JlYXRlUmVjb3JkKCc3MDY1ZWU5YScsIGNvbXBvbmVudC5vcHRpb25zKQogICAgfSBlbHNlIHsKICAgICAgYXBpLnJlbG9hZCgnNzA2NWVlOWEnLCBjb21wb25lbnQub3B0aW9ucykKICAgIH0KICAgIG1vZHVsZS5ob3QuYWNjZXB0KCIuL3RpbnltY2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTcwNjVlZTlhJnNjb3BlZD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICBhcGkucmVyZW5kZXIoJzcwNjVlZTlhJywgewogICAgICAgIHJlbmRlcjogcmVuZGVyLAogICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zCiAgICAgIH0pCiAgICB9KQogIH0KfQpjb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSAic3JjL2NvbXBvbmVudHMvZWRpdC90aW55bWNlLnZ1ZSIKZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHM="}]}
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/edit/tinymce.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/edit/tinymce.vue","mtime":1743947405816},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL3RpbnltY2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTcwNjVlZTlhJnNjb3BlZD10cnVlIgppbXBvcnQgc2NyaXB0IGZyb20gIi4vdGlueW1jZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmV4cG9ydCAqIGZyb20gIi4vdGlueW1jZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmltcG9ydCBzdHlsZTAgZnJvbSAiLi90aW55bWNlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTcwNjVlZTlhJnNjb3BlZD10cnVlJmxhbmc9Y3NzIgoKCi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi8KaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSAiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanMiCnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKAogIHNjcmlwdCwKICByZW5kZXIsCiAgc3RhdGljUmVuZGVyRm5zLAogIGZhbHNlLAogIG51bGwsCiAgIjcwNjVlZTlhIiwKICBudWxsCiAgCikKCi8qIGhvdCByZWxvYWQgKi8KaWYgKG1vZHVsZS5ob3QpIHsKICB2YXIgYXBpID0gcmVxdWlyZSgiL1VzZXJzL3NodWd1YW5nL0Rlc2t0b3Av5q+V6K6+L0NvZGVNYXN0ZXIvQ29kZU1hc3Rlci9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanMiKQogIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKQogIGlmIChhcGkuY29tcGF0aWJsZSkgewogICAgbW9kdWxlLmhvdC5hY2NlcHQoKQogICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNzA2NWVlOWEnKSkgewogICAgICBhcGkuY3JlYXRlUmVjb3JkKCc3MDY1ZWU5YScsIGNvbXBvbmVudC5vcHRpb25zKQogICAgfSBlbHNlIHsKICAgICAgYXBpLnJlbG9hZCgnNzA2NWVlOWEnLCBjb21wb25lbnQub3B0aW9ucykKICAgIH0KICAgIG1vZHVsZS5ob3QuYWNjZXB0KCIuL3RpbnltY2UudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTcwNjVlZTlhJnNjb3BlZD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICBhcGkucmVyZW5kZXIoJzcwNjVlZTlhJywgewogICAgICAgIHJlbmRlcjogcmVuZGVyLAogICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zCiAgICAgIH0pCiAgICB9KQogIH0KfQpjb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSAic3JjL2NvbXBvbmVudHMvZWRpdC90aW55bWNlLnZ1ZSIKZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHM="}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/LoginState.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/LoginState.vue","mtime":1742646402766},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL0xvZ2luU3RhdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWQzNzQwOGU4JnNjb3BlZD10cnVlIgppbXBvcnQgc2NyaXB0IGZyb20gIi4vTG9naW5TdGF0ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmV4cG9ydCAqIGZyb20gIi4vTG9naW5TdGF0ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmltcG9ydCBzdHlsZTAgZnJvbSAiLi9Mb2dpblN0YXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWQzNzQwOGU4JnNjb3BlZD10cnVlJmxhbmc9c3R5bHVzIgoKCi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi8KaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSAiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanMiCnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKAogIHNjcmlwdCwKICByZW5kZXIsCiAgc3RhdGljUmVuZGVyRm5zLAogIGZhbHNlLAogIG51bGwsCiAgImQzNzQwOGU4IiwKICBudWxsCiAgCikKCi8qIGhvdCByZWxvYWQgKi8KaWYgKG1vZHVsZS5ob3QpIHsKICB2YXIgYXBpID0gcmVxdWlyZSgiL1VzZXJzL3NodWd1YW5nL0Rlc2t0b3Av5q+V6K6+L0NvZGVNYXN0ZXIvQ29kZU1hc3Rlci9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanMiKQogIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKQogIGlmIChhcGkuY29tcGF0aWJsZSkgewogICAgbW9kdWxlLmhvdC5hY2NlcHQoKQogICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnZDM3NDA4ZTgnKSkgewogICAgICBhcGkuY3JlYXRlUmVjb3JkKCdkMzc0MDhlOCcsIGNvbXBvbmVudC5vcHRpb25zKQogICAgfSBlbHNlIHsKICAgICAgYXBpLnJlbG9hZCgnZDM3NDA4ZTgnLCBjb21wb25lbnQub3B0aW9ucykKICAgIH0KICAgIG1vZHVsZS5ob3QuYWNjZXB0KCIuL0xvZ2luU3RhdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWQzNzQwOGU4JnNjb3BlZD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICBhcGkucmVyZW5kZXIoJ2QzNzQwOGU4JywgewogICAgICAgIHJlbmRlcjogcmVuZGVyLAogICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zCiAgICAgIH0pCiAgICB9KQogIH0KfQpjb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSAic3JjL2NvbXBvbmVudHMvY29tbW9uL0xvZ2luU3RhdGUudnVlIgpleHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cw=="}]}
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/LoginState.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/LoginState.vue","mtime":1743947900593},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL0xvZ2luU3RhdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWQzNzQwOGU4JnNjb3BlZD10cnVlIgppbXBvcnQgc2NyaXB0IGZyb20gIi4vTG9naW5TdGF0ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmV4cG9ydCAqIGZyb20gIi4vTG9naW5TdGF0ZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmltcG9ydCBzdHlsZTAgZnJvbSAiLi9Mb2dpblN0YXRlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPWQzNzQwOGU4JnNjb3BlZD10cnVlJmxhbmc9c3R5bHVzIgoKCi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi8KaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSAiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanMiCnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKAogIHNjcmlwdCwKICByZW5kZXIsCiAgc3RhdGljUmVuZGVyRm5zLAogIGZhbHNlLAogIG51bGwsCiAgImQzNzQwOGU4IiwKICBudWxsCiAgCikKCi8qIGhvdCByZWxvYWQgKi8KaWYgKG1vZHVsZS5ob3QpIHsKICB2YXIgYXBpID0gcmVxdWlyZSgiL1VzZXJzL3NodWd1YW5nL0Rlc2t0b3Av5q+V6K6+L0NvZGVNYXN0ZXIvQ29kZU1hc3Rlci9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanMiKQogIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKQogIGlmIChhcGkuY29tcGF0aWJsZSkgewogICAgbW9kdWxlLmhvdC5hY2NlcHQoKQogICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnZDM3NDA4ZTgnKSkgewogICAgICBhcGkuY3JlYXRlUmVjb3JkKCdkMzc0MDhlOCcsIGNvbXBvbmVudC5vcHRpb25zKQogICAgfSBlbHNlIHsKICAgICAgYXBpLnJlbG9hZCgnZDM3NDA4ZTgnLCBjb21wb25lbnQub3B0aW9ucykKICAgIH0KICAgIG1vZHVsZS5ob3QuYWNjZXB0KCIuL0xvZ2luU3RhdGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPWQzNzQwOGU4JnNjb3BlZD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICBhcGkucmVyZW5kZXIoJ2QzNzQwOGU4JywgewogICAgICAgIHJlbmRlcjogcmVuZGVyLAogICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zCiAgICAgIH0pCiAgICB9KQogIH0KfQpjb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSAic3JjL2NvbXBvbmVudHMvY29tbW9uL0xvZ2luU3RhdGUudnVlIgpleHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cw=="}]}

View File

@ -1 +1 @@
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/TabLayout.vue?vue&type=template&id=76d05bf0&scoped=true","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/TabLayout.vue","mtime":1742646402773},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js","mtime":1743264596348},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/loaders/templateLoader.js","mtime":1743264597097},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CjxkaXYgY2xhc3M9InRhYi1sYXlvdXQiPgogIDxhLXRhYnMKICAgIHR5cGU9ImVkaXRhYmxlLWNhcmQiCiAgICBjbGFzcz0idGFiLWJhciIKICAgIDpoaWRlLWFkZD0idHJ1ZSIKICAgIDphY3RpdmUta2V5PSJhY3RpdmVQYWdlIgogICAgQGNoYW5nZT0iY2hhbmdlUGFnZSIKICAgIEBlZGl0PSJlZGl0UGFnZSIKICAgIEBjb250ZXh0bWVudT0ib25Db250ZXh0bWVudSIKICA+CiAgICA8YS10YWItcGFuZSB2LWZvcj0icGFnZSBpbiBwYWdlTGlzdCIgOmtleT0icGFnZS5mdWxsUGF0aCI+CiAgICAgIDx0ZW1wbGF0ZSAjdGFiPgogICAgICAgIDxzcGFuIDpkYXRhLWtleT0icGFnZS5mdWxsUGF0aCI+CiAgICAgICAgICB7eyBwYWdlLm1ldGEudGl0bGUgfX0KICAgICAgICA8L3NwYW4+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2EtdGFiLXBhbmU+CiAgPC9hLXRhYnM+CiAgPFBhZ2VUb2dnbGVUcmFuc2l0aW9uIG5hbWU9ImZhZGVJbiI+CiAgICA8a2VlcC1hbGl2ZSA6ZXhjbHVkZT0iZHVzdGJpbiI+CiAgICAgIDxyb3V0ZXItdmlldyAvPgogICAgPC9rZWVwLWFsaXZlPgogIDwvUGFnZVRvZ2dsZVRyYW5zaXRpb24+CiAgPENvbnRleHRNZW51CiAgICA6bGlzdD0ibWVudUl0ZW1zIgogICAgOnZpc2libGUuc3luYz0ibWVudVZpc2libGUiCiAgICBAc2VsZWN0PSJvbk1lbnVTZWxlY3QiCiAgLz4KPC9kaXY+Cg=="},null]}
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/TabLayout.vue?vue&type=template&id=76d05bf0&scoped=true","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/TabLayout.vue","mtime":1743945250914},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js","mtime":1743264596348},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/loaders/templateLoader.js","mtime":1743264597097},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CjxkaXYgY2xhc3M9InRhYi1sYXlvdXQiPgogIDxhLXRhYnMKICAgIHR5cGU9ImVkaXRhYmxlLWNhcmQiCiAgICBjbGFzcz0idGFiLWJhciIKICAgIDpoaWRlLWFkZD0idHJ1ZSIKICAgIDphY3RpdmUta2V5PSJhY3RpdmVQYWdlIgogICAgQGNoYW5nZT0iY2hhbmdlUGFnZSIKICAgIEBlZGl0PSJlZGl0UGFnZSIKICAgIEBjb250ZXh0bWVudT0ib25Db250ZXh0bWVudSIKICA+CiAgICA8YS10YWItcGFuZSB2LWZvcj0icGFnZSBpbiBwYWdlTGlzdCIgOmtleT0icGFnZS5mdWxsUGF0aCI+CiAgICAgIDx0ZW1wbGF0ZSAjdGFiPgogICAgICAgIDxzcGFuIDpkYXRhLWtleT0icGFnZS5mdWxsUGF0aCI+CiAgICAgICAgICB7eyBwYWdlLm1ldGEudGl0bGUgfX0KICAgICAgICA8L3NwYW4+CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2EtdGFiLXBhbmU+CiAgPC9hLXRhYnM+CiAgPFBhZ2VUb2dnbGVUcmFuc2l0aW9uIG5hbWU9ImZhZGVJbiI+CiAgICA8a2VlcC1hbGl2ZSA6ZXhjbHVkZT0iZHVzdGJpbiI+CiAgICAgIDxyb3V0ZXItdmlldyAvPgogICAgPC9rZWVwLWFsaXZlPgogIDwvUGFnZVRvZ2dsZVRyYW5zaXRpb24+CiAgPENvbnRleHRNZW51CiAgICA6bGlzdD0ibWVudUl0ZW1zIgogICAgOnZpc2libGUuc3luYz0ibWVudVZpc2libGUiCiAgICBAc2VsZWN0PSJvbk1lbnVTZWxlY3QiCiAgLz4KPC9kaXY+Cg=="},null]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/GlobalLayout.vue?vue&type=template&id=6cf2f728","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/GlobalLayout.vue","mtime":1743939532635},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js","mtime":1743264596348},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/loaders/templateLoader.js","mtime":1743264597097},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Cjxwcm8tbGF5b3V0CiAgOm1lbnVzPSJtZW51cyIKICA6Y29sbGFwc2VkPSJjb2xsYXBzZWQiCiAgOm1lZGlhUXVlcnk9InF1ZXJ5IgogIDppc01vYmlsZT0iaXNNb2JpbGUiCiAgOmhhbmRsZU1lZGlhUXVlcnk9ImhhbmRsZU1lZGlhUXVlcnkiCiAgOmhhbmRsZUNvbGxhcHNlPSJoYW5kbGVDb2xsYXBzZSIKICBmaXhlZEhlYWRlcgogIGZpeFNpZGVyYmFyCj4KICA8dGVtcGxhdGUgI21lbnVIZWFkZXJSZW5kZXI+CiAgICA8YS1hdmF0YXIgc3JjPSIvbG9nby5wbmciIDpzaXplPSI0MCIgLz4KICAgIDxoMT7nq57otZvnrqHnkIbns7vnu588L2gxPgogIDwvdGVtcGxhdGU+CiAgPHRlbXBsYXRlICNyaWdodENvbnRlbnRSZW5kZXI+CiAgICA8ZGl2IDpjbGFzcz0icmlnaHRDb250ZW50Q2xhc3MiPgogICAgICA8TG9naW5TdGF0ZSAvPgogICAgPC9kaXY+CiAgPC90ZW1wbGF0ZT4KICA8dGVtcGxhdGUgI2Zvb3RlclJlbmRlcj4KICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb250YWluZXIiPgogICAgICDmoKHlm63kv6Hmga/ljJYt56ue6LWb566h55CG57O757ufIMKpMjAyNCBDcmVhdGVkIGJ5IOmZleilv+enkeaKgOWkp+WtpumVkOS6rOWtpumZogogICAgPC9kaXY+CiAgPC90ZW1wbGF0ZT4KICA8dGVtcGxhdGUgI2hlYWRlckNvbnRlbnRSZW5kZXI+CiAgICA8YS1icmVhZGNydW1iCiAgICAgIHN0eWxlPSJoZWlnaHQ6IDY0cHg7IGxpbmUtaGVpZ2h0OiA2NHB4IgogICAgICBjbGFzcz0iYnJlYWRjcnVtYiIKICAgICAgOnJvdXRlcz0iJHJvdXRlLm1hdGNoZWQiCiAgICA+CiAgICAgIDx0ZW1wbGF0ZSAjaXRlbVJlbmRlcj0ieyByb3V0ZSB9Ij4KICAgICAgICB7eyByb3V0ZS5tZXRhLnRpdGxlIH19CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2EtYnJlYWRjcnVtYj4KICA8L3RlbXBsYXRlPgogIDxUYWJMYXlvdXQgLz4KPC9wcm8tbGF5b3V0Pgo="},null]}
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/GlobalLayout.vue?vue&type=template&id=6cf2f728","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/GlobalLayout.vue","mtime":1743947423844},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js","mtime":1743264596348},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/loaders/templateLoader.js","mtime":1743264597097},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Cjxwcm8tbGF5b3V0CiAgOm1lbnVzPSJtZW51cyIKICA6Y29sbGFwc2VkPSJjb2xsYXBzZWQiCiAgOm1lZGlhUXVlcnk9InF1ZXJ5IgogIDppc01vYmlsZT0iaXNNb2JpbGUiCiAgOmhhbmRsZU1lZGlhUXVlcnk9ImhhbmRsZU1lZGlhUXVlcnkiCiAgOmhhbmRsZUNvbGxhcHNlPSJoYW5kbGVDb2xsYXBzZSIKICBmaXhlZEhlYWRlcgogIGZpeFNpZGVyYmFyCj4KICA8dGVtcGxhdGUgI21lbnVIZWFkZXJSZW5kZXI+CiAgICA8YS1hdmF0YXIgc3JjPSIvbG9nby5wbmciIDpzaXplPSI0MCIgLz4KICAgIDxoMT7nq57otZvnrqHnkIbns7vnu588L2gxPgogIDwvdGVtcGxhdGU+CiAgPHRlbXBsYXRlICNyaWdodENvbnRlbnRSZW5kZXI+CiAgICA8ZGl2IDpjbGFzcz0icmlnaHRDb250ZW50Q2xhc3MiPgogICAgICA8TG9naW5TdGF0ZSAvPgogICAgPC9kaXY+CiAgPC90ZW1wbGF0ZT4KICA8dGVtcGxhdGUgI2Zvb3RlclJlbmRlcj4KICAgIDxkaXYgY2xhc3M9ImZvb3Rlci1jb250YWluZXIiPgogICAgICDmoKHlm63kv6Hmga/ljJYt56ue6LWb566h55CG57O757ufIMKpMjAyNCBDcmVhdGVkIGJ5IOmZleilv+enkeaKgOWkp+WtpumVkOS6rOWtpumZogogICAgPC9kaXY+CiAgPC90ZW1wbGF0ZT4KICA8dGVtcGxhdGUgI2hlYWRlckNvbnRlbnRSZW5kZXI+CiAgICA8YS1icmVhZGNydW1iCiAgICAgIHN0eWxlPSJoZWlnaHQ6IDY0cHg7IGxpbmUtaGVpZ2h0OiA2NHB4IgogICAgICBjbGFzcz0iYnJlYWRjcnVtYiIKICAgICAgOnJvdXRlcz0iJHJvdXRlLm1hdGNoZWQiCiAgICA+CiAgICAgIDx0ZW1wbGF0ZSAjaXRlbVJlbmRlcj0ieyByb3V0ZSB9Ij4KICAgICAgICB7eyByb3V0ZS5tZXRhLnRpdGxlIH19CiAgICAgIDwvdGVtcGxhdGU+CiAgICA8L2EtYnJlYWRjcnVtYj4KICA8L3RlbXBsYXRlPgogIDxUYWJMYXlvdXQgLz4KPC9wcm8tbGF5b3V0Pgo="},null]}

View File

@ -1 +1 @@
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/account/center/index.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/account/center/index.vue","mtime":1743941931949},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL2luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03MDZiOWQ1NCZzY29wZWQ9dHJ1ZSIKaW1wb3J0IHNjcmlwdCBmcm9tICIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyIKZXhwb3J0ICogZnJvbSAiLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmltcG9ydCBzdHlsZTAgZnJvbSAiLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03MDZiOWQ1NCZsYW5nPWxlc3Mmc2NvcGVkPXRydWUiCgoKLyogbm9ybWFsaXplIGNvbXBvbmVudCAqLwppbXBvcnQgbm9ybWFsaXplciBmcm9tICIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qcyIKdmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoCiAgc2NyaXB0LAogIHJlbmRlciwKICBzdGF0aWNSZW5kZXJGbnMsCiAgZmFsc2UsCiAgbnVsbCwKICAiNzA2YjlkNTQiLAogIG51bGwKICAKKQoKLyogaG90IHJlbG9hZCAqLwppZiAobW9kdWxlLmhvdCkgewogIHZhciBhcGkgPSByZXF1aXJlKCIvVXNlcnMvc2h1Z3VhbmcvRGVza3RvcC/mr5Xorr4vQ29kZU1hc3Rlci9Db2RlTWFzdGVyL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qcyIpCiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpCiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7CiAgICBtb2R1bGUuaG90LmFjY2VwdCgpCiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCc3MDZiOWQ1NCcpKSB7CiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzcwNmI5ZDU0JywgY29tcG9uZW50Lm9wdGlvbnMpCiAgICB9IGVsc2UgewogICAgICBhcGkucmVsb2FkKCc3MDZiOWQ1NCcsIGNvbXBvbmVudC5vcHRpb25zKQogICAgfQogICAgbW9kdWxlLmhvdC5hY2NlcHQoIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTcwNmI5ZDU0JnNjb3BlZD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICBhcGkucmVyZW5kZXIoJzcwNmI5ZDU0JywgewogICAgICAgIHJlbmRlcjogcmVuZGVyLAogICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zCiAgICAgIH0pCiAgICB9KQogIH0KfQpjb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSAic3JjL3ZpZXdzL2FjY291bnQvY2VudGVyL2luZGV4LnZ1ZSIKZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHM="}]}
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/account/center/index.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/account/center/index.vue","mtime":1743943089632},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL2luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03MDZiOWQ1NCZzY29wZWQ9dHJ1ZSIKaW1wb3J0IHNjcmlwdCBmcm9tICIuL2luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qcyIKZXhwb3J0ICogZnJvbSAiLi9pbmRleC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmltcG9ydCBzdHlsZTAgZnJvbSAiLi9pbmRleC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03MDZiOWQ1NCZsYW5nPWxlc3Mmc2NvcGVkPXRydWUiCgoKLyogbm9ybWFsaXplIGNvbXBvbmVudCAqLwppbXBvcnQgbm9ybWFsaXplciBmcm9tICIhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qcyIKdmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoCiAgc2NyaXB0LAogIHJlbmRlciwKICBzdGF0aWNSZW5kZXJGbnMsCiAgZmFsc2UsCiAgbnVsbCwKICAiNzA2YjlkNTQiLAogIG51bGwKICAKKQoKLyogaG90IHJlbG9hZCAqLwppZiAobW9kdWxlLmhvdCkgewogIHZhciBhcGkgPSByZXF1aXJlKCIvVXNlcnMvc2h1Z3VhbmcvRGVza3RvcC/mr5Xorr4vQ29kZU1hc3Rlci9Db2RlTWFzdGVyL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qcyIpCiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpCiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7CiAgICBtb2R1bGUuaG90LmFjY2VwdCgpCiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCc3MDZiOWQ1NCcpKSB7CiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzcwNmI5ZDU0JywgY29tcG9uZW50Lm9wdGlvbnMpCiAgICB9IGVsc2UgewogICAgICBhcGkucmVsb2FkKCc3MDZiOWQ1NCcsIGNvbXBvbmVudC5vcHRpb25zKQogICAgfQogICAgbW9kdWxlLmhvdC5hY2NlcHQoIi4vaW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTcwNmI5ZDU0JnNjb3BlZD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICBhcGkucmVyZW5kZXIoJzcwNmI5ZDU0JywgewogICAgICAgIHJlbmRlcjogcmVuZGVyLAogICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zCiAgICAgIH0pCiAgICB9KQogIH0KfQpjb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSAic3JjL3ZpZXdzL2FjY291bnQvY2VudGVyL2luZGV4LnZ1ZSIKZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHM="}]}

View File

@ -1 +1 @@
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/LoginState.vue?vue&type=template&id=d37408e8&scoped=true","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/LoginState.vue","mtime":1742646402766},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js","mtime":1743264596348},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/loaders/templateLoader.js","mtime":1743264597097},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CjxhLWRyb3Bkb3duPgogIDxhLXNwaW4gdi1pZj0iIXVzZXIubmFtZSIgc2l6ZT0ic21hbGwiIC8+CiAgPGRpdiB2LWVsc2UgY2xhc3M9ImhlYWRlci1hdmF0YXIiPgogICAgPGEtaWNvbiBjbGFzcz0iYXZhdGFyIiB0eXBlPSJ1c2VyIiAvPgogICAgPHNwYW4gY2xhc3M9Im5hbWUiPnt7IHVzZXIubmFtZSB9fTwvc3Bhbj4KICA8L2Rpdj4KICA8YS1tZW51IHNsb3Q9Im92ZXJsYXkiPgogICAgPGEtbWVudS1pdGVtIGRpc2FibGVkPgogICAgICA8YS1pY29uIHR5cGU9InNtaWxlIiAvPgogICAgICB7eyB1c2VyLnJvbGUgJiYgdXNlci5yb2xlLmxhYmVsIH19CiAgICA8L2EtbWVudS1pdGVtPgogICAgPGEtbWVudS1pdGVtIEBjbGljaz0ibW9kaWZ5U2VsZkluZm8iPgogICAgICA8YS1pY29uIHR5cGU9InVzZXIiIC8+CiAgICAgIDxzcGFuPuS4quS6uuS/oeaBrzwvc3Bhbj4KICAgIDwvYS1tZW51LWl0ZW0+CiAgICA8YS1tZW51LWl0ZW0gQGNsaWNrPSJtb2RpZnlQYXNzd29yZCI+CiAgICAgIDxhLWljb24gdHlwZT0ibG9jayIgLz4KICAgICAgPHNwYW4+5L+u5pS55a+G56CBPC9zcGFuPgogICAgPC9hLW1lbnUtaXRlbT4KICAgIDxhLW1lbnUtZGl2aWRlciAvPgogICAgPGEtbWVudS1pdGVtIEBjbGljaz0ibG9nb3V0Ij4KICAgICAgPGEtaWNvbiB0eXBlPSJwb3dlcm9mZiIgLz4KICAgICAgPHNwYW4+6YCA5Ye655m75b2VPC9zcGFuPgogICAgPC9hLW1lbnUtaXRlbT4KICA8L2EtbWVudT4KPC9hLWRyb3Bkb3duPgo="},null]}
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/LoginState.vue?vue&type=template&id=d37408e8&scoped=true","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/LoginState.vue","mtime":1743947900593},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js","mtime":1743264596348},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/loaders/templateLoader.js","mtime":1743264597097},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CjxhLWRyb3Bkb3duPgogIDxhLXNwaW4gdi1pZj0iIXVzZXIiIHNpemU9InNtYWxsIiAvPgogIDxkaXYgdi1lbHNlIGNsYXNzPSJoZWFkZXItYXZhdGFyIj4KICAgIDxhLWljb24gY2xhc3M9ImF2YXRhciIgdHlwZT0idXNlciIgLz4KICAgIDxzcGFuIGNsYXNzPSJuYW1lIj57eyB1c2VyLnVzZXJOYW1lIH19PC9zcGFuPgogIDwvZGl2PgogIDxhLW1lbnUgc2xvdD0ib3ZlcmxheSI+CiAgICA8IS0tIDxhLW1lbnUtaXRlbSBkaXNhYmxlZD4KICAgICAgPGEtaWNvbiB0eXBlPSJzbWlsZSIgLz4KICAgICAge3sgdXNlci5yb2xlICYmIHVzZXIucm9sZS5sYWJlbCB9fQogICAgPC9hLW1lbnUtaXRlbT4gLS0+CiAgICA8YS1tZW51LWl0ZW0gQGNsaWNrPSJtb2RpZnlTZWxmSW5mbyI+CiAgICAgIDxhLWljb24gdHlwZT0idXNlciIgLz4KICAgICAgPHNwYW4+5Liq5Lq65L+h5oGvPC9zcGFuPgogICAgPC9hLW1lbnUtaXRlbT4KICAgIDxhLW1lbnUtaXRlbSBAY2xpY2s9Im1vZGlmeVBhc3N3b3JkIj4KICAgICAgPGEtaWNvbiB0eXBlPSJsb2NrIiAvPgogICAgICA8c3Bhbj7kv67mlLnlr4bnoIE8L3NwYW4+CiAgICA8L2EtbWVudS1pdGVtPgogICAgPGEtbWVudS1kaXZpZGVyIC8+CiAgICA8YS1tZW51LWl0ZW0gQGNsaWNrPSJsb2dvdXQiPgogICAgICA8YS1pY29uIHR5cGU9InBvd2Vyb2ZmIiAvPgogICAgICA8c3Bhbj7pgIDlh7rnmbvlvZU8L3NwYW4+CiAgICA8L2EtbWVudS1pdGVtPgogIDwvYS1tZW51Pgo8L2EtZHJvcGRvd24+Cg=="},null]}

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/GlobalLayout.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/GlobalLayout.vue","mtime":1743939532635},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL0dsb2JhbExheW91dC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NmNmMmY3MjgiCmltcG9ydCBzY3JpcHQgZnJvbSAiLi9HbG9iYWxMYXlvdXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzIgpleHBvcnQgKiBmcm9tICIuL0dsb2JhbExheW91dC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmltcG9ydCBzdHlsZTAgZnJvbSAiLi9HbG9iYWxMYXlvdXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NmNmMmY3MjgmbGFuZz1sZXNzIgoKCi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi8KaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSAiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanMiCnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKAogIHNjcmlwdCwKICByZW5kZXIsCiAgc3RhdGljUmVuZGVyRm5zLAogIGZhbHNlLAogIG51bGwsCiAgbnVsbCwKICBudWxsCiAgCikKCi8qIGhvdCByZWxvYWQgKi8KaWYgKG1vZHVsZS5ob3QpIHsKICB2YXIgYXBpID0gcmVxdWlyZSgiL1VzZXJzL3NodWd1YW5nL0Rlc2t0b3Av5q+V6K6+L0NvZGVNYXN0ZXIvQ29kZU1hc3Rlci9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanMiKQogIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKQogIGlmIChhcGkuY29tcGF0aWJsZSkgewogICAgbW9kdWxlLmhvdC5hY2NlcHQoKQogICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNmNmMmY3MjgnKSkgewogICAgICBhcGkuY3JlYXRlUmVjb3JkKCc2Y2YyZjcyOCcsIGNvbXBvbmVudC5vcHRpb25zKQogICAgfSBlbHNlIHsKICAgICAgYXBpLnJlbG9hZCgnNmNmMmY3MjgnLCBjb21wb25lbnQub3B0aW9ucykKICAgIH0KICAgIG1vZHVsZS5ob3QuYWNjZXB0KCIuL0dsb2JhbExheW91dC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NmNmMmY3MjgiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFwaS5yZXJlbmRlcignNmNmMmY3MjgnLCB7CiAgICAgICAgcmVuZGVyOiByZW5kZXIsCiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnMKICAgICAgfSkKICAgIH0pCiAgfQp9CmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9ICJzcmMvbGF5b3V0cy9HbG9iYWxMYXlvdXQudnVlIgpleHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cw=="}]}
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/GlobalLayout.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/GlobalLayout.vue","mtime":1743947423844},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL0dsb2JhbExheW91dC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NmNmMmY3MjgiCmltcG9ydCBzY3JpcHQgZnJvbSAiLi9HbG9iYWxMYXlvdXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzIgpleHBvcnQgKiBmcm9tICIuL0dsb2JhbExheW91dC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmltcG9ydCBzdHlsZTAgZnJvbSAiLi9HbG9iYWxMYXlvdXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NmNmMmY3MjgmbGFuZz1sZXNzIgoKCi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi8KaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSAiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanMiCnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKAogIHNjcmlwdCwKICByZW5kZXIsCiAgc3RhdGljUmVuZGVyRm5zLAogIGZhbHNlLAogIG51bGwsCiAgbnVsbCwKICBudWxsCiAgCikKCi8qIGhvdCByZWxvYWQgKi8KaWYgKG1vZHVsZS5ob3QpIHsKICB2YXIgYXBpID0gcmVxdWlyZSgiL1VzZXJzL3NodWd1YW5nL0Rlc2t0b3Av5q+V6K6+L0NvZGVNYXN0ZXIvQ29kZU1hc3Rlci9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanMiKQogIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKQogIGlmIChhcGkuY29tcGF0aWJsZSkgewogICAgbW9kdWxlLmhvdC5hY2NlcHQoKQogICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNmNmMmY3MjgnKSkgewogICAgICBhcGkuY3JlYXRlUmVjb3JkKCc2Y2YyZjcyOCcsIGNvbXBvbmVudC5vcHRpb25zKQogICAgfSBlbHNlIHsKICAgICAgYXBpLnJlbG9hZCgnNmNmMmY3MjgnLCBjb21wb25lbnQub3B0aW9ucykKICAgIH0KICAgIG1vZHVsZS5ob3QuYWNjZXB0KCIuL0dsb2JhbExheW91dC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NmNmMmY3MjgiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFwaS5yZXJlbmRlcignNmNmMmY3MjgnLCB7CiAgICAgICAgcmVuZGVyOiByZW5kZXIsCiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnMKICAgICAgfSkKICAgIH0pCiAgfQp9CmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9ICJzcmMvbGF5b3V0cy9HbG9iYWxMYXlvdXQudnVlIgpleHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cw=="}]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/TabLayout.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/TabLayout.vue","mtime":1742646402773},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL1RhYkxheW91dC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzZkMDViZjAmc2NvcGVkPXRydWUiCmltcG9ydCBzY3JpcHQgZnJvbSAiLi9UYWJMYXlvdXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzIgpleHBvcnQgKiBmcm9tICIuL1RhYkxheW91dC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmltcG9ydCBzdHlsZTAgZnJvbSAiLi9UYWJMYXlvdXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzZkMDViZjAmc2NvcGVkPXRydWUmbGFuZz1jc3MiCgoKLyogbm9ybWFsaXplIGNvbXBvbmVudCAqLwppbXBvcnQgbm9ybWFsaXplciBmcm9tICIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qcyIKdmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoCiAgc2NyaXB0LAogIHJlbmRlciwKICBzdGF0aWNSZW5kZXJGbnMsCiAgZmFsc2UsCiAgbnVsbCwKICAiNzZkMDViZjAiLAogIG51bGwKICAKKQoKLyogaG90IHJlbG9hZCAqLwppZiAobW9kdWxlLmhvdCkgewogIHZhciBhcGkgPSByZXF1aXJlKCIvVXNlcnMvc2h1Z3VhbmcvRGVza3RvcC/mr5Xorr4vQ29kZU1hc3Rlci9Db2RlTWFzdGVyL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qcyIpCiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpCiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7CiAgICBtb2R1bGUuaG90LmFjY2VwdCgpCiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCc3NmQwNWJmMCcpKSB7CiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzc2ZDA1YmYwJywgY29tcG9uZW50Lm9wdGlvbnMpCiAgICB9IGVsc2UgewogICAgICBhcGkucmVsb2FkKCc3NmQwNWJmMCcsIGNvbXBvbmVudC5vcHRpb25zKQogICAgfQogICAgbW9kdWxlLmhvdC5hY2NlcHQoIi4vVGFiTGF5b3V0LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD03NmQwNWJmMCZzY29wZWQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgYXBpLnJlcmVuZGVyKCc3NmQwNWJmMCcsIHsKICAgICAgICByZW5kZXI6IHJlbmRlciwKICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucwogICAgICB9KQogICAgfSkKICB9Cn0KY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gInNyYy9sYXlvdXRzL1RhYkxheW91dC52dWUiCmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRz"}]}
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/TabLayout.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/layouts/TabLayout.vue","mtime":1743945250914},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL1RhYkxheW91dC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzZkMDViZjAmc2NvcGVkPXRydWUiCmltcG9ydCBzY3JpcHQgZnJvbSAiLi9UYWJMYXlvdXQudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzIgpleHBvcnQgKiBmcm9tICIuL1RhYkxheW91dC52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmltcG9ydCBzdHlsZTAgZnJvbSAiLi9UYWJMYXlvdXQudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9NzZkMDViZjAmbGFuZz1sZXNzJnNjb3BlZD10cnVlIgoKCi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi8KaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSAiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanMiCnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKAogIHNjcmlwdCwKICByZW5kZXIsCiAgc3RhdGljUmVuZGVyRm5zLAogIGZhbHNlLAogIG51bGwsCiAgIjc2ZDA1YmYwIiwKICBudWxsCiAgCikKCi8qIGhvdCByZWxvYWQgKi8KaWYgKG1vZHVsZS5ob3QpIHsKICB2YXIgYXBpID0gcmVxdWlyZSgiL1VzZXJzL3NodWd1YW5nL0Rlc2t0b3Av5q+V6K6+L0NvZGVNYXN0ZXIvQ29kZU1hc3Rlci9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanMiKQogIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKQogIGlmIChhcGkuY29tcGF0aWJsZSkgewogICAgbW9kdWxlLmhvdC5hY2NlcHQoKQogICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnNzZkMDViZjAnKSkgewogICAgICBhcGkuY3JlYXRlUmVjb3JkKCc3NmQwNWJmMCcsIGNvbXBvbmVudC5vcHRpb25zKQogICAgfSBlbHNlIHsKICAgICAgYXBpLnJlbG9hZCgnNzZkMDViZjAnLCBjb21wb25lbnQub3B0aW9ucykKICAgIH0KICAgIG1vZHVsZS5ob3QuYWNjZXB0KCIuL1RhYkxheW91dC52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9NzZkMDViZjAmc2NvcGVkPXRydWUiLCBmdW5jdGlvbiAoKSB7CiAgICAgIGFwaS5yZXJlbmRlcignNzZkMDViZjAnLCB7CiAgICAgICAgcmVuZGVyOiByZW5kZXIsCiAgICAgICAgc3RhdGljUmVuZGVyRm5zOiBzdGF0aWNSZW5kZXJGbnMKICAgICAgfSkKICAgIH0pCiAgfQp9CmNvbXBvbmVudC5vcHRpb25zLl9fZmlsZSA9ICJzcmMvbGF5b3V0cy9UYWJMYXlvdXQudnVlIgpleHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cw=="}]}

View File

@ -1,9 +1,9 @@
<script>
import { merge, isFunction } from 'lodash-es';
import ColumnSetting from '@/components/common/ColumnSetting';
import { merge, isFunction } from "lodash-es";
import ColumnSetting from "@/components/common/ColumnSetting";
export default {
name: 'AntTable',
name: "AntTable",
props: {
// v-model
value: {
@ -12,7 +12,7 @@ export default {
},
rowKey: {
type: [String, Function],
default: 'id',
default: "id",
},
columns: {
type: Array,
@ -20,7 +20,7 @@ export default {
},
size: {
type: String,
default: 'middle',
default: "middle",
},
rowSelection: {
type: Object,
@ -47,11 +47,11 @@ export default {
const allProps = {
scopedSlots: this.$scopedSlots,
on: this.$listeners,
props: merge({
props: merge(
{
size: this.customSize,
rowKey: this.rowKey,
columns: this.customTableColumns,
bordered: true,
scroll: { x: 1000 },
rowSelection: useVModel
? { selectedRowKeys: this.value, onChange: input }
@ -59,9 +59,11 @@ export default {
pagination: {
showQuickJumper: true,
showSizeChanger: true,
showTotal: total => `${total} 条记录`,
showTotal: (total) => `${total} 条记录`,
},
}, this.$attrs),
},
this.$attrs
),
};
return (
<div class="table-wrapper">
@ -70,14 +72,16 @@ export default {
<div class="right">
<ColumnSetting
columns={this.columns}
onChange={e => { this.customTableColumns = e; }}
onChange={(e) => {
this.customTableColumns = e;
}}
/>
</div>
</div>
<a-divider style="margin: 10px 0" />
<a-table {...allProps}>
{/* 原样传递插槽 */}
{Object.keys(this.$slots).map(name => (
{Object.keys(this.$slots).map((name) => (
<template slot={name}>{this.$slots[name]}</template>
))}
</a-table>

View File

@ -1,15 +1,15 @@
<template>
<a-dropdown>
<a-spin v-if="!user.name" size="small" />
<a-spin v-if="!user" size="small" />
<div v-else class="header-avatar">
<a-icon class="avatar" type="user" />
<span class="name">{{ user.name }}</span>
<span class="name">{{ user.userName }}</span>
</div>
<a-menu slot="overlay">
<a-menu-item disabled>
<!-- <a-menu-item disabled>
<a-icon type="smile" />
{{ user.role && user.role.label }}
</a-menu-item>
</a-menu-item> -->
<a-menu-item @click="modifySelfInfo">
<a-icon type="user" />
<span>个人信息</span>
@ -28,39 +28,42 @@
</template>
<script>
import UpdatePassword from '@/components/common/UpdatePassword';
import EditStudent from '@/components/edit/EditStudent';
import EditTeacher from '@/components/edit/EditTeacher';
import { mapState, mapActions } from 'vuex';
import UpdatePassword from "@/components/common/UpdatePassword";
import EditStudent from "@/components/edit/EditStudent";
import EditTeacher from "@/components/edit/EditTeacher";
import { mapState, mapActions } from "vuex";
export default {
name: 'LoginState',
name: "LoginState",
computed: {
...mapState(['user']),
...mapState(["user"]),
},
methods: {
...mapActions(['initUser']),
...mapActions(["initUser"]),
logout() {
this.$store.commit('logout');
this.$router.replace('/login');
this.$store.commit("logout");
this.$router.replace("/login");
},
modifyPassword() {
let vnode;
this.$drawer({
title: '修改密码',
content: h => (vnode = <UpdatePassword />),
title: "修改密码",
content: (h) => (vnode = <UpdatePassword />),
onOk: async () => {
const values = await vnode.componentInstance.validate();
return this.$api.updatePassword({
return this.$api
.updatePassword({
account: this.user.account,
identity: this.user.identity,
oldVal: values.oldVal,
newVal: values.newVal,
}).then(() => {
this.$message.success('修改成功');
}).catch(e => {
})
.then(() => {
this.$message.success("修改成功");
})
.catch((e) => {
console.error(e);
this.$message.error(e.msg || '修改失败');
this.$message.error(e.msg || "修改失败");
throw e;
});
},
@ -69,10 +72,14 @@ export default {
modifySelfInfo() {
let vnode;
this.$drawer({
title: '修改个人信息',
content: h => (vnode = this.$store.state.user.userPrivileges == 2
? <EditStudent type="update" data={this.user} />
: <EditTeacher type="update" data={this.user} />),
title: "修改个人信息",
content: (h) =>
(vnode =
this.$store.state.user.userPrivileges == 2 ? (
<EditStudent type="update" data={this.user} />
) : (
<EditTeacher type="update" data={this.user} />
)),
onOk: async () => {
const values = await vnode.componentInstance.validate();
const data = {
@ -80,15 +87,16 @@ export default {
email: values.email,
UserPassword: values.password,
sTId: values.stid,
}
return this.$api.updateUser(
data
).then(() => {
this.$message.success('修改成功');
this.$store.dispatch('initUser');
}).catch(e => {
};
return this.$api
.updateUser(data)
.then(() => {
this.$message.success("修改成功");
this.$store.dispatch("initUser");
})
.catch((e) => {
console.error(e);
this.$message.error(e.msg || '修改失败');
this.$message.error(e.msg || "修改失败");
throw e;
});
},

View File

@ -1,31 +1,103 @@
<template>
<div class="tinymce-editor">
<a-input v-model="ArticleTitle" placeholder="请输入文字标题" />
<div class="tinymce-editor fade-in">
<!-- 页面标题 -->
<div class="editor-header">
<h1 class="editor-title">创建新文章</h1>
<p class="editor-subtitle">分享你的知识经验和创意</p>
</div>
<!-- 文章标题输入 -->
<a-input
v-model="ArticleTitle"
placeholder="请输入文章标题 (5-50字)"
class="article-title-input"
:maxLength="50"
:allowClear="true"
/>
<!-- 文章简介输入 -->
<a-textarea
v-model="briefContent"
placeholder="请输入文章简介"
placeholder="请输入文章简介,简明扼要地介绍文章内容 (50-200字)"
:auto-size="{ minRows: 2, maxRows: 5 }"
class="article-brief-textarea"
:maxLength="200"
/>
<a-form-item style="width: 100%" label="选择比赛与类型:">
<!-- 文章信息 -->
<div class="article-info-card fade-in-delay-1">
<div class="info-title">
<a-icon type="info-circle" />
<span>文章信息</span>
</div>
<div class="form-item-container">
<!-- 选择比赛 -->
<a-form-item label="选择相关比赛">
<a-select
v-model="competitionId"
style="width: 100%"
:options="grades"
allowClear
:placeholder="请选择相关比赛"
/>
<a-select
v-model="articleType"
style="width: 100%"
:options="message"
allowClear
:placeholder="选择类型"
/>
placeholder="请选择相关比赛"
:showSearch="true"
:filterOption="filterOption"
>
<template slot="suffixIcon">
<a-icon type="trophy" />
</template>
</a-select>
</a-form-item>
<!-- 选择文章类型 -->
<a-form-item label="文章类型">
<a-select
v-model="articleType"
:options="message"
allowClear
placeholder="请选择文章类型"
>
<template slot="suffixIcon">
<a-icon type="tags" />
</template>
</a-select>
</a-form-item>
</div>
</div>
<!-- 文章封面 -->
<!-- <div class="cover-upload fade-in-delay-2">
<div class="cover-title">
<a-icon type="picture" />
<span style="margin-left: 8px">文章封面</span>
</div>
<p class="cover-description">
一个好的封面图能够吸引更多读者建议尺寸 900×500 像素
</p>
<div class="cover-preview hover-lift">
<img v-if="coverUrl" :src="coverUrl" alt="文章封面" />
<div v-else class="upload-placeholder">
<a-icon type="file-image" style="font-size: 48px; color: #d9d9d9" />
<p style="margin-top: 16px; color: #999">点击上传封面图片</p>
</div>
<a-upload
name="file"
:showUploadList="false"
:beforeUpload="beforeUpload"
@change="handleCoverChange"
>
<a-button type="primary" class="cover-upload-btn">
<a-icon :type="coverUrl ? 'edit' : 'upload'" />
{{ coverUrl ? "更换封面" : "上传封面" }}
</a-button>
</a-upload>
</div>
</div> -->
<!-- 编辑器容器 -->
<div class="editor-container fade-in-delay-2">
<Editor
:id="tinymceId"
:init="init"
@ -33,25 +105,55 @@
v-model="myValue"
@onClick="onClick"
></Editor>
<a-button type="primary" @click="SendTinymce">发布文章</a-button>
<div class="word-count">字数: {{ wordCount }}</div>
</div>
<!-- 内容预览区域 -->
<div v-if="showPreview" class="preview-container fade-in">
<div class="preview-title">
<a-icon type="eye" />
<span>文章预览</span>
</div>
<div class="preview-content" v-html="myValue"></div>
</div>
<!-- 操作按钮 -->
<div class="publish-container">
<a-button @click="togglePreview" style="margin-right: 16px">
<a-icon :type="showPreview ? 'eye-invisible' : 'eye'" />
{{ showPreview ? "关闭预览" : "预览文章" }}
</a-button>
<a-button type="primary" class="publish-btn" @click="confirmPublish">
<a-icon type="plus" />
发布文章
</a-button>
</div>
</div>
</template>
<script>
import { message } from "@/utils/const";
import {createArticle,AllCompetition,SendSMS,SendEmail,AllArticle} from "@/api"
import tinymce from 'tinymce/tinymce' //tinymcehidden
import Editor from '@tinymce/tinymce-vue'//
import 'tinymce/themes/silver/theme'//
import 'tinymce/icons/default' //icon
import {
createArticle,
AllCompetition,
SendSMS,
SendEmail,
AllArticle,
} from "@/api";
import tinymce from "tinymce/tinymce"; //tinymcehidden
import Editor from "@tinymce/tinymce-vue"; //
import "tinymce/themes/silver/theme"; //
import "tinymce/icons/default"; //icon
//
import 'tinymce/plugins/advlist' //
import 'tinymce/plugins/autolink' //
import 'tinymce/plugins/link' //
import 'tinymce/plugins/image' //
import 'tinymce/plugins/lists' //
import 'tinymce/plugins/charmap' //
import 'tinymce/plugins/media' //
import 'tinymce/plugins/wordcount'//
import "tinymce/plugins/advlist"; //
import "tinymce/plugins/autolink"; //
import "tinymce/plugins/link"; //
import "tinymce/plugins/image"; //
import "tinymce/plugins/lists"; //
import "tinymce/plugins/charmap"; //
import "tinymce/plugins/media"; //
import "tinymce/plugins/wordcount"; //
// import Cookies from "js-cookie";
const fonts = [
@ -79,38 +181,39 @@ const fonts = [
"Trebuchet MS=trebuchet ms,geneva",
"Verdana=verdana,geneva",
"Webdings=webdings",
"Wingdings=wingdings,zapf dingbats"
"Wingdings=wingdings,zapf dingbats",
];
export default {
components: {
Editor
Editor,
},
props: {
//
value: {
type: String,
default: ''
default: "",
},
//
disabled: {
type: Boolean,
default: false
default: false,
},
// tinymce
tinymceId: {
type: String,
default: "tinymce"
default: "tinymce",
},
//
plugins: {
type: [String, Array],
default: 'advlist autolink link image lists charmap media wordcount'
default: "advlist autolink link image lists charmap media wordcount",
},
//
toolbar: {
type: [String, Array],
default: 'undo redo | formatselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | lists image media table'
}
default:
"undo redo | formatselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | lists image media table",
},
},
data() {
return {
@ -123,86 +226,88 @@ export default {
articleType: "",
briefContent: "",
init: {
selector: '#' + this.tinymceId,
language_url: '@/components/edit/zh_CN.js',//publicstatic
language: 'zh_CN',
skin_url: '/tinymce/skins/ui/oxide',//
selector: "#" + this.tinymceId,
language_url: "@/components/edit/zh_CN.js", //publicstatic
language: "zh_CN",
skin_url: "/tinymce/skins/ui/oxide", //
plugins: this.plugins, //
//
toolbar: this.toolbar,
toolbar_location: '/',
fontsize_formats: '12px 14px 16px 18px 20px 22px 24px 28px 32px 36px 48px 56px 72px', //
toolbar_location: "/",
fontsize_formats:
"12px 14px 16px 18px 20px 22px 24px 28px 32px 36px 48px 56px 72px", //
font_formats: fonts.join(";"),
content_style: "p {margin: 0px; border:0px ; padding: 0px}", // p
width: "100%",
// height: 500,//
placeholder: '在这里输入文字',
placeholder: "在这里输入文字",
branding: false, //
//
},
ArticleId: "",
Article: {},
}
};
},
watch: {
//
value(newValue) {
this.myValue = (newValue == null ? '' : newValue)
this.myValue = newValue == null ? "" : newValue;
},
myValue(newValue) {
if (this.triggerChange) {
this.$emit('change', newValue)
this.$emit("change", newValue);
} else {
this.$emit('input', newValue)
}
this.$emit("input", newValue);
}
},
},
mounted() {
tinymce.init({})
tinymce.init({});
// console.log(this.toolbar,'======')
this.GetAritle()
AllCompetition().then(response => {
this.GetAritle();
AllCompetition()
.then((response) => {
//
const competitions = response.data;
// select
const selectOptions = competitions.map(competition => ({
const selectOptions = competitions.map((competition) => ({
label: competition.competitionName,
value: competition.competitionId
value: competition.competitionId,
}));
// Vue便使
this.grades = selectOptions;
}).catch(error => {
})
.catch((error) => {
console.error(error);
});
},
methods: {
GetAritle() {
console.log(this.ArticleId)
if(this.ArticleId!=''||null){
console.log(this.ArticleId);
if (this.ArticleId != "" || null) {
AllArticle().then((res) => {
res.data.forEach(item=>{
console.log(item)
res.data.forEach((item) => {
console.log(item);
if (item.articleId == this.ArticleId) {
console.log(item)
this.competitionId=item.competitionId
this.ArticleTitle = item.articleTitle,
this.myValue=item.articleContent,
this.articleType=item.articleType,
this.briefContent=item.briefContent
console.log(item);
this.competitionId = item.competitionId;
(this.ArticleTitle = item.articleTitle),
(this.myValue = item.articleContent),
(this.articleType = item.articleType),
(this.briefContent = item.briefContent);
}
})
})
});
});
}
},
onClick(e) {
this.$emit('onClick', e, tinymce)
this.$emit("onClick", e, tinymce);
},
//
clear() {
this.myValue = ''
this.myValue = "";
},
SendTinymce() {
const data = {
@ -211,39 +316,42 @@ export default {
competitionId: this.competitionId,
articleType: this.articleType,
articleTitle: this.ArticleTitle,
articleContent: this.myValue
articleContent: this.myValue,
};
createArticle(data)
.then(res => {
.then((res) => {
if (res.code == 200) {
this.$message.success('发送成功');
this.articleId=res.data
if (this.articleType == '公告') {
this.$message.success("发送成功");
this.articleId = res.data;
if (this.articleType == "公告") {
//
this.$modal.confirm({
title: `确认发送短信与邮件通知用户?`,
onOk: () => {
let data = {
competitionId: this.competitionId,
articleId:this.articleId
}
this.$api.SendEmail(data).then(() => {
articleId: this.articleId,
};
this.$api
.SendEmail(data)
.then(() => {
this.$api.SendSMS(data).then(() => {
this.$message.success('短信邮件提醒成功!');
this.$message.success("短信邮件提醒成功!");
});
})
}).catch(e => {
this.$message.error(e.msg || '发送失败!');
.catch((e) => {
this.$message.error(e.msg || "发送失败!");
throw e;
})
}
});
},
});
}
} else {
throw new Error("发布失败");
}
})
.then(notificationData => {
.then((notificationData) => {
if (notificationData) {
return SendEmail(notificationData)
.then(() => SendSMS(notificationData))
@ -252,20 +360,480 @@ export default {
});
}
})
.catch(error => {
.catch((error) => {
console.error(error);
this.$notify.error({ title: '错误', message: error.message });
this.$notify.error({ title: "错误", message: error.message });
});
}
}
}
},
},
};
</script>
<style scoped>
/* 在线发帖页面美化样式 */
/* 整体容器样式 */
.tinymce-editor {
/* max-width: 1200px; */
margin: 0 auto;
padding: 30px;
background-color: #fff;
border-radius: 16px;
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
position: relative;
}
/* 页面标题 */
.editor-header {
text-align: center;
margin-bottom: 40px;
position: relative;
}
.editor-title {
font-size: 28px;
font-weight: 600;
color: #333;
margin-bottom: 10px;
position: relative;
display: inline-block;
}
.editor-title::after {
content: "";
position: absolute;
bottom: -10px;
left: 50%;
transform: translateX(-50%);
width: 80px;
height: 4px;
background: linear-gradient(90deg, #3690cf, #6dc6ff);
border-radius: 2px;
}
.editor-subtitle {
font-size: 16px;
color: #666;
margin-top: 20px;
}
/* 输入框美化 */
.tinymce-editor .ant-input,
.tinymce-editor .ant-input-affix-wrapper {
border-radius: 10px;
border: 1px solid #e8e8e8;
padding: 12px 16px;
font-size: 16px;
transition: all 0.3s;
margin-bottom: 20px;
box-shadow: 0 0 0 2px transparent;
}
.tinymce-editor .ant-input:hover,
.tinymce-editor .ant-input-affix-wrapper:hover {
border-color: #3690cf;
}
.tinymce-editor .ant-input:focus,
.tinymce-editor .ant-input-affix-wrapper-focused {
border-color: #3690cf;
box-shadow: 0 0 0 2px rgba(54, 144, 207, 0.2);
}
/* 标题输入框特殊样式 */
.article-title-input {
font-size: 20px !important;
font-weight: 500;
padding: 16px 20px !important;
margin-bottom: 20px;
border-radius: 12px !important;
}
.article-title-input::placeholder {
color: #aaa;
}
/* 文章简介美化 */
.article-brief-textarea {
border-radius: 10px;
min-height: 80px !important;
margin-bottom: 30px;
background-color: #f9fafc;
}
/* 表单项美化 */
.form-item-container {
display: flex;
gap: 20px;
margin-bottom: 25px;
}
.form-item-container .ant-form-item {
flex: 1;
margin-bottom: 0;
}
.tinymce-editor .ant-form-item-label {
margin-bottom: 8px;
}
.tinymce-editor .ant-form-item-label > label {
font-size: 16px;
font-weight: 500;
color: #333;
height: auto;
}
/* 下拉选择框美化 */
.tinymce-editor .ant-select {
width: 100%;
}
.tinymce-editor .ant-select-selector {
border-radius: 10px !important;
padding: 8px 16px !important;
height: auto !important;
min-height: 48px !important;
display: flex;
align-items: center;
transition: all 0.3s;
}
.tinymce-editor .ant-select-selection-search {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.tinymce-editor .ant-select:hover .ant-select-selector {
border-color: #3690cf !important;
}
.tinymce-editor .ant-select-focused .ant-select-selector {
border-color: #3690cf !important;
box-shadow: 0 0 0 2px rgba(54, 144, 207, 0.2) !important;
}
/* 编辑器容器 */
.editor-container {
position: relative;
margin-bottom: 25px;
border-radius: 12px;
overflow: hidden;
border: 1px solid #e8e8e8;
transition: all 0.3s;
}
.editor-container:hover {
border-color: #3690cf;
box-shadow: 0 0 0 2px rgba(54, 144, 207, 0.05);
}
/* TinyMCE编辑器自定义样式 */
.tox-tinymce {
border-radius: 12px !important;
overflow: hidden;
border: none !important;
}
.tox .tox-toolbar__group {
border-radius: 6px !important;
margin: 2px 4px !important;
padding: 0 4px !important;
}
.tox .tox-tbtn {
border-radius: 6px !important;
}
.tox .tox-tbtn:hover {
background-color: rgba(54, 144, 207, 0.1) !important;
}
.tox .tox-tbtn--enabled {
background-color: rgba(54, 144, 207, 0.2) !important;
}
/* 发布按钮容器 */
.publish-container {
display: flex;
justify-content: center;
margin-top: 40px;
position: relative;
}
/* 发布按钮 */
.publish-btn {
min-width: 180px;
height: 50px;
padding: 0 30px;
font-size: 16px;
font-weight: 500;
background: linear-gradient(135deg, #3690cf, #2a78b8) !important;
border: none !important;
border-radius: 25px !important;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 8px 15px rgba(54, 144, 207, 0.3);
transition: all 0.3s !important;
}
.publish-btn:hover {
transform: translateY(-2px);
box-shadow: 0 10px 20px rgba(54, 144, 207, 0.4) !important;
background: linear-gradient(135deg, #2a78b8, #1e5c8e) !important;
}
.publish-btn .anticon {
margin-right: 8px;
font-size: 18px;
}
/* 文章信息卡片 */
.article-info-card {
background-color: #f9fafc;
border-radius: 12px;
padding: 20px;
margin-bottom: 25px;
border: 1px dashed #e0e0e0;
}
.article-info-card .info-title {
font-size: 16px;
font-weight: 500;
color: #333;
margin-bottom: 15px;
display: flex;
align-items: center;
}
.article-info-card .info-title .anticon {
color: #3690cf;
margin-right: 8px;
font-size: 18px;
}
/* 编辑器底部状态栏 */
.tox-statusbar {
border-top: 1px solid #eee !important;
}
/* 上传图片区域 */
.upload-box {
border: 2px dashed #e0e0e0;
border-radius: 12px;
padding: 20px;
text-align: center;
cursor: pointer;
transition: all 0.3s;
margin-bottom: 25px;
}
.upload-box:hover {
border-color: #3690cf;
background-color: rgba(54, 144, 207, 0.05);
}
.upload-icon {
font-size: 48px;
color: #d0d0d0;
margin-bottom: 10px;
transition: all 0.3s;
}
.upload-box:hover .upload-icon {
color: #3690cf;
}
.upload-text {
color: #666;
font-size: 14px;
}
/* 响应式调整 */
@media (max-width: 768px) {
.tinymce-editor {
padding: 20px 15px;
}
.form-item-container {
flex-direction: column;
gap: 15px;
}
.editor-title {
font-size: 24px;
}
.publish-btn {
width: 100%;
}
}
/* 动画效果 */
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.fade-in {
animation: fadeIn 0.5s ease forwards;
}
.fade-in-delay-1 {
animation: fadeIn 0.5s ease 0.1s forwards;
opacity: 0;
}
.fade-in-delay-2 {
animation: fadeIn 0.5s ease 0.2s forwards;
opacity: 0;
}
/* 字数统计提示 */
.word-count {
position: absolute;
right: 15px;
bottom: 15px;
font-size: 12px;
color: #999;
background: rgba(255, 255, 255, 0.9);
padding: 4px 10px;
border-radius: 15px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
/* 预览效果区域 */
.preview-container {
margin-top: 30px;
padding: 20px;
border-radius: 12px;
background-color: #f9fafc;
border: 1px solid #eee;
}
.preview-title {
font-size: 18px;
font-weight: 500;
margin-bottom: 15px;
padding-bottom: 10px;
border-bottom: 1px solid #eee;
color: #333;
display: flex;
align-items: center;
}
.preview-title .anticon {
margin-right: 8px;
color: #3690cf;
}
.preview-content {
padding: 15px;
background: white;
border-radius: 8px;
min-height: 100px;
}
/* 自定义悬停效果 */
.hover-lift {
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.hover-lift:hover {
transform: translateY(-3px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}
/* 标签选择区域 */
.tags-container {
margin-bottom: 25px;
}
.tags-title {
font-size: 16px;
font-weight: 500;
color: #333;
margin-bottom: 12px;
}
.tag-select {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.tag-item {
display: inline-flex;
align-items: center;
padding: 6px 12px;
background-color: #f0f2f5;
color: #555;
border-radius: 20px;
font-size: 14px;
cursor: pointer;
transition: all 0.3s;
}
.tag-item:hover {
background-color: #e6f7ff;
color: #3690cf;
}
.tag-item.active {
background-color: #3690cf;
color: white;
}
.tag-item .anticon {
margin-right: 5px;
}
/* 文章封面上传区域 */
.cover-upload {
margin-bottom: 25px;
}
.cover-title {
font-size: 16px;
font-weight: 500;
color: #333;
margin-bottom: 12px;
}
.cover-description {
font-size: 14px;
color: #888;
margin-bottom: 15px;
}
.cover-preview {
width: 100%;
height: 200px;
border-radius: 12px;
overflow: hidden;
background-color: #f5f5f5;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.cover-preview img {
width: 100%;
height: 100%;
object-fit: cover;
}
.cover-upload-btn {
position: absolute;
bottom: 15px;
right: 15px;
z-index: 5;
}
</style>

View File

@ -116,6 +116,7 @@ export default {
margin: 10px 10px 0 10px;
padding: 10px;
background-color: white;
height: 100vh;
}
.ant-pro-global-header-index-right {

View File

@ -31,24 +31,24 @@
</template>
<script>
import { message } from 'ant-design-vue';
import { last } from 'lodash-es';
import ContextMenu from '../components/common/ContextMenu';
import PageToggleTransition from '../components/transition/PageToggleTransition';
import { message } from "ant-design-vue";
import { last } from "lodash-es";
import ContextMenu from "../components/common/ContextMenu";
import PageToggleTransition from "../components/transition/PageToggleTransition";
export default {
name: 'TabLayout',
name: "TabLayout",
components: { PageToggleTransition, ContextMenu },
data() {
return {
pageList: [],
dustbin: [],
activePage: '',
activePage: "",
menuVisible: false,
menuItems: [
{ key: '1', icon: 'arrow-left', text: '关闭左侧' },
{ key: '2', icon: 'arrow-right', text: '关闭右侧' },
{ key: '3', icon: 'close', text: '关闭其它' },
{ key: "1", icon: "arrow-left", text: "关闭左侧" },
{ key: "2", icon: "arrow-right", text: "关闭右侧" },
{ key: "3", icon: "close", text: "关闭其它" },
],
};
},
@ -58,7 +58,9 @@ export default {
handler(route) {
this.activePage = route.fullPath;
this.putCache(route);
const index = this.pageList.findIndex(item => item.fullPath === route.fullPath);
const index = this.pageList.findIndex(
(item) => item.fullPath === route.fullPath
);
if (index === -1) {
this.pageList.push(route);
}
@ -74,15 +76,15 @@ export default {
this.$router.push(key);
},
editPage(key, action) {
if (action === 'remove') {
if (action === "remove") {
this.remove(key);
}
},
remove(key) {
if (this.pageList.length <= 1) {
return message.info('最后一页了哦~');
return message.info("最后一页了哦~");
}
let curIndex = this.pageList.findIndex(item => item.fullPath === key);
let curIndex = this.pageList.findIndex((item) => item.fullPath === key);
const { matched } = this.pageList[curIndex];
const componentName = last(matched).components.default.name;
this.dustbin.push(componentName);
@ -90,7 +92,10 @@ export default {
//
if (key === this.activePage) {
//
curIndex = curIndex >= this.pageList.length ? this.pageList.length - 1 : curIndex;
curIndex =
curIndex >= this.pageList.length
? this.pageList.length - 1
: curIndex;
const page = this.pageList[curIndex];
this.$router.push(page.fullPath).finally(() => {
this.dustbin.splice(0); //
@ -110,14 +115,21 @@ export default {
onMenuSelect(key, target) {
const tabKey = getTabKey(target);
switch (key) {
case '1': this.closeLeft(tabKey); break;
case '2': this.closeRight(tabKey); break;
case '3': this.closeOthers(tabKey); break;
default: break;
case "1":
this.closeLeft(tabKey);
break;
case "2":
this.closeRight(tabKey);
break;
case "3":
this.closeOthers(tabKey);
break;
default:
break;
}
},
closeOthers(tabKey) {
const index = this.pageList.findIndex(item => item.fullPath === tabKey);
const index = this.pageList.findIndex((item) => item.fullPath === tabKey);
for (const route of this.pageList) {
if (route.fullPath !== tabKey) {
this.clearCache(route);
@ -126,10 +138,10 @@ export default {
const page = this.pageList[index];
this.pageList = [page];
this.activePage = page.fullPath;
this.$router.push(this.activePage).catch(e => e);
this.$router.push(this.activePage).catch((e) => e);
},
closeLeft(tabKey) {
const index = this.pageList.findIndex(item => item.fullPath === tabKey);
const index = this.pageList.findIndex((item) => item.fullPath === tabKey);
this.pageList.forEach((route, i) => {
if (i < index) {
this.clearCache(route);
@ -138,14 +150,16 @@ export default {
const restPages = this.pageList.slice(index);
this.pageList = restPages;
// activePage
const curActivePage = restPages.find(item => item.fullPath === this.activePage);
const curActivePage = restPages.find(
(item) => item.fullPath === this.activePage
);
if (!curActivePage) {
this.activePage = restPages[0].fullPath;
this.$router.push(this.activePage).catch(e => e);
this.$router.push(this.activePage).catch((e) => e);
}
},
closeRight(tabKey) {
const index = this.pageList.findIndex(item => item.fullPath === tabKey);
const index = this.pageList.findIndex((item) => item.fullPath === tabKey);
this.pageList.forEach((route, i) => {
if (i > index) {
this.clearCache(route);
@ -154,10 +168,12 @@ export default {
const restPages = this.pageList.slice(0, index + 1);
this.pageList = restPages;
// activePage
const curActivePage = restPages.find(item => item.fullPath === this.activePage);
const curActivePage = restPages.find(
(item) => item.fullPath === this.activePage
);
if (!curActivePage) {
this.activePage = last(restPages).fullPath;
this.$router.push(this.activePage).catch(e => e);
this.$router.push(this.activePage).catch((e) => e);
}
},
/**
@ -170,7 +186,7 @@ export default {
putCache(route) {
const componentName = last(route.matched).components.default.name;
if (this.dustbin.includes(componentName)) {
this.dustbin = this.dustbin.filter(item => item !== componentName);
this.dustbin = this.dustbin.filter((item) => item !== componentName);
}
},
},
@ -190,13 +206,95 @@ function getTabKey(target, depth = 0) {
}
</script>
<style scoped>
.tab-bar >>> .ant-tabs-bar {
margin-bottom: 0;
<style lang="less" scoped>
.tab-layout {
background: #fff;
padding: 6px 4px 0;
margin-bottom: 10px;
height: 32px !important;
.tab-bar {
background: #fff;
margin-bottom: 10px;
:deep(.ant-tabs-bar) {
margin: 0;
border: none;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}
:deep(.ant-tabs-nav-container) {
height: 32px !important;
}
:deep(.ant-tabs-tab) {
margin-right: 6px;
height: 32px !important;
line-height: 32px !important;
background: #fafafa;
border: 1px solid #f0f0f0;
border-radius: 4px;
transition: all 0.3s;
padding: 0 16px;
&:hover {
color: #1890ff;
background: #e6f7ff;
}
&.ant-tabs-tab-active {
background: #fff;
border-color: #1890ff;
color: #1890ff;
}
.ant-tabs-close-x {
width: 16px;
height: 16px;
line-height: 16px;
margin-right: -4px;
margin-left: 4px;
opacity: 0.45;
&:hover {
opacity: 1;
color: #ff4d4f;
}
}
}
:deep(.ant-tabs-ink-bar) {
display: none;
}
}
}
.breadcrumb {
margin-bottom: 10px;
margin-bottom: 12px;
padding: 8px 24px;
background: #fff;
border-radius: 4px;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}
//
:deep(.context-menu) {
background: #fff;
border-radius: 4px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
.menu-item {
padding: 8px 16px;
cursor: pointer;
transition: all 0.3s;
&:hover {
background: #e6f7ff;
color: #1890ff;
}
.anticon {
margin-right: 8px;
}
}
}
</style>

View File

@ -29,7 +29,12 @@
>
<div class="account-center-avatarHolder">
<div class="avatar">
<img :src="userimg" alt="用户头像" />
<img
src="https://onlinephoto.oss-cn-chengdu.aliyuncs.com/hangtian/touxiang.jpg"
data-src="//www.cmstui.com/wp-content/themes/zibll/img/avatar-default.png"
class="lazyload avatar avatar-id-1"
alt="用户头像"
/>
</div>
<div class="username">{{ $store.state.user.userName }}</div>
<div class="bio">{{ shenfen }}</div>
@ -410,8 +415,10 @@ export default {
return matches[0];
}
//
return require("@/assets/bg.svg");
const randomSeed = Math.floor(Math.random() * 10000);
// 使
return "https://tu.ltyuanfang.cn/api/fengjing.php?" + randomSeed;
},
//