ToB企服应用市场:ToB评测及商务社交产业平台

标题: HarmonyOs ----使命统计案例 [打印本页]

作者: 钜形不锈钢水箱    时间: 2024-10-14 06:23
标题: HarmonyOs ----使命统计案例
  1. @Entry
  2. @Component
  3. struct Task_1 {
  4.   build() {
  5.     Column(){
  6.       Row(){
  7.       }
  8.         }
  9.   }
  10. }
复制代码

2.填写内容

  1. //设置整体样式
  2. @Styles function card_1(){
  3.   .width('95%')
  4.   .padding(20)
  5.   .backgroundColor(Color.White)
  6.   .borderRadius(15)
  7.   .shadow({radius:6,color:'#1F000000',offsetX:2,offsetY:4})
  8. }
  9. @Entry
  10. @Component
  11. struct Task_1 {
  12.   @State finish:number=0
  13.   @State totall:number=0
  14.   build() {
  15.     Column(){
  16.       Row(){
  17.           Text('任务进度:')
  18.             .fontSize(30)
  19.             .fontWeight(FontWeight.Bold)
  20.         Stack(){
  21.           Progress({value:this.finish,total:this.totall,type:ProgressType.Ring})
  22.             .width(100)
  23.           Row(){
  24.             Text(this.finish+'')
  25.               .fontSize(30)
  26.               .fontColor('#36D')
  27.             Text(' / '+this.totall)
  28.               .fontSize(30)
  29.           }
  30.         }
  31.       }
  32. //引用自定义样式card_1
  33.       .card_1()
  34.       .justifyContent(FlexAlign.SpaceAround)
  35.     }
  36.   }
  37. }
