From bf139b8e37fff0e61319f4961834129bbb81087f Mon Sep 17 00:00:00 2001
From: yz <221840196@smail.nju.edu.cn>
Date: Wed, 15 Jan 2025 23:12:12 +0800
Subject: [PATCH] init

---
 .gitignore                                    |  12 +
 AppScope/app.json5                            |  10 +
 AppScope/resources/base/element/string.json   |   8 +
 AppScope/resources/base/media/app_icon.png    | Bin 0 -> 2777 bytes
 README.md                                     |  80 ++++++
 build-profile.json5                           |  41 ++++
 code-linter.json5                             |  20 ++
 entry/.gitignore                              |   6 +
 entry/build-profile.json5                     |  28 +++
 entry/hvigorfile.ts                           |   6 +
 entry/obfuscation-rules.txt                   |  23 ++
 entry/oh-package.json5                        |  10 +
 entry/src/main/ets/common/CommonConstant.ets  |  69 ++++++
 .../main/ets/entryability/EntryAbility.ets    |  41 ++++
 .../entrybackupability/EntryBackupAbility.ets |  12 +
 entry/src/main/ets/pages/Index.ets            |  67 +++++
 entry/src/main/ets/pages/LocalPage.ets        |  79 ++++++
 entry/src/main/ets/pages/WebPage.ets          | 115 +++++++++
 entry/src/main/ets/view/AddItem.ets           | 230 ++++++++++++++++++
 entry/src/main/ets/view/ItemDetail.ets        | 197 +++++++++++++++
 entry/src/main/ets/view/TodoItem.ets          | 121 +++++++++
 entry/src/main/ets/viewmodel/DataModel.ets    |  86 +++++++
 .../src/main/ets/viewmodel/TodoItemModel.ets  |  19 ++
 entry/src/main/module.json5                   |  57 +++++
 .../main/resources/base/element/color.json    |  20 ++
 .../main/resources/base/element/float.json    |  36 +++
 .../main/resources/base/element/string.json   |  16 ++
 .../main/resources/base/media/background.png  | Bin 0 -> 57364 bytes
 .../main/resources/base/media/foreground.png  | Bin 0 -> 12430 bytes
 .../main/resources/base/media/ic_01_off.svg   |  10 +
 .../main/resources/base/media/ic_01_on.svg    |   9 +
 .../main/resources/base/media/ic_02_off.svg   |  11 +
 .../main/resources/base/media/ic_02_on.svg    |  11 +
 .../main/resources/base/media/ic_03_off.svg   |   8 +
 .../main/resources/base/media/ic_03_on.svg    |   8 +
 .../src/main/resources/base/media/ic_back.svg |  14 ++
 .../main/resources/base/media/ic_default.png  | Bin 0 -> 3384 bytes
 .../src/main/resources/base/media/ic_icon.png | Bin 0 -> 6790 bytes
 entry/src/main/resources/base/media/ic_ok.png | Bin 0 -> 2229 bytes
 .../resources/base/media/layered_image.json   |   7 +
 .../main/resources/base/media/startIcon.png   | Bin 0 -> 20093 bytes
 .../resources/base/profile/backup_config.json |   3 +
 .../resources/base/profile/main_pages.json    |   5 +
 .../main/resources/en_US/element/string.json  |  16 ++
 .../main/resources/rawfile/local/todo.html    | 166 +++++++++++++
 .../main/resources/zh_CN/element/string.json  |  16 ++
 entry/src/mock/mock-config.json5              |   2 +
 entry/src/ohosTest/ets/test/Ability.test.ets  |  35 +++
 entry/src/ohosTest/ets/test/List.test.ets     |   5 +
 entry/src/ohosTest/module.json5               |  13 +
 entry/src/test/List.test.ets                  |   5 +
 entry/src/test/LocalUnit.test.ets             |  33 +++
 hvigor/hvigor-config.json5                    |  22 ++
 hvigorfile.ts                                 |   6 +
 oh-package-lock.json5                         |  27 ++
 oh-package.json5                              |  10 +
 56 files changed, 1851 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 AppScope/app.json5
 create mode 100644 AppScope/resources/base/element/string.json
 create mode 100644 AppScope/resources/base/media/app_icon.png
 create mode 100644 README.md
 create mode 100644 build-profile.json5
 create mode 100644 code-linter.json5
 create mode 100644 entry/.gitignore
 create mode 100644 entry/build-profile.json5
 create mode 100644 entry/hvigorfile.ts
 create mode 100644 entry/obfuscation-rules.txt
 create mode 100644 entry/oh-package.json5
 create mode 100644 entry/src/main/ets/common/CommonConstant.ets
 create mode 100644 entry/src/main/ets/entryability/EntryAbility.ets
 create mode 100644 entry/src/main/ets/entrybackupability/EntryBackupAbility.ets
 create mode 100644 entry/src/main/ets/pages/Index.ets
 create mode 100644 entry/src/main/ets/pages/LocalPage.ets
 create mode 100644 entry/src/main/ets/pages/WebPage.ets
 create mode 100644 entry/src/main/ets/view/AddItem.ets
 create mode 100644 entry/src/main/ets/view/ItemDetail.ets
 create mode 100644 entry/src/main/ets/view/TodoItem.ets
 create mode 100644 entry/src/main/ets/viewmodel/DataModel.ets
 create mode 100644 entry/src/main/ets/viewmodel/TodoItemModel.ets
 create mode 100644 entry/src/main/module.json5
 create mode 100644 entry/src/main/resources/base/element/color.json
 create mode 100644 entry/src/main/resources/base/element/float.json
 create mode 100644 entry/src/main/resources/base/element/string.json
 create mode 100644 entry/src/main/resources/base/media/background.png
 create mode 100644 entry/src/main/resources/base/media/foreground.png
 create mode 100644 entry/src/main/resources/base/media/ic_01_off.svg
 create mode 100644 entry/src/main/resources/base/media/ic_01_on.svg
 create mode 100644 entry/src/main/resources/base/media/ic_02_off.svg
 create mode 100644 entry/src/main/resources/base/media/ic_02_on.svg
 create mode 100644 entry/src/main/resources/base/media/ic_03_off.svg
 create mode 100644 entry/src/main/resources/base/media/ic_03_on.svg
 create mode 100644 entry/src/main/resources/base/media/ic_back.svg
 create mode 100644 entry/src/main/resources/base/media/ic_default.png
 create mode 100644 entry/src/main/resources/base/media/ic_icon.png
 create mode 100644 entry/src/main/resources/base/media/ic_ok.png
 create mode 100644 entry/src/main/resources/base/media/layered_image.json
 create mode 100644 entry/src/main/resources/base/media/startIcon.png
 create mode 100644 entry/src/main/resources/base/profile/backup_config.json
 create mode 100644 entry/src/main/resources/base/profile/main_pages.json
 create mode 100644 entry/src/main/resources/en_US/element/string.json
 create mode 100644 entry/src/main/resources/rawfile/local/todo.html
 create mode 100644 entry/src/main/resources/zh_CN/element/string.json
 create mode 100644 entry/src/mock/mock-config.json5
 create mode 100644 entry/src/ohosTest/ets/test/Ability.test.ets
 create mode 100644 entry/src/ohosTest/ets/test/List.test.ets
 create mode 100644 entry/src/ohosTest/module.json5
 create mode 100644 entry/src/test/List.test.ets
 create mode 100644 entry/src/test/LocalUnit.test.ets
 create mode 100644 hvigor/hvigor-config.json5
 create mode 100644 hvigorfile.ts
 create mode 100644 oh-package-lock.json5
 create mode 100644 oh-package.json5

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0b9dda1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,12 @@
+/node_modules
+/oh_modules
+/local.properties
+/.idea
+**/build
+/.hvigor
+.cxx
+/.clangd
+/.clang-format
+/.clang-tidy
+**/.test
+/.appanalyzer
\ No newline at end of file
diff --git a/AppScope/app.json5 b/AppScope/app.json5
new file mode 100644
index 0000000..4b98ef7
--- /dev/null
+++ b/AppScope/app.json5
@@ -0,0 +1,10 @@
+{
+  "app": {
+    "bundleName": "com.example.myapplication",
+    "vendor": "example",
+    "versionCode": 1000000,
+    "versionName": "1.0.0",
+    "icon": "$media:app_icon",
+    "label": "$string:app_name"
+  }
+}
diff --git a/AppScope/resources/base/element/string.json b/AppScope/resources/base/element/string.json
new file mode 100644
index 0000000..d71e5ea
--- /dev/null
+++ b/AppScope/resources/base/element/string.json
@@ -0,0 +1,8 @@
+{
+  "string": [
+    {
+      "name": "app_name",
+      "value": "MyApplication"
+    }
+  ]
+}
diff --git a/AppScope/resources/base/media/app_icon.png b/AppScope/resources/base/media/app_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..a39445dc87828b76fed6d2ec470dd455c45319e3
GIT binary patch
literal 2777
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

literal 0
HcmV?d00001

