| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- import { DateFormat, IBestToast, userInfo, UserInfo, YTAvoid, YTDateUtil, yTRouter } from "basic"
- import { BabyFoodApi } from "../Apis/BabyFoodApi"
- import { routerUtils } from "../utils/RouterUtils"
- import { AppStorageV2 } from "@kit.ArkUI"
- import { BabyInfo, Cuisine, WeeklyPlan, WeeklyPlanPurchaseList } from "../model/Index"
- @ObservedV2
- export class MainViewModel{
- @Trace safeTop: number = 0
- @Trace babyList: BabyInfo[] = []
- // 当前选择的宝宝信息
- @Trace selectedBabyIndex: number = 0
- // 当前的宝宝信息
- @Trace babyInfo: BabyInfo = new BabyInfo()
- // 用户信息
- @Trace userInfo: UserInfo = AppStorageV2.connect<UserInfo>(UserInfo, 'UserInfo', () => userInfo)!
- // 菜品下拉菜单
- @Trace dishList: Cuisine[] = []
- // 本周的食谱计划
- @Trace allPlan: WeeklyPlan = {}
- @Trace planList?: WeeklyPlanPurchaseList
- // 一周
- week: string[] = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
- constructor() {
- this.safeTop = AppStorage.get(YTAvoid.SAFE_TOP_KEY) as number
- }
- // 登录状态改变
- async LoginStatusChange(){
- this.userInfo.setUserInfoAndLogin(userInfo, false)
- if(this.userInfo.checkLogin()){
- // 如果需要同步操作记得加 await
- await this.getBabyList()
- await this.getWeeklyPlan()
- await this.getDishList()
- } else {
- this.babyList = []
- }
- }
- // 登录校验函数
- checkLogin(f: () => void, isCheckBaby: boolean = true) {
- if(this.userInfo.checkLogin()) {
- if(this.babyInfo?.id || !isCheckBaby){
- f()
- } else {
- IBestToast.show('请先添加宝宝信息吧!')
- this.increaseBabyInfo()
- }
- } else {
- yTRouter.router2LoginPage(true)
- }
- }
- // 修改选中的宝宝信息
- updateBabyInfo(index: number) {
- this.babyInfo = this.babyList[index]
- this.selectedBabyIndex = index
- }
- // 获取本周食谱计划
- async getWeeklyPlan(startDate?: string){
- if(!startDate) startDate = YTDateUtil.formatDate(new Date(), DateFormat.UNDERLINE)
- this.allPlan = await BabyFoodApi.getWeeklyPlan(this.babyInfo.id, startDate)
- this.planList = this.allPlan.weeklyPlan
- }
- // 获取菜品列表
- async getDishList(){
- this.dishList = await BabyFoodApi.getDishList()
- }
- // 获取宝宝信息列表
- async getBabyList(){
- this.babyList = await BabyFoodApi.getBabyList()
- this.updateBabyInfo(0)
- }
- // 进入添加宝宝信息页面
- increaseBabyInfo(){
- routerUtils.router2IncreaseBabyInfo((res) => {
- this.getBabyList()
- })
- }
- /**
- * 重写的返回逻辑
- * @returns
- */
- _onBackPressed(){
- yTRouter.pop('')
- return true;
- }
- }
|