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}