Toggle navigation
Toggle navigation
This project
Loading...
Sign in
developOne
/
harmonyPool
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
王士厅
2024-06-07 15:06:25 +0800
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
3051cab3dd87755238463cee597a7ba0fae824d9
3051cab3
2 parents
1ea7a5fb
1cf499ae
Merge branch 'main' of
http://192.168.1.42/developOne/harmonyPool
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
504 additions
and
122 deletions
sight_harmony/commons/wdKit/Index.ets
sight_harmony/commons/wdKit/src/main/ets/utils/CrptoUtils.ets
sight_harmony/commons/wdKit/src/main/ets/utils/FileUtils.ets
sight_harmony/commons/wdRouter/src/main/ets/router/Action2Page.ets
sight_harmony/commons/wdRouter/src/main/ets/utils/AppInnerLink.ets
sight_harmony/commons/wdRouter/src/main/ets/utils/ProcessUtils.ets
sight_harmony/features/wdBean/src/main/ets/bean/content/Params.ts
sight_harmony/features/wdComponent/src/main/ets/components/CardParser.ets
sight_harmony/features/wdComponent/src/main/ets/components/CompParser.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card17Component.ets
sight_harmony/features/wdComponent/src/main/ets/components/mine/home/HomePageBottomCommentComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/mine/home/OtherHomePageBottomCommentComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/peopleShip/PeopleShipMainComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/peopleShip/PeopleShipRecommendComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/search/SearchResultContentComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/view/PermissionDesComponent.ets
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageFollowHelper.ets
sight_harmony/features/wdLogin/src/main/ets/pages/login/LoginPage.ets
sight_harmony/features/wdShare/src/main/ets/utils/DeepLinkUtil.ets
sight_harmony/products/phone/src/main/ets/dailynewspaperformability/DailyNewspaperFormAbility.ets
sight_harmony/products/phone/src/main/ets/dailynewspaperformability/NewspaperDataFetcher.ets
sight_harmony/products/phone/src/main/ets/dailynewspaperwidget/common/NewspaperWidgetData.ets
sight_harmony/products/phone/src/main/ets/dailynewspaperwidget/pages/DailyNewspaperWidgetCard.ets
sight_harmony/products/phone/src/main/ets/pages/view/BottomNavigationComponent.ets
sight_harmony/products/phone/src/main/ets/startupmanager/StartupManager.ets
sight_harmony/products/phone/src/main/resources/base/profile/form_config.json
sight_harmony/commons/wdKit/Index.ets
View file @
3051cab
...
...
@@ -67,4 +67,8 @@ export { TingyunAPM } from './src/main/ets/tingyunAPM/TingyunAPM'
export { FastClickUtil } from './src/main/ets/utils/FastClickUtil';
// export { PublicPopupDialogView } from "./src/main/ets/pubComps/dialog/PublicPopupDialogView"
export { PublicDialogManager, CloseAction } from "./src/main/ets/pubComps/dialog/PublicDialogManager"
\ No newline at end of file
export { PublicDialogManager, CloseAction } from "./src/main/ets/pubComps/dialog/PublicDialogManager"
export { CrptoUtils } from "./src/main/ets/utils/CrptoUtils"
export { FileUtils } from "./src/main/ets/utils/FileUtils"
\ No newline at end of file
...
...
sight_harmony/commons/wdKit/src/main/ets/utils/CrptoUtils.ets
0 → 100644
View file @
3051cab
import cryptoFramework from '@ohos.security.cryptoFramework';
import buffer from '@ohos.buffer';
export class CrptoUtils {
static md5(message: string) : Promise<string> {
return CrptoUtils.mdFunc(message, 'MD5')
}
static mdFunc(message: string, algoName: string = 'MD5'): Promise<string> {
return new Promise<string>(async (reslove, fail) => {
try {
let md = cryptoFramework.createMd(algoName);
// 数据量较少时,可以只做一次update,将数据全部传入,接口未对入参长度做限制
await md.update({ data: new Uint8Array(buffer.from(message, 'utf-8').buffer) });
let mdResult = await md.digest();
// console.info('Md result:' + mdResult.data);
// const string = mdResult.data.map((charCode, index, array) => {
// return String.fromCharCode(charCode)
// }).join("")
let string = "";
for (let i = 0; i < mdResult.data.length; i++) {
string += mdResult.data[i].toString(16).padStart(2, "0")
}
// const string = mdResult.data.join('')
reslove(string)
} catch (e) {
fail(e)
}
})
}
}
...
...
sight_harmony/commons/wdKit/src/main/ets/utils/FileUtils.ets
0 → 100644
View file @
3051cab
import fs from '@ohos.file.fs';
import { BusinessError } from '@kit.BasicServicesKit';
export class FileUtils {
// 文件是否存在,忽略错误
static fileExsit(path: string) : Promise<boolean> {
return new Promise((reslove, fail) => {
fs.stat(path).then(() => {
reslove(true)
}).catch((error: BusinessError) => {
if (error.code = 13900002) {
reslove(false)
} else {
reslove(true)
}
})
});
}
static makeDirIfNotExsit(path: string) : Promise<void> {
return new Promise((reslove, fail) => {
fs.stat(path).then(() => {
reslove()
}).catch((error: BusinessError) => {
if (error.code = 13900002) {
fs.mkdirSync(path)
}
reslove()
})
})
}
}
\ No newline at end of file
...
...
sight_harmony/commons/wdRouter/src/main/ets/router/Action2Page.ets
View file @
3051cab
...
...
@@ -49,9 +49,9 @@ export function registerRouter() {
// })
Action2Page.register("JUMP_DETAIL_PAGE", (action: Action) => {
if (action.params?.detailPageType == 2
|| action.params?.detailPageType == 6
) {
if (action.params?.detailPageType == 2) {
return WDRouterPage.detailPlayLiveCommon
} else if (action.params?.detailPageType ==
7 || action.params?.detailPageType == 8
) {
} else if (action.params?.detailPageType ==
1
) {
return WDRouterPage.detailVideoListPage
} else if (action.params?.detailPageType == 9) {
//图集详情页
...
...
@@ -59,16 +59,19 @@ export function registerRouter() {
} else if (action.params?.detailPageType == 14 || action.params?.detailPageType == 15) {
//动态详情页
return WDRouterPage.dynamicDetailPage
} else if (action.params?.detailPageType == 17) {
return WDRouterPage.multiPictureDetailPage
} else if (action.params?.detailPageType == 13) {
return WDRouterPage.audioDetail
} else if (action.params?.detailPageType == 18) {
} else if (action.params?.detailPageType == 30) {
return WDRouterPage.themeListPage
} else if (action.params?.detailPageType == 8) {
return WDRouterPage.imageTextDetailPage
}
//TODO: 以下两个最好改为pageID方式,以上都是有具体内容类型 对应详情页面
else if (action.params?.detailPageType == 18) {
return WDRouterPage.multiPictureListPage
} else if (action.params?.detailPageType == 19) {
return WDRouterPage.videoPlayPage
}else if (action.params?.detailPageType == 30) {
return WDRouterPage.themeListPage
}
return WDRouterPage.detailPlayVodPage
})
...
...
sight_harmony/commons/wdRouter/src/main/ets/utils/AppInnerLink.ets
View file @
3051cab
...
...
@@ -3,6 +3,7 @@ import App from '@system.app'
import { Action, Params } from 'wdBean/Index'
import { ExtraDTO } from 'wdBean/src/main/ets/bean/component/extra/ExtraDTO'
import { Logger } from 'wdKit/Index'
import { ContentType } from '../common/ContentType'
import { WDRouterRule } from '../router/WDRouterRule'
import { ProcessUtils } from './ProcessUtils'
...
...
@@ -111,13 +112,13 @@ export class AppInnerLink {
}
private static contentTypeWithType(type?: string) : number | undefined {
switch (type) {
case "video": return 1
case "dynamic": return 14
case "live": return 2
case "audio": return 13
case "picture": return 9
case "article": return 8
case "ask": return 16
case "video": return ContentType.Video
case "dynamic": return ContentType.DynamicImageText
case "live": return ContentType.Live
case "audio": return ContentType.Audio
case "picture": return ContentType.Pictures
case "article": return ContentType.ImageText
case "ask": return ContentType.Ask
}
return
}
...
...
sight_harmony/commons/wdRouter/src/main/ets/utils/ProcessUtils.ets
View file @
3051cab
import { Action, ContentDTO, Params, PhotoListBean, commentInfo } from 'wdBean';
import { ExtraDTO } from 'wdBean/src/main/ets/bean/component/extra/ExtraDTO';
import { Logger,
SPHelper
} from 'wdKit';
import { Logger,
NetworkUtil, SPHelper, ToastUtils
} from 'wdKit';
import { StringUtils } from 'wdKit/src/main/ets/utils/StringUtils';
import { WDRouterRule, WDRouterPage } from '../../../../Index';
import { ContentConstants, SpConstants } from 'wdConstant';
...
...
@@ -84,6 +84,13 @@ export class ProcessUtils {
Logger.error(TAG, "processPage, objectType is empty");
return;
}
// 网络出小差了,请检查网络后重试
let netStatus = NetworkUtil.isNetConnected()
if(!netStatus){
ToastUtils.shortToast('网络出小差了,请检查网络后重试')
return
}
let type = content.objectType;
if (typeof type == "number") {
type = `${type}`
...
...
@@ -304,7 +311,7 @@ export class ProcessUtils {
let taskAction: Action = {
type: 'JUMP_DETAIL_PAGE',
params: {
detailPageType:
7
,
detailPageType:
1
,
contentID: content?.objectId,
extra: {
relType: content?.relType,
...
...
@@ -382,7 +389,7 @@ export class ProcessUtils {
let taskAction: Action = {
type: 'JUMP_DETAIL_PAGE',
params: {
detailPageType:
17
,
detailPageType:
9
,
contentID: content?.objectId,
extra: {
relType: content?.relType,
...
...
sight_harmony/features/wdBean/src/main/ets/bean/content/Params.ts
View file @
3051cab
...
...
@@ -10,16 +10,13 @@ export interface Params {
// 详情页类型
// 1.点播详情页
// 2.直播详情页
// 3.图文详情页
// 4.全民播详情页
// 5.欢喜详情页
// 6.挂件详情页
// 7.沉浸式竖屏详情页
// 8.专辑竖屏详情页
// 13.音频详情页
// 17.多图(图集)详情页
// 18.大图列表页
// 19.单个视频播放页
// 8.图文详情页
// 9.多图(图集)详情页
// 14和15 动态详情页
// 13 音频详情页
// 30 金刚位
// 18.大图列表页 - 图片预览 ------ 需要变更待定
// 19.单个视频播放页 - 视频播放 ----- 需要变更待定
detailPageType
?:
number
;
// 详情页类型
liveStyle
?:
number
;
// 直播类型:0横屏,1竖屏
creatorId
?:
string
;
//号主id
...
...
sight_harmony/features/wdComponent/src/main/ets/components/CardParser.ets
View file @
3051cab
...
...
@@ -25,6 +25,7 @@ import { TrackConstants, TrackingPageBrowse } from 'wdTracking/Index';
*/
@Component
export struct CardParser {
@State pageId: string = '';
@State pageName: string = '';
@State contentDTO: ContentDTO = new ContentDTO();
...
...
sight_harmony/features/wdComponent/src/main/ets/components/CompParser.ets
View file @
3051cab
...
...
@@ -45,8 +45,6 @@ export struct CompParser {
aboutToAppear(): void {
console.log('CompParser', JSON.stringify(this.compDTO))
this.pageName = this.pageModel.pageInfo.name
// 轮播图屏蔽音频类型稿件
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card17Component.ets
View file @
3051cab
...
...
@@ -116,7 +116,7 @@ export struct Card17Component {
let taskAction: Action = {
type: 'JUMP_DETAIL_PAGE',
params: {
detailPageType:
17
,
detailPageType:
9
,
contentID: this.contentDTO.objectId,
extra: {
relType: this.contentDTO.relType,
...
...
sight_harmony/features/wdComponent/src/main/ets/components/mine/home/HomePageBottomCommentComponent.ets
View file @
3051cab
...
...
@@ -50,6 +50,7 @@ export struct HomePageBottomCommentComponent {
CustomPullToRefresh({
alldata:this.data_comment,
scroller:this.scroller,
hasMore:this.hasMore,
customList:()=>{
this.ListLayout()
},
...
...
@@ -184,7 +185,7 @@ export struct HomePageBottomCommentComponent {
this.count = this.data_comment.totalCount()
this.commentNum = value.totalCount
if (
this.data_comment.totalCount() < value.totalCount
) {
if (
value.pageNum === 1
) {
this.curPageNum++
} else {
this.hasMore = false
...
...
@@ -217,7 +218,7 @@ export struct HomePageBottomCommentComponent {
this.count = this.data_comment.totalCount()
this.commentNum = value.totalCount
if (
this.data_comment.totalCount() < value.totalCount
) {
if (
value.pageNum === 1
) {
this.curPageNum++
} else {
this.hasMore = false
...
...
sight_harmony/features/wdComponent/src/main/ets/components/mine/home/OtherHomePageBottomCommentComponent.ets
View file @
3051cab
...
...
@@ -50,6 +50,7 @@ export struct OtherHomePageBottomCommentComponent {
CustomPullToRefresh({
alldata:this.data_comment,
scroller:this.scroller,
hasMore:this.hasMore,
customList:()=>{
this.ListLayout()
},
...
...
@@ -69,6 +70,7 @@ export struct OtherHomePageBottomCommentComponent {
this.isLoading = true
//加载分页数据
this.getNewPageData()
if(resolve) resolve('刷新成功')
}
}
})
...
...
@@ -108,6 +110,13 @@ export struct OtherHomePageBottomCommentComponent {
}
}
}
// .onReachEnd(()=>{
// if (!this.isLoading) {
// this.isLoading = true
// //加载分页数据
// this.getNewPageData()
// }
// })
.cachedCount(5)
.layoutWeight(1)
.scrollBar(BarState.Off)
...
...
@@ -185,7 +194,7 @@ export struct OtherHomePageBottomCommentComponent {
this.count = this.data_comment.totalCount()
this.commentNum = value.totalCount
if (
this.data_comment.totalCount() < value.totalCount
) {
if (
value.hasNext === 1
) {
this.curPageNum++
} else {
this.hasMore = false
...
...
@@ -214,7 +223,7 @@ export struct OtherHomePageBottomCommentComponent {
this.count = this.data_comment.totalCount()
this.commentNum = value.totalCount
if (
this.data_comment.totalCount() < value.totalCount
) {
if (
value.hasNext === 1
) {
this.curPageNum++
} else {
this.hasMore = false
...
...
sight_harmony/features/wdComponent/src/main/ets/components/peopleShip/PeopleShipMainComponent.ets
View file @
3051cab
import { PeopleShipRecommendComponent } from './PeopleShipRecommendComponent';
import { PeopleShipMainViewModel } from '../../viewmodel/PeopleShipMainViewModel';
import {
HttpUtils } from 'wdNetwork/Index';
import { HttpUtils } from 'wdNetwork/Index';
import { Logger, DateTimeUtils, EmitterEventId, EmitterUtils } from 'wdKit';
import {
RmhRecommendDTO,
...
...
@@ -21,27 +21,27 @@ import { FollowListDetailItem } from '../../viewmodel/FollowListDetailItem';
import { CustomPullToRefresh } from '../reusable/CustomPullToRefresh';
import PageModel from '../../viewmodel/PageModel';
import PageAdModel from '../../viewmodel/PageAdvModel';
import PageHelper from '../../viewmodel/PageHelper';
import { PeopleShipAttentionContentListTopComponent } from './PeopleShipAttentionContentListTopComponent'
import { CardParser } from '../CardParser'
import { PeopleShipNoMoreData } from '../reusable/PeopleShipNoMoreData';
import PageFollowHelper from '../../viewmodel/PageFollowHelper';
const TAG = 'PeopleShipMainComponent';
/**
* 人民号 --- 关注
*/
@Component
export struct PeopleShipMainComponent {
@State private pageModel: PageModel = new PageModel();
@State private pageAdvModel: PageAdModel = new PageAdModel();
// 自动刷新通知
@Prop @Watch('onAutoRefresh') autoRefresh: number = 0
navIndex: number = 0;
pageId: string = "";
channelId: string = "";
@Link @Watch('onChange') currentTopNavSelectedIndex: number
private scroller: Scroller = new Scroller()
//
private scroller: Scroller = new Scroller()
private listScroller: Scroller = new Scroller()
@State rmhList: RmhRecommendDTO[] = []
@Provide rmhSelectedList: string[] = []
@State viewType: ViewType = ViewType.LOADING
...
...
@@ -56,7 +56,6 @@ export struct PeopleShipMainComponent {
@State private currentPage: number = 1
@State private isLoading: boolean = false
@State private loadTime: string = ''
// 页面展示监听
@Consume @Watch('onPageShowChange') pageShow: number
@State private pageAttentionChange: boolean = false
...
...
@@ -86,7 +85,7 @@ export struct PeopleShipMainComponent {
if (this.followList.length == 0) {
CustomPullToRefresh({
alldata: this.rmhList,
scroller: this.
s
croller,
scroller: this.
listS
croller,
hasMore: false,
customList: () => {
this.ListLayout()
...
...
@@ -96,7 +95,7 @@ export struct PeopleShipMainComponent {
this.getData(resolve)
},
})
}else {
}
else {
CustomPullToRefresh({
alldata: this.attentionList,
scroller: this.listScroller,
...
...
@@ -108,19 +107,19 @@ export struct PeopleShipMainComponent {
this.currentPage = 1
this.getData(resolve)
},
onLoadMore:
(resolve)
=> {
onLoadMore:
(resolve)
=> {
if (this.hasMore === false) {
if(resolve) {
if
(resolve) {
resolve('')
}
return
}
if
(!this.isLoading && this.hasMore)
{
if
(!this.isLoading && this.hasMore)
{
//加载分页数据
this.currentPage++;
this.getAttentionContentListData(resolve)
}else {
if(resolve) {
} else {
if (resolve) {
resolve('')
}
}
...
...
@@ -137,13 +136,16 @@ export struct PeopleShipMainComponent {
@Builder
ListLayout() {
Scroll(this.scroller) {
// 推荐人民号
PeopleShipRecommendComponent({
rmhList: this.rmhList,
oneKeyFollow: this.oneKeyFollow,
changeButton: this.changeButton
})
List({ scroller: this.listScroller }) {
// 头部关注列表
ListItem() {
PeopleShipRecommendComponent({
rmhList: this.rmhList,
oneKeyFollow: this.oneKeyFollow,
changeButton: this.changeButton
})
}
}
.edgeEffect(EdgeEffect.None)
.scrollBar(BarState.Off)
...
...
@@ -153,20 +155,25 @@ export struct PeopleShipMainComponent {
@Builder
ListAttentionLayout() {
List({
scroller: this.listScroller})
{
List({
scroller: this.listScroller })
{
// 头部关注列表
ListItem(){
ListItem()
{
PeopleShipAttentionContentListTopComponent({
followList: this.followList
})
}
ForEach(this.attentionList, (item: ContentDTO) => {
ListItem() {
CardParser({compDTO:new CompDTO, contentDTO: item })
Column(){
CardParser({ compDTO: new CompDTO, contentDTO: item })
Divider().strokeWidth(1).color('#f5f5f5').padding({ left: 16, right: 16 })
}.width('100%')
}.width("100%")
.backgroundColor(Color.Transparent)
}, (item: ContentDTO, index: number) =>
item.objectId + index.toString())
}, (item: ContentDTO, index: number) => item.objectId + index.toString())
// 加载更多
ListItem() {
...
...
@@ -193,7 +200,8 @@ export struct PeopleShipMainComponent {
}
onChange() {
if (this.navIndex === this.currentTopNavSelectedIndex && (this.viewType == ViewType.LOADING || this.pageAttentionChange)) {
if (this.navIndex === this.currentTopNavSelectedIndex &&
(this.viewType == ViewType.LOADING || this.pageAttentionChange)) {
this.getData();
}
}
...
...
@@ -221,7 +229,6 @@ export struct PeopleShipMainComponent {
this.getRmhRecommendInfo(resolve)
} else {
this.followList = []
// this.followList = followInfo.list
this.followList.push(...followInfo.list)
this.attentionList = []
this.currentPage = 1
...
...
@@ -289,7 +296,7 @@ export struct PeopleShipMainComponent {
}
//批量查询各类型内容动态数据接口
this.checkContentInteractData(listData.list, resolve)
} else
{
} else {
this.hasMore = false;
this.resolveEnd(true, resolve)
}
...
...
@@ -319,7 +326,7 @@ export struct PeopleShipMainComponent {
this.resolveEnd(true, resolve)
list.forEach((element: ContentDTO) => {
// 获取 interactData 数据
if (listData &&
listData.length > 0) {
if (listData && listData.length > 0) {
const objc = listData.find((interactModel: InteractDataDTO) => {
return element.objectId == interactModel.contentId
})
...
...
@@ -343,7 +350,7 @@ export struct PeopleShipMainComponent {
if (resolve) {
if (this.currentPage == 1 && isTop) {
resolve('已更新至最新')
}
else
{
}
else
{
resolve('')
}
}
...
...
@@ -357,12 +364,13 @@ export struct PeopleShipMainComponent {
// 说是首页必须要调用
async getInitData() {
Logger.debug('PeopleShipMainComponent', `getData id: ${this.pageId} , ${this.channelId} , navIndex: ${this.currentTopNavSelectedIndex}`);
Logger.debug('PeopleShipMainComponent',
`getData id: ${this.pageId} , ${this.channelId} , navIndex: ${this.currentTopNavSelectedIndex}`);
this.pageModel.pageId = this.pageId;
this.pageModel.groupId = this.pageId;
this.pageModel.channelId = this.channelId;
this.pageModel.currentPage = 1;
Page
Helper.getInitData(this.pageModel, this.pageAdv
Model)
Page
FollowHelper.getInitData(this.page
Model)
}
// 点击一键关注
...
...
@@ -388,7 +396,7 @@ export struct PeopleShipMainComponent {
// 获取列表数据
let objects = new AttentionBatchDTO()
this.rmhList.forEach((element: RmhRecommendDTO) => {
if (
this.rmhSelectedList.indexOf(element.creatorId) != -1) {
if (this.rmhSelectedList.indexOf(element.creatorId) != -1) {
const creator = new CreatorDTO(element.userType, element.userId, element.creatorId)
objects.creators.push(creator)
}
...
...
@@ -413,7 +421,7 @@ export struct PeopleShipMainComponent {
// 页面展示监听
onPageShowChange() {
if (this.navIndex === this.currentTopNavSelectedIndex && this.pageAttentionChange
) {
if (this.navIndex === this.currentTopNavSelectedIndex && this.pageAttentionChange) {
this.getData()
}
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/peopleShip/PeopleShipRecommendComponent.ets
View file @
3051cab
...
...
@@ -56,7 +56,6 @@ export struct PeopleShipRecommendComponent {
.width('100%')
.alignSelf(ItemAlign.Start)
.margin({
top: '-50vp',
bottom: '10vp'
})
...
...
sight_harmony/features/wdComponent/src/main/ets/components/search/SearchResultContentComponent.ets
View file @
3051cab
...
...
@@ -294,11 +294,12 @@ export struct SearchResultContentComponent {
CardParser({compDTO:new CompDTO, contentDTO: item })
}
if (index != this.data.totalCount() - 1) {
Divider()
.width('100%')
.height('1lpx')
.color($r('app.color.color_F5F5F5'))
.strokeWidth('1lpx')
Divider().strokeWidth(1).color('#f5f5f5').padding({ left: 16, right: 16 })
// Divider()
// .width('100%')
// .height('1lpx')
// .color($r('app.color.color_F5F5F5'))
// .strokeWidth('1lpx')
}
}
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/view/PermissionDesComponent.ets
View file @
3051cab
@Component
export struct PermissionDesComponent {
@State translateY: number = 0
@State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0
aboutToAppear(): void {
this.startDismiss()
...
...
@@ -29,7 +30,7 @@ export struct PermissionDesComponent {
// .height(60)
.backgroundColor('#FFFFFF')
.border({ radius: 5 })
.margin({ top:
12
})
.margin({ top:
px2vp(this.topSafeHeight)
})
.padding(12)
.zIndex(20)
}
...
...
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageFollowHelper.ets
0 → 100644
View file @
3051cab
import { CompDTO, ContentDTO, InteractDataDTO, LiveReviewDTO, LiveRoomDataBean, PageDTO, PageInfoDTO } from 'wdBean';
import { CompStyle, ViewType } from 'wdConstant/Index';
import { CollectionUtils, DateTimeUtils, LazyDataSource, Logger, NetworkUtil, StringUtils, ToastUtils } from 'wdKit';
import { closeRefresh } from '../utils/PullDownRefresh';
import PageModel from './PageModel';
import PageViewModel from './PageViewModel';
import { promptAction } from '@kit.ArkUI';
import { CompAdvBean } from 'wdBean/src/main/ets/bean/adv/AdvsRuleBean';
import PageAdModel from './PageAdvModel';
import { ArrayList } from '@kit.ArkTS';
import { WDViewDefaultType } from '../components/view/EmptyComponent';
import { CompAdvMatInfoBean } from 'wdBean/src/main/ets/bean/adv/CompAdvInfoBean';
import { BaseDTO } from 'wdBean/src/main/ets/bean/component/BaseDTO';
import { viewBlogInsightIntentShare, ActionMode } from '../utils/InsightIntentShare'
import { common } from '@kit.AbilityKit';
import { CacheData } from 'wdNetwork/Index';
import { closeLoadMore } from '../utils/PullUpLoadMore';
const TAG = 'PageHelper';
/**
* 处理返回后的数据
*/
export class PageFollowHelper {
private refreshUIEnd(pageModel: PageModel, isRefreshSuccess: boolean) {
if (pageModel.loadStrategy != 2) {
return
}
closeRefresh(pageModel, isRefreshSuccess)
}
/**
* 进页面请求数据
*/
async getInitData(pageModel: PageModel) {
pageModel.loadStrategy = 1
let netStatus = NetworkUtil.isNetConnected()
if (netStatus) {
this.getPageInfo(pageModel)
} else if (pageModel.compList.size() > 0) {
// 加载缓存数据了,不用无网络提示
} else {
pageModel.viewType = ViewType.EMPTY;
pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_NoNetwork;
}
}
getPageInfo(pageModel: PageModel) {
pageModel.currentPage = 1;
Logger.debug(TAG, 'getPageInfo')
PageViewModel.getPageInfo(pageModel.pageId).then(pageInfo => {
Logger.debug(TAG, 'getPageInfo back: ' + JSON.stringify(pageInfo))
if (pageInfo == null) {
pageModel.viewType = ViewType.EMPTY;
pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_NoContent1;
return;
}
pageModel.pageInfo = pageInfo;
Logger.debug(TAG, 'getPageInfo go on')
}).catch(() => {
this.refreshUIEnd(pageModel, false)
if (this.isPageLoaded(pageModel)) {
return
}
pageModel.viewType = ViewType.EMPTY;
pageModel.emptyType = WDViewDefaultType.WDViewDefaultType_ContentFailed;
})
}
private isPageLoaded(pageModel: PageModel) {
if (pageModel.compList.size() > 0) {
return true
}
return false
}
}
let pageHelper = new PageFollowHelper();
export default pageHelper as PageFollowHelper;
\ No newline at end of file
...
...
sight_harmony/features/wdLogin/src/main/ets/pages/login/LoginPage.ets
View file @
3051cab
...
...
@@ -115,7 +115,7 @@ struct LoginPage {
Image($r("app.media.login_logo"))
.width(120)
.height(66)
.margin({ top: 78 })
.margin({ top: 78
+ px2vp(this.topSafeHeight)
})
.align(Alignment.Center)
LoginInputComponent({
...
...
@@ -225,7 +225,7 @@ struct LoginPage {
Image($r('app.media.login_closed'))
.width(24)
.height(24)
.margin({ top:
10
, right: 15 })
.margin({ top:
px2vp(this.topSafeHeight)
, right: 15 })
.alignRules({
top: { anchor: "__container__", align: VerticalAlign.Top },
right: { anchor: "__container__", align: HorizontalAlign.End }
...
...
@@ -249,7 +249,7 @@ struct LoginPage {
.backgroundColor(Color.White)
}.width("100%")
.height("100%")
.padding({top:px2vp(this.topSafeHeight),bottom:px2vp(this.bottomSafeHeight)})
//
.padding({top:px2vp(this.topSafeHeight),bottom:px2vp(this.bottomSafeHeight)})
}
...
...
sight_harmony/features/wdShare/src/main/ets/utils/DeepLinkUtil.ets
View file @
3051cab
...
...
@@ -4,7 +4,7 @@ import { ContentType } from 'wdRouter/Index';
export class DeepLinkUtil {
private static DEEP_LINK_PREFIX = "rmrbapp:rmrb.app/openwith"
private static DEEP_LINK_PREFIX = "rmrbapp:
//
rmrb.app/openwith"
static generateDeepLinkWithConent(content: ContentDetailDTO): string {
...
...
@@ -23,7 +23,7 @@ export class DeepLinkUtil {
private static generate(contentType: number, contentId?: string, relId?: string, link?: string): string {
let deeplink = DeepLinkUtil.DEEP_LINK_PREFIX
let pubParam = `&contentId=${contentId}
}
&relId=${relId}&skipType=1`
let pubParam = `&contentId=${contentId}&relId=${relId}&skipType=1`
let type: ContentType = Number(contentType)
switch (type) {
...
...
@@ -38,7 +38,7 @@ export class DeepLinkUtil {
deeplink += "?type=article&subType=h5"
deeplink += "&url=" + encodeURIComponent(link)
} else {
deeplink += "type=article&subType=h5_template_article"
deeplink += "
?
type=article&subType=h5_template_article"
}
break
case ContentType.DynamicImageText:
...
...
sight_harmony/products/phone/src/main/ets/dailynewspaperformability/DailyNewspaperFormAbility.ets
View file @
3051cab
import { formBindingData, FormExtensionAbility, formInfo, formProvider } from '@kit.FormKit';
import { Want } from '@kit.AbilityKit';
import { Logger, NetworkManager, SPHelper, StringUtils } from 'wdKit/Index';
import {
FileUtils,
Logger, NetworkManager, SPHelper, StringUtils } from 'wdKit/Index';
import { BusinessError } from '@kit.BasicServicesKit';
import {
FormDataType,
NewspaperDataFetcher } from './NewspaperDataFetcher';
import { NewspaperDataFetcher } from './NewspaperDataFetcher';
import { JSON } from '@kit.ArkTS';
import { FormNewspaperPaperType } from '../dailynewspaperwidget/common/NewspaperWidgetData';
import { FormNewspaper
Data, FormNewspaper
PaperType } from '../dailynewspaperwidget/common/NewspaperWidgetData';
import { HostEnum, HostManager, WDHttp } from 'wdNetwork/Index';
import fs from '@ohos.file.fs';
const TAG = "DailyNewspaperFormAbility"
export default class DailyNewspaperFormAbility extends FormExtensionAbility {
lastDatas: Record<string, FormNewspaperData> = {}
onAddForm(want: Want) {
Logger.debug(TAG, "onAddForm with " + JSON.stringify(want))
this.initApp()
if (want.parameters) {
let formId = want.parameters[formInfo.FormParam.IDENTITY_KEY] as string
let isTempCard = want.parameters[formInfo.FormParam.TEMPORARY_KEY] as boolean
if (isTempCard === false) { // 如果为常态卡片,直接进行信息持久化
Logger.debug(TAG, "开始刷新数据");
NewspaperDataFetcher.refreshDailyPaper().then((data) => {
let formData = formBindingData.createFormBindingData(data);
formProvider.updateForm(formId, formData).catch((err: BusinessError) => {
Logger.debug(TAG, ` xFailed to updateForm. Code: ${err.code}, message: ${err.message}`);
});
})
this.fetchAndRefreshData(formId)
}
}
let obj: Form
DataType = {}
let obj: Form
NewspaperData = {} as FormNewspaperData
obj.paperType = FormNewspaperPaperType.unknown
let formData = formBindingData.createFormBindingData(obj);
return formData;
...
...
@@ -45,13 +41,9 @@ export default class DailyNewspaperFormAbility extends FormExtensionAbility {
onUpdateForm(formId: string) {
// 若卡片支持定时更新/定点更新/卡片使用方主动请求更新功能,则提供方需要重写该方法以支持数据更新
Logger.debug(TAG, 'onUpdateForm ' + formId);
NewspaperDataFetcher.refreshDailyPaper().then((data) => {
let formData = formBindingData.createFormBindingData(data);
formProvider.updateForm(formId, formData).catch((err: BusinessError) => {
Logger.debug(TAG, ` xFailed to updateForm. Code: ${err.code}, message: ${err.message}`);
});
})
this.initApp()
this.fetchAndRefreshData(formId)
}
onFormEvent(formId: string, message: string) {
...
...
@@ -61,7 +53,9 @@ export default class DailyNewspaperFormAbility extends FormExtensionAbility {
onRemoveForm(formId: string) {
// 当对应的卡片删除时触发的回调,入参是被删除的卡片ID
Logger.debug(TAG, 'onRemoveForm');
Logger.debug(TAG, 'onRemoveForm / formId: ' + formId);
let data = this.lastDatas[formId]
NewspaperDataFetcher.closeFilesWith(data)
}
// onConfigurationUpdate(config: Configuration) {
...
...
@@ -75,6 +69,32 @@ export default class DailyNewspaperFormAbility extends FormExtensionAbility {
return formInfo.FormState.READY;
}
fetchAndRefreshData(formId: string) {
Logger.debug(TAG, "开始刷新数据");
NewspaperDataFetcher.refreshDailyPaper().then(async (data) => {
let formData = formBindingData.createFormBindingData(data);
formProvider.updateForm(formId, formData).then(() => {
this.lastDatas[formId] = data
}).catch((err: BusinessError) => {
Logger.debug(TAG, ` xFailed to updateForm. Code: ${err.code}, message: ${err.message}`);
});
let fileDir = this.context.getApplicationContext().filesDir + "/widget-daily-newspaper"
await FileUtils.makeDirIfNotExsit(fileDir)
NewspaperDataFetcher.dealWithPictures(data, formId, fileDir, (data) => {
Logger.debug(TAG, `refresh ui with new pictuers`);
let formData = formBindingData.createFormBindingData(data);
formProvider.updateForm(formId, formData).then(() => {
this.lastDatas[formId] = data
}).catch((err: BusinessError) => {
Logger.error(TAG, ` xFailed to updateForm. Code: ${err.code}, message: ${err.message}`);
});
})
})
}
initApp() {
// KV存储
SPHelper.init(this.context);
...
...
sight_harmony/products/phone/src/main/ets/dailynewspaperformability/NewspaperDataFetcher.ets
View file @
3051cab
import { CompInfoBean, ContentDTO, PageInfoBean } from 'wdBean/Index';
import { MorningEveningViewModel } from 'wdComponent/Index';
import { Logger } from 'wdKit/Index';
import {
CrptoUtils, FileUtils,
Logger } from 'wdKit/Index';
import { HttpUrlUtils, ResponseDTO, WDHttp } from 'wdNetwork/Index';
import { DeepLinkUtil } from 'wdShare/Index'
import { FormNewspaperPaperType, FormNewspaperPaperInfo, FormNewspaperPaperContent } from "../dailynewspaperwidget/common/NewspaperWidgetData"
import { FormNewspaperPaperType, FormNewspaperPaperInfo, FormNewspaperPaperContent,
FormNewspaperData } from "../dailynewspaperwidget/common/NewspaperWidgetData"
import { http } from '@kit.NetworkKit';
import fs from '@ohos.file.fs';
import { BusinessError } from '@kit.BasicServicesKit';
import { JSON } from '@kit.ArkTS';
const TAG = "NewspaperDataFetcher"
export type FormDataType = Record<string, FormNewspaperPaperType | FormNewspaperPaperInfo | FormNewspaperPaperContent[]>
//
export type FormDataType = Record<string, FormNewspaperPaperType | FormNewspaperPaperInfo | FormNewspaperPaperContent[]>
export class NewspaperDataFetcher {
public static async refreshDailyPaper(): Promise<FormDataType> {
return new Promise<FormDataType>(async (reslove, fail) => {
public static async refreshDailyPaper(): Promise<FormNewspaperData> {
return new Promise<FormNewspaperData>(async (reslove, fail) => {
let data: Form
DataType = { 'paperType': FormNewspaperPaperType.unknown }
let data: Form
NewspaperData = new FormNewspaperData()
data.paperInfo = { showLeftImage: false }
try {
let page: PageInfoBean = await MorningEveningViewModel.getDailyPaperTopic()
data.paperType = page.topicInfo?.
frontFlag
|| FormNewspaperPaperType.unknown
data.paperType = page.topicInfo?.
topicPattern
|| FormNewspaperPaperType.unknown
let currentTime = new Date().getTime()
let compInfo = await MorningEveningViewModel.getMorningEveningCompInfo(
...
...
@@ -29,7 +34,7 @@ export class NewspaperDataFetcher {
page.topicInfo?.topicId
)
if (page.topicInfo.frontLinkObject) {
if (page.topicInfo
?.frontFlag && page.topicInfo
.frontLinkObject) {
data.paperInfo.showLeftImage = true
data.paperInfo.leftImageUrl = page.topicInfo.frontLinkObject.coverUrl
data.paperInfo.leftTitle = page.topicInfo.frontLinkObject.title
...
...
@@ -60,7 +65,7 @@ export class NewspaperDataFetcher {
})
}
static fakeData(): Form
DataType
{
static fakeData(): Form
NewspaperData
{
let data : FormNewspaperPaperContent = {
title: "标题标题标题标题标题标题标题标题",
coverUrl: "https://"
...
...
@@ -72,6 +77,135 @@ export class NewspaperDataFetcher {
leftTitle: "leftTitleleftTitleleftTitleleftTitleleftTitleleftTitle"
},
"paperContents": [data, data, data]
} as FormNewspaperData
}
static dealWithPictures(data: FormNewspaperData, formId: string ,tempDir: string, refreshCallback:(data: FormNewspaperData) => void) {
let donwloadCount = data.paperContents.filter((value) => {
return value.coverUrl && value.coverUrl.length > 0
}).length
let fileFDs: Record<string, string | number> = {};
if (data.paperInfo.leftImageUrl) {
donwloadCount += 1
CrptoUtils.md5(data.paperInfo.leftImageUrl).then((md5String) => {
const fileName = formId + "file" + md5String;
const filePath = tempDir + "/" + fileName
NewspaperDataFetcher.downloadUrlToPath(data.paperInfo.leftImageUrl!, filePath).then(() => {
let file = fs.openSync(filePath)
fileFDs[fileName] = file.fd
data.paperInfo.localLeftImageFileName = fileName
data.formImages = fileFDs
if (--donwloadCount == 0) { refreshCallback(data) }
}).catch((e : BusinessError) => {
Logger.debug(TAG, "download file failed.");
if (--donwloadCount == 0) { refreshCallback(data) }
})
}).catch((e: BusinessError) => {
if (--donwloadCount == 0) { refreshCallback(data) }
})
}
for (let index = 0; index < data.paperContents.length; index++) {
const content = data.paperContents[index];
if (!content.coverUrl || content.coverUrl.length == 0) {
continue
}
CrptoUtils.md5(content.coverUrl).then((md5String) => {
const fileName = formId + "file" + md5String;
const filePath = tempDir + "/" + fileName
NewspaperDataFetcher.downloadUrlToPath(content.coverUrl!, filePath).then(() => {
Logger.debug(TAG, "open file for display ");
let file = fs.openSync(filePath)
fileFDs[fileName] = file.fd
data.paperContents[index].localCoverFileName = fileName
data.formImages = fileFDs
if (--donwloadCount == 0) { refreshCallback(data) }
}).catch((e : BusinessError) => {
Logger.debug(TAG, "download file failed." + JSON.stringify(e));
if (--donwloadCount == 0) { refreshCallback(data) }
})
}).catch((e: BusinessError) => {
if (--donwloadCount == 0) { refreshCallback(data) }
})
}
}
static closeFilesWith(data?: FormNewspaperData) {
if (data && data.formImages) {
for (const obj of Object.entries(data.formImages)) {
const fileName = obj[0]
let fd: number = obj[1] as number
fs.close(fd)
}
}
}
static downloadUrlToPath(url: string, toFilePath: string): Promise<void> {
Logger.debug(TAG, "will donwload url:" + url + " ======> " + toFilePath);
return new Promise((reslove, fail) => {
FileUtils.fileExsit(toFilePath).then((exsit: boolean) => {
if (exsit) {
Logger.debug(TAG, "file is exsit. " + toFilePath);
reslove()
return
}
NewspaperDataFetcher.downloadUrlToPathWithout(url, toFilePath).then(() => {
reslove()
}).catch((e: BusinessError) => {
fail(e)
})
}).catch((e: BusinessError) => {
NewspaperDataFetcher.downloadUrlToPathWithout(url, toFilePath).then(() => {
reslove()
}).catch((e: BusinessError) => {
fail(e)
})
})
})
}
static downloadUrlToPathWithout(url: string, toFilePath: string): Promise<void> {
Logger.debug(TAG, "will donwload url:" + url + " ======> " + toFilePath);
return new Promise((reslove, fail) => {
let httpRequest = http.createHttp()
httpRequest.request(url, (err, data) => {
if (!err && data.responseCode == http.ResponseCode.OK) {
let imgFile = fs.openSync(toFilePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let wroteLength = 0
fs.write(imgFile.fd, data.result as ArrayBuffer).then((writeLen: number) => {
Logger.debug(TAG, "write data to file succeed and size is:" + writeLen);
wroteLength = writeLen
}).catch((err: BusinessError) => {
Logger.error(TAG, "write data to file failed with error message: " + err.message + ", error code: " + err.code);
}).finally(() => {
fs.closeSync(imgFile);
httpRequest.destroy()
wroteLength > 0 ? reslove() : fail("failed")
});
return
}
httpRequest.destroy()
fail("failed")
});
})
}
}
\ No newline at end of file
...
...
sight_harmony/products/phone/src/main/ets/dailynewspaperwidget/common/NewspaperWidgetData.ets
View file @
3051cab
...
...
@@ -11,6 +11,8 @@ export class FormNewspaperPaperInfo {
showLeftImage: boolean = false
leftImageUrl?: string
localLeftImageFileName?: ResourceStr // 传递图片用
localLeftImageFileFD? : number // 传递图片用
leftTitle?: string
leftDeepLink?: string
...
...
@@ -20,5 +22,15 @@ export class FormNewspaperPaperInfo {
export class FormNewspaperPaperContent {
title: string = ""
coverUrl?: string
localCoverFileName?: ResourceStr // 传递图片用
localCoverFileFD? : number // 传递图片用
deepLink: string = ""
}
export class FormNewspaperData {
paperType: FormNewspaperPaperType = FormNewspaperPaperType.unknown
paperInfo: FormNewspaperPaperInfo = {} as FormNewspaperPaperInfo
paperContents: FormNewspaperPaperContent[] = []
formImages: Record<string, string | number> = {}
}
\ No newline at end of file
...
...
sight_harmony/products/phone/src/main/ets/dailynewspaperwidget/pages/DailyNewspaperWidgetCard.ets
View file @
3051cab
...
...
@@ -43,8 +43,8 @@ struct DailyNewspaperWidgetCard {
@Builder leftImageView() {
Stack({ alignContent: Alignment.Bottom }) {
Image(this.paperInfo.leftImageUrl)
// Image($r("app.media.desktop_card_comp_place_holder_16_9"))
Image("memory://" + this.paperInfo.localLeftImageFileName)
// Image(this.paperInfo.leftImageUrl)
.alt($r("app.media.desktop_card_comp_place_holder_16_9"))
.objectFit(ImageFit.Cover)
.aspectRatio(87/116)
...
...
@@ -109,8 +109,8 @@ struct ContentCellView {
bottom: this.hasImage ? 0 : 6})
if (this.hasImage) {
Image(this.content.coverUrl)
// Image($r("app.media.desktop_card_comp_place_holder_3_4"))
Image("memory://" + this.content.localCoverFileName)
// Image(this.content.coverUrl)
.alt($r("app.media.desktop_card_comp_place_holder_3_4"))
.objectFit(ImageFit.Cover)
.height(40)
...
...
@@ -151,14 +151,12 @@ function jumpWithDeepLink(deepLink: string, component: Object) {
if (deepLink.length == 0) {
return
}
const deepLinkKey: string = NewspaperWidgetCommon.JumpParam.DeepLinkKey
const fromDailyNewspaperKey: string = NewspaperWidgetCommon.JumpParam.FromNewspaperWidgetKey
postCardAction(component, {
action: NewspaperWidgetCommon.PosterCardAction.ActionRouter,
abilityName: NewspaperWidgetCommon.PosterCardAction.MainAbilityName,
params: {
deepLinkKey: deepLink,
fromDailyNewspaperKey: true
"newspaper.widget.jump.deeplink": deepLink,
"newspaper.widget.jump.fromNewspaperWidget": 1
}
});
}
\ No newline at end of file
...
...
sight_harmony/products/phone/src/main/ets/pages/view/BottomNavigationComponent.ets
View file @
3051cab
...
...
@@ -53,7 +53,7 @@ export struct BottomNavigationComponent {
// 自动刷新触发(双击tab自动刷新)
@State autoRefresh: number = 0
// 顶导数据,从接口获取 TODO 顶导业务逻辑没看懂,暂时不替换顶导list。频道管理数据待梳理
@State topNavMap: Record<string, TopNavDTO[]> = {}
//
@State topNavMap: Record<string, TopNavDTO[]> = {}
async aboutToAppear() {
Logger.info(TAG, `aboutToAppear currentNavIndex: ${this.currentNavIndex}`);
...
...
sight_harmony/products/phone/src/main/ets/startupmanager/StartupManager.ets
View file @
3051cab
...
...
@@ -12,13 +12,14 @@ import { DeviceUtil,
UmengStats } from 'wdKit/Index'
import { LoginModule } from 'wdLogin/Index'
import { HostEnum, HostManager, WDHttp } from 'wdNetwork/Index'
import { registerRouter } from 'wdRouter/Index'
import {
AppInnerLink,
registerRouter } from 'wdRouter/Index'
import { TrackingModule } from 'wdTracking/Index'
import { JSON } from '@kit.ArkTS'
import app from '@system.app'
import { GetuiPush, HWLocationUtils } from 'wdHwAbility/Index'
import { ImageKnife, ImageKnifeGlobal } from '@ohos/imageknife'
import { webview } from '@kit.ArkWeb'
import { NewspaperWidgetCommon } from '../dailynewspaperwidget/common/NewspaperWidgetCommon'
const TAG = "[StartupManager]"
...
...
@@ -26,6 +27,7 @@ const TAG = "[StartupManager]"
export class StartupManager {
private context?: common.UIAbilityContext
private lastStartupWant?: Want
private constructor() {
}
...
...
@@ -74,10 +76,14 @@ export class StartupManager {
// 通知栏点击后启动
GetuiPush.sharedInstance().onWant(want)
Logger.debug(TAG, "App onCreate: finised")
this.lastStartupWant = want
}
appOnNewWant(want: Want, launchParam: AbilityConstant.LaunchParam) {
GetuiPush.sharedInstance().onNewWant(want)
this.dealWithDeepLink(want)
}
appOnDestory() {
...
...
@@ -124,6 +130,10 @@ export class StartupManager {
//TODO:
// 提前初始化webview
webview.WebviewController.initializeWebEngine()
if (this.lastStartupWant && this.dealWithDeepLink(this.lastStartupWant)) {
this.lastStartupWant = undefined
}
resolve()
})
}
...
...
@@ -195,4 +205,20 @@ export class StartupManager {
private initOthers() {
}
private dealWithDeepLink(want: Want): boolean {
if (!want.parameters) {
return false
}
let deepLink = want.parameters[NewspaperWidgetCommon.JumpParam.DeepLinkKey] as string
if (deepLink && deepLink.length) {
AppInnerLink.jumpWithLink(deepLink)
return true
}
return false
}
}
...
...
sight_harmony/products/phone/src/main/resources/base/profile/form_config.json
View file @
3051cab
...
...
@@ -14,8 +14,8 @@
"isDynamic"
:
true
,
"isDefault"
:
true
,
"updateEnabled"
:
true
,
"scheduledUpdateTime"
:
"10:30"
,
"updateDuration"
:
1
,
"scheduledUpdateTime"
:
"18:26"
,
"updateDuration"
:
4
,
"defaultDimension"
:
"2*4"
,
"supportDimensions"
:
[
"2*4"
...
...
Please
register
or
login
to post a comment