feat(组件): 优化移动端分享功能并调整样式
调整推荐和精华图标高度为25px 为移动端添加点击分享直接复制链接功能 修复itemBottom组件中itemvalue拼写错误 添加响应式布局样式适配不同屏幕尺寸
This commit is contained in:
@@ -17,9 +17,12 @@ export const itemBottom = defineComponent({
|
||||
setup(props) {
|
||||
let valueUrl = ref("");
|
||||
|
||||
let isMobile = ref(false)
|
||||
|
||||
onMounted(() => {
|
||||
const valueA = document.querySelector(".valueA");
|
||||
valueUrl.value = valueA.innerText;
|
||||
isMobile.value = window.isMobile
|
||||
});
|
||||
|
||||
let item = ref({ ...props.itemdata });
|
||||
@@ -47,7 +50,7 @@ export const itemBottom = defineComponent({
|
||||
|
||||
const token = item.value.token || "";
|
||||
|
||||
if (["offer", "offer_summary", "interviewexperience"].includes(item.value["type"]) && item.value["is_like"]) {
|
||||
if (["offer", "offer_summary", "interviewexperience"].includes(itemvalue["type"]) && item.value["is_like"]) {
|
||||
creationAlertBox("error", "不可取消点赞");
|
||||
return;
|
||||
}
|
||||
@@ -108,9 +111,7 @@ export const itemBottom = defineComponent({
|
||||
});
|
||||
};
|
||||
|
||||
const copyLinkClick = () => {
|
||||
copyForumUid(`${location.origin}/details/${item.value.uniqid}`);
|
||||
};
|
||||
const copyLinkClick = () => copyForumUid(`${location.origin}/details/${item.value.uniqid}`);
|
||||
|
||||
let QRcode = ref("");
|
||||
const showQRcode = () => {
|
||||
@@ -146,12 +147,12 @@ export const itemBottom = defineComponent({
|
||||
|
||||
const shareBoxRef = ref(null);
|
||||
|
||||
return { valueUrl, isright, shareBoxRef, share, QRcode, showQRcode, copyLinkClick, collectClick, item, likeClick, isLogin, isLikeGif };
|
||||
return { isMobile, valueUrl, isright, shareBoxRef, share, QRcode, showQRcode, copyLinkClick, collectClick, item, likeClick, isLogin, isLikeGif };
|
||||
},
|
||||
|
||||
components: {
|
||||
like,
|
||||
},
|
||||
|
||||
template: `<a class="comment flexacenter" v-if="item?.commentreviews && !Array.isArray(item?.commentreviews)" :href="item.url" target="_blank"> <img class="icon" :src="item?.commentreviews?.avatar" /> <div class="text one-line-display">{{ item?.commentreviews?.content || "[图]" }}</div></a><template v-if="item.comment_list?.length != 0"> <a class="comment flexacenter" style="margin-bottom: 15px" v-for="(item, index) in item.comment_list" :key="index" :href="item.url" target="_blank"> <img class="icon" :src="item.avatar" /> <div class="text one-line-display">{{ item.content || "[图]" }}</div> </a></template><div class="bottom flexacenter"> <div class="bottom-item like flexacenter" @click="likeClick()" v-if="item?.type != 'tenement'"> <img v-if="item.is_like" class="icon" :src="valueUrl + '/img/like-red-icon.png'" /> <img v-else class="icon" :src="valueUrl + '/img/like-icon.png'" /> <div class="text">{{ item.likes || "赞" }}</div> </div> <div class="bottom-item flexacenter" @click="collectClick()"> <img v-if="item.is_collect" class="icon" :src="valueUrl + '/img/collect-golden.svg'" /> <img v-else class="icon" :src="valueUrl + '/img/collect-gray.png'" /> <div class="text">{{ item.collections || "收藏" }}</div> </div> <a class="bottom-item flexacenter" v-if="item?.type != 'tenement'" :href="'/details/' + item.uniqid" target="_blank"> <img class="icon" :src="valueUrl + '/img/discuss-icon.png'" /> <div class="text">{{ item.comments || "讨论" }}</div> </a> <a class="bottom-item flexacenter" v-if="item?.type != 'tenement'" :href="'/details/' + item.uniqid" target="_blank"> <img class="icon" :src="valueUrl + '/img/bi-copper-icon.png'" /> <div class="text">{{ item.coins || "投币" }}</div> </a> <!-- 鼠标移入事件 --> <div class="bottom-item share flexacenter" @mouseenter="share"> <img class="icon" :src="valueUrl + '/img/share-gray.png'" style="width: 19px; height: 19px;" /> <div class="text">{{ item.shares || '转发'}}</div> <div class="share-box flexcenter" ref="shareBoxRef"> <div class="share-item flexcenter" @click="copyLinkClick()"> <img class="share-icon" :src="valueUrl + '/img/copy-black-icon.png'" /> <div class="text">复制链接</div> </div> <!-- 鼠标移入 加载二维码 --> <div class="share-item wenxin flexcenter" @mouseenter="showQRcode"> <img class="share-icon" :src="valueUrl + '/img/weixin-icon.png'" /> <div class="text">微信转发</div> <div class="QRcode-box flexcenter" :class="{'right': isright}"> <img v-if="QRcode" class="QRcode" :src="QRcode" /> <div v-else class="QRcode flexcenter"> <img class="load" :src="valueUrl + '/img/load-icon.svg'" /> </div> <div class="text">微信扫码</div> </div> </div> </div> </div></div><like v-if="isLikeGif"></like>`,
|
||||
template: `<a class="comment flexacenter" v-if="item?.commentreviews && !Array.isArray(item?.commentreviews)" :href="item.url" target="_blank"> <img class="icon" :src="item?.commentreviews?.avatar" /> <div class="text one-line-display">{{ item?.commentreviews?.content || "[图]" }}</div></a><template v-if="item.comment_list?.length != 0"> <a class="comment flexacenter" style="margin-bottom: 15px" v-for="(item, index) in item.comment_list" :key="index" :href="item.url" target="_blank"> <img class="icon" :src="item.avatar" /> <div class="text one-line-display">{{ item.content || "[图]" }}</div> </a></template><div class="bottom flexacenter"> <div class="bottom-item like flexacenter" @click="likeClick()" v-if="item?.type != 'tenement'"> <img v-if="item.is_like" class="icon" :src="valueUrl + '/img/like-red-icon.png'" /> <img v-else class="icon" :src="valueUrl + '/img/like-icon.png'" /> <div class="text">{{ item.likes || "赞" }}</div> </div> <div class="bottom-item flexacenter" @click="collectClick()"> <img v-if="item.is_collect" class="icon" :src="valueUrl + '/img/collect-golden.svg'" /> <img v-else class="icon" :src="valueUrl + '/img/collect-gray.png'" /> <div class="text">{{ item.collections || "收藏" }}</div> </div> <a class="bottom-item flexacenter" v-if="item?.type != 'tenement'" :href="'/details/' + item.uniqid" target="_blank"> <img class="icon" :src="valueUrl + '/img/discuss-icon.png'" /> <div class="text">{{ item.comments || "讨论" }}</div> </a> <a class="bottom-item flexacenter" v-if="item?.type != 'tenement'" :href="'/details/' + item.uniqid" target="_blank"> <img class="icon" :src="valueUrl + '/img/bi-copper-icon.png'" /> <div class="text">{{ item.coins || "投币" }}</div> </a> <!-- 鼠标移入事件 --> <div class="bottom-item share flexacenter" @mouseenter="share" @click="isMobile ? copyLinkClick() : ''"> <img class="icon" :src="valueUrl + '/img/share-gray.png'" style="width: 19px; height: 19px;" /> <div class="text">{{ item.shares || '转发'}}</div> <div class="share-box flexcenter" ref="shareBoxRef"> <div class="share-item flexcenter" @click="copyLinkClick()"> <img class="share-icon" :src="valueUrl + '/img/copy-black-icon.png'" /> <div class="text">复制链接</div> </div> <!-- 鼠标移入 加载二维码 --> <div class="share-item wenxin flexcenter" @mouseenter="showQRcode"> <img class="share-icon" :src="valueUrl + '/img/weixin-icon.png'" /> <div class="text">微信转发</div> <div class="QRcode-box flexcenter" :class="{'right': isright}"> <img v-if="QRcode" class="QRcode" :src="QRcode" /> <div v-else class="QRcode flexcenter"> <img class="load" :src="valueUrl + '/img/load-icon.svg'" /> </div> <div class="text">微信扫码</div> </div> </div> </div> </div></div><like v-if="isLikeGif"></like>`,
|
||||
});
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
</a>
|
||||
|
||||
<!-- 鼠标移入事件 -->
|
||||
<div class="bottom-item share flexacenter" @mouseenter="share">
|
||||
<div class="bottom-item share flexacenter" @mouseenter="share" @click="isMobile ? copyLinkClick() : ''">
|
||||
<img class="icon" :src="valueUrl + '/img/share-gray.png'" style="width: 19px; height: 19px;" />
|
||||
<div class="text">{{ item.shares || '转发'}}</div>
|
||||
<div class="share-box flexcenter" ref="shareBoxRef">
|
||||
|
||||
@@ -167,5 +167,5 @@ export const itemHead = defineComponent({
|
||||
report,
|
||||
},
|
||||
|
||||
template: `<div class="item-head flexacenter" ref="itemHead"> <div class="user-box flexacenter" @click="goPersonalHomepage(item?.user?.uniqid)"> <img class="avatar" :src="item?.user?.avatar || item.avatar" /> <div class="name">{{ item?.user?.nickname || item.nickname || "匿名用户" }}</div> <img class="group" v-if="item.user?.groupimage" :src="item.user?.groupimage" /> </div> <div class="time">{{ timestamp }}</div> <div class="flex1"></div> <div class="circlePen flexcenter" @click="openedit(item.type)" v-if="page == 'edit' && (item.type == 'offer' || item.type == 'offer_summary')"> <img class="icon" :src="valueUrl + '/img/pen-icon.png'" /> </div> <div class="flexacenter" style="position: relative;"> <div class="anonymous-box flexcenter" @click.stop="cutAnonymous" v-if="page == 'edit' && (item.type == 'vote' || item.type == 'interviewexperience')"> <span v-if="item.anonymous == 0">公开</span> <span v-else>匿名</span> </div> <!-- 是否 公开发表 --> <template v-if="anonymousState"> <div class="mask" @click.stop="cutAnonymous"></div> <div class="isPublicityBox"> <div class="isPublicity-item" :class="{'green': item.anonymous == 0}" @click.stop="cutAnonymousState(0)">公开发表 <img v-if="item.anonymous == 0" class="isPublicityIcon" :src="valueUrl + '/img/u1829.svg'"></image> </div> <div class="isPublicity-item" :class="{'green': item.anonymous != 0}" @click.stop="cutAnonymousState(1)">匿名发表 <img v-if="item.anonymous != 0" class="isPublicityIcon" :src="valueUrl + '/img/u1829.svg'"></image> </div> </div> </template> </div> <div class="view flexacenter"> <img class="icon" :src="valueUrl + '/img/eye-icon.svg'" /> <div class="text">{{ item.views }}</div> </div> <div v-if="item.type != 'tenement'" class="btn flexcenter" @click.stop="cutShow"> <img class="icon" :src="valueUrl + '/img/dot-dot-dot-gray.png'" /> </div> <div v-if="show"> <div class="mask" @click.stop="cutShow"></div> <div class="operate"> <div class="item" @click.stop="report">举报</div> <template v-if="ismanager"> <div class="item" @click.stop="hide">{{ item.hidden == 0 ? "隐藏" : "显示" }}</div> <div class="item" @click.stop="recommend">{{ item.recommend == 1 ? "取消" : "" }}推荐</div> <div class="item" @click.stop="essence">{{ item.best == 1 ? "取消" : "" }}精华</div> </template> <template v-if="item.type == 'thread' && item.ismyself"> <div class="item" @click.stop="edit">编辑</div> <div class="item" @click.stop="deleteItem">删除</div> </template> <div class="item" v-if="page == 'edit' && item.type == 'vote'" @click.stop="deleteItem">删除</div> </div> </div></div><div class="label flexflex" v-if="sectionn?.length || tags?.length || item.recommend == 1 || item.best == 1"> <a class="item icon" v-if="item.recommend == 1 && item.best != 1" target="_blank" href="/recommend"> <img style="height: 24px;" :src="valueUrl + '/img/recommend-icon.png'" /> </a> <a class="item icon" v-if="item.best == 1" target="_blank" href="/best"> <img style="height: 24px;" v-if="item.best == 1" :src="valueUrl + '/img/essence-icon.png'" /> </a> <a class="item blue" v-for="(item, index) in sectionn" :key="item" :href="'/section/' + item.uniqid" target="_blank">{{ item.name }}</a> <a class="item" v-for="(item, index) in tags" :key="item" :href="'/tag/' + item" target="_blank">{{ item }}</a></div><report v-if="reportState" :itemdata="item"></report>`,
|
||||
template: `<div class="item-head flexacenter" ref="itemHead"> <div class="user-box flexacenter" @click="goPersonalHomepage(item?.user?.uniqid)"> <img class="avatar" :src="item?.user?.avatar || item.avatar" /> <div class="name">{{ item?.user?.nickname || item.nickname || "匿名用户" }}</div> <img class="group" v-if="item.user?.groupimage" :src="item.user?.groupimage" /> </div> <div class="time">{{ timestamp }}</div> <div class="flex1"></div> <div class="circlePen flexcenter" @click="openedit(item.type)" v-if="page == 'edit' && (item.type == 'offer' || item.type == 'offer_summary')"> <img class="icon" :src="valueUrl + '/img/pen-icon.png'" /> </div> <div class="flexacenter" style="position: relative;"> <div class="anonymous-box flexcenter" @click.stop="cutAnonymous" v-if="page == 'edit' && (item.type == 'vote' || item.type == 'interviewexperience')"> <span v-if="item.anonymous == 0">公开</span> <span v-else>匿名</span> </div> <!-- 是否 公开发表 --> <template v-if="anonymousState"> <div class="mask" @click.stop="cutAnonymous"></div> <div class="isPublicityBox"> <div class="isPublicity-item" :class="{'green': item.anonymous == 0}" @click.stop="cutAnonymousState(0)">公开发表 <img v-if="item.anonymous == 0" class="isPublicityIcon" :src="valueUrl + '/img/u1829.svg'"></image> </div> <div class="isPublicity-item" :class="{'green': item.anonymous != 0}" @click.stop="cutAnonymousState(1)">匿名发表 <img v-if="item.anonymous != 0" class="isPublicityIcon" :src="valueUrl + '/img/u1829.svg'"></image> </div> </div> </template> </div> <div class="view flexacenter"> <img class="icon" :src="valueUrl + '/img/eye-icon.svg'" /> <div class="text">{{ item.views }}</div> </div> <div v-if="item.type != 'tenement'" class="btn flexcenter" @click.stop="cutShow"> <img class="icon" :src="valueUrl + '/img/dot-dot-dot-gray.png'" /> </div> <div v-if="show"> <div class="mask" @click.stop="cutShow"></div> <div class="operate"> <div class="item" @click.stop="report">举报</div> <template v-if="ismanager"> <div class="item" @click.stop="hide">{{ item.hidden == 0 ? "隐藏" : "显示" }}</div> <div class="item" @click.stop="recommend">{{ item.recommend == 1 ? "取消" : "" }}推荐</div> <div class="item" @click.stop="essence">{{ item.best == 1 ? "取消" : "" }}精华</div> </template> <template v-if="item.type == 'thread' && item.ismyself"> <div class="item" @click.stop="edit">编辑</div> <div class="item" @click.stop="deleteItem">删除</div> </template> <div class="item" v-if="page == 'edit' && item.type == 'vote'" @click.stop="deleteItem">删除</div> </div> </div></div><div class="label flexflex" v-if="sectionn?.length || tags?.length || item.recommend == 1 || item.best == 1"> <a class="item icon" v-if="item.recommend == 1 && item.best != 1" target="_blank" href="/recommend"> <img style="height: 25px;" :src="valueUrl + '/img/recommend-icon.png'" /> </a> <a class="item icon" v-if="item.best == 1" target="_blank" href="/best"> <img style="height: 25px;" v-if="item.best == 1" :src="valueUrl + '/img/essence-icon.png'" /> </a> <a class="item blue" v-for="(item, index) in sectionn" :key="item" :href="'/section/' + item.uniqid" target="_blank">{{ item.name }}</a> <a class="item" v-for="(item, index) in tags" :key="item" :href="'/tag/' + item" target="_blank">{{ item }}</a></div><report v-if="reportState" :itemdata="item"></report>`,
|
||||
});
|
||||
|
||||
@@ -63,10 +63,10 @@
|
||||
|
||||
<div class="label flexflex" v-if="sectionn?.length || tags?.length || item.recommend == 1 || item.best == 1">
|
||||
<a class="item icon" v-if="item.recommend == 1 && item.best != 1" target="_blank" href="/recommend">
|
||||
<img style="height: 24px;" :src="valueUrl + '/img/recommend-icon.png'" />
|
||||
<img style="height: 25px;" :src="valueUrl + '/img/recommend-icon.png'" />
|
||||
</a>
|
||||
<a class="item icon" v-if="item.best == 1" target="_blank" href="/best">
|
||||
<img style="height: 24px;" v-if="item.best == 1" :src="valueUrl + '/img/essence-icon.png'" />
|
||||
<img style="height: 25px;" v-if="item.best == 1" :src="valueUrl + '/img/essence-icon.png'" />
|
||||
</a>
|
||||
<a class="item blue" v-for="(item, index) in sectionn" :key="item" :href="'/section/' + item.uniqid" target="_blank">{{ item.name }}</a>
|
||||
<a class="item" v-for="(item, index) in tags" :key="item" :href="'/tag/' + item" target="_blank">{{ item }}</a>
|
||||
|
||||
@@ -710,6 +710,8 @@ body {
|
||||
.item-box .comment .text {
|
||||
font-size: 14px;
|
||||
color: #7f7f7f;
|
||||
flex: 1;
|
||||
width: 10px;
|
||||
}
|
||||
.item-box .bottom {
|
||||
height: 55px;
|
||||
|
||||
@@ -857,6 +857,8 @@ body {
|
||||
.text {
|
||||
font-size: 14px;
|
||||
color: #7f7f7f;
|
||||
flex: 1;
|
||||
width: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#sectionIndex {
|
||||
width: 1200px;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
#sectionIndex .matter {
|
||||
@@ -77,7 +77,7 @@
|
||||
z-index: -1;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .info-box {
|
||||
width: 1035px;
|
||||
width: 100%;
|
||||
background: -webkit-linear-gradient(270.53908529deg, #ffffff 2%, #ebf8f9 98%);
|
||||
background: -moz-linear-gradient(179.46091471deg, #ffffff 2%, #ebf8f9 98%);
|
||||
background: linear-gradient(179.46091471deg, #ffffff 2%, #ebf8f9 98%);
|
||||
@@ -263,7 +263,7 @@
|
||||
width: 265px;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .details-box .content-box .red-tag {
|
||||
width: 732px;
|
||||
width: 100%;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #e9eef2;
|
||||
border-radius: 10px;
|
||||
@@ -307,9 +307,6 @@
|
||||
margin-bottom: 14px;
|
||||
cursor: pointer;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .details-box .content-box .list-box {
|
||||
width: 732px;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .details-box .content-box .list-box .item-box {
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
@@ -361,3 +358,41 @@
|
||||
#sectionIndex .matter .matter-content .details-box .sidebar-box .side-box.interviewexperience-side-box {
|
||||
background: linear-gradient(158.64328877deg, #d3e1fb 1%, #dee6f9 100%);
|
||||
}
|
||||
@media screen and (max-width: 1000px) {
|
||||
.item-box .bottom {
|
||||
justify-content: space-between;
|
||||
}
|
||||
.item-box .bottom .bottom-item:not(:last-child) {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 880px) {
|
||||
#sectionIndex {
|
||||
margin: 0 10px;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .details-box .sidebar-box {
|
||||
display: none;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .details-box .content-box {
|
||||
margin-right: 0;
|
||||
}
|
||||
.item-box .comment .text {
|
||||
width: 10px !important;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 768px) {
|
||||
.item-box {
|
||||
padding: 18px 20px 0;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 680px) {
|
||||
#sectionIndex .matter .matter-content .info-box .right .bottom .btn {
|
||||
width: auto;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 600px) {
|
||||
#sectionIndex .matter .sidebar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#sectionIndex {
|
||||
width: 1200px;
|
||||
max-width: 1200px;
|
||||
margin: 0 auto;
|
||||
|
||||
.matter {
|
||||
@@ -84,7 +84,7 @@
|
||||
|
||||
.matter-content {
|
||||
.info-box {
|
||||
width: 1035px;
|
||||
width: 100%;
|
||||
background: -webkit-linear-gradient(270.539085289936deg, rgba(255, 255, 255, 1) 2%, rgba(235, 248, 249, 1) 98%);
|
||||
background: -moz-linear-gradient(179.460914710064deg, rgba(255, 255, 255, 1) 2%, rgba(235, 248, 249, 1) 98%);
|
||||
background: linear-gradient(179.460914710064deg, rgba(255, 255, 255, 1) 2%, rgba(235, 248, 249, 1) 98%);
|
||||
@@ -296,7 +296,7 @@
|
||||
}
|
||||
|
||||
.red-tag {
|
||||
width: 732px;
|
||||
width: 100%;
|
||||
background-color: rgba(255, 255, 255, 1);
|
||||
border: 1px solid rgba(233, 238, 242, 1);
|
||||
border-radius: 10px;
|
||||
@@ -345,7 +345,7 @@
|
||||
}
|
||||
|
||||
.list-box {
|
||||
width: 732px;
|
||||
// width: 732px;
|
||||
|
||||
.item-box {
|
||||
margin-bottom: 12px;
|
||||
@@ -427,3 +427,50 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
.item-box .bottom {
|
||||
justify-content: space-between;
|
||||
|
||||
.bottom-item:not(:last-child) {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 880px) {
|
||||
#sectionIndex {
|
||||
margin: 0 10px;
|
||||
}
|
||||
|
||||
#sectionIndex .matter .matter-content .details-box .sidebar-box {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#sectionIndex .matter .matter-content .details-box .content-box {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.item-box .comment .text {
|
||||
width: 10px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
.item-box {
|
||||
padding: 18px 20px 0;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 680px) {
|
||||
#sectionIndex .matter .matter-content .info-box .right .bottom .btn {
|
||||
width: auto;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
#sectionIndex .matter .sidebar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
684
sectionV2.html
Normal file
684
sectionV2.html
Normal file
@@ -0,0 +1,684 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<title>新加坡 -- 寄托天下</title>
|
||||
<link rel="stylesheet" href="/css/public.css" />
|
||||
<link rel="stylesheet" href="/css/section.css" />
|
||||
<!-- <link rel="stylesheet" href="https://f.gter.net/css/section.css" /> -->
|
||||
|
||||
<meta name="description" content="寄托天下留学论坛上查看新加坡版块,新加坡">
|
||||
<meta name="keywords" content="新加坡, 寄托天下, 留学论坛">
|
||||
<meta name="author" content="">
|
||||
<!-- Open Graph / Facebook -->
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="新加坡">
|
||||
<meta property="og:description" content="寄托天下留学论坛上查看新加坡版块,新加坡">
|
||||
<meta property="og:image" content="">
|
||||
<!-- Twitter -->
|
||||
<meta property="twitter:card" content="summary_large_image">
|
||||
<meta property="twitter:title" content="新加坡">
|
||||
<meta property="twitter:description" content="寄托天下留学论坛上查看新加坡版块,新加坡">
|
||||
<meta property="twitter:image" content="">
|
||||
<!-- 网站图标 -->
|
||||
<link rel="icon" href="https://www.gter.net/favicon.ico" type="image/x-icon">
|
||||
<link rel="shortcut icon" href="https://www.gter.net/favicon.ico" type="image/x-icon">
|
||||
<style>
|
||||
[v-cloak] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#pre-loader {
|
||||
height: 70vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#pre-loader .three-bounce>div {
|
||||
display: inline-block;
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
border-radius: 100%;
|
||||
top: 50%;
|
||||
margin-top: -9px;
|
||||
background: #aeadba;
|
||||
animation: bouncedelay 1.4s infinite ease-in-out;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
#pre-loader .three-bounce .one {
|
||||
animation-delay: -0.32s;
|
||||
}
|
||||
|
||||
#pre-loader .three-bounce .two {
|
||||
animation-delay: -0.16s;
|
||||
}
|
||||
|
||||
@keyframes bouncedelay {
|
||||
|
||||
0%,
|
||||
100%,
|
||||
80% {
|
||||
transform: scale(0);
|
||||
-webkit-transform: scale(0);
|
||||
}
|
||||
|
||||
40% {
|
||||
transform: scale(1);
|
||||
-webkit-transform: scale(1);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
var STYLEID = '2',
|
||||
STATICURL = 'static/',
|
||||
IMGDIR = 'https://bbs.gter.net/template/archy_plt8/image',
|
||||
VERHASH = 'Z62',
|
||||
charset = 'gbk',
|
||||
discuz_uid = '0',
|
||||
cookiepre = '4B5x_c0ae_',
|
||||
cookiedomain = 'gter.net',
|
||||
cookiepath = '/',
|
||||
showusercard = '1',
|
||||
attackevasive = '0',
|
||||
disallowfloat = '',
|
||||
creditnotice = ',',
|
||||
defaultstyle = '',
|
||||
REPORTURL = 'aHR0cDovL2Jicy5ndGVyLm5ldC9mb3J1bS5waHA/dGlkPTI0MDYzNTYmZ290bz1sYXN0cG9zdA==',
|
||||
SITEURL = 'https://app.gter.net/',
|
||||
JSPATH = 'static/js/';
|
||||
</script>
|
||||
<script src="https://app.gter.net/bottom?tpl=header&menukey=bbs"></script>
|
||||
<script src="https://framework.x-php.com/gter/bbs/static/js/common.js" charset="gbk"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script>
|
||||
window.__ASSET_VERSION__ = 'Z69';
|
||||
// 判断是否是移动端
|
||||
window.isMobile = window.innerWidth <= 768;
|
||||
|
||||
</script>
|
||||
<div id="ajaxwaitid"></div>
|
||||
<div id="append_parent"></div>
|
||||
<div class="head-top flexacenter" style="width: 1200px;margin: 20px auto 30px;">
|
||||
<a href="/" class="flexacenter" target="_blank">
|
||||
<img class="logo" src="https://oss.gter.net/logo" alt="" />
|
||||
</a>
|
||||
<div class="flex1"></div>
|
||||
<div class="input-box flexacenter">
|
||||
<div class="placeholder">
|
||||
<div class="placeholder-box" style="transition: transform .3s ease"></div>
|
||||
</div>
|
||||
|
||||
<input class="input flex1" type="text" maxlength="140" /> <img class="icon" onclick="searchEvent()" src="https://framework.x-php.com/gter/forum/img/search-icon.svg?v=vDmK98808ObK" />
|
||||
<div class="search-box-history">
|
||||
<div class="search-box-history-title">历史搜索</div>
|
||||
<div class="search-box-history-list"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="post-list flexacenter"> </div>
|
||||
|
||||
<div class="sign-in sign-in-no flexacenter"></div>
|
||||
|
||||
<div class="head-more flexcenter" onclick="openHeadPop()">
|
||||
<img class="more-icon" style="width: 18px;height: 15px;" src="https://framework.x-php.com/gter/forum/img/threeAcross.svg?v=vDmK98808ObK" />
|
||||
</div>
|
||||
|
||||
<div class="head-pop" style="display: none;">
|
||||
<div class="head-more-pop">
|
||||
<div class="head-more-userinfo flex1 flexacenter">
|
||||
<div class="head-more-left flexacenter"><img class="head-more-userinfo-avatar" src="" alt="">
|
||||
<div class="head-more-userinfo-username"></div>
|
||||
</div>
|
||||
<div class="head-more-right">
|
||||
<div class="loginBtn flexcenter" onclick="go_ajax_Login()">登录/注册</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-list"><a class="tab-item flexacenter" href="https://www.gter.net" target="_blank">寄托首页</a><a class="tab-item flexacenter pitch" href="https://f.gter.net" target="_blank">论坛</a><a class="tab-item flexacenter" href="https://app.gter.net/admissionOfficer" target="_blank">招生官</a><a class="tab-item flexacenter" href="https://bbs.gter.net/thread-2345065-1-1.html" target="_blank">加群</a><a class="tab-item flexacenter" href="https://offer.gter.net" target="_blank">Offer榜</a></div>
|
||||
<a class="head-more-post flexcenter" href="/publish" target="" onclick="skipLoginUrl(event)">
|
||||
<div class="head-more-post-icon flexcenter"><img class="head-more-post-img" src="https://framework.x-php.com/gter/forum/img/addyellow.svg?v=vDmK98808ObK" /></div>发布帖子
|
||||
</a>
|
||||
<img class="cross-icon" onclick="crossHeadPop()" src="https://framework.x-php.com/gter/forum/img/cross.svg?v=vDmK98808ObK">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="valueA" style="display: none;">https://framework.x-php.com/gter/forum/</div>
|
||||
|
||||
|
||||
|
||||
<!-- <div id="pre-loader">
|
||||
<div class="three-bounce" p-id="11">
|
||||
<div class="one" p-id="12"></div>
|
||||
<div class="two" p-id="13"></div>
|
||||
<div class="three" p-id="14"></div>
|
||||
</div>
|
||||
</div> -->
|
||||
<sign-in-box></sign-in-box>
|
||||
<div class="container" id="sectionIndex">
|
||||
<div class="templateValue" ref="uniValue">Lz9aimSLXeim</div>
|
||||
|
||||
<!-- <head-top></head-top> -->
|
||||
|
||||
<div class="head-navigation flexacenter">
|
||||
<img class="icon" src="https://framework.x-php.com/gter/forum/img/index-icon.png?v=vDmK98808ObK" />
|
||||
<a class="text textA" target="_blank" href="/">论坛</a>
|
||||
<img class="arrows" src="https://framework.x-php.com/gter/forum/img/arrows-gray.svg?v=vDmK98808ObK" />
|
||||
<div class="text" v-cloak>{{ info.name }}</div>
|
||||
</div>
|
||||
|
||||
<div class="matter flexflex">
|
||||
<div class="sidebar">
|
||||
<div class="title">论坛版块</div>
|
||||
<div class="list" style="min-height: 80vh;">
|
||||
<template v-cloak v-for="(item, index) in sectionList" :key="index">
|
||||
<div v-if="item.key == 'line'" class="line"></div>
|
||||
<div v-else class="item flexacenter" :class="{'pitch' : item.uniqid == section}" @click="changeSection(item.uniqid)">
|
||||
<span class="text">{{ item.name }}</span>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
<div class="matter-content flex1">
|
||||
<div class="info-box flexflex">
|
||||
<div class="img-box flexcenter">
|
||||
<img v-if="info.icon" v-cloak class="img" :src="info.icon" />
|
||||
</div>
|
||||
|
||||
<div class="right flex1" style="min-height: 158px;">
|
||||
<div class="title vuehide" style="color: transparent;">香港</div>
|
||||
<div class="title" v-cloak>{{ info.name }}</div>
|
||||
<div class="link flexacenter">
|
||||
<div class="vuehide" style="height: 46px;"></div>
|
||||
<template v-cloak v-for="(item, index) in (info.uniqid == 'Lz9aimSLXeim' ? linkXg : linkOther)" :key="index">
|
||||
<a v-if="item.url" class="item flexacenter" :href="item.url" target="_blank">
|
||||
<div class="text">{{ item.name }}</div>
|
||||
<img class="icon" src="https://framework.x-php.com/gter/forum/img/arrows-circle-red.svg?v=vDmK98808ObK" />
|
||||
</a>
|
||||
<div v-else class="item flexacenter">
|
||||
<div class="text">{{ item.name }}</div>
|
||||
<img class="icon" src="https://framework.x-php.com/gter/forum/img/arrows-circle-red.svg?v=vDmK98808ObK" />
|
||||
<div class="QRcode-box flexcenter">
|
||||
<img class="QRcode-img" :src="item.img" />
|
||||
<div class="name">{{ item.title }}</div>
|
||||
<div class="hint">{{ item.hint }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
<div class="bottom flexacenter">
|
||||
<div class="data flexacenter" v-cloak>
|
||||
共
|
||||
<div class="sum">{{ count }}</div>
|
||||
个帖子
|
||||
</div>
|
||||
<div class="flex1"></div>
|
||||
<a class="btn flexcenter" href="/publish" target="_blank" @click="handleCheckAttest">
|
||||
<img class="icon" src="https://framework.x-php.com/gter/forum/img/pen-icon.png?v=vDmK98808ObK" />
|
||||
<div class="text">发帖</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="details-box flexflex" ref="detailsRef">
|
||||
<div class="content-box flex1" ref="contentRef" :style="{'top': matterHeight + 'px'}">
|
||||
<div class="selectives-box vuehide" style="min-height: 250px;">
|
||||
<div class="head-top flexcenter" style="margin-top: 0;">
|
||||
<img class="icon" src="https://framework.x-php.com/gter/forum/img/handpick-icon.png?v=vDmK98808ObK" />
|
||||
<div class="text">精选</div>
|
||||
</div>
|
||||
<div class="list flexflex"></div>
|
||||
</div>
|
||||
|
||||
<div v-cloak class="selectives-box" v-if="handpickList.length > 0">
|
||||
<div class="head-top flexcenter" style="margin-top: 0;">
|
||||
<img class="icon" src="https://framework.x-php.com/gter/forum/img/handpick-icon.png?v=vDmK98808ObK" />
|
||||
<div class="text">精选</div>
|
||||
</div>
|
||||
<div class="list flexflex">
|
||||
<a class="item flexacenter" v-for="(item, index) in handpickList" :key="index" :href="'/details/' + item.uniqid" target="_blank">
|
||||
<div class="dot"></div>
|
||||
<div class="text one-line-display">{{ item.title }}</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="red-tag vuehide" style="min-height: 250px;">
|
||||
<div class="title">
|
||||
热门标签
|
||||
<img class="icon" src="https://framework.x-php.com/gter/forum/img/triangle-red.svg?v=vDmK98808ObK" />
|
||||
</div>
|
||||
<div class="list"></div>
|
||||
</div>
|
||||
|
||||
<div v-cloak class="red-tag" v-if="tagsList.length > 0">
|
||||
<div class="title">
|
||||
热门标签
|
||||
<img class="icon" src="https://framework.x-php.com/gter/forum/img/triangle-red.svg?v=vDmK98808ObK" />
|
||||
</div>
|
||||
<div class="list">
|
||||
<a v-cloak class="item flexacenter" v-for="(item, index) in tagsList" :key="index" :href="'/tag/' + item.tagname" target="_blank">{{ item.tagname }}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="list-box">
|
||||
<div class="item-box item-forum">
|
||||
<div class="item-head flexacenter">
|
||||
<div class="user-box flexacenter"><img class="avatar" src="https://nas.gter.net:9008/avatar/97K4EWIMLrsbGTWXsle9W19QEKuOikN42jDKLNjtax7HItxnKMDYSdU9oWFhY2E~/small">
|
||||
<div class="name">寄托院校君</div>
|
||||
</div>
|
||||
<div class="time">12月08日 11:07</div>
|
||||
<div class="flex1"></div>
|
||||
<div class="flexacenter" style="position: relative;"></div>
|
||||
<div class="view flexacenter"><img class="icon" src="https://framework.x-php.com/gter/forum//img/eye-icon.svg">
|
||||
<div class="text">5574</div>
|
||||
</div>
|
||||
<div class="btn flexcenter"><img class="icon" src="https://framework.x-php.com/gter/forum//img/dot-dot-dot-gray.png"></div> <!--v-if-->
|
||||
</div>
|
||||
<div class="label flexflex"><a class="item icon" target="_blank" href="/recommend"><img src="https://framework.x-php.com/gter/forum//img/recommend-icon.png" style="height: 24px;"></a> <!--v-if--> <a class="item blue" href="/section/Lz9aimSLXeim" target="_blank">香港</a><a class="item blue" href="/section/MjNk2SbRt4Wa" target="_blank">其它地区</a><a class="item blue" href="/section/qvL9GXnL9b80" target="_blank">招生官</a> <a class="item" href="/tag/硕士" target="_blank">硕士</a><a class="item" href="/tag/资讯速递" target="_blank">资讯速递</a><a class="item" href="/tag/商学与管理学类" target="_blank">商学与管理学类</a><a class="item" href="/tag/2026" target="_blank">2026</a><a class="item" href="/tag/选校定位" target="_blank">选校定位</a></div><!--v-if--> <a class="title" href="/details/8iqqzrau5vD8" target="_blank">12.16 19:00 | 跨学科设计,知识与实践并行!港理工 商业管理理学硕士课程 线上宣讲会等你了解!</a> <a class="message two-line-display" href="/details/8iqqzrau5vD8" target="_blank">香港理工大学香港理工大学是一所世界顶尖大学,在2026..</a> <a class="picture flexacenter" href="/details/8iqqzrau5vD8" target="_blank"><img class="picture-item" src="https://o.x-php.com/Zvt57TuJSUvkyhw-xG_Y2l-U_pstdnqE1NFX9ddrB_WbUWy8K_hyVFweFrPD7IZK4sVMX2_Ct1vu9Fkg0jQ0Mjk~" alt=""><img class="picture-item" src="https://o.x-php.com/Zvt57TuJSUvkyhw-xG_Y2l-U_pstdnqF1NFX9ddrB_WbUWy8K_hyVFweFrPD7IZK4sVMAjrN5ga79Fkg0jQ0Mjk~" alt=""><img class="picture-item" src="https://o.x-php.com/Zvt57TuJSUvkyhw-xG_Y2l-U_pstdnuB1NFX9ddrB_WbUWy8K_hyVFweFrPD7IZK4sVMDWnC5Qbo9Fkg0jQ0Mjk~" alt=""><img class="picture-item" src="https://o.x-php.com/Zvt57TuJSUvkyhw-xG_Y2l-U_pstdnqC1NFX9ddrB_WbUWy8K_hyVFweFrPD7IZK4sVMDzqQ4li89Fkg0jQ0Mjk~" alt=""><img class="picture-item" src="https://o.x-php.com/Zvt57TuJSUvkyhw-xG_Y2l-U_pstdnqD1NFX9ddrB_WbUWy8K_hyVFweFrPD7IZK4sVMCWvCtlzt9Fkg0jQ0Mjk~" alt=""> </a> <!--v-if-->
|
||||
<div class="bottom flexacenter">
|
||||
<div class="bottom-item like flexacenter">
|
||||
<img class="icon" src="https://framework.x-php.com/gter/forum//img/like-icon.png">
|
||||
<div class="text">赞</div>
|
||||
</div>
|
||||
<div class="bottom-item flexacenter">
|
||||
<img class="icon" src="https://framework.x-php.com/gter/forum//img/collect-gray.png">
|
||||
<div class="text">收藏</div>
|
||||
</div>
|
||||
<a class="bottom-item flexacenter" href="/details/8iqqzrau5vD8" target="_blank">
|
||||
<img class="icon" src="https://framework.x-php.com/gter/forum//img/discuss-icon.png">
|
||||
<div class="text">讨论</div>
|
||||
</a>
|
||||
<a class="bottom-item flexacenter" href="/details/8iqqzrau5vD8" target="_blank">
|
||||
<img class="icon" src="https://framework.x-php.com/gter/forum//img/bi-copper-icon.png">
|
||||
<div class="text">投币</div>
|
||||
</a>
|
||||
<div class="bottom-item share flexacenter">
|
||||
<img class="icon" src="https://framework.x-php.com/gter/forum//img/share-gray.png" style="width: 19px; height: 19px;">
|
||||
<div class="text">转发</div>
|
||||
<div class="share-box flexcenter">
|
||||
<div class="share-item flexcenter">
|
||||
<img class="share-icon" src="https://framework.x-php.com/gter/forum//img/copy-black-icon.png">
|
||||
<div class="text">复制链接</div>
|
||||
</div>
|
||||
<div class="share-item wenxin flexcenter"><img class="share-icon" src="https://framework.x-php.com/gter/forum//img/weixin-icon.png">
|
||||
<div class="text">微信转发</div>
|
||||
<div class="QRcode-box flexcenter">
|
||||
<div class="QRcode flexcenter"><img class="load" src="https://framework.x-php.com/gter/forum//img/load-icon.svg"></div>
|
||||
<div class="text">微信扫码</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <template v-for="(item,index) in list" :key="index">
|
||||
<item-forum v-if="item.type == 'thread'" :itemdata="item"></item-forum>
|
||||
<item-offer v-if=" item.type == 'offer'" :itemdata="item"></item-offer>
|
||||
<item-summary v-else-if="item.type == 'offer_summary'" :itemdata="item"></item-summary>
|
||||
<item-vote v-else-if="item.type == 'vote'" :itemdata="item"></item-vote>
|
||||
<item-mj v-else-if="item.type == 'interviewexperience'" :itemdata="item"></item-mj>
|
||||
<item-tenement v-else-if="item.type == 'tenement'" :itemdata="item"></item-tenement>
|
||||
<item-project v-else-if="item.type == 'programs' || tabValue == 'xg'" :itemdata="item"></item-project>
|
||||
<item-forum v-else :itemdata="item"></item-forum>
|
||||
</template> -->
|
||||
<load-box :loading="loading"></load-box>
|
||||
</div>
|
||||
|
||||
<div v-cloak v-if="list.length == 0 && page == 0" class="empty flexcenter">
|
||||
<img class="empty-icon" src="https://framework.x-php.com/gter/forum/img/empty-icon.png?v=vDmK98808ObK" />
|
||||
<div class="empty-text">- 暂无内容 -</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sidebar-box" ref="sidebarRef" :style="{'top': sidebarHeight + 'px'}">
|
||||
<!-- <a class="adv" href="https://demo.gter.net/admin" target="_blank">
|
||||
<img class="adv-icon" src="https://o.x-php.com/bbs/common/cf/1709075xdbbbvjd8cbxvdd.jpg" alt="26Fall祈福,求offer得offer!" />
|
||||
</a>
|
||||
<a class="adv" href="https://demo.gter.net/admin" target="_blank">
|
||||
<img class="adv-icon" src="https://o.x-php.com/bbs/common/cf/1709075xdbbbvjd8cbxvdd.jpg" alt="26Fall祈福,求offer得offer!" />
|
||||
</a> -->
|
||||
|
||||
<!-- offer -->
|
||||
<div class="offer-side-box side-box" v-if="offer.length != 0">
|
||||
<div class="side-header flexacenter">
|
||||
<div class="left flexacenter">
|
||||
<img class="header-icon" src="https://framework.x-php.com/gter/forum/img/offer-index-icon.png?v=vDmK98808ObK" />
|
||||
<div class="title">Offer</div>
|
||||
</div>
|
||||
<a class="more flexacenter" href="https://offer.gter.net" target="_blank">
|
||||
<span>more</span>
|
||||
<img class="more-icon" src="https://framework.x-php.com/gter/forum/img/right-arrow-black.svg?v=vDmK98808ObK" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="box" style="min-height: 100px;">
|
||||
<a class="item flexflex" v-cloak v-for="item in offer" :key="item" :href="'/details/' + item['uniqid']" target="_blank">
|
||||
<img class="school-img" :src="item.data['schoollogo']" />
|
||||
<div class="school-detail flex1 flexflex">
|
||||
<div class="school-name one-line-display">{{ item.data['schoolname'] }}</div>
|
||||
<div class="school-brief one-line-display">{{ item.data['professional'] }}</div>
|
||||
<div class="school-offer flexacenter">
|
||||
<span>{{ item.data['degree'] }}</span>
|
||||
<span class="long-string">|</span>
|
||||
<span>{{ item.data['semester'] }}</span>
|
||||
<span class="long-string">|</span>
|
||||
<span>{{ item.data['apply_results_text'] }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="add-btn flexcenter" @click="handleCheckAttest" style="position: relative" href="https://offer.gter.net/post" target="_blank" v-cloak>
|
||||
<img class="add-icon" src="https://framework.x-php.com/gter/forum/img/add-btn-black.svg?v=vDmK98808ObK" />
|
||||
<div>报Offer</div>
|
||||
<div v-if="realname == 0 && userInfo.uin > 0" class="open-attest-btn" @click.prevent="openAttest"></div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- vote -->
|
||||
<div class="vote-side-box side-box" v-if="vote.length != 0">
|
||||
<div class="side-header flexacenter">
|
||||
<div class="left flexacenter">
|
||||
<img class="header-icon" src="https://framework.x-php.com/gter/forum/img/vote-index-icon.png?v=vDmK98808ObK" />
|
||||
<div class="title">投票</div>
|
||||
</div>
|
||||
<a class="more flexacenter" target="_blank" href="https://vote.gter.net">
|
||||
<span>more</span>
|
||||
<img class="more-icon" src="https://framework.x-php.com/gter/forum/img/right-arrow-black.svg?v=vDmK98808ObK" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="box" style="min-height: 100px;">
|
||||
<a class="item flexflex" v-cloak v-for="item in vote" :key="item" target="_blank" :href="'/details/' + item['uniqid']">
|
||||
<div class="name one-line-display">{{item['title']}}</div>
|
||||
<div class="brief">{{ item['content'] }}</div>
|
||||
</a>
|
||||
<a class="add-btn flexcenter" @click="handleCheckAttest" style="position: relative" v-cloak target="_blank" href="https://vote.gter.net/publish">
|
||||
<img class="add-icon" src="https://framework.x-php.com/gter/forum/img/add-btn-black.svg?v=vDmK98808ObK" />
|
||||
<div>发起投票</div>
|
||||
<div v-if="realname == 0 && userInfo.uin > 0" class="open-attest-btn" @click.prevent="openAttest"></div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- mj -->
|
||||
<div class="interviewexperience-side-box side-box" v-if="interviewexperience.length != 0">
|
||||
<div class="side-header flexacenter">
|
||||
<div class="left flexacenter">
|
||||
<img class="header-icon" src="https://framework.x-php.com/gter/forum/img/mj-index-icon.png?v=vDmK98808ObK" />
|
||||
<div class="title">面经</div>
|
||||
</div>
|
||||
<a class="more flexacenter" href="https://interviewexperience.gter.net/" target="_blank">
|
||||
<span>more</span>
|
||||
<img class="more-icon" src="https://framework.x-php.com/gter/forum/img/right-arrow-black.svg?v=vDmK98808ObK" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="box" style="min-height: 100px;">
|
||||
<a class="item flexflex" v-cloak v-for="(item,index) in interviewexperience" :key="item" :href="'/details/' + item['uniqid']" target="_blank">
|
||||
<div class="school one-line-display">{{ item.data['schoolname'] }}</div>
|
||||
<div class="major one-line-display">{{ item.data['profession'] || item.data['project'] }}</div>
|
||||
<div class="info">
|
||||
<img class="icon" :src="item.user['avatar']" />
|
||||
<span class="text">{{ item['content'] }}</span>
|
||||
</div>
|
||||
</a>
|
||||
<a class="add-btn flexcenter" @click="handleCheckAttest" style="position: relative" href="https://interviewexperience.gter.net/publish" target="_blank" v-cloak>
|
||||
<img class="add-icon" src="https://framework.x-php.com/gter/forum/img/add-btn-black.svg?v=vDmK98808ObK" />
|
||||
<div>写面经</div>
|
||||
<div v-if="realname == 0 && userInfo.uin > 0" class="open-attest-btn" @click.prevent="openAttest"></div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- newest 最新 -->
|
||||
<latest-list boxtype="newest"></latest-list>
|
||||
<latest-list boxtype="essence"></latest-list>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="https://framework.x-php.com/gter/forum/js/vue.global.js?v=vDmK98808ObK"></script>
|
||||
<script src="https://framework.x-php.com/gter/forum/js/axios.min.js?v=vDmK98808ObK"></script>
|
||||
<script src="https://framework.x-php.com/gter/forum/js/public.js?v=vDmK98808ObK"></script>
|
||||
<!-- <script src="https://f.gter.net/js/public.js"></script> -->
|
||||
|
||||
|
||||
<script type="module" src="https://framework.x-php.com/gter/forum/js/section.js?v=vDmK98808ObK"></script>
|
||||
<!-- <script type="module" src="https://f.gter.net/js/section.js"></script> -->
|
||||
<script type="module" src="https://framework.x-php.com/gter/forum/../image/gter/commonCom/sign-in/sign-in.js?v=vDmK98808ObK"></script>
|
||||
|
||||
|
||||
<script src="https://app.gter.net/bottom?tpl=footer,popupnotification"></script>
|
||||
|
||||
<script>
|
||||
console.log(location.href.indexOf('details') != -1);
|
||||
|
||||
if (location.href.indexOf('details') != -1) {
|
||||
const postList = document.querySelector('.head-top .post-list')
|
||||
postList.innerHTML = `<a href="/publish" target="_blank" style="margin-right: 10px"> <img class="post-item" src="https://framework.x-php.com/gter/forum/img/post-thread.png?v=vDmK98808ObK" /> </a> <a href="https://offer.gter.net/post" target="_blank" style="margin-right: 10px"> <img class="post-item" src="https://framework.x-php.com/gter/forum/img/post-offer.png?v=vDmK98808ObK" /> </a> <a href="https://offer.gter.net/post/summary" target="_blank" style="margin-right: 10px"> <img class="post-item" src="https://framework.x-php.com/gter/forum/img/post-summary.png?v=vDmK98808ObK" /> </a> <a href="https://interviewexperience.gter.net/publish" target="_blank" style="margin-right: 10px"> <img class="post-item" src="https://framework.x-php.com/gter/forum/img/post-mj.png?v=vDmK98808ObK" /> </a> <a href="https://vote.gter.net/publish" target="_blank"> <img class="post-item" src="https://framework.x-php.com/gter/forum/img/post-vote.png?v=vDmK98808ObK" /> </a>`
|
||||
console.log(postList);
|
||||
postList.style.display = 'flex'
|
||||
} else if (location.href.indexOf('search') != -1) {
|
||||
const box = document.querySelector(".head-top")
|
||||
box.querySelector(".input-box").style.display = "none"
|
||||
box.querySelector(".sign-in").style.display = "none"
|
||||
} else if (location.href.indexOf("publish") != -1) {
|
||||
const box = document.querySelector(".head-top")
|
||||
if (box) document.body.removeChild(box)
|
||||
} else {
|
||||
const signIn = document.querySelector('.head-top .sign-in')
|
||||
signIn.innerHTML = `<div class="sign-in-no-box" onclick="headSignIn()">
|
||||
<img class="sign-in-bj" src="https://framework.x-php.com/gter/forum/img/sign-in-bj.svg?v=vDmK98808ObK" /><img class="coin-bj" src="https://framework.x-php.com/gter/forum/img/coin-bj.svg?v=vDmK98808ObK" />
|
||||
<img class="coin-icon" src="https://framework.x-php.com/gter/forum/img/coin-icon.png?v=vDmK98808ObK" /><span class="text flex1">签到领寄托币</span>
|
||||
<div class="sign-go flexcenter">
|
||||
<img class="sign-go-bj" src="https://framework.x-php.com/gter/forum/img/sign-go.svg?v=vDmK98808ObK" /> GO
|
||||
</div>
|
||||
<img class="petal1" src="https://framework.x-php.com/gter/forum/img/petal1.png?v=vDmK98808ObK" />
|
||||
<img class="petal2" src="https://framework.x-php.com/gter/forum/img/petal2.png?v=vDmK98808ObK" />
|
||||
<img class="petal3" src="https://framework.x-php.com/gter/forum/img/petal3.png?v=vDmK98808ObK" />
|
||||
</div>
|
||||
<div class="sign-in-already-box">
|
||||
<img class="sign-icon" src="https://framework.x-php.com/gter/forum/img/sign-icon.png?v=vDmK98808ObK" />
|
||||
<span>已签到,明天再来</span>
|
||||
</div>`
|
||||
signIn.style.display = 'flex'
|
||||
|
||||
let userInfoWinTimerCount = 0;
|
||||
const userInfoWinTimer = setInterval(() => {
|
||||
if (location.host == "127.0.0.1:5501") return;
|
||||
if (todaysignedState) {
|
||||
clearInterval(userInfoWinTimer);
|
||||
|
||||
if (todaysigned == 1) {
|
||||
signIn.classList.add('sign-in-already')
|
||||
signIn.classList.remove("sign-in-no");
|
||||
}
|
||||
}
|
||||
userInfoWinTimerCount++;
|
||||
if (userInfoWinTimerCount >= 3000) clearInterval(userInfoWinTimer);
|
||||
}, 50);
|
||||
}
|
||||
|
||||
function headSignIn() {
|
||||
SignInComponent.initComponent();
|
||||
}
|
||||
|
||||
const searchInput = document.querySelector('.head-top .input')
|
||||
|
||||
// 绑定 blur 和 focus 事件
|
||||
if (searchInput) {
|
||||
searchInput.addEventListener('blur', function () {
|
||||
setTimeout(() => {
|
||||
const historyBox = document.querySelector('.head-top .search-box-history')
|
||||
if (historyBox) historyBox.style.display = 'none'
|
||||
}, 300);
|
||||
|
||||
const inputBox = document.querySelector('.head-top .input-box')
|
||||
if (inputBox) inputBox.classList.remove('pitch')
|
||||
startCarousel();
|
||||
|
||||
})
|
||||
searchInput.addEventListener('focus', () => {
|
||||
const historyBox = document.querySelector('.head-top .search-box-history')
|
||||
const historyItem = historyBox.querySelectorAll(".search-box-history-item")
|
||||
if (historyBox && historyItem.length > 0) historyBox.style.display = 'block'
|
||||
|
||||
const inputBox = document.querySelector('.head-top .input-box')
|
||||
if (inputBox) inputBox.classList.add('pitch')
|
||||
|
||||
if (carouselTimer) clearInterval(carouselTimer);
|
||||
})
|
||||
// 绑定回车事件
|
||||
searchInput.addEventListener('keydown', (e) => {
|
||||
if (e.key == 'Enter') searchEvent()
|
||||
})
|
||||
|
||||
searchInput.addEventListener('input', (e) => {
|
||||
const value = e.target.value || ''
|
||||
const placeholder = document.querySelector(".head-top .placeholder")
|
||||
if (value) placeholder.style.display = 'none'
|
||||
else placeholder.style.display = 'block'
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
let historySearchList = []
|
||||
// 获取历史搜索
|
||||
const getHistorySearch = () => {
|
||||
const data = JSON.parse(localStorage.getItem("history-search")) || [];
|
||||
historySearchList = data;
|
||||
|
||||
let itemAll = ``
|
||||
data.forEach((item, index) => itemAll += `<div class="search-box-history-item one-line-display" onclick="searchEvent('${item}')">${item}</div>`) // 绑定事件 searchEvent 点击搜索)
|
||||
|
||||
const historyList = document.querySelector('.search-box-history-list')
|
||||
historyList.innerHTML = itemAll
|
||||
};
|
||||
|
||||
if (location.href.indexOf("/publish") == -1 && location.href.indexOf("/search") == -1) getHistorySearch();
|
||||
|
||||
|
||||
const searchEvent = (value) => {
|
||||
if (window.innerWidth <= 480) {
|
||||
redirectToExternalWebsite("/search");
|
||||
return
|
||||
}
|
||||
const kw = value || searchInput.value || hotSearchWords[currentIndex]?.keyword || "";;
|
||||
if (!kw) return;
|
||||
historySearchList.unshift(kw);
|
||||
historySearchList = [...new Set(historySearchList)];
|
||||
if (historySearchList.length > 10) historySearchList = historySearchList.splice(0, 10);
|
||||
localStorage.setItem("history-search", JSON.stringify(historySearchList));
|
||||
redirectToExternalWebsite("/search/" + kw);
|
||||
|
||||
searchInput.value = ""
|
||||
}
|
||||
|
||||
let hotSearchWords = [];
|
||||
|
||||
const renderingPlaceholder = () => {
|
||||
let itemAll = ``
|
||||
hotSearchWords.forEach(item => {
|
||||
itemAll += `<div class="item one-line-display" >大家都在搜:${item.keyword}</div>`
|
||||
})
|
||||
|
||||
const sliceHotSearchWords = hotSearchWords.slice(0, 2)
|
||||
sliceHotSearchWords.forEach(item => {
|
||||
itemAll += `<div class="item one-line-display" >大家都在搜:${item.keyword}</div>`
|
||||
})
|
||||
|
||||
const placeholderBox = document.querySelector('.placeholder .placeholder-box')
|
||||
placeholderBox.innerHTML = itemAll
|
||||
|
||||
}
|
||||
|
||||
const getWConfigg = () => {
|
||||
ajaxGet("/v2/api/config/website").then((res) => {
|
||||
if (res.code == 200) {
|
||||
let data = res["data"] || {};
|
||||
hotSearchWords = data.hotSearchWords || [];
|
||||
renderingPlaceholder()
|
||||
data.time = new Date().toISOString();
|
||||
localStorage.setItem("wConfig", JSON.stringify(data));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const checkWConfig = () => {
|
||||
const wConfig = JSON.parse(localStorage.getItem("wConfig")) || {};
|
||||
if (wConfig.time) {
|
||||
const time = new Date(wConfig.time);
|
||||
const now = new Date();
|
||||
if (now - time > 24 * 60 * 60 * 1000) getWConfigg();
|
||||
else {
|
||||
hotSearchWords = wConfig.hotSearchWords || [];
|
||||
renderingPlaceholder()
|
||||
}
|
||||
} else getWConfigg();
|
||||
};
|
||||
|
||||
checkWConfig()
|
||||
|
||||
|
||||
|
||||
const renderCurrentIndex = () => {
|
||||
const placeholderBox = document.querySelector('.placeholder .placeholder-box')
|
||||
if (placeholderBox) placeholderBox.style.transform = `translateY(${-currentIndex * 36}px)`
|
||||
}
|
||||
|
||||
let currentIndex = 0; // 当前显示的关键词索引
|
||||
let carouselTimer = null; // 轮播定时器
|
||||
|
||||
// 启动轮播函数
|
||||
const startCarousel = () => {
|
||||
// 清除已有的定时器
|
||||
if (carouselTimer) clearInterval(carouselTimer);
|
||||
// 设置新的定时器,每秒滚动一次
|
||||
carouselTimer = setInterval(() => {
|
||||
if (hotSearchWords.length > 1) {
|
||||
if (currentIndex >= hotSearchWords.length - 1) {
|
||||
currentIndex++;
|
||||
setTimeout(() => {
|
||||
currentIndex = 0;
|
||||
}, 2300);
|
||||
} else currentIndex++;
|
||||
}
|
||||
renderCurrentIndex()
|
||||
}, 2300);
|
||||
};
|
||||
|
||||
startCarousel();
|
||||
|
||||
const openHeadPop = () => {
|
||||
if (window["userInfoWin"]?.uin > 0 || window["userInfoWin"]?.uid > 0) {
|
||||
// 登录
|
||||
const headMoreLeft = document.querySelector(".head-pop .head-more-left")
|
||||
headMoreLeft.innerHTML = `<img class="head-more-userinfo-avatar" src="${window["userInfoWin"]?.avatar}" alt=""><div class="head-more-userinfo-username">${window["userInfoWin"]?.nickname}</div>`
|
||||
} else {
|
||||
const avatar = document.querySelector(".head-pop .head-more-userinfo-avatar")
|
||||
avatar.src = "/img/defaultAvatar.png"
|
||||
const headMoreRight = document.querySelector(".head-pop .head-more-right")
|
||||
headMoreRight.style.display = "block"
|
||||
}
|
||||
document.querySelector(".head-pop").classList.add("head-pop-show");
|
||||
}
|
||||
|
||||
const skipLoginUrl = (e) => {
|
||||
if (window["userInfoWin"]?.uin > 0 || window["userInfoWin"]?.uid > 0) { }
|
||||
else {
|
||||
e.preventDefault();
|
||||
go_ajax_Login();
|
||||
}
|
||||
}
|
||||
|
||||
const crossHeadPop = () => document.querySelector(".head-pop").classList.remove("head-pop-show");
|
||||
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user