1c41cb6d2Sopenharmony_ci/** 2c41cb6d2Sopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 3c41cb6d2Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c41cb6d2Sopenharmony_ci * you may not use this file except in compliance with the License. 5c41cb6d2Sopenharmony_ci * You may obtain a copy of the License at 6c41cb6d2Sopenharmony_ci * 7c41cb6d2Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c41cb6d2Sopenharmony_ci * 9c41cb6d2Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c41cb6d2Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c41cb6d2Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c41cb6d2Sopenharmony_ci * See the License for the specific language governing permissions and 13c41cb6d2Sopenharmony_ci * limitations under the License. 14c41cb6d2Sopenharmony_ci */ 15c41cb6d2Sopenharmony_ci 16c41cb6d2Sopenharmony_ciimport Router from '@system.router'; 17c41cb6d2Sopenharmony_ciimport prompt from '@ohos.prompt' 18c41cb6d2Sopenharmony_ciimport ConfigData from '../../../../../../common/utils/src/main/ets/default/baseUtil/ConfigData'; 19c41cb6d2Sopenharmony_ciimport SettingListModel from '../../../../../../product/phone/src/main/ets/model/settingListImpl/SettingListModel'; 20c41cb6d2Sopenharmony_ciimport ComponentConfig from './ComponentConfig'; 21c41cb6d2Sopenharmony_ci 22c41cb6d2Sopenharmony_ci@Component 23c41cb6d2Sopenharmony_ciexport struct ServiceItemComponent { 24c41cb6d2Sopenharmony_ci @State touched: boolean = false; 25c41cb6d2Sopenharmony_ci private targetPage: string = ''; 26c41cb6d2Sopenharmony_ci private serviceTitle: string | Resource = ''; 27c41cb6d2Sopenharmony_ci private serviceEndText: string = ''; 28c41cb6d2Sopenharmony_ci private serviceIcon: string | Resource = ''; 29c41cb6d2Sopenharmony_ci 30c41cb6d2Sopenharmony_ci onPageShow() { 31c41cb6d2Sopenharmony_ci console.info(`onPageShow: ${this.targetPage}`) 32c41cb6d2Sopenharmony_ci } 33c41cb6d2Sopenharmony_ci 34c41cb6d2Sopenharmony_ci aboutToAppear(): void { 35c41cb6d2Sopenharmony_ci console.info(`aboutToAppear: ${this.targetPage}`) 36c41cb6d2Sopenharmony_ci } 37c41cb6d2Sopenharmony_ci 38c41cb6d2Sopenharmony_ci build() { 39c41cb6d2Sopenharmony_ci Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { 40c41cb6d2Sopenharmony_ci Row() { 41c41cb6d2Sopenharmony_ci Image(this.serviceIcon) 42c41cb6d2Sopenharmony_ci .width($r('app.float.wh_value_24')) 43c41cb6d2Sopenharmony_ci .height($r('app.float.wh_value_24')) 44c41cb6d2Sopenharmony_ci .margin({ 45c41cb6d2Sopenharmony_ci left: $r('app.float.distance_8'), 46c41cb6d2Sopenharmony_ci top: $r('app.float.distance_15'), 47c41cb6d2Sopenharmony_ci bottom: $r('app.float.distance_17') 48c41cb6d2Sopenharmony_ci }) 49c41cb6d2Sopenharmony_ci 50c41cb6d2Sopenharmony_ci Text(this.serviceTitle) 51c41cb6d2Sopenharmony_ci .fontSize($r('app.float.font_16')) 52c41cb6d2Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_primary')) 53c41cb6d2Sopenharmony_ci .fontWeight(FontWeight.Medium) 54c41cb6d2Sopenharmony_ci .fontFamily('HarmonyHeiTi') 55c41cb6d2Sopenharmony_ci .maxLines(ComponentConfig.MAX_LINES_3) 56c41cb6d2Sopenharmony_ci .textOverflow({ overflow: TextOverflow.Ellipsis }) 57c41cb6d2Sopenharmony_ci .width('90%') 58c41cb6d2Sopenharmony_ci .margin({ 59c41cb6d2Sopenharmony_ci left: $r('app.float.distance_16') 60c41cb6d2Sopenharmony_ci }) 61c41cb6d2Sopenharmony_ci .textAlign(TextAlign.Start); 62c41cb6d2Sopenharmony_ci } 63c41cb6d2Sopenharmony_ci .align(Alignment.Start) 64c41cb6d2Sopenharmony_ci .height(ConfigData.WH_100_100) 65c41cb6d2Sopenharmony_ci .width('70%') 66c41cb6d2Sopenharmony_ci 67c41cb6d2Sopenharmony_ci Row() { 68c41cb6d2Sopenharmony_ci Text(this.serviceEndText) 69c41cb6d2Sopenharmony_ci .fontSize($r('app.float.font_14')) 70c41cb6d2Sopenharmony_ci .lineHeight($r('app.float.lineHeight_19')) 71c41cb6d2Sopenharmony_ci .align(Alignment.End) 72c41cb6d2Sopenharmony_ci .fontWeight(FontWeight.Regular) 73c41cb6d2Sopenharmony_ci .fontFamily('HarmonyHeiTi') 74c41cb6d2Sopenharmony_ci .fontColor($r('sys.color.ohos_id_color_text_secondary')) 75c41cb6d2Sopenharmony_ci .margin({ top: $r('app.float.distance_19'), bottom: $r('app.float.distance_18') }); 76c41cb6d2Sopenharmony_ci 77c41cb6d2Sopenharmony_ci Image('/res/image/ic_settings_arrow.svg') 78c41cb6d2Sopenharmony_ci .width($r('app.float.wh_value_12')) 79c41cb6d2Sopenharmony_ci .height($r('app.float.wh_value_24')) 80c41cb6d2Sopenharmony_ci .margin({ 81c41cb6d2Sopenharmony_ci left: $r('app.float.distance_4'), 82c41cb6d2Sopenharmony_ci right: $r('app.float.distance_8'), 83c41cb6d2Sopenharmony_ci top: $r('app.float.distance_16'), 84c41cb6d2Sopenharmony_ci bottom: $r('app.float.distance_16') 85c41cb6d2Sopenharmony_ci }) 86c41cb6d2Sopenharmony_ci .fillColor($r('sys.color.ohos_id_color_fourth')) 87c41cb6d2Sopenharmony_ci } 88c41cb6d2Sopenharmony_ci .align(Alignment.End) 89c41cb6d2Sopenharmony_ci .height(ConfigData.WH_100_100); 90c41cb6d2Sopenharmony_ci } 91c41cb6d2Sopenharmony_ci .width(ConfigData.WH_100_100) 92c41cb6d2Sopenharmony_ci .height($r('app.float.wh_value_56')) 93c41cb6d2Sopenharmony_ci .borderRadius($r('app.float.radius_20')) 94c41cb6d2Sopenharmony_ci .linearGradient(this.touched ? { 95c41cb6d2Sopenharmony_ci angle: 90, 96c41cb6d2Sopenharmony_ci direction: GradientDirection.Right, 97c41cb6d2Sopenharmony_ci colors: [[$r('app.color.DCEAF9'), 0.0], [$r('app.color.FAFAFA'), 1.0]] 98c41cb6d2Sopenharmony_ci } : { 99c41cb6d2Sopenharmony_ci angle: 90, 100c41cb6d2Sopenharmony_ci direction: GradientDirection.Right, 101c41cb6d2Sopenharmony_ci colors: [[$r('sys.color.ohos_id_color_foreground_contrary'), 1], [$r('sys.color.ohos_id_color_foreground_contrary'), 1]] 102c41cb6d2Sopenharmony_ci }) 103c41cb6d2Sopenharmony_ci .onTouch((event?: TouchEvent) => { 104c41cb6d2Sopenharmony_ci if (event?.type === TouchType.Down) { 105c41cb6d2Sopenharmony_ci this.touched = true; 106c41cb6d2Sopenharmony_ci } 107c41cb6d2Sopenharmony_ci if (event?.type === TouchType.Up) { 108c41cb6d2Sopenharmony_ci this.touched = false; 109c41cb6d2Sopenharmony_ci } 110c41cb6d2Sopenharmony_ci }) 111c41cb6d2Sopenharmony_ci } 112c41cb6d2Sopenharmony_ci}