//报工用户用时占比
import { Font } from '@ohos.arkui.UIContext'

@CustomDialog
export struct ReportWorkHourRateDialog {

  controller: CustomDialogController

  onConfirm: (rate: number)=> void = () => {}

  //选择的占比
  @State selectIndex: number = 4
  // 占比数字（eg: 50%的50）
  rateNum: number = 50
  private rateList: string[] = ['10%', '20%', '30%', '40%', '50%', '60%', '70%', '80%', '90%', '100%']

  aboutToAppear(): void {
    this.rateNum = Number.parseFloat(this.rateList[this.selectIndex].slice(0, -1) as string)
  }

  build() {
    Column(){
      Column() {
        Text('用时占比')
          .fontColor($r('app.color.FFFFFF'))
          .fontSize($r('app.float.fontSize_30'))
          .fontWeight(FontWeight.Medium)
      }
      .height('20%')
      .width('100%')
      .justifyContent(FlexAlign.End)

      TextPicker({ range: this.rateList, selected: this.selectIndex })
        .onChange((value: string | string[], index: number| number[]) => {
          this.rateNum = Number.parseFloat(value.slice(0, -1) as string)
          this.selectIndex = index as number
        })
        .selectedTextStyle({color: $r('app.color.FFFFFF'), font: {size: $r('app.float.fontSize_30'), weight: FontWeight.Medium }})
        .textStyle({color: $r('app.color.FFFFFF'), font: {size: $r('app.float.fontSize_24'), weight: FontWeight.Medium }})
        .disappearTextStyle({color: $r('app.color.FFFFFF'), font: {size: $r('app.float.fontSize_16'), weight: FontWeight.Lighter}})
        .backgroundColor($r('app.color.2A2A2A'))
        .width('85%')
        .height('65%')

      // 确认/取消栏
      Column() {
        Divider()
          .vertical(false)
          .strokeWidth(1)
          .color($r('app.color.15FFFFFF'))
        Row() {
          Row() {
            Text('取消')
              .fontColor($r('app.color.60FFFFFF'))
              .fontSize($r('app.float.fontSize_30'))
          }
          .justifyContent(FlexAlign.Center)
          .width('50%')
          .onClick(() => this.controller.close())
          Divider()
            .vertical(true)
            .strokeWidth(1)
            .color($r('app.color.15FFFFFF'))
          Row() {
            Text('确定')
              .fontColor($r('app.color.007AFF'))
              .fontSize($r('app.float.fontSize_30'))
          }
          .justifyContent(FlexAlign.Center)
          .width('50%')
          .onClick(() => {
            this.onConfirm(this.rateNum);
            this.controller.close()
          })
        }
      }
      .width('100%')
      .height('15%')
    }
    .height('34%')
    .width('28%')
    .backgroundColor($r('app.color.2A2A2A'))
    .justifyContent(FlexAlign.End)
    .alignItems(HorizontalAlign.Center)
    .borderRadius($r('app.float.virtualSize_16'))
  }
}