复制代码


  1. @Entry
  2. @Component
  3. struct Task_1 {
  4.   @State finish:number=0
  5.   @State totall:number=0
  6.   build() {
  7.     Column(){
  8. Row(){//顶部样式}
  9. //设置按钮样式
  10.       Button('新增任务')
  11.         .width(140)
  12.         .margin({top:10})
  13.     }
  14.   }
  15. }
复制代码

2.添加数组

  1. //创建task类
  2. class task{
  3.   static id :number=1
  4.   name:string=`任务${task.id++}`
  5.   Boole:boolean=false
  6. }
  7. @Entry
  8. @Component
  9. struct Task_1 {
  10.   @State finish:number=0
  11.   @State totall:number=0
  12.   // 数组类型
  13.   @State task:task[]=[]
  14.   build() {
  15.     Column(){
  16.     Row(){//顶部样式}
  17.    Button('新增任务')
  18.         .width(140)
  19.         .margin({top:10})
  20.     }
  21.   }
  22. }
复制代码

3.添加事故:点击按钮,随之数组增长(顶部totall变化)

  1. //创建task类
  2. class task_1{
  3.   static id :number=1
  4.   name:string=`任务${task_1.id++}`
  5.   Boole:boolean =false
  6. }
  7. @Entry
  8. @Component
  9. struct Task_1 {
  10.   @State finish:number=0
  11.   @State totall:number=0
  12.   // 数组类型
  13.   @State task_1:task_1[]=[]
  14.   build() {
  15.     Column(){
  16.     Row(){//顶部样式}
  17.       Button('新增任务')
  18.         .width(200)
  19.         .margin({top:10})
  20.         .onClick(()=>{
  21.           this.task_1.push(new task_1())
  22. //totall数值是数组长度
  23.           this.totall=this.task_1.length
  24.         })
  25.     }
  26.   }
  27. }
复制代码



  1. @Entry
  2. @Component
  3. struct Task_1 {
  4.   @State finish:number=0
  5.   @State totall:number=0
  6.   // 数组类型
  7.   @State task_1:task_1[]=[]
  8.   build() {
  9.     Column(){
  10.     Row(){//顶部样式}
  11. Button()//设置按钮样式     
  12.       ForEach(this.task_1,(item:task_1,index)=>{
  13.         Row(){
  14.           Text(item.name)
  15.             .fontSize(20)
  16.         }
  17.       })
  18.     }
  19.   }
  20. }
复制代码

2.添加多选框

  1. @Entry
  2. @Component
  3. struct Task_1 {
  4.   @State finish:number=0
  5.   @State totall:number=0
  6.   // 数组类型
  7.   @State task_1:task_1[]=[]
  8.   build() {
  9.     Column(){
  10.     Row(){//顶部样式}
  11. Button()//设置按钮样式     
  12.       ForEach(this.task_1,(item:task_1,index)=>{
  13.         Row(){
  14.           Text(item.name)
  15.             .fontSize(20)
  16. Checkbox()
  17.    .select(item.Boole)
  18.         }
  19.       })
  20.     }
  21.   }
  22. }
复制代码
  1. @Entry
  2. @Component
  3. struct Task_1 {
  4.   @State finish:number=0
  5.   @State totall:number=0
  6.   // 数组类型
  7.   @State task_1:task_1[]=[]
  8.   build() {
  9.     Column(){
  10.     Row(){//顶部样式}
  11. Button()//设置按钮样式     
  12.       ForEach(this.task_1,(item:task_1,index)=>{
  13.         Row(){
  14.           Text(item.name)
  15.             .fontSize(20)
  16. Checkbox()
  17.    .select(item.Boole)
  18.         }
  19. .card_1()
  20. .justifyContent(FlexAlign.SpaceBetween)
  21.       })
  22.     }
  23.   }
  24. }
复制代码

4.添加监听事故:监听task_1变化


  1. @Entry
  2. @Component
  3. struct Task_1 {
  4.   @State finish:number=0
  5.   @State totall:number=0
  6.   // 数组类型
  7.   @State task_1:task_1[]=[]
  8.   build() {
  9.     Column(){
  10.     Row(){//顶部样式}
  11. Button()//设置按钮样式     
  12.       ForEach(this.task_1,(item:task_1,index)=>{
  13.         Row(){
  14.           Text(item.name)
  15.             .fontSize(20)
  16. Checkbox()
  17.    .select(item.Boole)
  18. .onChange(()=>{
  19.   this.finish=this.task_1.filter(item=>item.Boole).length
  20. })
  21.         }
  22. .card_1()
  23. .justifyContent(FlexAlign.SpaceBetween)
  24.       })
  25.     }
  26.   }
  27. }
复制代码


  1. @Entry
  2. @Component
  3. struct Task_1 {
  4. build() {
  5.     Column(){
  6.     Row(){//顶部样式}
  7. Button()//设置按钮样式     
  8. List(){
  9.   ForEach(this.task_1,(item:task_1,index)=>{
  10.   ListItem() {
  11.     Row() {
  12.       Text(item.name)
  13.         .fontSize(20)
  14.       Checkbox()
  15.         .select(item.Boole)
  16.     }
  17.     .card_1()
  18.     .justifyContent(FlexAlign.SpaceBetween)
  19.   }
  20.   })
  21. }
  22. }
  23. }
  24. }
复制代码

  1. @Entry
  2. @Component
  3. struct Task_1 {
  4. build() {
  5.     Column(){
  6.     Row(){//顶部样式}
  7. Button()//设置按钮样式     
  8. List({space:10}){
  9.   ForEach(this.task_1,(item:task_1,index)=>{
  10.   ListItem() {
  11.     Row() {
  12.       Text(item.name)
  13.         .fontSize(20)
  14.       Checkbox()
  15.         .select(item.Boole)
  16.     }
  17.     .card_1()
  18.     .justifyContent(FlexAlign.SpaceBetween)
  19.   }
  20.   })
  21. }
  22. .layoutWeight(1)
  23. .alignListItem(ListItemAlign.Center)
  24. }
  25. }
  26. }
复制代码
  1. @Entry
  2. @Component
  3. struct Task_1 {
  4. build() {
  5.     Column(){
  6.     Row(){//顶部样式}
  7. Button()//设置按钮样式     
  8. List({space:10}){
  9.   ForEach(this.task_1,(item:task_1,index)=>{
  10.   ListItem() {
  11.     Row() {
  12.       Text(item.name)
  13.         .fontSize(20)
  14.       Checkbox()
  15.         .select(item.Boole)
  16.     }
  17.     .card_1()
  18.     .justifyContent(FlexAlign.SpaceBetween)
  19.   }
  20.   })
  21. }
  22. .layoutWeight(1)
  23. .alignListItem(ListItemAlign.Center)
  24. }
  25. }
  26. @Builder DeleteButton(index:number){
  27.   Button({type:ButtonType.Circle}){
  28. //矢量图
  29.     Image('/Task/task_delete.svg')
  30. //改变矢量图颜色
  31.       .fillColor(Color.White)
  32.       .width(50)
  33.   }
  34.   .width(80)
  35.   .margin(5)
  36.   .width(80)
  37.   .backgroundColor(Color.Red)
  38.   .onClick(()=>{
  39.     this.tasks.splice(index,1)
  40.     this.finishTask=this.tasks.filter(item=>item.finished).length
  41.     this.totallTask = this.tasks.length
  42.   })
  43. }
复制代码
有什么不足恣意提,我下次改进!!!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4