import { EmitterKeyCollection, UserInfo, userInfo, yTRouter } from "basic" import { emitter } from "@kit.BasicServicesKit" import { AppStorageV2 } from "@kit.ArkUI" @ComponentV2 export struct ytBuildComp { // 主体内容 @BuilderParam main: () => void // 是否登录 @Local isLogin: boolean = false // 用户信息 @Local userInfo: UserInfo = AppStorageV2.connect(UserInfo, 'UserInfo', () => userInfo)! // 是否校验登录 @Local checkLogin: boolean = false toLogin = () => { yTRouter.router2LoginPage(false) } LoginStatusChange(){ this.isLogin = this.userInfo.checkLogin() this.userInfo.setUserInfoAndLogin(userInfo, false) } aboutToAppear(): void { emitter.on(EmitterKeyCollection.LOGIN, () => { this.LoginStatusChange() }) emitter.on(EmitterKeyCollection.LOGOUT, () => { this.LoginStatusChange() }) this.LoginStatusChange() } build() { RelativeContainer(){ Column(){ this.main() } .width("100%") .height("100%") .alignRules({ top: { anchor: "__container__", align: VerticalAlign.Top}, left: { anchor: "__container__", align: HorizontalAlign.Start}, }) if(!this.isLogin && this.checkLogin){ Row() { Text("登录使用更多功能") .fontSize(20) .fontWeight(400) .fontColor(Color.White) Text("马上登录") .fontSize(14) .fontWeight(500) .borderRadius(20) .padding({ top: 5, bottom: 5, left: 10, right: 10 }) .linearGradient({ colors: [['#30E3CE', 0.5], ['#91F1FF', 1]] }) .onClick(this.toLogin) } .width("100%") .alignItems(VerticalAlign.Center) .justifyContent(FlexAlign.SpaceBetween) .padding({ left: 20, right: 20, top: 18, bottom: 18 }) .backgroundColor('rgba(0, 0, 0, 0.5)') .alignRules({ bottom: { anchor: "__container__", align: VerticalAlign.Bottom}, left: { anchor: "__container__", align: HorizontalAlign.Start}, }) } } .width("100%") .height("100%") } }