diff --git a/README.md b/README.md
new file mode 100644
index 0000000..5f2b742
--- /dev/null
+++ b/README.md
@@ -0,0 +1,80 @@
+### hw1
+
+#### 设计
+
+> 实现一个todolist
+
+##### 主页面
+
+> 导航与tab
+
+- 展示已有的todo项,点击后跳转到 详情子页面✔
+- 添加按钮,点击后跳转到 添加子页面✔
+- 底部tab栏,包含两个页面:左边为本地版(即主页面),右边为网页版✔
+
+1. 如何让两个页面的数据同步、共享?—— @State & @Link
+2. 如何传递事项编号给子页面? —— 作为子页面的name传递,在pagemap处解析
+
+
+
+##### 详情子页面
+
+- 展示todolist详情✔
+- 返回主界面/删除 按钮✔
+
+
+
+##### 添加子页面
+
+> http,数据库
+
+- 通过http请求获取简单的信息:当前时间/天气?然后进行包装处理✔
+- 添加后把信息存储到数据库✔
+- 返回/添加 按钮及操作✔
+
+1. ⭐如何让添加操作返回后,原页面立即更新? —— pushDestination & onPop(父子都需要配置,且用push + onPop没办法)
+1. 如何存数据库 —— preference,把array转换为json格式存储,再把json转换为array展示(注意内容为空的时候不能转换为json,会报错),在每一次add/delete操作后对数据库进行存储(因为页面重启后没有回调,无法在最后进行存储)
+
+##### 网页版
+
+> WebView
+
+- 另写一个html格式的todolist展示
+- 展示已有的todo项,并且可以标记为已完成(同步)
+- 不进入详情页,不添加
+
+
+
+##### 其它
+
+让网页版和本地版的数据同步(也即“已完成”的状态)
+
+-> 让页面观察到isCompleted属性的改变 —— 每次改变这一属性的时候,替换整个对象(⭐否则只改变了对象的成员的值,对象的指针没有变化,页面无法观察到改变)
+
+-> 这一属性是由TodoItem控制的,因此往Item中传入整个对象数组以及index
+
+-> ForEach:
+
+- 遍历时的参数格式不能有误!必须先写item再写index,否则会把index识别为item
+
+  ```ts
+  ForEach(this.totalTasks, (item: TodoItemModel, index: number) => {...}
+  ```
+
+
+
+在交互时,遇到了这样的情况:
+
+ark改变 - web不改变
+
+web改变 - ark改变
+
+
+
+原因:web中检测不到数据的变化,这个数据是在web建立的一开始传入的,而且修改也不是通过web,因此无法通过web的监视器来监听,目前只能想到:在arkts中监听,有变化时手动更新web的数据✔
+
+
+
+#### 问题
+
+有bug:可能是因为本地页面的监视不够,只监视了对象数组,没有监视单个对象
\ No newline at end of file
diff --git a/build-profile.json5 b/build-profile.json5
new file mode 100644
index 0000000..45a0ea4
--- /dev/null
+++ b/build-profile.json5
@@ -0,0 +1,41 @@
+{
+  "app": {
+    "signingConfigs": [],
+    "products": [
+      {
+        "name": "default",
+        "signingConfig": "default",
+        "compatibleSdkVersion": "5.0.0(12)",
+        "runtimeOS": "HarmonyOS",
+        "buildOption": {
+          "strictMode": {
+            "caseSensitiveCheck": true,
+            "useNormalizedOHMUrl": true
+          }
+        }
+      }
+    ],
+    "buildModeSet": [
+      {
+        "name": "debug",
+      },
+      {
+        "name": "release"
+      }
+    ]
+  },
+  "modules": [
+    {
+      "name": "entry",
+      "srcPath": "./entry",
+      "targets": [
+        {
+          "name": "default",
+          "applyToProducts": [
+            "default"
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git a/code-linter.json5 b/code-linter.json5
new file mode 100644
index 0000000..5cfc74f
--- /dev/null
+++ b/code-linter.json5
@@ -0,0 +1,20 @@
+{
+  "files": [
+    "**/*.ets"
+  ],
+  "ignore": [
+    "**/src/ohosTest/**/*",
+    "**/src/test/**/*",
+    "**/src/mock/**/*",
+    "**/node_modules/**/*",
+    "**/oh_modules/**/*",
+    "**/build/**/*",
+    "**/.preview/**/*"
+  ],
+  "ruleSet": [
+    "plugin:@performance/recommended",
+    "plugin:@typescript-eslint/recommended"
+  ],
+  "rules": {
+  }
+}
\ No newline at end of file
diff --git a/entry/.gitignore b/entry/.gitignore
new file mode 100644
index 0000000..32abf8f
--- /dev/null
+++ b/entry/.gitignore
@@ -0,0 +1,6 @@
+/node_modules
+/oh_modules
+/.preview
+/build
+/.cxx
+/.test
\ No newline at end of file
diff --git a/entry/build-profile.json5 b/entry/build-profile.json5
new file mode 100644
index 0000000..dfb34f7
--- /dev/null
+++ b/entry/build-profile.json5
@@ -0,0 +1,28 @@
+{
+  "apiType": "stageMode",
+  "buildOption": {
+  },
+  "buildOptionSet": [
+    {
+      "name": "release",
+      "arkOptions": {
+        "obfuscation": {
+          "ruleOptions": {
+            "enable": false,
+            "files": [
+              "./obfuscation-rules.txt"
+            ]
+          }
+        }
+      }
+    },
+  ],
+  "targets": [
+    {
+      "name": "default"
+    },
+    {
+      "name": "ohosTest",
+    }
+  ]
+}
\ No newline at end of file
diff --git a/entry/hvigorfile.ts b/entry/hvigorfile.ts
new file mode 100644
index 0000000..ba9480d
--- /dev/null
+++ b/entry/hvigorfile.ts
@@ -0,0 +1,6 @@
+import { hapTasks } from '@ohos/hvigor-ohos-plugin';
+
+export default {
+    system: hapTasks,  /* Built-in plugin of Hvigor. It cannot be modified. */
+    plugins:[]         /* Custom plugin to extend the functionality of Hvigor. */
+}
diff --git a/entry/obfuscation-rules.txt b/entry/obfuscation-rules.txt
new file mode 100644
index 0000000..5ff2b5d
--- /dev/null
+++ b/entry/obfuscation-rules.txt
@@ -0,0 +1,23 @@
+# Define project specific obfuscation rules here.
+# You can include the obfuscation configuration files in the current module's build-profile.json5.
+#
+# For more details, see
+#   https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5
+
+# Obfuscation options:
+# -disable-obfuscation: disable all obfuscations
+# -enable-property-obfuscation: obfuscate the property names
+# -enable-toplevel-obfuscation: obfuscate the names in the global scope
+# -compact: remove unnecessary blank spaces and all line feeds
+# -remove-log: remove all console.* statements
+# -print-namecache: print the name cache that contains the mapping from the old names to new names
+# -apply-namecache: reuse the given cache file
+
+# Keep options:
+# -keep-property-name: specifies property names that you want to keep
+# -keep-global-name: specifies names that you want to keep in the global scope
+
+-enable-property-obfuscation
+-enable-toplevel-obfuscation
+-enable-filename-obfuscation
+-enable-export-obfuscation
\ No newline at end of file
diff --git a/entry/oh-package.json5 b/entry/oh-package.json5
new file mode 100644
index 0000000..2959d78
--- /dev/null
+++ b/entry/oh-package.json5
@@ -0,0 +1,10 @@
+{
+  "name": "entry",
+  "version": "1.0.0",
+  "description": "Please describe the basic information.",
+  "main": "",
+  "author": "",
+  "license": "",
+  "dependencies": {}
+}
+
diff --git a/entry/src/main/ets/common/CommonConstant.ets b/entry/src/main/ets/common/CommonConstant.ets
new file mode 100644
index 0000000..6d64fc5
--- /dev/null
+++ b/entry/src/main/ets/common/CommonConstant.ets
@@ -0,0 +1,69 @@
+export default class CommonConstants {
+
+  //每列宽度
+  static readonly column_space = 16
+
+  //事项框的宽/高度
+  static readonly list_width = '93.3%'
+  static readonly list_height = '64vp'
+  static readonly list_margin_top = '13vp'
+  static readonly list_margin_bottom = '64vp'
+
+  //事项打勾按钮
+  static readonly checkbox_width = '28vp'
+  static readonly checkbox_margin = '20vp'
+  //事项文字
+  static readonly item_font_size = '20fp'
+  static readonly item_font_weight = '500'
+  //不透明度
+  static readonly opacity_default = 1
+  static readonly opacity_completed = 0.4
+  //圆角
+  static readonly border_radius = 24
+
+  //不带返回按钮的 标题
+  static readonly title1_font_size = '33fp'
+  static readonly title1_font_height = '33vp'
+  static readonly title1_width = '75%'
+  static readonly title1_margin_top = '24vp'
+  static readonly title1_margin_bottom = '12vp'
+  static readonly title1_margin_left = '12vp'
+  //按钮
+  static readonly button_font_size = '20fp' //按钮的文本
+  static readonly button_font_size_yes = '20fp' //打勾按钮的文本
+  static readonly button_size = '45fp' //按钮大小
+  static readonly button_margin_top = '24vp'
+  static readonly button_margin_bottom = '12vp'
+  static readonly lb_margin_left = '-270'
+  static readonly rb_margin_left = '5'
+
+  //中间标题所占宽度
+  static readonly mid_title_col_width = '70%'
+  //详情
+  static readonly detail_margin_Left = '30'
+  static readonly detail_width = '40%'
+  //详情框
+  static readonly name_height = '80vp'
+  static readonly disc_height = '200vp'
+  static readonly time_height = '80vp'
+  //详情字体
+  static readonly detail_title_font_size = '25fp'
+  static readonly detail_font_size = '20fp'
+  static readonly time_font_size = '20fp'
+  static readonly detail_font_weight = '500'
+
+  //输入框
+  static readonly add_name_width = '20%'
+  static readonly input_container_width = '65%'
+  static readonly input_disc_height = '80%'
+  static readonly input_margin_left = '5'
+
+  static readonly TODO_DATA: Array<string> = [
+    "早起晨练",
+    "准备早餐",
+    "阅读名著",
+    "学习ArkTS",
+    "看剧放松",
+  ]
+
+}
\ No newline at end of file
diff --git a/entry/src/main/ets/entryability/EntryAbility.ets b/entry/src/main/ets/entryability/EntryAbility.ets
new file mode 100644
index 0000000..58056ae
--- /dev/null
+++ b/entry/src/main/ets/entryability/EntryAbility.ets
@@ -0,0 +1,41 @@
+import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
+import { hilog } from '@kit.PerformanceAnalysisKit';
+import { window } from '@kit.ArkUI';
+
+export default class EntryAbility extends UIAbility {
+  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
+    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
+  }
+
+  onDestroy(): void {
+    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');
+  }
+
+  onWindowStageCreate(windowStage: window.WindowStage): void {
+    // Main window is created, set main page for this ability
+    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
+
+    windowStage.loadContent('pages/Index', (err) => {
+      if (err.code) {
+        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
+        return;
+      }
+      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.');
+    });
+  }
+
+  onWindowStageDestroy(): void {
+    // Main window is destroyed, release UI related resources
+    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
+  }
+
+  onForeground(): void {
+    // Ability has brought to foreground
+    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');
+  }
+
+  onBackground(): void {
+    // Ability has back to background
+    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');
+  }
+}
diff --git a/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets
new file mode 100644
index 0000000..b72fc47
--- /dev/null
+++ b/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets
@@ -0,0 +1,12 @@
+import { hilog } from '@kit.PerformanceAnalysisKit';
+import { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit';
+
+export default class EntryBackupAbility extends BackupExtensionAbility {
+  async onBackup() {
+    hilog.info(0x0000, 'testTag', 'onBackup ok');
+  }
+
+  async onRestore(bundleVersion: BundleVersion) {
+    hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion));
+  }
+}
\ No newline at end of file
diff --git a/entry/src/main/ets/pages/Index.ets b/entry/src/main/ets/pages/Index.ets
new file mode 100644
index 0000000..f12db2a
--- /dev/null
+++ b/entry/src/main/ets/pages/Index.ets
@@ -0,0 +1,67 @@
+import {LocalPage} from '../pages/LocalPage'
+import {WebPage} from '../pages/WebPage'
+import DataModel from '../viewmodel/DataModel'
+import TodoItemModel from '../viewmodel/TodoItemModel';
+
+@Entry
+@Component
+struct Index {
+  @State currentIndex: number = 0; //导航栏下标
+  private tabsController: TabsController = new TabsController();
+
+  @State totalTasks: Array<TodoItemModel> = [] //todoList - root
+
+  async aboutToAppear(): Promise<void> { //数据库
+    await DataModel.getPreferences()
+    await DataModel.getPreferenceData()
+    this.totalTasks = DataModel.getData()
+  }
+
+  @Builder //导航栏
+  tabBarBuilder(title: string, targetIndex: number, selectedIcon: Resource, unselectIcon: Resource) {
+    Column() {
+      Image(this.currentIndex === targetIndex ? selectedIcon : unselectIcon)
+        .width(24)
+        .height(24)
+      Text(title)
+        .fontFamily('HarmonyHeiTi-Medium')
+        .fontSize(10)
+        .fontColor(this.currentIndex === targetIndex ? '#0A59F7' : 'rgba(0,0,0,0.60)')
+        .textAlign(TextAlign.Center)
+        .lineHeight(14)
+        .fontWeight(500)
+    }
+    .width('100%')
+    .height('100%')
+    .justifyContent(FlexAlign.Center)
+    .alignItems(HorizontalAlign.Center)
+    .onClick(() => {
+      this.currentIndex = targetIndex;
+      this.tabsController.changeIndex(targetIndex);
+    })
+  }
+
+  build() {
+    Column() {
+      Tabs({ barPosition: BarPosition.End, controller: this.tabsController }) {
+        TabContent() {
+          LocalPage({totalTasks: $totalTasks})
+        }
+        .tabBar(this.tabBarBuilder('本地版', 0, $r('app.media.ic_01_on'), $r('app.media.ic_01_off')))
+
+        TabContent() {
+          WebPage({totalTasks: $totalTasks})
+        }
+        .tabBar(this.tabBarBuilder('网页版', 1, $r('app.media.ic_03_on'), $r('app.media.ic_03_off')))
+      }
+      .vertical(false)
+      .divider({
+        strokeWidth: 0.5,
+        color: $r('app.color.grey2')
+      })
+      .scrollable(false)
+      .backgroundColor($r('app.color.grey'))
+      .height('102%')
+    }
+  }
+}
\ No newline at end of file
diff --git a/entry/src/main/ets/pages/LocalPage.ets b/entry/src/main/ets/pages/LocalPage.ets
new file mode 100644
index 0000000..7a810ec
--- /dev/null
+++ b/entry/src/main/ets/pages/LocalPage.ets
@@ -0,0 +1,79 @@
+import ToDoItem from '../view/TodoItem'
+import CommonConstants from '../common/CommonConstant'
+import TodoItemModel from '../viewmodel/TodoItemModel'
+import DataModel from '../viewmodel/DataModel'
+import AddItem from '../view/AddItem';
+import ItemDetail from '../view/ItemDetail';
+
+@Component
+export struct LocalPage {
+  @Link totalTasks: Array<TodoItemModel> //TodoList - link
+
+  @Provide('localPageStack') LocalPageStack: NavPathStack = new NavPathStack(); //router
+
+  @Builder
+  PageMap(name: string) {
+    if(name.substring(0, 10) == 'ItemDetail') {
+      ItemDetail({content: this.totalTasks[parseInt(name.substring(10))]})
+    }
+    else if(name == 'AddItem') {
+      AddItem()
+    }
+  }
+
+  build() {
+    Navigation(this.LocalPageStack) {
+      Row() { //顶栏
+        Text('待办事项')
+          .fontWeight(FontWeight.Bold)
+          .fontSize(CommonConstants.title1_font_size)
+          .lineHeight(CommonConstants.title1_font_height)
+          .width(CommonConstants.title1_width)
+          .margin({
+            top: CommonConstants.title1_margin_top,
+            bottom: CommonConstants.title1_margin_bottom,
+          })
+          .textAlign(TextAlign.Start)
+
+        Button('+')
+          .fontSize(CommonConstants.button_font_size)
+          .width(CommonConstants.button_size)
+          .height(CommonConstants.button_size)
+          .margin({
+            top: CommonConstants.title1_margin_top,
+            bottom: CommonConstants.title1_margin_bottom,
+            left: CommonConstants.rb_margin_left
+          })
+          .onClick(() => {
+            this.LocalPageStack.pushDestination({name:"AddItem", onPop: ()=> {
+              this.totalTasks = DataModel.getData() //返回时更新数据(应对添加数据的情况)
+            }})
+          })
+      }
+
+      Scroll() { //事项
+        Column({space: CommonConstants.column_space}) {
+          ForEach(this.totalTasks, (item: TodoItemModel, index: number) => {
+            ToDoItem({totalTasks: $totalTasks, myIndex: index, myTask: item})
+              .onClick(() => { //点击进入详情页
+                this.LocalPageStack.pushDestination({name: 'ItemDetail' + index, onPop: ()=> {
+                  this.totalTasks = DataModel.getData() //返回时更新数据(应对删除数据的情况)
+                }})
+                // item.itemName = '1' //在这里的改变无法被子组件察觉,而且不会存储
+              })
+          }, (item:string) => JSON.stringify(item))
+        }
+        .margin({bottom:10})
+      }
+      .align(Alignment.Top)
+      .margin({top: 10})
+      .width('100%')
+      .height('100%')
+      .backgroundColor($r("app.color.grey"))
+      .scrollBar(BarState.On)
+    }
+    .hideTitleBar(true)
+    .navDestination(this.PageMap)
+    .mode(NavigationMode.Stack)
+  }
+}
\ No newline at end of file
diff --git a/entry/src/main/ets/pages/WebPage.ets b/entry/src/main/ets/pages/WebPage.ets
new file mode 100644
index 0000000..3d043d7
--- /dev/null
+++ b/entry/src/main/ets/pages/WebPage.ets
@@ -0,0 +1,115 @@
+import { webview } from '@kit.ArkWeb'
+import TodoItemModel from '../viewmodel/TodoItemModel'
+import { http } from '@kit.NetworkKit'
+import { promptAction } from '@kit.ArkUI';
+
+interface HttpError {
+  message: string;
+  code: number;
+}
+
+interface SysTimeResponse {
+  sysTime1: string;
+  sysTime2: string;
+}
+
+class TestClass {
+
+  totalTasks: Array<TodoItemModel>
+
+  myTask: TodoItemModel = new TodoItemModel('','','','',false)
+
+  constructor(totalTasks: Array<TodoItemModel>) {this.totalTasks = totalTasks}
+
+  getTasks(): Array<TodoItemModel> {
+    return this.totalTasks
+  }
+
+  async markComplete(myIndex:number) {
+    this.myTask = this.totalTasks[myIndex]
+    this.myTask.isCompleted = !this.myTask.isCompleted
+    if(this.myTask.isCompleted) { //已完成
+      //请求时间
+      let httpRequest = http.createHttp();
+      let finishTime = ''
+      let count = 0
+      while(finishTime == '' && count<10) {
+        count++
+        await httpRequest.request('http://quan.suning.com/getSysTime.do', { // 苏宁时间戳API
+          method: http.RequestMethod.GET,
+        }).then((data) => {
+          if (data.responseCode === 200) {
+            let response = data.result + "";
+            console.info('Response: ' + response);
+
+            const json_res = JSON.parse(data.result + "") as SysTimeResponse
+            finishTime = json_res.sysTime2.substring(0,10)
+          } else {
+            console.error('Request failed with response code: ' + data.responseCode);
+          }
+        }).catch((err:HttpError) => {
+          console.error('Request error: ' + JSON.stringify(err));
+        })
+      }
+      httpRequest.destroy(); // 销毁HTTP请求对象
+      //请求结果
+      if(finishTime == '') { //请求失败,不操作
+        this.myTask.isCompleted = !this.myTask.isCompleted
+        promptAction.showToast({
+          message: '时间请求失败,请重试!'
+        })
+        return
+      }
+      else {
+        this.myTask.completeTime = finishTime
+      }
+    }
+    else { //更新后状态:未完成
+      this.myTask.completeTime = ''
+    }
+    //替换原来的对象
+    this.myTask = JSON.parse(JSON.stringify(this.myTask))
+    this.totalTasks.splice(myIndex, 1, this.myTask)
+    promptAction.showToast({
+      message: '更新成功!'
+    })
+    //只更新对象的属性
+    // let result = DataModel.updateData(this.myTask)
+    // if(result==-1) {
+    //   promptAction.showToast({
+    //     message: '更新失败,请刷新页面后重新尝试!'
+    //   })
+    // }
+    // else {
+    //   promptAction.showToast({
+    //     message: '更新成功!'
+    //   })
+    // }
+  }
+}
+
+@Component
+struct WebPage {
+  webController: WebviewController = new webview.WebviewController()
+
+  @Link @Watch('onUpdated') totalTasks: Array<TodoItemModel> //TodoList
+
+  onUpdated() {
+    // this.webController.runJavaScript('myRefresh()')
+    this.webController.runJavaScript('todoList.innerHTML = \'\'; myRefresh()')
+  }
+
+  myClass:TestClass = new TestClass(this.totalTasks)
+
+  build() {
+    Web({src: $rawfile('local/todo.html'), controller: this.webController})
+      .javaScriptProxy({
+        object: this.myClass,
+        name: "myClass",
+        methodList: ["getTasks", "markComplete"],
+        controller: this.webController
+      })
+  }
+}
+
+export { WebPage }
diff --git a/entry/src/main/ets/view/AddItem.ets b/entry/src/main/ets/view/AddItem.ets
new file mode 100644
index 0000000..9a8cc1e
--- /dev/null
+++ b/entry/src/main/ets/view/AddItem.ets
@@ -0,0 +1,230 @@
+import CommonConstants from '../common/CommonConstant'
+import { http } from '@kit.NetworkKit'
+import { promptAction } from '@kit.ArkUI';
+import DataModel from '../viewmodel/DataModel';
+import TodoItemModel from '../viewmodel/TodoItemModel';
+
+interface HttpError {
+  message: string;
+  code: number;
+}
+
+interface SysTimeResponse {
+  sysTime1: string;
+  sysTime2: string;
+}
+
+@Component
+export default struct AddItem {
+  @Consume('localPageStack') LocalPageStack: NavPathStack
+
+  @State itemName: string = ''
+  @State itemDisc: string = ''
+  @State itemTime: string = '获取当前时间'
+
+
+  build() {
+    NavDestination() {
+      Column() {
+        this.TitleBar()
+        this.MainPage()
+      }
+      .width('100%')
+      .height('100%')
+      .backgroundColor($r("app.color.grey"))
+      .margin({bottom:10})
+    }
+    .hideTitleBar(true)
+  }
+
+  @Builder
+  TitleBar() {
+    Row() {
+      Column() {
+        Button('<')
+          .fontSize(CommonConstants.button_font_size)
+          .width(CommonConstants.button_size)
+          .height(CommonConstants.button_size)
+          .margin({
+            top: CommonConstants.button_margin_top,
+            bottom: CommonConstants.button_margin_bottom,
+          })
+          .onClick(() => {
+            this.LocalPageStack.pop()
+          })
+      }
+
+      Column() {
+        Text('添加事项')
+          .fontWeight(FontWeight.Bold)
+          .fontSize(CommonConstants.title1_font_size)
+          .lineHeight(CommonConstants.title1_font_height)
+          .width(CommonConstants.title1_width)
+          .margin({
+            top: CommonConstants.title1_margin_top,
+            bottom: CommonConstants.title1_margin_bottom,
+          })
+          .textAlign(TextAlign.Center)
+      }
+      .width(CommonConstants.mid_title_col_width)
+
+      Column() {
+        Button('√')
+          .fontSize(CommonConstants.button_font_size_yes)
+          .width(CommonConstants.button_size)
+          .height(CommonConstants.button_size)
+          .margin({
+            top: CommonConstants.button_margin_top,
+            bottom: CommonConstants.button_margin_bottom,
+          })
+          .onClick(() => {
+            this.addItem()
+          })
+      }
+    }
+  }
+
+  @Builder
+  MainPage() {
+    Column() {
+      Row() {
+        Text('名字')
+          .fontSize(CommonConstants.detail_title_font_size)
+          .fontWeight(FontWeight.Bold)
+          .width(CommonConstants.add_name_width)
+          .margin({
+            left: CommonConstants.detail_margin_Left
+          })
+
+        TextInput({ placeholder: '请输入事项名字'})
+          .width(CommonConstants.input_container_width)
+          .margin({ left: CommonConstants.input_margin_left })
+          .backgroundColor($r('app.color.grey'))
+          .caretColor(Color.Blue) //光标
+          .placeholderColor(Color.Grey)
+          .placeholderFont({size: CommonConstants.detail_font_size})
+          .fontSize(CommonConstants.detail_font_size)
+          .onChange((value: string) => {
+            this.itemName = value;
+          })
+      }
+    }
+    .margin({
+      top: CommonConstants.list_margin_top
+    })
+    .width(CommonConstants.list_width)
+    .height(CommonConstants.name_height)
+    .backgroundColor($r('app.color.white'))
+    .borderRadius(CommonConstants.border_radius)
+    .justifyContent(FlexAlign.Center)
+    .alignItems(HorizontalAlign.Start)
+
+    Column() {
+      Row() {
+        Text('描述')
+          .fontSize(CommonConstants.detail_title_font_size)
+          .fontWeight(FontWeight.Bold)
+          .width(CommonConstants.add_name_width)
+          .margin({
+            left: CommonConstants.detail_margin_Left
+          })
+
+        TextArea({ placeholder: '请输入事项描述'})
+          .width(CommonConstants.input_container_width)
+          .height(CommonConstants.input_disc_height)
+          .margin({ left: CommonConstants.input_margin_left })
+          .backgroundColor($r('app.color.grey'))
+          .caretColor(Color.Blue) //光标
+          .placeholderColor(Color.Grey)
+          .placeholderFont({size: CommonConstants.detail_font_size})
+          .fontSize(CommonConstants.detail_font_size)
+          .onChange((value: string) => {
+            this.itemDisc = value;
+          })
+      }
+    }
+    .margin({
+      top: CommonConstants.list_margin_top
+    })
+    .width(CommonConstants.list_width)
+    .height(CommonConstants.disc_height)
+    .backgroundColor($r('app.color.white'))
+    .borderRadius(CommonConstants.border_radius)
+    .justifyContent(FlexAlign.Center)
+    .alignItems(HorizontalAlign.Start)
+
+    Column() {
+      Row() {
+        Text('时间')
+          .fontSize(CommonConstants.detail_title_font_size)
+          .fontWeight(FontWeight.Bold)
+          .width(CommonConstants.add_name_width)
+          .margin({
+            left: CommonConstants.detail_margin_Left
+          })
+
+        Button(this.itemTime)
+          .margin({ left: CommonConstants.input_margin_left })
+          .onClick(() => {
+            this.requestTime();
+          })
+      }
+    }
+    .margin({
+      top: CommonConstants.list_margin_top
+    })
+    .width(CommonConstants.list_width)
+    .height(CommonConstants.time_height)
+    .backgroundColor($r('app.color.white'))
+    .borderRadius(CommonConstants.border_radius)
+    .justifyContent(FlexAlign.Center)
+    .alignItems(HorizontalAlign.Start)
+  }
+
+  private requestTime() {
+    let httpRequest = http.createHttp();
+    httpRequest.request('http://quan.suning.com/getSysTime.do', { // 苏宁时间戳API
+      method: http.RequestMethod.GET,
+    }).then((data) => {
+      if (data.responseCode === 200) {
+        let response = data.result + "";
+        console.info('Response: ' + response);
+
+        const json_res = JSON.parse(data.result + "") as SysTimeResponse
+        this.itemTime = json_res.sysTime2.substring(0,10)
+      } else {
+        promptAction.showToast({
+          message: '时间请求失败,请重试!'
+        })
+        console.error('Request failed with response code: ' + data.responseCode);
+      }
+    }).catch((err:HttpError) => {
+      promptAction.showToast({
+        message: '时间请求失败,请重试!'
+      })
+      console.error('Request error: ' + JSON.stringify(err));
+    }).finally(() => {
+      httpRequest.destroy(); // 销毁HTTP请求对象
+    });
+  }
+
+  private addItem() {
+    let result = DataModel.addData(new TodoItemModel(this.itemName, this.itemDisc, this.itemTime, '', false))
+    if(result == -1) {
+      promptAction.showToast({
+        message: '添加失败,已有该目标项!'
+      })
+    }
+    else if(result == 0) {
+      promptAction.showToast({
+        message: '添加失败,请检查是否填写完整!'
+      })
+    }
+    else {
+      promptAction.showToast({
+        message: '添加成功!'
+      })
+      this.LocalPageStack.pop({}, true)
+    }
+  }
+}
\ No newline at end of file
diff --git a/entry/src/main/ets/view/ItemDetail.ets b/entry/src/main/ets/view/ItemDetail.ets
new file mode 100644
index 0000000..497eeff
--- /dev/null
+++ b/entry/src/main/ets/view/ItemDetail.ets
@@ -0,0 +1,197 @@
+import CommonConstants from '../common/CommonConstant'
+import DataModel from '../viewmodel/DataModel'
+import TodoItemModel from '../viewmodel/TodoItemModel'
+import { promptAction } from '@kit.ArkUI'
+
+@Component
+export default struct ItemDetail {
+  @Consume('localPageStack') LocalPageStack: NavPathStack
+
+  content: TodoItemModel = new TodoItemModel('', '', '', '', false)
+
+  build() {
+    NavDestination() {
+      Column() {
+        this.TopBar()
+        this.MainPage()
+      }
+      .width('100%')
+      .height('100%')
+      .backgroundColor($r("app.color.grey"))
+      .margin({bottom:10})
+
+    }
+    .hideTitleBar(true)
+  }
+
+  @Builder
+  TopBar() {
+    Row() {
+      Column() {
+        Button('<')
+          .fontSize(CommonConstants.button_font_size)
+          .width(CommonConstants.button_size)
+          .height(CommonConstants.button_size)
+          .margin({
+            top: CommonConstants.button_margin_top,
+            bottom: CommonConstants.button_margin_bottom,
+          })
+          .onClick(() => {
+            this.LocalPageStack.pop()
+          })
+      }
+
+      Column() {
+        Text('事项详情')
+          .fontWeight(FontWeight.Bold)
+          .fontSize(CommonConstants.title1_font_size)
+          .lineHeight(CommonConstants.title1_font_height)
+          .width(CommonConstants.title1_width)
+          .margin({
+            top: CommonConstants.title1_margin_top,
+            bottom: CommonConstants.title1_margin_bottom,
+          })
+          .textAlign(TextAlign.Center)
+      }
+      .width(CommonConstants.mid_title_col_width)
+
+      Column() {
+        Button('×')
+          .fontSize(CommonConstants.button_font_size_yes)
+          .width(CommonConstants.button_size)
+          .height(CommonConstants.button_size)
+          .margin({
+            top: CommonConstants.button_margin_top,
+            bottom: CommonConstants.button_margin_bottom,
+          })
+          .onClick(() => {
+            this.deleteItem()
+          })
+      }
+    }
+  }
+
+  @Builder
+  MainPage() {
+    Column() {
+      Row() {
+        Text('名字')
+          .fontSize(CommonConstants.detail_title_font_size)
+          .fontWeight(FontWeight.Bold)
+          .width(CommonConstants.detail_width)
+          .margin({
+            left: CommonConstants.detail_margin_Left
+          })
+
+        Text(this.content.itemName)
+          .fontSize(CommonConstants.detail_font_size)
+          .width(CommonConstants.detail_width)
+          .textAlign(TextAlign.Center)
+      }
+    }
+    .margin({
+      top: CommonConstants.list_margin_top
+    })
+    .width(CommonConstants.list_width)
+    .height(CommonConstants.name_height)
+    .backgroundColor($r('app.color.white'))
+    .borderRadius(CommonConstants.border_radius)
+    .justifyContent(FlexAlign.Center)
+    .alignItems(HorizontalAlign.Start)
+
+    Column() {
+      Row() {
+        Text('描述')
+          .fontSize(CommonConstants.detail_title_font_size)
+          .fontWeight(FontWeight.Bold)
+          .width(CommonConstants.detail_width)
+          .margin({
+            left: CommonConstants.detail_margin_Left
+          })
+
+        Scroll() {
+          Text(this.content.itemDisc)
+            .fontSize(CommonConstants.detail_font_size)
+            .width(CommonConstants.detail_width)
+            .textAlign(TextAlign.Center)
+        }
+      }
+    }
+    .margin({
+      top: CommonConstants.list_margin_top
+    })
+    .width(CommonConstants.list_width)
+    .height(CommonConstants.disc_height)
+    .backgroundColor($r('app.color.white'))
+    .borderRadius(CommonConstants.border_radius)
+    .justifyContent(FlexAlign.Center)
+    .alignItems(HorizontalAlign.Start)
+
+    Column() {
+      Row() {
+        Text('时间')
+          .fontSize(CommonConstants.detail_title_font_size)
+          .fontWeight(FontWeight.Bold)
+          .width(CommonConstants.detail_width)
+          .margin({
+            left: CommonConstants.detail_margin_Left
+          })
+
+        Scroll() {
+          Text(this.content.itemTime)
+            .fontSize(CommonConstants.detail_font_size)
+            .width(CommonConstants.detail_width)
+            .textAlign(TextAlign.Center)
+        }
+      }
+    }
+    .margin({
+      top: CommonConstants.list_margin_top
+    })
+    .width(CommonConstants.list_width)
+    .height(CommonConstants.time_height)
+    .backgroundColor($r('app.color.white'))
+    .borderRadius(CommonConstants.border_radius)
+    .justifyContent(FlexAlign.Center)
+    .alignItems(HorizontalAlign.Start)
+
+    if(this.content.isCompleted) {
+      Column() {
+        Row() {
+          Text('完成时间')
+            .fontSize(CommonConstants.detail_title_font_size)
+            .fontWeight(FontWeight.Bold)
+            .width(CommonConstants.detail_width)
+            .margin({
+              left: CommonConstants.detail_margin_Left
+            })
+
+          Scroll() {
+            Text(this.content.completeTime)
+              .fontSize(CommonConstants.detail_font_size)
+              .width(CommonConstants.detail_width)
+              .textAlign(TextAlign.Center)
+          }
+        }
+      }
+      .margin({
+        top: CommonConstants.list_margin_top
+      })
+      .width(CommonConstants.list_width)
+      .height(CommonConstants.time_height)
+      .backgroundColor($r('app.color.white'))
+      .borderRadius(CommonConstants.border_radius)
+      .justifyContent(FlexAlign.Center)
+      .alignItems(HorizontalAlign.Start)
+    }
+
+  }
+
+  private deleteItem() {
+    DataModel.deleteData(this.content)
+    promptAction.showToast({
+      message: '删除成功!'
+    })
+    this.LocalPageStack.pop({},true)
+  }
+}
\ No newline at end of file
diff --git a/entry/src/main/ets/view/TodoItem.ets b/entry/src/main/ets/view/TodoItem.ets
new file mode 100644
index 0000000..a69faa7
--- /dev/null
+++ b/entry/src/main/ets/view/TodoItem.ets
@@ -0,0 +1,121 @@
+import CommonConstants from '../common/CommonConstant'
+import TodoItemModel from '../viewmodel/TodoItemModel'
+import { promptAction } from '@kit.ArkUI'
+import { http } from '@kit.NetworkKit'
+
+interface HttpError {
+  message: string;
+  code: number;
+}
+
+interface SysTimeResponse {
+  sysTime1: string;
+  sysTime2: string;
+}
+
+@Component
+export default struct ToDoItem {
+  @Link totalTasks: Array<TodoItemModel> //todolist
+
+  @State myIndex: number = 0 //本项的下标
+
+  @State myTask: TodoItemModel = new TodoItemModel('', '', '', '', false) //本项的详情
+  // 加了state才能察觉到元素的改变,不加无法察觉
+
+  @Consume('localPageStack') LocalPageStack: NavPathStack
+
+  @Builder labelIcon(icon: Resource) {
+    Image(icon)
+      .objectFit(ImageFit.Contain)
+      .width(CommonConstants.checkbox_width)
+      .height(CommonConstants.checkbox_width)
+      .margin(CommonConstants.checkbox_margin)
+      .onClick(() => {
+        // this.myTask.isCompleted = !this.myTask.isCompleted
+        this.markComplete()
+      })
+  }
+
+  build() {
+    Row() {
+      if(this.myTask.isCompleted) {
+        this.labelIcon($r('app.media.ic_ok'))
+      }
+      else {
+        this.labelIcon($r('app.media.ic_default'))
+      }
+
+      Text(this.myTask.itemName)
+        .fontSize(CommonConstants.item_font_size)
+        .fontWeight(CommonConstants.item_font_weight)
+        .opacity(this.myTask.isCompleted ? CommonConstants.opacity_completed : CommonConstants.opacity_default)
+        .decoration({type: this.myTask.isCompleted ? TextDecorationType.LineThrough : TextDecorationType.None})
+    }
+    .backgroundColor($r('app.color.white'))
+    .width(CommonConstants.list_width)
+    .height(CommonConstants.list_height)
+    .borderRadius(CommonConstants.border_radius)
+  }
+
+  async markComplete() {
+    this.myTask.isCompleted = !this.myTask.isCompleted
+    // this.myTask.itemName = 'aaa' //在这里的改变可以被察觉
+    if(this.myTask.isCompleted) { //已完成
+      //请求时间
+      let httpRequest = http.createHttp();
+      let finishTime = ''
+      let count = 0
+      while(finishTime == '' && count<10) { //循环直到请求到时间
+        count++
+        await httpRequest.request('http://quan.suning.com/getSysTime.do', { // 苏宁时间戳API
+          method: http.RequestMethod.GET,
+        }).then((data) => {
+          if (data.responseCode === 200) {
+            let response = data.result + "";
+            console.info('Response: ' + response);
+
+            const json_res = JSON.parse(data.result + "") as SysTimeResponse
+            finishTime = json_res.sysTime2.substring(0,10)
+          } else {
+            console.error('Request failed with response code: ' + data.responseCode);
+          }
+        }).catch((err:HttpError) => {
+          console.error('Request error: ' + JSON.stringify(err));
+        })
+      }
+      httpRequest.destroy(); // 销毁HTTP请求对象
+      //请求结果
+      if(finishTime == '') { //请求失败,不操作
+        this.myTask.isCompleted = !this.myTask.isCompleted
+        promptAction.showToast({
+          message: '时间请求失败,请重试!'
+        })
+        return
+      }
+      else {
+        this.myTask.completeTime = finishTime
+      }
+    }
+    else { //更新后状态:未完成
+      this.myTask.completeTime = ''
+    }
+    //替换原来的对象
+    this.myTask = JSON.parse(JSON.stringify(this.myTask))
+    this.totalTasks.splice(this.myIndex, 1, this.myTask)
+    promptAction.showToast({
+      message: '更新成功!'
+    })
+    //只更新对象的属性
+    // let result = DataModel.updateData(this.myTask)
+    // if(result==-1) {
+    //   promptAction.showToast({
+    //     message: '更新失败,请刷新页面后重新尝试!'
+    //   })
+    // }
+    // else {
+    //   promptAction.showToast({
+    //     message: '更新成功!'
+    //   })
+    // }
+  }
+}
\ No newline at end of file
diff --git a/entry/src/main/ets/viewmodel/DataModel.ets b/entry/src/main/ets/viewmodel/DataModel.ets
new file mode 100644
index 0000000..8ed3fe0
--- /dev/null
+++ b/entry/src/main/ets/viewmodel/DataModel.ets
@@ -0,0 +1,86 @@
+import TodoItemModel from './TodoItemModel'
+import {preferences} from '@kit.ArkData'
+
+let context = getContext(this)
+let preference: preferences.Preferences
+
+export class DataModel {
+  private items: Array<TodoItemModel> = []
+
+  getData(): Array<TodoItemModel> {
+    return this.items
+  }
+
+  deleteData(item: TodoItemModel) {
+    let indexToRemove = this.items.indexOf(item);
+    if (indexToRemove !== -1) {
+      this.items.splice(indexToRemove, 1);
+      this.addPreference()
+    }
+  }
+
+  addData(item: TodoItemModel) {
+    if(item.itemName == '' || item.itemDisc == '' || item.itemTime == '获取当前时间') {
+      return 0;
+    }
+    for(let i=0; i<this.items.length; i++) {
+      if(this.items[i].itemName == item.itemName
+      && this.items[i].itemDisc == item.itemDisc
+      && this.items[i].itemTime == item.itemTime) {
+        return -1;
+      }
+    }
+    this.items.push(item)
+    this.addPreference()
+    return 1
+  }
+
+  updateData(item: TodoItemModel) {
+    for(let i=0; i<this.items.length; i++) {
+      if(this.items[i].itemName == item.itemName
+        && this.items[i].itemDisc == item.itemDisc
+        && this.items[i].itemTime == item.itemTime) {
+        this.items[i] = item
+        this.addPreference()
+        return 0
+      }
+    }
+    return -1
+  }
+
+  async getPreferences() {
+    try {
+      console.log('get Preferences')
+      preference = await preferences.getPreferences(context, 'items')
+    }
+    catch (err) {
+      console.error(err)
+    }
+  }
+
+  async addPreference() {
+    try {
+      await preference.put('item', JSON.stringify(this.items))
+    }
+    catch (err) {
+      console.error(err)
+    }
+    await preference.flush()
+  }
+
+  async getPreferenceData() {
+    try {
+      console.log('get PreferenceData')
+      let res = await preference.get('item', '')
+      if(res.toString() != '') {
+        this.items = JSON.parse(res.toString())
+      }
+    }
+    catch (err) {
+      console.warn('getPreferenceData err')
+      console.error(err)
+    }
+  }
+}
+
+export default new DataModel()
\ No newline at end of file
diff --git a/entry/src/main/ets/viewmodel/TodoItemModel.ets b/entry/src/main/ets/viewmodel/TodoItemModel.ets
new file mode 100644
index 0000000..4ae4e8d
--- /dev/null
+++ b/entry/src/main/ets/viewmodel/TodoItemModel.ets
@@ -0,0 +1,19 @@
+export default class TodoItemModel {
+  itemName: string
+
+  itemDisc: string
+
+  itemTime: string
+
+  completeTime: string
+
+  isCompleted: boolean
+
+  constructor(itemName: string, itemDisc: string, itemTime: string, completeTime: string, isCompleted: boolean) {
+    this.itemName = itemName
+    this.itemDisc = itemDisc
+    this.itemTime = itemTime
+    this.completeTime = completeTime
+    this.isCompleted = isCompleted
+  }
+}
\ No newline at end of file
diff --git a/entry/src/main/module.json5 b/entry/src/main/module.json5
new file mode 100644
index 0000000..48e2ae6
--- /dev/null
+++ b/entry/src/main/module.json5
@@ -0,0 +1,57 @@
+{
+  "module": {
+    "name": "entry",
+    "type": "entry",
+    "description": "$string:module_desc",
+    "mainElement": "EntryAbility",
+    "deviceTypes": [
+      "phone",
+      "tablet",
+      "2in1"
+    ],
+    "deliveryWithInstall": true,
+    "installationFree": false,
+    "pages": "$profile:main_pages",
+    "abilities": [
+      {
+        "name": "EntryAbility",
+        "srcEntry": "./ets/entryability/EntryAbility.ets",
+        "description": "$string:EntryAbility_desc",
+        "icon": "$media:layered_image",
+        "label": "$string:EntryAbility_label",
+        "startWindowIcon": "$media:startIcon",
+        "startWindowBackground": "$color:white",
+        "exported": true,
+        "skills": [
+          {
+            "entities": [
+              "entity.system.home"
+            ],
+            "actions": [
+              "action.system.home"
+            ]
+          }
+        ]
+      }
+    ],
+    "requestPermissions": [
+      {
+        name: "ohos.permission.INTERNET"
+      }
+    ],
+    "extensionAbilities": [
+      {
+        "name": "EntryBackupAbility",
+        "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets",
+        "type": "backup",
+        "exported": false,
+        "metadata": [
+          {
+            "name": "ohos.extension.backup",
+            "resource": "$profile:backup_config"
+          }
+        ],
+      }
+    ]
+  }
+}
\ No newline at end of file
diff --git a/entry/src/main/resources/base/element/color.json b/entry/src/main/resources/base/element/color.json
new file mode 100644
index 0000000..2dae8c6
--- /dev/null
+++ b/entry/src/main/resources/base/element/color.json
@@ -0,0 +1,20 @@
+{
+  "color": [
+    {
+      "name": "white",
+      "value": "#FFFFFF"
+    },
+    {
+      "name": "grey",
+      "value": "#F1F3F5"
+    },
+    {
+      "name": "grey2",
+      "value": "#FFE2E1E1"
+    },
+    {
+      "name": "blue",
+      "value": "#FF0090DD"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/entry/src/main/resources/base/element/float.json b/entry/src/main/resources/base/element/float.json
new file mode 100644
index 0000000..cf77ca9
--- /dev/null
+++ b/entry/src/main/resources/base/element/float.json
@@ -0,0 +1,36 @@
+{
+  "float": [
+    {
+      "name": "checkbox_width",
+      "value": "28vp"
+    },
+    {
+      "name": "checkbox_margin",
+      "value": "20vp"
+    },
+    {
+      "name": "item_font_size",
+      "value": "20fp"
+    },
+    {
+      "name": "title1_font_size",
+      "value": "28fp"
+    },
+    {
+      "name": "title1_font_height",
+      "value": "33vp"
+    },
+    {
+      "name": "title1_margin_top",
+      "value": "24vp"
+    },
+    {
+      "name": "title1_margin_bottom",
+      "value": "12vp"
+    },
+    {
+      "name": "list_item_height",
+      "value": "64vp"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/entry/src/main/resources/base/element/string.json b/entry/src/main/resources/base/element/string.json
new file mode 100644
index 0000000..6b976fb
--- /dev/null
+++ b/entry/src/main/resources/base/element/string.json
@@ -0,0 +1,16 @@
+{
+  "string": [
+    {
+      "name": "module_desc",
+      "value": "module description"
+    },
+    {
+      "name": "EntryAbility_desc",
+      "value": "description"
+    },
+    {
+      "name": "EntryAbility_label",
+      "value": "label"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/entry/src/main/resources/base/media/background.png b/entry/src/main/resources/base/media/background.png
new file mode 100644
index 0000000000000000000000000000000000000000..f939c9fa8cc8914832e602198745f592a0dfa34d
GIT binary patch
literal 57364
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
A4*&oF

literal 0
HcmV?d00001

diff --git a/entry/src/main/resources/base/media/foreground.png b/entry/src/main/resources/base/media/foreground.png
new file mode 100644
index 0000000000000000000000000000000000000000..4483ddad1f079e1089d685bd204ee1cfe1d01902
GIT binary patch
literal 12430
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

literal 0
HcmV?d00001

diff --git a/entry/src/main/resources/base/media/ic_01_off.svg b/entry/src/main/resources/base/media/ic_01_off.svg
new file mode 100644
index 0000000..aa02507
--- /dev/null
+++ b/entry/src/main/resources/base/media/ic_01_off.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>ic_01_offmdpi</title>
+    <g id="ic_01_off" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <rect id="矩形" x="0" y="0" width="24" height="24"></rect>
+        <path d="M15.4583333,1 C16.7700096,1 17.8333333,2.0553288 17.8333333,3.35714286 L17.8333333,20.6428571 C17.8333333,21.9446712 16.7700096,23 15.4583333,23 L4.375,23 C3.06332372,23 2,21.9446712 2,20.6428571 L2,3.35714286 C2,2.0553288 3.06332372,1 4.375,1 L15.4583333,1 Z" id="形状" fill="#999999" style="mix-blend-mode: multiply;"></path>
+        <rect id="矩形" fill="#BFBFBF" x="14.875" y="12.7857143" width="7.125" height="10.2142857" rx="2.35714286"></rect>
+        <path d="M14.6666667,5.77640641 C14.6666667,6.17703976 14.3394287,6.50184399 13.9357603,6.50184399 C13.7697923,6.50184399 13.6087659,6.44575696 13.4791667,6.34285714 L12.5389418,5.59633273 C12.3943761,5.48154973 12.1889573,5.48154973 12.0443916,5.59633273 L11.1041667,6.34285714 C10.7889545,6.59313079 10.3290007,6.54240909 10.076831,6.22956696 C9.97315169,6.10094216 9.91666667,5.94112654 9.91666667,5.77640641 L9.91666667,1 L14.6666667,1 Z" id="形状结合" fill-opacity="0.401735959" fill="#FFFFFF"></path>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/entry/src/main/resources/base/media/ic_01_on.svg b/entry/src/main/resources/base/media/ic_01_on.svg
new file mode 100644
index 0000000..3244509
--- /dev/null
+++ b/entry/src/main/resources/base/media/ic_01_on.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>ic_01_onmdpi</title>
+    <g id="ic_01_on" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <path d="M15.4583333,1 C16.7700096,1 17.8333333,2.0553288 17.8333333,3.35714286 L17.8333333,20.6428571 C17.8333333,21.9446712 16.7700096,23 15.4583333,23 L4.375,23 C3.06332372,23 2,21.9446712 2,20.6428571 L2,3.35714286 C2,2.0553288 3.06332372,1 4.375,1 L15.4583333,1 Z" id="形状" fill="#0A59F7" style="mix-blend-mode: multiply;"></path>
+        <rect id="矩形" fill="#CEDDFD" x="14.875" y="12.7857143" width="7.125" height="10.2142857" rx="2.35714286"></rect>
+        <path d="M14.6666667,5.77640641 C14.6666667,6.17703976 14.3394287,6.50184399 13.9357603,6.50184399 C13.7697923,6.50184399 13.6087659,6.44575696 13.4791667,6.34285714 L12.5389418,5.59633273 C12.3943761,5.48154973 12.1889573,5.48154973 12.0443916,5.59633273 L11.1041667,6.34285714 C10.7889545,6.59313079 10.3290007,6.54240909 10.076831,6.22956696 C9.97315169,6.10094216 9.91666667,5.94112654 9.91666667,5.77640641 L9.91666667,1 L14.6666667,1 Z" id="形状结合" fill-opacity="0.401735959" fill="#FFFFFF"></path>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/entry/src/main/resources/base/media/ic_02_off.svg b/entry/src/main/resources/base/media/ic_02_off.svg
new file mode 100644
index 0000000..bbdf5ac
--- /dev/null
+++ b/entry/src/main/resources/base/media/ic_02_off.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>ic_02_offmdpi</title>
+    <g id="ic_02_off" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <path d="M20.6842105,2.48053129 C21.9075781,2.48053129 22.9093844,3.46324769 22.9941855,4.70823723 L23,4.87956653 L23,17.5410806 C23,19.2500419 21.842063,20.7124546 20.2461037,21.061605 L20.0443795,21.0993878 L13.0969732,22.1854576 C12.9421409,22.6590953 12.5095003,23 12,23 C11.4904997,23 11.0578592,22.6590953 10.9030267,22.1854576 L3.95562046,21.0993878 C2.25644205,20.8338943 1,19.3212485 1,17.5410806 L1,4.87956653 C1,3.55461595 2.03681426,2.48053129 3.31578948,2.48053129 C3.45560847,2.48053129 3.59514018,2.49364907 3.73267499,2.51972389 L9.15164406,3.54709073 C10.8015172,3.85988545 12,5.34928718 12,7.08685468 L12.0057049,6.8795972 C12.0926488,5.3036515 13.1649591,3.96827453 14.6441766,3.59234005 L14.848356,3.54709073 L20.267325,2.51972389 C20.4048598,2.49364907 20.5443916,2.48053129 20.6842105,2.48053129 Z" id="路径" fill-opacity="0.2" fill="#000000" fill-rule="nonzero"></path>
+        <path d="M6.05026204,1.04243136 L10.1028936,1.84270041 C11.1949979,2.05835713 11.985062,3.04757157 11.985062,4.19930429 L11.985062,18.757371 C11.985062,19.4198462 11.4666549,19.9568885 10.8271673,19.9568885 C10.7544142,19.9568885 10.6818231,19.9497853 10.6103568,19.9356729 L5.1830199,18.8639422 C4.09091562,18.6482855 3.3008515,17.659071 3.3008515,16.5073383 L3.3008515,3.39903524 C3.3008515,2.07408466 4.33766576,1 5.61664097,1 C5.76214713,1 5.90732944,1.01420661 6.05026204,1.04243136 Z" id="路径" fill="#FFFFFF" fill-rule="nonzero"></path>
+        <path d="M14.6741818,1.04243136 L18.7268133,1.84270041 C19.8189177,2.05835713 20.6089818,3.04757157 20.6089818,4.19930429 L20.6089818,18.757371 C20.6089818,19.4198462 20.0905746,19.9568885 19.451087,19.9568885 C19.3783339,19.9568885 19.3057428,19.9497853 19.2342765,19.9356729 L13.8069396,18.8639422 C12.7148354,18.6482855 11.9247712,17.659071 11.9247712,16.5073383 L11.9247712,3.39903524 C11.9247712,2.07408466 12.9615855,1 14.2405607,1 C14.3860668,1 14.5312491,1.01420661 14.6741818,1.04243136 Z" id="路径" fill="#FFFFFF" fill-rule="nonzero" transform="translate(16.266876, 10.478444) scale(-1, 1) translate(-16.266876, -10.478444) "></path>
+        <path d="M6.05026204,1.04243136 L10.1028936,1.84270041 C11.1949979,2.05835713 11.985062,3.04757157 11.985062,4.19930429 L11.985062,18.757371 C11.985062,19.4198462 11.4666549,19.9568885 10.8271673,19.9568885 C10.7544142,19.9568885 10.6818231,19.9497853 10.6103568,19.9356729 L5.1830199,18.8639422 C4.09091562,18.6482855 3.3008515,17.659071 3.3008515,16.5073383 L3.3008515,3.39903524 C3.3008515,2.07408466 4.33766576,1 5.61664097,1 C5.76214713,1 5.90732944,1.01420661 6.05026204,1.04243136 Z" id="路径" fill-opacity="0.25" fill="#000000" fill-rule="nonzero"></path>
+        <path d="M14.6741818,1.04243136 L18.7268133,1.84270041 C19.8189177,2.05835713 20.6089818,3.04757157 20.6089818,4.19930429 L20.6089818,18.757371 C20.6089818,19.4198462 20.0905746,19.9568885 19.451087,19.9568885 C19.3783339,19.9568885 19.3057428,19.9497853 19.2342765,19.9356729 L13.8069396,18.8639422 C12.7148354,18.6482855 11.9247712,17.659071 11.9247712,16.5073383 L11.9247712,3.39903524 C11.9247712,2.07408466 12.9615855,1 14.2405607,1 C14.3860668,1 14.5312491,1.01420661 14.6741818,1.04243136 Z" id="路径" fill-opacity="0.4" fill="#000000" fill-rule="nonzero" transform="translate(16.266876, 10.478444) scale(-1, 1) translate(-16.266876, -10.478444) "></path>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/entry/src/main/resources/base/media/ic_02_on.svg b/entry/src/main/resources/base/media/ic_02_on.svg
new file mode 100644
index 0000000..0c62078
--- /dev/null
+++ b/entry/src/main/resources/base/media/ic_02_on.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>ic_02_onmdpi</title>
+    <g id="ic_02_on" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <path d="M20.6842105,2.48053129 C21.9075781,2.48053129 22.9093844,3.46324769 22.9941855,4.70823723 L23,4.87956653 L23,17.5410806 C23,19.2500419 21.842063,20.7124546 20.2461037,21.061605 L20.0443795,21.0993878 L13.0969732,22.1854576 C12.9421409,22.6590953 12.5095003,23 12,23 C11.4904997,23 11.0578592,22.6590953 10.9030267,22.1854576 L3.95562046,21.0993878 C2.25644205,20.8338943 1,19.3212485 1,17.5410806 L1,4.87956653 C1,3.55461595 2.03681426,2.48053129 3.31578948,2.48053129 C3.45560847,2.48053129 3.59514018,2.49364907 3.73267499,2.51972389 L9.15164406,3.54709073 C10.8015172,3.85988545 12,5.34928718 12,7.08685468 L12.0057049,6.8795972 C12.0926488,5.3036515 13.1649591,3.96827453 14.6441766,3.59234005 L14.848356,3.54709073 L20.267325,2.51972389 C20.4048598,2.49364907 20.5443916,2.48053129 20.6842105,2.48053129 Z" id="路径" fill="#0A59F7" fill-rule="nonzero"></path>
+        <path d="M6.05026204,1.04243136 L10.1028936,1.84270041 C11.1949979,2.05835713 11.985062,3.04757157 11.985062,4.19930429 L11.985062,18.757371 C11.985062,19.4198462 11.4666549,19.9568885 10.8271673,19.9568885 C10.7544142,19.9568885 10.6818231,19.9497853 10.6103568,19.9356729 L5.1830199,18.8639422 C4.09091562,18.6482855 3.3008515,17.659071 3.3008515,16.5073383 L3.3008515,3.39903524 C3.3008515,2.07408466 4.33766576,1 5.61664097,1 C5.76214713,1 5.90732944,1.01420661 6.05026204,1.04243136 Z" id="路径" fill="#0A59F7" fill-rule="nonzero"></path>
+        <path d="M14.6741818,1.04243136 L18.7268133,1.84270041 C19.8189177,2.05835713 20.6089818,3.04757157 20.6089818,4.19930429 L20.6089818,18.757371 C20.6089818,19.4198462 20.0905746,19.9568885 19.451087,19.9568885 C19.3783339,19.9568885 19.3057428,19.9497853 19.2342765,19.9356729 L13.8069396,18.8639422 C12.7148354,18.6482855 11.9247712,17.659071 11.9247712,16.5073383 L11.9247712,3.39903524 C11.9247712,2.07408466 12.9615855,1 14.2405607,1 C14.3860668,1 14.5312491,1.01420661 14.6741818,1.04243136 Z" id="路径" fill="#0A59F7" fill-rule="nonzero" transform="translate(16.266876, 10.478444) scale(-1, 1) translate(-16.266876, -10.478444) "></path>
+        <path d="M6.05026204,1.04243136 L10.1028936,1.84270041 C11.1949979,2.05835713 11.985062,3.04757157 11.985062,4.19930429 L11.985062,18.757371 C11.985062,19.4198462 11.4666549,19.9568885 10.8271673,19.9568885 C10.7544142,19.9568885 10.6818231,19.9497853 10.6103568,19.9356729 L5.1830199,18.8639422 C4.09091562,18.6482855 3.3008515,17.659071 3.3008515,16.5073383 L3.3008515,3.39903524 C3.3008515,2.07408466 4.33766576,1 5.61664097,1 C5.76214713,1 5.90732944,1.01420661 6.05026204,1.04243136 Z" id="路径" fill-opacity="0.25" fill="#FFFFFF" fill-rule="nonzero"></path>
+        <path d="M14.6741818,1.04243136 L18.7268133,1.84270041 C19.8189177,2.05835713 20.6089818,3.04757157 20.6089818,4.19930429 L20.6089818,18.757371 C20.6089818,19.4198462 20.0905746,19.9568885 19.451087,19.9568885 C19.3783339,19.9568885 19.3057428,19.9497853 19.2342765,19.9356729 L13.8069396,18.8639422 C12.7148354,18.6482855 11.9247712,17.659071 11.9247712,16.5073383 L11.9247712,3.39903524 C11.9247712,2.07408466 12.9615855,1 14.2405607,1 C14.3860668,1 14.5312491,1.01420661 14.6741818,1.04243136 Z" id="路径" fill-opacity="0.4" fill="#FFFFFF" fill-rule="nonzero" transform="translate(16.266876, 10.478444) scale(-1, 1) translate(-16.266876, -10.478444) "></path>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/entry/src/main/resources/base/media/ic_03_off.svg b/entry/src/main/resources/base/media/ic_03_off.svg
new file mode 100644
index 0000000..07e00c3
--- /dev/null
+++ b/entry/src/main/resources/base/media/ic_03_off.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>ic_03_offmdpi</title>
+    <g id="ic_03_off" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <path d="M6.29561884,1.23609679 C6.36668269,1.64416884 6.09348356,2.03258524 5.6854115,2.10364909 C5.06260385,2.21210814 4.68498237,2.566507 4.56833715,3.19636152 C4.56943353,3.20282656 4.56858748,3.20799979 4.56768604,3.21317618 C4.55480513,3.28714263 4.54502385,3.36335881 4.53828493,3.44172891 C4.51264327,3.76874183 4.54605606,4.15799173 4.63906589,4.61182336 C4.67554606,4.78982445 4.72112934,4.97351547 4.77560514,5.16239838 C6.5642751,2.4498942 9.63831608,0.659891248 13.1304347,0.659891248 C18.6532822,0.659891248 23.1304347,5.13704375 23.1304347,10.6598912 C23.1304347,14.1532921 21.3391169,17.2283083 18.6249113,19.0165099 C18.8149051,19.0715611 18.9996576,19.1174512 19.1786561,19.1541357 C19.5102582,19.2220954 19.8073812,19.2582373 20.0712172,19.2631991 C20.2506014,19.2639295 20.4205429,19.2505665 20.5800256,19.2227933 L20.6179792,19.2202946 C21.2329334,19.0985893 21.5797486,18.7226891 21.6868304,18.1077901 C21.7578942,17.6997181 22.1463106,17.4265189 22.5543827,17.4975828 C22.9624548,17.5686466 23.2356539,17.957063 23.16459,18.3651351 C22.9366329,19.6741403 22.1122883,20.4534372 20.9059197,20.6837587 C20.8840652,20.691284 20.8609429,20.696448 20.8373705,20.700553 C20.3898284,20.7784904 19.8948507,20.7777121 19.3627656,20.7052656 C19.204094,20.6846974 19.0424049,20.6573893 18.8775004,20.6235932 C18.2383844,20.4926105 17.5502082,20.2676553 16.8271214,19.955937 C15.6831949,20.4096864 14.436034,20.6598912 13.1304347,20.6598912 C7.60758715,20.6598912 3.13043465,16.1827387 3.13043465,10.6598912 C3.13043465,9.35355385 3.38092242,8.10572095 3.83648753,6.96180305 C3.82577641,6.93670142 3.81499655,6.91148508 3.80432288,6.88631197 C3.78747481,6.84551654 3.77029185,6.80444474 3.75338608,6.76347623 C3.59499919,6.38058605 3.46218676,6.00857693 3.35536528,5.64903217 C3.05579489,4.64578593 2.95513232,3.72986323 3.08992639,2.95583122 C3.09658055,2.91762083 3.10601719,2.88059298 3.11799189,2.84491958 C3.35721947,1.65987115 4.13366577,0.851303308 5.42806653,0.625889448 C5.83613859,0.554825598 6.22455499,0.828024728 6.29561884,1.23609679 Z" id="形状结合" fill="#999999" fill-rule="nonzero"></path>
+        <path d="M15.2916125,-0.646674887 C15.6304127,-0.408374098 15.7118836,0.0594587272 15.4735829,0.398258977 C15.2352821,0.737059227 14.7674492,0.818530137 14.428649,0.580229347 C13.9115653,0.216529967 13.3939488,0.200109087 12.8660938,0.563002867 C12.8622976,0.568349607 12.8580413,0.571409377 12.8537436,0.574432227 C12.7923332,0.617626227 12.7315239,0.664602797 12.6713427,0.715253687 C12.4219783,0.928355347 12.1703634,1.227223 11.9152239,1.61389831 C10.916982,3.12677823 10.1589022,5.6805444 9.84274842,8.77778683 C9.66835079,10.4862965 9.64499441,12.2080729 9.74740605,13.8426678 L9.79892315,14.5375779 C9.91331552,15.8718435 10.1118531,17.1361717 10.3800874,18.2731368 C10.7658836,19.8969561 11.2932642,21.2382186 11.913299,22.1779088 C12.0997223,22.4604416 12.2842638,22.6960956 12.4673155,22.8861642 C12.5936428,23.0135245 12.7232587,23.1242423 12.8556685,23.2173749 L12.8842727,23.2424454 C13.4051696,23.591225 13.9162066,23.5706588 14.4267241,23.2115778 C14.7655243,22.973277 15.2333571,23.0547479 15.4716579,23.3935482 C15.7099587,23.7323484 15.6284878,24.2001812 15.2896876,24.438482 C14.202891,25.2028984 13.0689453,25.1710449 12.053052,24.4808754 C12.0322773,24.4707431 12.0122759,24.4580446 11.992705,24.4442791 C11.6211349,24.1829291 11.2716831,23.8323767 10.9466696,23.4049083 C10.8490158,23.2781666 10.753994,23.1445254 10.6612864,23.0040229 C9.82334984,21.7340929 9.15813525,19.9140936 8.72788734,17.7355888 C8.44006539,16.28589 8.26004929,14.7001825 8.20321672,13.0564556 C8.08100722,9.67589273 8.48476018,6.38299686 9.29404069,3.81571852 C9.30735691,3.77391178 9.32043596,3.73282876 9.3336156,3.69195231 C9.35627744,3.62164733 9.37952142,3.55128254 9.40307663,3.48150384 C9.41712926,3.4394831 9.4312123,3.39821843 9.44540081,3.35718021 C9.51120822,3.16768879 9.57961436,2.98149544 9.65032605,2.80012316 C9.67208963,2.74318479 9.69427114,2.68731646 9.71666512,2.63195219 C9.73359845,2.59119208 9.75049042,2.54999974 9.76750534,2.50907645 C9.92625314,2.12633576 10.0953907,1.76937302 10.2740931,1.43960229 C10.7716671,0.518371807 11.348143,-0.200462533 11.9907801,-0.65247201 C12.0225041,-0.67478563 12.0553595,-0.694295565 12.0890518,-0.71105308 C13.096167,-1.37984941 14.2169412,-1.40256277 15.2916125,-0.646674887 Z" id="形状结合" fill="#BFBFBF" fill-rule="nonzero" transform="translate(11.895960, 11.895960) rotate(-45.000000) translate(-11.895960, -11.895960) "></path>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/entry/src/main/resources/base/media/ic_03_on.svg b/entry/src/main/resources/base/media/ic_03_on.svg
new file mode 100644
index 0000000..ac66f01
--- /dev/null
+++ b/entry/src/main/resources/base/media/ic_03_on.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>ic_03_onmdpi</title>
+    <g id="ic_03_on" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <path d="M6.29561884,1.23609679 C6.36668269,1.64416884 6.09348356,2.03258524 5.6854115,2.10364909 C5.06260385,2.21210814 4.68498237,2.566507 4.56833715,3.19636152 C4.56943353,3.20282656 4.56858748,3.20799979 4.56768604,3.21317618 C4.55480513,3.28714263 4.54502385,3.36335881 4.53828493,3.44172891 C4.51264327,3.76874183 4.54605606,4.15799173 4.63906589,4.61182336 C4.67554606,4.78982445 4.72112934,4.97351547 4.77560514,5.16239838 C6.5642751,2.4498942 9.63831608,0.659891248 13.1304347,0.659891248 C18.6532822,0.659891248 23.1304347,5.13704375 23.1304347,10.6598912 C23.1304347,14.1532921 21.3391169,17.2283083 18.6249113,19.0165099 C18.8149051,19.0715611 18.9996576,19.1174512 19.1786561,19.1541357 C19.5102582,19.2220954 19.8073812,19.2582373 20.0712172,19.2631991 C20.2506014,19.2639295 20.4205429,19.2505665 20.5800256,19.2227933 L20.6179792,19.2202946 C21.2329334,19.0985893 21.5797486,18.7226891 21.6868304,18.1077901 C21.7578942,17.6997181 22.1463106,17.4265189 22.5543827,17.4975828 C22.9624548,17.5686466 23.2356539,17.957063 23.16459,18.3651351 C22.9366329,19.6741403 22.1122883,20.4534372 20.9059197,20.6837587 C20.8840652,20.691284 20.8609429,20.696448 20.8373705,20.700553 C20.3898284,20.7784904 19.8948507,20.7777121 19.3627656,20.7052656 C19.204094,20.6846974 19.0424049,20.6573893 18.8775004,20.6235932 C18.2383844,20.4926105 17.5502082,20.2676553 16.8271214,19.955937 C15.6831949,20.4096864 14.436034,20.6598912 13.1304347,20.6598912 C7.60758715,20.6598912 3.13043465,16.1827387 3.13043465,10.6598912 C3.13043465,9.35355385 3.38092242,8.10572095 3.83648753,6.96180305 C3.82577641,6.93670142 3.81499655,6.91148508 3.80432288,6.88631197 C3.78747481,6.84551654 3.77029185,6.80444474 3.75338608,6.76347623 C3.59499919,6.38058605 3.46218676,6.00857693 3.35536528,5.64903217 C3.05579489,4.64578593 2.95513232,3.72986323 3.08992639,2.95583122 C3.09658055,2.91762083 3.10601719,2.88059298 3.11799189,2.84491958 C3.35721947,1.65987115 4.13366577,0.851303308 5.42806653,0.625889448 C5.83613859,0.554825598 6.22455499,0.828024728 6.29561884,1.23609679 Z" id="形状结合" fill="#0A59F7" fill-rule="nonzero"></path>
+        <path d="M15.2916125,-0.646674887 C15.6304127,-0.408374098 15.7118836,0.0594587272 15.4735829,0.398258977 C15.2352821,0.737059227 14.7674492,0.818530137 14.428649,0.580229347 C13.9115653,0.216529967 13.3939488,0.200109087 12.8660938,0.563002867 C12.8622976,0.568349607 12.8580413,0.571409377 12.8537436,0.574432227 C12.7923332,0.617626227 12.7315239,0.664602797 12.6713427,0.715253687 C12.4219783,0.928355347 12.1703634,1.227223 11.9152239,1.61389831 C10.916982,3.12677823 10.1589022,5.6805444 9.84274842,8.77778683 C9.66835079,10.4862965 9.64499441,12.2080729 9.74740605,13.8426678 L9.79892315,14.5375779 C9.91331552,15.8718435 10.1118531,17.1361717 10.3800874,18.2731368 C10.7658836,19.8969561 11.2932642,21.2382186 11.913299,22.1779088 C12.0997223,22.4604416 12.2842638,22.6960956 12.4673155,22.8861642 C12.5936428,23.0135245 12.7232587,23.1242423 12.8556685,23.2173749 L12.8842727,23.2424454 C13.4051696,23.591225 13.9162066,23.5706588 14.4267241,23.2115778 C14.7655243,22.973277 15.2333571,23.0547479 15.4716579,23.3935482 C15.7099587,23.7323484 15.6284878,24.2001812 15.2896876,24.438482 C14.202891,25.2028984 13.0689453,25.1710449 12.053052,24.4808754 C12.0322773,24.4707431 12.0122759,24.4580446 11.992705,24.4442791 C11.6211349,24.1829291 11.2716831,23.8323767 10.9466696,23.4049083 C10.8490158,23.2781666 10.753994,23.1445254 10.6612864,23.0040229 C9.82334984,21.7340929 9.15813525,19.9140936 8.72788734,17.7355888 C8.44006539,16.28589 8.26004929,14.7001825 8.20321672,13.0564556 C8.08100722,9.67589273 8.48476018,6.38299686 9.29404069,3.81571852 C9.30735691,3.77391178 9.32043596,3.73282876 9.3336156,3.69195231 C9.35627744,3.62164733 9.37952142,3.55128254 9.40307663,3.48150384 C9.41712926,3.4394831 9.4312123,3.39821843 9.44540081,3.35718021 C9.51120822,3.16768879 9.57961436,2.98149544 9.65032605,2.80012316 C9.67208963,2.74318479 9.69427114,2.68731646 9.71666512,2.63195219 C9.73359845,2.59119208 9.75049042,2.54999974 9.76750534,2.50907645 C9.92625314,2.12633576 10.0953907,1.76937302 10.2740931,1.43960229 C10.7716671,0.518371807 11.348143,-0.200462533 11.9907801,-0.65247201 C12.0225041,-0.67478563 12.0553595,-0.694295565 12.0890518,-0.71105308 C13.096167,-1.37984941 14.2169412,-1.40256277 15.2916125,-0.646674887 Z" id="形状结合" fill-opacity="0.8" fill="#FFFFFF" fill-rule="nonzero" transform="translate(11.895960, 11.895960) rotate(-45.000000) translate(-11.895960, -11.895960) "></path>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/entry/src/main/resources/base/media/ic_back.svg b/entry/src/main/resources/base/media/ic_back.svg
new file mode 100644
index 0000000..e7aebc7
--- /dev/null
+++ b/entry/src/main/resources/base/media/ic_back.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="40px" height="40px" viewBox="0 0 40 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>ic_back</title>
+    <defs>
+        <path d="M16.7823403,12.1940138 L16.8152459,12.2242889 L23.9739788,18.758314 C24.6607833,19.4278133 24.6750917,20.50462 24.016904,21.1910905 L23.9739788,21.2343699 L16.8140514,27.7814026 C16.6817842,27.9103372 16.5133575,27.9825405 16.3405918,27.9980127 L16.2933902,28.0008258 L16.2461168,28.0008258 C16.0570714,27.9951996 15.8697472,27.9220585 15.7254556,27.7814026 C15.4355841,27.4988349 15.4252316,27.0469724 15.6943979,26.7523123 L15.7254556,26.7202357 L22.5225176,20.5269254 C22.8123891,20.2443577 22.8227416,19.7924952 22.5535753,19.4978351 L22.5225176,19.4657585 L15.7266501,13.2854558 C15.4260426,12.9924226 15.4260426,12.5173221 15.7266501,12.2242889 C15.8715858,12.0830051 16.0599392,12.0098403 16.2498433,12.0047944 L16.2973274,12.0047944 C16.4713765,12.0107338 16.6437969,12.0737544 16.7823403,12.1940138 Z" id="path-1"></path>
+    </defs>
+    <g id="ic_back" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <circle id="椭圆形" fill-opacity="0.0509803922" fill="#000000" cx="20" cy="20" r="20"></circle>
+        <mask id="mask-2" fill="white">
+            <use xlink:href="#path-1" transform="translate(20.000021, 20.002810) scale(-1, 1) translate(-20.000021, -20.002810) "></use>
+        </mask>
+        <use id="路径" fill-opacity="0.9" fill="#000000" fill-rule="nonzero" transform="translate(20.000021, 20.002810) scale(-1, 1) translate(-20.000021, -20.002810) " xlink:href="#path-1"></use>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/entry/src/main/resources/base/media/ic_default.png b/entry/src/main/resources/base/media/ic_default.png
new file mode 100644
index 0000000000000000000000000000000000000000..04b20f2e2bb924ed835f3076015517f73742895f
GIT binary patch
literal 3384
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
U!l^9A`S-6y=N3w<R0A9Q9~{dd;Q#;t

literal 0
HcmV?d00001

diff --git a/entry/src/main/resources/base/media/ic_icon.png b/entry/src/main/resources/base/media/ic_icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
GIT binary patch
literal 6790
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

literal 0
HcmV?d00001

diff --git a/entry/src/main/resources/base/media/ic_ok.png b/entry/src/main/resources/base/media/ic_ok.png
new file mode 100644
index 0000000000000000000000000000000000000000..c5db6d88480a41b2d0795b4f3f00ae2215449ce9
GIT binary patch
literal 2229
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
DdHw>0

literal 0
HcmV?d00001

diff --git a/entry/src/main/resources/base/media/layered_image.json b/entry/src/main/resources/base/media/layered_image.json
new file mode 100644
index 0000000..16cf321
--- /dev/null
+++ b/entry/src/main/resources/base/media/layered_image.json
@@ -0,0 +1,7 @@
+{
+  "layered-image":
+  {
+    "background" : "$media:background",
+    "foreground" : "$media:foreground"
+  }
+}
\ No newline at end of file
diff --git a/entry/src/main/resources/base/media/startIcon.png b/entry/src/main/resources/base/media/startIcon.png
new file mode 100644
index 0000000000000000000000000000000000000000..205ad8b5a8a42e8762fbe4899b8e5e31ce822b8b
GIT binary patch
literal 20093
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%0AtVi0{v!P<5awgzdH2uJ`V|w<Fc)M
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

literal 0
HcmV?d00001

diff --git a/entry/src/main/resources/base/profile/backup_config.json b/entry/src/main/resources/base/profile/backup_config.json
new file mode 100644
index 0000000..d742c2f
--- /dev/null
+++ b/entry/src/main/resources/base/profile/backup_config.json
@@ -0,0 +1,3 @@
+{
+  "allowToBackupRestore": true
+}
\ No newline at end of file
diff --git a/entry/src/main/resources/base/profile/main_pages.json b/entry/src/main/resources/base/profile/main_pages.json
new file mode 100644
index 0000000..14bbd62
--- /dev/null
+++ b/entry/src/main/resources/base/profile/main_pages.json
@@ -0,0 +1,5 @@
+{
+  "src": [
+    "pages/Index"
+  ]
+}
diff --git a/entry/src/main/resources/en_US/element/string.json b/entry/src/main/resources/en_US/element/string.json
new file mode 100644
index 0000000..6b976fb
--- /dev/null
+++ b/entry/src/main/resources/en_US/element/string.json
@@ -0,0 +1,16 @@
+{
+  "string": [
+    {
+      "name": "module_desc",
+      "value": "module description"
+    },
+    {
+      "name": "EntryAbility_desc",
+      "value": "description"
+    },
+    {
+      "name": "EntryAbility_label",
+      "value": "label"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/entry/src/main/resources/rawfile/local/todo.html b/entry/src/main/resources/rawfile/local/todo.html
new file mode 100644
index 0000000..83f093a
--- /dev/null
+++ b/entry/src/main/resources/rawfile/local/todo.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>待办事项</title>
+    <style>
+        body {
+            font-family: Arial, sans-serif;
+            margin: 20px;
+        }
+        h1 {
+            font-weight: bold;
+            margin-bottom: 20px;
+        }
+        ul {
+            list-style-type: none;
+            padding: 0;
+        }
+        li {
+            display: flex;
+            flex-direction: column;
+            background-color: #f9f9f9;
+            padding: 15px;
+            margin-bottom: 15px;
+            border-radius: 5px;
+            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+        }
+        li.completed label {
+            text-decoration: line-through;
+            color: gray;
+        }
+        input[type="checkbox"] {
+            appearance: none;
+            width: 20px;
+            height: 20px;
+            border-radius: 50%;
+            border: 2px solid #007bff;
+            margin-right: 10px;
+            position: relative;
+            cursor: pointer;
+        }
+        input[type="checkbox"]:checked {
+            background-color: #007bff;
+        }
+        input[type="checkbox"]:checked::after {
+            content: '✔';
+            position: absolute;
+            top: 2px;
+            left: 5px;
+            font-size: 14px;
+            color: white;
+        }
+        .todo-header {
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+        }
+        .item-name {
+            font-size: 18px;
+            font-weight: bold;
+        }
+        .item-time {
+            font-size: 12px;
+            color: #555;
+        }
+        .item-desc {
+            font-size: 14px;
+            margin-top: 5px;
+            color: #333;
+        }
+    </style>
+</head>
+<body>
+
+<h1>待办事项</h1>
+
+<ul id="todoList">
+    <!-- 待办事项将通过JavaScript动态插入 -->
+</ul>
+
+<script>
+    // // 检查 todos 是否成功传入 -- console
+    // console.log("待办事项的数量为:", JSON.stringify(todos));
+    //
+    // // 检查 todos 是否成功传入 -- UI
+    // const todoCountElement = document.createElement('p');
+    // todoCountElement.textContent = `待办事项的数量: ${JSON.stringify(todos)}`;
+    // document.body.insertBefore(todoCountElement, document.body.firstChild);
+
+    const myRefresh = () => {
+        // 获取待办事项列表的容器
+        const todosObject = myClass.getTasks();
+        const todoList = document.getElementById('todoList');
+        const todos = Object.keys(todosObject)
+            .filter(key => key !== "length")  // 排除 length 属性
+            .map(key => todosObject[key]);    // 转换为数组
+
+        // 将待办事项动态添加到页面
+        todos.forEach((todo, index) => {
+            const listItem = document.createElement('li');
+
+            // 创建复选框
+            const checkbox = document.createElement('input');
+            checkbox.type = 'checkbox';
+            checkbox.checked = todo.isCompleted;
+            checkbox.id = `todo-${index}`;
+
+            // 创建名称和时间
+            const nameLabel = document.createElement('label');
+            nameLabel.classList.add('item-name');
+            nameLabel.setAttribute('for', `todo-${index}`);
+            nameLabel.textContent = todo.itemName;
+
+            const itemTime = document.createElement('span');
+            itemTime.classList.add('item-time');
+            itemTime.textContent = `计划时间: ${todo.itemTime}`;
+
+            // 创建描述
+            const itemDesc = document.createElement('p');
+            itemDesc.classList.add('item-desc');
+            itemDesc.textContent = todo.itemDisc;
+
+            // 添加已完成样式
+            if (todo.isCompleted) {
+                listItem.classList.add('completed');
+                itemTime.textContent += `(完成时间: ${todo.completeTime})`;
+            }
+
+            // 添加复选框状态改变事件
+            checkbox.addEventListener('change', () => {
+                myClass.markComplete(index)
+                todo.isCompleted = checkbox.checked; // 更新 isCompleted 属性
+                if (checkbox.checked) {
+                    listItem.classList.add('completed');
+                    itemTime.textContent = `计划时间: ${todo.itemTime}(完成时间: ${new Date().toLocaleString()})`;
+                    todo.completeTime = new Date().toLocaleString(); // 更新完成时间
+                } else {
+                    listItem.classList.remove('completed');
+                    itemTime.textContent = `计划时间: ${todo.itemTime}`;
+                    todo.completeTime = ''; // 清除完成时间
+                }
+            });
+
+            // 创建一个容器来包裹复选框和待办事项的标题
+            const headerDiv = document.createElement('div');
+            headerDiv.classList.add('todo-header');
+            headerDiv.appendChild(checkbox);
+            headerDiv.appendChild(nameLabel);
+
+            // 将各个元素添加到列表项中
+            listItem.appendChild(headerDiv);
+            listItem.appendChild(itemTime);
+            listItem.appendChild(itemDesc);
+
+            // 将列表项添加到待办事项列表中
+            todoList.appendChild(listItem);
+        });
+
+    }
+    myRefresh()
+</script>
+
+
+</body>
+</html>
diff --git a/entry/src/main/resources/zh_CN/element/string.json b/entry/src/main/resources/zh_CN/element/string.json
new file mode 100644
index 0000000..cab069e
--- /dev/null
+++ b/entry/src/main/resources/zh_CN/element/string.json
@@ -0,0 +1,16 @@
+{
+  "string": [
+    {
+      "name": "module_desc",
+      "value": "模块描述"
+    },
+    {
+      "name": "EntryAbility_desc",
+      "value": "description"
+    },
+    {
+      "name": "EntryAbility_label",
+      "value": "label"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/entry/src/mock/mock-config.json5 b/entry/src/mock/mock-config.json5
new file mode 100644
index 0000000..e02aef2
--- /dev/null
+++ b/entry/src/mock/mock-config.json5
@@ -0,0 +1,2 @@
+{
+}
\ No newline at end of file
diff --git a/entry/src/ohosTest/ets/test/Ability.test.ets b/entry/src/ohosTest/ets/test/Ability.test.ets
new file mode 100644
index 0000000..85c78f6
--- /dev/null
+++ b/entry/src/ohosTest/ets/test/Ability.test.ets
@@ -0,0 +1,35 @@
+import { hilog } from '@kit.PerformanceAnalysisKit';
+import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium';
+
+export default function abilityTest() {
+  describe('ActsAbilityTest', () => {
+    // Defines a test suite. Two parameters are supported: test suite name and test suite function.
+    beforeAll(() => {
+      // Presets an action, which is performed only once before all test cases of the test suite start.
+      // This API supports only one parameter: preset action function.
+    })
+    beforeEach(() => {
+      // Presets an action, which is performed before each unit test case starts.
+      // The number of execution times is the same as the number of test cases defined by **it**.
+      // This API supports only one parameter: preset action function.
+    })
+    afterEach(() => {
+      // Presets a clear action, which is performed after each unit test case ends.
+      // The number of execution times is the same as the number of test cases defined by **it**.
+      // This API supports only one parameter: clear action function.
+    })
+    afterAll(() => {
+      // Presets a clear action, which is performed after all test cases of the test suite end.
+      // This API supports only one parameter: clear action function.
+    })
+    it('assertContain', 0, () => {
+      // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function.
+      hilog.info(0x0000, 'testTag', '%{public}s', 'it begin');
+      let a = 'abc';
+      let b = 'b';
+      // Defines a variety of assertion methods, which are used to declare expected boolean conditions.
+      expect(a).assertContain(b);
+      expect(a).assertEqual(a);
+    })
+  })
+}
\ No newline at end of file
diff --git a/entry/src/ohosTest/ets/test/List.test.ets b/entry/src/ohosTest/ets/test/List.test.ets
new file mode 100644
index 0000000..794c7dc
--- /dev/null
+++ b/entry/src/ohosTest/ets/test/List.test.ets
@@ -0,0 +1,5 @@
+import abilityTest from './Ability.test';
+
+export default function testsuite() {
+  abilityTest();
+}
\ No newline at end of file
diff --git a/entry/src/ohosTest/module.json5 b/entry/src/ohosTest/module.json5
new file mode 100644
index 0000000..ae666e1
--- /dev/null
+++ b/entry/src/ohosTest/module.json5
@@ -0,0 +1,13 @@
+{
+  "module": {
+    "name": "entry_test",
+    "type": "feature",
+    "deviceTypes": [
+      "phone",
+      "tablet",
+      "2in1"
+    ],
+    "deliveryWithInstall": true,
+    "installationFree": false
+  }
+}
diff --git a/entry/src/test/List.test.ets b/entry/src/test/List.test.ets
new file mode 100644
index 0000000..bb5b5c3
--- /dev/null
+++ b/entry/src/test/List.test.ets
@@ -0,0 +1,5 @@
+import localUnitTest from './LocalUnit.test';
+
+export default function testsuite() {
+  localUnitTest();
+}
\ No newline at end of file
diff --git a/entry/src/test/LocalUnit.test.ets b/entry/src/test/LocalUnit.test.ets
new file mode 100644
index 0000000..165fc16
--- /dev/null
+++ b/entry/src/test/LocalUnit.test.ets
@@ -0,0 +1,33 @@
+import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium';
+
+export default function localUnitTest() {
+  describe('localUnitTest', () => {
+    // Defines a test suite. Two parameters are supported: test suite name and test suite function.
+    beforeAll(() => {
+      // Presets an action, which is performed only once before all test cases of the test suite start.
+      // This API supports only one parameter: preset action function.
+    });
+    beforeEach(() => {
+      // Presets an action, which is performed before each unit test case starts.
+      // The number of execution times is the same as the number of test cases defined by **it**.
+      // This API supports only one parameter: preset action function.
+    });
+    afterEach(() => {
+      // Presets a clear action, which is performed after each unit test case ends.
+      // The number of execution times is the same as the number of test cases defined by **it**.
+      // This API supports only one parameter: clear action function.
+    });
+    afterAll(() => {
+      // Presets a clear action, which is performed after all test cases of the test suite end.
+      // This API supports only one parameter: clear action function.
+    });
+    it('assertContain', 0, () => {
+      // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function.
+      let a = 'abc';
+      let b = 'b';
+      // Defines a variety of assertion methods, which are used to declare expected boolean conditions.
+      expect(a).assertContain(b);
+      expect(a).assertEqual(a);
+    });
+  });
+}
\ No newline at end of file
diff --git a/hvigor/hvigor-config.json5 b/hvigor/hvigor-config.json5
new file mode 100644
index 0000000..e0bd0d8
--- /dev/null
+++ b/hvigor/hvigor-config.json5
@@ -0,0 +1,22 @@
+{
+  "modelVersion": "5.0.0",
+  "dependencies": {
+  },
+  "execution": {
+    // "analyze": "normal",                     /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */
+    // "daemon": true,                          /* Enable daemon compilation. Value: [ true | false ]. Default: true */
+    // "incremental": true,                     /* Enable incremental compilation. Value: [ true | false ]. Default: true */
+    // "parallel": true,                        /* Enable parallel compilation. Value: [ true | false ]. Default: true */
+    // "typeCheck": false,                      /* Enable typeCheck. Value: [ true | false ]. Default: false */
+  },
+  "logging": {
+    // "level": "info"                          /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */
+  },
+  "debugging": {
+    // "stacktrace": false                      /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */
+  },
+  "nodeOptions": {
+    // "maxOldSpaceSize": 8192                  /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/
+    // "exposeGC": true                         /* Enable to trigger garbage collection explicitly. Default: true*/
+  }
+}
diff --git a/hvigorfile.ts b/hvigorfile.ts
new file mode 100644
index 0000000..f3cb9f1
--- /dev/null
+++ b/hvigorfile.ts
@@ -0,0 +1,6 @@
+import { appTasks } from '@ohos/hvigor-ohos-plugin';
+
+export default {
+    system: appTasks,  /* Built-in plugin of Hvigor. It cannot be modified. */
+    plugins:[]         /* Custom plugin to extend the functionality of Hvigor. */
+}
diff --git a/oh-package-lock.json5 b/oh-package-lock.json5
new file mode 100644
index 0000000..6302d7b
--- /dev/null
+++ b/oh-package-lock.json5
@@ -0,0 +1,27 @@
+{
+  "meta": {
+    "stableOrder": true
+  },
+  "lockfileVersion": 3,
+  "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
+  "specifiers": {
+    "@ohos/hamock@1.0.0": "@ohos/hamock@1.0.0",
+    "@ohos/hypium@1.0.19": "@ohos/hypium@1.0.19"
+  },
+  "packages": {
+    "@ohos/hamock@1.0.0": {
+      "name": "@ohos/hamock",
+      "version": "1.0.0",
+      "integrity": "sha512-K6lDPYc6VkKe6ZBNQa9aoG+ZZMiwqfcR/7yAVFSUGIuOAhPvCJAo9+t1fZnpe0dBRBPxj2bxPPbKh69VuyAtDg==",
+      "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hamock/-/hamock-1.0.0.har",
+      "registryType": "ohpm"
+    },
+    "@ohos/hypium@1.0.19": {
+      "name": "@ohos/hypium",
+      "version": "1.0.19",
+      "integrity": "sha512-cEjDgLFCm3cWZDeRXk7agBUkPqjWxUo6AQeiu0gEkb3J8ESqlduQLSIXeo3cCsm8U/asL7iKjF85ZyOuufAGSQ==",
+      "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.19.har",
+      "registryType": "ohpm"
+    }
+  }
+}
\ No newline at end of file
diff --git a/oh-package.json5 b/oh-package.json5
new file mode 100644
index 0000000..dd6b0d4
--- /dev/null
+++ b/oh-package.json5
@@ -0,0 +1,10 @@
+{
+  "modelVersion": "5.0.0",
+  "description": "Please describe the basic information.",
+  "dependencies": {
+  },
+  "devDependencies": {
+    "@ohos/hypium": "1.0.19",
+    "@ohos/hamock": "1.0.0"
+  }
+}
-- 
GitLab