no message

This commit is contained in:
A1300399510 2023-10-16 16:40:32 +08:00
parent 9fe6c9046b
commit 7dc3c78715
14 changed files with 538 additions and 555 deletions

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

2
dist/index.html vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/js/303.0a464870.js vendored Normal file
View File

@ -0,0 +1 @@
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[303],{1775:function(e,t,n){n.r(t),n.d(t,{default:function(){return u}});var a=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!0,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("寄托天下论坛")])],2),t("nav",[t("router-link",{attrs:{to:e.recommendURl,exact:""}},[e._v("推荐阅读")]),t("router-link",{attrs:{to:e.collect,exact:""}},[e._v("收藏的版块")]),t("router-link",{attrs:{to:e.allSections,exact:""}},[e._v("全部版块")])],1),t("div",{staticClass:"publish flexcolumn flexcenter",on:{click:function(t){return t.stopPropagation(),e.$skipUrl(e.invitationPost)}}},[t("svg-icon",{attrs:{"icon-class":"add","class-name":"icon-publish"}}),e._v(" 发帖 ")],1),t("router-view",{key:e.key})],1)},l=[],o=n(2277),i=n(6799),r={name:"Index",data(){return{favorite:[],recommend:[],fid:null,allSections:"/allSections",collect:"/collect",recommendURl:"/recommend",invitationPost:i.a}},computed:{key(){return this.$route.path+Math.random()}},watch:{"$store.state.homeRequestState":{handler(e,t){let{favoriteList:n,recommendList:a}=this.$store.state;this.favorite=n,this.recommend=a},immediate:!0},$route:{handler(e,t){let n=e.fullPath;-1!=n.indexOf("allSections")&&(this.allSections=n),-1!=n.indexOf("collect")&&(this.collect=n),-1!=n.indexOf("recommend")&&(this.recommendURl=n)},immediate:!0}},mounted(){},components:{HeaderNav:o.Z},methods:{}},s=r,c=n(1001),d=(0,c.Z)(s,a,l,!1,null,null,null),u=d.exports}}]);

View File

@ -1 +0,0 @@
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[4],{1775:function(e,t,n){n.r(t),n.d(t,{default:function(){return u}});var a=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!0,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("寄托天下论坛")])],2),t("nav",[t("router-link",{attrs:{to:e.recommendURl,exact:""}},[e._v("推荐阅读")]),t("router-link",{attrs:{to:e.collect,exact:""}},[e._v("收藏的版块")]),t("router-link",{attrs:{to:e.allSections,exact:""}},[e._v("全部版块")])],1),t("div",{staticClass:"publish flexcolumn flexcenter",on:{click:function(t){return t.stopPropagation(),e.$skipUrl(e.invitationPost)}}},[t("svg-icon",{attrs:{"icon-class":"add","class-name":"icon-publish"}}),e._v(" 发帖 ")],1),t("router-view",{key:e.key})],1)},l=[],o=n(5373),i=n(6799),r={name:"Index",data(){return{favorite:[],recommend:[],fid:null,allSections:"/allSections",collect:"/collect",recommendURl:"/recommend",invitationPost:i.a}},computed:{key(){return this.$route.path+Math.random()}},watch:{"$store.state.homeRequestState":{handler(e,t){let{favoriteList:n,recommendList:a}=this.$store.state;this.favorite=n,this.recommend=a},immediate:!0},$route:{handler(e,t){let n=e.fullPath;-1!=n.indexOf("allSections")&&(this.allSections=n),-1!=n.indexOf("collect")&&(this.collect=n),-1!=n.indexOf("recommend")&&(this.recommendURl=n)},immediate:!0}},mounted(){},components:{HeaderNav:o.Z},methods:{}},s=r,c=n(1001),d=(0,c.Z)(s,a,l,!1,null,null,null),u=d.exports}}]);

View File

