Showing
5 changed files
with
139 additions
and
23 deletions
| @@ -4,10 +4,12 @@ import { EditListInfo, editModel, editModelParams, WDEditDataModelType } from '. | @@ -4,10 +4,12 @@ import { EditListInfo, editModel, editModelParams, WDEditDataModelType } from '. | ||
| 4 | import EditInfoViewModel from '../../viewmodel/EditInfoViewModel'; | 4 | import EditInfoViewModel from '../../viewmodel/EditInfoViewModel'; |
| 5 | import { WDRouterPage, WDRouterRule } from 'wdRouter'; | 5 | import { WDRouterPage, WDRouterRule } from 'wdRouter'; |
| 6 | import {AreaPickerDialog} from '../view/areaPickerDialog/AreaPickerDialog' | 6 | import {AreaPickerDialog} from '../view/areaPickerDialog/AreaPickerDialog' |
| 7 | +import {EditUserInfoCustomDialog} from '../view/areaPickerDialog/EditUserInfoCustomDialog' | ||
| 7 | import { AreaListModel } from '../../model/AreaListModel'; | 8 | import { AreaListModel } from '../../model/AreaListModel'; |
| 8 | import router from '@ohos.router'; | 9 | import router from '@ohos.router'; |
| 9 | import TrackingPageBrowseUtils from '../../utils/TrackingPageBrowseUtils' | 10 | import TrackingPageBrowseUtils from '../../utils/TrackingPageBrowseUtils' |
| 10 | import { TrackConstants } from 'wdTracking/Index'; | 11 | import { TrackConstants } from 'wdTracking/Index'; |
| 12 | +import { window } from '@kit.ArkUI'; | ||
| 11 | 13 | ||
| 12 | @Entry | 14 | @Entry |
| 13 | @Component | 15 | @Component |
| @@ -16,6 +18,7 @@ struct EditUserInfoPage { | @@ -16,6 +18,7 @@ struct EditUserInfoPage { | ||
| 16 | @State headerImg: string = '' | 18 | @State headerImg: string = '' |
| 17 | @State dataSource: AreaListModel[] = [] | 19 | @State dataSource: AreaListModel[] = [] |
| 18 | @State currentUserInfo: editModel = new editModel() | 20 | @State currentUserInfo: editModel = new editModel() |
| 21 | + @State bottomSafeHeight: number = 0; | ||
| 19 | 22 | ||
| 20 | dialogController: CustomDialogController = new CustomDialogController({ | 23 | dialogController: CustomDialogController = new CustomDialogController({ |
| 21 | builder: AreaPickerDialog({dataSource:this.dataSource, | 24 | builder: AreaPickerDialog({dataSource:this.dataSource, |
| @@ -29,10 +32,35 @@ struct EditUserInfoPage { | @@ -29,10 +32,35 @@ struct EditUserInfoPage { | ||
| 29 | } | 32 | } |
| 30 | }), | 33 | }), |
| 31 | alignment: DialogAlignment.Bottom, | 34 | alignment: DialogAlignment.Bottom, |
| 32 | - offset:{dx:0,dy:0}, | 35 | + customStyle: true, |
| 36 | + offset: { | ||
| 37 | + dx: 0, | ||
| 38 | + dy: -this.bottomSafeHeight | ||
| 39 | + }, | ||
| 33 | }) | 40 | }) |
| 34 | 41 | ||
| 35 | - aboutToAppear() { | 42 | + dateDialogController: CustomDialogController = new CustomDialogController({ |
| 43 | + builder: EditUserInfoCustomDialog({ | ||
| 44 | + confirmCallback:(selectDate:Date)=>{ | ||
| 45 | + let mon = selectDate.getUTCMonth() as number + 1 | ||
| 46 | + let monStr = mon < 10? '0'+mon.toString():mon.toString(); | ||
| 47 | + let dayStr = selectDate.getUTCDate() as number < 10? '0'+selectDate.getUTCDate():selectDate.getUTCDate(); | ||
| 48 | + this.currentUserInfo.userExtend.birthday = selectDate.getUTCFullYear()+'-'+monStr+'-'+dayStr; | ||
| 49 | + this.currentUserInfo.editDataType = WDEditDataModelType.WDEditDataModelType_birthday | ||
| 50 | + this.updateEditModel() | ||
| 51 | + } | ||
| 52 | + }), | ||
| 53 | + alignment: DialogAlignment.Bottom, | ||
| 54 | + customStyle: true, | ||
| 55 | + offset: { | ||
| 56 | + dx: 0, | ||
| 57 | + dy: -this.bottomSafeHeight | ||
| 58 | + }, | ||
| 59 | + }) | ||
| 60 | + | ||
| 61 | + async aboutToAppear() { | ||
| 62 | + let windowHight: window.Window = await window.getLastWindow(getContext(this)); | ||
| 63 | + this.bottomSafeHeight = px2vp(windowHight.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM).bottomRect.height) | ||
| 36 | this.getAccountOwnerInfo() | 64 | this.getAccountOwnerInfo() |
| 37 | this.getAreaList() | 65 | this.getAreaList() |
| 38 | } | 66 | } |
| @@ -145,20 +173,22 @@ struct EditUserInfoPage { | @@ -145,20 +173,22 @@ struct EditUserInfoPage { | ||
| 145 | }else if (i === 3){ | 173 | }else if (i === 3){ |
| 146 | this.dialogController.open() | 174 | this.dialogController.open() |
| 147 | } else if (i === 4) { | 175 | } else if (i === 4) { |
| 148 | - DatePickerDialog.show({ | ||
| 149 | - start:new Date('1900-1-1'), | ||
| 150 | - end:new Date(), | ||
| 151 | - selected:new Date, | ||
| 152 | - lunar:false, | ||
| 153 | - onAccept:(value:DatePickerResult) => { | ||
| 154 | - let mon = value.month as number + 1 | ||
| 155 | - let monStr = mon < 10? '0'+mon.toString():mon.toString(); | ||
| 156 | - let dayStr = value.day as number < 10? '0'+value.day:value.day; | ||
| 157 | - this.currentUserInfo.userExtend.birthday = value.year+'-'+monStr+'-'+dayStr; | ||
| 158 | - this.currentUserInfo.editDataType = WDEditDataModelType.WDEditDataModelType_birthday | ||
| 159 | - this.updateEditModel() | ||
| 160 | - } | ||
| 161 | - }) | 176 | + this.dateDialogController.open() |
| 177 | + | ||
| 178 | + // DatePickerDialog.show({ | ||
| 179 | + // start:new Date('1900-1-1'), | ||
| 180 | + // end:new Date(), | ||
| 181 | + // selected:new Date, | ||
| 182 | + // lunar:false, | ||
| 183 | + // onAccept:(value:DatePickerResult) => { | ||
| 184 | + // let mon = value.month as number + 1 | ||
| 185 | + // let monStr = mon < 10? '0'+mon.toString():mon.toString(); | ||
| 186 | + // let dayStr = value.day as number < 10? '0'+value.day:value.day; | ||
| 187 | + // this.currentUserInfo.userExtend.birthday = value.year+'-'+monStr+'-'+dayStr; | ||
| 188 | + // this.currentUserInfo.editDataType = WDEditDataModelType.WDEditDataModelType_birthday | ||
| 189 | + // this.updateEditModel() | ||
| 190 | + // } | ||
| 191 | + // }) | ||
| 162 | }else if(i === 5){ | 192 | }else if(i === 5){ |
| 163 | TextPickerDialog.show({ | 193 | TextPickerDialog.show({ |
| 164 | range:['男','女'], | 194 | range:['男','女'], |
| @@ -13,6 +13,7 @@ export struct AreaPickerDialog { | @@ -13,6 +13,7 @@ export struct AreaPickerDialog { | ||
| 13 | @Provide dataSource: AreaListModel[] = [] | 13 | @Provide dataSource: AreaListModel[] = [] |
| 14 | result: JSON[] = []; | 14 | result: JSON[] = []; |
| 15 | confirmCallback: (province:string,city:string,county:string,address:string) => void = () => { | 15 | confirmCallback: (province:string,city:string,county:string,address:string) => void = () => { |
| 16 | + | ||
| 16 | } | 17 | } |
| 17 | 18 | ||
| 18 | build() { | 19 | build() { |
| @@ -22,27 +23,33 @@ export struct AreaPickerDialog { | @@ -22,27 +23,33 @@ export struct AreaPickerDialog { | ||
| 22 | .onClick(()=> { | 23 | .onClick(()=> { |
| 23 | this.controller.close() | 24 | this.controller.close() |
| 24 | }) | 25 | }) |
| 26 | + .width(60) | ||
| 25 | .backgroundColor(0xffffff) | 27 | .backgroundColor(0xffffff) |
| 26 | .fontColor(Color.Black) | 28 | .fontColor(Color.Black) |
| 27 | .layoutWeight(1) | 29 | .layoutWeight(1) |
| 28 | 30 | ||
| 29 | - Blank() | 31 | + Blank().width(80) |
| 30 | 32 | ||
| 31 | Text(this.title) | 33 | Text(this.title) |
| 32 | .fontSize(18).textAlign(TextAlign.Center).margin({top:10,bottom:10}) | 34 | .fontSize(18).textAlign(TextAlign.Center).margin({top:10,bottom:10}) |
| 33 | 35 | ||
| 34 | - Blank() | 36 | + Blank().width(80) |
| 35 | 37 | ||
| 36 | Button('提交',{type:ButtonType.Normal}) | 38 | Button('提交',{type:ButtonType.Normal}) |
| 37 | .onClick(()=> { | 39 | .onClick(()=> { |
| 38 | this.controller.close() | 40 | this.controller.close() |
| 39 | this.confirmCallback(this.currentFirst.label,this.currentSecondBean.label,this.currentThirdBean.label,this.currentFirst.label+this.currentSecondBean.label+this.currentThirdBean.label); | 41 | this.confirmCallback(this.currentFirst.label,this.currentSecondBean.label,this.currentThirdBean.label,this.currentFirst.label+this.currentSecondBean.label+this.currentThirdBean.label); |
| 40 | }) | 42 | }) |
| 43 | + .width(60) | ||
| 41 | .backgroundColor(0xffffff) | 44 | .backgroundColor(0xffffff) |
| 42 | .fontColor('#ED2800') | 45 | .fontColor('#ED2800') |
| 43 | .layoutWeight(1) | 46 | .layoutWeight(1) |
| 44 | - } | ||
| 45 | - .margin({top:0,bottom:10}) | 47 | + }.backgroundColor(0xffffff) |
| 48 | + | ||
| 49 | + Divider() | ||
| 50 | + .color('#f5f5f5') | ||
| 51 | + .width('100%') | ||
| 52 | + .strokeWidth(1) | ||
| 46 | 53 | ||
| 47 | Row(){ | 54 | Row(){ |
| 48 | FirstLevelComponent().width('33%') | 55 | FirstLevelComponent().width('33%') |
| @@ -50,7 +57,8 @@ export struct AreaPickerDialog { | @@ -50,7 +57,8 @@ export struct AreaPickerDialog { | ||
| 50 | ThirdLevelComponent().width('33%') | 57 | ThirdLevelComponent().width('33%') |
| 51 | } | 58 | } |
| 52 | } | 59 | } |
| 53 | - .height('40%') | 60 | + .backgroundColor(0xffffff) |
| 61 | + .height('35%') | ||
| 54 | .width('100%') | 62 | .width('100%') |
| 55 | } | 63 | } |
| 56 | } | 64 | } |
| 1 | + | ||
| 2 | +@Component | ||
| 3 | +export struct DateCustomComponent { | ||
| 4 | + @Consume selectDate: Date | ||
| 5 | + build() { | ||
| 6 | + Column(){ | ||
| 7 | + Column(){ | ||
| 8 | + DatePicker({ | ||
| 9 | + start:new Date('1900-1-1'), | ||
| 10 | + end:new Date(), | ||
| 11 | + selected:new Date, | ||
| 12 | + }).selectedTextStyle({color:'#666666'}) | ||
| 13 | + .textStyle({color:'#999999'}) | ||
| 14 | + .onDateChange((value) => { | ||
| 15 | + this.selectDate = value as Date | ||
| 16 | + }) | ||
| 17 | + // .onDateChange:(value:DatePickerResult) => { | ||
| 18 | + // let mon = value.month as number + 1 | ||
| 19 | + // let monStr = mon < 10? '0'+mon.toString():mon.toString(); | ||
| 20 | + // let dayStr = value.day as number < 10? '0'+value.day:value.day; | ||
| 21 | + // this.currentUserInfo.userExtend.birthday = value.year+'-'+monStr+'-'+dayStr; | ||
| 22 | + // this.currentUserInfo.editDataType = WDEditDataModelType.WDEditDataModelType_birthday | ||
| 23 | + // this.updateEditModel() | ||
| 24 | + // } | ||
| 25 | + }.justifyContent(FlexAlign.Center) | ||
| 26 | + }.height('100%') | ||
| 27 | + } | ||
| 28 | +} |
| 1 | +import { DateCustomComponent } from './DateCustomComponent' | ||
| 2 | + | ||
| 3 | +@CustomDialog | ||
| 4 | + | ||
| 5 | +export struct EditUserInfoCustomDialog{ | ||
| 6 | + @Provide selectDate: Date = new Date | ||
| 7 | + controller: CustomDialogController | ||
| 8 | + confirmCallback: (selectDate:Date) => void = () => { | ||
| 9 | + | ||
| 10 | + } | ||
| 11 | + build() { | ||
| 12 | + Column(){ | ||
| 13 | + Row(){ | ||
| 14 | + Button('取消',{type:ButtonType.Normal}) | ||
| 15 | + .onClick(()=> { | ||
| 16 | + this.controller.close() | ||
| 17 | + }) | ||
| 18 | + .width(60) | ||
| 19 | + .backgroundColor(0xffffff) | ||
| 20 | + .fontColor(Color.Black) | ||
| 21 | + .layoutWeight(1) | ||
| 22 | + | ||
| 23 | + Blank().width(80) | ||
| 24 | + | ||
| 25 | + Text('修改生日') | ||
| 26 | + .fontSize(18).textAlign(TextAlign.Center).margin({top:10,bottom:10}) | ||
| 27 | + | ||
| 28 | + Blank().width(80) | ||
| 29 | + | ||
| 30 | + Button('提交',{type:ButtonType.Normal}) | ||
| 31 | + .onClick(()=> { | ||
| 32 | + this.controller.close() | ||
| 33 | + this.confirmCallback(this.selectDate); | ||
| 34 | + }) | ||
| 35 | + .width(60) | ||
| 36 | + .backgroundColor(0xffffff) | ||
| 37 | + .fontColor('#ED2800') | ||
| 38 | + .layoutWeight(1) | ||
| 39 | + }.backgroundColor(0xffffff) | ||
| 40 | + | ||
| 41 | + Divider() | ||
| 42 | + .color('#f5f5f5') | ||
| 43 | + .width('100%') | ||
| 44 | + .strokeWidth(1) | ||
| 45 | + | ||
| 46 | + DateCustomComponent().width('70%') | ||
| 47 | + } | ||
| 48 | + .backgroundColor(0xffffff) | ||
| 49 | + .height('35%') | ||
| 50 | + .width('100%') | ||
| 51 | + } | ||
| 52 | +} |
| @@ -28,7 +28,6 @@ export struct FirstLevelComponent { | @@ -28,7 +28,6 @@ export struct FirstLevelComponent { | ||
| 28 | this.currentFirst = EditInfoViewModel.getAreaListManageModel(this.dataSource[index as number]) | 28 | this.currentFirst = EditInfoViewModel.getAreaListManageModel(this.dataSource[index as number]) |
| 29 | }) | 29 | }) |
| 30 | .backgroundColor(Color.White) | 30 | .backgroundColor(Color.White) |
| 31 | - // .border({color:'#e2e2e2',width:{right:0.5}}) | ||
| 32 | .width('100%') | 31 | .width('100%') |
| 33 | .layoutWeight(1) | 32 | .layoutWeight(1) |
| 34 | .selectedTextStyle({color:'#666666'}) | 33 | .selectedTextStyle({color:'#666666'}) |
| @@ -38,6 +37,5 @@ export struct FirstLevelComponent { | @@ -38,6 +37,5 @@ export struct FirstLevelComponent { | ||
| 38 | .justifyContent(FlexAlign.Center) | 37 | .justifyContent(FlexAlign.Center) |
| 39 | } | 38 | } |
| 40 | .height('100%') | 39 | .height('100%') |
| 41 | - | ||
| 42 | } | 40 | } |
| 43 | } | 41 | } |
-
Please register or login to post a comment