美文网首页
鸿蒙ArkTS/ArkUI电商实战-分类页

鸿蒙ArkTS/ArkUI电商实战-分类页

作者: ISwiftUI | 来源:发表于2024-04-14 15:10 被阅读0次

鸿蒙ArkTS/ArkUI电商实战系列

本章内容

分类页,列表联动查看分类

效果图:


效果图

相关源码:
Items

// CourseItem.ets
import CourseModel from '../model/CourseModel';
@Component
export default struct CourseItem {
  @Prop itemStr: string;
  item?: CourseModel;

  aboutToAppear() {
    this.item = JSON.parse(this.itemStr);
  }

  build() {
    Row() {
      Image(this.item !== undefined ? this.item?.imageUrl : '')
        .height('100%')
        .aspectRatio(1)
        .clip(true)
        .borderRadius(18)
      Column() {
        Text(this.item?.courseName)
          .width('100%')
        Text(this.item?.price === 0 ? "" : "¥" + String(this.item?.price))
          .fontColor(Color.Orange)
      }
      .padding(12)
      .layoutWeight(1)
      .alignItems(HorizontalAlign.Start)
      .justifyContent(FlexAlign.SpaceBetween)
      .height('100%')
    }
    .padding({top: 10, bottom:5})
    .backgroundColor($r('app.color.start_window_background'))
    .width('100%')
    .height(96)
  }
}


// ClassifyItem.ets
@Component
export default struct ClassifyItem {
  classifyName?: string;
  @Prop isSelected: boolean;
  onClickAction = () => {}

  build() {
    Text(this.classifyName)
      .fontSize(16)
      .textAlign(TextAlign.Center)
      .backgroundColor(this.isSelected ? Color.White : '')
      .width('100%')
      .height(56)
      .onClick(this.onClickAction)
  }
}

models

// ClassifyModel.ets
import CourseModel from './CourseModel';

/**
 * course classity model
 */
export default class ClassifyModel {
  /**
   * classify id
   */
  classifyId: number;
  /**
   * classify name
   */
  classifyName: string;
  /**
   * course list of the classify.
   */
  courseList: Array<CourseModel>;

  constructor(classifyId: number, classifyName: string, courseList: Array<CourseModel>) {
    this.classifyId = classifyId;
    this.classifyName = classifyName;
    this.courseList = courseList;
  }
}


// CourseModel.ets
export default class CourseModel {
  classifyId: number;
  courseId: number;
  courseName: string;
  imageUrl: Resource;
  price: number;

  constructor(classifyId: number, courseId: number, courseName: string, imageUrl: Resource, price: number) {
    this.classifyId = classifyId;
    this.courseId = courseId;
    this.courseName = courseName;
    this.imageUrl = imageUrl;
    this.price = price;
  }
}

// LinkDataModel.ets
export default class LinkDataModel {
  /**
   * parentId
   */
  superId: number;
  /**
   * ParentName
   */
  superName: string;
  id: number;
  courseName: string;
  imageUrl: Resource;
  price: number;

  constructor(superId: number, superName: string, id: number, courseName: string, imageUrl: Resource, price: number) {
    this.superId = superId;
    this.superName = superName;
    this.id = id;
    this.courseName = courseName;
    this.imageUrl = imageUrl;
    this.price = price;
  }
}

ClassifyViewModel.ets

相关文章

网友评论

      本文标题:鸿蒙ArkTS/ArkUI电商实战-分类页

      本文链接:https://www.haomeiwen.com/subject/rkdrxjtx.html