调整架构 添加base 基础工具模块
This commit is contained in:
		| @@ -6,7 +6,8 @@ | |||||||
|   "author": "", |   "author": "", | ||||||
|   "license": "", |   "license": "", | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@devwiki/common_ui": "file:../common_ui" |     "@devwiki/common_ui": "file:../common_ui", | ||||||
|  |     "@devwiki/base": "file:../base" | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,7 +1,6 @@ | |||||||
| import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; | import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit'; | ||||||
| import { hilog } from '@kit.PerformanceAnalysisKit'; | import { hilog } from '@kit.PerformanceAnalysisKit'; | ||||||
| import { window } from '@kit.ArkUI'; | import { window } from '@kit.ArkUI'; | ||||||
| import { ScreenUtil } from '@devwiki/common_ui/Index'; |  | ||||||
|  |  | ||||||
| export default class AppAbility extends UIAbility { | export default class AppAbility extends UIAbility { | ||||||
|   constructor() { |   constructor() { | ||||||
|   | |||||||
| @@ -1,20 +1,18 @@ | |||||||
| import { ComponentConst, ScreenUtil, TitleBar } from '@devwiki/common_ui'; | import { TitleBar } from '@devwiki/common_ui'; | ||||||
| import web_webview from '@ohos.web.webview'; | import web_webview from '@ohos.web.webview'; | ||||||
| import { TitleBarMenuType } from '@devwiki/common_ui'; | import { TitleBarMenuType } from '@devwiki/common_ui'; | ||||||
| import { WebPage } from './web/WebPage'; |  | ||||||
| import { router, window } from '@kit.ArkUI'; | import { router, window } from '@kit.ArkUI'; | ||||||
| import { WebPageDialog } from './web/WebPageDialog' |  | ||||||
| import promptAction from '@ohos.promptAction'; | import promptAction from '@ohos.promptAction'; | ||||||
| import { BusinessError } from '@ohos.base'; | import { BusinessError } from '@ohos.base'; | ||||||
| import { Log } from '../utils/Log'; | import { Log } from '@devwiki/base'; | ||||||
| import { DemoLocalStorage } from '../utils/LocalStorage'; | import { BaseLocalStorage, ScreenUtil } from '@devwiki/base'; | ||||||
|  |  | ||||||
| @CustomDialog | @CustomDialog | ||||||
| struct WebViewDialog { | struct WebViewDialog { | ||||||
|   webUrl: string = "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/password" |   webUrl: string = "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/password" | ||||||
|   private webviewController: web_webview.WebviewController = new web_webview.WebviewController(); |   private webviewController: web_webview.WebviewController = new web_webview.WebviewController(); | ||||||
|   dialogController: CustomDialogController; |   dialogController: CustomDialogController; | ||||||
|   @StorageLink(ScreenUtil.isPortraitKey)isPortrait: boolean = true; |   @StorageLink(ScreenUtil.isPortraitKey) isPortrait: boolean = true; | ||||||
|  |  | ||||||
|   build() { |   build() { | ||||||
|     Row() { |     Row() { | ||||||
| @@ -29,9 +27,7 @@ struct WebViewDialog { | |||||||
| @Entry | @Entry | ||||||
| @Component | @Component | ||||||
| struct Index { | struct Index { | ||||||
|  |  | ||||||
|   @State title: string = "Home"; |   @State title: string = "Home"; | ||||||
|  |  | ||||||
|   dialogController: CustomDialogController = new CustomDialogController({ |   dialogController: CustomDialogController = new CustomDialogController({ | ||||||
|     builder: WebViewDialog(), |     builder: WebViewDialog(), | ||||||
|     alignment: DialogAlignment.BottomEnd, |     alignment: DialogAlignment.BottomEnd, | ||||||
| @@ -40,7 +36,7 @@ struct Index { | |||||||
|  |  | ||||||
|   aboutToAppear(): void { |   aboutToAppear(): void { | ||||||
|     ScreenUtil.getInstance().initScreenSize(); |     ScreenUtil.getInstance().initScreenSize(); | ||||||
|     DemoLocalStorage.getInstance().init(getContext(this).getApplicationContext()); |     BaseLocalStorage.getInstance().init(getContext(this)); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   onPageShow(): void { |   onPageShow(): void { | ||||||
| @@ -97,21 +93,25 @@ struct Index { | |||||||
|     Column() { |     Column() { | ||||||
|       TitleBar({ |       TitleBar({ | ||||||
|         title: this.title, |         title: this.title, | ||||||
|         onLeftClicked: ()=> { this.onBackPress() }, |         onLeftClicked: () => { | ||||||
|  |           this.onBackPress() | ||||||
|  |         }, | ||||||
|         rightMenuType: TitleBarMenuType.None |         rightMenuType: TitleBarMenuType.None | ||||||
|       }).width('100%') |       }).width('100%') | ||||||
|  |  | ||||||
|       Column() { |       Column() { | ||||||
|         Row() { |         Row() { | ||||||
|           Button("WebDialog").width(100).height('100%').type(ButtonType.Normal) |           Button("WebDialog").width(100).height('100%').type(ButtonType.Normal) | ||||||
|             .onClick(() => { this.dialogController.open() }); |             .onClick(async () => { | ||||||
|  |               this.dialogController.open() | ||||||
|  |             }); | ||||||
|  |  | ||||||
|           Button("Layout").width(100).height('100%').type(ButtonType.Normal).onClick(() =>{ |           Button("Layout").width(100).height('100%').type(ButtonType.Normal).onClick(() => { | ||||||
|             router.pushUrl({url: "pages/layout/LinearLayoutPage"}); |             router.pushUrl({ url: "pages/layout/LinearLayoutPage" }); | ||||||
|           }); |           }); | ||||||
|  |  | ||||||
|           Button("Animation").width(100).height('100%').type(ButtonType.Normal).onClick(() =>{ |           Button("Animation").width(100).height('100%').type(ButtonType.Normal).onClick(() => { | ||||||
|             router.pushUrl({url: "pages/animation/CompTransitionPage"}); |             router.pushUrl({ url: "pages/animation/CompTransitionPage" }); | ||||||
|           }); |           }); | ||||||
|  |  | ||||||
|         }.width('100%').height(48).justifyContent(FlexAlign.SpaceEvenly) |         }.width('100%').height(48).justifyContent(FlexAlign.SpaceEvenly) | ||||||
|   | |||||||
| @@ -2,7 +2,6 @@ import { TitleBar } from '@devwiki/common_ui/Index'; | |||||||
| import picker from '@ohos.file.picker'; | import picker from '@ohos.file.picker'; | ||||||
| import { BusinessError } from '@kit.BasicServicesKit'; | import { BusinessError } from '@kit.BasicServicesKit'; | ||||||
| import fs, { ReadOptions } from '@ohos.file.fs'; | import fs, { ReadOptions } from '@ohos.file.fs'; | ||||||
| import common from '@ohos.app.ability.common'; |  | ||||||
| import buffer from '@ohos.buffer'; | import buffer from '@ohos.buffer'; | ||||||
|  |  | ||||||
| @Entry | @Entry | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| import { CommonMediaName, CommonRes, TitleBar, TitleBarMenuType } from '@devwiki/common_ui/Index' | import { CommonRes, TitleBar, TitleBarMenuType } from '@devwiki/common_ui' | ||||||
| import { curves, router } from '@kit.ArkUI'; | import { curves, router } from '@kit.ArkUI'; | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| import { WebView, WebViewParam, ComponentConst,  CommonRes, TitleBar, WebViewController, ScreenUtil } from '@devwiki/common_ui/Index'; | import { WebView, WebViewParam, ComponentConst,  CommonRes, TitleBar, WebViewController } from '@devwiki/common_ui/Index'; | ||||||
|  | import { ScreenUtil } from '@devwiki/base' | ||||||
|  |  | ||||||
| @Entry | @Entry | ||||||
| @Component | @Component | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| import { ScreenUtil } from '@devwiki/common_ui/Index'; | import { ScreenUtil } from '@devwiki/base'; | ||||||
| import { WebPage } from './WebPage'; | import { WebPage } from './WebPage'; | ||||||
|  |  | ||||||
| @CustomDialog | @CustomDialog | ||||||
|   | |||||||
							
								
								
									
										6
									
								
								base/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								base/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | /node_modules | ||||||
|  | /oh_modules | ||||||
|  | /.preview | ||||||
|  | /build | ||||||
|  | /.cxx | ||||||
|  | /.test | ||||||
							
								
								
									
										8
									
								
								base/Index.ets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								base/Index.ets
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | export { Log } from "./src/main/ets/utils/Log" | ||||||
|  |  | ||||||
|  | export { ScreenUtil } from './src/main/ets/utils/ScreenUtil' | ||||||
|  |  | ||||||
|  | export { BaseLocalStorage, BaseLocalStorageKey } from './src/main/ets/utils/BaseLocalStorage' | ||||||
|  |  | ||||||
|  | export { Emitter, EmitterItem } from './src/main/ets/event/Emitter' | ||||||
|  | export { WebViewEventKey } from './src/main/ets/event/EventKey' | ||||||
							
								
								
									
										25
									
								
								base/build-profile.json5
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								base/build-profile.json5
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | { | ||||||
|  |   "apiType": "stageMode", | ||||||
|  |   "buildOption": { | ||||||
|  |   }, | ||||||
|  |   "buildOptionSet": [ | ||||||
|  |     { | ||||||
|  |       "name": "release", | ||||||
|  |       "arkOptions": { | ||||||
|  |         "obfuscation": { | ||||||
|  |           "ruleOptions": { | ||||||
|  |             "enable": true, | ||||||
|  |             "files": [ | ||||||
|  |               "./obfuscation-rules.txt" | ||||||
|  |             ] | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       }, | ||||||
|  |     }, | ||||||
|  |   ], | ||||||
|  |   "targets": [ | ||||||
|  |     { | ||||||
|  |       "name": "default" | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
							
								
								
									
										6
									
								
								base/hvigorfile.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								base/hvigorfile.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | |||||||
|  | import { hspTasks } from '@ohos/hvigor-ohos-plugin'; | ||||||
|  |  | ||||||
|  | export default { | ||||||
|  |     system: hspTasks,  /* Built-in plugin of Hvigor. It cannot be modified. */ | ||||||
|  |     plugins:[]         /* Custom plugin to extend the functionality of Hvigor. */ | ||||||
|  | } | ||||||
							
								
								
									
										18
									
								
								base/obfuscation-rules.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								base/obfuscation-rules.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | # 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://gitee.com/openharmony/arkcompiler_ets_frontend/blob/master/arkguard/README.md | ||||||
|  |  | ||||||
|  | # 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 | ||||||
							
								
								
									
										11
									
								
								base/oh-package.json5
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								base/oh-package.json5
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | { | ||||||
|  |   "name": "base", | ||||||
|  |   "version": "1.0.0", | ||||||
|  |   "description": "Please describe the basic information.", | ||||||
|  |   "main": "Index.ets", | ||||||
|  |   "author": "", | ||||||
|  |   "license": "Apache-2.0", | ||||||
|  |   "packageType": "InterfaceHar", | ||||||
|  |   "dependencies": { | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -4,12 +4,12 @@ export interface EmitterItem { | |||||||
|   listener: Function |   listener: Function | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| type XYEmitterAllType = string | object | boolean | number | Object | Number | BigInt; | type EmitterAllType = string | object | boolean | number | Object | Number | BigInt; | ||||||
| 
 | 
 | ||||||
| export class Emitter { | export class Emitter { | ||||||
|   private static instance: Emitter; |   private static instance: Emitter; | ||||||
|   private static events: Map<string, EmitterItem[]> = new Map |   private static events: Map<string, EmitterItem[]> = new Map | ||||||
|   private static viscosityData: Map<string, XYEmitterAllType[]> = new Map |   private static viscosityData: Map<string, EmitterAllType[]> = new Map | ||||||
| 
 | 
 | ||||||
|   public static getInstance(): Emitter { |   public static getInstance(): Emitter { | ||||||
|     if (!Emitter.instance) { |     if (!Emitter.instance) { | ||||||
| @@ -87,7 +87,7 @@ export class Emitter { | |||||||
|    */ |    */ | ||||||
|   public emmitViscosity<T>(key: string, ...args: T[]) { |   public emmitViscosity<T>(key: string, ...args: T[]) { | ||||||
|     this.emmit(key, ...args); |     this.emmit(key, ...args); | ||||||
|     Emitter.viscosityData.set(key, args as XYEmitterAllType[]); |     Emitter.viscosityData.set(key, args as EmitterAllType[]); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /** |   /** | ||||||
							
								
								
									
										17
									
								
								base/src/main/ets/pages/Index.ets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								base/src/main/ets/pages/Index.ets
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | @Entry | ||||||
|  | @Component | ||||||
|  | struct Index { | ||||||
|  |   @State message: string = 'Hello World'; | ||||||
|  |  | ||||||
|  |   build() { | ||||||
|  |     Row() { | ||||||
|  |       Column() { | ||||||
|  |         Text(this.message) | ||||||
|  |           .fontSize(50) | ||||||
|  |           .fontWeight(FontWeight.Bold) | ||||||
|  |       } | ||||||
|  |       .width('100%') | ||||||
|  |     } | ||||||
|  |     .height('100%') | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -3,24 +3,24 @@ import { Context } from '@kit.AbilityKit'; | |||||||
| import dataPreferences from '@ohos.data.preferences'; | import dataPreferences from '@ohos.data.preferences'; | ||||||
| import { Log } from './Log'; | import { Log } from './Log'; | ||||||
| 
 | 
 | ||||||
| export class DemoLocalStorageKey { | export class BaseLocalStorageKey { | ||||||
|   static readonly KEY_SERVER_CONFIG = "key_config"; |   static readonly KEY_SERVER_CONFIG = "key_config"; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export class DemoLocalStorage { | export class BaseLocalStorage { | ||||||
| 
 | 
 | ||||||
|   private static instance: DemoLocalStorage; |   private static instance: BaseLocalStorage; | ||||||
|   private static lock: boolean = false; |   private static lock: boolean = false; | ||||||
|   private static readonly XY_DP_Name = "LocalData"; |   private static readonly XY_DP_Name = "LocalData"; | ||||||
|   static getInstance(): DemoLocalStorage { |   static getInstance(): BaseLocalStorage { | ||||||
|     if (!DemoLocalStorage.instance) { |     if (!BaseLocalStorage.instance) { | ||||||
|       if (!DemoLocalStorage.lock) { |       if (!BaseLocalStorage.lock) { | ||||||
|         DemoLocalStorage.lock = true; |         BaseLocalStorage.lock = true; | ||||||
|         DemoLocalStorage.instance = new DemoLocalStorage(); |         BaseLocalStorage.instance = new BaseLocalStorage(); | ||||||
|         DemoLocalStorage.lock = false; |         BaseLocalStorage.lock = false; | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     return DemoLocalStorage.instance; |     return BaseLocalStorage.instance; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   private context: Context | null = null; |   private context: Context | null = null; | ||||||
| @@ -31,7 +31,7 @@ export class DemoLocalStorage { | |||||||
|   public init(context: Context): void { |   public init(context: Context): void { | ||||||
|     if (!this.context) { |     if (!this.context) { | ||||||
|       this.context = context.getApplicationContext(); |       this.context = context.getApplicationContext(); | ||||||
|       let options: dataPreferences.Options = { name: DemoLocalStorage.XY_DP_Name }; |       let options: dataPreferences.Options = { name: BaseLocalStorage.XY_DP_Name }; | ||||||
|       this.preferences = dataPreferences.getPreferencesSync(this.context, options); |       this.preferences = dataPreferences.getPreferencesSync(this.context, options); | ||||||
|     } else { |     } else { | ||||||
|       Log.i("LocalStorage is already init.") |       Log.i("LocalStorage is already init.") | ||||||
| @@ -1,5 +1,6 @@ | |||||||
| import window from '@ohos.window'; | import window from '@ohos.window'; | ||||||
| import mediaquery from '@ohos.mediaquery'; | import mediaquery from '@ohos.mediaquery'; | ||||||
|  | import { Log } from './Log'; | ||||||
| 
 | 
 | ||||||
| export class ScreenUtil { | export class ScreenUtil { | ||||||
|   // TODO: 工具待抽离, key统一定义 |   // TODO: 工具待抽离, key统一定义 | ||||||
| @@ -103,4 +104,12 @@ export class ScreenUtil { | |||||||
|       .catch((error: Error) => { |       .catch((error: Error) => { | ||||||
|       }) |       }) | ||||||
|   } |   } | ||||||
|  | 
 | ||||||
|  |   setWindowKeepScreenOn(isKeep: boolean) { | ||||||
|  |     Log.i(`setWindowKeepScreenOn:${isKeep}`) | ||||||
|  |     window.getLastWindow(getContext(this)) | ||||||
|  |       .then((windowClass: window.Window) => { | ||||||
|  |         windowClass.setWindowKeepScreenOn(isKeep); | ||||||
|  |       }); | ||||||
|  |   } | ||||||
| } | } | ||||||
							
								
								
									
										14
									
								
								base/src/main/module.json5
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								base/src/main/module.json5
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | { | ||||||
|  |   "module": { | ||||||
|  |     "name": "base", | ||||||
|  |     "type": "shared", | ||||||
|  |     "description": "$string:shared_desc", | ||||||
|  |     "deviceTypes": [ | ||||||
|  |       "phone", | ||||||
|  |       "tablet", | ||||||
|  |       "2in1" | ||||||
|  |     ], | ||||||
|  |     "deliveryWithInstall": true, | ||||||
|  |     "pages": "$profile:main_pages" | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										8
									
								
								base/src/main/resources/base/element/color.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								base/src/main/resources/base/element/color.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | { | ||||||
|  |   "color": [ | ||||||
|  |     { | ||||||
|  |       "name": "white", | ||||||
|  |       "value": "#FFFFFF" | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
							
								
								
									
										8
									
								
								base/src/main/resources/base/element/string.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								base/src/main/resources/base/element/string.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | |||||||
|  | { | ||||||
|  |   "string": [ | ||||||
|  |     { | ||||||
|  |       "name": "shared_desc", | ||||||
|  |       "value": "description" | ||||||
|  |     } | ||||||
|  |   ] | ||||||
|  | } | ||||||
							
								
								
									
										5
									
								
								base/src/main/resources/base/profile/main_pages.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								base/src/main/resources/base/profile/main_pages.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | { | ||||||
|  |   "src": [ | ||||||
|  |     "pages/Index" | ||||||
|  |   ] | ||||||
|  | } | ||||||
							
								
								
									
										5
									
								
								base/src/test/List.test.ets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								base/src/test/List.test.ets
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | import localUnitTest from './LocalUnit.test'; | ||||||
|  |  | ||||||
|  | export default function testsuite() { | ||||||
|  |   localUnitTest(); | ||||||
|  | } | ||||||
							
								
								
									
										33
									
								
								base/src/test/LocalUnit.test.ets
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								base/src/test/LocalUnit.test.ets
									
									
									
									
									
										Normal file
									
								
							| @@ -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); | ||||||
|  |     }); | ||||||
|  |   }); | ||||||
|  | } | ||||||
| @@ -67,6 +67,18 @@ | |||||||
|           ] |           ] | ||||||
|         } |         } | ||||||
|       ] |       ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |       "name": "base", | ||||||
|  |       "srcPath": "./base", | ||||||
|  |       "targets": [ | ||||||
|  |         { | ||||||
|  |           "name": "default", | ||||||
|  |           "applyToProducts": [ | ||||||
|  |             "default" | ||||||
|  |           ] | ||||||
|  |         } | ||||||
|  |       ] | ||||||
|     } |     } | ||||||
|   ] |   ] | ||||||
| } | } | ||||||
| @@ -1,8 +1,5 @@ | |||||||
| export { TitleBar, TitleBarMenuType } from './src/main/ets/component/TitleBar' | export { TitleBar, TitleBarMenuType } from './src/main/ets/component/TitleBar' | ||||||
| export { ComponentConst } from './src/main/ets/component/ComponentConst' | export { ComponentConst } from './src/main/ets/component/ComponentConst' | ||||||
| export { WebViewEventKey } from './src/main/ets/event/EventKey' | export { WebViewEventKey } from '../base/src/main/ets/event/EventKey' | ||||||
| export { Emitter } from './src/main/ets/event/Emitter' |  | ||||||
| export { WebView, WebViewController, WebViewParam } from './src/main/ets/component/web/WebView' | export { WebView, WebViewController, WebViewParam } from './src/main/ets/component/web/WebView' | ||||||
|  |  | ||||||
| export { CommonRes, CommonMediaName } from './src/main/ets/utils/CommonRes' | export { CommonRes, CommonMediaName } from './src/main/ets/utils/CommonRes' | ||||||
| export { ScreenUtil } from './src/main/ets/utils/ScreenUtil' |  | ||||||
|   | |||||||
| @@ -7,5 +7,6 @@ | |||||||
|   "license": "Apache-2.0", |   "license": "Apache-2.0", | ||||||
|   "packageType": "InterfaceHar", |   "packageType": "InterfaceHar", | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|  |     "@devwiki/base": "file:../base" | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @@ -3,6 +3,7 @@ | |||||||
| 本项目模块分为: | 本项目模块分为: | ||||||
| - app: 主入口模块 | - app: 主入口模块 | ||||||
| - common_ui : 通用UI动态共享库模块 | - common_ui : 通用UI动态共享库模块 | ||||||
|  | - base: 最底层的依赖库, 包含最通用的代码封装. | ||||||
|  |  | ||||||
|  |  | ||||||
| ## app模块 | ## app模块 | ||||||
| @@ -19,8 +20,8 @@ | |||||||
| - 自定标题栏: [TitleBar](common_ui/src/main/ets/component/TitleBar.ets) | - 自定标题栏: [TitleBar](common_ui/src/main/ets/component/TitleBar.ets) | ||||||
|  |  | ||||||
| 事件相关: | 事件相关: | ||||||
| - 事件发射器 [Emitter](common_ui/src/main/ets/event/Emitter.ets) | - 事件发射器 [Emitter](base/src/main/ets/event/Emitter.ets) | ||||||
|  |  | ||||||
| 工具类: | 工具类: | ||||||
| - 公用资源调用类[CommonRes](common_ui/src/main/ets/utils/CommonRes.ets) | - 公用资源调用类[CommonRes](common_ui/src/main/ets/utils/CommonRes.ets) | ||||||
| - 屏幕相关[ScreenUtil](common_ui/src/main/ets/utils/ScreenUtil.ets) | - 屏幕相关[ScreenUtil](base/src/main/ets/utils/ScreenUtil.ets) | ||||||
		Reference in New Issue
	
	Block a user