diff --git a/component/head-top/head-top.js b/component/head-top/head-top.js index 4b6b498..61874ab 100644 --- a/component/head-top/head-top.js +++ b/component/head-top/head-top.js @@ -42,8 +42,10 @@ export const headTop = defineComponent({ redirectToExternalWebsite("/search/" + searchText); }; - return { state, signIn, input, defaultSearchText, goSearch }; + let pitchState = ref(false); + + return { pitchState, state, signIn, input, defaultSearchText, goSearch }; }, - template: `
签到领寄托币
GO
已签到,明天再来
`, + template: `
签到领寄托币
GO
已签到,明天再来
`, }); diff --git a/component/head-top/head-top.txt b/component/head-top/head-top.txt index 8a29215..d2496b1 100644 --- a/component/head-top/head-top.txt +++ b/component/head-top/head-top.txt @@ -3,26 +3,26 @@
-
- +
+
- - - + + + 签到领寄托币
- + GO
- - - + + +
- + 已签到,明天再来
\ No newline at end of file diff --git a/component/hot-tag/hot-tag.js b/component/hot-tag/hot-tag.js index d836ff8..b98b1d6 100644 --- a/component/hot-tag/hot-tag.js +++ b/component/hot-tag/hot-tag.js @@ -25,5 +25,5 @@ export const hotTag = defineComponent({ components: {}, - template: `
热门标签
{{ item.tagname }}
`, + template: `
热门标签
{{ item.tagname }}
`, }); diff --git a/component/hot-tag/hot-tag.txt b/component/hot-tag/hot-tag.txt index 9ed294e..7c8c32a 100644 --- a/component/hot-tag/hot-tag.txt +++ b/component/hot-tag/hot-tag.txt @@ -1,6 +1,6 @@
- + 热门标签
diff --git a/component/item-bottom/item-bottom.js b/component/item-bottom/item-bottom.js index 925a4be..27dc297 100644 --- a/component/item-bottom/item-bottom.js +++ b/component/item-bottom/item-bottom.js @@ -78,7 +78,7 @@ export const itemBottom = defineComponent({ const token = item.value.token || ""; - ajax(`https://api.gter.net/v2/api/forum/postTopicCollect`, { + ajax(`/v2/api/forum/postTopicCollect`, { token, }) .then((res) => { diff --git a/component/item-forum/item-forum.js b/component/item-forum/item-forum.js index 1f6425e..d1a9be1 100644 --- a/component/item-forum/item-forum.js +++ b/component/item-forum/item-forum.js @@ -12,6 +12,10 @@ export const itemForum = defineComponent({ type: Object, default: () => {}, }, + page: { + type: String, + default: "", + }, }, setup(props) { @@ -29,5 +33,5 @@ export const itemForum = defineComponent({ itemHead, }, - template: ``, + template: ``, }); diff --git a/component/item-forum/item-forum.txt b/component/item-forum/item-forum.txt index 62d6b7c..194f85c 100644 --- a/component/item-forum/item-forum.txt +++ b/component/item-forum/item-forum.txt @@ -1,8 +1,8 @@ \ No newline at end of file diff --git a/component/item-head/item-head.js b/component/item-head/item-head.js index feb4675..45836bc 100644 --- a/component/item-head/item-head.js +++ b/component/item-head/item-head.js @@ -1,6 +1,6 @@ // my-component.js // 引入全局 Vue 对象(因在 HTML 中通过 script 引入,Vue 已挂载到 window) -const { defineComponent, ref, provide, onMounted } = Vue; +const { defineComponent, ref, provide, onMounted, inject } = Vue; import { report } from "../report/report.js"; // 定义组件(直接使用模板) @@ -11,6 +11,11 @@ export const itemHead = defineComponent({ type: Object, default: () => {}, }, + + page: { + type: String, + default: "", + }, }, setup(props) { @@ -89,20 +94,24 @@ export const itemHead = defineComponent({ }); }; - // let cancelOperate = inject("cancelOperate"); - + // let handleDelete = inject("handleDelete"); + let itemHead = ref(null); // 删除 const deleteItem = () => { const target = item.value; - console.log("deleteItem"); + console.log("deleteItem", target, target.token); + managerDelete(target.token) + .then(() => { + const targetNode = itemHead.value; + if (!targetNode) return; - // managerDelete(target.token) - // .then(() => { - // cancelOperate("like", token); - // }) - // .finally(() => { - // cutShow(); - // }); + const parentItemBox = targetNode.parentElement; + if (parentItemBox?.classList.contains("item-box")) parentItemBox.style.display = "none"; + + }) + .finally(() => { + cutShow(); + }); }; // 编辑 @@ -116,12 +125,44 @@ export const itemHead = defineComponent({ redirectToExternalWebsite(`/space?uin=${uin}&uid=${uid}`); }; - return { edit, deleteItem, goPersonalHomepage, reportState, cutShow, show, item, timestamp, sectionn, tags, ismanager, report, hide, recommend, essence }; + const openedit = (type) => { + let url = ``; + if (type == "offer") url = `https://offer.gter.net/post/modify?id=${item.value.token}`; + else if (type == "offer_summary") url = `https://offer.gter.net/post/summary`; + redirectToExternalWebsite(url); + }; + + const anonymousState = ref(false); + const cutAnonymous = () => { + anonymousState.value = !anonymousState.value; + }; + + const cutAnonymousState = (state) => { + console.log("state", state); + const target = item.value; + ajax("/v2/api/forum/postTopicAnonymousStatus", { + token: target.token, + anonymous: state, + }) + .then((res) => { + console.log("res", res); + if (res.code != 200) return; + const data = res.data || {}; + target.anonymous = data.anonymous || 0; + item.value = target; + creationAlertBox("success", res.message || "操作成功"); + }) + .finally(() => { + cutAnonymous(); + }); + }; + + return { itemHead, cutAnonymousState, cutAnonymous, anonymousState, openedit, edit, deleteItem, goPersonalHomepage, reportState, cutShow, show, item, timestamp, sectionn, tags, ismanager, report, hide, recommend, essence }; }, components: { report, }, - template: `
{{ item?.user?.nickname || item.nickname || "匿名用户" }}
{{ timestamp }}
{{ item.views }}
举报
`, + template: `
{{ item?.user?.nickname || item.nickname || "匿名用户" }}
{{ timestamp }}
公开 匿名
{{ item.views }}
举报
删除
`, }); diff --git a/component/item-head/item-head.txt b/component/item-head/item-head.txt index 82b5e31..5275f19 100644 --- a/component/item-head/item-head.txt +++ b/component/item-head/item-head.txt @@ -1,4 +1,4 @@ -
+
{{ item?.user?.nickname || item.nickname || "匿名用户" }}
@@ -8,6 +8,31 @@
{{ timestamp }}
+
+ +
+ +
+
+ 公开 + 匿名 +
+ + + +
+ +
{{ item.views }}
@@ -31,6 +56,7 @@
编辑
删除
+
删除
diff --git a/component/item-mj/item-mj.js b/component/item-mj/item-mj.js index ddea129..4545afe 100644 --- a/component/item-mj/item-mj.js +++ b/component/item-mj/item-mj.js @@ -12,6 +12,10 @@ export const itemMj = defineComponent({ type: Object, default: () => {}, }, + page: { + type: String, + default: "", + }, }, setup(props) { @@ -25,5 +29,5 @@ export const itemMj = defineComponent({ itemHead, }, - template: ``, + template: ``, }); diff --git a/component/item-mj/item-mj.txt b/component/item-mj/item-mj.txt index 16ce65c..02116c3 100644 --- a/component/item-mj/item-mj.txt +++ b/component/item-mj/item-mj.txt @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/component/item-offer/item-offer.js b/component/item-offer/item-offer.js index 79cb7d8..83564ee 100644 --- a/component/item-offer/item-offer.js +++ b/component/item-offer/item-offer.js @@ -12,64 +12,16 @@ export const itemOffer = defineComponent({ type: Object, default: () => {}, }, + page: { + type: String, + default: "", + }, }, setup(props) { let item = ref({ ...props.itemdata }); item.value["url"] = "/details/" + item.value.uniqid; - // let isLogin = ref(true); - // let realname = ref(1); // 是否已经实名 - // let userInfoWin = ref({ - // authority: ["comment.edit", "comment.delete", "offercollege.hide", "offersummary.hide", "mj.hide", "topic:manager", "topic:hide"], - // avatar: "https://nas.gter.net:9008/avatar/97K4EWIMLrsbGTWXslC2WFVSEKWOikN42jDKLNjtax7HL4xtfMOJSdU9oWFhY2E~/middle?random=1761733169", - // groupid: 3, - // nickname: "肖荣豪", - // realname: 1, - // token: "01346a38444d71aaadb3adad52b52c39", - // uid: 500144, - // uin: 4238049, - // }); - - // let permissions = ref([]); - - // const getUserInfoWin = () => { - // const checkUser = () => { - // const user = window.userInfoWin; - // if (!user) return; - // document.removeEventListener("getUser", checkUser); - // realname.value = user.realname; - // userInfoWin.value = user; - // if (user?.uin > 0 || user?.uid > 0) isLogin.value = true; - // }; - // document.addEventListener("getUser", checkUser); - // }; - - // const openAttest = () => { - // const handleAttestClose = () => { - // document.removeEventListener("closeAttest", handleAttestClose); - // realname.value = window.userInfoWin?.realname || 0; - // }; - // // 启动认证流程时添加监听 - // document.addEventListener("closeAttest", handleAttestClose); - // loadAttest(2); - // }; - - // // 跳转登录 - // const goLogin = () => { - // if (typeof window === "undefined") return; - // if (window["userInfoWin"] && Object.keys(window["userInfoWin"]).length !== 0) { - // if (window["userInfoWin"]["uid"]) isLogin.value = true; - // else ajax_login(); - // } else ajax_login(); - // }; - - // provide("isLogin", isLogin); - // provide("userInfoWin", userInfoWin); - // provide("realname", realname); - // provide("openAttest", openAttest); - // provide("goLogin", goLogin); - return { item }; }, @@ -78,5 +30,5 @@ export const itemOffer = defineComponent({ itemHead, }, - template: ``, + template: ``, }); diff --git a/component/item-offer/item-offer.txt b/component/item-offer/item-offer.txt index 46064d8..5ec8ffa 100644 --- a/component/item-offer/item-offer.txt +++ b/component/item-offer/item-offer.txt @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/component/item-summary/item-summary.js b/component/item-summary/item-summary.js index 5e63e34..f788bd8 100644 --- a/component/item-summary/item-summary.js +++ b/component/item-summary/item-summary.js @@ -12,6 +12,10 @@ export const itemSummary = defineComponent({ type: Object, default: () => {}, }, + page: { + type: String, + default: "", + }, }, setup(props) { @@ -26,5 +30,5 @@ export const itemSummary = defineComponent({ itemHead, }, - template: ``, + template: ``, }); diff --git a/component/item-summary/item-summary.txt b/component/item-summary/item-summary.txt index c4f84d3..5a40b02 100644 --- a/component/item-summary/item-summary.txt +++ b/component/item-summary/item-summary.txt @@ -1,5 +1,5 @@
- +
\ No newline at end of file diff --git a/component/item-tenement/item-tenement.js b/component/item-tenement/item-tenement.js index 3a27555..041e206 100644 --- a/component/item-tenement/item-tenement.js +++ b/component/item-tenement/item-tenement.js @@ -12,6 +12,10 @@ export const itemTenement = defineComponent({ type: Object, default: () => {}, }, + page: { + type: String, + default: "", + }, }, setup(props) { @@ -84,5 +88,5 @@ export const itemTenement = defineComponent({ itemHead, }, - template: `
{{ item }}
{{ item }}
{{ item.subject }}
{{ item.location || '' }}
HK$
{{ item.rent }}
/月
[ 租期{{ item.rentalduration }} ]
`, + template: `
{{ item }}
{{ item }}
{{ item.subject }}
{{ item.location || '' }}
HK$
{{ item.rent }}
/月
[ 租期{{ item.rentalduration }} ]
`, }); diff --git a/component/item-tenement/item-tenement.txt b/component/item-tenement/item-tenement.txt index c91840f..bd93808 100644 --- a/component/item-tenement/item-tenement.txt +++ b/component/item-tenement/item-tenement.txt @@ -1,5 +1,5 @@
- +
@@ -33,5 +33,5 @@ - +
\ No newline at end of file diff --git a/component/item-vote/item-vote.js b/component/item-vote/item-vote.js index 0b67c39..ced9927 100644 --- a/component/item-vote/item-vote.js +++ b/component/item-vote/item-vote.js @@ -12,11 +12,62 @@ export const itemVote = defineComponent({ type: Object, default: () => {}, }, + page: { + type: String, + default: "", + }, }, setup(props) { + // 处理 截止时间 + const handleDeadline = (dateTimeStamp = "") => { + if (typeof dateTimeStamp == "number") dateTimeStamp = dateTimeStamp ? dateTimeStamp * 1000 : null; + if (typeof dateTimeStamp == "string" && dateTimeStamp.match(/^\d{4}-\d{2}-\d{2}$/)) dateTimeStamp += " 23:59:59"; + const timestamp = new Date(dateTimeStamp.replace(/-/g, "/")).getTime(); + const now = Date.now(); + const diffValue = timestamp - now; + + if (diffValue < 0) return null; + + const units = [ + { + value: 24 * 60 * 60 * 1000, + unit: "天", + }, + { + value: 60 * 60 * 1000, + unit: "小时", + }, + { + value: 60 * 1000, + unit: "分钟", + }, + { + value: 1000, + unit: "秒", + }, + ]; + + for (const { value, unit } of units) { + if (diffValue >= value) { + return { + num: Math.round(diffValue / value), + unit, + }; + } + } + return { + num: 0, + unit: "秒", + }; + }; + let item = ref({ ...props.itemdata }); - item.value['url'] = 'https://vote.gter.net/details/' + item.value.uniqid; + item.value["time"] = handleDeadline(item.value.data.deadline); + item.value["url"] = "/details/" + item.value.uniqid; + const option = item.value.data.option || []; + item.value["isvote"] = option.some((item) => item.selected == 1); + return { item }; }, @@ -25,5 +76,5 @@ export const itemVote = defineComponent({ itemHead, }, - template: ``, + template: ``, }); diff --git a/component/item-vote/item-vote.txt b/component/item-vote/item-vote.txt index 45bb721..929b9d2 100644 --- a/component/item-vote/item-vote.txt +++ b/component/item-vote/item-vote.txt @@ -1,5 +1,5 @@
- +
\ No newline at end of file diff --git a/component/latest-list/latest-list.js b/component/latest-list/latest-list.js index d54df9b..303c070 100644 --- a/component/latest-list/latest-list.js +++ b/component/latest-list/latest-list.js @@ -113,5 +113,5 @@ export const latestList = defineComponent({ itemHead, }, - template: `
最新
精华阅读
最新
精华
`, + template: `
最新
精华阅读
最新
精华
`, }); diff --git a/component/latest-list/latest-list.txt b/component/latest-list/latest-list.txt index 4b194a9..abdabba 100644 --- a/component/latest-list/latest-list.txt +++ b/component/latest-list/latest-list.txt @@ -20,7 +20,7 @@
-
{{ item.title }}
+
{{ item.title || item.content }}
@@ -31,7 +31,7 @@
-
{{ item.title }}
+
{{ item.title || item.content }}
diff --git a/component/load-box/load-box.js b/component/load-box/load-box.js new file mode 100644 index 0000000..6ed35e2 --- /dev/null +++ b/component/load-box/load-box.js @@ -0,0 +1,19 @@ +// my-component.js +// 引入全局 Vue 对象(因在 HTML 中通过 script 引入,Vue 已挂载到 window) +const { defineComponent, ref, onMounted, onUnmounted } = Vue; + +// 定义组件(直接使用模板) +export const loadBox = defineComponent({ + name: "load-box", + props: { + loading: { + type: String, + default: "", + }, + }, + setup(props) { + return { }; + }, + + template: `
加载中
`, +}); diff --git a/css/homepage-other.css b/css/homepage-other.css index 7cef003..86486fb 100644 --- a/css/homepage-other.css +++ b/css/homepage-other.css @@ -209,6 +209,7 @@ border-radius: 10px; padding-left: 95px; padding-right: 40px; + padding-bottom: 50px; } #homepage-other .matter .matter-content .list-area .classify { padding-top: 39px; @@ -254,7 +255,6 @@ border: 1px solid #e9eef2; border-radius: 10px; flex-direction: column; - margin-bottom: 50px; } #homepage-other .matter .matter-content .list-area .empty .empty-icon { width: 80px; diff --git a/css/homepage-other.less b/css/homepage-other.less index 90d85ec..4f57e10 100644 --- a/css/homepage-other.less +++ b/css/homepage-other.less @@ -40,7 +40,7 @@ padding-top: 39px; padding-bottom: 40px; margin-right: 20px; - + .avatar { width: 120px; height: 120px; @@ -243,6 +243,7 @@ border-radius: 10px; padding-left: 95px; padding-right: 40px; + padding-bottom: 50px; .classify { padding-top: 39px; @@ -296,7 +297,7 @@ border: 1px solid rgba(233, 238, 242, 1); border-radius: 10px; flex-direction: column; - margin-bottom: 50px; + // margin-bottom: 50px; .empty-icon { width: 80px; diff --git a/css/index.css b/css/index.css index 4ba1997..5bc17de 100644 --- a/css/index.css +++ b/css/index.css @@ -15,7 +15,10 @@ #appIndex .header-content-box .header-content-left .adv-list .adv-item:not(:last-child) { margin-right: 12px; } -#appIndex .header-content-box .header-content-left .adv-list .adv-item .adv-img { +#appIndex .header-content-box .header-content-left .adv-list .adv-item a { + display: block; +} +#appIndex .header-content-box .header-content-left .adv-list .adv-item img { width: 468px; height: 60px; border-radius: 10px; @@ -283,13 +286,16 @@ height: 16px; margin-right: 6px; } -#appIndex .header-content-box .header-content-right .adv-broadside { +#appIndex .header-content-box .header-content-right .adv { width: 240px; height: 140px; margin-bottom: 10px; display: block; } -#appIndex .header-content-box .header-content-right .adv-broadside .adv-broadside-img { +#appIndex .header-content-box .header-content-right .adv a { + display: block; +} +#appIndex .header-content-box .header-content-right .adv img { width: 240px; height: 140px; border-radius: 10px; diff --git a/css/index.less b/css/index.less index 0a8bc30..258954c 100644 --- a/css/index.less +++ b/css/index.less @@ -18,7 +18,10 @@ &:not(:last-child) { margin-right: 12px; } - .adv-img { + a { + display: block; + } + img { width: 468px; height: 60px; border-radius: 10px; @@ -340,12 +343,15 @@ } } - .adv-broadside { + .adv { width: 240px; height: 140px; margin-bottom: 10px; display: block; - .adv-broadside-img { + a { + display: block; + } + img { width: 240px; height: 140px; border-radius: 10px; diff --git a/css/public.css b/css/public.css index 1d120d8..ce9da62 100644 --- a/css/public.css +++ b/css/public.css @@ -86,6 +86,59 @@ body { font-size: 13px; color: #aaaaaa; } +.item-box .item-head .anonymous-box { + background-color: #f2f2f2; + border-radius: 30px; + font-size: 14px; + color: #333; + height: 28px; + padding: 0 10px; + cursor: pointer; + margin-right: 15px; +} +.item-box .item-head .circlePen { + border-radius: 50%; + background-color: #f2f2f2; + margin-right: 10px; + width: 28px; + height: 28px; + cursor: pointer; +} +.item-box .item-head .circlePen .icon { + width: 20px; + height: 20px; +} +.item-box .item-head .isPublicityBox { + width: 120px; + background-color: #fff; + position: absolute; + top: 34px; + left: 0; + border-radius: 8px; + box-shadow: 0px 0px 9px rgba(0, 0, 0, 0.2); + z-index: 89; +} +.item-box .item-head .isPublicityBox .isPublicity-item { + height: 40px; + line-height: 40px; + text-align: center; + padding: 0 10px; + color: #555555; + font-size: 16px; + display: flex; + justify-content: space-between; + align-items: center; + cursor: pointer; +} +.item-box .item-head .isPublicityBox .isPublicity-item:first-child { + border-bottom: 1px dotted #e3e3e3; +} +.item-box .item-head .isPublicityBox .isPublicity-item.green { + color: #26d79f; +} +.item-box .item-head .isPublicityBox .isPublicity-item .isPublicityIcon { + width: 12px; +} .item-box .item-head .view { font-size: 12px; color: #aaaaaa; @@ -856,7 +909,7 @@ body { .side-box .box { width: 272px; background-color: #ffffff; - border-radius: 8px; + border-radius: 0; } .side-box.thread-side-box .box .item { padding-top: 16px; @@ -1021,7 +1074,7 @@ body { margin-right: 10px; } .side-box.newest-side-box .box .item .dot.dot-green { - background-image: url(https://app.gter.net/image/gter/forum/assets/forum/dot-green.svg); + background-image: url(/img/dot-green.svg); background-repeat: no-repeat; } .side-box.newest-side-box .box .item .text { @@ -1056,7 +1109,7 @@ body { width: 6px; height: 6px; margin-right: 10px; - background-image: url(https://app.gter.net/image/gter/forum/assets/forum/dot-blue.svg); + background-image: url(/img/dot-blue.svg); background-repeat: no-repeat; } .side-box.essence-side-box .box .item .text { @@ -1382,6 +1435,10 @@ body { padding: 0 15px; justify-content: space-between; margin-right: 20px; + transition: all 0.3s; +} +.head-top .input-box.pitch { + border-color: #000; } .head-top .input-box .input { border: none; @@ -1392,7 +1449,7 @@ body { .head-top .input-box .icon { width: 18px; height: 18px; - margin-left: 15rpx; + margin-left: 15px; cursor: pointer; } .head-top .sign-in { @@ -1593,3 +1650,44 @@ td { .templateValue { display: none; } +.list-load-box { + width: 100%; + height: 0; + background-color: #ffffff; + border: 0 solid #e9eef2; + border-radius: 10px; + flex-direction: column; + transition: all 0.3s ease-in-out; + overflow: hidden; +} +.list-load-box.show { + height: 100px; + border-width: 1px; +} +.list-load-box.show .list-load-icon { + width: 30px; + height: 30px; +} +.list-load-box.show .list-load-text { + font-size: 14px; +} +.list-load-box .list-load-icon { + width: 0; + height: 0; + animation: loadingRotate 1s linear infinite; + transition: all 0.3s ease-in-out; +} +.list-load-box .list-load-text { + color: #999999; + font-size: 0; + margin-top: 6px; + transition: all 0.3s ease-in-out; +} +@keyframes loadingRotate { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/css/public.less b/css/public.less index b80f50a..9511b97 100644 --- a/css/public.less +++ b/css/public.less @@ -102,6 +102,67 @@ body { color: #aaaaaa; } + .anonymous-box { + background-color: #f2f2f2; + border-radius: 30px; + font-size: 14px; + color: #333; + height: 28px; + padding: 0 10px; + cursor: pointer; + margin-right: 15px; + } + + .circlePen { + border-radius: 50%; + background-color: #f2f2f2; + margin-right: 10px; + width: 28px; + height: 28px; + cursor: pointer; + + .icon { + width: 20px; + height: 20px; + } + } + + .isPublicityBox { + width: 120px; + background-color: #fff; + position: absolute; + top: 34px; + left: 0; + border-radius: 8px; + box-shadow: 0px 0px 9px rgba(0, 0, 0, 0.2); + z-index: 89; + + .isPublicity-item { + height: 40px; + line-height: 40px; + text-align: center; + padding: 0 10px; + color: #555555; + font-size: 16px; + display: flex; + justify-content: space-between; + align-items: center; + cursor: pointer; + + &:first-child { + border-bottom: 1px dotted #e3e3e3; + } + + &.green { + color: #26d79f; + } + + .isPublicityIcon { + width: 12px; + } + } + } + .view { font-size: 12px; color: #aaaaaa; @@ -1021,7 +1082,7 @@ body { .side-box .box { width: 272px; background-color: #ffffff; - border-radius: 8px; + border-radius: 0; } .side-box.thread-side-box .box .item { @@ -1220,7 +1281,7 @@ body { } .side-box.newest-side-box .box .item .dot.dot-green { - background-image: url(https://app.gter.net/image/gter/forum/assets/forum/dot-green.svg); + background-image: url(/img/dot-green.svg); background-repeat: no-repeat; } @@ -1263,7 +1324,7 @@ body { width: 6px; height: 6px; margin-right: 10px; - background-image: url(https://app.gter.net/image/gter/forum/assets/forum/dot-blue.svg); + background-image: url(/img/dot-blue.svg); background-repeat: no-repeat; } @@ -1650,6 +1711,11 @@ body { padding: 0 15px; justify-content: space-between; margin-right: 20px; + transition: all 0.3s; + + &.pitch { + border-color: #000; + } .input { border: none; @@ -1661,7 +1727,7 @@ body { .icon { width: 18px; height: 18px; - margin-left: 15rpx; + margin-left: 15px; cursor: pointer; } } @@ -1882,7 +1948,6 @@ td { height: 8px; } - .t_r { -moz-border-radius: 0 8px 0 0; -webkit-border-radius: 0 8px 0 0; @@ -1891,4 +1956,53 @@ td { .templateValue { display: none; -} \ No newline at end of file +} + +.list-load-box { + width: 100%; + height: 0; + background-color: #ffffff; + border: 0 solid #e9eef2; + border-radius: 10px; + flex-direction: column; + transition: all 0.3s ease-in-out; + overflow: hidden; + + &.show { + height: 100px; + border-width: 1px; + + .list-load-icon { + width: 30px; + height: 30px; + } + .list-load-text { + font-size: 14px; + } + } + + .list-load-icon { + width: 0; + height: 0; + + animation: loadingRotate 1s linear infinite; + transition: all 0.3s ease-in-out; + } + + .list-load-text { + color: #999999; + font-size: 0; + + margin-top: 6px; + transition: all 0.3s ease-in-out; + } +} + +@keyframes loadingRotate { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} diff --git a/img/coin-bj.svg b/img/coin-bj.svg new file mode 100644 index 0000000..aeb83e0 --- /dev/null +++ b/img/coin-bj.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/img/coin-icon.png b/img/coin-icon.png new file mode 100644 index 0000000..bd5a8dc Binary files /dev/null and b/img/coin-icon.png differ diff --git a/img/dot-blue.svg b/img/dot-blue.svg new file mode 100644 index 0000000..199aaf4 --- /dev/null +++ b/img/dot-blue.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/dot-green.svg b/img/dot-green.svg new file mode 100644 index 0000000..165857d --- /dev/null +++ b/img/dot-green.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/load-icon.svg b/img/load-icon.svg new file mode 100644 index 0000000..e99d97b --- /dev/null +++ b/img/load-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/petal1.png b/img/petal1.png new file mode 100644 index 0000000..31433dc Binary files /dev/null and b/img/petal1.png differ diff --git a/img/petal2.png b/img/petal2.png new file mode 100644 index 0000000..9359c8b Binary files /dev/null and b/img/petal2.png differ diff --git a/img/petal3.png b/img/petal3.png new file mode 100644 index 0000000..48dd5d8 Binary files /dev/null and b/img/petal3.png differ diff --git a/img/sign-go.svg b/img/sign-go.svg new file mode 100644 index 0000000..3aa3524 --- /dev/null +++ b/img/sign-go.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/sign-icon.png b/img/sign-icon.png new file mode 100644 index 0000000..49f3b3d Binary files /dev/null and b/img/sign-icon.png differ diff --git a/img/sign-in-bj.svg b/img/sign-in-bj.svg new file mode 100644 index 0000000..ca5b43b --- /dev/null +++ b/img/sign-in-bj.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/u1829.svg b/img/u1829.svg new file mode 100644 index 0000000..8b45e04 --- /dev/null +++ b/img/u1829.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/index.html b/index.html index 650f37d..7996458 100644 --- a/index.html +++ b/index.html @@ -1,273 +1,278 @@ - - - - 论坛首页 - - - - - - -
- + + + + 论坛首页 + + + + + -
-
- - -
-
-
- -
话题
-
-
-
{{ ongoingbj.title }}
-
{{ ongoingbj.description }}
-
-
-
{{ ongoingbj.comments }}
-
人正在讨论
-
-
-
- -
+ +
+ + +
+
+ + +
+
+
+ +
话题
+
+
+
{{ ongoingbj.title }}
+
{{ ongoingbj.description }}
+
+
+
{{ ongoingbj.comments }}
+
人正在讨论
+
+
+
+
-
- - -
- - 26Fall祈福,求offer得offer! - -
- + -
-
-
我要发帖
- -
- - - +
+ + 26Fall祈福,求offer得offer! - -
-
-
-
{{ item.title }}
-
{{ item.subtitle }}
-
- -
微信扫码
-
-
+ - - -
-
- -
- -
论坛版块
-
- -
-
- +
+
+
我要发帖
+
-