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