@ -1 +1 @@
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[729],{9143:function(e,t,n){n.r(t),n.d(t,{default:function(){return l}});var a=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!0,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("帖子详情")])],2),t("router-view",{key:e.key})],1)},r=[],u=n(5373),s={name:"detail",data(){return{}},computed:{key(){return this.$route.path+Math.random()}},mounted(){},methods:{},components:{HeaderNav:u.Z}},d=s,i=n(1001),o=(0,i.Z)(d,a,r,!1,null,"10593ad7",null),l=o.exports}}]); "use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[502],{9143:function(e,t,n){n.r(t),n.d(t,{default:function(){return l}});var a=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!0,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("帖子详情")])],2),t("router-view",{key:e.key})],1)},r=[],u=n(2277),s={name:"detail",data(){return{}},computed:{key(){return this.$route.path+Math.random()}},mounted(){},methods:{},components:{HeaderNav:u.Z}},d=s,i=n(1001),o=(0,i.Z)(d,a,r,!1,null,"10593ad7",null),l=o.exports}}]);

View File

@ -1 +1 @@
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[983],{6170:function(e,t,n){n.r(t),n.d(t,{default:function(){return o}});var r=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!0,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("我的寄托")])],2),t("router-view")],1)},a=[],u=n(5373),s={name:"user",data(){return{}},mounted(){},methods:{},components:{HeaderNav:u.Z}},d=s,i=n(1001),l=(0,i.Z)(d,r,a,!1,null,"7090fd6a",null),o=l.exports}}]); "use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[553],{6170:function(e,t,n){n.r(t),n.d(t,{default:function(){return o}});var r=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!0,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("我的寄托")])],2),t("router-view")],1)},a=[],u=n(2277),s={name:"user",data(){return{}},mounted(){},methods:{},components:{HeaderNav:u.Z}},d=s,i=n(1001),l=(0,i.Z)(d,r,a,!1,null,"7090fd6a",null),o=l.exports}}]);

1
dist/js/574.1cfabd22.js vendored Normal file
View File

@ -0,0 +1 @@
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[574],{5817:function(e,t,n){n.r(t),n.d(t,{default:function(){return h}});var r=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!1,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("搜索帖子")])],2),t("router-view",{key:e.key})],1)},a=[],u=n(2277),s={name:"search",data(){return{}},computed:{key(){return this.$route.path+Math.random()}},mounted(){},methods:{},components:{HeaderNav:u.Z}},o=s,c=n(1001),d=(0,c.Z)(o,r,a,!1,null,"24c9f798",null),h=d.exports}}]);

View File

@ -1 +0,0 @@
"use strict";(self["webpackChunkninepage"]=self["webpackChunkninepage"]||[]).push([[97],{5817:function(e,t,n){n.r(t),n.d(t,{default:function(){return h}});var r=function(){var e=this,t=e._self._c;return t("div",[t("header-nav",{attrs:{issearch:!1,needgetuser:!0}},[t("template",{slot:"header-title"},[e._v("搜索帖子")])],2),t("router-view",{key:e.key})],1)},a=[],u=n(5373),s={name:"search",data(){return{}},computed:{key(){return this.$route.path+Math.random()}},mounted(){},methods:{},components:{HeaderNav:u.Z}},o=s,c=n(1001),d=(0,c.Z)(o,r,a,!1,null,"24c9f798",null),h=d.exports}}]);

File diff suppressed because one or more lines are too long

View File

