Skip to content

Commit

Permalink
看文章,fix: 右上角菜单收起后不显示用户名
Browse files Browse the repository at this point in the history
  • Loading branch information
eee555 committed May 24, 2024
1 parent 7168280 commit 35b1c30
Show file tree
Hide file tree
Showing 3 changed files with 112 additions and 61 deletions.
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,13 @@
1. cd saolei_website\back_end\saolei
1. pip install -r requirements.txt
1. 安装mysql,根据saolei_website\back_end\saolei\saolei\setting.py中的配置,(默认)创建名为saolei的数据库,用户名root,密码123456
1. 建立一个文件夹saolei_website\back_end\saolei\logs(用来存放日志)
1. 新建一个文件夹saolei_website\back_end\saolei\logs(用来存放日志)
1. 新建一个文件夹saolei_website\back_end\saolei\assets(存放录像、头像、文章)
1. (可选,假如需要看文章)在saolei_website\back_end\saolei\assets下执行`git clone https://gitee.com/ee55/saolei_website_article.git`,并将文件夹名由saolei_website_article改为article
1. python manage.py makemigrations
1. python manage.py migrate
1. python manage.py runserver
1. (假如要启动定时任务,不做相关功能时可以不启动)python manage.py runapschedulermonitor
1.可选,假如要启动定时任务,不做相关功能时可以不启动)python manage.py runapschedulermonitor

