wangliang_wd

feat:优化编辑资料

@@ -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 }