1d5a52cc2Sopenharmony_ci/* 2d5a52cc2Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3d5a52cc2Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4d5a52cc2Sopenharmony_ci * you may not use this file except in compliance with the License. 5d5a52cc2Sopenharmony_ci * You may obtain a copy of the License at 6d5a52cc2Sopenharmony_ci * 7d5a52cc2Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8d5a52cc2Sopenharmony_ci * 9d5a52cc2Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10d5a52cc2Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11d5a52cc2Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12d5a52cc2Sopenharmony_ci * See the License for the specific language governing permissions and 13d5a52cc2Sopenharmony_ci * limitations under the License. 14d5a52cc2Sopenharmony_ci */ 15d5a52cc2Sopenharmony_ci 16d5a52cc2Sopenharmony_ciimport DateUtil from '@ohos/utils/src/main/ets/default/baseUtil/DateUtil' 17d5a52cc2Sopenharmony_ciimport RdbStoreUtil from '@ohos/utils/src/main/ets/default/baseUtil/RdbStoreUtil' 18d5a52cc2Sopenharmony_ciimport FolderData from '@ohos/utils/src/main/ets/default/model/databaseModel/FolderData' 19d5a52cc2Sopenharmony_ciimport NoteData from '@ohos/utils/src/main/ets/default/model/databaseModel/NoteData' 20d5a52cc2Sopenharmony_ciimport util from '@ohos.util' 21d5a52cc2Sopenharmony_ciimport { 22d5a52cc2Sopenharmony_ci TableName, 23d5a52cc2Sopenharmony_ci NoteTableColumn, 24d5a52cc2Sopenharmony_ci SysDefFolderUuid, 25d5a52cc2Sopenharmony_ci Favorite, 26d5a52cc2Sopenharmony_ci Delete 27d5a52cc2Sopenharmony_ci} from '@ohos/utils/src/main/ets/default/model/databaseModel/EnumData' 28d5a52cc2Sopenharmony_ciimport StyleConstants from '@ohos/utils/src/main/ets/default/constants/StyleConstants' 29d5a52cc2Sopenharmony_ciimport { EditContentDialog, EditTitleDialog } from './CusDialogComp' 30d5a52cc2Sopenharmony_ciimport FolderUtil from '@ohos/utils/src/main/ets/default/baseUtil/FolderUtil' 31d5a52cc2Sopenharmony_ciimport NoteUtil from '@ohos/utils/src/main/ets/default/baseUtil/NoteUtil' 32d5a52cc2Sopenharmony_ciimport { LogUtil } from '@ohos/utils/src/main/ets/default/baseUtil/LogUtil' 33d5a52cc2Sopenharmony_ciimport OperationUtils from '@ohos/utils/src/main/ets/default/baseUtil/OperationUtils' 34d5a52cc2Sopenharmony_ciimport router from '@system.router'; 35d5a52cc2Sopenharmony_ciimport inputMethod from '@ohos.inputMethod'; 36d5a52cc2Sopenharmony_ciimport { folderTextMap } from '@ohos/utils/src/main/ets/default/model/NoteBaseData' 37d5a52cc2Sopenharmony_ciimport webview from '@ohos.web.webview'; 38d5a52cc2Sopenharmony_ci 39d5a52cc2Sopenharmony_ciconst TAG = "NoteContent" 40d5a52cc2Sopenharmony_ci 41d5a52cc2Sopenharmony_civar timeID: number 42d5a52cc2Sopenharmony_ci 43d5a52cc2Sopenharmony_ci@Component 44d5a52cc2Sopenharmony_ciexport struct NoteContent { 45d5a52cc2Sopenharmony_ci @Provide('SelectedNoteData') selectedNoteData: NoteData = AppStorage.Get('NewNote') 46d5a52cc2Sopenharmony_ci @StorageLink('AllNoteArray') AllNoteArray: NoteData[] = AppStorage.Link('AllNoteArray') 47d5a52cc2Sopenharmony_ci @Provide('Issave') issave: number = 0 48d5a52cc2Sopenharmony_ci @Provide('EditModel') editModel: boolean = false 49d5a52cc2Sopenharmony_ci @StorageLink('dpi') dpi: number = 240 50d5a52cc2Sopenharmony_ci controllerShow: webview.WebviewController = new webview.WebviewController(); 51d5a52cc2Sopenharmony_ci private editContentFlag = false 52d5a52cc2Sopenharmony_ci @StorageLink('ScrollTopPercent') scrollTopPercent: number = 0.0 53d5a52cc2Sopenharmony_ci 54d5a52cc2Sopenharmony_ci storeScrollTop(scrollTop: number) { 55d5a52cc2Sopenharmony_ci if (scrollTop < 0) { 56d5a52cc2Sopenharmony_ci return 57d5a52cc2Sopenharmony_ci } 58d5a52cc2Sopenharmony_ci AppStorage.SetOrCreate<number>('ScrollTopPercent', scrollTop / this.controllerShow.getPageHeight()) 59d5a52cc2Sopenharmony_ci } 60d5a52cc2Sopenharmony_ci 61d5a52cc2Sopenharmony_ci restoreScrollTop() { 62d5a52cc2Sopenharmony_ci if (!AppStorage.Has('remoteScrollTopPercent')) { 63d5a52cc2Sopenharmony_ci return 64d5a52cc2Sopenharmony_ci } 65d5a52cc2Sopenharmony_ci var scrollTopPercent = AppStorage.Get<number>('remoteScrollTopPercent') 66d5a52cc2Sopenharmony_ci if (scrollTopPercent < 0) { 67d5a52cc2Sopenharmony_ci return 68d5a52cc2Sopenharmony_ci } 69d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript( 70d5a52cc2Sopenharmony_ci 'document.documentElement.scrollTop = ' + this.controllerShow.getPageHeight() * scrollTopPercent 71d5a52cc2Sopenharmony_ci ) 72d5a52cc2Sopenharmony_ci AppStorage.Delete('remoteScrollTopPercent') 73d5a52cc2Sopenharmony_ci } 74d5a52cc2Sopenharmony_ci 75d5a52cc2Sopenharmony_ci restoreFocus() { 76d5a52cc2Sopenharmony_ci if (!AppStorage.Has('isRemoteFocusOnSearch')) { 77d5a52cc2Sopenharmony_ci return 78d5a52cc2Sopenharmony_ci } 79d5a52cc2Sopenharmony_ci let isRemoteFocusOnSearch = AppStorage.Get<boolean>('isRemoteFocusOnSearch') 80d5a52cc2Sopenharmony_ci if (isRemoteFocusOnSearch) { 81d5a52cc2Sopenharmony_ci focusControl.requestFocus('searchInput') 82d5a52cc2Sopenharmony_ci } 83d5a52cc2Sopenharmony_ci AppStorage.Delete('isRemoteFocusOnSearch') 84d5a52cc2Sopenharmony_ci } 85d5a52cc2Sopenharmony_ci 86d5a52cc2Sopenharmony_ci noteContent = { 87d5a52cc2Sopenharmony_ci callbackhtml: (html) => { 88d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'note uuid is:' + this.selectedNoteData.uuid) 89d5a52cc2Sopenharmony_ci this.selectedNoteData.content_text = NoteUtil.contrastInitType(this.selectedNoteData.content_text); 90d5a52cc2Sopenharmony_ci if (this.selectedNoteData.content_text === html ) { 91d5a52cc2Sopenharmony_ci return; 92d5a52cc2Sopenharmony_ci }; 93d5a52cc2Sopenharmony_ci this.selectedNoteData.content_text = html 94d5a52cc2Sopenharmony_ci this.selectedNoteData.modified_time = new Date().getTime() 95d5a52cc2Sopenharmony_ci let predicates_note = RdbStoreUtil.getRdbPredicates(TableName.NoteTable) 96d5a52cc2Sopenharmony_ci predicates_note.equalTo(NoteTableColumn.Uuid, this.selectedNoteData.uuid) 97d5a52cc2Sopenharmony_ci RdbStoreUtil.update(this.selectedNoteData.toNoteObject(), predicates_note, null) 98d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'update note success:' + this.selectedNoteData.uuid) 99d5a52cc2Sopenharmony_ci AppStorage.SetOrCreate<NoteData>('NewNote', this.selectedNoteData) 100d5a52cc2Sopenharmony_ci AppStorage.SetOrCreate<boolean>('needRefresh', true) 101d5a52cc2Sopenharmony_ci // save continue data 102d5a52cc2Sopenharmony_ci let continueNote: string = JSON.stringify(this.selectedNoteData.toNoteObject()) 103d5a52cc2Sopenharmony_ci AppStorage.SetOrCreate<string>('ContinueNote', continueNote) 104d5a52cc2Sopenharmony_ci LogUtil.info(TAG, "callbackhtml, set continue note success") 105d5a52cc2Sopenharmony_ci }, 106d5a52cc2Sopenharmony_ci callbackImagePath: (imgName) => { 107d5a52cc2Sopenharmony_ci // updata note image 108d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'note imgPath is:' + imgName) 109d5a52cc2Sopenharmony_ci this.selectedNoteData.content_img = imgName 110d5a52cc2Sopenharmony_ci }, 111d5a52cc2Sopenharmony_ci 112d5a52cc2Sopenharmony_ci callbackScheduledSave: (html) => { 113d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'callbackScheduledSave') 114d5a52cc2Sopenharmony_ci if (this.selectedNoteData.content_text == html) { 115d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'callbackScheduledSave the same value return') 116d5a52cc2Sopenharmony_ci return; 117d5a52cc2Sopenharmony_ci } 118d5a52cc2Sopenharmony_ci this.selectedNoteData.content_text = html 119d5a52cc2Sopenharmony_ci this.selectedNoteData.modified_time = new Date().getTime() 120d5a52cc2Sopenharmony_ci let predicates_note = RdbStoreUtil.getRdbPredicates(TableName.NoteTable) 121d5a52cc2Sopenharmony_ci predicates_note.equalTo(NoteTableColumn.Uuid, this.selectedNoteData.uuid) 122d5a52cc2Sopenharmony_ci RdbStoreUtil.update(this.selectedNoteData.toNoteObject(), predicates_note, null) 123d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'callbackScheduledSave, update note success:' + this.selectedNoteData.uuid) 124d5a52cc2Sopenharmony_ci // save continue data 125d5a52cc2Sopenharmony_ci let continueNote: string = JSON.stringify(this.selectedNoteData.toNoteObject()) 126d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'continueNote content', continueNote) 127d5a52cc2Sopenharmony_ci AppStorage.SetOrCreate<string>('ContinueNote', continueNote) 128d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'callbackScheduledSave, set continue note success') 129d5a52cc2Sopenharmony_ci }, 130d5a52cc2Sopenharmony_ci callbackPasteImage: (html) => { 131d5a52cc2Sopenharmony_ci if (html) { 132d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'paste info' + html) 133d5a52cc2Sopenharmony_ci let realHtml = "" 134d5a52cc2Sopenharmony_ci let base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/ 135d5a52cc2Sopenharmony_ci if (html && html.indexOf("base64") > 0) { 136d5a52cc2Sopenharmony_ci LogUtil.info(TAG, " getSrcFromHtml, src[1] : " + html) 137d5a52cc2Sopenharmony_ci let imgData = html.split(',')[1]; 138d5a52cc2Sopenharmony_ci let imgType = 'png' 139d5a52cc2Sopenharmony_ci if (html.indexOf("jpeg") > 0) { 140d5a52cc2Sopenharmony_ci imgType = 'jpg' 141d5a52cc2Sopenharmony_ci } else if (html.indexOf("gif") > 0) { 142d5a52cc2Sopenharmony_ci imgType = 'gif' 143d5a52cc2Sopenharmony_ci } 144d5a52cc2Sopenharmony_ci let filePath = "" 145d5a52cc2Sopenharmony_ci if (base64regex.test(imgData)) { 146d5a52cc2Sopenharmony_ci let base64 = new util.Base64() 147d5a52cc2Sopenharmony_ci let decodeArr = base64.decodeSync(imgData) 148d5a52cc2Sopenharmony_ci filePath = OperationUtils.saveImageData(decodeArr, imgType) 149d5a52cc2Sopenharmony_ci } else { 150d5a52cc2Sopenharmony_ci filePath = OperationUtils.saveImage(imgData, imgType) 151d5a52cc2Sopenharmony_ci } 152d5a52cc2Sopenharmony_ci realHtml = "file://" + filePath 153d5a52cc2Sopenharmony_ci } 154d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'paste info11' + realHtml) 155d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript("javascript:RICH_EDITOR.insertImageHtml('" + realHtml + "')") 156d5a52cc2Sopenharmony_ci } else { 157d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'paste info22223') 158d5a52cc2Sopenharmony_ci } 159d5a52cc2Sopenharmony_ci }, 160d5a52cc2Sopenharmony_ci callbackGetSize: (fontSize) => { 161d5a52cc2Sopenharmony_ci if (fontSize === 16) { 162d5a52cc2Sopenharmony_ci this.selectedNoteData.slider_value = 0 163d5a52cc2Sopenharmony_ci } else if (fontSize === 18) { 164d5a52cc2Sopenharmony_ci this.selectedNoteData.slider_value = 4 165d5a52cc2Sopenharmony_ci } else if (fontSize === 24) { 166d5a52cc2Sopenharmony_ci this.selectedNoteData.slider_value = 8 167d5a52cc2Sopenharmony_ci } else if (fontSize === 32) { 168d5a52cc2Sopenharmony_ci this.selectedNoteData.slider_value = 12 169d5a52cc2Sopenharmony_ci } else if (fontSize === 48) { 170d5a52cc2Sopenharmony_ci this.selectedNoteData.slider_value = 16 171d5a52cc2Sopenharmony_ci } 172d5a52cc2Sopenharmony_ci } 173d5a52cc2Sopenharmony_ci } 174d5a52cc2Sopenharmony_ci 175d5a52cc2Sopenharmony_ci build() { 176d5a52cc2Sopenharmony_ci Stack({ alignContent: Alignment.Bottom }) { 177d5a52cc2Sopenharmony_ci Flex({ direction: FlexDirection.Column, wrap: FlexWrap.NoWrap, 178d5a52cc2Sopenharmony_ci alignItems: ItemAlign.Start, alignContent: FlexAlign.SpaceAround }) { 179d5a52cc2Sopenharmony_ci Column() { 180d5a52cc2Sopenharmony_ci ToolBarComp({ controllerShow: this.controllerShow }) 181d5a52cc2Sopenharmony_ci }.margin({ left: 24, right: 24 }) 182d5a52cc2Sopenharmony_ci 183d5a52cc2Sopenharmony_ci Column() { 184d5a52cc2Sopenharmony_ci NoteContentOverViewComp() 185d5a52cc2Sopenharmony_ci 186d5a52cc2Sopenharmony_ci Web({ src: $rawfile('editor.html'), controller: this.controllerShow }) 187d5a52cc2Sopenharmony_ci .javaScriptAccess(true) 188d5a52cc2Sopenharmony_ci .javaScriptProxy({ 189d5a52cc2Sopenharmony_ci object: this.noteContent, 190d5a52cc2Sopenharmony_ci name: "callBackToApp", // html--> name.method 191d5a52cc2Sopenharmony_ci methodList: ["callbackhtml", "callbackScheduledSave", "callbackPasteImage", "callbackImagePath", "callbackGetSize"], 192d5a52cc2Sopenharmony_ci controller: this.controllerShow 193d5a52cc2Sopenharmony_ci }) 194d5a52cc2Sopenharmony_ci .onPageEnd((e) => { 195d5a52cc2Sopenharmony_ci if (this.dpi <= 240) { 196d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript("changeSizeToRk()") 197d5a52cc2Sopenharmony_ci } else if (this.dpi <= 320 && this.dpi > 240) { 198d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript("changeSizeToPhone()") 199d5a52cc2Sopenharmony_ci } else { 200d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript("changeSizeToTablet()") 201d5a52cc2Sopenharmony_ci } 202d5a52cc2Sopenharmony_ci if (AppStorage.Get('breakPoint') !== 'sm') { 203d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript("hiddenButton()") 204d5a52cc2Sopenharmony_ci } 205d5a52cc2Sopenharmony_ci LogUtil.info(TAG, "finish loadurl") 206d5a52cc2Sopenharmony_ci if (this.selectedNoteData) { 207d5a52cc2Sopenharmony_ci let self = this 208d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript( 209d5a52cc2Sopenharmony_ci "RICH_EDITOR.setHtml('" + this.selectedNoteData.content_text + "')", 210d5a52cc2Sopenharmony_ci () => { 211d5a52cc2Sopenharmony_ci // wait for the image in the note to load 212d5a52cc2Sopenharmony_ci setTimeout(function () { 213d5a52cc2Sopenharmony_ci self.restoreScrollTop() 214d5a52cc2Sopenharmony_ci self.restoreFocus() 215d5a52cc2Sopenharmony_ci }, 100) 216d5a52cc2Sopenharmony_ci } 217d5a52cc2Sopenharmony_ci ) 218d5a52cc2Sopenharmony_ci } 219d5a52cc2Sopenharmony_ci }) 220d5a52cc2Sopenharmony_ci .zoomAccess(false) 221d5a52cc2Sopenharmony_ci .imageAccess(true) 222d5a52cc2Sopenharmony_ci .onlineImageAccess(true) 223d5a52cc2Sopenharmony_ci .fileAccess(true) 224d5a52cc2Sopenharmony_ci .domStorageAccess(true) 225d5a52cc2Sopenharmony_ci .height('88%') 226d5a52cc2Sopenharmony_ci .width('100%') 227d5a52cc2Sopenharmony_ci .onScroll((event) => { 228d5a52cc2Sopenharmony_ci this.storeScrollTop(event.yOffset) 229d5a52cc2Sopenharmony_ci }) 230d5a52cc2Sopenharmony_ci .onClick(() => { 231d5a52cc2Sopenharmony_ci // 添加定时器:3s自动保存 232d5a52cc2Sopenharmony_ci if (timeID) { 233d5a52cc2Sopenharmony_ci clearInterval(timeID) 234d5a52cc2Sopenharmony_ci } 235d5a52cc2Sopenharmony_ci timeID = setInterval(() => { 236d5a52cc2Sopenharmony_ci try { 237d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript("scheduledSaveContent()"); 238d5a52cc2Sopenharmony_ci LogUtil.info(TAG, `runJavaScript scheduledSaveContent success.`); 239d5a52cc2Sopenharmony_ci } catch (error) { 240d5a52cc2Sopenharmony_ci LogUtil.info(TAG, `runJavaScript scheduledSaveContent failed.code:${JSON.stringify(error.code)}, 241d5a52cc2Sopenharmony_ci message:${JSON.stringify(error.message)}`); 242d5a52cc2Sopenharmony_ci } 243d5a52cc2Sopenharmony_ci }, 3000) 244d5a52cc2Sopenharmony_ci LogUtil.info(TAG, "setInterval timeID : " + timeID) 245d5a52cc2Sopenharmony_ci this.issave = 0 246d5a52cc2Sopenharmony_ci this.editModel = true 247d5a52cc2Sopenharmony_ci }) 248d5a52cc2Sopenharmony_ci } 249d5a52cc2Sopenharmony_ci .margin({ left: 12, right: 24, top: 16 }) 250d5a52cc2Sopenharmony_ci } 251d5a52cc2Sopenharmony_ci .height(StyleConstants.PERCENTAGE_100) 252d5a52cc2Sopenharmony_ci } 253d5a52cc2Sopenharmony_ci .height(StyleConstants.PERCENTAGE_100) 254d5a52cc2Sopenharmony_ci .width(StyleConstants.PERCENTAGE_100) 255d5a52cc2Sopenharmony_ci } 256d5a52cc2Sopenharmony_ci 257d5a52cc2Sopenharmony_ci aboutToAppear(): void { 258d5a52cc2Sopenharmony_ci LogUtil.info(TAG, "aboutToAppear") 259d5a52cc2Sopenharmony_ci } 260d5a52cc2Sopenharmony_ci 261d5a52cc2Sopenharmony_ci aboutToDisappear(): void { 262d5a52cc2Sopenharmony_ci AppStorage.Set("refreshCurrentNote", true) 263d5a52cc2Sopenharmony_ci NoteUtil.refreshAll() 264d5a52cc2Sopenharmony_ci clearInterval(timeID) 265d5a52cc2Sopenharmony_ci LogUtil.info(TAG, "aboutToDisappear") 266d5a52cc2Sopenharmony_ci } 267d5a52cc2Sopenharmony_ci} 268d5a52cc2Sopenharmony_ci 269d5a52cc2Sopenharmony_ci@Component 270d5a52cc2Sopenharmony_ciexport struct ToolBarComp { 271d5a52cc2Sopenharmony_ci @Consume('SelectedNoteData') selectedNoteData: NoteData 272d5a52cc2Sopenharmony_ci @StorageLink('AllNoteArray') AllNoteArray: NoteData[] = AppStorage.Link('AllNoteArray') 273d5a52cc2Sopenharmony_ci @Consume('Issave') issave: number 274d5a52cc2Sopenharmony_ci @Consume('EditModel') editModel: boolean 275d5a52cc2Sopenharmony_ci controllerShow: WebviewController 276d5a52cc2Sopenharmony_ci editContentDialogCtl: CustomDialogController = new CustomDialogController({ 277d5a52cc2Sopenharmony_ci builder: EditContentDialog({ confirm: this.confirm.bind(this) }), 278d5a52cc2Sopenharmony_ci alignment: DialogAlignment.Bottom, 279d5a52cc2Sopenharmony_ci autoCancel: true, 280d5a52cc2Sopenharmony_ci customStyle: true, 281d5a52cc2Sopenharmony_ci }) 282d5a52cc2Sopenharmony_ci 283d5a52cc2Sopenharmony_ci aboutToDisappear() { 284d5a52cc2Sopenharmony_ci this.editContentDialogCtl = null 285d5a52cc2Sopenharmony_ci } 286d5a52cc2Sopenharmony_ci 287d5a52cc2Sopenharmony_ci confirm(excuteJs: string) { 288d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript(excuteJs) 289d5a52cc2Sopenharmony_ci } 290d5a52cc2Sopenharmony_ci 291d5a52cc2Sopenharmony_ci build() { 292d5a52cc2Sopenharmony_ci Flex({ direction: FlexDirection.Row, wrap: FlexWrap.NoWrap, 293d5a52cc2Sopenharmony_ci justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { 294d5a52cc2Sopenharmony_ci Image($r('app.media.narrow')) 295d5a52cc2Sopenharmony_ci .height(24) 296d5a52cc2Sopenharmony_ci .width(24) 297d5a52cc2Sopenharmony_ci .onClick(() => { 298d5a52cc2Sopenharmony_ci try { 299d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript("RICH_EDITOR.setInputEnabled(false)"); 300d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript("getHtmlContent()"); 301d5a52cc2Sopenharmony_ci LogUtil.info(TAG, `runJavaScript setInputEnabled and getHtmlContent success.`); 302d5a52cc2Sopenharmony_ci } catch (error) { 303d5a52cc2Sopenharmony_ci LogUtil.info(TAG, `runJavaScript setInputEnabled and getHtmlContent fail.code:${JSON.stringify(error.code)}, 304d5a52cc2Sopenharmony_ci message:${JSON.stringify(error.message)}`); 305d5a52cc2Sopenharmony_ci } 306d5a52cc2Sopenharmony_ci 307d5a52cc2Sopenharmony_ci // 清除定时器 308d5a52cc2Sopenharmony_ci if (timeID != undefined) { 309d5a52cc2Sopenharmony_ci LogUtil.info(TAG, "zoom, clearInterval timeID : " + timeID) 310d5a52cc2Sopenharmony_ci clearInterval(timeID) 311d5a52cc2Sopenharmony_ci } 312d5a52cc2Sopenharmony_ci AppStorage.Set("refreshCurrentNote", true) 313d5a52cc2Sopenharmony_ci router.back() 314d5a52cc2Sopenharmony_ci NoteUtil.refreshAll() 315d5a52cc2Sopenharmony_ci }) 316d5a52cc2Sopenharmony_ci .visibility(this.selectedNoteData.is_deleted == Delete.Yes ? Visibility.None : Visibility.Visible) 317d5a52cc2Sopenharmony_ci 318d5a52cc2Sopenharmony_ci if (this.editModel == false) { 319d5a52cc2Sopenharmony_ci Row({ space: StyleConstants.SPACE_24 }) { 320d5a52cc2Sopenharmony_ci Image(this.selectedNoteData.is_favorite == Favorite.Yes ? $r('app.media.favorite') : $r('app.media.favorite_cancel')) 321d5a52cc2Sopenharmony_ci .height(24).width(24) 322d5a52cc2Sopenharmony_ci .onClick(() => { 323d5a52cc2Sopenharmony_ci try { 324d5a52cc2Sopenharmony_ci this.selectedNoteData.is_favorite = (this.selectedNoteData.is_favorite == Favorite.Yes ? Favorite.No : Favorite.Yes) 325d5a52cc2Sopenharmony_ci // update note to db 326d5a52cc2Sopenharmony_ci let predicates_note = RdbStoreUtil.getRdbPredicates(TableName.NoteTable) 327d5a52cc2Sopenharmony_ci predicates_note.equalTo(NoteTableColumn.Uuid, this.selectedNoteData.uuid) 328d5a52cc2Sopenharmony_ci RdbStoreUtil.update(this.selectedNoteData.toNoteObject(), predicates_note, null) 329d5a52cc2Sopenharmony_ci // save continue data 330d5a52cc2Sopenharmony_ci let continueNote: string = JSON.stringify(this.selectedNoteData.toNoteObject()) 331d5a52cc2Sopenharmony_ci AppStorage.SetOrCreate<string>('ContinueNote', continueNote) 332d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'ToolBarComp, set continue note success') 333d5a52cc2Sopenharmony_ci NoteUtil.refreshAll() 334d5a52cc2Sopenharmony_ci } catch (error) { 335d5a52cc2Sopenharmony_ci LogUtil.error(TAG, 'favorite error: ' + JSON.stringify(error)); 336d5a52cc2Sopenharmony_ci } 337d5a52cc2Sopenharmony_ci }) 338d5a52cc2Sopenharmony_ci }.width(36) 339d5a52cc2Sopenharmony_ci .visibility(this.selectedNoteData.is_deleted == Delete.Yes ? Visibility.None : Visibility.Visible) 340d5a52cc2Sopenharmony_ci } else { 341d5a52cc2Sopenharmony_ci Row({ space: StyleConstants.SPACE_6 }) { 342d5a52cc2Sopenharmony_ci Button({ type: ButtonType.Normal, stateEffect: true }) { 343d5a52cc2Sopenharmony_ci Image($r('app.media.circle_tick1')) 344d5a52cc2Sopenharmony_ci .height(24) 345d5a52cc2Sopenharmony_ci .width(24) 346d5a52cc2Sopenharmony_ci .onClick(() => { 347d5a52cc2Sopenharmony_ci // 退出键盘 348d5a52cc2Sopenharmony_ci // @ts-ignore 349d5a52cc2Sopenharmony_ci inputMethod.getController().stopInputSession(); 350d5a52cc2Sopenharmony_ci // 清单 351d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript("javascript:RICH_EDITOR.setTodo()") 352d5a52cc2Sopenharmony_ci }) 353d5a52cc2Sopenharmony_ci }.width(42) 354d5a52cc2Sopenharmony_ci .height(42) 355d5a52cc2Sopenharmony_ci .borderRadius(8) 356d5a52cc2Sopenharmony_ci .backgroundColor($r('app.color.color_fffffB')) 357d5a52cc2Sopenharmony_ci 358d5a52cc2Sopenharmony_ci Button({ type: ButtonType.Normal, stateEffect: true }) { 359d5a52cc2Sopenharmony_ci Image($r('app.media.font_style')) 360d5a52cc2Sopenharmony_ci .height(24) 361d5a52cc2Sopenharmony_ci .width(24) 362d5a52cc2Sopenharmony_ci .onClick(() => { 363d5a52cc2Sopenharmony_ci // 退出键盘 364d5a52cc2Sopenharmony_ci // @ts-ignore 365d5a52cc2Sopenharmony_ci inputMethod.getController().stopInputSession(); 366d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'editContentDialogCtl start') 367d5a52cc2Sopenharmony_ci this.editContentDialogCtl.open() 368d5a52cc2Sopenharmony_ci }) 369d5a52cc2Sopenharmony_ci }.width(42) 370d5a52cc2Sopenharmony_ci .height(42) 371d5a52cc2Sopenharmony_ci .borderRadius(8) 372d5a52cc2Sopenharmony_ci .backgroundColor($r('app.color.color_fffffB')) 373d5a52cc2Sopenharmony_ci 374d5a52cc2Sopenharmony_ci Button({ type: ButtonType.Normal, stateEffect: true }) { 375d5a52cc2Sopenharmony_ci Image($r('app.media.picture_white')).height(24).width(24) 376d5a52cc2Sopenharmony_ci .onClick(async () => { 377d5a52cc2Sopenharmony_ci // 退出键盘 378d5a52cc2Sopenharmony_ci // @ts-ignore 379d5a52cc2Sopenharmony_ci inputMethod.getController().stopInputSession(); 380d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'startAbility start') 381d5a52cc2Sopenharmony_ci await globalThis.noteContext.startAbilityForResult({ 382d5a52cc2Sopenharmony_ci parameters: { uri: "singleselect" }, 383d5a52cc2Sopenharmony_ci bundleName: "com.ohos.photos", 384d5a52cc2Sopenharmony_ci abilityName: "com.ohos.photos.MainAbility", 385d5a52cc2Sopenharmony_ci }) 386d5a52cc2Sopenharmony_ci .then(v => { 387d5a52cc2Sopenharmony_ci let want = v['want']; 388d5a52cc2Sopenharmony_ci if (want != null && want != undefined) { 389d5a52cc2Sopenharmony_ci let param = want['parameters']; 390d5a52cc2Sopenharmony_ci let imageUri = "" 391d5a52cc2Sopenharmony_ci if (param != null && param != undefined) { 392d5a52cc2Sopenharmony_ci let uri = param['select-item-list']; 393d5a52cc2Sopenharmony_ci imageUri = uri[0]; 394d5a52cc2Sopenharmony_ci } 395d5a52cc2Sopenharmony_ci // 拷贝 396d5a52cc2Sopenharmony_ci if (imageUri != null && imageUri != "") { 397d5a52cc2Sopenharmony_ci OperationUtils.copy(imageUri).then((uriPath) => { 398d5a52cc2Sopenharmony_ci var path = "file://" + uriPath 399d5a52cc2Sopenharmony_ci LogUtil.info(TAG, 'image uri is:' + path) 400d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript( 401d5a52cc2Sopenharmony_ci "javascript:RICH_EDITOR.insertImage('" + path + "')" 402d5a52cc2Sopenharmony_ci ) 403d5a52cc2Sopenharmony_ci this.issave = 1 404d5a52cc2Sopenharmony_ci // 保存笔记信息到数据库 405d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript("getHtmlContent()") 406d5a52cc2Sopenharmony_ci }) 407d5a52cc2Sopenharmony_ci } 408d5a52cc2Sopenharmony_ci } 409d5a52cc2Sopenharmony_ci }); 410d5a52cc2Sopenharmony_ci }) 411d5a52cc2Sopenharmony_ci }.width(42) 412d5a52cc2Sopenharmony_ci .height(42) 413d5a52cc2Sopenharmony_ci .borderRadius(8) 414d5a52cc2Sopenharmony_ci .backgroundColor($r('app.color.color_fffffB')) 415d5a52cc2Sopenharmony_ci 416d5a52cc2Sopenharmony_ci Button({ type: ButtonType.Normal, stateEffect: true }) { 417d5a52cc2Sopenharmony_ci Image($r('app.media.undo')) 418d5a52cc2Sopenharmony_ci .height(24) 419d5a52cc2Sopenharmony_ci .width(24) 420d5a52cc2Sopenharmony_ci .onClick(() => { 421d5a52cc2Sopenharmony_ci // 退出键盘 422d5a52cc2Sopenharmony_ci // @ts-ignore 423d5a52cc2Sopenharmony_ci inputMethod.getController().stopInputSession(); 424d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript("RICH_EDITOR.undo()") 425d5a52cc2Sopenharmony_ci }) 426d5a52cc2Sopenharmony_ci }.width(42) 427d5a52cc2Sopenharmony_ci .height(42) 428d5a52cc2Sopenharmony_ci .borderRadius(8) 429d5a52cc2Sopenharmony_ci .backgroundColor($r('app.color.color_fffffB')) 430d5a52cc2Sopenharmony_ci 431d5a52cc2Sopenharmony_ci Button({ type: ButtonType.Normal, stateEffect: true }) { 432d5a52cc2Sopenharmony_ci Image($r('app.media.todo')) 433d5a52cc2Sopenharmony_ci .height(24) 434d5a52cc2Sopenharmony_ci .width(24) 435d5a52cc2Sopenharmony_ci .onClick(() => { 436d5a52cc2Sopenharmony_ci // 退出键盘 437d5a52cc2Sopenharmony_ci // @ts-ignore 438d5a52cc2Sopenharmony_ci inputMethod.getController().stopInputSession(); 439d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript("RICH_EDITOR.redo()") 440d5a52cc2Sopenharmony_ci }) 441d5a52cc2Sopenharmony_ci }.width(42) 442d5a52cc2Sopenharmony_ci .height(42) 443d5a52cc2Sopenharmony_ci .borderRadius(8) 444d5a52cc2Sopenharmony_ci .backgroundColor($r('app.color.color_fffffB')) 445d5a52cc2Sopenharmony_ci 446d5a52cc2Sopenharmony_ci 447d5a52cc2Sopenharmony_ci Button({ type: ButtonType.Normal, stateEffect: true }) { 448d5a52cc2Sopenharmony_ci Image($r('app.media.tick_thick')) 449d5a52cc2Sopenharmony_ci .height(24) 450d5a52cc2Sopenharmony_ci .width(24) 451d5a52cc2Sopenharmony_ci .fillColor(this.issave == 0 ? Color.Black : Color.Grey) 452d5a52cc2Sopenharmony_ci .onClick(() => { 453d5a52cc2Sopenharmony_ci this.issave = 1 454d5a52cc2Sopenharmony_ci // 保存笔记信息到数据库 455d5a52cc2Sopenharmony_ci this.controllerShow.runJavaScript("getHtmlContent()") 456d5a52cc2Sopenharmony_ci }) 457d5a52cc2Sopenharmony_ci }.width(42) 458d5a52cc2Sopenharmony_ci .height(42) 459d5a52cc2Sopenharmony_ci .borderRadius(8) 460d5a52cc2Sopenharmony_ci .backgroundColor($r('app.color.color_fffffB')) 461d5a52cc2Sopenharmony_ci }.width(274) 462d5a52cc2Sopenharmony_ci } 463d5a52cc2Sopenharmony_ci } 464d5a52cc2Sopenharmony_ci .width(StyleConstants.PERCENTAGE_100) 465d5a52cc2Sopenharmony_ci .height(80) 466d5a52cc2Sopenharmony_ci } 467d5a52cc2Sopenharmony_ci} 468d5a52cc2Sopenharmony_ci 469d5a52cc2Sopenharmony_ci@Component 470d5a52cc2Sopenharmony_ciexport struct NoteContentOverViewComp { 471d5a52cc2Sopenharmony_ci @Consume('SelectedNoteData') selectedNoteData: NoteData 472d5a52cc2Sopenharmony_ci @StorageLink('AllFolderArray') AllFolderArray: FolderData[] = [] 473d5a52cc2Sopenharmony_ci @StorageLink('CheckedNoteArray') CheckedNoteArray: NoteData[] = [] 474d5a52cc2Sopenharmony_ci @StorageLink('isUpdate') isUpdate: boolean = false 475d5a52cc2Sopenharmony_ci editTitleDialogCtl: CustomDialogController = new CustomDialogController({ 476d5a52cc2Sopenharmony_ci builder: EditTitleDialog({ confirm: this.confirm.bind(this) }), 477d5a52cc2Sopenharmony_ci alignment: DialogAlignment.Center, 478d5a52cc2Sopenharmony_ci autoCancel: false, 479d5a52cc2Sopenharmony_ci customStyle: true, 480d5a52cc2Sopenharmony_ci }) 481d5a52cc2Sopenharmony_ci 482d5a52cc2Sopenharmony_ci aboutToDisappear() { 483d5a52cc2Sopenharmony_ci this.editTitleDialogCtl = null 484d5a52cc2Sopenharmony_ci } 485d5a52cc2Sopenharmony_ci 486d5a52cc2Sopenharmony_ci confirm(newTitle: string) { 487d5a52cc2Sopenharmony_ci this.selectedNoteData.title = newTitle 488d5a52cc2Sopenharmony_ci this.selectedNoteData.modified_time = new Date().getTime() 489d5a52cc2Sopenharmony_ci let predicates_note = RdbStoreUtil.getRdbPredicates(TableName.NoteTable) 490d5a52cc2Sopenharmony_ci predicates_note.equalTo(NoteTableColumn.Uuid, this.selectedNoteData.uuid) 491d5a52cc2Sopenharmony_ci RdbStoreUtil.update(this.selectedNoteData.toNoteObject(), predicates_note, null) 492d5a52cc2Sopenharmony_ci // save continue data 493d5a52cc2Sopenharmony_ci let continueNote: string = JSON.stringify(this.selectedNoteData.toNoteObject()) 494d5a52cc2Sopenharmony_ci AppStorage.SetOrCreate<string>('ContinueNote', continueNote) 495d5a52cc2Sopenharmony_ci LogUtil.info(TAG, "NoteContentOverViewComp confirm, set continue note success") 496d5a52cc2Sopenharmony_ci NoteUtil.refreshAll() 497d5a52cc2Sopenharmony_ci } 498d5a52cc2Sopenharmony_ci 499d5a52cc2Sopenharmony_ci @Builder MenuBuilder() { 500d5a52cc2Sopenharmony_ci Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { 501d5a52cc2Sopenharmony_ci List() { 502d5a52cc2Sopenharmony_ci ForEach(this.AllFolderArray, (item) => { 503d5a52cc2Sopenharmony_ci ListItem() { 504d5a52cc2Sopenharmony_ci NoteDataMoveItemComp({ folderItem: item }) 505d5a52cc2Sopenharmony_ci } 506d5a52cc2Sopenharmony_ci .onClick(() => { 507d5a52cc2Sopenharmony_ci this.selectedNoteData.folder_uuid = item.uuid 508d5a52cc2Sopenharmony_ci let predicates_note = RdbStoreUtil.getRdbPredicates(TableName.NoteTable) 509d5a52cc2Sopenharmony_ci predicates_note.equalTo(NoteTableColumn.Uuid, this.selectedNoteData.uuid) 510d5a52cc2Sopenharmony_ci RdbStoreUtil.update(this.selectedNoteData.toNoteObject(), predicates_note, null) 511d5a52cc2Sopenharmony_ci // save continue data 512d5a52cc2Sopenharmony_ci let continueNote: string = JSON.stringify(this.selectedNoteData.toNoteObject()) 513d5a52cc2Sopenharmony_ci AppStorage.SetOrCreate<string>('ContinueNote', continueNote) 514d5a52cc2Sopenharmony_ci LogUtil.info(TAG, "NoteContentOverViewComp MenuBuilder, set continue note success") 515d5a52cc2Sopenharmony_ci NoteUtil.refreshAll() 516d5a52cc2Sopenharmony_ci }) 517d5a52cc2Sopenharmony_ci }, noteItem => JSON.stringify(noteItem)) 518d5a52cc2Sopenharmony_ci }.listDirection(Axis.Vertical) 519d5a52cc2Sopenharmony_ci .edgeEffect(EdgeEffect.Spring) 520d5a52cc2Sopenharmony_ci .height(this.AllFolderArray.length > 12 ? 504 : (this.AllFolderArray.length - 3) * 56) 521d5a52cc2Sopenharmony_ci } 522d5a52cc2Sopenharmony_ci .width(148) 523d5a52cc2Sopenharmony_ci .backgroundColor($r("app.color.color_fffffB")) 524d5a52cc2Sopenharmony_ci .padding({ left: 24, right: 24 }) 525d5a52cc2Sopenharmony_ci } 526d5a52cc2Sopenharmony_ci 527d5a52cc2Sopenharmony_ci build() { 528d5a52cc2Sopenharmony_ci if (this.selectedNoteData) { 529d5a52cc2Sopenharmony_ci Flex({ direction: FlexDirection.Column, wrap: FlexWrap.NoWrap, 530d5a52cc2Sopenharmony_ci justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { 531d5a52cc2Sopenharmony_ci Row() { 532d5a52cc2Sopenharmony_ci Text(this.selectedNoteData.title) 533d5a52cc2Sopenharmony_ci .id(this.isUpdate + '') 534d5a52cc2Sopenharmony_ci .fontSize(30) 535d5a52cc2Sopenharmony_ci .margin({ left: 12, right: 24 }) 536d5a52cc2Sopenharmony_ci .onClick(() => { 537d5a52cc2Sopenharmony_ci clearInterval(timeID) 538d5a52cc2Sopenharmony_ci this.editTitleDialogCtl.open() 539d5a52cc2Sopenharmony_ci }) 540d5a52cc2Sopenharmony_ci }.height(40) 541d5a52cc2Sopenharmony_ci .width(StyleConstants.PERCENTAGE_100) 542d5a52cc2Sopenharmony_ci 543d5a52cc2Sopenharmony_ci Row() { 544d5a52cc2Sopenharmony_ci Text(DateUtil.formateDateForNoteContent(new Date(this.selectedNoteData.modified_time))) 545d5a52cc2Sopenharmony_ci .id(this.isUpdate + '') 546d5a52cc2Sopenharmony_ci .fontSize(12) 547d5a52cc2Sopenharmony_ci .padding({ top: 4, bottom: 4 }) 548d5a52cc2Sopenharmony_ci .fontColor($r("app.color.modified_time_font_color")) 549d5a52cc2Sopenharmony_ci .margin({ left: 12 }) 550d5a52cc2Sopenharmony_ci Row() { 551d5a52cc2Sopenharmony_ci Text(FolderUtil.getFolderText(FolderUtil.getFolderData(AppStorage.Get('AllFolderArray'), this.selectedNoteData.folder_uuid)) == 552d5a52cc2Sopenharmony_ci folderTextMap["sys_def_myFavorites_uuid"] ? folderTextMap["sys_def_unClassified_uuid"] : 553d5a52cc2Sopenharmony_ci FolderUtil.getFolderText(FolderUtil.getFolderData(AppStorage.Get('AllFolderArray'), this.selectedNoteData.folder_uuid))) 554d5a52cc2Sopenharmony_ci .id(this.isUpdate + '') 555d5a52cc2Sopenharmony_ci .fontSize(12) 556d5a52cc2Sopenharmony_ci .fontColor($r("app.color.list_modified_time_font_color")) 557d5a52cc2Sopenharmony_ci Image($r('app.media.triangle')) 558d5a52cc2Sopenharmony_ci .width(6) 559d5a52cc2Sopenharmony_ci .height(12) 560d5a52cc2Sopenharmony_ci .margin({ left: 4 }) 561d5a52cc2Sopenharmony_ci } 562d5a52cc2Sopenharmony_ci .padding({ left: 8, right: 8, top: 4, bottom: 4 }) 563d5a52cc2Sopenharmony_ci .margin({ left: 8 }) 564d5a52cc2Sopenharmony_ci .borderRadius(16) 565d5a52cc2Sopenharmony_ci .backgroundColor(NoteUtil.getNoteBgColor(AppStorage.Get('AllFolderArray'), this.selectedNoteData.folder_uuid, SysDefFolderUuid.AllNotes, false)) 566d5a52cc2Sopenharmony_ci .bindMenu(this.MenuBuilder) 567d5a52cc2Sopenharmony_ci }.alignItems(VerticalAlign.Top).height(40).width(StyleConstants.PERCENTAGE_100) 568d5a52cc2Sopenharmony_ci } 569d5a52cc2Sopenharmony_ci .opacity(this.selectedNoteData.is_deleted == Delete.Yes ? 0.4 : 1) 570d5a52cc2Sopenharmony_ci .width(StyleConstants.PERCENTAGE_100) 571d5a52cc2Sopenharmony_ci .height(80) 572d5a52cc2Sopenharmony_ci } 573d5a52cc2Sopenharmony_ci } 574d5a52cc2Sopenharmony_ci} 575d5a52cc2Sopenharmony_ci 576d5a52cc2Sopenharmony_ci@Component 577d5a52cc2Sopenharmony_cistruct NoteDataMoveItemComp { 578d5a52cc2Sopenharmony_ci @StorageLink('CheckedNoteArray') CheckedNoteArray: NoteData[] = [] 579d5a52cc2Sopenharmony_ci @StorageLink('AllFolderArray') AllFolderArray: FolderData[] = [] 580d5a52cc2Sopenharmony_ci private folderItem: FolderData 581d5a52cc2Sopenharmony_ci 582d5a52cc2Sopenharmony_ci build() { 583d5a52cc2Sopenharmony_ci Flex({ alignItems: ItemAlign.Center, wrap: FlexWrap.NoWrap, justifyContent: FlexAlign.Center }) { 584d5a52cc2Sopenharmony_ci Flex({ alignItems: ItemAlign.Center, wrap: FlexWrap.NoWrap }) { 585d5a52cc2Sopenharmony_ci Image(FolderUtil.getFolderIcon(this.folderItem.uuid)) 586d5a52cc2Sopenharmony_ci .objectFit(ImageFit.Fill) 587d5a52cc2Sopenharmony_ci .width(24) 588d5a52cc2Sopenharmony_ci .height(24) 589d5a52cc2Sopenharmony_ci .flexShrink(0) 590d5a52cc2Sopenharmony_ci .fillColor(FolderUtil.getFolderIconColor(this.AllFolderArray, this.folderItem.uuid, false)) 591d5a52cc2Sopenharmony_ci } 592d5a52cc2Sopenharmony_ci .width(24) 593d5a52cc2Sopenharmony_ci 594d5a52cc2Sopenharmony_ci Column() { 595d5a52cc2Sopenharmony_ci Flex({ alignItems: ItemAlign.Center, wrap: FlexWrap.NoWrap, justifyContent: FlexAlign.SpaceBetween }) { 596d5a52cc2Sopenharmony_ci Text(FolderUtil.getFolderText(this.folderItem)) 597d5a52cc2Sopenharmony_ci .fontSize(16) 598d5a52cc2Sopenharmony_ci .fontColor(FolderUtil.getFolderIconColor(this.AllFolderArray, this.folderItem.uuid, false)) 599d5a52cc2Sopenharmony_ci .textAlign(TextAlign.Center) 600d5a52cc2Sopenharmony_ci .maxLines(1) 601d5a52cc2Sopenharmony_ci .textOverflow({ overflow: TextOverflow.Ellipsis }) 602d5a52cc2Sopenharmony_ci .flexShrink(1) 603d5a52cc2Sopenharmony_ci } 604d5a52cc2Sopenharmony_ci .width('100%') 605d5a52cc2Sopenharmony_ci .height(55) 606d5a52cc2Sopenharmony_ci 607d5a52cc2Sopenharmony_ci Divider() 608d5a52cc2Sopenharmony_ci .color($r("app.color.divider_color_e4e4e4")) 609d5a52cc2Sopenharmony_ci .strokeWidth(1) 610d5a52cc2Sopenharmony_ci } 611d5a52cc2Sopenharmony_ci .padding({ left: 16 }) 612d5a52cc2Sopenharmony_ci } 613d5a52cc2Sopenharmony_ci .width('100%') 614d5a52cc2Sopenharmony_ci .height(56) 615d5a52cc2Sopenharmony_ci .visibility(FolderUtil.isFolderMoveIn(this.folderItem) ? Visibility.Visible : Visibility.None) 616d5a52cc2Sopenharmony_ci } 617d5a52cc2Sopenharmony_ci}