diff --git a/component/bi/bi.js b/component/bi/bi.js index bd5f3b5..4275516 100644 --- a/component/bi/bi.js +++ b/component/bi/bi.js @@ -219,6 +219,9 @@ class BiCard extends HTMLElement { if (xhr.readyState === 4 && xhr.status === 200) { let response = xhr.response; resolve(response); + } else if (xhr.status === 401) { + if (typeof ajax_login === "function") ajax_login(); + else window.open("https://passport.gter.net/?referer=" + escape(location.href), "_self"); } }; @@ -241,6 +244,9 @@ class BiCard extends HTMLElement { if (xhr.readyState === 4 && xhr.status === 200) { let response = xhr.response; resolve(JSON.parse(response)); + } else if (xhr.status === 401) { + if (typeof ajax_login === "function") ajax_login(); + else window.open("https://passport.gter.net/?referer=" + escape(location.href), "_self"); } }; diff --git a/component/hot-search/hot-search.js b/component/hot-search/hot-search.js index f12504f..a4f776c 100644 --- a/component/hot-search/hot-search.js +++ b/component/hot-search/hot-search.js @@ -7,8 +7,12 @@ export const hotSearch = defineComponent({ props: {}, setup(props) { + let valueUrl = ref(""); + onMounted(() => { init(); + const valueA = document.querySelector(".valueA"); + valueUrl.value = valueA.innerText; }); const init = () => { @@ -20,10 +24,10 @@ export const hotSearch = defineComponent({ const list = ref([]); - return { list }; + return { valueUrl, list }; }, components: {}, - template: `
热门搜索
{{ item.keyword }}
`, + template: `
热门搜索
{{ item.keyword }}
`, }); diff --git a/component/hot-search/hot-search.txt b/component/hot-search/hot-search.txt index 4a39d8c..86c0920 100644 --- a/component/hot-search/hot-search.txt +++ b/component/hot-search/hot-search.txt @@ -1,6 +1,6 @@
- + 热门搜索
diff --git a/component/hot-tag/hot-tag.js b/component/hot-tag/hot-tag.js index b98b1d6..cee5c1b 100644 --- a/component/hot-tag/hot-tag.js +++ b/component/hot-tag/hot-tag.js @@ -7,8 +7,12 @@ export const hotTag = defineComponent({ props: {}, setup(props) { + let valueUrl = ref(""); + onMounted(() => { init(); + const valueA = document.querySelector(".valueA"); + valueUrl.value = valueA.innerText; }); const init = () => { @@ -20,7 +24,7 @@ export const hotTag = defineComponent({ const list = ref([]); - return { list }; + return { valueUrl, list }; }, components: {}, diff --git a/component/hot-tag/hot-tag.txt b/component/hot-tag/hot-tag.txt index 7c8c32a..25d52c9 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 b24cdec..445fc35 100644 --- a/component/item-bottom/item-bottom.js +++ b/component/item-bottom/item-bottom.js @@ -1,151 +1,158 @@ // my-component.js // 引入全局 Vue 对象(因在 HTML 中通过 script 引入,Vue 已挂载到 window) -const { defineComponent, ref, inject, defineAsyncComponent } = Vue; +const { defineComponent, ref, inject, defineAsyncComponent, onMounted } = Vue; -const like = defineAsyncComponent(() => import(withVer("../like/like.js")).then(m => m.like)); +const like = defineAsyncComponent(() => import(withVer("../like/like.js")).then((m) => m.like)); // 定义组件(直接使用模板) export const itemBottom = defineComponent({ name: "item-bottom", - props: { - itemdata: { - type: Object, - default: () => {}, - }, + props: { + itemdata: { + type: Object, + default: () => {}, }, + }, - setup(props) { - let item = ref({ ...props.itemdata }); + setup(props) { + let valueUrl = ref(""); - let isLogin = inject("isLogin"); - let userInfoWin = inject("userInfoWin"); - let realname = inject("realname"); - let goLogin = inject("goLogin"); - let openAttest = inject("openAttest"); + onMounted(() => { + const valueA = document.querySelector(".valueA"); + valueUrl.value = valueA.innerText; + }); - let isLikeGif = ref(false); + let item = ref({ ...props.itemdata }); - let cancelOperate = inject("cancelOperate"); + let isLogin = inject("isLogin"); + let userInfoWin = inject("userInfoWin"); + let realname = inject("realname"); + let goLogin = inject("goLogin"); + let openAttest = inject("openAttest"); - const likeClick = () => { - if (realname.value == 0 && userInfoWin.value?.uin > 0) { - openAttest(); - return; - } + let isLikeGif = ref(false); - if (!isLogin.value) { - goLogin(); - return; - } + let cancelOperate = inject("cancelOperate"); - const token = item.value.token || ""; + const likeClick = () => { + if (realname.value == 0 && userInfoWin.value?.uin > 0) { + openAttest(); + return; + } - if (["offer", "offer_summary", "interviewexperience"].includes(item.value["type"]) && item.value["is_like"]) { - creationAlertBox("error", "不可取消点赞"); - return; - } + if (!isLogin.value) { + goLogin(); + return; + } - ajax(`/v2/api/forum/postTopicLike`, { - token, + const token = item.value.token || ""; + + if (["offer", "offer_summary", "interviewexperience"].includes(item.value["type"]) && item.value["is_like"]) { + creationAlertBox("error", "不可取消点赞"); + return; + } + + ajax(`/v2/api/forum/postTopicLike`, { + token, + }) + .then((res) => { + if (res.code != 200) { + creationAlertBox("error", res.message); + return; + } + + let data = res.data; + creationAlertBox("success", res.message); + + item.value["is_like"] = data.status; + item.value["likes"] = data.likes; + + if (data.status) { + isLikeGif.value = true; + setTimeout(() => (isLikeGif.value = false), 2000); + } + + if (data.status == 0) cancelOperate("like", token); + + // wx.hideLoading(); }) - .then((res) => { - if (res.code != 200) { - creationAlertBox("error", res.message); - return; - } + .catch(() => {}); + }; - let data = res.data; - creationAlertBox("success", res.message); + const collectClick = () => { + if (!isLogin.value) { + goLogin(); + return; + } - item.value["is_like"] = data.status; - item.value["likes"] = data.likes; + const token = item.value.token || ""; - if (data.status) { - isLikeGif.value = true; - setTimeout(() => (isLikeGif.value = false), 2000); - } - - if (data.status == 0) cancelOperate("like", token); - - // wx.hideLoading(); - }) - .catch(() => {}); - }; - - const collectClick = () => { - if (!isLogin.value) { - goLogin(); - return; - } - - const token = item.value.token || ""; - - ajax(`/v2/api/forum/postTopicCollect`, { - token, - }) - .then((res) => { - if (res.code != 200) { - creationAlertBox("error", res.message); - return; - } - const data = res.data || {}; - - item.value["is_collect"] = data.status; - item.value["collections"] = data.collections; - creationAlertBox("success", res.message); - // 调用父组件的方法 - if (data.status == 0) cancelOperate("collection", token); - }) - .catch((err) => { - if (err?.code == 401) goLogin(); - }); - }; - - const copyLinkClick = () => { - copyForumUid(`${location.origin}/details/${item.value.uniqid}`); - }; - - let QRcode = ref(""); - const showQRcode = () => { - if (QRcode.value) return; - // return - ajaxGet(`/v2/api/forum/getQrcode?token=${item.value.token}`).then((res) => { - if (res.code != 200) return; + ajax(`/v2/api/forum/postTopicCollect`, { + token, + }) + .then((res) => { + if (res.code != 200) { + creationAlertBox("error", res.message); + return; + } const data = res.data || {}; - QRcode.value = data.url || ""; + + item.value["is_collect"] = data.status; + item.value["collections"] = data.collections; + creationAlertBox("success", res.message); + // 调用父组件的方法 + if (data.status == 0) cancelOperate("collection", token); + }) + .catch((err) => { + if (err?.code == 401) goLogin(); }); - }; + }; - let isright = ref(false); + const copyLinkClick = () => { + copyForumUid(`${location.origin}/details/${item.value.uniqid}`); + }; - const share = () => { - const token = item.value.token || ""; - ajax(`/v2/api/forum/postTopicShare`, { token }); + let QRcode = ref(""); + const showQRcode = () => { + if (QRcode.value) return; + // return + ajaxGet(`/v2/api/forum/getQrcode?token=${item.value.token}`).then((res) => { + if (res.code != 200) return; + const data = res.data || {}; + QRcode.value = data.url || ""; + }); + }; - if (!shareBoxRef.value) return; + let isright = ref(false); - // 1. 获取元素相对于可视窗口的位置信息 - const rect = shareBoxRef.value.getBoundingClientRect(); + const share = () => { + const token = item.value.token || ""; + ajax(`/v2/api/forum/postTopicShare`, { token }); - // 2. 获取可视窗口宽度(不包含滚动条,更准确) - const clientWidth = document.documentElement.clientWidth; + if (!shareBoxRef.value) return; - // 3. 计算距离:可视窗口宽度 - 元素右边缘到左边缘的距离 - const distance = clientWidth - rect.right; - console.log("distance", distance); + // 1. 获取元素相对于可视窗口的位置信息 + const rect = shareBoxRef.value.getBoundingClientRect(); - if (distance < 140) isright.value = true; - else isright.value = false; - }; + // 2. 获取可视窗口宽度(不包含滚动条,更准确) + const clientWidth = document.documentElement.clientWidth; - const shareBoxRef = ref(null); + // 3. 计算距离:可视窗口宽度 - 元素右边缘到左边缘的距离 + const distance = clientWidth - rect.right; + console.log("distance", distance); - return { isright, shareBoxRef, share, QRcode, showQRcode, copyLinkClick, collectClick, item, likeClick, isLogin, isLikeGif }; - }, + if (distance < 140) isright.value = true; + else isright.value = false; + }; - components: { - like, - }, + const shareBoxRef = ref(null); - template: `
{{ item?.commentreviews?.content || "[图]" }}
{{ item.collections || "收藏" }}
{{ item.comments || "讨论" }}
{{ item.coins || "投币" }}
`, + return { valueUrl, isright, shareBoxRef, share, QRcode, showQRcode, copyLinkClick, collectClick, item, likeClick, isLogin, isLikeGif }; + }, + + components: { + like, + }, + + template: `
{{ item?.commentreviews?.content || "[图]" }}
{{ item.collections || "收藏" }}
{{ item.comments || "讨论" }}
{{ item.coins || "投币" }}
`, }); diff --git a/component/item-bottom/item-bottom.txt b/component/item-bottom/item-bottom.txt index 0f7cd53..076b65b 100644 --- a/component/item-bottom/item-bottom.txt +++ b/component/item-bottom/item-bottom.txt @@ -10,45 +10,45 @@
- - + +
{{ item.collections || "收藏" }}
- +
{{ item.comments || "讨论" }}
- +
{{ item.coins || "投币" }}