前端:
1.[https://github.com/eee555/flop-player/releases/download/v1.1/dist.zip](https://github.com/eee555/flop-player/releases/download/v1.1/dist.zip)下载新版flop播放器,并解压到saolei_website\front_end\public\flop下(将文件夹的名称dist修改为flop),使得saolei_website\front_end\public\flop\index.html能够被找到
Expand Down
12 changes: 11 additions & 1 deletion front_end/src/components/Login.vue
Original file line number Diff line number Diff line change
Expand Up @@ -215,8 +215,18 @@ const init_refvalues = () => {
onMounted(() => {
if (store.login_status == LoginStatus.Undefined) {
login();
} else if (store.login_status == LoginStatus.IsLogin) {
// 解决改变窗口宽度,使得账号信息在显示和省略之间切换时,用户名不能显示的问题
hint_message.value = ""
user_name_show.value = store.user.username;
if (store.user.is_banned) {
user_name_show.value += "(您已被封禁,详情请询问管理员!)"
}
emit('login'); // 向父组件发送消息
login_visible.value = false;
}
window.onbeforeunload = function (e) {
// 关闭网页时,删cookie。由于跨域问题,开发时,如开前后端各开一个服务器,
// 体现不出效果,即:取消“记住我”,依然可以免密登录。部署以后,预期“记住我”的功能正常
Expand Down Expand Up @@ -275,7 +285,7 @@ const login = async () => {
// // 如果本次是自动登录成功的,下次依然自动登录
// remember_me.value = true;
// }
localStorage.setItem("user_id", response.data.id + "");
// localStorage.setItem("user_id", response.data.id + "");
} else if (response.data.status >= 101) {
hint_message.value = response.data.msg;
// console.log("登录失败");
Expand Down
156 changes: 98 additions & 58 deletions front_end/src/views/GuideView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,81 +2,81 @@
<el-row class="tac">
<el-col :span="4">
<h5 class="mb-2">目录</h5>
<el-menu class="el-menu-vertical">
<el-menu @select="show_content" class="el-menu-vertical">
<el-sub-menu index="1">
<template #title>
<el-icon><Document /></el-icon>
<el-icon>
<Document />
</el-icon>
<span>公告</span>
</template>
<template v-for="(item, idx) in notice_list">
<el-menu-item v-if="item.name[0] == '['" :index="`1-${idx + 1}`">
{{ item.files[0].match(/(?<=\]).*/)![0].replace(/\.md$/, '') }}
</el-menu-item>
<el-sub-menu v-else :index="`1-${idx + 1}`">
<template #title>{{ item.name }}</template>
<template v-for="(i, idy) in item.files">
<el-menu-item :index="`1-${idx + 1}-${idy + 1}`">
{{ i.match(/(?<=\]).*/)![0].replace(/\.md$/, '') }}
</el-menu-item>
</template>
</el-sub-menu>
{{ item.files[0].match(/(?<=\]).*/)![0].replace(/\.md$/, '') }} </el-menu-item>
<el-sub-menu v-else :index="`1-${idx + 1}`">
<template #title>{{ item.name }}</template>
<template v-for="(i, idy) in item.files">
<el-menu-item :index="`1-${idx + 1}-${idy + 1}`">
{{ i.match(/(?<=\]).*/)![0].replace(/\.md$/, '') }} </el-menu-item>
</template>
</el-sub-menu>
</template>
</el-sub-menu>
<el-sub-menu index="2">
<template #title>
<el-icon><Guide /></el-icon>
<el-icon>
<Guide />
</el-icon>
<span>教程</span>
</template>
<template v-for="(item, idx) in guide_list">
<el-menu-item v-if="item.name[0] == '['" :index="`2-${idx + 1}`">
{{ item.files[0].match(/(?<=\]).*/)![0].replace(/\.md$/, '') }}
</el-menu-item>
<el-sub-menu v-else :index="`2-${idx + 1}`">
<template #title>{{ item.name }}</template>
<template v-for="(i, idy) in item.files">
<el-menu-item :index="`2-${idx + 1}-${idy + 1}`">
{{ i.match(/(?<=\]).*/)![0].replace(/\.md$/, '') }}
</el-menu-item>
</template>
</el-sub-menu>
{{ item.files[0].match(/(?<=\]).*/)![0].replace(/\.md$/, '') }} </el-menu-item>
<el-sub-menu v-else :index="`2-${idx + 1}`">
<template #title>{{ item.name }}</template>
<template v-for="(i, idy) in item.files">
<el-menu-item :index="`2-${idx + 1}-${idy + 1}`">
{{ i.match(/(?<=\]).*/)![0].replace(/\.md$/, '') }} </el-menu-item>
</template>
</el-sub-menu>
</template>
</el-sub-menu>
<el-sub-menu index="3">
<template #title>
<el-icon><Cpu /></el-icon>
<el-icon>
<Cpu />
</el-icon>
<span>技术</span>
</template>
<template v-for="(item, idx) in tech_list">
<el-menu-item v-if="item.name[0] == '['" :index="`3-${idx + 1}`">
{{ item.files[0].match(/(?<=\]).*/)![0].replace(/\.md$/, '') }}
</el-menu-item>
<el-sub-menu v-else :index="`3-${idx + 1}`">
<template #title>{{ item.name }}</template>
<template v-for="(i, idy) in item.files">
<el-menu-item :index="`3-${idx + 1}-${idy + 1}`">
{{ i.match(/(?<=\]).*/)![0].replace(/\.md$/, '') }}
</el-menu-item>
</template>
</el-sub-menu>
{{ item.files[0].match(/(?<=\]).*/)![0].replace(/\.md$/, '') }} </el-menu-item>
<el-sub-menu v-else :index="`3-${idx + 1}`">
<template #title>{{ item.name }}</template>
<template v-for="(i, idy) in item.files">
<el-menu-item :index="`3-${idx + 1}-${idy + 1}`">
{{ i.match(/(?<=\]).*/)![0].replace(/\.md$/, '') }} </el-menu-item>
</template>
</el-sub-menu>
</template>
</el-sub-menu>
<el-sub-menu index="4">
<template #title>
<el-icon><Grid /></el-icon>
<el-icon>
<Grid />
</el-icon>
<span>其他</span>
</template>
<template v-for="(item, idx) in other_list">
<el-menu-item v-if="item.name[0] == '['" :index="`4-${idx + 1}`">
{{ item.files[0].match(/(?<=\]).*/)![0].replace(/\.md$/, '') }}
</el-menu-item>
<el-sub-menu v-else :index="`4-${idx + 1}`">
<template #title>{{ item.name }}</template>
<template v-for="(i, idy) in item.files">
<el-menu-item :index="`4-${idx + 1}-${idy + 1}`">
{{ i.match(/(?<=\]).*/)![0].replace(/\.md$/, '') }}
</el-menu-item>
</template>
</el-sub-menu>
{{ item.files[0].match(/(?<=\]).*/)![0].replace(/\.md$/, '') }} </el-menu-item>
<el-sub-menu v-else :index="`4-${idx + 1}`">
<template #title>{{ item.name }}</template>
<template v-for="(i, idy) in item.files">
<el-menu-item :index="`4-${idx + 1}-${idy + 1}`">
{{ i.match(/(?<=\]).*/)![0].replace(/\.md$/, '') }} </el-menu-item>
</template>
</el-sub-menu>
</template>
</el-sub-menu>
</el-menu>
Expand Down Expand Up @@ -263,23 +263,63 @@ onMounted(() => {
const cover = response.data[0];
const cover = notice_list.value[0].files[0];
if (cover.slice(-3) == ".md") {
proxy.$axios.get('/media/article/' + cover
).then(function (response) {
content.value = response.data;
})
} else {
proxy.$axios.get('/media/' + cover + "/a.md"
).then(function (response) {
content.value = response.data;
})
}
show_article(cover);
})
})
// 按文章名显示文章
const show_article = (name: string) => {
if (name.slice(-3) == ".md") {
proxy.$axios.get('/media/article/' + name
).then(function (response) {
content.value = response.data;
})
} else {
proxy.$axios.get('/media/article/' + name + "/a.md"
).then(function (response) {
// 全局替换图片url
// 举例:'任意文字![说明](url.jpg "标题")任意文字'
// -> '任意文字![说明](http://127.0.0.1/media/article/url.jpg "标题")任意文字'
content.value = (response.data as string).replaceAll(/(?<=(\!\[[^(\])]*\]\())([^(\s|\))]*)/g,
process.env.VUE_APP_BASE_API + '/media/article/' + name + '/$2');
})
}
}
// 按菜单的索引显示文章,点击菜单的回调
const show_content = (key: string, keyPath: string[]) => {
const keys = key.split("-");
if (keys[0] == "1") {
if (keys.length == 2) {
show_article(notice_list.value[+keys[1] - 1].files[0]);
} else if (keys.length == 3) {
show_article(notice_list.value[+keys[1] - 1].files[+keys[2] - 1]);
}
} else if (keys[0] == "2") {
if (keys.length == 2) {
show_article(guide_list.value[+keys[1] - 1].files[0]);
} else if (keys.length == 3) {
show_article(guide_list.value[+keys[1] - 1].files[+keys[2] - 1]);
}
} else if (keys[0] == "3") {
if (keys.length == 2) {
show_article(tech_list.value[+keys[1] - 1].files[0]);
} else if (keys.length == 3) {
show_article(tech_list.value[+keys[1] - 1].files[+keys[2] - 1]);
}
} else if (keys[0] == "4") {
if (keys.length == 2) {
show_article(other_list.value[+keys[1] - 1].files[0]);
} else if (keys.length == 3) {
show_article(other_list.value[+keys[1] - 1].files[+keys[2] - 1]);
}
}
}
</script>
<style></style>

0 comments on commit 35b1c30

Please sign in to comment.