feat: 添加租房模块图标和功能优化
fix: 修复投票状态显示逻辑 refactor: 重命名ajaxget为ajaxGet style: 优化CSS样式和布局 docs: 更新组件文档和注释
This commit is contained in:
@@ -5,17 +5,35 @@ const { defineComponent, ref, onMounted, nextTick } = Vue;
|
||||
// 定义组件(直接使用模板)
|
||||
export const headTop = defineComponent({
|
||||
name: "headTop",
|
||||
props: {
|
||||
itemdata: {
|
||||
type: Object,
|
||||
default: () => {},
|
||||
},
|
||||
},
|
||||
props: {},
|
||||
|
||||
setup(props) {
|
||||
onMounted(() => {});
|
||||
|
||||
let signInAlreadyState = ref(false);
|
||||
let state = ref(0); // 是否已经签到
|
||||
|
||||
let userInfoWinTimerCount = 0;
|
||||
const userInfoWinTimer = setInterval(() => {
|
||||
if (todaysignedState) {
|
||||
state.value = todaysigned;
|
||||
clearInterval(userInfoWinTimer);
|
||||
}
|
||||
userInfoWinTimerCount++;
|
||||
if (userInfoWinTimerCount >= 3000) clearInterval(userInfoWinTimer);
|
||||
}, 50);
|
||||
|
||||
const signIn = () => {
|
||||
ajax("/v2/api/forum/sign").then((res) => {
|
||||
if (res.code != 200) {
|
||||
creationAlertBox("error", res.message);
|
||||
return;
|
||||
}
|
||||
|
||||
let data = res.data;
|
||||
state.value = 1;
|
||||
creationAlertBox("success", res.message || "签到成功");
|
||||
});
|
||||
};
|
||||
|
||||
let input = ref("");
|
||||
let defaultSearchText = ref("屯特");
|
||||
@@ -23,8 +41,9 @@ export const headTop = defineComponent({
|
||||
const searchText = input.value || defaultSearchText.value;
|
||||
redirectToExternalWebsite("/search/" + searchText);
|
||||
};
|
||||
return { input, defaultSearchText, goSearch, signInAlreadyState };
|
||||
|
||||
return { state, signIn, input, defaultSearchText, goSearch };
|
||||
},
|
||||
|
||||
template: `<div class="head-top flexacenter"> <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"> <input class="input flex1" type="text" :placeholder="'大家都在搜:' + defaultSearchText" @keyup.enter="goSearch" v-model="input" /> <img class="icon" src="/img/search-icon.svg" @click="goSearch" /> </div> <div class="sign-in sign-in-already flexcenter" v-if="signInAlreadyState" v-cloak onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')"> <img class="sign-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-icon.png" /> <span>已签到,明天再来</span> </div> <div class="sign-in sign-in-no flexacenter" v-else onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')" v-cloak> <img class="sign-in-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-in-bj.svg" /> <img class="coin-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-bj.svg" /> <img class="coin-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-icon.png" /> <span class="text flex1">签到领寄托币</span> <div class="sign-go flexcenter"> <img class="sign-go-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-go.svg" /> GO </div> <img class="petal1" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal1.png" /> <img class="petal2" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal2.png" /> <img class="petal3" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal3.png" /> </div></div>`,
|
||||
template: `<div class="head-top flexacenter"> <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"> <input class="input flex1" type="text" :placeholder="'大家都在搜:' + defaultSearchText" @keyup.enter="goSearch" v-model="input" /> <img class="icon" src="/img/search-icon.svg" @click="goSearch" /> </div> <div class="sign-in sign-in-no flexacenter" v-if="state == 0" @click="signIn()" v-cloak> <img class="sign-in-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-in-bj.svg" /> <img class="coin-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-bj.svg" /> <img class="coin-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-icon.png" /> <span class="text flex1">签到领寄托币</span> <div class="sign-go flexcenter"> <img class="sign-go-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-go.svg" /> GO </div> <img class="petal1" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal1.png" /> <img class="petal2" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal2.png" /> <img class="petal3" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal3.png" /> </div> <div class="sign-in sign-in-already flexcenter" v-else> <img class="sign-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-icon.png" /> <span>已签到,明天再来</span> </div></div>`,
|
||||
});
|
||||
|
||||
@@ -8,11 +8,7 @@
|
||||
<img class="icon" src="/img/search-icon.svg" @click="goSearch" />
|
||||
</div>
|
||||
|
||||
<div class="sign-in sign-in-already flexcenter" v-if="signInAlreadyState" v-cloak onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')">
|
||||
<img class="sign-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-icon.png" />
|
||||
<span>已签到,明天再来</span>
|
||||
</div>
|
||||
<div class="sign-in sign-in-no flexacenter" v-else onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')" v-cloak>
|
||||
<div class="sign-in sign-in-no flexacenter" v-if="state == 0" @click="signIn()" v-cloak>
|
||||
<img class="sign-in-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-in-bj.svg" />
|
||||
<img class="coin-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-bj.svg" />
|
||||
<img class="coin-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-icon.png" />
|
||||
@@ -25,4 +21,8 @@
|
||||
<img class="petal2" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal2.png" />
|
||||
<img class="petal3" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal3.png" />
|
||||
</div>
|
||||
<div class="sign-in sign-in-already flexcenter" v-else>
|
||||
<img class="sign-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-icon.png" />
|
||||
<span>已签到,明天再来</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -28,7 +28,7 @@ export const itemHead = defineComponent({
|
||||
sectionn.value = item.value.sectionn || [];
|
||||
|
||||
const sectionNameSet = new Set(sectionn.value.map((item) => item.name));
|
||||
tags.value = item.value.tags.filter((tagName) => !sectionNameSet.has(tagName));
|
||||
tags.value = item.value?.tags?.filter((tagName) => !sectionNameSet.has(tagName)) || [];
|
||||
|
||||
// const sectionSet = new Set(sectionn.value);
|
||||
// tags.value = item.value.tags?.filter((tag) => !sectionSet.has(tag));
|
||||
@@ -49,8 +49,7 @@ export const itemHead = defineComponent({
|
||||
onMounted(() => {
|
||||
setTimeout(() => {
|
||||
permissions.value = window["permissions"] || [];
|
||||
// ismanager.value = permissions.value.indexOf("topic:manager") >= 0;
|
||||
ismanager.value = true;
|
||||
ismanager.value = permissions.value.indexOf("topic:manager") >= 0;
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
@@ -124,5 +123,5 @@ export const itemHead = defineComponent({
|
||||
report,
|
||||
},
|
||||
|
||||
template: `<div class="item-head flexacenter"> <div class="user-box flexacenter" @click="goPersonalHomepage(item?.user?.uin, item?.user?.uid)"> <img class="avatar" :src="item?.user?.avatar || item.avatar" /> <div class="name">{{ item?.user?.nickname || item.nickname || "匿名用户" }}</div> <img class="group" v-if="info?.group?.image" :src="info?.group?.image" /> </div> <div class="time">{{ timestamp }}</div> <div class="flex1"></div> <div class="view flexacenter"> <img class="icon" src="/img/eye-icon.svg" /> <div class="text">{{ item.views }}</div> </div> <div class="btn flexcenter" @click.stop="cutShow"> <img class="icon" src="/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> </div></div><div class="label flexflex" v-if="sectionn?.length || tags?.length || item.recommend == 1 || item.best == 1"> <img class="item icon" v-if="item.recommend == 1 && item.best != 1" src="/img/recommend-icon.png" /> <img class="item icon" v-if="item.best == 1" src="/img/essence-icon.png" /> <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"> <div class="user-box flexacenter" @click="goPersonalHomepage(item?.user?.uin, item?.user?.uid)"> <img class="avatar" :src="item?.user?.avatar || item.avatar" /> <div class="name">{{ item?.user?.nickname || item.nickname || "匿名用户" }}</div> <img class="group" v-if="info?.group?.image" :src="info?.group?.image" /> </div> <div class="time">{{ timestamp }}</div> <div class="flex1"></div> <div class="view flexacenter"> <img class="icon" src="/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="/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> </div></div><div class="label flexflex" v-if="sectionn?.length || tags?.length || item.recommend == 1 || item.best == 1"> <img class="item icon" v-if="item.recommend == 1 && item.best != 1" src="/img/recommend-icon.png" /> <img class="item icon" v-if="item.best == 1" src="/img/essence-icon.png" /> <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>`,
|
||||
});
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<div class="text">{{ item.views }}</div>
|
||||
</div>
|
||||
|
||||
<div class="btn flexcenter" @click.stop="cutShow">
|
||||
<div v-if="item.type != 'tenement'" class="btn flexcenter" @click.stop="cutShow">
|
||||
<img class="icon" src="/img/dot-dot-dot-gray.png" />
|
||||
</div>
|
||||
|
||||
|
||||
@@ -61,11 +61,22 @@ export const itemTenement = defineComponent({
|
||||
let item = ref({ ...props.itemdata });
|
||||
// console.log("item", item.value);
|
||||
item.value = handleHousing(item.value);
|
||||
item.value['url'] = '/details/' + item.value.uniqid;
|
||||
item.value["url"] = "https://fang.gter.net/detail?id=" + item.value.uniqid;
|
||||
let sectionn = ref([]);
|
||||
let tags = ref([]);
|
||||
|
||||
if (item.value.type == "tenement") {
|
||||
const tabList = item.value?.tabList || [];
|
||||
sectionn.value = ["香港租房", tabList[0]];
|
||||
tags.value = tabList.slice(1) || [];
|
||||
}
|
||||
|
||||
if (item.value.images?.length > 4) item.value.images = item.value.images.slice(0, 4);
|
||||
|
||||
|
||||
console.log("item.value", item.value);
|
||||
|
||||
return { item };
|
||||
return { sectionn, tags, item };
|
||||
},
|
||||
|
||||
components: {
|
||||
@@ -73,5 +84,5 @@ export const itemTenement = defineComponent({
|
||||
itemHead,
|
||||
},
|
||||
|
||||
template: `<div class="item-box item-tenement"> <item-head :itemdata="item"></item-head> <a class="title" :href="item.url" target="_blank">{{ item.title }}</a> <a class="site-box flexacenter" :href="item.url" target="_blank"> <template v-if="item.intermediary == 6"> <div class="site-item flexacenter" v-for="(item, index) in item.location" :key="index"> <img class="site-icon" src="/img/orientation.png"> {{ item }} </div> </template> <div v-else class="site-item flexacenter"> <img class="site-icon" src="/img/orientation.png"> {{ item.location || '' }} </div> </a> <a class="price-section flexacenter" :href="item.url" target="_blank"> <div class="unit">HK$</div> <div class="price">{{ item.rent }}</div> <span class="text">/月</span> <div class="rentalduration">[ 租期{{ item.rentalduration }} ]</div> </a> <a class="picture flexacenter" :href="item.url" target="_blank" v-if="item.images?.length != 0"> <img class="picture-item" v-for="(item, index) in item.images" :key="index" :src="item" alt=""> </a> <item-bottom :itemdata="item"></item-bottom></div>`,
|
||||
template: `<div class="item-box item-tenement"> <item-head :itemdata="item"></item-head> <div class="label flexflex" v-if="sectionn?.length || tags?.length"> <img class="item icon" v-if="item.isintermediary == 1" style="width: 94px; cursor: auto;" src="/img/intermediary-icon.png" /> <img class="item icon" v-if="item.verified == 1" style="width: 94px; cursor: auto;" src="/img/attestation-icon.png" /> <div class="item blue" v-for="(item, index) in sectionn" :key="item" style="cursor: auto;">{{ item }}</div> <div class="item" v-for="(item, index) in tags" :key="item" style="cursor: auto;">{{ item }}</div> </div> <a class="title" :href="item.url" target="_blank">{{ item.subject }}</a> <a class="site-box flexacenter" :href="item.url" target="_blank"> <template v-if="item.intermediary == 6"> <div class="site-item flexacenter" v-for="(item, index) in item.location" :key="index"> <img class="site-icon" src="/img/orientation.png"> {{ item }} </div> </template> <div v-else class="site-item flexacenter"> <img class="site-icon" src="/img/orientation.png"> {{ item.location || '' }} </div> </a> <a class="price-section flexacenter" :href="item.url" target="_blank"> <div class="unit">HK$</div> <div class="price">{{ item.rent }}</div> <span class="text">/月</span> <div class="rentalduration">[ 租期{{ item.rentalduration }} ]</div> </a> <a class="picture flexacenter" :href="item.url" target="_blank" v-if="item.images?.length != 0"> <img class="picture-item" v-for="(item, index) in item.images" :key="index" :src="item" alt=""> </a> <item-bottom :itemdata="item"></item-bottom></div>`,
|
||||
});
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
<div class="item-box item-tenement">
|
||||
<item-head :itemdata="item"></item-head>
|
||||
<a class="title" :href="item.url" target="_blank">{{ item.title }}</a>
|
||||
<div class="label flexflex" v-if="sectionn?.length || tags?.length">
|
||||
<img class="item icon" v-if="item.isintermediary == 1" style="width: 94px; cursor: auto;" src="/img/intermediary-icon.png" />
|
||||
<img class="item icon" v-if="item.verified == 1" style="width: 94px; cursor: auto;" src="/img/attestation-icon.png" />
|
||||
<div class="item blue" v-for="(item, index) in sectionn" :key="item" style="cursor: auto;">{{ item }}</div>
|
||||
<div class="item" v-for="(item, index) in tags" :key="item" style="cursor: auto;">{{ item }}</div>
|
||||
</div>
|
||||
|
||||
<a class="title" :href="item.url" target="_blank">{{ item.subject }}</a>
|
||||
|
||||
<a class="site-box flexacenter" :href="item.url" target="_blank">
|
||||
<template v-if="item.intermediary == 6">
|
||||
|
||||
@@ -25,5 +25,5 @@ export const itemVote = defineComponent({
|
||||
itemHead,
|
||||
},
|
||||
|
||||
template: `<div class="item-box item-vote"> <item-head :itemdata="item"></item-head> <a class="title" :href="item.url" target="_blank">{{ item.title }}</a> <a class="message one-line-display" v-if="item.content">{{ item.content }}</a> <a class="info flexacenter" target="_blank" :href="item.url"> <template v-if="item.time"> <div class="status">进行中</div> <div class="line"></div> <div class="num">{{ item?.time.num }}</div>{{ item.time.unit }}后结束 </template> <div v-else class="status end">已结束</div> <div class="line"></div> <div class="num">{{ item?.data?.votes }}</div>人参与 </a> <a class="list" :class="{ 'voted': !item.time || item.isvote }" target="_blank" :href="item.url"> <div class="list-item flexcenter " v-for="(item, index) in item?.data?.option" :key="index"> <div class="list-top flexacenter"> <img v-if="item.selected" class="list-tick" src="/img/vote-tick.svg"> <div v-else class="list-serial flexcenter">{{ index + 1 }}</div> <div class="list-text one-line-display flex1">{{ item.value }}</div> </div> <div class="list-bottom flexacenter"> <div class="list-length" :style="{ width: item.percentage + '%' }"></div>{{ item.count }} </div> </div> </a> <item-bottom :itemdata="item"></item-bottom></div>`,
|
||||
template: `<div class="item-box item-vote"> <item-head :itemdata="item"></item-head> <a class="title" :href="item.url" target="_blank">{{ item.title }}</a> <a class="message one-line-display" v-if="item.content">{{ item.content }}</a> <a class="info flexacenter" target="_blank" :href="item.url"> <template v-if="item?.data.status == 1"> <div class="status">进行中</div> <div class="line"></div> <div class="num">{{ item?.time.num }}</div>{{ item.time.unit }}后结束 </template> <div v-else class="status end">已结束</div> <div class="line"></div> <div class="num">{{ item?.data?.votes }}</div>人参与 </a> <a class="list" :class="{ 'voted': !item.time || item.isvote }" target="_blank" :href="item.url"> <div class="list-item flexcenter " v-for="(item, index) in item?.data?.option" :key="index"> <div class="list-top flexacenter"> <img v-if="item.selected" class="list-tick" src="/img/vote-tick.svg"> <div v-else class="list-serial flexcenter">{{ index + 1 }}</div> <div class="list-text one-line-display flex1">{{ item.value }}</div> </div> <div class="list-bottom flexacenter"> <div class="list-length" :style="{ width: item.percentage + '%' }"></div>{{ item.count }} </div> </div> </a> <item-bottom :itemdata="item"></item-bottom></div>`,
|
||||
});
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<a class="title" :href="item.url" target="_blank">{{ item.title }}</a>
|
||||
<a class="message one-line-display" v-if="item.content">{{ item.content }}</a>
|
||||
<a class="info flexacenter" target="_blank" :href="item.url">
|
||||
<template v-if="item.time">
|
||||
<template v-if="item?.data.status == 1">
|
||||
<div class="status">进行中</div>
|
||||
<div class="line"></div>
|
||||
<div class="num">{{ item?.time.num }}</div>{{ item.time.unit }}后结束
|
||||
|
||||
@@ -23,15 +23,10 @@ export const latestList = defineComponent({
|
||||
let postsTab = ref("newest"); // newest essence
|
||||
|
||||
let boxtype = ref(props.boxtype);
|
||||
console.log(boxtype.value);
|
||||
onMounted(() => {
|
||||
if (props.boxtype == "newest") {
|
||||
// boxtype.value = "newest";
|
||||
getTopicLatest();
|
||||
} else if (props.boxtype == "essence") {
|
||||
// boxtype.value = "essence";
|
||||
topicHandpicked();
|
||||
} else {
|
||||
if (props.boxtype == "newest") getTopicLatest();
|
||||
else if (props.boxtype == "essence") topicHandpicked();
|
||||
else {
|
||||
getTopicLatest();
|
||||
topicHandpicked();
|
||||
}
|
||||
|
||||
@@ -169,6 +169,9 @@
|
||||
margin: 0 4px;
|
||||
text-decoration: none;
|
||||
}
|
||||
#details .matter .matter-left .html img {
|
||||
max-width: 100%;
|
||||
}
|
||||
#details .matter .matter-left .last-time {
|
||||
color: #aaaaaa;
|
||||
font-size: 13px;
|
||||
@@ -953,6 +956,10 @@
|
||||
/* å…许长å•è¯å†…部æ–行 */
|
||||
margin-bottom: 13px;
|
||||
}
|
||||
.answer-discuss .comments-box .comments-item .comments-content .comments-text a {
|
||||
text-decoration: underline;
|
||||
color: #04b0d5;
|
||||
}
|
||||
.answer-discuss .comments-box .comments-item .comments-content .comments-text .comments-reply {
|
||||
color: #92a1bf;
|
||||
display: inline;
|
||||
|
||||
@@ -193,6 +193,10 @@
|
||||
margin: 0 4px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.last-time {
|
||||
@@ -1112,6 +1116,11 @@
|
||||
overflow-wrap: break-word;
|
||||
/* å…许长å•è¯å†…部æ–行 */
|
||||
margin-bottom: 13px;
|
||||
|
||||
a {
|
||||
text-decoration: underline;
|
||||
color: #04b0d5;
|
||||
}
|
||||
}
|
||||
|
||||
.answer-discuss .comments-box .comments-item .comments-content .comments-text .comments-reply {
|
||||
|
||||
@@ -116,6 +116,67 @@
|
||||
height: 14px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
#homepage-me .matter .card-user .bi-box .bi-btn:hover .bi-pop {
|
||||
display: flex;
|
||||
}
|
||||
#homepage-me .matter .card-user .bi-box .bi-pop {
|
||||
width: 260px;
|
||||
box-sizing: border-box;
|
||||
position: absolute;
|
||||
background-color: #f6f7f7;
|
||||
top: 58px;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.35);
|
||||
flex-direction: column;
|
||||
padding: 10px;
|
||||
color: #555;
|
||||
display: none;
|
||||
}
|
||||
#homepage-me .matter .card-user .bi-box .bi-pop .bi-coin-title {
|
||||
font-weight: 650;
|
||||
font-size: 16px;
|
||||
color: #000000;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
#homepage-me .matter .card-user .bi-box .bi-pop .bi-coin-hint {
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
}
|
||||
#homepage-me .matter .card-user .bi-box .bi-pop .bi-coin-hint a {
|
||||
text-decoration: none;
|
||||
}
|
||||
#homepage-me .matter .card-user .bi-box .bi-pop .bi-coin-hint .bi-url {
|
||||
text-decoration: underline;
|
||||
color: #04b0d5;
|
||||
}
|
||||
#homepage-me .matter .card-user .bi-box .bi-pop::before {
|
||||
content: "";
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
top: -19px;
|
||||
right: 40px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
transform: translateX(-50%);
|
||||
border: 10px solid #000;
|
||||
border-top-color: transparent;
|
||||
border-bottom-color: #f6f7f7;
|
||||
border-left-color: transparent;
|
||||
border-right-color: transparent;
|
||||
}
|
||||
#homepage-me .matter .card-user .bi-box .bi-pop::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 20px;
|
||||
display: block;
|
||||
z-index: -1;
|
||||
top: -15px;
|
||||
left: 0;
|
||||
}
|
||||
#homepage-me .matter .card-user .medal-area {
|
||||
margin: 0 30px;
|
||||
align-self: self-start;
|
||||
|
||||
@@ -123,11 +123,82 @@
|
||||
font-size: 13px;
|
||||
color: rgb(171, 119, 19);
|
||||
text-decoration: none;
|
||||
|
||||
.bi-question {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.bi-pop {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bi-pop {
|
||||
width: 260px;
|
||||
box-sizing: border-box;
|
||||
position: absolute;
|
||||
background-color: #f6f7f7;
|
||||
top: 58px;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.35);
|
||||
flex-direction: column;
|
||||
padding: 10px;
|
||||
color: #555;
|
||||
display: none;
|
||||
|
||||
.bi-coin-title {
|
||||
font-weight: 650;
|
||||
font-size: 16px;
|
||||
color: #000000;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.bi-coin-hint {
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.bi-url {
|
||||
text-decoration: underline;
|
||||
color: #04b0d5;
|
||||
}
|
||||
}
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
top: -19px;
|
||||
right: 40px;
|
||||
width: 0;
|
||||
height: 0;
|
||||
transform: translateX(-50%);
|
||||
border: 10px solid #000;
|
||||
border-top-color: transparent;
|
||||
border-bottom-color: #f6f7f7;
|
||||
border-left-color: transparent;
|
||||
border-right-color: transparent;
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 20px;
|
||||
display: block;
|
||||
z-index: -1;
|
||||
top: -15px;
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -420,6 +420,42 @@
|
||||
#appIndex .header-content-box .header-content-right .offer-box .item:hover .titletitle {
|
||||
color: #000000;
|
||||
}
|
||||
#appIndex .admission {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
#appIndex .admission .admission-header {
|
||||
margin-bottom: 24px;
|
||||
display: inline-flex;
|
||||
}
|
||||
#appIndex .admission .admission-header .admission-header-icon {
|
||||
width: 91px;
|
||||
height: 28px;
|
||||
margin-right: 16px;
|
||||
}
|
||||
#appIndex .admission .admission-header .admission-header-name {
|
||||
font-family: "Roboto-Light", "Roboto Light", "Roboto", sans-serif;
|
||||
font-weight: 200;
|
||||
font-size: 16px;
|
||||
line-height: 16px;
|
||||
color: #555555;
|
||||
align-items: flex-end;
|
||||
}
|
||||
#appIndex .admission .admission-list {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
#appIndex .admission .admission-list .admission-item {
|
||||
width: 291px;
|
||||
height: 103px;
|
||||
border-radius: 9px;
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
}
|
||||
#appIndex .admission .admission-list .admission-item:not(:nth-child(4n)) {
|
||||
margin-right: 12px;
|
||||
}
|
||||
#appIndex .admission .admission-list .admission-item:not(:nth-last-child(-n + 4)) {
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
#appIndex .matter .matter-content {
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
@@ -504,6 +504,48 @@
|
||||
}
|
||||
}
|
||||
|
||||
.admission {
|
||||
margin-bottom: 30px;
|
||||
.admission-header {
|
||||
margin-bottom: 24px;
|
||||
display: inline-flex;
|
||||
|
||||
.admission-header-icon {
|
||||
width: 91px;
|
||||
height: 28px;
|
||||
margin-right: 16px;
|
||||
}
|
||||
|
||||
.admission-header-name {
|
||||
font-family: "Roboto-Light", "Roboto Light", "Roboto", sans-serif;
|
||||
font-weight: 200;
|
||||
font-size: 16px;
|
||||
line-height: 16px;
|
||||
color: #555555;
|
||||
align-items: flex-end;
|
||||
}
|
||||
}
|
||||
|
||||
.admission-list {
|
||||
flex-wrap: wrap;
|
||||
.admission-item {
|
||||
width: 291px;
|
||||
height: 103px;
|
||||
border-radius: 9px;
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
|
||||
&:not(:nth-child(4n)) {
|
||||
margin-right: 12px;
|
||||
}
|
||||
|
||||
&:not(:nth-last-child(-n + 4)) {
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.matter {
|
||||
.matter-content {
|
||||
margin-right: 12px;
|
||||
|
||||
@@ -185,6 +185,7 @@ body {
|
||||
line-height: 36px;
|
||||
margin-bottom: 7px;
|
||||
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
|
||||
display: flex;
|
||||
}
|
||||
.item-box.item-forum .message {
|
||||
font-size: 14px;
|
||||
@@ -476,6 +477,7 @@ body {
|
||||
color: #000000;
|
||||
line-height: 36px;
|
||||
margin-bottom: 10px;
|
||||
display: block;
|
||||
}
|
||||
.item-box.item-tenement .site-box {
|
||||
margin-bottom: 10px;
|
||||
@@ -1532,3 +1534,62 @@ body {
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
table {
|
||||
empty-cells: show;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.t_l,
|
||||
.t_c,
|
||||
.t_r,
|
||||
.m_l,
|
||||
.m_r,
|
||||
.b_l,
|
||||
.b_c,
|
||||
.b_r {
|
||||
overflow: hidden;
|
||||
background: #000;
|
||||
opacity: 0.2;
|
||||
filter: alpha(opacity=20);
|
||||
}
|
||||
.t_l,
|
||||
.t_c,
|
||||
.t_r,
|
||||
.m_l,
|
||||
.m_r,
|
||||
.b_l,
|
||||
.b_c,
|
||||
.b_r {
|
||||
overflow: hidden;
|
||||
background: #000;
|
||||
opacity: 0.2;
|
||||
filter: alpha(opacity=20);
|
||||
}
|
||||
td {
|
||||
display: table-cell;
|
||||
vertical-align: inherit;
|
||||
unicode-bidi: isolate;
|
||||
}
|
||||
.t_l {
|
||||
-moz-border-radius: 8px 0 0 0;
|
||||
-webkit-border-radius: 8px 0 0 0;
|
||||
border-radius: 8px 0 0 0;
|
||||
}
|
||||
.t_c,
|
||||
.b_c {
|
||||
height: 8px;
|
||||
}
|
||||
.t_l,
|
||||
.t_r,
|
||||
.b_l,
|
||||
.b_r {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
.t_r {
|
||||
-moz-border-radius: 0 8px 0 0;
|
||||
-webkit-border-radius: 0 8px 0 0;
|
||||
border-radius: 0 8px 0 0;
|
||||
}
|
||||
.templateValue {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -219,6 +219,7 @@ body {
|
||||
line-height: 36px;
|
||||
margin-bottom: 7px;
|
||||
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.message {
|
||||
@@ -569,6 +570,7 @@ body {
|
||||
color: #000000;
|
||||
line-height: 36px;
|
||||
margin-bottom: 10px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.site-box {
|
||||
@@ -1823,3 +1825,70 @@ body {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
table {
|
||||
empty-cells: show;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.t_l,
|
||||
.t_c,
|
||||
.t_r,
|
||||
.m_l,
|
||||
.m_r,
|
||||
.b_l,
|
||||
.b_c,
|
||||
.b_r {
|
||||
overflow: hidden;
|
||||
background: #000;
|
||||
opacity: 0.2;
|
||||
filter: alpha(opacity=20);
|
||||
}
|
||||
|
||||
.t_l,
|
||||
.t_c,
|
||||
.t_r,
|
||||
.m_l,
|
||||
.m_r,
|
||||
.b_l,
|
||||
.b_c,
|
||||
.b_r {
|
||||
overflow: hidden;
|
||||
background: #000;
|
||||
opacity: 0.2;
|
||||
filter: alpha(opacity=20);
|
||||
}
|
||||
|
||||
td {
|
||||
display: table-cell;
|
||||
vertical-align: inherit;
|
||||
unicode-bidi: isolate;
|
||||
}
|
||||
|
||||
.t_l {
|
||||
-moz-border-radius: 8px 0 0 0;
|
||||
-webkit-border-radius: 8px 0 0 0;
|
||||
border-radius: 8px 0 0 0;
|
||||
}
|
||||
.t_c,
|
||||
.b_c {
|
||||
height: 8px;
|
||||
}
|
||||
.t_l,
|
||||
.t_r,
|
||||
.b_l,
|
||||
.b_r {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
|
||||
|
||||
.t_r {
|
||||
-moz-border-radius: 0 8px 0 0;
|
||||
-webkit-border-radius: 0 8px 0 0;
|
||||
border-radius: 0 8px 0 0;
|
||||
}
|
||||
|
||||
.templateValue {
|
||||
display: none;
|
||||
}
|
||||
@@ -105,9 +105,12 @@
|
||||
margin-right: 20px;
|
||||
margin-bottom: 28px;
|
||||
width: fit-content;
|
||||
width: 100%;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .info-box .right .link .item {
|
||||
padding: 12px 0;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .info-box .right .link .item:not(:last-child) {
|
||||
margin-right: 72px;
|
||||
@@ -121,6 +124,40 @@
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .info-box .right .link .item:hover .QRcode-box {
|
||||
display: flex;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .info-box .right .link .item .QRcode-box {
|
||||
position: absolute;
|
||||
top: 51px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 180px;
|
||||
height: 240px;
|
||||
background-color: #ffffff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.12156863);
|
||||
flex-direction: column;
|
||||
z-index: 1;
|
||||
display: none;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .info-box .right .link .item .QRcode-box .QRcode-img {
|
||||
width: 130px;
|
||||
height: 130px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .info-box .right .link .item .QRcode-box .name {
|
||||
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
|
||||
font-weight: 650;
|
||||
font-style: normal;
|
||||
font-size: 16px;
|
||||
color: #000000;
|
||||
margin-bottom: 9px;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .info-box .right .link .item .QRcode-box .hint {
|
||||
font-size: 13px;
|
||||
color: #333333;
|
||||
}
|
||||
#sectionIndex .matter .matter-content .info-box .right .bottom {
|
||||
justify-content: space-between;
|
||||
margin-right: 20px;
|
||||
|
||||
@@ -114,20 +114,68 @@
|
||||
margin-right: 20px;
|
||||
margin-bottom: 28px;
|
||||
width: fit-content;
|
||||
width: 100%;
|
||||
|
||||
.item {
|
||||
padding: 12px 0;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
|
||||
&:not(:last-child) {
|
||||
margin-right: 72px;
|
||||
}
|
||||
|
||||
.text {
|
||||
font-size: 14px;
|
||||
color: #333333;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.icon {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.QRcode-box {
|
||||
display: flex;
|
||||
}
|
||||
}
|
||||
|
||||
.QRcode-box {
|
||||
position: absolute;
|
||||
top: 51px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 180px;
|
||||
height: 240px;
|
||||
background-color: rgba(255, 255, 255, 1);
|
||||
border-radius: 10px;
|
||||
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.12156862745098);
|
||||
flex-direction: column;
|
||||
z-index: 1;
|
||||
display: none;
|
||||
|
||||
.QRcode-img {
|
||||
width: 130px;
|
||||
height: 130px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-family: "PingFangSC-Semibold", "PingFang SC Semibold", "PingFang SC", sans-serif;
|
||||
font-weight: 650;
|
||||
font-style: normal;
|
||||
font-size: 16px;
|
||||
color: #000000;
|
||||
margin-bottom: 9px;
|
||||
}
|
||||
|
||||
.hint {
|
||||
font-size: 13px;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
BIN
img/admission-officer-icon.png
Normal file
BIN
img/admission-officer-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
BIN
img/attestation-icon.png
Normal file
BIN
img/attestation-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 97 KiB |
BIN
img/cong-ge.png
Normal file
BIN
img/cong-ge.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 77 KiB |
BIN
img/intermediary-icon.png
Normal file
BIN
img/intermediary-icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 93 KiB |
BIN
img/university-manager.png
Normal file
BIN
img/university-manager.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
@@ -34,8 +34,8 @@ const ajax = (url, data) => {
|
||||
});
|
||||
};
|
||||
|
||||
// 导出ajaxget函数
|
||||
const ajaxget = (url) => {
|
||||
// 导出ajaxGet函数
|
||||
const ajaxGet = (url) => {
|
||||
if (location.hostname == "127.0.0.1") axios.defaults.headers.common["Authorization"] = "erhvky91rk23vx7xiutj34db82kjb1vc";
|
||||
|
||||
url = url.indexOf("https://") > -1 ? url : forumBaseURL + url;
|
||||
|
||||
@@ -100,7 +100,7 @@ const appSearch = createApp({
|
||||
|
||||
let uniqid = "";
|
||||
const init = () => {
|
||||
ajaxget(`https://offer.gter.net/miniprogramApi/offer/search`).then((res) => {
|
||||
ajaxGet(`https://offer.gter.net/miniprogramApi/offer/search`).then((res) => {
|
||||
if (res.code != 200) {
|
||||
creationAlertBox("error", res.message);
|
||||
page.value = 0;
|
||||
@@ -120,7 +120,7 @@ const appSearch = createApp({
|
||||
if (loading || page.value == null) return;
|
||||
loading = true;
|
||||
const limit = 20;
|
||||
ajaxget(`/v2/api/forum/topicLists?type=${tabValue.value == "all" ? "" : tabValue.value}&page=${page.value}&limit=${limit}&keyword=${kw.value}`)
|
||||
ajaxGet(`/v2/api/forum/topicLists?type=${tabValue.value == "all" ? "" : tabValue.value}&page=${page.value}&limit=${limit}&keyword=${kw.value}`)
|
||||
.then((res) => {
|
||||
// wx.hideLoading();
|
||||
if (res.code != 200) {
|
||||
|
||||
@@ -38,7 +38,7 @@ const appSectionIndex = createApp({
|
||||
let section = ref("");
|
||||
|
||||
const getSectionList = () => {
|
||||
ajaxget("/v2/api/forum/getSectionList").then((res) => {
|
||||
ajaxGet("/v2/api/forum/getSectionList").then((res) => {
|
||||
if (res.code != 200) return;
|
||||
const data = res.data || [];
|
||||
|
||||
@@ -89,7 +89,7 @@ const appSectionIndex = createApp({
|
||||
let info = ref({});
|
||||
|
||||
const init = () => {
|
||||
ajaxget(`/v2/api/forum/getSectionDetails?sectionid=${section.value}`).then((res) => {
|
||||
ajaxGet(`/v2/api/forum/getSectionDetails?sectionid=${section.value}`).then((res) => {
|
||||
if (res.code != 200) return;
|
||||
const data = res.data || {};
|
||||
info.value = data;
|
||||
@@ -98,7 +98,7 @@ const appSectionIndex = createApp({
|
||||
|
||||
let handpickList = ref([]);
|
||||
const handpick = () => {
|
||||
ajaxget(`/v2/api/forum/topicHandpicked?sectionid=${section.value}`).then((res) => {
|
||||
ajaxGet(`/v2/api/forum/topicHandpicked?sectionid=${section.value}`).then((res) => {
|
||||
let data = res.data || [];
|
||||
handpickList.value = data;
|
||||
});
|
||||
@@ -106,7 +106,7 @@ const appSectionIndex = createApp({
|
||||
|
||||
let tagsList = ref([]);
|
||||
const getTags = () => {
|
||||
ajaxget(`/v2/api/forum/sectionTags?sectionid=${section.value}`).then((res) => {
|
||||
ajaxGet(`/v2/api/forum/sectionTags?sectionid=${section.value}`).then((res) => {
|
||||
if (res.code != 200) return;
|
||||
const data = res.data || {};
|
||||
tagsList.value = data;
|
||||
@@ -120,7 +120,7 @@ const appSectionIndex = createApp({
|
||||
const getList = () => {
|
||||
if (loading || page.value == 0) return;
|
||||
loading = true;
|
||||
ajaxget(`/v2/api/forum/topicLists?type=thread&page=${page.value || 1}§ionid=${section.value}`)
|
||||
ajaxGet(`/v2/api/forum/topicLists?type=thread&page=${page.value || 1}§ionid=${section.value}`)
|
||||
.then((res) => {
|
||||
if (res.code != 200) return;
|
||||
let data = res.data;
|
||||
@@ -205,7 +205,7 @@ const appSectionIndex = createApp({
|
||||
let vote = ref([]); // 面经列表
|
||||
let interviewexperience = ref([]); // 面经列表
|
||||
const getTopicLatest = () => {
|
||||
ajaxget(`/v2/api/forum/getTopicLatest?limit=4`).then((res) => {
|
||||
ajaxGet(`/v2/api/forum/getTopicLatest?limit=4`).then((res) => {
|
||||
const data = res.data || [];
|
||||
console.log("data99999999999999", data);
|
||||
|
||||
|
||||
418
section.html
418
section.html
@@ -1,227 +1,249 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>版块首页</title>
|
||||
<link rel="stylesheet" href="./css/public.css" />
|
||||
<link rel="stylesheet" href="./css/section.css" />
|
||||
<script src="./js/vue.global.js"></script>
|
||||
<style scoped>
|
||||
[v-cloak] {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container" id="sectionIndex" v-cloak>
|
||||
<div class="head-top flexacenter">
|
||||
<img class="logo" src="https://oss.gter.net/logo" alt="" />
|
||||
<div class="flex1"></div>
|
||||
<div class="input-box flexacenter">
|
||||
<input class="input flex1" type="text" placeholder="大家都在搜:屯特" />
|
||||
<img class="icon" />
|
||||
</div>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>版块首页</title>
|
||||
<link rel="stylesheet" href="./css/public.css" />
|
||||
<link rel="stylesheet" href="./css/section.css" />
|
||||
<script src="./js/vue.global.js"></script>
|
||||
<style scoped>
|
||||
[v-cloak] {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<div class="sign-in sign-in-already flexcenter" v-if="signInAlreadyState" v-cloak onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')">
|
||||
<img class="sign-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-icon.png" />
|
||||
<span>已签到,明天再来</span>
|
||||
</div>
|
||||
<div class="sign-in sign-in-no flexacenter" v-else onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')" v-cloak>
|
||||
<img class="sign-in-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-in-bj.svg" />
|
||||
<img class="coin-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-bj.svg" />
|
||||
<img class="coin-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-icon.png" />
|
||||
<span class="text flex1">签到领寄托币</span>
|
||||
<div class="sign-go flexcenter">
|
||||
<img class="sign-go-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-go.svg" />
|
||||
GO
|
||||
</div>
|
||||
<img class="petal1" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal1.png" />
|
||||
<img class="petal2" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal2.png" />
|
||||
<img class="petal3" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal3.png" />
|
||||
</div>
|
||||
<body>
|
||||
<div class="container" id="sectionIndex" v-cloak>
|
||||
<div class="head-top flexacenter">
|
||||
<img class="logo" src="https://oss.gter.net/logo" alt="" />
|
||||
<div class="flex1"></div>
|
||||
<div class="input-box flexacenter">
|
||||
<input class="input flex1" type="text" placeholder="大家都在搜:屯特" />
|
||||
<img class="icon" />
|
||||
</div>
|
||||
|
||||
<div class="head-navigation flexacenter">
|
||||
<img class="icon" src="./img/index-icon.png" />
|
||||
<a class="text textA" target="_blank" href="./">首页</a>
|
||||
<img class="arrows" src="./img/arrows-gray.svg" />
|
||||
<div class="text">{{ info.name }}</div>
|
||||
<div class="sign-in sign-in-already flexcenter" v-if="signInAlreadyState" v-cloak onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')">
|
||||
<img class="sign-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-icon.png" />
|
||||
<span>已签到,明天再来</span>
|
||||
</div>
|
||||
<div class="sign-in sign-in-no flexacenter" v-else onclick="showWindow('dsu_paulsign', 'https://bbs.gter.net/plugin.php?id=dsu_paulsign:sign&show=sign')" v-cloak>
|
||||
<img class="sign-in-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-in-bj.svg" />
|
||||
<img class="coin-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-bj.svg" />
|
||||
<img class="coin-icon" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/coin-icon.png" />
|
||||
<span class="text flex1">签到领寄托币</span>
|
||||
<div class="sign-go flexcenter">
|
||||
<img class="sign-go-bj" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/sign-go.svg" />
|
||||
GO
|
||||
</div>
|
||||
<img class="petal1" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal1.png" />
|
||||
<img class="petal2" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal2.png" />
|
||||
<img class="petal3" src="//framework.x-php.com/gter/image/gter/forum/assets/forum/petal3.png" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="matter flexflex">
|
||||
<div class="sidebar">
|
||||
<div class="title">论坛版块</div>
|
||||
<div class="list">
|
||||
<template 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 class="head-navigation flexacenter">
|
||||
<img class="icon" src="./img/index-icon.png" />
|
||||
<a class="text textA" target="_blank" href="./">首页</a>
|
||||
<img class="arrows" src="./img/arrows-gray.svg" />
|
||||
<div class="text">{{ info.name }}</div>
|
||||
</div>
|
||||
|
||||
<div class="matter flexflex">
|
||||
<div class="sidebar">
|
||||
<div class="title">论坛版块</div>
|
||||
<div class="list">
|
||||
<template 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">
|
||||
<img v-if="info.icon" class="img" :src="info.icon" />
|
||||
<div class="right flex1">
|
||||
<div class="title">{{ info.name }}</div>
|
||||
<div class="link flexacenter">
|
||||
<a class="item flexacenter" href="https://u.gter.net/ad/1043?x=gter" target="_blank">
|
||||
<div class="text">申港超强资料包</div>
|
||||
<img class="icon" src="./img/arrows-circle-red.svg" />
|
||||
</a>
|
||||
|
||||
<a class="item flexacenter" href="http://program.gter.net/" target="_blank">
|
||||
<div class="text">港校项目库</div>
|
||||
<img class="icon" src="./img/arrows-circle-red.svg" />
|
||||
</a>
|
||||
|
||||
<div class="item flexacenter">
|
||||
<div class="text">26fall香港申请群</div>
|
||||
<img class="icon" src="./img/arrows-circle-red.svg" />
|
||||
<div class="QRcode-box flexcenter">
|
||||
<img class="QRcode-img">
|
||||
<div class="QRcode-name">26fall香港申请群</div>
|
||||
<div class="hint">微信扫码添加</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<a class="item flexacenter" href="https://fang.gter.net/" target="_blank">
|
||||
<div class="text">寄托香港租房</div>
|
||||
<img class="icon" src="./img/arrows-circle-red.svg" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="bottom flexacenter">
|
||||
<div class="data flexacenter">
|
||||
共
|
||||
<div class="sum">{{ count }}</div>
|
||||
个帖子
|
||||
</div>
|
||||
<div class="btn flexcenter">
|
||||
<img class="icon" src="./img/pen-icon.png" />
|
||||
<div class="text">发帖</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="matter-content flex1">
|
||||
<div class="info-box flexflex">
|
||||
<img v-if="info.icon" class="img" :src="info.icon" />
|
||||
<div class="right flex1">
|
||||
<div class="title">{{ info.name }}</div>
|
||||
<div class="link flexacenter">
|
||||
<div class="item flexacenter" v-for="item in 4" :key="item">
|
||||
<div class="text">申港超强资料包</div>
|
||||
<img class="icon" src="./img/arrows-circle-red.svg" />
|
||||
</div>
|
||||
<div class="details-box flexflex">
|
||||
<div class="content-box flex1">
|
||||
<div class="selectives-box" v-if="handpickList.length > 0">
|
||||
<div class="head-top flexcenter">
|
||||
<img class="icon" src="https://app.gter.net/image/miniApp/offer/handpick-icon.png" />
|
||||
<div class="text">精选</div>
|
||||
</div>
|
||||
<div class="bottom flexacenter">
|
||||
<div class="data flexacenter">
|
||||
共
|
||||
<div class="sum">{{ count }}</div>
|
||||
个帖子
|
||||
</div>
|
||||
<div class="btn flexcenter">
|
||||
<img class="icon" src="./img/pen-icon.png" />
|
||||
<div class="text">发帖</div>
|
||||
</div>
|
||||
<div class="list flexflex">
|
||||
<a class="item flexacenter" v-for="(item, index) in handpickList" :key="index" :href="'http://14.22.79.19:9551/?tpl=forum/details&uniqid=' + item.uniqid" target="_blank">
|
||||
<div class="dot"></div>
|
||||
<div class="text one-line-display">{{ item.title }}</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="red-tag" v-if="tagsList.length > 0">
|
||||
<div class="title">
|
||||
热门标签
|
||||
<img class="icon" src="./img/triangle-red.svg" />
|
||||
</div>
|
||||
<div class="list">
|
||||
<div class="item flexacenter" v-for="(item, index) in tagsList" :key="index">{{ item.tagname }}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="list-box">
|
||||
<item-forum v-for="(item, index) in list" :key="index" :itemdata="item"></item-forum>
|
||||
</div>
|
||||
</div>
|
||||
<div class="details-box flexflex">
|
||||
<div class="content-box flex1">
|
||||
<div class="selectives-box" v-if="handpickList.length > 0">
|
||||
<div class="head-top flexcenter">
|
||||
<img class="icon" src="https://app.gter.net/image/miniApp/offer/handpick-icon.png" />
|
||||
<div class="text">精选</div>
|
||||
</div>
|
||||
<div class="list flexflex">
|
||||
<a class="item flexacenter" v-for="(item, index) in handpickList" :key="index" :href="'http://14.22.79.19:9551/?tpl=forum/details&uniqid=' + item.uniqid" target="_blank">
|
||||
<div class="dot"></div>
|
||||
<div class="text one-line-display">{{ item.title }}</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<a class="adv" href="" 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="" target="_blank">
|
||||
<img class="adv-icon" src="https://o.x-php.com/bbs/common/cf/1709075xdbbbvjd8cbxvdd.jpg" alt="26Fall祈福,求offer得offer!" />
|
||||
</a>
|
||||
|
||||
<div class="red-tag" v-if="tagsList.length > 0">
|
||||
<div class="title">
|
||||
热门标签
|
||||
<img class="icon" src="./img/triangle-red.svg" />
|
||||
</div>
|
||||
<div class="list">
|
||||
<div class="item flexacenter" v-for="(item, index) in tagsList" :key="index">{{ item.tagname }}</div>
|
||||
<!-- 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="./img/offer-index-icon.png" />
|
||||
<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="./img/right-arrow-black.svg" />
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="list-box">
|
||||
<item-forum v-for="(item, index) in list" :key="index" :itemdata="item"></item-forum>
|
||||
<div class="box">
|
||||
<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" style="position: relative" href="https://offer.gter.net/post" target="_blank" v-cloak>
|
||||
<img class="add-icon" src="./img/add-btn-black.svg" />
|
||||
<div>报Offer</div>
|
||||
<div v-if="realname == 0 && userInfo.uin > 0" class="open-attest-btn" @click.prevent="openAttest"></div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div >
|
||||
<a class="adv" href="" 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="" 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="./img/offer-index-icon.png" />
|
||||
<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="./img/right-arrow-black.svg" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="box">
|
||||
<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" style="position: relative" href="https://offer.gter.net/post" target="_blank" v-cloak>
|
||||
<img class="add-icon" src="./img/add-btn-black.svg" />
|
||||
<div>报Offer</div>
|
||||
<div v-if="realname == 0 && userInfo.uin > 0" class="open-attest-btn" @click.prevent="openAttest"></div>
|
||||
</a>
|
||||
<!-- 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="./img/vote-index-icon.png" />
|
||||
<div class="title">投票</div>
|
||||
</div>
|
||||
<a class="more flexacenter" target="_blank" href="https://vote.gter.net">
|
||||
<span>more</span>
|
||||
<img class="more-icon" src="./img/right-arrow-black.svg" />
|
||||
</a>
|
||||
</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="./img/vote-index-icon.png" />
|
||||
<div class="title">投票</div>
|
||||
</div>
|
||||
<a class="more flexacenter" target="_blank" href="https://vote.gter.net">
|
||||
<span>more</span>
|
||||
<img class="more-icon" src="./img/right-arrow-black.svg" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="box">
|
||||
<a class="item flexflex" v-cloak v-for="item in vote" :key="item" target="_blank" :href="'https://vote.gter.net/details/' + item['uniqid']">
|
||||
<div class="name one-line-display">{{item['title']}}</div>
|
||||
<div class="brief">{{ item['message'] }}</div>
|
||||
</a>
|
||||
<a class="add-btn flexcenter" style="position: relative" v-cloak target="_blank" href="https://vote.gter.net/publish">
|
||||
<img class="add-icon" src="./img/add-btn-black.svg" />
|
||||
<div>发起投票</div>
|
||||
<div v-if="realname == 0 && userInfo.uin > 0" class="open-attest-btn" @click.prevent="openAttest"></div>
|
||||
</a>
|
||||
</div>
|
||||
<div class="box">
|
||||
<a class="item flexflex" v-cloak v-for="item in vote" :key="item" target="_blank" :href="'https://vote.gter.net/details/' + item['uniqid']">
|
||||
<div class="name one-line-display">{{item['title']}}</div>
|
||||
<div class="brief">{{ item['message'] }}</div>
|
||||
</a>
|
||||
<a class="add-btn flexcenter" style="position: relative" v-cloak target="_blank" href="https://vote.gter.net/publish">
|
||||
<img class="add-icon" src="./img/add-btn-black.svg" />
|
||||
<div>发起投票</div>
|
||||
<div v-if="realname == 0 && userInfo.uin > 0" class="open-attest-btn" @click.prevent="openAttest"></div>
|
||||
</a>
|
||||
</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="./img/mj-index-icon.png" />
|
||||
<div class="title">面经</div>
|
||||
</div>
|
||||
<a class="more flexacenter" href="https://interviewexperience.gter.net/" target="_blank">
|
||||
<span>more</span>
|
||||
<img class="more-icon" src="./img/right-arrow-black.svg" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="box">
|
||||
<a class="item flexflex" v-cloak v-for="(item,index) in interviewexperience" :key="item" :href="'https://interviewexperience.gter.net/details/' + item['uniqid']" target="_blank">
|
||||
<div class="school one-line-display">{{ item.data['schoolname'] }}</div>
|
||||
<div class="major one-line-display" v-if="item.data['profession']">{{ item.data['profession'] }}</div>
|
||||
<div class="info">
|
||||
<img class="icon" :src="item.user['avatar']" />
|
||||
<span class="text">{{ item['content'] }}</span>
|
||||
</div>
|
||||
</a>
|
||||
<a class="add-btn flexcenter" style="position: relative" href="https://interviewexperience.gter.net/publish" target="_blank" v-cloak>
|
||||
<img class="add-icon" src="./img/add-btn-black.svg" />
|
||||
<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>
|
||||
|
||||
<!-- 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="./img/mj-index-icon.png" />
|
||||
<div class="title">面经</div>
|
||||
</div>
|
||||
<a class="more flexacenter" href="https://interviewexperience.gter.net/" target="_blank">
|
||||
<span>more</span>
|
||||
<img class="more-icon" src="./img/right-arrow-black.svg" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="box">
|
||||
<a class="item flexflex" v-cloak v-for="(item,index) in interviewexperience" :key="item" :href="'https://interviewexperience.gter.net/details/' + item['uniqid']" target="_blank">
|
||||
<div class="school one-line-display">{{ item.data['schoolname'] }}</div>
|
||||
<div class="major one-line-display" v-if="item.data['profession']">{{ item.data['profession'] }}</div>
|
||||
<div class="info">
|
||||
<img class="icon" :src="item.user['avatar']" />
|
||||
<span class="text">{{ item['content'] }}</span>
|
||||
</div>
|
||||
</a>
|
||||
<a class="add-btn flexcenter" style="position: relative" href="https://interviewexperience.gter.net/publish" target="_blank" v-cloak>
|
||||
<img class="add-icon" src="./img/add-btn-black.svg" />
|
||||
<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>
|
||||
<script src="./js/axios.min.js"></script>
|
||||
<script src="./js/public.js"></script>
|
||||
<script type="module" src="./js/section.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
</div>
|
||||
<script src="./js/axios.min.js"></script>
|
||||
<script src="./js/public.js"></script>
|
||||
<script type="module" src="./js/section.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user