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
liyubing
2024-04-24 17:24:44 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
2aa8003fab0ebdef64f4177076c4cb246af0c0a8
2aa8003f
1 parent
ebfc3968
feat(广告):创建页面广角广告模型
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
113 additions
and
82 deletions
sight_harmony/features/wdComponent/src/main/ets/components/page/PageComponent.ets
sight_harmony/features/wdComponent/src/main/ets/utils/PullDownRefresh.ets
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageAdvModel.ets
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageHelper.ets
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageModel.ets
sight_harmony/features/wdComponent/src/main/ets/components/page/PageComponent.ets
View file @
2aa8003
...
...
@@ -15,12 +15,14 @@ import { CompDTO } from 'wdBean';
import PageHelper from '../../viewmodel/PageHelper';
import { channelSkeleton } from '../skeleton/channelSkeleton'
import { ProcessUtils } from 'wdRouter/Index';
import PageAdModel from '../../viewmodel/PageAdvModel';
const TAG = 'PageComponent';
@Component
export struct PageComponent {
@State private pageModel: PageModel = new PageModel();
@State private pageAdvModel: PageAdModel = new PageAdModel();
navIndex: number = 0;
pageId: string = "";
channelId: string = "";
...
...
@@ -44,7 +46,7 @@ export struct PageComponent {
.onTouch((event: TouchEvent | undefined) => {
if (event) {
if (this.pageModel.viewType === ViewType.LOADED) {
listTouchEvent(this.pageModel, event);
listTouchEvent(this.pageModel,
this.pageAdvModel,
event);
}
}
})
...
...
@@ -120,12 +122,12 @@ export struct PageComponent {
@Builder
pageHornAd() {
if (this.pageModel.isShowAds) {
if (this.pageModel.pageCornerAdv.matInfo != null) {
if (this.pageAdvModel.isShowAds) {
if (this.pageAdvModel.pageCornerAdv.matInfo != null) {
// 页面右边挂角
this.drawPageCornerAdvView(1, 1 == this.pageModel.isRightAdv)
} else if (this.pageModel.pageCornerContentInfo.advert != null) {
this.drawPageCornerAdvView(2, 1 == this.pageModel.isRightAdv)
this.drawPageCornerAdvView(1, 1 == this.pageAdvModel.isRightAdv)
} else if (this.pageAdvModel.pageCornerContentInfo.advert != null) {
this.drawPageCornerAdvView(2, 1 == this.pageAdvModel.isRightAdv)
}
}
...
...
@@ -140,8 +142,8 @@ export struct PageComponent {
@Builder
drawPageCornerAdvView(type: number, isRightCorne: boolean) {
// 页面左挂角
Image(type === 1 ? this.pageModel.pageCornerAdv.matInfo.matImageUrl[0]
: this.pageModel.pageCornerContentInfo.advert.displayUrl)
Image(type === 1 ? this.pageAdvModel.pageCornerAdv.matInfo.matImageUrl[0]
: this.pageAdvModel.pageCornerContentInfo.advert.displayUrl)
.width($r('app.float.vp_80'))
.height($r('app.float.vp_80'))
.id("left_iv")
...
...
@@ -159,10 +161,10 @@ export struct PageComponent {
.onClick(() => {
if (type === 1) {
// 广告业务跳转
ProcessUtils.openAdvDetail(this.pageModel.pageCornerAdv.matInfo);
ProcessUtils.openAdvDetail(this.page
Adv
Model.pageCornerAdv.matInfo);
} else {
// 展现中心的业务跳转
ProcessUtils.advJumpMainPage(this.pageModel.pageCornerContentInfo.advert)
ProcessUtils.advJumpMainPage(this.page
Adv
Model.pageCornerContentInfo.advert)
}
})
// 关闭按钮
...
...
@@ -180,7 +182,7 @@ export struct PageComponent {
})
.onClick(() => {
// 关闭挂角广告
this.pageModel.isShowAds = false;
this.page
Adv
Model.isShowAds = false;
})
...
...
@@ -228,7 +230,7 @@ export struct PageComponent {
this.pageModel.groupId = this.pageId;
this.pageModel.channelId = this.channelId;
this.pageModel.currentPage = 1;
PageHelper.getInitData(this.pageModel)
PageHelper.getInitData(this.pageModel
, this.pageAdvModel
)
// let pageInfo = await PageViewModel.getPageInfo(this.pageModel.pageId);
// if (pageInfo == null) {
// this.pageModel.viewType = ViewType.EMPTY;
...
...
sight_harmony/features/wdComponent/src/main/ets/utils/PullDownRefresh.ets
View file @
2aa8003
...
...
@@ -6,8 +6,9 @@ import PageModel from '../viewmodel/PageModel';
import PageViewModel from '../viewmodel/PageViewModel';
import { DateTimeUtils } from 'wdKit';
import PageHelper from '../viewmodel/PageHelper';
import PageAdModel from '../viewmodel/PageAdvModel';
export function listTouchEvent(pageModel: PageModel, event: TouchEvent) {
export function listTouchEvent(pageModel: PageModel,
pageAdvModel:PageAdModel,
event: TouchEvent) {
switch (event.type) {
case TouchType.Down:
pageModel.downY = event.touches[0].y;
...
...
@@ -35,7 +36,7 @@ export function listTouchEvent(pageModel: PageModel, event: TouchEvent) {
}
if ((pageModel.isPullRefreshOperation === true)) {
// Lift your finger and pull down to refresh.
touchUpPullRefresh(pageModel);
touchUpPullRefresh(pageModel
,pageAdvModel
);
} else {
// Fingers up, handle loading more.
touchUpLoadMore(pageModel);
...
...
@@ -65,14 +66,15 @@ export function touchMovePullRefresh(pageModel: PageModel, event: TouchEvent) {
}
}
export function touchUpPullRefresh(pageModel: PageModel) {
export function touchUpPullRefresh(pageModel: PageModel
,pageAdvModel:PageAdModel
) {
if (pageModel.isCanRefresh === true) {
pageModel.offsetY = vp2px(pageModel.pullDownRefreshHeight);
pullRefreshState(pageModel, RefreshState.Refreshing);
pageModel.currentPage = 1;
setTimeout(() => {
let self: PageModel = pageModel;
PageHelper.refreshUI(self)
let advSelf: PageAdModel = pageAdvModel;
PageHelper.refreshUI(self,advSelf)
// PageViewModel.getPageData(self.bizCopy(2))
// .then((data: PageDTO) => {
// self.timestamp = DateTimeUtils.getTimeStamp().toString()
...
...
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageAdvModel.ets
0 → 100644
View file @
2aa8003
import { PageInfoDTO } from 'wdBean/Index';
import { AdvRuleBean, CompAdvBean } from 'wdBean/src/main/ets/bean/adv/AdvsRuleBean';
/**
* @Description: 处理页面的广告业务
* @Author: lyb
* @Email: liyubing@wondertek.com.cn
* @CreateDate:
* @UpdateRemark: 更新说明
* @Version: 1.0
*/
export default class PageAdModel {
//左右挂角广告对象
pageCornerAdv: CompAdvBean = {} as CompAdvBean
// 挂角广告
isShowAds: boolean = false;
isRightAdv: number = 1;
// 1:右边;2:左边 -> 默认右边
pageCornerContentInfo: AdvRuleBean = {} as AdvRuleBean
// 展现中心业务信息
/**
* 解析广告资源
* @param pageInfo
*/
analysisAdvSource(pageInfo: PageInfoDTO): void {
if (pageInfo.hasAdInfo === 1 && pageInfo.cornersAdv != null) {
// 优先展示展现中心广告
let cornersAdv = pageInfo.cornersAdv
if (cornersAdv == null) {
return
}
if (cornersAdv.advert == null) {
return
}
if ("left_down" == cornersAdv.pos) {
// 左边挂角广告
this.isRightAdv = 2
} else {
// 右边挂角广告
this.isRightAdv = 1
}
this.pageCornerContentInfo = cornersAdv;
this.isShowAds = true
} else if (pageInfo.cornersAdv2 != null && pageInfo.cornersAdv2.length > 0) {
// 广告中心-挂角广告信息
let cornersAdv2 = pageInfo.cornersAdv2
// 获取
let showCompAdvBean = cornersAdv2[0]
if (showCompAdvBean.matInfo == null) {
return
}
//
let slotInfo = showCompAdvBean.slotInfo;
let postion = slotInfo.position
if (postion == 0) {
//左边挂角
this.isRightAdv = 2
} else {
// 右边挂角
this.isRightAdv = 1
}
this.pageCornerAdv = showCompAdvBean
this.isShowAds = true
}
}
}
\ No newline at end of file
...
...
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageHelper.ets
View file @
2aa8003
...
...
@@ -6,6 +6,7 @@ import PageModel from './PageModel';
import PageViewModel from './PageViewModel';
import { promptAction } from '@kit.ArkUI';
import { AdvRuleBean } from 'wdBean/src/main/ets/bean/adv/AdvsRuleBean';
import PageAdModel from './PageAdvModel';
const TAG = 'PageHelper';
...
...
@@ -13,12 +14,14 @@ const TAG = 'PageHelper';
* 处理返回后的数据
*/
export class PageHelper {
/**
* 刷新数据
*/
async refreshUI(pageModel: PageModel) {
async refreshUI(pageModel: PageModel
,pageAdvModel:PageAdModel
) {
pageModel.loadStrategy = 2
this.getPageInfo(pageModel)
this.getPageInfo(pageModel
,pageAdvModel
)
}
/**
...
...
@@ -33,12 +36,12 @@ export class PageHelper {
/**
* 进页面请求数据
*/
async getInitData(pageModel: PageModel) {
async getInitData(pageModel: PageModel
,pageAdvModel:PageAdModel
) {
pageModel.loadStrategy = 1
this.getPageInfo(pageModel)
this.getPageInfo(pageModel
,pageAdvModel
)
}
async getPageInfo(pageModel: PageModel) {
async getPageInfo(pageModel: PageModel
,pageAdvModel:PageAdModel
) {
pageModel.currentPage = 1;
let pageInfo = await PageViewModel.getPageInfo(pageModel.pageId);
if (pageInfo == null) {
...
...
@@ -47,67 +50,12 @@ export class PageHelper {
}
pageModel.pageInfo = pageInfo;
//解析广告资源
this.analysisAdvSource(pageModel);
pageAdvModel.analysisAdvSource(pageInfo)
this.parseGroup(pageModel)
}
/**
* 解析广告资源
* @param pageInfo
*/
analysisAdvSource(pageModel: PageModel) {
let pageInfo = pageModel.pageInfo
if (pageInfo.hasAdInfo === 1 && pageInfo.cornersAdv != null) {
// 优先展示展现中心广告
let cornersAdv = pageInfo.cornersAdv
if (cornersAdv == null) {
return
}
if (cornersAdv.advert == null) {
return
}
if ("left_down" == cornersAdv.pos) {
// 左边挂角广告
pageModel.isRightAdv = 2
} else {
// 右边挂角广告
pageModel.isRightAdv = 1
}
pageModel.pageCornerContentInfo = cornersAdv;
pageModel.isShowAds = true
} else if (pageInfo.cornersAdv2 != null && pageInfo.cornersAdv2.length > 0) {
// 广告中心-挂角广告信息
let cornersAdv2 = pageInfo.cornersAdv2
// 获取
let showCompAdvBean = cornersAdv2[0]
if (showCompAdvBean.matInfo == null) {
return
}
//
let slotInfo = showCompAdvBean.slotInfo;
let postion = slotInfo.position
if (postion == 0) {
//左边挂角
pageModel.isRightAdv = 2
} else {
// 右边挂角
pageModel.isRightAdv = 1
}
pageModel.pageCornerAdv = showCompAdvBean
pageModel.isShowAds = true
}
}
async parseGroup(pageModel: PageModel) {
...
...
sight_harmony/features/wdComponent/src/main/ets/viewmodel/PageModel.ets
View file @
2aa8003
...
...
@@ -51,11 +51,11 @@ export default class PageModel {
// keyGenerator相关字符串,用于刷新list布局
timestamp: String = '1';
//左右挂角广告对象
pageCornerAdv:CompAdvBean = {} as CompAdvBean // 挂角广告
isShowAds : boolean = false;
isRightAdv : number = 1;// 1:右边;2:左边 -> 默认右边
pageCornerContentInfo:AdvRuleBean = {} as AdvRuleBean // 展现中心业务信息
// //左右挂角广告对象
// pageCornerAdv:CompAdvBean = {} as CompAdvBean // 挂角广告
// isShowAds : boolean = false;
// isRightAdv : number = 1;// 1:右边;2:左边 -> 默认右边
// pageCornerContentInfo:AdvRuleBean = {} as AdvRuleBean // 展现中心业务信息
/**
...
...
Please
register
or
login
to post a comment