@ -18,18 +18,18 @@
</div> </div>
</div> </div>
<div class="head-arrows" :class="{ animation: headMorePopState }" v-if="headMorePopState"></div> <div class="head-arrows" :class="{animation: headMorePopState}" v-if="headMorePopState"></div>
<div class="head-more-pop" :class="{ animation: headMorePopState }"> <div class="head-more-pop" :class="{animation: headMorePopState}">
<div class="head-more-userinfo flex1 flexacenter"> <div class="head-more-userinfo flex1 flexacenter">
<div class="head-more-left flexacenter" v-if="islogin"> <div class="head-more-left flexacenter" v-if="islogin">
<router-link class="flexacenter" to="/user" @click.native="headMorePopState = !headMorePopState"> <router-link class="flexacenter" to="/user" @click.native="headMorePopState = !headMorePopState">
<img class="head-more-userinfo-avatar" :src="userInfo.avatar || (process.env.URL_ENV + '/img/defaultAvatar.jpg')" /> <img class="head-more-userinfo-avatar" :src="userInfo.avatar || process.env.URL_ENV + '/img/defaultAvatar.jpg'" />
<div class="head-more-userinfo-username">{{ userInfo.nickname || '未登录' }}</div> <div class="head-more-userinfo-username">{{ userInfo.nickname || "未登录" }}</div>
</router-link> </router-link>
</div> </div>
<div class="head-more-left flexacenter" v-else @click="handleRegister()"> <div class="head-more-left flexacenter" v-else @click="handleRegister()">
<img class="head-more-userinfo-avatar" :src="userInfo.avatar || (process.env.URL_ENV + '/img/defaultAvatar.jpg')" /> <img class="head-more-userinfo-avatar" :src="userInfo.avatar || process.env.URL_ENV + '/img/defaultAvatar.jpg'" />
<div class="head-more-userinfo-username">{{ userInfo.nickname || '未登录' }}</div> <div class="head-more-userinfo-username">{{ userInfo.nickname || "未登录" }}</div>
</div> </div>
<div class="head-more-right"> <div class="head-more-right">
@ -46,8 +46,7 @@
</div> </div>
<div class="tab-list"> <div class="tab-list">
<a class="tab-item flexacenter" :href="item.url" target="_blank" :class="{ pitch: item.current == 1 }" <a class="tab-item flexacenter" :href="item.url" target="_blank" :class="{pitch: item.current == 1}" v-for="(item, index) in menu" :key="index">{{ item.name }}</a>
v-for="(item, index) in menu" :key="index">{{ item.name }}</a>
</div> </div>
<div class="head-more-post flexcenter" @click.stop="$skipUrl(invitationPost, false)"> <div class="head-more-post flexcenter" @click.stop="$skipUrl(invitationPost, false)">
@ -60,8 +59,6 @@
<div v-if="headMorePopState" @click="headMorePopState = !headMorePopState"> <div v-if="headMorePopState" @click="headMorePopState = !headMorePopState">
<svg-icon icon-class="cross" class-name="cross-icon"></svg-icon> <svg-icon icon-class="cross" class-name="cross-icon"></svg-icon>
</div> </div>
</div> </div>
</div> </div>
<div class="head-pop" v-if="headMorePopState" @click="headMorePopState = !headMorePopState"></div> <div class="head-pop" v-if="headMorePopState" @click="headMorePopState = !headMorePopState"></div>
@ -70,9 +67,9 @@
</template> </template>
<script> <script>
import SearchBox from "../components/SearchBox.vue"; import SearchBox from "../components/SearchBox.vue"
import { invitationPost } from '@/utils/bizarreUrl' import {invitationPost} from "@/utils/bizarreUrl"
export default { export default {
name: "HeaderNav", name: "HeaderNav",
@ -86,53 +83,50 @@ export default {
menu: [], menu: [],
hotSearchkeywords: [], // hotSearchkeywords: [], //
invitationPost, invitationPost,
}; }
}, },
props: ["issearch", "needgetuser", "userinfo"], props: ["issearch", "needgetuser", "userinfo"],
watch: { watch: {
headMorePopState(newValue, oldValue) { headMorePopState(newValue, oldValue) {
if (newValue) this.$pageStop(); if (newValue) this.$pageStop()
else this.$pageMove(); else this.$pageMove()
}, },
}, },
mounted() { mounted() {
let user = this.$store.state.user let user = this.$store.state.user
if (JSON.stringify(user) === "{}") this.$store.dispatch('getUserInfo', this) if (JSON.stringify(user) === "{}") this.$store.dispatch("getUserInfo", this)
else { else {
this.userInfo = user this.userInfo = user
this.islogin = user.uid > 0 ? true : false; this.islogin = user.uid > 0 ? true : false
this.hotSearchkeywords = this.$store.state.hotSearchkeywords this.hotSearchkeywords = this.$store.state.hotSearchkeywords
this.menu = this.$store.state.menu this.menu = this.$store.state.menu
} }
}, },
methods: { methods: {
// //
handleRegister() { handleRegister() {
let url = encodeURIComponent(location.href); let url = encodeURIComponent(location.href)
this.$skipUrl(`${this.$loginUrl}?referer=${url}`, false); this.$skipUrl(`${this.$loginUrl}?referer=${url}`, false)
}, },
collapseClick() { collapseClick() {
if (this.collapseShow == true) this.collapseShow = false; if (this.collapseShow == true) this.collapseShow = false
else this.collapseShow = true; else this.collapseShow = true
}, },
collapseClose() { collapseClose() {
this.collapseShow = false; this.collapseShow = false
}, },
}, },
destroyed() { destroyed() {
this.$pageMove(); this.$pageMove()
}, },
components: { components: {
SearchBox, SearchBox,
}, },
}; }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -159,44 +153,42 @@ export default {
} }
.right { .right {
.head-more { .head-more {
position: relative; position: relative;
.head-more-icon { .head-more-icon {
width: .48rem; width: 0.48rem;
height: .4rem; height: 0.4rem;
} }
.red-dot { .red-dot {
position: absolute; position: absolute;
right: -0.2rem; right: -0.2rem;
top: -0.2rem; top: -0.2rem;
width: .16rem; width: 0.16rem;
height: .16rem; height: 0.16rem;
border-radius: .64rem; border-radius: 0.64rem;
background-color: rgba(253, 63, 93, 1); background-color: rgba(253, 63, 93, 1);
} }
} }
} }
.head-arrows { .head-arrows {
width: .1333rem; width: 0.1333rem;
height: .1333rem; height: 0.1333rem;
position: absolute; position: absolute;
bottom: -.0133rem; bottom: -0.0133rem;
right: -0.5333rem; right: -0.5333rem;
width: 0; width: 0;
height: 0; height: 0;
transform: translateX(50%); transform: translateX(50%);
border: .24rem solid #000; border: 0.24rem solid #000;
border-top-color: transparent; border-top-color: transparent;
border-bottom-color: rgb(255, 255, 255); border-bottom-color: rgb(255, 255, 255);
border-left-color: transparent; border-left-color: transparent;
border-right-color: transparent; border-right-color: transparent;
opacity: 0; opacity: 0;
transition: all .2s; transition: all 0.2s;
&.animation { &.animation {
animation: slide-in-left2 0.5s ease-out forwards; animation: slide-in-left2 0.5s ease-out forwards;
@ -205,13 +197,13 @@ export default {
.head-more-pop { .head-more-pop {
position: absolute; position: absolute;
top: calc(100% - .0133rem); top: calc(100% - 0.0133rem);
height: calc(100vh - 1.3rem); height: calc(100vh - 1.3rem);
width: 7.6rem; width: 7.6rem;
right: 0; right: 0;
background-color: #fff; background-color: #fff;
overflow: auto; overflow: auto;
transition: all .2s; transition: all 0.2s;
right: -100%; right: -100%;
opacity: 0; opacity: 0;
@ -243,40 +235,37 @@ export default {
} }
} }
.head-more-userinfo { .head-more-userinfo {
height: 2.88rem; height: 2.88rem;
margin-left: .64rem; margin-left: 0.64rem;
margin-right: .72rem; margin-right: 0.72rem;
box-sizing: border-box; box-sizing: border-box;
border-bottom: .0133rem solid #ebebeb; border-bottom: 0.0133rem solid #ebebeb;
justify-content: space-between; justify-content: space-between;
.head-more-left { .head-more-left {
.head-more-userinfo-avatar { .head-more-userinfo-avatar {
margin-right: .24rem; margin-right: 0.24rem;
width: 1.28rem; width: 1.28rem;
height: 1.28rem; height: 1.28rem;
border-radius: 50%; border-radius: 50%;
} }
.head-more-userinfo-username { .head-more-userinfo-username {
font-size: .36rem; font-size: 0.36rem;
color: #333333; color: #333333;
} }
} }
.head-more-right { .head-more-right {
.information-box { .information-box {
position: relative; position: relative;
width: .44rem; width: 0.44rem;
height: .44rem; height: 0.44rem;
.information-icon { .information-icon {
width: .44rem; width: 0.44rem;
height: .44rem; height: 0.44rem;
} }
} }
@ -284,36 +273,36 @@ export default {
position: absolute; position: absolute;
right: -0.2rem; right: -0.2rem;
top: -0.2rem; top: -0.2rem;
width: .36rem; width: 0.36rem;
height: .36rem; height: 0.36rem;
color: #fff; color: #fff;
border-radius: .64rem; border-radius: 0.64rem;
background-color: rgba(253, 63, 93, 1); background-color: rgba(253, 63, 93, 1);
font-size: .26rem; font-size: 0.26rem;
} }
.loginBtn { .loginBtn {
width: 2.24rem; width: 2.24rem;
height: .8rem; height: 0.8rem;
border-radius: 3.12rem; border-radius: 3.12rem;
background-color: rgba(98, 177, 255, 1); background-color: rgba(98, 177, 255, 1);
color: #fff; color: #fff;
font-size: .34rem; font-size: 0.34rem;
} }
} }
} }
.tab-list { .tab-list {
padding-right: .72rem; padding-right: 0.72rem;
margin-left: 0.64rem; margin-left: 0.64rem;
border-bottom: .0133rem solid #ebebeb; border-bottom: 0.0133rem solid #ebebeb;
.tab-item { .tab-item {
height: 1.44rem; height: 1.44rem;
margin: .328rem 0; margin: 0.328rem 0;
border-radius: .22rem; border-radius: 0.22rem;
padding-left: .64rem; padding-left: 0.64rem;
font-size: .36rem; font-size: 0.36rem;
color: #555555; color: #555555;
text-decoration: none; text-decoration: none;
@ -327,28 +316,28 @@ export default {
.head-more-post { .head-more-post {
color: #000; color: #000;
font-size: .4rem; font-size: 0.4rem;
margin: 1.28rem 0 2.6667rem; margin: 1.28rem 0 2.6667rem;
.head-more-post-icon { .head-more-post-icon {
width: .48rem; width: 0.48rem;
height: .48rem; height: 0.48rem;
margin-right: .1333rem; margin-right: 0.1333rem;
background-color: #fddf6d; background-color: #fddf6d;
border-radius: 50%; border-radius: 50%;
.head-more-post-img { .head-more-post-img {
width: .24rem; width: 0.24rem;
height: .24rem; height: 0.24rem;
} }
} }
} }
.cross-icon { .cross-icon {
width: .32rem; width: 0.32rem;
height: .32rem; height: 0.32rem;
// padding: .8rem; // padding: .8rem;
padding: .4rem; padding: 0.4rem;
// position: sticky; // position: sticky;
position: fixed; position: fixed;
// bottom: .2667rem; // bottom: .2667rem;
@ -364,10 +353,7 @@ export default {
justify-content: center; justify-content: center;
margin: 0 auto; margin: 0 auto;
} }
} }
} }
.head-pop { .head-pop {
@ -549,7 +535,6 @@ export default {
} }
} }
header { header {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@ -592,7 +577,5 @@ header {
top: -0.15rem; top: -0.15rem;
right: -0.2rem; right: -0.2rem;
} }
} }
</style> </style>