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
yanlu
2024-05-13 16:09:57 +0800
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
d6d71dec1510e53628d0c33fafebdfecbb6c1433
d6d71dec
2 parents
4f0dc0ce
39eb8e24
Merge commit '
39eb8e24
'
Show whitespace changes
Inline
Side-by-side
Showing
56 changed files
with
1023 additions
and
552 deletions
sight_harmony/commons/wdKit/Index.ets
sight_harmony/commons/wdKit/src/main/ets/utils/FastClickUtil.ts
sight_harmony/commons/wdRouter/src/main/ets/utils/ProcessUtils.ets
sight_harmony/commons/wdWebComponent/src/main/ets/pages/JsBridgeBiz.ets
sight_harmony/commons/wdWebComponent/src/main/ets/pages/JsCallAppService.ets
sight_harmony/features/wdBean/src/main/ets/bean/content/ContentDTO.ets
sight_harmony/features/wdBean/src/main/ets/bean/content/commentInfo.ets
sight_harmony/features/wdComponent/Index.ets
sight_harmony/features/wdComponent/src/main/ets/components/CardParser.ets
sight_harmony/features/wdComponent/src/main/ets/components/CarderInteraction.ets
sight_harmony/features/wdComponent/src/main/ets/components/CompParser.ets
sight_harmony/features/wdComponent/src/main/ets/components/DynamicDetailComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/ImageAndTextPageComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/MultiPictureDetailPageComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/SpacialTopicPageComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardCommon/RmhTitle.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardViewAdv/CardAdvBottom.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardViewAdv/CardAdvTop.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card10Component.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card2Component.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card5Component.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card6Component.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card9Component.ets
sight_harmony/features/wdComponent/src/main/ets/components/cardview/notes.ets
sight_harmony/features/wdComponent/src/main/ets/components/compview/ZhCarouselLayout01.ets
sight_harmony/features/wdComponent/src/main/ets/components/compview/ZhSingleRow03.ets
sight_harmony/features/wdComponent/src/main/ets/components/compview/ZhSingleRow06.ets
sight_harmony/features/wdComponent/src/main/ets/components/lottie/LottieView.ets
sight_harmony/features/wdComponent/src/main/ets/components/mine/MinePagePersonFunctionUI.ets
sight_harmony/features/wdComponent/src/main/ets/components/mine/follow/FollowChildComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/page/BottomNavigationComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/page/TopNavigationComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/page/VideoChannelPage.ets
sight_harmony/features/wdComponent/src/main/ets/components/search/SearchResultContentComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/view/LikeComponent.ets
sight_harmony/features/wdComponent/src/main/ets/components/view/OperRowListView.ets
sight_harmony/features/wdComponent/src/main/ets/lottie/LottieView.ets
sight_harmony/features/wdComponent/src/main/ets/model/LikeModel.ets
sight_harmony/features/wdComponent/src/main/ets/pages/MineHomePage.ets
sight_harmony/features/wdComponent/src/main/ets/viewmodel/LikeViewModel.ets
sight_harmony/features/wdComponent/src/main/ets/viewmodel/LiveModel.ets
sight_harmony/features/wdComponent/src/main/resources/base/media/ic_candle_check.png
sight_harmony/features/wdComponent/src/main/resources/base/media/ic_candle_uncheck.png
sight_harmony/features/wdComponent/src/main/resources/base/media/ic_like_back.png
sight_harmony/features/wdComponent/src/main/resources/base/media/ic_like_uncheck.png
sight_harmony/features/wdComponent/src/main/resources/base/media/ic_thub_check.png
sight_harmony/features/wdComponent/src/main/resources/base/media/ic_thub_uncheck.png
sight_harmony/features/wdDetailPlayLive/oh-package.json5
sight_harmony/features/wdDetailPlayLive/src/main/ets/pages/DetailPlayLivePage.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/video/PlayUIComponent.ets
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/vertical/PlayerTitleComponent.ets
sight_harmony/features/wdDetailPlayLive/src/main/resources/base/media/icon_live_status_running_back.png
sight_harmony/features/wdDetailPlayShortVideo/src/main/ets/pages/VideoChannelDetail.ets
sight_harmony/products/phone/.gitignore
sight_harmony/products/phone/src/main/ets/lottie/live_detail_living.json
sight_harmony/products/phone/src/main/ets/lottie/slider_up_view_more.json
sight_harmony/commons/wdKit/Index.ets
View file @
d6d71de
...
...
@@ -61,3 +61,5 @@ export { MpaasUtils } from './src/main/ets/mpaas/MpaasUtils'
export { MpaasUpgradeCheck, UpgradeTipContent } from './src/main/ets/mpaas/MpaasUpgradeCheck'
export { TingyunAPM } from './src/main/ets/tingyunAPM/TingyunAPM'
export { FastClickUtil } from './src/main/ets/utils/FastClickUtil';
\ No newline at end of file
...
...
sight_harmony/commons/wdKit/src/main/ets/utils/FastClickUtil.ts
0 → 100644
View file @
d6d71de
import
systemDateTime
from
'@ohos.systemDateTime'
;
/**
* 屏蔽快速点击事件,规定时间内只触发一次
*/
export
class
FastClickUtil
{
static
MIN_DELAY_TIME
=
500
static
minDelayBeforeTime
=
0
static
async
isMinDelayTime
()
:
Promise
<
boolean
>
{
let
systime
=
await
systemDateTime
.
getCurrentTime
();
return
new
Promise
<
boolean
>
((
success
,
error
)
=>
{
let
rtnvalue
=
systime
-
FastClickUtil
.
minDelayBeforeTime
<=
FastClickUtil
.
MIN_DELAY_TIME
;
this
.
minDelayBeforeTime
=
systime
;
success
(
rtnvalue
);
})
}
}
...
...
sight_harmony/commons/wdRouter/src/main/ets/utils/ProcessUtils.ets
View file @
d6d71de
...
...
@@ -108,7 +108,11 @@ export class ProcessUtils {
break;
case ContentConstants.TYPE_TELETEXT:
// 图文详情,跳转h5
if(content?.linkUrl){ //有 linkUrl 走专题页展示逻辑
ProcessUtils.gotoSpecialTopic(content)
}else{
ProcessUtils.gotoWeb(content);
}
break;
case ContentConstants.TYPE_LINK:
ProcessUtils.gotoDefaultWeb(content);
...
...
@@ -452,7 +456,15 @@ export class ProcessUtils {
pageID: 'FeedBackActivity'
} as Params,
};
WDRouterRule.jumpWithAction(taskAction)
}
/**
* 跳转到登录页
*/
public static gotoLoginPage() {
WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
}
}
...
...
sight_harmony/commons/wdWebComponent/src/main/ets/pages/JsBridgeBiz.ets
View file @
d6d71de
...
...
@@ -39,14 +39,14 @@ class AppLoginAuthInfo {
}
interface IDataJson {
jumpType:number
jumpUrl:string
newsId:string
newsObjectLevel:string
newsObjectType:number
newsRelId:string
newsTitle:string
pageId:string
jumpType: number
jumpUrl: string
newsId: string
newsObjectLevel: string
newsObjectType: number
newsRelId: string
newsTitle: string
pageId: string
}
/**
...
...
@@ -209,6 +209,11 @@ function handleJsCallAppInnerLinkMethod(data: Message) {
let creatorId = urlParams.get('creatorId') || ''
ProcessUtils.gotoPeopleShipHomePage(creatorId)
break;
case 'app':
if (urlParams.get('subType') === 'login') {
ProcessUtils.gotoLoginPage()
}
break;
default:
break;
}
...
...
sight_harmony/commons/wdWebComponent/src/main/ets/pages/JsCallAppService.ets
View file @
d6d71de
import { Message } from 'wdJsBridge/src/main/ets/bean/Message';
import { H5ReceiveDataJsonBean, postBatchAttentionStatusResult } from 'wdBean';
import { ResponseDTO, WDHttp, HttpUrlUtils } from 'wdNetwork';
import { WDHttp, HttpUrlUtils } from 'wdNetwork';
const TAG = 'JsCallAppService'
export function handleJsCallAppService(data: Message, callback: (res: string) => void) {
let url: string = HttpUrlUtils.getHost() + data?.data?.url
let responseMap: ResponseDTO<postBatchAttentionStatusResult> = {} as ResponseDTO<postBatchAttentionStatusResult>
if (data?.data?.method === 'get') {
let queryString: string = ''
let parameters = data?.data?.parameters
if (parameters) {
queryString = Object.keys(parameters)
.map(key => `${encodeURIComponent(key)}=${encodeURIComponent(parameters?.[key])}`)
.join('&');
}
let h5ReceiveDataJson: H5ReceiveDataJsonBean<ResponseDTO<postBatchAttentionStatusResult>> = {
let url: string = HttpUrlUtils.getHost() + data?.data?.url
if (queryString) {
url = url + `?${queryString}`
}
console.log('yzl', queryString, url)
WDHttp.get(url).then((res) => {
callback(JSON.stringify({
netError: '0',
responseMap
} as H5ReceiveDataJsonBean<ResponseDTO<postBatchAttentionStatusResult>>
responseMap: res
}))
})
}
if (data?.data?.method === 'post') {
let url: string = HttpUrlUtils.getHost() + data?.data?.url
// if (data?.data?.method === 'get') {
// WDHttp.get<ResponseDTO<postBatchAttentionStatusResult>>(url, headers).then((res: ResponseDTO<postBatchAttentionStatusResult>) => {
// callback(JSON.stringify(res))
// })
// }
if (data?.data?.method === 'post' && data?.data?.url === '/api/rmrb-interact/interact/zh/c/batchAttention/status') {
WDHttp.post<ResponseDTO<postBatchAttentionStatusResult>>(url, data?.data?.parameters).then((res: ResponseDTO<postBatchAttentionStatusResult>) => {
h5ReceiveDataJson.responseMap = res
callback(JSON.stringify(h5ReceiveDataJson))
WDHttp.post(url, data?.data?.parameters).then((res) => {
callback(JSON.stringify({
netError: '0',
responseMap: res
}))
})
}
}
...
...
sight_harmony/features/wdBean/src/main/ets/bean/content/ContentDTO.ets
View file @
d6d71de
...
...
@@ -84,7 +84,7 @@ export class ContentDTO implements BaseDTO {
openType: string = '';
extra: string = ''
static clone(old:ContentDTO): ContentDTO {
static clone(old:
ContentDTO): ContentDTO {
let content = new ContentDTO();
content.appStyle = old.appStyle;
content.cityCode = old.cityCode;
...
...
sight_harmony/features/wdBean/src/main/ets/bean/content/commentInfo.ets
View file @
d6d71de
export interface commentInfo {
commentTitle: string,
newsTitle: string,
userName: string,
userHeaderUrl: string,
userId?: string,
userName?: string,
userHeaderUrl?: string,
publishTime: number,
commentId: string,
newsId: string,
relId: string;
relType: string;
userId: string;
newsType?: string,
objectType?: string,
}
\ No newline at end of file
...
...
sight_harmony/features/wdComponent/Index.ets
View file @
d6d71de
...
...
@@ -67,7 +67,7 @@ export { FirstTabTopSearchComponent } from "./src/main/ets/components/search/Fir
export { ListHasNoMoreDataUI } from "./src/main/ets/components/reusable/ListHasNoMoreDataUI"
export { LottieView } from './src/main/ets/lottie/LottieView'
export { LottieView } from './src/main/ets/
components/
lottie/LottieView'
export { SpacialTopicPageComponent } from './src/main/ets/components/SpacialTopicPageComponent'
...
...
sight_harmony/features/wdComponent/src/main/ets/components/CardParser.ets
View file @
d6d71de
import { CommonConstants, CompStyle } from 'wdConstant';
import { ContentDTO } from 'wdBean';
import { CompStyle } from 'wdConstant';
import { CompDTO, ContentDTO } from 'wdBean';
import { Card2Component } from './cardview/Card2Component';
import { Card3Component } from './cardview/Card3Component';
import { Card4Component } from './cardview/Card4Component';
...
...
@@ -24,13 +24,14 @@ import { Card21Component } from './cardview/Card21Component';
@Component
export struct CardParser {
@State contentDTO: ContentDTO = new ContentDTO();
@State compDTO: CompDTO = {} as CompDTO
build() {
this.contentBuilder(this.contentDTO);
this.contentBuilder(this.contentDTO
, this.compDTO
);
}
@Builder
contentBuilder(contentDTO: ContentDTO) {
contentBuilder(contentDTO: ContentDTO
, compDTO: CompDTO
) {
if (contentDTO.appStyle === CompStyle.Card_02) {
Card2Component({ contentDTO })
} else if (contentDTO.appStyle === CompStyle.Card_03) {
...
...
@@ -38,7 +39,7 @@ export struct CardParser {
} else if (contentDTO.appStyle === CompStyle.Card_04) {
Card4Component({ contentDTO })
} else if (contentDTO.appStyle === CompStyle.Card_05) {
Card5Component({ contentDTO })
Card5Component({ contentDTO
, titleShowPolicy: compDTO.titleShowPolicy
})
} else if (contentDTO.appStyle === CompStyle.Card_06 || contentDTO.appStyle === CompStyle
.Card_13) {
Card6Component({ contentDTO })
...
...
@@ -64,8 +65,7 @@ export struct CardParser {
Card20Component({ contentDTO })
} else if (contentDTO.appStyle === CompStyle.Card_21) {
Card21Component({ contentDTO })
}
else {
} else {
// todo:组件未实现 / Component Not Implemented
// Text(contentDTO.appStyle)
// .width(CommonConstants.FULL_PARENT)
...
...
sight_harmony/features/wdComponent/src/main/ets/components/CarderInteraction.ets
View file @
d6d71de
import { SPHelper,Logger,ToastUtils } from 'wdKit';
import { ContentDetailDTO, Action, ContentDTO,batchLikeAndCollectResult } from 'wdBean';
import { SPHelper, Logger, ToastUtils } from 'wdKit';
import { ContentDetailDTO, Action, ContentDTO, batchLikeAndCollectResult } from 'wdBean';
import { ProcessUtils } from 'wdRouter';
import router from '@ohos.router';
import { batchLikeAndCollectParams } from 'wdDetailPlayApi/src/main/ets/request/ContentDetailRequest';
import { MultiPictureDetailViewModel } from '../viewmodel/MultiPictureDetailViewModel';
import { SpConstants } from 'wdConstant/Index';
import { WDShare } from 'wdShare/Index';
import {LikeComponent} from './view/LikeComponent'
import { LikeComponent } from './view/LikeComponent'
const TAG = 'CarderInteraction'
/**
* 卡片 分享、评论、点赞公用组件
*/
...
...
@@ -15,9 +17,10 @@ const TAG = 'CarderInteraction'
export struct CarderInteraction {
@Prop contentDTO: ContentDTO
@State contentId: string = ''
@State contentDetailData: ContentDetailDTO = {} as ContentDetailDTO
@State newsStatusOfUser: batchLikeAndCollectResult = {} as batchLikeAndCollectResult// 点赞、收藏状态
@Provide contentDetailData: ContentDetailDTO = {} as ContentDetailDTO
@State newsStatusOfUser: batchLikeAndCollectResult = {} as batchLikeAndCollectResult // 点赞、收藏状态
@State likeBean: Record<string, string> = {}
async aboutToAppear() {
await this.getContentDetailData()
// 点赞需要数据
...
...
@@ -28,51 +31,55 @@ export struct CarderInteraction {
this.likeBean['userHeaderUrl'] = this.contentDetailData.userInfo?.headPhotoUrl + ''
this.likeBean['channelId'] = this.contentDetailData.reLInfo?.channelId + ''
}
build() {
Row(){
Row(){
Row() {
Row() {
Image($r('app.media.CarderInteraction_share'))
.width(18)
.height(18)
Text('分享')
.margin({left:4
})
.margin({ left: 4
})
.fontSize(14)
.fontColor('#666666')
}
.justifyContent(FlexAlign.Center)
.onClick(()=>
{
.onClick(() =>
{
WDShare.shareContent(this.contentDetailData)
})
Row(){
Row() {
Image($r('app.media.CarderInteraction_comment'))
.width(18)
.height(18)
Text('评论')
.margin({left:4
})
.margin({ left: 4
})
.fontSize(14)
.fontColor('#666666')
}
.justifyContent(FlexAlign.Center)
.onClick(()=>
{
.onClick(() =>
{
ProcessUtils.processPage(this.contentDTO)
})
this.builderLike()
}
.width('100%')
.margin({top:11
})
.margin({ top: 11
})
.padding({
left:21,
right:21
left: 21,
right: 21
})
.justifyContent(FlexAlign.SpaceBetween)
.alignItems(VerticalAlign.Center)
}
/**
* 点赞组件
*/
@Builder
builderLike() {
Row(){
Row()
{
if (this.likeBean?.contentId) {
LikeComponent({
data: this.likeBean,
...
...
@@ -88,13 +95,13 @@ export struct CarderInteraction {
* */
private async getContentDetailData() {
try {
let data = await MultiPictureDetailViewModel.getDetailData(this.contentDTO.relId, this.contentDTO.objectId, this.contentDTO.relType)
let data = await MultiPictureDetailViewModel.getDetailData(this.contentDTO.relId, this.contentDTO.objectId,
this.contentDTO.relType)
this.contentDetailData = data[0];
console.log('动态详情',JSON.stringify(this.contentDetailData))
console.log('动态详情',
JSON.stringify(this.contentDetailData))
} catch (exception) {
console.log('请求失败',JSON.stringify(exception))
console.log('请求失败',
JSON.stringify(exception))
}
}
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/CompParser.ets
View file @
d6d71de
...
...
@@ -32,12 +32,12 @@ import { LiveHorizontalCardComponent } from './view/LiveHorizontalCardComponent'
@Component
export struct CompParser {
@State compDTO: CompDTO = {} as CompDTO
@State private pageModel: PageModel = new PageModel();
@State compIndex: number = 0;
@State private pageModel: PageModel = new PageModel();
build() {
Column() {
if (this.compDTO.name !="月度排行卡") {
if (this.compDTO.name !=
"月度排行卡") {
this.componentBuilder(this.compDTO, this.compIndex);
}
...
...
@@ -53,7 +53,8 @@ export struct CompParser {
} else if (compDTO.compStyle === CompStyle.Zh_Carousel_Layout_01) {
ZhCarouselLayout01({ compDTO: compDTO })
Divider().strokeWidth(1).color('#f5f5f5').padding({ left: 16, right: 16 })
} else if (compDTO.compStyle === CompStyle.Zh_Single_Row_01 && compDTO.imageScale === 2) {// && compDTO.name ==="横划卡"
} else if (compDTO.compStyle === CompStyle.Zh_Single_Row_01 &&
compDTO.imageScale === 2) { // && compDTO.name ==="横划卡"
LiveHorizontalCardComponent({ compDTO: compDTO })
Divider().strokeWidth(1).color('#f5f5f5').padding({ left: 16, right: 16 })
...
...
@@ -87,7 +88,7 @@ export struct CompParser {
Divider().strokeWidth(1).color('#f5f5f5').padding({ left: 16, right: 16 })
} else if (compDTO.compStyle === CompStyle.Zh_Single_Column_02) {
//头图卡 和comStyle 2相同,
Card5Component({ contentDTO: compDTO.operDataList[0] })
Card5Component({ contentDTO: compDTO.operDataList[0]
, titleShowPolicy: compDTO.titleShowPolicy
})
Divider().strokeWidth(1).color('#f5f5f5').padding({ left: 16, right: 16 })
} else if (compDTO.compStyle === CompStyle.Zh_Single_Column_03) {
// 大图卡
...
...
@@ -107,10 +108,9 @@ export struct CompParser {
//Text(`compIndex = ${compIndex}`).width('100%').fontSize('12fp').fontColor(Color.Red).padding({ left: 16, right: 16 })
Divider().strokeWidth(1).color('#f5f5f5').padding({ left: 16, right: 16 })
} else if (!Number.isNaN(Number(compDTO.compStyle))) {
CardParser({ contentDTO: compDTO.operDataList[0] });
CardParser({ contentDTO: compDTO.operDataList[0]
, compDTO
});
Divider().strokeWidth(1).color('#f5f5f5').padding({ left: 16, right: 16 })
}
else {
} else {
Text(compDTO.compStyle)
.width(CommonConstants.FULL_PARENT)
.padding(10)
...
...
sight_harmony/features/wdComponent/src/main/ets/components/DynamicDetailComponent.ets
View file @
d6d71de
import { AccountManagerUtils, Logger, DateTimeUtils, SPHelper, NumberFormatterUtils, DisplayUtils,
NetworkUtil } from 'wdKit';
import {
AccountManagerUtils,
Logger,
DateTimeUtils,
SPHelper,
NumberFormatterUtils,
DisplayUtils,
NetworkUtil,
FastClickUtil
} from 'wdKit';
import { MultiPictureDetailViewModel } from '../viewmodel/MultiPictureDetailViewModel';
import { ContentDetailDTO,postBatchAttentionStatusParams,
import {
ContentDetailDTO,
postBatchAttentionStatusParams,
PhotoListBean,
ContentDTO,
batchLikeAndCollectResult,
RmhInfoDTO,
InteractDataDTO, } from 'wdBean';
InteractDataDTO,
} from 'wdBean';
import media from '@ohos.multimedia.media';
import { OperRowListView } from './view/OperRowListView';
import { WDPlayerController } from 'wdPlayer/Index';
...
...
@@ -33,6 +44,7 @@ import { detailedSkeleton } from './skeleton/detailSkeleton';
const TAG = 'DynamicDetailComponent'
const PATTERN_DATE_CN_RN: string = 'yyyy年MM月dd日 HH:mm';
// @Preview
@Component
export struct DynamicDetailComponent {
...
...
@@ -40,39 +52,34 @@ export struct DynamicDetailComponent {
private relId: string = ''
private contentId: string = ''
private relType: string = ''
//出参
@
Stat
e contentDetailData: ContentDetailDTO = {} as ContentDetailDTO
@
Provid
e contentDetailData: ContentDetailDTO = {} as ContentDetailDTO
//UI
scroller: Scroller = new Scroller();
//点赞 收藏 评论 数量
@State interactDataDTO: InteractDataDTO = {
likeNum:0
} as InteractDataDTO
@State interactDataDTO: InteractDataDTO = {
likeNum: 0
} as InteractDataDTO
/**
* 关注状态:默认未关注 点击去关注
*/
@State followStatus: String = '';
@State newsStatusOfUser: batchLikeAndCollectResult = {} as batchLikeAndCollectResult// 点赞、收藏状态
@State newsStatusOfUser: batchLikeAndCollectResult = {} as batchLikeAndCollectResult // 点赞、收藏状态
//跳转
private mJumpInfo: ContentDTO = new ContentDTO();
@State publishTime: string = ''
@State isNetConnected: boolean = true
@State isPageEnd: boolean = false
@State publishCommentModel: publishCommentModel = new publishCommentModel()
async aboutToAppear() {
await this.getContentDetailData()
}
onPageHide() {
}
build() {
Column()
{
Column()
{
//logo、日期
Row() {
Image($r('app.media.ic_article_rmh'))
...
...
@@ -89,12 +96,13 @@ export struct DynamicDetailComponent {
.height($r('app.float.margin_48'))
.width('100%')
.alignItems(VerticalAlign.Bottom)
.padding({bottom:5})
.padding({ bottom: 5 })
//分割线
Image($r('app.media.ic_news_detail_division'))
.width('100%')
.height($r('app.float.margin_7'))
.padding({left: $r('app.float.margin_16'), right: $r('app.float.margin_16')}
)
.padding({ left: $r('app.float.margin_16'), right: $r('app.float.margin_16') }
)
Stack({ alignContent: Alignment.Bottom }) {
if (!this.isNetConnected) {
EmptyComponent({
...
...
@@ -107,7 +115,7 @@ export struct DynamicDetailComponent {
} else {
if (!this.isPageEnd) {
detailedSkeleton()
}else
{
} else
{
Scroll(this.scroller) {
Column() {
//号主信息
...
...
@@ -115,7 +123,8 @@ export struct DynamicDetailComponent {
//头像
Stack() {
Image(this.contentDetailData.rmhInfo?.rmhHeadUrl)
.alt(this.contentDetailData.rmhInfo?.userType=='1'?$r('app.media.default_head'):$r('app.media.icon_default_head_mater'))
.alt(this.contentDetailData.rmhInfo?.userType == '1' ? $r('app.media.default_head') :
$r('app.media.icon_default_head_mater'))
.width($r('app.float.margin_32'))
.height($r('app.float.margin_32'))
.objectFit(ImageFit.Cover)
...
...
@@ -125,7 +134,7 @@ export struct DynamicDetailComponent {
.height($r('app.float.margin_48'))
.objectFit(ImageFit.Cover)
.borderRadius($r('app.float.margin_24'))
if(!StringUtils.isEmpty(this.contentDetailData.rmhInfo?.authIcon))
{
if (!StringUtils.isEmpty(this.contentDetailData.rmhInfo?.authIcon))
{
Stack() {
Image(this.contentDetailData.rmhInfo?.authIcon)
.width($r('app.float.vp_12'))
...
...
@@ -140,10 +149,16 @@ export struct DynamicDetailComponent {
.width($r('app.float.margin_48'))
.height($r('app.float.margin_48'))
.alignContent(Alignment.Center)
.onClick(() => {
ProcessUtils.gotoPeopleShipHomePage(this.contentDetailData.rmhInfo == null ?"":this.contentDetailData.rmhInfo.rmhId)
.onClick(async () => {
let retvalue = await FastClickUtil.isMinDelayTime()
if(retvalue){
return
}
ProcessUtils.gotoPeopleShipHomePage(this.contentDetailData.rmhInfo == null ? "" :
this.contentDetailData.rmhInfo.rmhId)
})
Column(){
Column() {
//昵称
Text(this.contentDetailData.rmhInfo?.rmhName)
.fontSize($r('app.float.font_size_14'))
...
...
@@ -162,15 +177,16 @@ export struct DynamicDetailComponent {
.alignSelf(ItemAlign.Start)
}
.width('63%')
.margin({right: $r('app.float.margin_6')})
if(!StringUtils.isEmpty(this.followStatus)){
.margin({ right: $r('app.float.margin_6') })
if (!StringUtils.isEmpty(this.followStatus)) {
if (this.followStatus == '0') {
Row() {
Blank().layoutWeight(1)
Image($r('app.media.icon_add_attention'))
.width($r('app.float.vp_12'))
.height($r('app.float.vp_12'))
.margin({right:2
})
.margin({ right: 2
})
Text('关注')
.textAlign(TextAlign.Center)
.fontSize($r('app.float.font_size_12'))
...
...
@@ -181,7 +197,11 @@ export struct DynamicDetailComponent {
.height($r('app.float.margin_24'))
.borderRadius($r('app.float.vp_3'))
.backgroundColor($r('app.color.color_ED2800'))
.onClick(() => {
.onClick(async () => {
let retvalue = await FastClickUtil.isMinDelayTime()
if(retvalue){
return
}
this.handleAccention()
})
} else {
...
...
@@ -195,30 +215,37 @@ export struct DynamicDetailComponent {
.borderColor($r('app.color.color_CCCCCC_1A'))
.backgroundColor($r('app.color.color_CCCCCC_1A'))
.fontColor($r('app.color.color_CCCCCC'))
.onClick(() => {
.onClick(async () => {
let retvalue = await FastClickUtil.isMinDelayTime()
if(retvalue){
return
}
this.handleAccention()
})
}
}
}
.width('100%')
.margin({ left: $r('app.float.margin_16')})
.margin({ left: $r('app.float.margin_16') })
//内容
Text(StringUtils.isEmpty(this.contentDetailData.newsContent)
?StringUtils.isEmpty(this.contentDetailData.newsSummary)
?this.contentDetailData.newsTitle
:this.contentDetailData.newsSummary
:this.contentDetailData.newsContent)
? StringUtils.isEmpty(this.contentDetailData.newsSummary)
? this.contentDetailData.newsTitle
: this.contentDetailData.newsSummary
: this.contentDetailData.newsContent)
.fontColor($r('app.color.color_222222'))
.fontSize($r('app.float.font_size_18'))
.lineHeight($r('app.float.margin_25'))
.margin({ top: $r('app.float.margin_6')
,left: $r('app.float.margin_16')
,right: $r('app.float.margin_16') })
.margin({
top: $r('app.float.margin_6')
, left: $r('app.float.margin_16')
, right: $r('app.float.margin_16')
})
.alignSelf(ItemAlign.Start)
if(this.contentDetailData.newsType+"" == ContentConstants.TYPE_FOURTEEN)
{
if (this.contentDetailData.newsType + "" == ContentConstants.TYPE_FOURTEEN)
{
//附件内容:图片/视频
if(this.contentDetailData.photoList!= null && this.contentDetailData.photoList.length>0)
{
if (this.contentDetailData.photoList != null && this.contentDetailData.photoList.length > 0)
{
// 图片-从无图到9图展示
GridRow({
gutter: { x: 2, y: 2 }
...
...
@@ -228,7 +255,7 @@ export struct DynamicDetailComponent {
if (this.getPicType(item) !== 3) {
GridCol({
span: this.getPicType(item) === 1 ? 12 : 8
})
{
})
{
Stack({
alignContent: Alignment.BottomEnd
}) {
...
...
@@ -249,7 +276,7 @@ export struct DynamicDetailComponent {
Image($r('app.media.icon_long_pic'))
.width(14)
.height(14)
.margin({right: 4
})
.margin({ right: 4
})
Text('长图')
.fontSize(12)
.fontWeight(400)
...
...
@@ -257,12 +284,16 @@ export struct DynamicDetailComponent {
.fontFamily('PingFang SC')
}
.width(48)
.padding({bottom: 9
})
.padding({ bottom: 9
})
}
}
.onClick((event: ClickEvent) => {
ProcessUtils.gotoMultiPictureListPage(this.contentDetailData.photoList,index)
.onClick(async (event: ClickEvent) => {
let retvalue = await FastClickUtil.isMinDelayTime()
if(retvalue){
return
}
ProcessUtils.gotoMultiPictureListPage(this.contentDetailData.photoList, index)
})
} else {
GridCol({
...
...
@@ -278,8 +309,12 @@ export struct DynamicDetailComponent {
item.height = callback?.height || 0;
})
}
.onClick((event: ClickEvent) => {
ProcessUtils.gotoMultiPictureListPage(this.contentDetailData.photoList,index)
.onClick(async (event: ClickEvent) => {
let retvalue = await FastClickUtil.isMinDelayTime()
if(retvalue){
return
}
ProcessUtils.gotoMultiPictureListPage(this.contentDetailData.photoList, index)
})
}
} else if (this.contentDetailData.photoList.length === 4) {
...
...
@@ -290,8 +325,12 @@ export struct DynamicDetailComponent {
.aspectRatio(1)
.borderRadius(this.caclImageRadius(index))
}
.onClick((event: ClickEvent) => {
ProcessUtils.gotoMultiPictureListPage(this.contentDetailData.photoList,index)
.onClick(async (event: ClickEvent) => {
let retvalue = await FastClickUtil.isMinDelayTime()
if(retvalue){
return
}
ProcessUtils.gotoMultiPictureListPage(this.contentDetailData.photoList, index)
})
} else {
GridCol({
...
...
@@ -301,16 +340,24 @@ export struct DynamicDetailComponent {
.aspectRatio(1)
.borderRadius(this.caclImageRadius(index))
}
.onClick((event: ClickEvent) => {
ProcessUtils.gotoMultiPictureListPage(this.contentDetailData.photoList,index)
.onClick(async (event: ClickEvent) => {
let retvalue = await FastClickUtil.isMinDelayTime()
if(retvalue){
return
}
ProcessUtils.gotoMultiPictureListPage(this.contentDetailData.photoList, index)
})
}
})
}
.margin({ left: $r('app.float.margin_16'),right: $r('app.float.margin_16'),top: $r('app.float.margin_8')})
.margin({
left: $r('app.float.margin_16'),
right: $r('app.float.margin_16'),
top: $r('app.float.margin_8')
})
}
}else{
if(this.contentDetailData.videoInfo!= null && this.contentDetailData.videoInfo.length>0){
} else {
if (this.contentDetailData.videoInfo != null && this.contentDetailData.videoInfo.length > 0) {
GridRow() {
if (this.contentDetailData.videoInfo[0].videoLandScape === 1) {
// 横屏
...
...
@@ -318,11 +365,13 @@ export struct DynamicDetailComponent {
span: { xs: 12 }
}) {
Stack() {
Image(this.contentDetailData.fullColumnImgUrls!= null && this.contentDetailData.fullColumnImgUrls.length>0&&!StringUtils.isEmpty(this.contentDetailData.fullColumnImgUrls[0].url)?
this.contentDetailData.fullColumnImgUrls[0].url:
Image(this.contentDetailData.fullColumnImgUrls != null &&
this.contentDetailData.fullColumnImgUrls.length > 0 &&
!StringUtils.isEmpty(this.contentDetailData.fullColumnImgUrls[0].url) ?
this.contentDetailData.fullColumnImgUrls[0].url :
this.contentDetailData.videoInfo[0].firstFrameImageUri)
.width(DisplayUtils.getDeviceWidth()- 32)
.height((DisplayUtils.getDeviceWidth()-32)* 9 / 16)
.width(DisplayUtils.getDeviceWidth() - 32)
.height((DisplayUtils.getDeviceWidth() - 32) * 9 / 16)
.borderRadius($r('app.float.image_border_radius'))
CardMediaInfo({ contentDTO: this.mJumpInfo })
}
...
...
@@ -334,11 +383,13 @@ export struct DynamicDetailComponent {
span: { xs: 6 }
}) {
Stack() {
Image(this.contentDetailData.fullColumnImgUrls!= null && this.contentDetailData.fullColumnImgUrls.length>0&&!StringUtils.isEmpty(this.contentDetailData.fullColumnImgUrls[0].url)?
this.contentDetailData.fullColumnImgUrls[0].url:
Image(this.contentDetailData.fullColumnImgUrls != null &&
this.contentDetailData.fullColumnImgUrls.length > 0 &&
!StringUtils.isEmpty(this.contentDetailData.fullColumnImgUrls[0].url) ?
this.contentDetailData.fullColumnImgUrls[0].url :
this.contentDetailData.videoInfo[0].firstFrameImageUri)
.width(DisplayUtils.getDeviceWidth()/2)
.height(DisplayUtils.getDeviceWidth()/2* 4 / 3)
.width(DisplayUtils.getDeviceWidth() / 2)
.height(DisplayUtils.getDeviceWidth() / 2 * 4 / 3)
.borderRadius($r('app.float.image_border_radius'))
CardMediaInfo({ contentDTO: this.mJumpInfo })
}
...
...
@@ -346,8 +397,15 @@ export struct DynamicDetailComponent {
}
}
}
.padding({ left: this.contentDetailData.videoInfo[0].videoLandScape === 1?0: 25,top: $r('app.float.margin_8')})
.onClick((event: ClickEvent) => {
.padding({
left: this.contentDetailData.videoInfo[0].videoLandScape === 1 ? 0 : 25,
top: $r('app.float.margin_8')
})
.onClick(async (event: ClickEvent) => {
let retvalue = await FastClickUtil.isMinDelayTime()
if(retvalue){
return
}
ProcessUtils.processPage(this.mJumpInfo)
})
}
...
...
@@ -357,9 +415,11 @@ export struct DynamicDetailComponent {
.fontColor($r('app.color.color_CCCCCC'))
.fontSize($r('app.float.font_size_12'))
.lineHeight($r('app.float.margin_16'))
.margin({ top: $r('app.float.margin_16')
,left: $r('app.float.vp_12')
,right: $r('app.float.vp_12') })
.margin({
top: $r('app.float.margin_16')
, left: $r('app.float.vp_12')
, right: $r('app.float.vp_12')
})
//微信/朋友圈/微博
// Row(){
// Image($r('app.media.xxhdpi_pic_wechat'))
...
...
@@ -379,37 +439,42 @@ export struct DynamicDetailComponent {
// }
// .margin({ top: $r('app.float.margin_24')})
//点赞
Row()
{
Row()
{
Blank().layoutWeight(1)
Image(this.newsStatusOfUser?.likeStatus == '1'
?
Image(this.newsStatusOfUser?.likeStatus == '1'
?
$r('app.media.icon_like_selected_redheart')
:
$r('app.media.icon_like_unselect_grey_redheart'))
:
$r('app.media.icon_like_unselect_grey_redheart'))
.width($r('app.float.margin_36'))
.height($r('app.float.margin_36'))
.objectFit(ImageFit.Cover)
.margin({ left: $r('app.float.margin_6_negative'),right: $r('app.float.margin_6_negative')})
if(this.interactDataDTO?.likeNum != 0){
.margin({ left: $r('app.float.margin_6_negative'), right: $r('app.float.margin_6_negative') })
if (this.interactDataDTO?.likeNum != 0) {
Text(NumberFormatterUtils.formatNumberWithWan(this.interactDataDTO?.likeNum))
.fontColor($r('app.color.color_999999'))
.fontSize($r('app.float.font_size_16'))
.lineHeight($r('app.float.margin_20'))
.margin({ left: $r('app.float.margin_2')
})
.margin({ left: $r('app.float.margin_2')
})
}
Blank().layoutWeight(1)
}
.width($r('app.float.margin_154'))
.height($r('app.float.margin_40'))
.margin({top:$r('app.float.margin_16')
})
.margin({ top: $r('app.float.margin_16')
})
.borderWidth($r('app.float.margin_1'))
.borderColor($r('app.color.color_EDEDED'))
.borderRadius($r('app.float.margin_20'))
.onClick((event: ClickEvent) => {
.onClick(async (event: ClickEvent) => {
let retvalue = await FastClickUtil.isMinDelayTime()
if(retvalue){
return
}
//点赞操作
this.toggleLikeStatus()
})
// 评论
if (this.contentDetailData?.openComment) {
Divider().strokeWidth(6).color('#f5f5f5').margin({top:$r('app.float.margin_24')
})
Divider().strokeWidth(6).color('#f5f5f5').margin({ top: $r('app.float.margin_24')
})
CommentComponent({
publishCommentModel: {
targetId: String(this.contentDetailData?.newsId || ''),
...
...
@@ -447,11 +512,19 @@ export struct DynamicDetailComponent {
.width('100%')
.height('100%')
}
/**
* 请求(动态)详情页数据
* */
private async getContentDetailData() {
this.isNetConnected = NetworkUtil.isNetConnected()
this.publishCommentModel.targetId = String(this.contentDetailData?.newsId || '')
this.publishCommentModel.targetRelId = String(this.contentDetailData?.reLInfo?.relId)
this.publishCommentModel.targetTitle = this.contentDetailData?.newsTitle
this.publishCommentModel.targetRelType = String(this.contentDetailData?.reLInfo?.relType)
this.publishCommentModel.targetRelObjectId = String(this.contentDetailData?.reLInfo?.relObjectId)
this.publishCommentModel.keyArticle = String(this.contentDetailData?.keyArticle)
this.publishCommentModel.targetType = String(this.contentDetailData?.newsType)
try {
let data = await MultiPictureDetailViewModel.getDetailData(this.relId, this.contentId, this.relType)
this.isPageEnd = true;
...
...
@@ -460,9 +533,9 @@ export struct DynamicDetailComponent {
DateTimeUtils.parseDate(this.contentDetailData?.publishTime, DateTimeUtils.PATTERN_DATE_TIME_HYPHEN);
let _publishTime = DateTimeUtils.formatDate(dateTime, PATTERN_DATE_CN_RN)
this.publishTime = DateTimeUtils.removeTrailingZeros(_publishTime)
console.log('动态详情',JSON.stringify(this.contentDetailData))
console.log('动态详情',
JSON.stringify(this.contentDetailData))
} catch (exception) {
console.log('请求失败',
JSON.stringify(exception))
console.log('请求失败',
JSON.stringify(exception))
this.isPageEnd = true;
}
this.getBatchAttentionStatus()
...
...
@@ -471,10 +544,11 @@ export struct DynamicDetailComponent {
this.interactDataV2()
}
private async interactDataV2() {
this.interactDataDTO = await MultiPictureDetailViewModel.interactDataV2(
this.contentDetailData?.newsId+'',this.contentDetailData?.newsType+'',this.contentDetailData.reLInfo == null ?'':this.contentDetailData.reLInfo?.relId,this.contentDetailData.rmhPlatform)
this.contentDetailData?.newsId + '', this.contentDetailData?.newsType + '',
this.contentDetailData.reLInfo == null ? '' : this.contentDetailData.reLInfo?.relId,
this.contentDetailData.rmhPlatform)
}
// 已登录->查询用户对作品点赞、收藏状态
...
...
@@ -526,18 +600,19 @@ export struct DynamicDetailComponent {
}
//创建跳转信息
makeJumpInfo(){
makeJumpInfo()
{
this.mJumpInfo.pageId = 'dynamicDetailPage'
this.mJumpInfo.objectId = this.contentDetailData.newsId+""
this.mJumpInfo.relType = this.contentDetailData.reLInfo?.relType+""
this.mJumpInfo.relId = this.contentDetailData.reLInfo?.relId+""
this.mJumpInfo.objectType = (this.contentDetailData.newsType+"") == ContentConstants.TYPE_FOURTEEN?this.contentDetailData.newsType+"":ContentConstants.TYPE_VOD
if(this.contentDetailData.videoInfo!= null && this.contentDetailData.videoInfo.length>0){
this.mJumpInfo.objectId = this.contentDetailData.newsId + ""
this.mJumpInfo.relType = this.contentDetailData.reLInfo?.relType + ""
this.mJumpInfo.relId = this.contentDetailData.reLInfo?.relId + ""
this.mJumpInfo.objectType =
(this.contentDetailData.newsType + "") == ContentConstants.TYPE_FOURTEEN ? this.contentDetailData.newsType + "" :
ContentConstants.TYPE_VOD
if (this.contentDetailData.videoInfo != null && this.contentDetailData.videoInfo.length > 0) {
this.mJumpInfo.videoInfo = this.contentDetailData.videoInfo[0]
}
}
caclImageRadius(index: number) {
let radius: radiusType = {
topLeft: index === 0 ? $r('app.float.image_border_radius') : 0,
...
...
@@ -561,11 +636,11 @@ export struct DynamicDetailComponent {
return radius
}
getPicType(item: PhotoListBean){
getPicType(item: PhotoListBean)
{
if (item.width && item.width) {
if (item.width / item.height > 343
/
172) {
if (item.width / item.height > 343
/
172) {
return 1; //横长图
} else if (item.height / item.width > 305
/
228) {
} else if (item.height / item.width > 305
/
228) {
return 2; //竖长图
} else {
return 3
...
...
@@ -590,7 +665,7 @@ export struct DynamicDetailComponent {
attentionUserType: this.contentDetailData?.rmhInfo?.userType || '', //被关注用户类型(1 普通用户 2 视频号 3 矩阵号)
attentionUserId: this.contentDetailData?.rmhInfo?.userId || '', // 被关注用户号主id
attentionCreatorId: this.contentDetailData?.rmhInfo?.rmhId || '', // 被关注用户号主id
status: this.followStatus == '0'
? 1:
0,
status: this.followStatus == '0'
? 1 :
0,
}
ContentDetailRequest.postInteractAccentionOperate(params2).then(res => {
console.log('关注号主==', JSON.stringify(res.data))
...
...
sight_harmony/features/wdComponent/src/main/ets/components/ImageAndTextPageComponent.ets
View file @
d6d71de
...
...
@@ -40,7 +40,7 @@ const TAG: string = 'ImageAndTextPageComponent'
export struct ImageAndTextPageComponent {
scroller: Scroller = new Scroller();
action: Action = {} as Action
@
State contentDetailData: ContentDetailDTO [] = [] as ContentDetailDTO []
@
Provide contentDetailData: ContentDetailDTO = {} as ContentDetailDTO
@State recommendList: ContentDTO[] = []
@State newsStatusOfUser: batchLikeAndCollectResult | undefined = undefined // 点赞、收藏状态
@State interactData: InteractDataDTO = {} as InteractDataDTO
...
...
@@ -52,11 +52,12 @@ export struct ImageAndTextPageComponent {
@State isNetConnected: boolean = true
@State info: Area | null = null
@State likeNum: number = 0
build() {
Column() {
// 发布时间
Row() {
Image(this.contentDetailData
[0]
?.rmhInfo ? $r('app.media.logo_rmh') : $r('app.media.logo_rmrb'))
Image(this.contentDetailData?.rmhInfo ? $r('app.media.logo_rmh') : $r('app.media.logo_rmrb'))
.width(80)
.height(28)
Text(this.publishTime)
...
...
@@ -83,26 +84,26 @@ export struct ImageAndTextPageComponent {
Scroll(this.scroller) {
Column() {
ImageAndTextWebComponent({
contentDetailData:
this.contentDetailData
,
contentDetailData:
[this.contentDetailData]
,
action: this.action,
isPageEnd: $isPageEnd
})
.padding({
bottom:10
})
.padding({
bottom: 10
})
Column() {
// 点赞
if (this.contentDetailData
[0]?.openLikes && this.contentDetailData[0]
?.likesStyle !== 4) {
if (this.contentDetailData
?.openLikes && this.contentDetailData
?.likesStyle !== 4) {
Row() {
Row() {
if (this.newsStatusOfUser?.likeStatus === '1') {
Image(this.contentDetailData[0]?.likesStyle === 1 ? $r('app.media.ic_like_check') :
(this.contentDetailData[0]?.likesStyle === 2 ? $r('app.media.icon_prayer_active') :
Image(this.contentDetailData?.likesStyle === 1 ? $r('app.media.ic_like_check') :
(this.contentDetailData?.likesStyle === 2 ? $r('app.media.icon_prayer_active') :
$r('app.media.icon_candle_active')))
.width(24)
.height(24)
.margin({ right: 5 })
} else {
Image(this.contentDetailData[0]?.likesStyle === 1 ? $r('app.media.icon_like') :
(this.contentDetailData[0]?.likesStyle === 2 ? $r('app.media.icon_prayer') :
Image(this.contentDetailData?.likesStyle === 1 ? $r('app.media.icon_like') :
(this.contentDetailData?.likesStyle === 2 ? $r('app.media.icon_prayer') :
$r('app.media.icon_candle')))
.width(24)
.height(24)
...
...
@@ -129,7 +130,7 @@ export struct ImageAndTextPageComponent {
})
}.width(CommonConstants.FULL_WIDTH)
.padding({
top:14,bottom:24
})
.padding({
top: 14, bottom: 24
})
.justifyContent(FlexAlign.Center)
}
if (this.recommendList.length > 0) {
...
...
@@ -137,7 +138,7 @@ export struct ImageAndTextPageComponent {
RecommendList({ recommendList: this.recommendList })
}
// 评论
if (this.contentDetailData
[0]
?.openComment) {
if (this.contentDetailData?.openComment) {
Divider().strokeWidth(6).color('#f5f5f5')
CommentComponent({
publishCommentModel: this.publishCommentModel
...
...
@@ -173,7 +174,7 @@ export struct ImageAndTextPageComponent {
//底部交互区
if (this.operationButtonList.length) {
OperRowListView({
contentDetailData: this.contentDetailData
[0]
,
contentDetailData: this.contentDetailData,
publishCommentModel: this.publishCommentModel,
operationButtonList: this.operationButtonList,
styleType: 1,
...
...
@@ -207,29 +208,29 @@ export struct ImageAndTextPageComponent {
}
let detailBeans = await DetailViewModel.getDetailPageData(relId, contentId, relType)
if (detailBeans && detailBeans.length > 0) {
this.contentDetailData = detailBeans;
this.contentDetailData = detailBeans
[0]
;
let dateTime =
DateTimeUtils.parseDate(this.contentDetailData
[0]
?.publishTime, DateTimeUtils.PATTERN_DATE_TIME_HYPHEN);
DateTimeUtils.parseDate(this.contentDetailData?.publishTime, DateTimeUtils.PATTERN_DATE_TIME_HYPHEN);
let _publishTime = DateTimeUtils.formatDate(dateTime, PATTERN_DATE_CN_RN)
this.publishTime = DateTimeUtils.removeTrailingZeros(_publishTime)
if (this.contentDetailData
[0]
?.recommendShow === 1) {
if (this.contentDetailData?.recommendShow === 1) {
this.getRecommend()
}
if (this.contentDetailData
[0]
?.openLikes === 1) {
if (this.contentDetailData?.openLikes === 1) {
this.getInteractDataStatus()
this.queryContentInteractCount()
}
if (this.contentDetailData[0]?.openComment) {
this.publishCommentModel.targetId = String(this.contentDetailData[0]?.newsId || '')
this.publishCommentModel.targetRelId = String(this.contentDetailData[0]?.reLInfo?.relId)
this.publishCommentModel.targetTitle = this.contentDetailData[0]?.newsTitle
this.publishCommentModel.targetRelType = String(this.contentDetailData[0]?.reLInfo?.relType)
this.publishCommentModel.targetRelObjectId = String(this.contentDetailData[0]?.reLInfo?.relObjectId)
this.publishCommentModel.keyArticle = String(this.contentDetailData[0]?.keyArticle)
this.publishCommentModel.targetType = String(this.contentDetailData[0]?.newsType)
}
if (this.contentDetailData[0]?.openAudio && this.contentDetailData[0]?.audioList?.length &&
this.contentDetailData[0]?.audioList[0].audioUrl) {
if (this.contentDetailData?.openComment) {
this.publishCommentModel.targetId = String(this.contentDetailData?.newsId || '')
this.publishCommentModel.targetRelId = String(this.contentDetailData?.reLInfo?.relId)
this.publishCommentModel.targetTitle = this.contentDetailData?.newsTitle
this.publishCommentModel.targetRelType = String(this.contentDetailData?.reLInfo?.relType)
this.publishCommentModel.targetRelObjectId = String(this.contentDetailData?.reLInfo?.relObjectId)
this.publishCommentModel.keyArticle = String(this.contentDetailData?.keyArticle)
this.publishCommentModel.targetType = String(this.contentDetailData?.newsType)
}
if (this.contentDetailData?.openAudio && this.contentDetailData?.audioList?.length &&
this.contentDetailData?.audioList[0].audioUrl) {
this.operationButtonList = ['comment', 'collect', 'listen', 'share']
} else {
this.operationButtonList = ['comment', 'collect', 'share']
...
...
@@ -242,11 +243,11 @@ export struct ImageAndTextPageComponent {
let params: postRecommendListParams = {
imei: HttpUtils.getImei(),
userId: HttpUtils.getUserId(),
contentId: String(this.contentDetailData[0]?.newsId),
recType: Number(this.contentDetailData[0]?.reLInfo?.relType),
contentType: this.contentDetailData[0]?.newsType,
relId: this.contentDetailData[0]?.reLInfo?.relId,
channelId: String(this.contentDetailData[0]?.reLInfo?.channelId)
contentId: String(this.contentDetailData?.newsId),
recType: Number(this.contentDetailData?.reLInfo?.relType),
contentType: this.contentDetailData?.newsType,
relId: this.contentDetailData?.reLInfo?.relId,
channelId: String(this.contentDetailData?.reLInfo?.channelId)
}
let recommendList = await DetailViewModel.postRecommendList(params)
this.recommendList = recommendList;
...
...
@@ -258,8 +259,8 @@ export struct ImageAndTextPageComponent {
const params: batchLikeAndCollectParams = {
contentList: [
{
contentId: this.contentDetailData[0]?.newsId + '',
contentType: this.contentDetailData[0]?.newsType + '',
contentId: this.contentDetailData?.newsId + '',
contentType: this.contentDetailData?.newsType + '',
}
]
}
...
...
@@ -284,8 +285,8 @@ export struct ImageAndTextPageComponent {
}
const params: postExecuteLikeParams = {
status: this.newsStatusOfUser?.likeStatus === '1' ? '0' : '1',
contentId: this.contentDetailData[0]?.newsId + '',
contentType: this.contentDetailData[0]?.newsType + '',
contentId: this.contentDetailData?.newsId + '',
contentType: this.contentDetailData?.newsType + '',
}
PageRepository.postExecuteLike(params).then(res => {
console.log(TAG, '点赞、取消点赞', 'toggleLikeStatus==',)
...
...
@@ -304,8 +305,8 @@ export struct ImageAndTextPageComponent {
console.error(TAG, 'contentDetailData2222', JSON.stringify(this.contentDetailData))
const params: contentListParams = {
contentList: [{
contentId: this.contentDetailData[0]?.newsId + '',
contentType: this.contentDetailData[0]?.newsType,
contentId: this.contentDetailData?.newsId + '',
contentType: this.contentDetailData?.newsType,
}]
}
PageRepository.getContentInteract(params).then(res => {
...
...
sight_harmony/features/wdComponent/src/main/ets/components/MultiPictureDetailPageComponent.ets
View file @
d6d71de
import { NetworkUtil, Logger, NetworkType, SPHelper, WindowModel, StringUtils} from 'wdKit';
import { NetworkUtil, Logger, NetworkType, SPHelper, WindowModel, StringUtils
} from 'wdKit';
import { ResponseDTO } from 'wdNetwork';
import {
ContentDetailDTO,
...
...
@@ -35,7 +35,7 @@ export struct MultiPictureDetailPageComponent {
private picWidth: number = 0
@State picHeight: number = 0
@State titleHeight: number = 0
@
Stat
e contentDetailData: ContentDetailDTO = {} as ContentDetailDTO
@
Provid
e contentDetailData: ContentDetailDTO = {} as ContentDetailDTO
@Provide @Watch('onCurrentPageNumUpdated') currentPageNum: string = '01'
private swiperController: SwiperController = new SwiperController()
private swiperControllerItem: SwiperController = new SwiperController()
...
...
@@ -49,8 +49,8 @@ export struct MultiPictureDetailPageComponent {
@State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') as number;
@State bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') as number;
@State windowHeight: number = AppStorage.get<number>('windowHeight') as number;
@State currentOffset:number = 0
@State duration:number = 0
@State currentOffset: number = 0
@State duration: number = 0
//watch监听页码回调
onCurrentPageNumUpdated(): void {
...
...
@@ -83,7 +83,6 @@ export struct MultiPictureDetailPageComponent {
}
}
aboutToDisappear() {
}
...
...
@@ -101,10 +100,10 @@ export struct MultiPictureDetailPageComponent {
@Builder
init() {
if (this.contentDetailData.rmhPlatform == 1) {
if(!this.showDownload) {
if
(!this.showDownload) {
Row() {
Row({ space: 8 }) {
if (this.getImgUrl()){
if (this.getImgUrl())
{
Row() {
Stack() {
Image(this.getImgUrl())
...
...
@@ -115,7 +114,7 @@ export struct MultiPictureDetailPageComponent {
.height(36)
.objectFit(ImageFit.Fill)
.interpolation(ImageInterpolation.High)
if
(!StringUtils.isEmpty(this.contentDetailData.rmhInfo?.authIcon))
{
if
(!StringUtils.isEmpty(this.contentDetailData.rmhInfo?.authIcon))
{
Stack() {
Image(this.contentDetailData.rmhInfo?.authIcon)
.width($r('app.float.vp_13'))
...
...
@@ -219,7 +218,7 @@ export struct MultiPictureDetailPageComponent {
.width('100%')
.height(44)
.zIndex(10)
.margin({
top:`${this.topSafeHeight + 12}px`
})
.margin({
top: `${this.topSafeHeight + 12}px`
})
.alignRules({
top: { anchor: "__container__", align: VerticalAlign.Top },
middle: { anchor: "__container__", align: HorizontalAlign.Center }
...
...
@@ -249,12 +248,12 @@ export struct MultiPictureDetailPageComponent {
this.currentOffset = Math.abs(extraInfo.currentOffset)
})
.onTouch((event: TouchEvent) => {
if
(this.duration === 0) {
if
(this.duration === 0) {
this.duration = 500
}
if
(event.type === 1) {
if
(event.type === 1) {
// if(this.currentOffset > px2vp((this.windowHeight - item.height)/2 - 100)) {
if
(this.currentOffset > 160) {
if
(this.currentOffset > 160) {
router.back()
}
}
...
...
@@ -296,9 +295,9 @@ export struct MultiPictureDetailPageComponent {
middle: { anchor: "__container__", align: HorizontalAlign.Center }
})
}
Column(){
if(!this.showDownload) {
Column(){
Column() {
if (!this.showDownload) {
Column() {
Row() {
Scroll(this.scroller) {
Row() {
...
...
@@ -306,7 +305,7 @@ export struct MultiPictureDetailPageComponent {
direction: FlexDirection.Column,
justifyContent: FlexAlign.Start
}) {
if(this.contentDetailData?.photoList?.length) {
if
(this.contentDetailData?.photoList?.length) {
Text() {
Span(`${this.swiperIndex + 1}`)
.fontSize(24)
...
...
@@ -322,7 +321,7 @@ export struct MultiPictureDetailPageComponent {
.fontColor(Color.White)
.margin(4)
}
if(this.contentDetailData.newsTitle) {
if
(this.contentDetailData.newsTitle) {
Text(`${this.contentDetailData.newsTitle}`)
.fontColor(Color.White)
.fontSize(16)
...
...
@@ -336,7 +335,7 @@ export struct MultiPictureDetailPageComponent {
right: 0
})
}
if(this.contentDetailData.photoList?.[this.swiperIndex].picDesc) {
if
(this.contentDetailData.photoList?.[this.swiperIndex].picDesc) {
Text(`${this.contentDetailData.photoList?.[this.swiperIndex].picDesc}`)
.fontColor(Color.White)
.fontSize(14)
...
...
@@ -361,6 +360,7 @@ export struct MultiPictureDetailPageComponent {
.height(px2vp(this.titleHeight))
.align(Alignment.Bottom)
}
OperRowListView({
contentDetailData: this.contentDetailData,
publishCommentModel: this.publishCommentModel,
...
...
@@ -372,14 +372,14 @@ export struct MultiPictureDetailPageComponent {
TransitionEffect.translate({ x: 0, y: `-${this.bottomSafeHeight}px` })
))
}
if(this.showDownload) {
Column(){
if (this.showDownload) {
Column() {
Row() {
Flex({
direction: FlexDirection.Row,
justifyContent: FlexAlign.SpaceBetween
}) {
if(this.contentDetailData?.photoList?.length) {
if
(this.contentDetailData?.photoList?.length) {
Text() {
Span(`${this.swiperIndex + 1}`)
.fontSize(24)
...
...
@@ -396,7 +396,7 @@ export struct MultiPictureDetailPageComponent {
.margin(4)
}
if(this.contentDetailData.photoList?.[this.swiperIndex].picPath) {
if
(this.contentDetailData.photoList?.[this.swiperIndex].picPath) {
ImageDownloadComponent({ url: this.contentDetailData.photoList?.[this.swiperIndex].picPath })
.margin({
top: 8,
...
...
sight_harmony/features/wdComponent/src/main/ets/components/SpacialTopicPageComponent.ets
View file @
d6d71de
...
...
@@ -18,7 +18,7 @@ export struct SpacialTopicPageComponent {
action: Action = {} as Action
@State webUrl: string = '';
@State isPageEnd: boolean = false
@
State contentDetailData: ContentDetailDTO [] = [] as ContentDetailDTO []
@
Provide contentDetailData: ContentDetailDTO = {} as ContentDetailDTO
private h5ReceiveAppData: H5ReceiveDetailBean = { dataSource: '2' } as H5ReceiveDetailBean
private webPrepared = false;
private dataPrepared = false;
...
...
@@ -63,15 +63,15 @@ export struct SpacialTopicPageComponent {
}
let detailBeans = await DetailViewModel.getDetailPageData(relId, contentId, relType)
if (detailBeans && detailBeans.length > 0) {
this.contentDetailData = detailBeans;
this.contentDetailData = detailBeans
[0]
;
// if (this.contentDetailData[0]?.openComment) {
this.publishCommentModel.targetId = String(this.contentDetailData[0]?.newsId || '')
this.publishCommentModel.targetRelId = String(this.contentDetailData[0]?.reLInfo?.relId)
this.publishCommentModel.targetTitle = this.contentDetailData[0]?.newsTitle
this.publishCommentModel.targetRelType = String(this.contentDetailData[0]?.reLInfo?.relType)
this.publishCommentModel.targetRelObjectId = String(this.contentDetailData[0]?.reLInfo?.relObjectId)
this.publishCommentModel.keyArticle = String(this.contentDetailData[0]?.keyArticle)
this.publishCommentModel.targetType = String(this.contentDetailData[0]?.newsType)
this.publishCommentModel.targetId = String(this.contentDetailData?.newsId || '')
this.publishCommentModel.targetRelId = String(this.contentDetailData?.reLInfo?.relId)
this.publishCommentModel.targetTitle = this.contentDetailData?.newsTitle
this.publishCommentModel.targetRelType = String(this.contentDetailData?.reLInfo?.relType)
this.publishCommentModel.targetRelObjectId = String(this.contentDetailData?.reLInfo?.relObjectId)
this.publishCommentModel.keyArticle = String(this.contentDetailData?.keyArticle)
this.publishCommentModel.targetType = String(this.contentDetailData?.newsType)
// }
this.trySendData2H5()
}
...
...
@@ -92,14 +92,14 @@ export struct SpacialTopicPageComponent {
}
.width(CommonConstants.FULL_WIDTH)
.height(CommonConstants.FULL_HEIGHT)
.padding({
bottom:75
})
.padding({
bottom: 75
})
if (!this.isPageEnd) {
detailedSkeleton()
}
//底部交互区
OperRowListView({
contentDetailData: this.contentDetailData[0]
,
contentDetailData: this.contentDetailData
,
publishCommentModel: this.publishCommentModel,
operationButtonList: this.operationButtonList,
})
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardCommon/RmhTitle.ets
View file @
d6d71de
/**
* 这里是人民号动态中的顶部信息:人民号logo,名字,描述,关注等
*/
import {
ContentDetailRequest,
postInteractAccentionOperateParams
} from 'wdDetailPlayApi/src/main/ets/request/ContentDetailRequest';
import { RmhInfoDTO } from 'wdBean'
import { CommonConstants } from 'wdConstant/Index';
import { DateTimeUtils, SPHelper } from 'wdKit';
import { DateTimeUtils, SPHelper
, Logger, ToastUtils
} from 'wdKit';
import { SpConstants } from 'wdConstant/Index'
import { WDRouterPage, WDRouterRule } from 'wdRouter/Index';
import router from '@ohos.router'
import { postBatchAttentionStatusParams } from 'wdBean/Index';
import { MultiPictureDetailViewModel } from '../../viewmodel/MultiPictureDetailViewModel'
@Component
export struct RmhTitle {
@Prop rmhInfo: RmhInfoDTO
@Prop publishTime: string | undefined
/**
* 是否需要隐藏发布时间超过2天的时间展示,默认不隐藏
*/
@Prop hideTime: boolean
/**
* 默认未关注 点击去关注
*/
@State followStatus: string = '0';
async appointReq() {
/**
* 关注号主
*/
async handleAccention() {
// 未登录,跳转登录
const user_id = await SPHelper.default.get(SpConstants.USER_ID, '')
if (!user_id) {
WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
return
}
const params2: postInteractAccentionOperateParams = {
attentionUserType: this.rmhInfo?.userType || '', //被关注用户类型(1 普通用户 2 视频号 3 矩阵号)
attentionUserId: this.rmhInfo?.userId || '', // 被关注用户号主id
attentionCreatorId: this.rmhInfo?.rmhId || '', // 被关注用户号主id
status: this.followStatus == '0' ? 1 : 0,
}
ContentDetailRequest.postInteractAccentionOperate(params2).then(res => {
console.log('rmhTitle-data', JSON.stringify(res.data))
if (this.followStatus == '1') {
this.followStatus = '0'
} else {
this.followStatus = '1'
// 弹窗样式与何时调用待确认
ContentDetailRequest.postPointLevelOperate({ operateType: 6 }).then((res) => {
console.log('关注号主获取积分==', JSON.stringify(res.data))
if (res.data?.showToast) {
ToastUtils.showToast(res.data.ruleName + '+' + res.data.rulePoint + '积分', 1000);
}
})
}
})
}
/**
* 查询当前登录用户是否关注作品号主
* */
async getBatchAttentionStatus() {
try {
const params: postBatchAttentionStatusParams = {
creatorIds: [{ creatorId: this.rmhInfo?.rmhId ?? '' }]
}
let data = await MultiPictureDetailViewModel.getBatchAttentionStatus(params)
this.followStatus = data[0]?.status;
Logger.info(`rmhTitle-followStatus:${JSON.stringify(this.followStatus)}`)
} catch (exception) {
Logger.info(`rmhTitle-followStatus:${JSON.stringify(exception)}`)
}
}
aboutToAppear(): void {
this.getBatchAttentionStatus()
let page = router.getState();
if (page.path.includes('/page/PeopleShipHomePage') || page.path.includes('/pages/MainPage')) {
this.hideTime = true;
...
...
@@ -88,17 +143,20 @@ export struct RmhTitle {
Blank()
if (this.rmhInfo.cnIsAttention) {
Row() {
if (Number(this.followStatus) === 0) {
Image($r('app.media.rmh_follow'))
.width(16)
.height(16)
Text('关注')
}
Text(Number(this.followStatus) === 0 ? '关注' : '已关注')
.fontSize($r('app.float.font_size_13'))
.fontColor($r('app.color.color_ED2800'))
}
.flexShrink(0)
.alignSelf(ItemAlign.Center)
.onClick(() => {
this.
appointReq
();
this.
handleAccention
();
})
}
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardViewAdv/CardAdvBottom.ets
View file @
d6d71de
import { CompDTO } from 'wdBean/Index';
import { Logger } from 'wdKit/Index';
import {
DateTimeUtils,
Logger } from 'wdKit/Index';
import PageModel from '../../viewmodel/PageModel';
/**
...
...
@@ -59,9 +59,9 @@ export struct CardAdvBottom {
break;
}
}
Logger.error("ZZZXXXXX","currentIndex====>"+currentIndex);
if (currentIndex >= 0) {
this.pageModel.compList.deleteItem(currentIndex)
this.pageModel.timestamp = DateTimeUtils.getTimeStamp().toString()
}
}
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardViewAdv/CardAdvTop.ets
View file @
d6d71de
import { CompDTO } from 'wdBean/Index';
import { Logger } from 'wdKit/Index';
import {
DateTimeUtils,
Logger } from 'wdKit/Index';
import PageModel from '../../viewmodel/PageModel';
/**
...
...
@@ -71,10 +71,9 @@ export struct CardAdvTop {
break;
}
}
Logger.error("ZZZXXXXX","currentIndex====>"+currentIndex);
if (currentIndex >= 0) {
this.pageModel.compList.deleteItem(currentIndex)
this.pageModel.timestamp = DateTimeUtils.getTimeStamp().toString()
}
}
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card10Component.ets
View file @
d6d71de
...
...
@@ -48,8 +48,9 @@ export struct Card10Component {
.onClick((event: ClickEvent) => {
ProcessUtils.processPage(this.contentDTO)
})
if (this.contentDTO.objectType == '5') {
Notes({ objectType: 5 }).margin({ left: 5, bottom: 5 })
}
}.alignContent(Alignment.BottomStart)
// 专题列表--后端返回三个,
...
...
@@ -106,7 +107,7 @@ export struct Card10Component {
.fontColor($r('app.color.color_222222'))
.maxLines(2)
.textOverflow({ overflow: TextOverflow.Ellipsis })
.textIndent(item.objectType == '5' ?
40
: 0)
.textIndent(item.objectType == '5' ?
38
: 0)
}.alignContent(Alignment.TopStart)
CardSourceInfo(
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card2Component.ets
View file @
d6d71de
...
...
@@ -40,7 +40,7 @@ export struct Card2Component {
.maxLines(2)
.textOverflow({ overflow: TextOverflow.Ellipsis })// 超出的部分显示省略号。
.align(Alignment.Start)
.textIndent(this.contentDTO.objectType == '5' ?
40
: 0)
.textIndent(this.contentDTO.objectType == '5' ?
35
: 0)
}
.alignContent(Alignment.TopStart)
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card5Component.ets
View file @
d6d71de
...
...
@@ -12,7 +12,7 @@ const TAG: string = 'Card5Component';
@Component
export struct Card5Component {
@State contentDTO: ContentDTO = new ContentDTO();
@
State titleShowPolicy: number | string = 1
@
Prop titleShowPolicy: number | string
@State loadImg: boolean = false;
@State clicked: boolean = false;
...
...
@@ -22,12 +22,13 @@ export struct Card5Component {
build() {
Stack() {
Image(this.loadImg ? this.contentDTO.coverUrl : '')
.backgroundColor(0xf5f5f5)
.width(CommonConstants.FULL_WIDTH)
.autoResize(true)
.borderRadius($r('app.float.image_border_radius'))
// if ((this.titleShowPolicy === 1 || this.contentDTO.titleShow === 1) && this.contentDTO.newsTitle
) {
if (this.titleShowPolicy === 1
) {
Row()
.width(CommonConstants.FULL_WIDTH)
.height(59)
...
...
@@ -41,20 +42,21 @@ export struct Card5Component {
if (this.contentDTO.objectType == '5') {
Notes({ objectType: this.contentDTO.objectType })
}
Text(this.contentDTO.newsTitle)
.width(CommonConstants.FULL_WIDTH)
// .height(CommonConstants.FULL_HEIGHT)
.width(CommonConstants.FULL_WIDTH)
.fontColor(Color.White)
.fontSize($r('app.float.normal_text_size'))
.fontWeight(FontWeight.Bold)
.maxLines(2)
.align(Alignment.TopStart)
.textIndent(this.contentDTO.objectType == '5' ?
40
: 0)
.textIndent(this.contentDTO.objectType == '5' ?
35
: 0)
}.alignContent(Alignment.TopStart)
}
.justifyContent(FlexAlign.Start)
// .height(40)
.margin({ left: 12, bottom: 10, right: 12 })
// }
}
}
.alignContent(Alignment.Bottom)
.width(CommonConstants.FULL_WIDTH)
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card6Component.ets
View file @
d6d71de
...
...
@@ -49,7 +49,7 @@ export struct Card6Component {
.maxLines(3)
.alignSelf(ItemAlign.Start)
.textOverflow({ overflow: TextOverflow.Ellipsis })// 超出的部分显示省略号。
.textIndent(this.contentDTO.newTags?.length < 5 && this.contentDTO.newTags?.length > 2 ?
60
:
.textIndent(this.contentDTO.newTags?.length < 5 && this.contentDTO.newTags?.length > 2 ?
58
:
(this.contentDTO.newTags?.length != 0 && this.contentDTO.newTags?.length) ||
this.contentDTO.objectType == '5' ? 30 : 0)
}.alignContent(Alignment.TopStart)
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardview/Card9Component.ets
View file @
d6d71de
...
...
@@ -43,8 +43,11 @@ export struct Card9Component {
topRight: $r('app.float.image_border_radius')
})
if (this.contentDTO.objectType == '5') {
Notes({ objectType: 5 })
.margin({ left: 5, bottom: 5 })
}
}.alignContent(Alignment.BottomStart)
// 时间线--后端返回三个,
...
...
sight_harmony/features/wdComponent/src/main/ets/components/cardview/notes.ets
View file @
d6d71de
...
...
@@ -13,10 +13,10 @@ export struct Notes {
build() {
if (this.returnTypeTitleFn()) {
Text(this.returnTypeTitleFn())
.fontSize($r('app.float.font_size_1
2
'))
.fontSize($r('app.float.font_size_1
1
'))
.padding({
left: 5,
right: 5,
left: 4,
right: 4,
top: 3,
bottom: 3
})
...
...
sight_harmony/features/wdComponent/src/main/ets/components/compview/ZhCarouselLayout01.ets
View file @
d6d71de
...
...
@@ -214,7 +214,7 @@ struct CarouselLayout01CardView {
.align(Alignment.Bottom)
.maxLines(CompUtils.MAX_LINES_2)
.textOverflow({ overflow: TextOverflow.Ellipsis })
.textIndent(this.item.objectType == '5' ?
40
: 0)
.textIndent(this.item.objectType == '5' ?
35
: 0)
}
// .height(39)
.padding({
...
...
sight_harmony/features/wdComponent/src/main/ets/components/compview/ZhSingleRow03.ets
View file @
d6d71de
...
...
@@ -40,6 +40,7 @@ export struct ZhSingleRow03 {
// 请求所有预约状态
async getReserveState() {
this.reservedIds = []
const reserveBean: reserveReqItem[] = this.compDTO.operDataList.map((item: ContentDTO) => {
const reqItem: reserveReqItem = {
liveId: item.objectId.toString(),
...
...
sight_harmony/features/wdComponent/src/main/ets/components/compview/ZhSingleRow06.ets
View file @
d6d71de
import { commentInfo, CompDTO, ContentDTO, Params } from 'wdBean';
import { commentInfo, CompDTO, ContentDTO, Params
, batchLikeAndCollectResult
} from 'wdBean';
import { WDRouterPage, WDRouterRule } from 'wdRouter/Index';
import { DateTimeUtils, SPHelper } from 'wdKit/Index';
import { DateTimeUtils, SPHelper
, Logger
} from 'wdKit/Index';
import { ProcessUtils } from 'wdRouter';
import { SpConstants } from 'wdConstant/Index'
import {
batchLikeAndCollectParams,
} from 'wdDetailPlayApi/src/main/ets/request/ContentDetailRequest';
import { MultiPictureDetailViewModel } from '../../viewmodel/MultiPictureDetailViewModel';
import commentViewModel from '../../components/comment/viewmodel/CommentViewModel';
import { commentItemModel } from '../../components/comment/model/CommentModel'
/**
* 精选评论卡
* Zh_Single_Row-06
*/
const TAG = 'Zh_Single_Row-06'
// interface commentInfo {
// commentTitle: string,
// newsTitle: string,
// userName: string,
// userHeaderUrl: string,
// publishTime: number
// }
// interface operDataListItem {
// commentInfo: commentInfo
// }
// interface CommentData{
// operDataList: Array<operDataListItem>
// }
@Entry
@Component
export struct ZhSingleRow06 {
@State compDTO: CompDTO = {} as CompDTO
@State likeBl: boolean = false;
@State newsStatusOfUser: batchLikeAndCollectResult = {
likeStatus: '0'
} as batchLikeAndCollectResult // 点赞、收藏状态
aboutToAppear(): void {
this.getInteractDataStatus()
}
async likeAction() {
/**
* 点赞、取消点赞
*/
async toggleLikeStatus() {
// 未登录,跳转登录
const user_id = await SPHelper.default.get(SpConstants.USER_ID, '')
if (!user_id) {
WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
return
}
if (this.likeBl) {
this.likeBl = false;
} else {
this.likeBl = true;
const commentInfo = this.compDTO.operDataList[0]?.commentInfo as commentInfo;
// commentLikeChange(this.item)
this.newsStatusOfUser.likeStatus = this.newsStatusOfUser.likeStatus === '1' ? '0' : '1';
const commentLikeParam = {
targetId: commentInfo.newsId || '',
id: commentInfo.commentId,
targetType: commentInfo?.objectType || '',
api_status: this.newsStatusOfUser?.likeStatus == '1' ? false : true
} as commentItemModel;
commentViewModel.commentLike(commentLikeParam).then(() => {
}).catch(() => {
this.newsStatusOfUser.likeStatus = this.newsStatusOfUser.likeStatus === '1' ? '0' : '1';
})
}
// 已登录->查询用户对作品点赞、收藏状态
async getInteractDataStatus() {
// 未登录,跳转登录
const user_id = await SPHelper.default.get(SpConstants.USER_ID, '')
if (!user_id) {
return
}
try {
const params: batchLikeAndCollectParams = {
contentList: [
{
contentId: this.compDTO.operDataList[0]?.commentInfo?.newsId + '',
contentType: this.compDTO.operDataList[0]?.commentInfo?.newsType + '',
}
]
}
let data = await MultiPictureDetailViewModel.getInteractDataStatus(params)
Logger.info(TAG, 'ZhSingleRow06-data', JSON.stringify(data))
this.newsStatusOfUser = data[0];
Logger.info(TAG, `ZhSingleRow06-newsStatusOfUser:${JSON.stringify(this.newsStatusOfUser)}`)
} catch (exception) {
console.error(TAG, JSON.stringify(exception))
}
}
...
...
@@ -95,7 +129,7 @@ export struct ZhSingleRow06 {
.fontColor(0x999999)
Row(){
Image(
this.likeBl
? $r('app.media.icon_like_select') : $r('app.media.icon_like'))
Image(
Number(this.newsStatusOfUser?.likeStatus) == 1
? $r('app.media.icon_like_select') : $r('app.media.icon_like'))
.width(16)
.height(16)
.margin({right: 3})
...
...
@@ -103,9 +137,11 @@ export struct ZhSingleRow06 {
Text('点赞')
.fontSize(15)
.fontColor(0x999999)
.onClick(() => {
})
}
.onClick(() => {
this.
likeAction
()
this.
toggleLikeStatus
()
})
}
.justifyContent(FlexAlign.SpaceBetween)
...
...
sight_harmony/features/wdComponent/src/main/ets/components/lottie/LottieView.ets
View file @
d6d71de
import lottie, { AnimationSegment } from '@ohos/lottie';
import lottie, { Animation
Item, Animation
Segment } from '@ohos/lottie';
@Component
export struct LottieView {
@Prop name: string = ''
@Prop path: string = ''
@Prop lottieWidth?: number = 30
@Prop lottieHeight?: number = 30
@Prop autoplay?: boolean = false
@Prop loop?: boolean = false
@Prop name: string
@Prop path: string
@Prop lottieWidth: number = 30
@Prop lottieHeight: number = 30
@Prop autoplay: boolean = false
@Prop loop: boolean = false
@Prop initialSegment?: AnimationSegment = [0, 120] // 动画起始帧
@Prop onReady: (animateItem:
ESObject
) => void // 动画初始化完成事件
@Prop onReady: (animateItem:
AnimationItem | null
) => void // 动画初始化完成事件
@Prop onComplete?: () => void // 动画完成事件
private politeChickyController: CanvasRenderingContext2D = new CanvasRenderingContext2D(); // CanvasRenderingContext2D对象
private animateItem: ESObject = null; // 初始化loadAnimation接口的返回对象
private politeChickyController: CanvasRenderingContext2D =
new CanvasRenderingContext2D(); // CanvasRenderingContext2D对象
private animateItem: AnimationItem | null = null; // 初始化loadAnimation接口的返回对象
// 页面隐藏销毁动画
onPageHide(): void {
this.animateItem.destroy()
this.animateItem
?
.destroy()
if (this.onComplete) {
this.animateItem.removeEventListener('complete', this.onComplete)
this.animateItem
?
.removeEventListener('complete', this.onComplete)
}
}
...
...
@@ -44,7 +45,7 @@ export struct LottieView {
// initialSegment: this.initialSegment
})
if (this.initialSegment) {
this.animateItem.
initialSegment
= this.initialSegment
this.animateItem.
segments
= this.initialSegment
}
if (this.onComplete) {
...
...
@@ -57,7 +58,7 @@ export struct LottieView {
Stack({ alignContent: Alignment.TopStart }) {
Canvas(this.politeChickyController)
.width(this.lottieWidth)
.height(this.lottieHeight)
.height(this.lottieHeight)
// .backgroundColor(Color.Black)
.onReady(() => {
this.loadAnimation();
if (this.onReady) {
...
...
@@ -65,7 +66,7 @@ export struct LottieView {
}
})
.onClick(() => {
this.animateItem.play()
this.animateItem
?
.play()
})
}
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/mine/MinePagePersonFunctionUI.ets
View file @
d6d71de
...
...
@@ -42,7 +42,8 @@ export default struct MinePagePersonFunctionUI {
WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
return
}else {
WDRouterRule.jumpWithPage(WDRouterPage.mineHomePage)
let params: Record<string, string> = {'comment': "1"};
WDRouterRule.jumpWithPage(WDRouterPage.mineHomePage,params)
}
break;
}
...
...
sight_harmony/features/wdComponent/src/main/ets/components/mine/follow/FollowChildComponent.ets
View file @
d6d71de
import { SpConstants } from 'wdConstant/Index'
import {
DateTimeUtils,
SPHelper, StringUtils, ToastUtils, UserDataLocal } from 'wdKit/Index'
import { SPHelper, StringUtils, ToastUtils, UserDataLocal } from 'wdKit/Index'
import { HttpUtils } from 'wdNetwork/Index'
import { WDRouterRule, WDRouterPage } from 'wdRouter/Index'
import MinePageDatasModel from '../../../model/MinePageDatasModel'
...
...
@@ -116,9 +116,14 @@ export struct FollowChildComponent{
}.height('202lpx')
.justifyContent(FlexAlign.Start)
Text().backgroundColor($r('app.color.color_EDEDED'))
// Text().backgroundColor($r('app.color.color_EDEDED'))
// .width('100%')
// .height('2lpx')
Divider()
.width('100%')
.height('2lpx')
.color($r('app.color.color_F5F5F5'))
.strokeWidth('1lpx')
}.width('100%')
}else {
...
...
@@ -230,9 +235,15 @@ export struct FollowChildComponent{
}.height('146lpx')
.justifyContent(FlexAlign.Center)
Text().backgroundColor($r('app.color.color_EDEDED'))
// Text().backgroundColor($r('app.color.color_EDEDED'))
// .width('100%')
// .height('2lpx')
Divider()
.width('100%')
.height('2lpx')
.color($r('app.color.color_F5F5F5'))
.strokeWidth('1lpx')
}.width('100%')
}
...
...
@@ -255,12 +266,6 @@ export struct FollowChildComponent{
this.data.status = this.data.status ==="0"?"1":"0"
UserDataLocal.setUserFollowOperation(this.data.creatorId+","+this.data.status)
// if(this.data.status === "1"){
// UserDataLocal.setUserFollowOperation(DateTimeUtils.getTimeStamp()+"")
// }else{
// UserDataLocal.setUserFollowOperation(DateTimeUtils.getTimeStamp()+","+this.data.creatorId)
// }
}
}
})
...
...
sight_harmony/features/wdComponent/src/main/ets/components/page/BottomNavigationComponent.ets
View file @
d6d71de
...
...
@@ -85,6 +85,7 @@ export struct BottomNavigationComponent {
VideoChannelPage({
topNavList: navItem.topNavChannelList.filter(item => item.channelId != 2073),
_currentNavIndex: $currentNavIndex,
autoRefresh: this.autoRefresh
})
} else {
TopNavigationComponent({
...
...
sight_harmony/features/wdComponent/src/main/ets/components/page/TopNavigationComponent.ets
View file @
d6d71de
import { BottomNavDTO, CompDTO, TopNavDTO } from 'wdBean';
import { SpConstants } from 'wdConstant';
import { DisplayUtils, LazyDataSource, Logger,
SPHelper, NetworkUtil, ToastUtils
} from 'wdKit';
import { DisplayUtils, LazyDataSource, Logger,
NetworkUtil, SPHelper, ToastUtils
} from 'wdKit';
import { ProcessUtils, WDRouterPage, WDRouterRule } from 'wdRouter';
import { PageComponent } from './PageComponent';
import { ChannelSubscriptionLayout } from './ChannelSubscriptionLayout';
...
...
sight_harmony/features/wdComponent/src/main/ets/components/page/VideoChannelPage.ets
View file @
d6d71de
...
...
@@ -13,6 +13,8 @@ export struct VideoChannelPage {
readonly MAX_LINE: number = 1;
private groupId: number = 0
private swiperController: SwiperController = new SwiperController()
// 自动刷新触发(双击tab自动刷新)
@Prop autoRefresh: number = 0
@Prop topNavList: TopNavDTO[]
@Link _currentNavIndex?: number;
@Consume barBackgroundColor: Color
...
...
@@ -91,8 +93,12 @@ export struct VideoChannelPage {
right: $r('app.float.top_tab_item_padding_horizontal'),
})
.onClick(() => {
if (this.currentTopNavSelectedIndex === index) {
this.autoRefresh++
}
this.currentTopNavSelectedIndex = index
this.swiperController.changeIndex(index, true)
})
}, (item: TopNavDTO) => item.channelId + '')
}
...
...
@@ -113,6 +119,7 @@ export struct VideoChannelPage {
groupId: this.groupId + '',
pageId: item.pageId + '',
channelId: item.channelId + '',
autoRefresh: this.autoRefresh,
})
} else {
// 直播
...
...
@@ -121,7 +128,7 @@ export struct VideoChannelPage {
navIndex: index,
pageId: item.pageId + '',
channelId: item.channelId + '',
autoRefresh: this.autoRefresh
2Page
autoRefresh: this.autoRefresh
}).margin({ top: 40 })
}
}, (item: TopNavDTO) => item.channelId + '')
...
...
sight_harmony/features/wdComponent/src/main/ets/components/search/SearchResultContentComponent.ets
View file @
d6d71de
import { ContentDTO,
import {
ContentDTO,
contentListParams,
FullColumnImgUrlDTO, InteractDataDTO,
FullColumnImgUrlDTO,
InteractDataDTO,
Params,
RmhInfoDTO, VideoInfoDTO } from 'wdBean/Index'
RmhInfoDTO,
VideoInfoDTO
} from 'wdBean/Index'
import { LiveInfoDTO } from 'wdBean/src/main/ets/bean/detail/LiveInfoDTO'
import { VoiceInfoDTO } from 'wdBean/src/main/ets/bean/detail/VoiceInfoDTO'
import { LazyDataSource, Logger, StringUtils, ToastUtils } from 'wdKit/Index'
import { LazyDataSource, Logger, StringUtils, ToastUtils
, UserDataLocal
} from 'wdKit/Index'
import { WDRouterPage, WDRouterRule } from 'wdRouter/Index'
import MinePageDatasModel from '../../model/MinePageDatasModel'
import SearcherAboutDataModel from '../../model/SearcherAboutDataModel'
import { CreatorDetailRequestItem } from '../../viewmodel/CreatorDetailRequestItem'
import { FollowListDetailItem } from '../../viewmodel/FollowListDetailItem'
import { FollowListStatusRequestItem } from '../../viewmodel/FollowListStatusRequestItem'
import { QueryListIsFollowedItem } from '../../viewmodel/QueryListIsFollowedItem'
import { SearchResultContentData } from '../../viewmodel/SearchResultContentData'
import { SearchResultContentItem, SearchRmhDescription } from '../../viewmodel/SearchResultContentItem'
import { CardParser } from '../CardParser'
import { FollowChildComponent } from '../mine/follow/FollowChildComponent'
import { ListHasNoMoreDataUI } from '../reusable/ListHasNoMoreDataUI'
import { ActivityItemComponent } from './ActivityItemComponent'
import { SearchCreatorComponent } from './SearchCreatorComponent'
...
...
@@ -19,27 +28,28 @@ import { SearchCreatorComponent } from './SearchCreatorComponent'
const TAG = "SearchResultContentComponent"
@Component
export struct SearchResultContentComponent{
@State keywords:string = ""
@State searchType:string = ""
export struct SearchResultContentComponent {
@State keywords: string = ""
@State searchType: string = ""
@State data: LazyDataSource<ContentDTO> = new LazyDataSource();
@State data_rmh: SearchRmhDescription[] = []
@State count:number = -1;
@State isLoading:boolean = false
@State hasMore:boolean = true
curPageNum:number = 1;
@State count: number = -1;
@State isLoading: boolean = false
@State hasMore: boolean = true
curPageNum: number = 1;
@State bean: FollowListDetailItem = new FollowListDetailItem("", "", "", "", "", "", "", "", "", -1, -1, "")
scroller: Scroller = new Scroller()
aboutToAppear(): void {
if
(this.searchType == "全部")
{
if
(this.searchType == "全部")
{
this.searchType = "all"
}
else if(this.searchType == "精选")
{
}
else if (this.searchType == "精选")
{
this.searchType = "cms"
}
else if(this.searchType == "人民号")
{
}
else if (this.searchType == "人民号")
{
this.searchType = "rmh"
}
else if(this.searchType == "视频")
{
}
else if (this.searchType == "视频")
{
this.searchType = "video"
}
else if(this.searchType == "活动")
{
}
else if (this.searchType == "活动")
{
this.searchType = "activity"
}
...
...
@@ -47,93 +57,135 @@ export struct SearchResultContentComponent{
this.getNewSearchResultData()
}
getNewSearchResultData(){
getNewSearchResultData()
{
this.isLoading = true
if(this.hasMore){
SearcherAboutDataModel.getSearchResultListData("20",`${this.curPageNum}`,this.searchType,this.keywords,getContext(this)).then((value)=>{
if (!this.data || value.list.length == 0){
if (this.hasMore) {
SearcherAboutDataModel.getSearchResultListData("15", `${this.curPageNum}`, this.searchType, this.keywords,
getContext(this)).then((value) => {
if (!this.data || value.list.length == 0) {
this.hasMore = false
this.isLoading = false
this.count = this.count===-1?0:this.count
}else{
if(value.list[0].dataList!=null){
this.count = this.count === -1 ? 0 : this.count
} else {
if (value.list[0].dataList != null) {
let data_temp: SearchRmhDescription[] = []
data_temp = value.list[0].dataList
//TODO 查询创作者详情接口
let request = new CreatorDetailRequestItem()
data_temp.forEach((data)
=>
{
data_temp.forEach((data)
=>
{
request.creatorIdList.push(data.creatorId)
})
SearcherAboutDataModel.getCreatorDetailListData(request).then((value)=>{
if(value!=null && value.length>0){
data_temp.forEach((data)=>{
value.forEach((item)=>{
if(data.creatorId == item.creatorId){
SearcherAboutDataModel.getCreatorDetailListData(request).then((value) => {
if (value != null && value.length > 0) {
data_temp.forEach((data) => {
value.forEach((item) => {
if (data.creatorId == item.creatorId) {
data.headerPhotoUrl = item.headPhotoUrl.split("?")[0]
data.mainControl = item.mainControl+""
data.mainControl = item.mainControl + ""
if(data_temp.length === 1){
this.bean.headPhotoUrl = item.headPhotoUrl.split("?")[0]
this.bean.cnUserName = item.userName
this.bean.creatorId = item.creatorId
this.bean.authIcon = item.authIcon
if (value[0].fansNum > 10000) {
let temp = (value[0].fansNum / 10000) + ""
let index = temp.indexOf('.')
if (index != -1) {
temp = temp.substring(0, index + 2)
} else {
temp = temp
}
this.bean.cnFansNum = temp + "万"
} else {
this.bean.cnFansNum = item.fansNum + ""
}
this.bean.introduction = item.introduction
this.bean.mainControl = item.mainControl
this.bean.banControl = item.banControl
this.bean.cnUserType = item.userType
this.bean.cnUserId = item.userId
}
}
})
})
}
data_temp.forEach((data)
=>
{
data_temp.forEach((data)
=>
{
this.data_rmh.push(data)
})
}).catch((err:Error)=>{
console.log(TAG,JSON.stringify(err))
//只有一条创作者,获取 创作者信息
if (this.data_rmh.length === 1) {
if(StringUtils.isNotEmpty(UserDataLocal.getUserId())){
//查询是否被关注
let status = new FollowListStatusRequestItem()
status.creatorIds.push(new QueryListIsFollowedItem(this.data_rmh[0].creatorId))
MinePageDatasModel.getFollowListStatusData(status, getContext(this)).then((newValue) => {
this.bean.status = newValue[0].status
}).catch((err: Error) => {
console.log(TAG, "请求失败")
})
}else{
this.bean.status = ""
}
}
}).catch((err: Error) => {
console.log(TAG, JSON.stringify(err))
})
}
this.getInteractData(value)
}
}).catch((err:Error)=>{
console.log(TAG,JSON.stringify(err))
}).catch((err: Error) => {
console.log(TAG, JSON.stringify(err))
this.isLoading = false
this.count = this.count
===-1?0:
this.count
this.count = this.count
=== -1 ? 0 :
this.count
})
}
}
getInteractData(resultData:SearchResultContentData){
if(resultData.list[0].dataList!=null){
resultData.list.splice(0,1)
getInteractData(resultData: SearchResultContentData) {
if (resultData.list[0].dataList != null) {
resultData.list.splice(0, 1)
}
let data
: contentListParams = {
let data: contentListParams = {
contentList: []
}
resultData.list.forEach((item)
=>
{
resultData.list.forEach((item)
=>
{
data.contentList.push({
contentId: item.data.id + '',
contentType: Number.parseInt(item.data.type)
})
})
SearcherAboutDataModel.getInteractListData(data,getContext(this)).then((newValue)=>{
newValue.forEach((item)=>{
resultData.list.forEach((data)=>{
SearcherAboutDataModel.getInteractListData(data, getContext(this)).then((newValue) => {
newValue.forEach((item) => {
resultData.list.forEach((data) => {
if (item.contentId == data.data.id) {
data.data.collectNum = item.collectNum+""
data.data.commentNum = item.commentNum+""
data.data.likeNum = item.likeNum+""
data.data.readNum = item.readNum+""
data.data.shareNum = item.shareNum+""
data.data.collectNum = item.collectNum + ""
data.data.commentNum = item.commentNum + ""
data.data.likeNum = item.likeNum + ""
data.data.readNum = item.readNum + ""
data.data.shareNum = item.shareNum + ""
}
})
})
resultData.list.forEach((value)=>{
let photos:FullColumnImgUrlDTO[] = []
if(value.data.appStyle === 4){
value.data.appStyleImages.split("&&").forEach((value)=>{
photos.push({url:value} as FullColumnImgUrlDTO)
resultData.list.forEach((value) => {
let photos: FullColumnImgUrlDTO[] = []
if (value.data.appStyle === 4) {
value.data.appStyleImages.split("&&").forEach((value) => {
photos.push({ url: value } as FullColumnImgUrlDTO)
})
}
let contentDTO = this.dataTransform(value,photos);
if(contentDTO.appStyle != "13"){
let contentDTO = this.dataTransform(value, photos);
if (contentDTO.appStyle != "13") {
this.data.push(contentDTO)
}
...
...
@@ -142,74 +194,128 @@ export struct SearchResultContentComponent{
this.count = this.data.totalCount()
if (this.data.totalCount() < resultData.totalCount) {
this.curPageNum++
}else {
}
else {
this.hasMore = false
}
this.isLoading = false
if
(this.count === 0 && resultData.list.length > 0)
{
if
(this.count === 0 && resultData.list.length > 0)
{
this.count = -1
if
(!this.isLoading)
{
if
(!this.isLoading)
{
//加载分页数据
this.getNewSearchResultData()
}
}else if(this.count <= 20 && resultData.list.length > 0){
if(!this.isLoading){
} else if (this.count <= 10 && resultData.list.length > 0) {
if (!this.isLoading) {
//加载分页数据
this.getNewSearchResultData()
}
}
}).catch((err:Error)=>{
console.log(TAG,"请求失败")
}).catch((err: Error) => {
console.log(TAG, "请求失败")
this.isLoading = false
this.count = this.count
===-1?0:
this.count
this.count = this.count
=== -1 ? 0 :
this.count
})
}
build() {
Column() {
if(this.count == 0){
ListHasNoMoreDataUI({style:2})
if (this.count == 0) {
ListHasNoMoreDataUI({ style: 2 })
} else {
List() {
if (this.data_rmh != null && this.data_rmh.length > 0){
if (this.data_rmh.length === 1){
ListItem(){
FollowChildComponent({ data: this.bean, type: 1 })
}.padding({left:"31lpx",right:"31lpx"})
}else{
ListItem(){
Column(){
if (this.data_rmh!=null && this.data_rmh.length > 0) {
//List
List({space:'8lpx'}) {
ForEach(this.data_rmh, (item: SearchRmhDescription, index: number) => {
this.SearchListUI()
}
}
}
}
LazyForEach(this.data, (item: ContentDTO, index: number) => {
ListItem() {
SearchCreatorComponent({item:item})
}.onClick(()=>{
//TODO 跳转
Column() {
if (this.searchType == "activity") {
ActivityItemComponent({ contentDTO: item })
} else {
CardParser({ contentDTO: item })
}
if (index != this.data.totalCount() - 1) {
Divider()
.width('100%')
.height('1lpx')
.color($r('app.color.color_F5F5F5'))
.strokeWidth('1lpx')
}
}
}
}, (item: ContentDTO, index: number) => index.toString())
//没有更多数据 显示提示
if (!this.hasMore && this.data.totalCount() > 0) {
ListItem() {
ListHasNoMoreDataUI()
}
}
}.cachedCount(10)
.edgeEffect(EdgeEffect.None)
.scrollBar(BarState.Off)
.onReachEnd(() => {
console.log(TAG, "触底了");
if (!this.isLoading) {
//加载分页数据
this.getNewSearchResultData()
}
})
}
}
.backgroundColor($r('app.color.white'))
.width('100%')
}
@Builder
multiCreatorUI() {
Column() {
List() {
ForEach(this.data_rmh, (item: SearchRmhDescription, index: number) => {
ListItem() {
SearchCreatorComponent({ item: item })
}
.width('150lpx')
.height('100%')
})
ListItem(){
Column(){
ListItem() {
Column() {
Text("查看更多")
.width('19lpx')
.fontSize('19lpx')
.fontWeight('400lpx')
.lineHeight('27lpx')
.fontColor($r('app.color.color_9E9E9E'))
}.borderRadius({topLeft:'4lpx',bottomLeft:'4lpx'})
}
.borderRadius({ topLeft: '4lpx', bottomLeft: '4lpx' })
.height('180lpx')
.width('77lpx')
.backgroundColor($r('app.color.color_EDEDED'))
.justifyContent(FlexAlign.Center)
}.height('100%')
.margin({left:'23lpx'})
.onClick(()=>{
.margin({ left: '23lpx' })
.onClick(() => {
let params: Params = {
pageID: this.keywords
}
WDRouterRule.jumpWithPage(WDRouterPage.searchCreatorPage,
params)
WDRouterRule.jumpWithPage(WDRouterPage.searchCreatorPage,
params)
})
}
.cachedCount(6)
.edgeEffect(EdgeEffect.Spring
)
.edgeEffect(EdgeEffect.None
)
.scrollBar(BarState.Off)
.listDirection(Axis.Horizontal)
.width('100%')
...
...
@@ -221,50 +327,54 @@ export struct SearchResultContentComponent{
.color($r('app.color.color_F5F5F5'))
.strokeWidth('12lpx')
}
//List
List({ space: '6lpx' }) {
LazyForEach(this.data, (item: ContentDTO, index: number) => {
ListItem() {
Column(){
if(this.searchType == "activity"){
ActivityItemComponent({contentDTO:item})
}else{
CardParser({contentDTO:item})
}
if(index != this.data.totalCount()-1 ){
Divider()
.width('100%')
.height('1lpx')
.color($r('app.color.color_F5F5F5'))
.strokeWidth('1lpx')
}
}
@Builder
SearchListUI() {
List({space:'8lpx'}) {
ForEach(this.data_rmh, (item: SearchRmhDescription, index: number) => {
ListItem() {
SearchCreatorComponent({item:item})
}
}, (item: ContentDTO, index: number) => index.toString())
.width('150lpx')
.height('100%')
})
//没有更多数据 显示提示
if(!this.hasMore && this.data.totalCount() > 0){
ListItem(){
ListHasNoMoreDataUI()
Column(){
Text("查看更多")
.width('19lpx')
.fontSize('19lpx')
.fontWeight('400lpx')
.lineHeight('27lpx')
.fontColor($r('app.color.color_9E9E9E'))
}.borderRadius({topLeft:'4lpx',bottomLeft:'4lpx'})
.height('180lpx')
.width('77lpx')
.backgroundColor($r('app.color.color_EDEDED'))
.justifyContent(FlexAlign.Center)
}.height('100%')
.margin({left:'23lpx'})
.onClick(()=>{
let params: Params = {
pageID: this.keywords
}
WDRouterRule.jumpWithPage(WDRouterPage.searchCreatorPage,params)
})
}
}
.cachedCount(6)
.cachedCount(6)
.edgeEffect(EdgeEffect.None)
.scrollBar(BarState.Off)
.layoutWeight(1)
.onReachEnd(()=>{
console.log(TAG,"触底了");
if(!this.isLoading){
//加载分页数据
this.getNewSearchResultData()
}
})
}.layoutWeight(1)
}
}
.backgroundColor($r('app.color.white'))
.layoutWeight(1)
.listDirection(Axis.Horizontal)
.width('100%')
.height('219lpx')
Divider()
.width('100%')
.height('12lpx')
.color($r('app.color.color_F5F5F5'))
.strokeWidth('12lpx')
}
private dataTransform(value: SearchResultContentItem, photos: FullColumnImgUrlDTO[]): ContentDTO {
...
...
sight_harmony/features/wdComponent/src/main/ets/components/view/LikeComponent.ets
View file @
d6d71de
import { Logger } from 'wdKit/Index'
import { Logger
, NumberFormatterUtils
} from 'wdKit/Index'
import { LikeViewModel } from '../../viewmodel/LikeViewModel'
import { SPHelper } from 'wdKit';
import { WDRouterPage, WDRouterRule } from 'wdRouter/Index';
import { SpConstants } from 'wdConstant/Index';
import { ContentDetailDTO } from 'wdBean/Index';
const TAG = 'LikeComponent';
interface ILikeStyleResp {
url: Resource;
name: string;
}
@Component
export struct LikeComponent {
@Consume contentDetailData: ContentDetailDTO
@State likesStyle: number = this.contentDetailData.likesStyle // 赞样式 1红心(点赞) 2大拇指(祈福) 3蜡烛(默哀) 4置空
@State likeStatus: boolean = false
viewModel: LikeViewModel = new LikeViewModel()
@Prop data: Record<string, string>
enableBtn = true
componentType : number = 1 //1: 底部栏目样式 2: 新闻页中间位置样式 3:动态Tab内容下的互动入口
styleType : number = 1 //1: 白色背景(图文底部栏) 2: 黑色背景(图集底部栏)
componentType: number = 1 //1: 底部栏目样式 2: 新闻页中间位置样式 3:动态Tab内容下的互动入口
styleType: number = 1 //1: 白色背景(图文底部栏) 2: 黑色背景(图集底部栏)
@State likeCount: number = 0 //点赞数
//上层传值 样例
...
...
@@ -37,14 +45,57 @@ export struct LikeComponent {
}
build() {
if (this.componentType == 2){
if (this.componentType == 2) {
//2: 新闻页中间位置样式
Column() {
this.likeCompStyle2()
} else if (this.componentType == 3) {
this.likeCompStyle3()
} else if (this.componentType == 4) {
// 直播,点赞按钮底测有灰色圆角背景+右上点赞数量
this.likeCompStyle4()
} else {
//1: 底部栏目样式 默认样式
this.likeCompStyle1()
}
}
Button(){
/**
* 将点赞样式转换为icon
*/
transLikeStyle(): ILikeStyleResp {
if (this.likesStyle === 1) {
return {
url: this.likeStatus ? $r(`app.media.ic_like_check`) :
this.styleType == 1 ? $r('app.media.icon_like_default') : $r(`app.media.ic_like_uncheck`),
name: '赞'
}
} else if (this.likesStyle === 2) {
return {
url: this.likeStatus ? $r(`app.media.ic_thub_check`) : $r(`app.media.ic_thub_uncheck`),
name: '祈祷'
}
} else if (this.likesStyle === 3) {
return {
url: this.likeStatus ? $r(`app.media.ic_candle_check`) :
$r(`app.media.ic_candle_uncheck`),
name: '默哀'
}
}
return {
url: this.likeStatus ? $r(`app.media.ic_like_check`) :
this.styleType == 1 ? $r('app.media.icon_like_default') : $r(`app.media.ic_like_uncheck`),
name: '点赞'
}
}
Row(){
Image(this.likeStatus ? $r('app.media.icon_like_select') : $r('app.media.icon_like_default'))
@Builder
likeCompStyle2() {
//2: 新闻页中间位置样式
Column() {
Button() {
Row() {
Image(this.transLikeStyle().url)
.width(20)
.height(20)
Text(this.likeCount.toString())
...
...
@@ -68,21 +119,23 @@ export struct LikeComponent {
.borderColor('#EDEDED')
.borderRadius(20)
.borderWidth(1)
.onClick(()=>
{
.onClick(() =>
{
this.clickButtonEvent()
})
}
.width(154)
.height(40)
}else if(this.componentType == 3){
Row(){
Image(this.likeStatus ? $r('app.media.icon_like_select') : this.styleType == 1 ? $r('app.media.CarderInteraction_like') :
$r('app.media.icon_like_default_white'))
}
@Builder
likeCompStyle3() {
Row() {
Image(this.transLikeStyle().url)
.width(18)
.height(18)
// Text(this.likeCount >0?this.likeCount.toString(): '点赞')
Text(this.likeStatus ?'已赞': '点赞')
.margin({left:4})
// Text(this.likeStatus ? '已赞' : '点赞')
Text(this.likeCount > 0 ? this.likeCount.toString() : '点赞')
.margin({ left: 4 })
.fontSize(14)
.fontColor(this.likeStatus ? '#ED2800' : '#666666')
}
...
...
@@ -90,12 +143,14 @@ export struct LikeComponent {
.onClick(() => {
this.clickButtonEvent()
})
}else{
}
@Builder
likeCompStyle1() {
//1: 底部栏目样式 默认样式
Column() {
// Image(this.likeStatus ? $r('app.media.icon_like_select') : $r('app.media.icon_like_default'))
Image(this.likeStatus ? $r('app.media.icon_like_select') : this.styleType == 1 ? $r('app.media.icon_like_default') :
$r('app.media.icon_like_default_white'))
Image(this.transLikeStyle().url)
.width(24)
.height(24)
.onClick(() => {
...
...
@@ -104,39 +159,88 @@ export struct LikeComponent {
}.width(24).height(24)
}
@Builder
likeCompStyle4() {
Stack({ alignContent: Alignment.Bottom }) {
Column() {
Image(this.transLikeStyle().url)
.width(24)
.height(24)
.onClick(() => {
this.clickButtonEvent()
})
}
.justifyContent(FlexAlign.Center)
.width(36)
.height(36)
.borderRadius(18)
.backgroundColor('#FFF5F5F5')
async clickButtonEvent(){
Row() {
Text(NumberFormatterUtils.formatNumberWithWan(this.likeCount || ''))
.fontSize(8)
.fontColor(Color.White)
.padding({ left: 4, right: 2 })
}
.height(12)
.alignItems(VerticalAlign.Center)
.position({ x: '100%', })
.markAnchor({ x: '100%' })
.backgroundImage($r('app.media.ic_like_back'))
.backgroundImageSize(ImageSize.Auto)
.visibility(this.likeCount > 0 ? Visibility.Visible : Visibility.Hidden)
}
.width(36)
.height(42)
}
async clickButtonEvent() {
console.log(TAG, '点赞点击')
// 未登录,跳转登录
const user_id = await SPHelper.default.get(SpConstants.USER_ID, '')
if (!user_id) {
console.log(TAG, '点赞点击,未登录')
WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
return
}
if (!this.enableBtn) {
return
}
if (this.likeStatus) {
//1
this.executeLike('0')
} else {
//0
this.executeLike('1')
}
// if (!this.enableBtn) {
// return
// }
this.executeLike(this.likeStatus ? '0' : '1')
}
executeLike(status: string) {
console.log(TAG, '点赞接口调用', status)
this.data['status'] = status
this.data['contentId'] = this.contentDetailData?.newsId + ''
this.data['contentType'] = this.contentDetailData?.newsType + ''
this.viewModel.executeLike2(this.data).then(() => {
console.log(TAG, '点赞接口调用成功')
// 直播点赞一直增加
if (this.contentDetailData.liveInfo) {
this.likeStatus = true
this.likeCount++
} else {
this.likeStatus = !this.likeStatus
//点赞和取消点赞成功后更新点赞数
if(this.likeStatus){
this.likeCount ++
}else {
this.likeCount --
if (this.likeStatus) {
this.likeCount++
} else {
this.likeCount--
}
}
if (this.likeCount <= 0) {
this.likeCount = 0
}
this.enableBtn = true
}).catch(() => {
this.enableBtn = true
...
...
@@ -147,7 +251,7 @@ export struct LikeComponent {
this.viewModel.getLikeStatus(this.data).then((data) => {
if (data && data['data'].length && data['data'][0]['likeStatus']) {
this.likeStatus = data['data'][0]['likeStatus']
}else {
}
else {
this.likeStatus = false
}
}).catch(() => {
...
...
@@ -160,14 +264,11 @@ export struct LikeComponent {
this.viewModel.getLikeCount(this.data).then((data) => {
if (data && data['data']) {
this.likeCount = data['data']['likeNum']
}else {
}
else {
this.likeCount = 0
}
}).catch(() => {
this.likeCount = 0
})
}
}
\ No newline at end of file
...
...
sight_harmony/features/wdComponent/src/main/ets/components/view/OperRowListView.ets
View file @
d6d71de
...
...
@@ -33,7 +33,7 @@ const TAG = 'OperRowListView';
* 2、(非必传) operationButtonList---组件展示条件,
* ['comment', 'like', 'collect', 'share'],需要展示什么传什么
* comment--评论;like--点赞;collect--收藏;listen--音频;share--分享;
*
*
注意:外层需注册 @Provide contentDetailData:contentDetailData = {} as contentDetailData
* 传值示例:
OperRowListView({
contentDetailData: this.contentDetailData[0],
...
...
@@ -48,22 +48,35 @@ export struct OperRowListView {
private onCommentFocus: () => void = () => {
}
@Prop @Watch('onDetailUpdated') contentDetailData: ContentDetailDTO // 稿件详情
/**
* 组件样式类型,根据详情页类型传值,组件内部根据样式展现类型做判断
* 1:底部栏目样式
* 2:新闻页中间位置样式
* 3:动态Tab内容下的互动入口
* 4:视频详情页
* 5:横屏直播详情页
* 6:竖屏直播详情页
* 7:图集详情页
*/
@Prop componentType: number = 1 //1: 底部栏目样式 2: 新闻页中间位置样式 3:动态Tab内容下的互动入口
@State likesStyle: number = this.contentDetailData.likesStyle // 赞样式 1红心(点赞) 2大拇指(祈福) 3蜡烛(默哀) 4置空
@State operationButtonList: string[] = ['comment', 'collect', 'share'] // 组件展示条件
@State needLike: boolean = true
@ObjectLink publishCommentModel: publishCommentModel
@State styleType: number = 1
@State showCommentIcon: boolean = true
@State bgColor: ResourceColor = Color.White
@State interactData: InteractDataDTO = {} as InteractDataDTO
@State newsStatusOfUser: batchLikeAndCollectResult | undefined = undefined // 点赞、收藏状态
@State likeBean: Record<string, string> = {}
@State audioUrl: string = ''
@State bgColor: ResourceColor = Color.White
@State showCommentIcon: boolean = true
@State bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0
needLike: boolean = true
async aboutToAppear() {
console.info(TAG, '22222----', this.styleType)
console.info(TAG, '3333----', this.needLike)
this.handleStyle()
this.onDetailUpdated()
}
async onDetailUpdated() {
...
...
@@ -146,8 +159,8 @@ export struct OperRowListView {
.backgroundColor(this.bgColor)
.padding({
top: 10,
// bottom: `${this.bottomSafeHeight}px`
bottom: 50
bottom: `${this.bottomSafeHeight}px`
// bottom: 50
})
}
...
...
@@ -183,15 +196,18 @@ export struct OperRowListView {
*/
@Builder
builderLike() {
// 点赞根据字段判断是否显示待添加
Column() {
if (this.likeBean?.contentId) {
//
if (this.likeBean?.contentId) {
LikeComponent({
data: this.likeBean,
styleType: this.styleType
styleType: this.styleType,
componentType: this.componentType
})
}
//
}
}
.width(42)
.visibility(this.likesStyle !== 4 ? Visibility.Visible : Visibility.None)
}
/**
...
...
@@ -301,10 +317,11 @@ export struct OperRowListView {
* 收藏、取消收藏
*/
async toggleCollectStatus() {
// console.log(TAG, '收藏--
')
console.log(TAG, '收藏点击
')
// 未登录,跳转登录
const user_id = await SPHelper.default.get(SpConstants.USER_ID, '')
if (!user_id) {
console.log(TAG, '收藏点击,用户未登录')
WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
return
}
...
...
@@ -316,7 +333,9 @@ export struct OperRowListView {
}],
}
console.log(TAG, '收藏点击', JSON.stringify(params))
PageRepository.postExecuteCollectRecord(params).then(res => {
console.log(TAG, '收藏点击 res', JSON.stringify(res))
if (this.newsStatusOfUser) {
this.newsStatusOfUser.collectStatus = this.newsStatusOfUser?.collectStatus === 1 ? 0 : 1
if (this.newsStatusOfUser.collectStatus === 1) {
...
...
@@ -339,7 +358,9 @@ export struct OperRowListView {
contentType: this.contentDetailData?.newsType,
}]
}
console.log(TAG, '点赞点击', JSON.stringify(params))
PageRepository.getContentInteract(params).then(res => {
console.log(TAG, '点赞点击 res', JSON.stringify(res))
if (res.data) {
this.interactData.likeNum = NumberFormatterUtils.formatNumberWithWan(res.data[0]?.likeNum)
this.interactData.collectNum = NumberFormatterUtils.formatNumberWithWan(res.data[0]?.collectNum)
...
...
sight_harmony/features/wdComponent/src/main/ets/lottie/LottieView.ets
deleted
100644 → 0
View file @
4f0dc0c
import lottie, { AnimationItem, AnimationSegment } from '@ohos/lottie';
@Component
export struct LottieView {
@Prop name: string
@Prop path: string
@Prop lottieWidth: number = 30
@Prop lottieHeight: number = 30
@Prop autoplay: boolean = false
@Prop loop: boolean = false
@Prop initialSegment?: AnimationSegment = [0, 120] // 动画起始帧
@Prop onReady: (animateItem: AnimationItem | null) => void // 动画初始化完成事件
@Prop onComplete: () => void = () => {
} // 动画完成事件
private politeChickyController: CanvasRenderingContext2D = new CanvasRenderingContext2D(); // CanvasRenderingContext2D对象
private animateItem: AnimationItem | null = null; // 初始化loadAnimation接口的返回对象
// 页面隐藏销毁动画
onPageHide(): void {
this.animateItem?.destroy()
if (this.onComplete) {
this.animateItem?.removeEventListener('complete', this.onComplete)
}
}
/**
* 加载动画
* @param autoplay 控制动画是否自动播放参数
*/
loadAnimation() {
// 销毁动画,减少缓存
if (this.animateItem !== null) {
this.animateItem.destroy();
this.animateItem = null;
}
this.animateItem = lottie.loadAnimation({
container: this.politeChickyController,
renderer: 'canvas',
loop: this.loop,
autoplay: this.autoplay,
name: this.name, // 动画名称
path: this.path, // hap包内动画资源文件路径,仅支持json格式
// initialSegment: this.initialSegment
})
if (this.initialSegment) {
this.animateItem.segments = this.initialSegment
}
if (this.onComplete) {
this.animateItem.addEventListener('complete', this.onComplete)
}
}
build() {
Stack({ alignContent: Alignment.TopStart }) {
Canvas(this.politeChickyController)
.width(this.lottieWidth)
.height(this.lottieHeight)
.backgroundColor(Color.Black)
.onReady(() => {
this.loadAnimation();
if (this.onReady) {
this.onReady(this.animateItem)
}
})
.onClick(() => {
this.animateItem?.play()
})
}
}
}
sight_harmony/features/wdComponent/src/main/ets/model/LikeModel.ets
View file @
d6d71de
sight_harmony/features/wdComponent/src/main/ets/pages/MineHomePage.ets
View file @
d6d71de
...
...
@@ -31,10 +31,19 @@ struct MineHomePage {
registTime:number = 0//账号注册时间
@State registerTimeForDay:number = 0
scroller: Scroller = new Scroller();
@State params:Record<string, string> = router.getParams() as Record<string, string>;
@State isCommentEnter:string = "";
onPageShow(): void {
this.getUserInfo()
let intervalID = setInterval(() => {
this.isCommentEnter = this.params?.['comment'];
if(StringUtils.isNotEmpty(this.isCommentEnter)){
this.scroller.scrollEdge(Edge.Bottom)
}
clearInterval(intervalID);
}, 200);
}
build() {
...
...
sight_harmony/features/wdComponent/src/main/ets/viewmodel/LikeViewModel.ets
View file @
d6d71de
...
...
@@ -9,7 +9,8 @@ export class LikeViewModel {
this.likeModel = new LikeModel();
}
executeLike(contentId: string, userName: string, contentType: string, title: string, userHeaderUrl: string, channelId: string, status: string) {
executeLike(contentId: string, userName: string, contentType: string, title: string, userHeaderUrl: string,
channelId: string, status: string) {
let bean: Record<string, string> = {}
bean['contentId'] = contentId
bean['userName'] = userName
...
...
@@ -23,7 +24,6 @@ export class LikeViewModel {
//点赞
executeLike2(bean: Record<string, string>) {
return new Promise<object>((success, fail) => {
this.likeModel.executeLike(bean).then((data) => {
success(data)
...
...
@@ -60,7 +60,4 @@ export class LikeViewModel {
})
}
}
\ No newline at end of file
...
...
sight_harmony/features/wdComponent/src/main/ets/viewmodel/LiveModel.ets
View file @
d6d71de
...
...
@@ -49,9 +49,6 @@ export class LiveModel {
params['relationId'] = relationId
params['liveId'] = liveId
params['isSubscribe'] = `${isSubscribe}`
Logger.info('relationId', relationId)
Logger.info('liveId', liveId)
Logger.info('isSubscribe', typeof isSubscribe)
return new Promise<ResponseDTO<string>>((success, fail) => {
HttpRequest.post<ResponseDTO<string>>(
HttpUrlUtils.getLiveAppointmentUrl(),
...
...
sight_harmony/features/wdComponent/src/main/resources/base/media/ic_candle_check.png
0 → 100644
View file @
d6d71de
2.15 KB
sight_harmony/features/wdComponent/src/main/resources/base/media/ic_candle_uncheck.png
0 → 100644
View file @
d6d71de
711 Bytes
sight_harmony/features/wdComponent/src/main/resources/base/media/ic_like_back.png
0 → 100644
View file @
d6d71de
617 Bytes
sight_harmony/features/wdComponent/src/main/resources/base/media/ic_like_uncheck.png
View file @
d6d71de
2.97 KB
|
W:
|
H:
1.57 KB
|
W:
|
H:
2-up
Swipe
Onion skin
sight_harmony/features/wdComponent/src/main/resources/base/media/ic_thub_check.png
0 → 100644
View file @
d6d71de
5.22 KB
sight_harmony/features/wdComponent/src/main/resources/base/media/ic_thub_uncheck.png
0 → 100644
View file @
d6d71de
1.7 KB
sight_harmony/features/wdDetailPlayLive/oh-package.json5
View file @
d6d71de
...
...
@@ -7,6 +7,7 @@
"main"
:
"Index.ets"
,
"version"
:
"1.0.0"
,
"dependencies"
:
{
"@ohos/lottie"
:
"2.0.10"
,
"wdComponent"
:
"file:../../features/wdComponent"
,
"wdPlayer"
:
"file:../../features/wdPlayer"
,
"wdNetwork"
:
"file:../../commons/wdNetwork"
,
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/pages/DetailPlayLivePage.ets
View file @
d6d71de
...
...
@@ -61,8 +61,8 @@ export struct DetailPlayLivePage {
.layoutWeight(503)
.visibility(this.displayDirection == DisplayDirection.VERTICAL ? Visibility.Visible : Visibility.None)
if (this.contentDetailData?.newsId) {
OperRowListView({
componentType: 4,
operationButtonList: ['comment', 'collect', 'share', 'like'],
contentDetailData: this.contentDetailData,
publishCommentModel: this.publishCommentModel,
...
...
@@ -73,7 +73,7 @@ export struct DetailPlayLivePage {
}
})
.visibility(this.displayDirection == DisplayDirection.VERTICAL ? Visibility.Visible : Visibility.None)
}
// LiveCommentComponent({ heartNum: this.liveRoomDataBean.likeNum })
// .visibility(this.displayDirection == DisplayDirection.VERTICAL ? Visibility.Visible : Visibility.None)
}
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/details/video/PlayUIComponent.ets
View file @
d6d71de
import { window } from '@kit.ArkUI'
import lottie from '@ohos/lottie';
import { NumberFormatterUtils, StringUtils, WindowModel } from 'wdKit/Index'
import { DateFormatUtil, WDPlayerController } from 'wdPlayer/Index'
import { LiveDetailsBean, LiveRoomDataBean } from 'wdBean/Index'
import { DisplayDirection } from 'wdConstant/Index'
import { LiveFollowComponent } from 'wdComponent/Index'
import { LiveFollowComponent
, LottieView
} from 'wdComponent/Index'
@Component
export struct PlayUIComponent {
...
...
@@ -44,6 +46,12 @@ export struct PlayUIComponent {
}
}
aboutToDisappear(): void {
if (this.liveDetailsBean.liveInfo?.liveState == 'running') {
lottie.destroy('live_status_wait')
}
}
build() {
Column() {
if (this.liveDetailsBean && this.liveDetailsBean.liveInfo) {
...
...
@@ -130,6 +138,7 @@ export struct PlayUIComponent {
// 预约
if (this.liveDetailsBean.liveInfo?.liveState == 'wait') {
Row() {
Image($r('app.media.icon_live_status_wait'))
.width(22)
.height(18)
...
...
@@ -148,9 +157,21 @@ export struct PlayUIComponent {
// 直播中
else if (this.liveDetailsBean.liveInfo?.liveState == 'running') {
Row() {
Image($r('app.media.icon_live_status_running'))
Stack() {
Image($r('app.media.icon_live_status_running_back'))
.width(22)
.height(18)
LottieView({
name: 'live_status_wait',
path: "lottie/live_detail_living.json",
lottieWidth: 9,
lottieHeight: 9,
autoplay: true,
loop: true,
})
.margin({ right: 2 })
}
Text('直播中')
.fontSize('11fp')
.fontWeight(400)
...
...
sight_harmony/features/wdDetailPlayLive/src/main/ets/widgets/vertical/PlayerTitleComponent.ets
View file @
d6d71de
import lottie from '@ohos/lottie'
import { LiveDetailsBean, LiveRoomDataBean } from 'wdBean/Index'
import { LiveFollowComponent } from 'wdComponent/Index'
import { LiveFollowComponent
, LottieView
} from 'wdComponent/Index'
import { NumberFormatterUtils } from 'wdKit/Index'
@Preview
...
...
@@ -9,6 +10,12 @@ export struct PlayerTitleComponent {
@Consume liveRoomDataBean: LiveRoomDataBean
@Consume liveState: string
aboutToDisappear(): void {
if (this.liveDetailsBean.liveInfo?.liveState == 'running') {
lottie.destroy('live_status_wait')
}
}
build() {
Column() {
Row() {
...
...
@@ -47,10 +54,25 @@ export struct PlayerTitleComponent {
if (this.liveRoomDataBean.liveId) {
Row() {
if (this.liveState == 'running') {
Image($r('app.media.icon_live_status_running'))
Stack() {
Image($r('app.media.icon_live_status_running_back'))
.width(22)
.height(18)
.margin({ right: 1 })
LottieView({
name: 'live_status_wait',
path: "lottie/live_detail_living.json",
lottieWidth: 9,
lottieHeight: 9,
autoplay: true,
loop: true,
})
.margin({ right: 2 })
}.margin({ right: 1 })
// Image($r('app.media.icon_live_status_running'))
// .width(22)
// .height(18)
// .margin({ right: 1 })
}
Text(this.liveState == 'running' ? '直播中' : '回看')
...
...
sight_harmony/features/wdDetailPlayLive/src/main/resources/base/media/icon_live_status_running_back.png
0 → 100644
View file @
d6d71de
990 Bytes
sight_harmony/features/wdDetailPlayShortVideo/src/main/ets/pages/VideoChannelDetail.ets
View file @
d6d71de
...
...
@@ -39,6 +39,7 @@ export struct VideoChannelDetail {
// private recommend?: string = '' // 0.非推荐,1.推荐;
@Link @Watch('navIndexChange') bottomNavIndex: number
@Link @Watch('navIndexChange') topNavIndex: number
@Prop @Watch('autoRefreshChange') autoRefresh: number = 0
@Consume barBackgroundColor: Color
private swiperController: SwiperController = new SwiperController()
@Provide showComment: boolean = false
...
...
@@ -54,6 +55,18 @@ export struct VideoChannelDetail {
@State isMouted: boolean = false
@State isRequestError: boolean = false
autoRefreshChange() {
if (this.topNavIndex === 0) {
this.data = []
this.interactDataList = []
this.totalCount = 0
this.isMouted = false
this.getRecCompInfo()
this.getRecCompInfo()
}
}
pageShowChange() {
if (this.bottomNavIndex === 2 && this.topNavIndex === 0) {
this.barBackgroundColor = Color.Black
...
...
sight_harmony/products/phone/.gitignore
View file @
d6d71de
...
...
@@ -4,3 +4,4 @@
/build
/.cxx
/.test
/oh-package-lock.json5
\ No newline at end of file
...
...
sight_harmony/products/phone/src/main/ets/lottie/live_detail_living.json
0 → 100644
View file @
d6d71de
{
"v"
:
"5.6.10"
,
"fr"
:
60
,
"ip"
:
0
,
"op"
:
80
,
"w"
:
30
,
"h"
:
30
,
"nm"
:
"直播页面-动效"
,
"ddd"
:
0
,
"assets"
:[],
"layers"
:[{
"ddd"
:
0
,
"ind"
:
1
,
"ty"
:
3
,
"nm"
:
"空 13"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
7.5
,
7.375
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
50
,
50
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"ip"
:
0
,
"op"
:
80
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
2
,
"ty"
:
4
,
"nm"
:
"形状图层 3"
,
"parent"
:
1
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
34
,
20.073
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
0
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-15
],[
3.75
,
15
],[
2.25
,
16.5
],[
-2.25
,
16.5
],[
-3.75
,
15
],[
-3.75
,
-15
],[
-2.25
,
-16.5
],[
2.25
,
-16.5
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
10
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-27.5
],[
3.75
,
15
],[
2.25
,
16.5
],[
-2.25
,
16.5
],[
-3.75
,
15
],[
-3.75
,
-27.5
],[
-2.25
,
-29
],[
2.25
,
-29
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
20
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-15.5
],[
3.75
,
15
],[
2.25
,
16.5
],[
-2.25
,
16.5
],[
-3.75
,
15
],[
-3.75
,
-15.5
],[
-2.25
,
-17
],[
2.25
,
-17
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
30
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-3.5
],[
3.75
,
15
],[
2.25
,
16.5
],[
-2.25
,
16.5
],[
-3.75
,
15
],[
-3.75
,
-3.5
],[
-2.25
,
-5
],[
2.25
,
-5
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
40
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-15.5
],[
3.75
,
15
],[
2.25
,
16.5
],[
-2.25
,
16.5
],[
-3.75
,
15
],[
-3.75
,
-15.5
],[
-2.25
,
-17
],[
2.25
,
-17
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
50
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-27.5
],[
3.75
,
15
],[
2.25
,
16.5
],[
-2.25
,
16.5
],[
-3.75
,
15
],[
-3.75
,
-27.5
],[
-2.25
,
-29
],[
2.25
,
-29
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
60
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-15.625
],[
3.75
,
15
],[
2.25
,
16.5
],[
-2.25
,
16.5
],[
-3.75
,
15
],[
-3.75
,
-15.625
],[
-2.25
,
-17.125
],[
2.25
,
-17.125
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
70
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-3.375
],[
3.75
,
15
],[
2.25
,
16.5
],[
-2.25
,
16.5
],[
-3.75
,
15
],[
-3.75
,
-3.375
],[
-2.25
,
-4.875
],[
2.25
,
-4.875
]],
"c"
:
true
}]},{
"t"
:
80
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-15.375
],[
3.75
,
15
],[
2.25
,
16.5
],[
-2.25
,
16.5
],[
-3.75
,
15
],[
-3.75
,
-15.375
],[
-2.25
,
-16.875
],[
2.25
,
-16.875
]],
"c"
:
true
}]}],
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
1
,
1
,
1
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
80
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
3
,
"ty"
:
4
,
"nm"
:
"形状图层 2"
,
"parent"
:
1
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
-4
,
24.573
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
0
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-7.875
],[
3.75
,
10.5
],[
2.25
,
12
],[
-2.25
,
12
],[
-3.75
,
10.5
],[
-3.75
,
-7.875
],[
-2.25
,
-9.375
],[
2.25
,
-9.375
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
10
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-20
],[
3.75
,
10.5
],[
2.25
,
12
],[
-2.25
,
12
],[
-3.75
,
10.5
],[
-3.75
,
-20
],[
-2.25
,
-21.5
],[
2.25
,
-21.5
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
20
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-32
],[
3.75
,
10.5
],[
2.25
,
12
],[
-2.25
,
12
],[
-3.75
,
10.5
],[
-3.75
,
-32
],[
-2.25
,
-33.5
],[
2.25
,
-33.5
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
30
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-20
],[
3.75
,
10.5
],[
2.25
,
12
],[
-2.25
,
12
],[
-3.75
,
10.5
],[
-3.75
,
-20
],[
-2.25
,
-21.5
],[
2.25
,
-21.5
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
40
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-7.875
],[
3.75
,
10.5
],[
2.25
,
12
],[
-2.25
,
12
],[
-3.75
,
10.5
],[
-3.75
,
-7.875
],[
-2.25
,
-9.375
],[
2.25
,
-9.375
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
50
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-20
],[
3.75
,
10.5
],[
2.25
,
12
],[
-2.25
,
12
],[
-3.75
,
10.5
],[
-3.75
,
-20
],[
-2.25
,
-21.5
],[
2.25
,
-21.5
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
60
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-31.75
],[
3.75
,
10.5
],[
2.25
,
12
],[
-2.25
,
12
],[
-3.75
,
10.5
],[
-3.75
,
-31.75
],[
-2.25
,
-33.25
],[
2.25
,
-33.25
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
70
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-19.875
],[
3.75
,
10.5
],[
2.25
,
12
],[
-2.25
,
12
],[
-3.75
,
10.5
],[
-3.75
,
-19.875
],[
-2.25
,
-21.375
],[
2.25
,
-21.375
]],
"c"
:
true
}]},{
"t"
:
80
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-8
],[
3.75
,
10.5
],[
2.25
,
12
],[
-2.25
,
12
],[
-3.75
,
10.5
],[
-3.75
,
-8
],[
-2.25
,
-9.5
],[
2.25
,
-9.5
]],
"c"
:
true
}]}],
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
1
,
1
,
1
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
80
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
4
,
"ty"
:
4
,
"nm"
:
"形状图层 1"
,
"parent"
:
1
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
15
,
14.272
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
0
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-21
],[
3.75
,
21
],[
2.25
,
22.5
],[
-2.25
,
22.5
],[
-3.75
,
21
],[
-3.75
,
-21
],[
-2.25
,
-22.5
],[
2.25
,
-22.5
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
10
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-9.375
],[
3.75
,
21
],[
2.25
,
22.5
],[
-2.25
,
22.5
],[
-3.75
,
21
],[
-3.75
,
-9.375
],[
-2.25
,
-10.875
],[
2.25
,
-10.875
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
20
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
2.5
],[
3.75
,
21
],[
2.25
,
22.5
],[
-2.25
,
22.5
],[
-3.75
,
21
],[
-3.75
,
2.5
],[
-2.25
,
1
],[
2.25
,
1
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
30
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-9.375
],[
3.75
,
21
],[
2.25
,
22.5
],[
-2.25
,
22.5
],[
-3.75
,
21
],[
-3.75
,
-9.375
],[
-2.25
,
-10.875
],[
2.25
,
-10.875
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
40
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-21.5
],[
3.75
,
21
],[
2.25
,
22.5
],[
-2.25
,
22.5
],[
-3.75
,
21
],[
-3.75
,
-21.5
],[
-2.25
,
-23
],[
2.25
,
-23
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
50
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-9.5
],[
3.75
,
21
],[
2.25
,
22.5
],[
-2.25
,
22.5
],[
-3.75
,
21
],[
-3.75
,
-9.5
],[
-2.25
,
-11
],[
2.25
,
-11
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
60
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
2.5
],[
3.75
,
21
],[
2.25
,
22.5
],[
-2.25
,
22.5
],[
-3.75
,
21
],[
-3.75
,
2.5
],[
-2.25
,
1
],[
2.25
,
1
]],
"c"
:
true
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
70
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-9.5
],[
3.75
,
21
],[
2.25
,
22.5
],[
-2.25
,
22.5
],[
-3.75
,
21
],[
-3.75
,
-9.5
],[
-2.25
,
-11
],[
2.25
,
-11
]],
"c"
:
true
}]},{
"t"
:
80
,
"s"
:[{
"i"
:[[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
],[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0.828
],[
0
,
0
],[
-0.828
,
0
],[
0
,
0
],[
0
,
-0.828
],[
0
,
0
],[
0.828
,
0
]],
"v"
:[[
3.75
,
-21.375
],[
3.75
,
21
],[
2.25
,
22.5
],[
-2.25
,
22.5
],[
-3.75
,
21
],[
-3.75
,
-21.375
],[
-2.25
,
-22.875
],[
2.25
,
-22.875
]],
"c"
:
true
}]}],
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
1
,
1
,
1
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
80
,
"st"
:
0
,
"bm"
:
0
}],
"markers"
:[]}
\ No newline at end of file
...
...
sight_harmony/products/phone/src/main/ets/lottie/slider_up_view_more.json
0 → 100644
View file @
d6d71de
{
"v"
:
"5.6.10"
,
"fr"
:
30
,
"ip"
:
0
,
"op"
:
51
,
"w"
:
500
,
"h"
:
500
,
"nm"
:
"预合成 1"
,
"ddd"
:
0
,
"assets"
:[{
"id"
:
"image_0"
,
"w"
:
90
,
"h"
:
240
,
"u"
:
""
,
"p"
:
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAADwCAYAAACAL3OKAAAACXBIWXMAAAABAAAAAQBPJcTWAAAAJHpUWHRDcmVhdG9yAAAImXNMyU9KVXBMK0ktUnBNS0tNLikGAEF6Bs5qehXFAAADW0lEQVR4nO3cv2lcQRRG8Tuzs0iBFRhcgcEVGFSBwRUYXIHBFRicqTOVJJACSfvnc+BNXvbgMUeBzi8ZJhPnDuLpYtySnEvTjarKW/8Q74GhIYaGGBpiaIihIYaGGBpiaIihIYaGjKpy1wHwRUMMDTE0xNAQQ0MMDTE0xNAQQ0MMDTE0xNAQQ0MMDTE0xH00xBcNMTTE0BBDQwwNMTTE0BBDQwwNMTTE0BBDQwwNMTTE0BD30RBfNMTQEENDDA0xNMTQEENDDA0xNMTQEENDDA0xNMTQEEND3EdDfNEQQ0MMDTE0xNAQQ0MMDTE0xNAQQ0MMDTE0xNAQQ0MMDXEfDfFFQwwNMTTE0BBDQwwNMTTE0BBDQwwNMTTE0BBDQwwNMTTEfTTEFw0xNMTQEENDDA0xNMTQEENDDA0xNMTQEENDDA0xNMTQEPfREF80xNAQQ0MMDTE0xNAQQ0MMDTE0xNAQQ0MMDTE0xNAQQ0P6+XxO/Y+dqor3OfeW5O/GYWmFcSmuyXpVpfcez7lnO51Of6aMUAt+dUAMDTE0ZPTe/XcdAF80xNAQQ0MMDTE0xNAQQ0PcR4P76N8bh6UV3EdD3EeD++hfU0aohZHEXx0AP+8ghoaM3W7nPhrgi4YYGmJoiKEhhoYYGmJoSD+dTov9qfc595bk58ZhaYVxKa7JelVlt9vFc+7Zjsfjjykj1IJfHRBDQwwNcR8N8UVDDA0xNMTQEENDDA0xNKQfj8fF/tT7nHtL8n3jsLTCuBTXZL2qMsaI59yzHQ6Hb1NGqAW/OiCGhhgaMsYY7qMBvmiIoSGGhhgaYmiIoSGGhvTD4bDYn3qfc29JbjcOSyuMS3FN1qsq+/0+nnPP9vr6+nXKCLXgVwfE0BBDQ8Z+v3cfDfBFQwwNMTTE0BBDQwwNMTSkv7y8LPan3ufcW5IvG4elFcaluCbrVZWrq6t4zj3b8/Pz5ykj1IL/fzTEzzuIoSHj+vrafTTAFw0xNMTQEENDDA0xNMTQkP709LTYn3qfc29JPm0cllYYj4+P/uoA9CS5ubmJ59yzPTw8fHzrab8H7qMhhoYYGtKSfHjrH+I98C9DiKEhhoYYGmJoiKEhhob0+/v7xf7U+5x7S7LbOCytMO7u7vzVAWlJmufc8x+/85zyNf84xgAAAABJRU5ErkJggg=="
,
"e"
:
1
}],
"fonts"
:{
"list"
:[{
"fName"
:
"SourceHanSansSC-Normal"
,
"fFamily"
:
"Source Han Sans SC"
,
"fStyle"
:
"Normal"
,
"ascent"
:
79.608999023214
}]},
"layers"
:[{
"ddd"
:
0
,
"ind"
:
1
,
"ty"
:
4
,
"nm"
:
"“图层 1”轮廓 2"
,
"td"
:
1
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
160.08
,
177.473
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
8.095
,
35.425
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
300
,
300
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
1.244
,
-10.704
],[
-4.109
,
-12.458
],[
-0.711
,
-0.358
],[
-0.35
,
-0.041
],[
-0.041
,
-0.003
],[
-0.374
,
0.124
],[
-0.135
,
1.161
],[
0
,
0
],[
0.134
,
0.407
],[
-1.276
,
10.984
],[
-5.322
,
9.464
],[
0
,
0
]],
"o"
:[[
-5.704
,
10.153
],[
-1.377
,
11.862
],[
0.249
,
0.755
],[
0.314
,
0.159
],[
0.041
,
0.005
],[
0.393
,
0.029
],[
1.109
,
-0.366
],[
0
,
0
],[
0.046
,
-0.426
],[
-3.832
,
-11.619
],[
1.152
,
-9.916
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
2.846
,
-34.399
],[
-7.576
,
-3.114
],[
-3.479
,
33.365
],[
-1.98
,
35.104
],[
-0.976
,
35.405
],[
-0.852
,
35.417
],[
0.31
,
35.274
],[
2.35
,
32.771
],[
2.353
,
32.749
],[
2.219
,
31.485
],[
-1.616
,
-2.421
],[
8.095
,
-31.491
],[
7.16
,
-35.425
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
1
,
1
,
1
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
8.094
,
35.425
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 1"
,
"np"
:
4
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
51
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
2
,
"ty"
:
2
,
"nm"
:
"矩形 1624.png"
,
"cl"
:
"png"
,
"tt"
:
1
,
"refId"
:
"image_0"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:[
0.833
],
"y"
:[
0.833
]},
"o"
:{
"x"
:[
0.167
],
"y"
:[
0.167
]},
"t"
:
4
,
"s"
:[
0
]},{
"i"
:{
"x"
:[
0.833
],
"y"
:[
0.833
]},
"o"
:{
"x"
:[
0.167
],
"y"
:[
0.167
]},
"t"
:
6
,
"s"
:[
100
]},{
"i"
:{
"x"
:[
0.833
],
"y"
:[
0.833
]},
"o"
:{
"x"
:[
0.167
],
"y"
:[
0.167
]},
"t"
:
29
,
"s"
:[
100
]},{
"t"
:
34
,
"s"
:[
0
]}],
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
170.767
,
290.291
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
45.395
,
241.486
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:[
0.833
,
0.833
,
0.833
],
"y"
:[
0.833
,
0.833
,
0.833
]},
"o"
:{
"x"
:[
0.167
,
0.167
,
0.167
],
"y"
:[
0.167
,
0.167
,
0.167
]},
"t"
:
1
,
"s"
:[
100
,
10
,
100
]},{
"i"
:{
"x"
:[
0.833
,
0.833
,
0.833
],
"y"
:[
0.833
,
0.833
,
0.833
]},
"o"
:{
"x"
:[
0.167
,
0.167
,
0.167
],
"y"
:[
0.167
,
0.167
,
0.167
]},
"t"
:
7
,
"s"
:[
100
,
56
,
100
]},{
"t"
:
12
,
"s"
:[
100
,
100
,
100
]}],
"ix"
:
6
}},
"ao"
:
0
,
"ip"
:
1
,
"op"
:
52
,
"st"
:
1
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
3
,
"ty"
:
4
,
"nm"
:
"形状图层 3"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:[
0.833
],
"y"
:[
0.833
]},
"o"
:{
"x"
:[
0.167
],
"y"
:[
0.167
]},
"t"
:
1
,
"s"
:[
0
]},{
"i"
:{
"x"
:[
0.833
],
"y"
:[
0.833
]},
"o"
:{
"x"
:[
0.167
],
"y"
:[
0.167
]},
"t"
:
7
,
"s"
:[
100
]},{
"i"
:{
"x"
:[
0.833
],
"y"
:[
0.833
]},
"o"
:{
"x"
:[
0.167
],
"y"
:[
0.167
]},
"t"
:
29
,
"s"
:[
100
]},{
"t"
:
34
,
"s"
:[
0
]}],
"ix"
:
11
},
"r"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:[
0.833
],
"y"
:[
0.833
]},
"o"
:{
"x"
:[
0.167
],
"y"
:[
0.167
]},
"t"
:
1
,
"s"
:[
-51
]},{
"t"
:
12
,
"s"
:[
0
]}],
"ix"
:
10
},
"p"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
1
,
"s"
:[
157.75
,
279.75
,
0
],
"to"
:[
-6.112
,
-21.415
,
0
],
"ti"
:[
-5.612
,
39.702
,
0
]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
7
,
"s"
:[
145.538
,
168
,
0
],
"to"
:[
5.612
,
-39.702
,
0
],
"ti"
:[
-10.945
,
22.085
,
0
]},{
"t"
:
12
,
"s"
:[
174.75
,
77.75
,
0
]}],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
-75.25
,
-172.25
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
-96.5
,
-181.5
],[
-62.25
,
-189
],[
-54
,
-155.5
]],
"c"
:
false
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"st"
,
"c"
:{
"a"
:
0
,
"k"
:[
1
,
1
,
1
,
1
],
"ix"
:
3
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
4
},
"w"
:{
"a"
:
0
,
"k"
:
18
,
"ix"
:
5
},
"lc"
:
2
,
"lj"
:
2
,
"bm"
:
0
,
"nm"
:
"描边 1"
,
"mn"
:
"ADBE Vector Graphic - Stroke"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"形状 1"
,
"np"
:
3
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
1
,
"op"
:
52
,
"st"
:
1
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
4
,
"ty"
:
4
,
"nm"
:
"形状图层 1"
,
"parent"
:
5
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
20
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
34.937
,
47.412
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
33.333
,
33.333
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
0
,
"s"
:[{
"i"
:[[
0
,
0
],[
28.935
,
-6.447
],[
9
,
-5.25
],[
-17.25
,
4
],[
-21.26
,
3.424
],[
-12.805
,
-4.71
],[
2.25
,
-2.5
]],
"o"
:[[
0
,
0
],[
-24.106
,
5.371
],[
-16.232
,
9.469
],[
9.485
,
-2.2
],[
33.448
,
-5.387
],[
9.5
,
4.25
],[
-2.25
,
2.5
]],
"v"
:[[
52.75
,
-14.25
],[
-9.435
,
-6.803
],[
-56.25
,
10.25
],[
-46.25
,
39
],[
7.26
,
24.826
],[
88
,
19
],[
89
,
36.25
]],
"c"
:
false
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
10
,
"s"
:[{
"i"
:[[
0
,
0
],[
26.479
,
-4.851
],[
8.679
,
-2.444
],[
-17.998
,
2.691
],[
-23.469
,
3.069
],[
-12.805
,
-4.71
],[
2.25
,
-2.5
]],
"o"
:[[
0
,
0
],[
-12.46
,
2.283
],[
-15.41
,
4.339
],[
4.383
,
-0.655
],[
33.593
,
-4.393
],[
9.5
,
4.25
],[
-2.25
,
2.5
]],
"v"
:[[
58
,
-15
],[
-7.178
,
-6.584
],[
-53.707
,
4.823
],[
-47
,
29.75
],[
0.76
,
22.576
],[
88
,
19
],[
89
,
36.25
]],
"c"
:
false
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
15
,
"s"
:[{
"i"
:[[
0
,
0
],[
26.919
,
0.031
],[
6.044
,
-0.659
],[
-15.132
,
-2.622
],[
-23.644
,
1.071
],[
-12.805
,
-4.71
],[
2.25
,
-2.5
]],
"o"
:[[
0
,
0
],[
-13.471
,
-0.016
],[
-14.086
,
1.535
],[
4.404
,
0.763
],[
32.111
,
-1.455
],[
9.5
,
4.25
],[
-2.25
,
2.5
]],
"v"
:[[
54.157
,
-14.073
],[
-2.442
,
-8.813
],[
-49.103
,
-6.764
],[
-50.1
,
19.6
],[
-0.512
,
21.013
],[
88
,
19
],[
89
,
36.25
]],
"c"
:
false
}]},{
"i"
:{
"x"
:
0.833
,
"y"
:
0.833
},
"o"
:{
"x"
:
0.167
,
"y"
:
0.167
},
"t"
:
24
,
"s"
:[{
"i"
:[[
0
,
0
],[
26.479
,
-4.851
],[
8.679
,
-2.444
],[
-17.998
,
2.691
],[
-23.469
,
3.069
],[
-12.805
,
-4.71
],[
2.25
,
-2.5
]],
"o"
:[[
0
,
0
],[
-12.46
,
2.283
],[
-15.41
,
4.339
],[
4.383
,
-0.655
],[
33.593
,
-4.393
],[
9.5
,
4.25
],[
-2.25
,
2.5
]],
"v"
:[[
58
,
-15
],[
-7.178
,
-6.584
],[
-53.707
,
4.823
],[
-47
,
29.75
],[
0.76
,
22.576
],[
88
,
19
],[
89
,
36.25
]],
"c"
:
false
}]},{
"t"
:
40
,
"s"
:[{
"i"
:[[
0
,
0
],[
28.935
,
-6.447
],[
9
,
-5.25
],[
-17.25
,
4
],[
-21.26
,
3.424
],[
-12.805
,
-4.71
],[
2.25
,
-2.5
]],
"o"
:[[
0
,
0
],[
-24.106
,
5.371
],[
-16.232
,
9.469
],[
9.485
,
-2.2
],[
33.448
,
-5.387
],[
9.5
,
4.25
],[
-2.25
,
2.5
]],
"v"
:[[
58
,
-15
],[
-9.435
,
-6.803
],[
-56.25
,
10.25
],[
-46.25
,
39
],[
7.26
,
24.826
],[
88
,
19
],[
89
,
36.25
]],
"c"
:
false
}]}],
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"st"
,
"c"
:{
"a"
:
0
,
"k"
:[
1
,
1
,
1
,
1
],
"ix"
:
3
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
4
},
"w"
:{
"a"
:
0
,
"k"
:
12
,
"ix"
:
5
},
"lc"
:
2
,
"lj"
:
2
,
"bm"
:
0
,
"nm"
:
"描边 1"
,
"mn"
:
"ADBE Vector Graphic - Stroke"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"形状 1"
,
"np"
:
3
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
50
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
5
,
"ty"
:
4
,
"nm"
:
"“img_hand”轮廓"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
1
,
"k"
:[{
"i"
:{
"x"
:[
0.775
],
"y"
:[
0.621
]},
"o"
:{
"x"
:[
0.333
],
"y"
:[
0
]},
"t"
:
0
,
"s"
:[
-20
]},{
"i"
:{
"x"
:[
0.667
],
"y"
:[
1
]},
"o"
:{
"x"
:[
0.167
],
"y"
:[
0
]},
"t"
:
10
,
"s"
:[
12
]},{
"t"
:
40.0234375
,
"s"
:[
-19.954
]}],
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
447.982
,
216
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
100.827
,
59.333
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
300
,
300
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ty"
:
"st"
,
"c"
:{
"a"
:
0
,
"k"
:[
1
,
1
,
1
,
1
],
"ix"
:
3
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
4
},
"w"
:{
"a"
:
0
,
"k"
:
3
,
"ix"
:
5
},
"lc"
:
1
,
"lj"
:
1
,
"ml"
:
4
,
"bm"
:
0
,
"nm"
:
"描边 1"
,
"mn"
:
"ADBE Vector Graphic - Stroke"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
1
,
1
,
1
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"形状 1"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
},{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0.033
,
0.015
],[
0
,
0
],[
0.783
,
-0.214
],[
0.314
,
-0.792
],[
-0.133
,
-0.656
],[
-0.603
,
-0.563
],[
-0.587
,
-0.233
],[
0
,
0
],[
-0.073
,
-0.04
],[
-0.516
,
-0.842
],[
0.479
,
-1.208
],[
0.953
,
-0.502
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-1.392
,
-0.86
],[
0.091
,
-1.641
],[
2.925
,
-1.592
],[
2.563
,
-0.334
],[
1.888
,
-0.636
],[
1.036
,
-1.094
],[
0.103
,
-0.722
],[
-0.26
,
-0.631
],[
-1.483
,
0.566
],[
-3.818
,
0.653
],[
-5.209
,
0.17
],[
-9.286
,
3.911
],[
0
,
0
],[
0
,
0
],[
-0.469
,
-0.165
],[
-0.024
,
-0.01
],[
0
,
0
],[
-0.206
,
-0.489
],[
0.163
,
-0.467
],[
0.01
,
-0.026
],[
0.495
,
-0.209
],[
0
,
0
],[
6.587
,
-0.214
],[
2.994
,
-0.511
],[
4.409
,
-1.635
],[
1.511
,
0.673
],[
0.629
,
1.524
],[
-0.21
,
1.467
],[
-0.98
,
1.035
],[
-2.962
,
0.997
],[
-2.561
,
0.334
],[
-1.666
,
0.907
],[
-0.117
,
0.852
],[
0.021
,
0.025
],[
0.515
,
0.318
],[
-2.348
,
-0.527
],[
0
,
0
],[
0
,
0
],[
-2.029
,
-0.079
],[
-0.168
,
0.089
],[
-0.048
,
0.103
],[
0.49
,
0.277
],[
0
,
0
],[
0.631
,
0.589
],[
0.298
,
1.464
],[
-0.637
,
1.605
],[
-1.864
,
0.508
],[
-0.535
,
0.015
],[
-0.648
,
1.306
],[
-1.813
,
0.428
],[
-1.806
,
-0.438
],[
-0.392
,
1.028
],[
-0.023
,
0.048
],[
-2.123
,
0.451
],[
-2.602
,
-1.082
],[
-0.033
,
-0.016
],[
0
,
0
],[
-0.034
,
-0.019
],[
-1.699
,
-3.421
],[
0
,
0
],[
0
,
0
],[
0.169
,
-0.503
],[
0.013
,
-0.032
],[
0.443
,
-0.22
],[
0.502
,
0.17
],[
0.033
,
0.013
],[
0.219
,
0.442
],[
0
,
0
],[
6.83
,
3.793
],[
0
,
0
],[
1.064
,
-0.227
],[
0.455
,
-0.915
],[
-0.154
,
-0.539
],[
-0.497
,
-0.308
],[
0
,
0
],[
0.408
,
-1.027
],[
1.026
,
0.405
],[
0
,
0
],[
0
,
0
],[
0.068
,
0.036
],[
0
,
0
],[
0.842
,
-0.198
],[
0.277
,
-0.557
],[
-0.093
,
-0.504
],[
-0.425
,
-0.402
],[
0
,
0
],[
0.237
,
-0.935
],[
0.032
,
-0.08
],[
0.015
,
-0.033
],[
0.934
,
0.237
],[
0.08
,
0.031
]],
"o"
:[[
0
,
0
],[
-1.444
,
-0.567
],[
-0.577
,
0.157
],[
-0.344
,
0.868
],[
0.128
,
0.627
],[
0.263
,
0.245
],[
0
,
0
],[
0.077
,
0.03
],[
1.204
,
0.661
],[
0.679
,
1.108
],[
-0.415
,
1.046
],[
-0.842
,
0.444
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
2.121
,
1.31
],[
-0.133
,
2.377
],[
-2.104
,
1.145
],[
-2.301
,
0.3
],[
-2.333
,
0.785
],[
-0.397
,
0.419
],[
-0.107
,
0.745
],[
0.49
,
1.186
],[
4.665
,
-1.731
],[
3.174
,
-0.542
],[
6.094
,
-0.198
],[
0
,
0
],[
0
,
0
],[
0.458
,
-0.193
],[
0.024
,
0.009
],[
0
,
0
],[
0.491
,
0.2
],[
0.192
,
0.456
],[
-0.009
,
0.027
],[
-0.198
,
0.499
],[
0
,
0
],[
-9.741
,
4.104
],[
-5.028
,
0.164
],[
-3.573
,
0.611
],[
-1.873
,
0.715
],[
-1.375
,
-0.612
],[
-0.539
,
-1.304
],[
0.223
,
-1.562
],[
1.492
,
-1.576
],[
2.135
,
-0.719
],[
2.069
,
-0.269
],[
1.546
,
-0.841
],[
-0.014
,
-0.019
],[
-0.21
,
-0.254
],[
-1.135
,
-0.701
],[
1.606
,
0.361
],[
0
,
0
],[
0
,
0
],[
0.359
,
0.014
],[
0.069
,
-0.036
],[
-0.151
,
-0.213
],[
0
,
0
],[
-1.055
,
-0.418
],[
-1.228
,
-1.144
],[
-0.291
,
-1.433
],[
0.805
,
-2.031
],[
0.48
,
-0.13
],[
-0.099
,
-1.203
],[
0.833
,
-1.68
],[
1.331
,
-0.314
],[
0.031
,
-0.905
],[
0.019
,
-0.05
],[
1.024
,
-2.145
],[
1.886
,
-0.401
],[
0.034
,
0.014
],[
0
,
0
],[
0.034
,
0.016
],[
7.589
,
4.209
],[
0
,
0
],[
0
,
0
],[
0.236
,
0.476
],[
-0.012
,
0.033
],[
-0.182
,
0.46
],[
-0.475
,
0.236
],[
-0.033
,
-0.011
],[
-0.459
,
-0.182
],[
0
,
0
],[
-1.329
,
-2.67
],[
0
,
0
],[
-1.813
,
-0.748
],[
-0.816
,
0.173
],[
-0.338
,
0.913
],[
0.115
,
0.405
],[
0
,
0
],[
1.026
,
0.408
],[
-0.406
,
1.025
],[
0
,
0
],[
0
,
0
],[
-0.071
,
-0.028
],[
0
,
0
],[
-1.472
,
-0.43
],[
-0.593
,
0.14
],[
-0.357
,
0.721
],[
0.077
,
0.416
],[
0
,
0
],[
0.876
,
0.403
],[
-0.021
,
0.083
],[
-0.013
,
0.033
],[
-0.403
,
0.876
],[
-0.084
,
-0.021
],[
-0.033
,
-0.014
]],
"v"
:[[
1.962
,
-13.096
],[
-8.76
,
-18.034
],[
-12.1
,
-18.564
],[
-13.438
,
-17.141
],[
-13.753
,
-14.855
],[
-12.658
,
-13.071
],[
-11.383
,
-12.354
],[
0.275
,
-7.73
],[
0.501
,
-7.625
],[
3.081
,
-5.371
],[
3.381
,
-1.898
],[
1.329
,
0.424
],[
-1.686
,
0.991
],[
-2.437
,
0.965
],[
-1.432
,
7.985
],[
4.895
,
10.726
],[
7.939
,
15.152
],[
3.353
,
21.106
],[
-3.648
,
23.325
],[
-9.932
,
24.728
],[
-14.984
,
27.546
],[
-15.734
,
29.258
],[
-15.503
,
31.322
],[
-12.544
,
32.252
],[
0.181
,
28.677
],[
12.755
,
27.609
],[
35.825
,
21.445
],[
35.827
,
21.444
],[
35.831
,
21.442
],[
37.273
,
21.398
],[
37.346
,
21.426
],[
37.363
,
21.432
],[
38.452
,
22.508
],[
38.497
,
23.942
],[
38.468
,
24.022
],[
37.385
,
25.128
],[
37.379
,
25.13
],[
12.887
,
31.607
],[
0.855
,
32.62
],[
-11.118
,
35.989
],[
-16.195
,
36.052
],[
-19.201
,
32.848
],[
-19.693
,
28.692
],[
-17.889
,
24.796
],[
-11.208
,
20.937
],[
-4.163
,
19.358
],[
1.439
,
17.593
],[
3.934
,
15.053
],[
3.882
,
14.987
],[
2.794
,
14.129
],[
-2.327
,
11.916
],[
-1.459
,
8.034
],[
-2.393
,
1.013
],[
-1.324
,
-2.997
],[
-0.535
,
-3.116
],[
-0.359
,
-3.325
],[
-1.32
,
-4.06
],[
-12.856
,
-8.636
],[
-15.385
,
-10.146
],[
-17.674
,
-14.058
],[
-17.156
,
-18.616
],[
-13.152
,
-22.424
],[
-11.63
,
-22.643
],[
-10.805
,
-26.407
],[
-6.835
,
-29.569
],[
-2.13
,
-29.383
],[
-1.495
,
-32.282
],[
-1.432
,
-32.43
],[
3.288
,
-36.324
],[
10.021
,
-35.302
],[
10.12
,
-35.257
],[
31.193
,
-25.105
],[
31.295
,
-25.052
],[
45.227
,
-13.607
],[
45.228
,
-13.604
],[
45.229
,
-13.603
],[
45.333
,
-12.075
],[
45.296
,
-11.977
],[
44.326
,
-10.922
],[
42.799
,
-10.819
],[
42.7
,
-10.855
],[
41.646
,
-11.825
],[
41.642
,
-11.833
],[
29.404
,
-21.527
],[
8.436
,
-31.629
],[
4.12
,
-32.411
],[
2.213
,
-30.778
],[
1.936
,
-28.6
],[
2.854
,
-27.53
],[
8.822
,
-25.163
],[
9.944
,
-22.566
],[
7.352
,
-21.443
],[
7.348
,
-21.444
],[
1.316
,
-23.823
],[
1.107
,
-23.919
],[
-2.447
,
-25.328
],[
-5.917
,
-25.676
],[
-7.222
,
-24.63
],[
-7.62
,
-22.792
],[
-6.867
,
-21.566
],[
3.635
,
-16.729
],[
4.737
,
-14.42
],[
4.658
,
-14.175
],[
4.615
,
-14.076
],[
2.307
,
-12.974
],[
2.061
,
-13.053
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"路径 1"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ty"
:
"fl"
,
"c"
:{
"a"
:
0
,
"k"
:[
1
,
1
,
1
,
1
],
"ix"
:
4
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
5
},
"r"
:
1
,
"bm"
:
0
,
"nm"
:
"填充 1"
,
"mn"
:
"ADBE Vector Graphic - Fill"
,
"hd"
:
false
},{
"ty"
:
"tr"
,
"p"
:{
"a"
:
0
,
"k"
:[
55.39
,
50.134
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
],
"ix"
:
3
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
6
},
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
7
},
"sk"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
4
},
"sa"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
5
},
"nm"
:
"变换"
}],
"nm"
:
"组 1"
,
"np"
:
2
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
2
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}],
"ip"
:
0
,
"op"
:
50
,
"st"
:
0
,
"bm"
:
0
},{
"ddd"
:
0
,
"ind"
:
6
,
"ty"
:
5
,
"nm"
:
"上滑查看更多视频"
,
"sr"
:
1
,
"ks"
:{
"o"
:{
"a"
:
0
,
"k"
:
100
,
"ix"
:
11
},
"r"
:{
"a"
:
0
,
"k"
:
0
,
"ix"
:
10
},
"p"
:{
"a"
:
0
,
"k"
:[
249.5
,
409.099
,
0
],
"ix"
:
2
},
"a"
:{
"a"
:
0
,
"k"
:[
4.786
,
-22.901
,
0
],
"ix"
:
1
},
"s"
:{
"a"
:
0
,
"k"
:[
100
,
100
,
100
],
"ix"
:
6
}},
"ao"
:
0
,
"t"
:{
"d"
:{
"k"
:[{
"s"
:{
"s"
:
60
,
"f"
:
"SourceHanSansSC-Normal"
,
"t"
:
"上滑查看更多视频"
,
"j"
:
2
,
"tr"
:
0
,
"lh"
:
72
,
"ls"
:
0
,
"fc"
:[
1
,
1
,
1
],
"sc"
:[
0
,
0
,
0
],
"sw"
:
0.00999999977648
,
"of"
:
true
},
"t"
:
0
}]},
"p"
:{},
"m"
:{
"g"
:
1
,
"a"
:{
"a"
:
0
,
"k"
:[
0
,
0
],
"ix"
:
2
}},
"a"
:[]},
"ip"
:
0
,
"op"
:
50
,
"st"
:
0
,
"bm"
:
0
}],
"markers"
:[{
"tm"
:
1
,
"cm"
:
"{\n\t\"exportFlag\":\t1,\n\t\"storePath\":\t\"/Users/changkang/Downloads/中文版动效/动效导出最终版本的/动效\"\n}"
,
"dr"
:
0
}],
"chars"
:[{
"ch"
:
"上"
,
"size"
:
60
,
"style"
:
"Normal"
,
"w"
:
100
,
"data"
:{
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
43.405
,
-82.883
],[
43.405
,
-3.625
],[
5.338
,
-3.625
],[
5.338
,
3.122
],[
95.471
,
3.122
],[
95.471
,
-3.625
],[
50.455
,
-3.625
],[
50.455
,
-44.614
],[
88.623
,
-44.614
],[
88.623
,
-51.361
],[
50.455
,
-51.361
],[
50.455
,
-82.883
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"上"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
}],
"nm"
:
"上"
,
"np"
:
3
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}]},
"fFamily"
:
"Source Han Sans SC"
},{
"ch"
:
"滑"
,
"size"
:
60
,
"style"
:
"Normal"
,
"w"
:
100
,
"data"
:{
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
-3.928
,
-3.726
],[
0
,
0
],[
6.143
,
3.625
]],
"o"
:[[
6.244
,
3.827
],[
0
,
0
],[
-3.928
,
-3.525
],[
0
,
0
]],
"v"
:[[
9.467
,
-78.653
],[
27.594
,
-65.359
],[
31.924
,
-70.496
],[
13.696
,
-82.983
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"滑"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
1
,
"ty"
:
"sh"
,
"ix"
:
2
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
-3.827
,
-3.122
],[
0
,
0
],[
5.74
,
2.921
]],
"o"
:[[
5.841
,
3.122
],[
0
,
0
],[
-3.928
,
-3.122
],[
0
,
0
]],
"v"
:[[
4.33
,
-50.656
],[
21.552
,
-39.679
],[
25.58
,
-44.916
],[
8.258
,
-55.389
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"滑"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
2
,
"ty"
:
"sh"
,
"ix"
:
3
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
4.633
,
-7.553
],[
0
,
0
],[
-4.431
,
10.272
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
5.035
,
-9.164
],[
0
,
0
],[
-4.935
,
11.078
]],
"v"
:[[
7.755
,
1.913
],[
13.596
,
6.244
],[
29.105
,
-25.681
],[
23.868
,
-29.81
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"滑"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
3
,
"ty"
:
"sh"
,
"ix"
:
4
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
45.923
,
-22.055
],[
79.156
,
-22.055
],[
79.156
,
-14.2
],[
45.923
,
-14.2
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"滑"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
4
,
"ty"
:
"sh"
,
"ix"
:
5
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
45.923
,
-27.191
],[
45.923
,
-34.845
],[
79.156
,
-34.845
],[
79.156
,
-27.191
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"滑"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
5
,
"ty"
:
"sh"
,
"ix"
:
6
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
1.41
,
0
],[
5.237
,
0.201
],[
-0.302
,
-1.511
],[
-2.618
,
1.007
],[
0
,
3.525
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
1.309
],[
-1.41
,
0.101
],[
0.806
,
1.611
],[
7.251
,
0
],[
2.618
,
-0.906
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
39.679
,
-40.384
],[
39.679
,
7.855
],[
45.923
,
7.855
],[
45.923
,
-9.164
],[
79.156
,
-9.164
],[
79.156
,
0.806
],[
77.344
,
2.518
],[
65.863
,
2.417
],[
67.776
,
7.956
],[
82.178
,
6.949
],[
85.602
,
0.806
],[
85.602
,
-40.384
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"滑"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
6
,
"ty"
:
"sh"
,
"ix"
:
7
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
40.384
,
-80.667
],[
40.384
,
-53.476
],[
29.709
,
-53.476
],[
29.709
,
-36.658
],[
35.953
,
-36.658
],[
35.953
,
-47.836
],[
89.227
,
-47.836
],[
89.227
,
-36.658
],[
95.773
,
-36.658
],[
95.773
,
-53.476
],[
84.998
,
-53.476
],[
84.998
,
-80.667
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"滑"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
7
,
"ty"
:
"sh"
,
"ix"
:
8
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
46.628
,
-53.476
],[
46.628
,
-63.144
],[
61.029
,
-63.144
],[
61.029
,
-53.476
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"滑"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
8
,
"ty"
:
"sh"
,
"ix"
:
9
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
78.653
,
-53.476
],[
66.769
,
-53.476
],[
66.769
,
-67.978
],[
46.628
,
-67.978
],[
46.628
,
-75.229
],[
78.653
,
-75.229
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"滑"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
}],
"nm"
:
"滑"
,
"np"
:
12
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}]},
"fFamily"
:
"Source Han Sans SC"
},{
"ch"
:
"查"
,
"size"
:
60
,
"style"
:
"Normal"
,
"w"
:
100
,
"data"
:{
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
29.205
,
-21.854
],[
71.201
,
-21.854
],[
71.201
,
-12.891
],[
29.205
,
-12.891
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"查"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
1
,
"ty"
:
"sh"
,
"ix"
:
2
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
29.205
,
-35.55
],[
71.201
,
-35.55
],[
71.201
,
-26.688
],[
29.205
,
-26.688
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"查"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
2
,
"ty"
:
"sh"
,
"ix"
:
3
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
22.559
,
-40.585
],[
22.559
,
-7.855
],[
78.149
,
-7.855
],[
78.149
,
-40.585
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"查"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
3
,
"ty"
:
"sh"
,
"ix"
:
4
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
7.654
,
-1.511
],[
7.654
,
4.532
],[
93.457
,
4.532
],[
93.457
,
-1.511
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"查"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
4
,
"ty"
:
"sh"
,
"ix"
:
5
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
12.589
,
-4.33
],[
-1.007
,
-1.611
],[
-9.265
,
12.085
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-14.099
,
-5.237
],[
-1.611
,
1.208
],[
8.862
,
9.467
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-8.862
,
9.769
],[
1.41
,
1.309
],[
13.797
,
-5.539
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
9.366
,
11.884
],[
0.906
,
-1.712
],[
-12.991
,
-4.129
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
46.729
,
-84.494
],[
46.729
,
-71.301
],[
5.841
,
-71.301
],[
5.841
,
-65.359
],[
39.175
,
-65.359
],[
3.827
,
-42.197
],[
8.258
,
-36.758
],[
46.729
,
-65.259
],[
46.729
,
-43.707
],[
53.476
,
-43.707
],[
53.476
,
-65.359
],[
92.45
,
-37.564
],[
96.982
,
-43.103
],[
60.928
,
-65.359
],[
95.068
,
-65.359
],[
95.068
,
-71.301
],[
53.476
,
-71.301
],[
53.476
,
-84.494
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"查"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
}],
"nm"
:
"查"
,
"np"
:
8
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}]},
"fFamily"
:
"Source Han Sans SC"
},{
"ch"
:
"看"
,
"size"
:
60
,
"style"
:
"Normal"
,
"w"
:
100
,
"data"
:{
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
32.73
,
-21.854
],[
78.049
,
-21.854
],[
78.049
,
-14.301
],[
32.73
,
-14.301
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"看"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
1
,
"ty"
:
"sh"
,
"ix"
:
2
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
32.73
,
-26.788
],[
32.73
,
-34.14
],[
78.049
,
-34.14
],[
78.049
,
-26.788
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"看"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
2
,
"ty"
:
"sh"
,
"ix"
:
3
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
32.73
,
-9.467
],[
78.049
,
-9.467
],[
78.049
,
-1.511
],[
32.73
,
-1.511
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"看"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
3
,
"ty"
:
"sh"
,
"ix"
:
4
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
24.573
,
-0.201
],[
-0.201
,
-1.611
],[
-9.567
,
0.403
],[
0.906
,
-2.518
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
1.41
,
-2.618
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
11.581
,
-6.647
],[
-0.906
,
-1.41
],[
-5.237
,
5.942
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-1.41
,
2.618
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-1.108
,
2.719
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-0.806
,
2.618
],[
-10.071
,
2.115
]],
"o"
:[[
-15.912
,
3.424
],[
0.705
,
1.511
],[
8.862
,
0
],[
-0.705
,
2.518
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-1.108
,
2.719
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-6.445
,
10.876
],[
1.41
,
1.309
],[
7.15
,
-4.23
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
1.611
,
-2.417
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
1.208
,
-2.618
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0.906
,
-2.618
],[
14.603
,
-0.906
],[
0
,
0
]],
"v"
:[[
83.286
,
-83.588
],[
11.884
,
-78.452
],[
13.394
,
-73.114
],[
41.492
,
-73.819
],[
39.175
,
-66.367
],[
13.394
,
-66.367
],[
13.394
,
-60.928
],[
37.161
,
-60.928
],[
33.435
,
-52.771
],[
5.942
,
-52.771
],[
5.942
,
-47.131
],[
30.313
,
-47.131
],[
3.525
,
-20.142
],[
7.855
,
-14.905
],[
26.285
,
-30.313
],[
26.285
,
8.057
],[
32.73
,
8.057
],[
32.73
,
4.028
],[
78.049
,
4.028
],[
78.049
,
8.057
],[
84.695
,
8.057
],[
84.695
,
-39.578
],[
33.435
,
-39.578
],[
38.068
,
-47.131
],[
94.766
,
-47.131
],[
94.766
,
-52.771
],[
40.988
,
-52.771
],[
44.513
,
-60.928
],[
88.824
,
-60.928
],[
88.824
,
-66.367
],[
46.527
,
-66.367
],[
49.045
,
-74.222
],[
87.717
,
-78.653
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"看"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
}],
"nm"
:
"看"
,
"np"
:
7
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}]},
"fFamily"
:
"Source Han Sans SC"
},{
"ch"
:
"更"
,
"size"
:
60
,
"style"
:
"Normal"
,
"w"
:
100
,
"data"
:{
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
3.424
,
5.539
],[
0
,
0
],[
-5.136
,
-3.827
],[
12.387
,
-2.417
],[
-0.806
,
-1.511
],[
-6.747
,
4.532
],[
-23.666
,
-1.007
],[
-1.309
,
1.611
],[
12.991
,
6.143
],[
-1.309
,
6.345
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
4.935
,
-4.23
]],
"o"
:[[
0
,
0
],[
3.525
,
6.042
],[
-6.244
,
3.625
],[
1.511
,
1.611
],[
13.394
,
-2.921
],[
13.797
,
7.452
],[
0.302
,
-2.216
],[
-22.961
,
-0.705
],[
5.539
,
-5.237
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-1.208
,
5.136
],[
-5.035
,
-3.424
]],
"v"
:[[
25.177
,
-24.17
],[
19.437
,
-21.854
],[
32.327
,
-7.15
],[
4.834
,
2.014
],[
8.862
,
7.956
],[
38.47
,
-3.223
],[
94.464
,
7.654
],[
97.385
,
1.007
],[
43.909
,
-7.553
],[
53.375
,
-25.177
],[
87.817
,
-25.177
],[
87.817
,
-63.849
],[
54.382
,
-63.849
],[
54.382
,
-72.711
],[
94.061
,
-72.711
],[
94.061
,
-78.854
],[
6.546
,
-78.854
],[
6.546
,
-72.711
],[
47.433
,
-72.711
],[
47.433
,
-63.849
],[
15.912
,
-63.849
],[
15.912
,
-25.177
],[
46.326
,
-25.177
],[
37.766
,
-10.977
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"更"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
1
,
"ty"
:
"sh"
,
"ix"
:
2
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0.101
,
-2.216
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
2.216
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
22.357
,
-41.794
],[
47.433
,
-41.794
],[
47.433
,
-37.564
],[
47.232
,
-30.917
],[
22.357
,
-30.917
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"更"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
2
,
"ty"
:
"sh"
,
"ix"
:
3
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
2.216
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0.101
,
-2.216
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
54.181
,
-30.917
],[
54.382
,
-37.564
],[
54.382
,
-41.794
],[
81.07
,
-41.794
],[
81.07
,
-30.917
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"更"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
3
,
"ty"
:
"sh"
,
"ix"
:
4
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
22.357
,
-58.109
],[
47.433
,
-58.109
],[
47.433
,
-47.333
],[
22.357
,
-47.333
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"更"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
4
,
"ty"
:
"sh"
,
"ix"
:
5
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
54.382
,
-58.109
],[
81.07
,
-58.109
],[
81.07
,
-47.333
],[
54.382
,
-47.333
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"更"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
}],
"nm"
:
"更"
,
"np"
:
8
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}]},
"fFamily"
:
"Source Han Sans SC"
},{
"ch"
:
"多"
,
"size"
:
60
,
"style"
:
"Normal"
,
"w"
:
100
,
"data"
:{
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
16.214
,
-6.848
],[
-1.007
,
-1.611
],[
-6.647
,
5.438
],[
0
,
0
],[
8.157
,
-4.834
],[
4.532
,
2.518
],[
0
,
0
],[
-3.424
,
-3.021
],[
11.38
,
-2.014
],[
-0.705
,
-1.813
],[
-12.891
,
22.357
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-2.014
,
2.518
]],
"o"
:[[
-6.345
,
8.459
],[
1.511
,
1.108
],[
9.265
,
-4.431
],[
0
,
0
],[
-5.136
,
6.546
],[
-3.625
,
-3.122
],[
0
,
0
],[
4.129
,
2.417
],[
-10.977
,
5.539
],[
1.208
,
1.41
],[
25.681
,
-5.438
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
2.518
,
-2.417
],[
0
,
0
]],
"v"
:[[
46.326
,
-84.595
],[
11.581
,
-59.216
],[
16.214
,
-54.382
],[
40.082
,
-69.388
],[
69.287
,
-69.388
],[
48.743
,
-52.267
],[
35.248
,
-61.533
],[
30.414
,
-58.008
],[
42.801
,
-49.146
],[
8.157
,
-37.665
],[
11.481
,
-31.622
],[
79.66
,
-73.114
],[
75.33
,
-75.833
],[
73.92
,
-75.531
],[
46.93
,
-75.531
],[
53.778
,
-82.983
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"多"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
1
,
"ty"
:
"sh"
,
"ix"
:
2
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
20.444
,
-7.452
],[
-0.906
,
-1.611
],[
-8.359
,
6.949
],[
0
,
0
],[
9.064
,
-5.136
],[
4.23
,
2.921
],[
0
,
0
],[
-3.323
,
-3.424
],[
17.322
,
-1.712
],[
-0.403
,
-1.913
],[
-14.099
,
29.709
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-2.014
,
2.618
]],
"o"
:[[
-7.352
,
10.071
],[
1.511
,
1.309
],[
12.79
,
-5.136
],[
0
,
0
],[
-5.136
,
8.258
],[
-3.525
,
-3.424
],[
0
,
0
],[
4.028
,
3.021
],[
-14.301
,
6.747
],[
1.108
,
1.611
],[
35.248
,
-4.23
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
2.518
,
-2.518
],[
0
,
0
]],
"v"
:[[
62.741
,
-49.649
],[
20.444
,
-20.746
],[
24.774
,
-15.61
],[
56.598
,
-34.14
],[
84.796
,
-34.14
],[
63.144
,
-14.099
],[
50.253
,
-24.573
],[
44.714
,
-21.35
],[
56.9
,
-10.776
],[
7.956
,
1.511
],[
10.776
,
8.057
],[
94.867
,
-37.866
],[
90.436
,
-40.686
],[
89.127
,
-40.283
],[
63.345
,
-40.283
],[
70.193
,
-48.038
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"多"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
}],
"nm"
:
"多"
,
"np"
:
5
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}]},
"fFamily"
:
"Source Han Sans SC"
},{
"ch"
:
"视"
,
"size"
:
60
,
"style"
:
"Normal"
,
"w"
:
100
,
"data"
:{
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
45.721
,
-79.459
],[
45.721
,
-25.882
],[
52.167
,
-25.882
],[
52.167
,
-73.416
],[
84.192
,
-73.416
],[
84.192
,
-25.882
],[
90.939
,
-25.882
],[
90.939
,
-79.459
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"视"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
1
,
"ty"
:
"sh"
,
"ix"
:
2
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
-1.813
,
-3.726
],[
0
,
0
],[
3.928
,
3.726
]],
"o"
:[[
3.726
,
3.928
],[
0
,
0
],[
-1.813
,
-3.625
],[
0
,
0
]],
"v"
:[[
15.912
,
-81.171
],[
25.378
,
-67.978
],[
30.817
,
-71.603
],[
21.048
,
-84.192
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"视"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
2
,
"ty"
:
"sh"
,
"ix"
:
3
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
25.378
,
-13.193
],[
-0.705
,
-1.41
],[
-3.827
,
11.38
],[
0
,
0
],[
-6.647
,
0
],[
0
,
0
],[
-0.906
,
15.811
],[
1.712
,
1.41
],[
3.726
,
0
],[
0
,
0
],[
0
,
2.921
],[
0
,
0
],[
0
,
0
],[
0
,
5.438
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
15.811
],[
1.41
,
1.108
],[
15.811
,
-8.258
],[
0
,
0
],[
0
,
6.445
],[
0
,
0
],[
8.459
,
0
],[
-1.813
,
-0.403
],[
-0.504
,
14.603
],[
0
,
0
],[
-3.021
,
0
],[
0
,
0
],[
0
,
0
],[
1.41
,
-5.942
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
64.453
,
-65.561
],[
64.453
,
-45.218
],[
35.953
,
2.921
],[
40.182
,
7.956
],[
67.676
,
-22.861
],[
67.676
,
-1.813
],[
76.941
,
6.345
],[
86.508
,
6.345
],[
96.982
,
-13.495
],[
91.241
,
-16.214
],[
86.609
,
1.108
],[
77.847
,
1.108
],[
74.02
,
-2.518
],[
74.02
,
-27.795
],[
69.086
,
-27.795
],[
70.898
,
-45.016
],[
70.898
,
-65.561
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"视"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
3
,
"ty"
:
"sh"
,
"ix"
:
4
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
10.474
,
-7.251
],[
-0.604
,
-1.913
],[
-4.028
,
4.431
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-2.115
,
-3.122
],[
0
,
0
],[
3.827
,
4.028
],[
-2.82
,
7.855
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
-6.042
,
13.092
],[
1.108
,
1.208
],[
4.028
,
-3.021
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
3.726
,
4.633
],[
0
,
0
],[
-1.913
,
-2.216
],[
4.935
,
-6.949
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
6.546
,
-67.072
],[
6.546
,
-60.828
],[
31.622
,
-60.828
],[
4.129
,
-27.594
],[
7.452
,
-21.149
],[
19.638
,
-32.428
],[
19.638
,
7.855
],[
25.983
,
7.855
],[
25.983
,
-36.356
],[
36.456
,
-22.458
],[
40.787
,
-27.896
],[
27.795
,
-42.499
],[
39.78
,
-64.856
],[
36.154
,
-67.273
],[
34.946
,
-67.072
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"视"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
}],
"nm"
:
"视"
,
"np"
:
7
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}]},
"fFamily"
:
"Source Han Sans SC"
},{
"ch"
:
"频"
,
"size"
:
60
,
"style"
:
"Normal"
,
"w"
:
100
,
"data"
:{
"shapes"
:[{
"ty"
:
"gr"
,
"it"
:[{
"ind"
:
0
,
"ty"
:
"sh"
,
"ix"
:
1
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
24.573
,
-6.647
],[
-0.504
,
-1.41
],[
-0.302
,
37.766
]],
"o"
:[[
-0.302
,
35.751
],[
1.208
,
1.208
],[
26.184
,
-7.452
],[
0
,
0
]],
"v"
:[[
70.898
,
-50.958
],[
44.916
,
3.323
],[
48.239
,
8.157
],[
76.639
,
-50.958
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"频"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
1
,
"ty"
:
"sh"
,
"ix"
:
2
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
-4.23
,
-4.532
],[
0
,
0
],[
6.848
,
4.834
]],
"o"
:[[
6.848
,
5.035
],[
0
,
0
],[
-4.33
,
-4.431
],[
0
,
0
]],
"v"
:[[
73.416
,
-8.661
],[
93.155
,
8.157
],[
97.284
,
3.726
],[
77.243
,
-12.488
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"频"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
2
,
"ty"
:
"sh"
,
"ix"
:
3
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
21.249
,
-6.949
],[
-0.806
,
-1.712
],[
-5.539
,
22.458
]],
"o"
:[[
-5.237
,
20.847
],[
1.309
,
1.41
],[
22.458
,
-8.157
],[
0
,
0
]],
"v"
:[[
43.506
,
-38.873
],[
5.338
,
3.021
],[
8.963
,
8.258
],[
49.347
,
-37.463
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"频"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
3
,
"ty"
:
"sh"
,
"ix"
:
4
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
4.33
,
-5.237
],[
-1.108
,
-0.906
],[
-2.316
,
8.258
]],
"o"
:[[
-2.115
,
7.452
],[
1.511
,
0.806
],[
4.33
,
-5.539
],[
0
,
0
]],
"v"
:[[
13.898
,
-39.88
],[
4.028
,
-19.638
],[
9.064
,
-16.415
],[
19.638
,
-38.672
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"频"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
4
,
"ty"
:
"sh"
,
"ix"
:
5
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-1.41
,
3.726
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
1.41
,
-3.223
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
1.309
,
-3.323
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
-1.007
,
3.525
],[
0
,
0
]],
"v"
:[[
54.886
,
-61.432
],[
54.886
,
-13.898
],[
60.727
,
-13.898
],[
60.727
,
-55.994
],[
86.407
,
-55.994
],[
86.407
,
-13.998
],[
92.551
,
-13.998
],[
92.551
,
-61.432
],[
74.222
,
-61.432
],[
78.351
,
-72.409
],[
95.572
,
-72.409
],[
95.572
,
-78.452
],[
52.267
,
-78.452
],[
52.267
,
-72.409
],[
71.805
,
-72.409
],[
67.978
,
-61.432
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"频"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
},{
"ind"
:
5
,
"ty"
:
"sh"
,
"ix"
:
6
,
"ks"
:{
"a"
:
0
,
"k"
:{
"i"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"o"
:[[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
],[
0
,
0
]],
"v"
:[[
11.884
,
-75.632
],[
11.884
,
-52.872
],[
4.129
,
-52.872
],[
4.129
,
-46.729
],[
25.378
,
-46.729
],[
25.378
,
-16.113
],[
31.522
,
-16.113
],[
31.522
,
-46.729
],[
50.555
,
-46.729
],[
50.555
,
-52.872
],[
33.234
,
-52.872
],[
33.234
,
-65.863
],[
48.138
,
-65.863
],[
48.138
,
-71.603
],[
33.234
,
-71.603
],[
33.234
,
-84.494
],[
27.09
,
-84.494
],[
27.09
,
-52.872
],[
17.624
,
-52.872
],[
17.624
,
-75.632
]],
"c"
:
true
},
"ix"
:
2
},
"nm"
:
"频"
,
"mn"
:
"ADBE Vector Shape - Group"
,
"hd"
:
false
}],
"nm"
:
"频"
,
"np"
:
9
,
"cix"
:
2
,
"bm"
:
0
,
"ix"
:
1
,
"mn"
:
"ADBE Vector Group"
,
"hd"
:
false
}]},
"fFamily"
:
"Source Han Sans SC"
}]}
\ No newline at end of file
...
...
Please
register
or
login
to post a comment