// my-component.js // 引入全局 Vue 对象(因在 HTML 中通过 script 引入,Vue 已挂载到 window) const { defineComponent, ref, provide } = Vue; import { itemBottom } from "../item-bottom/item-bottom.js"; import { itemHead } from "../item-head/item-head.js"; // 定义组件(直接使用模板) export const itemOffer = defineComponent({ name: "item-offer", props: { itemdata: { type: Object, 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 }; }, components: { itemBottom, itemHead, }, template: `
`, });