wangliang_wd

Merge branch 'main' of http://192.168.1.42/developOne/harmonyPool into main

* 'main' of http://192.168.1.42/developOne/harmonyPool:
  fix: 19085 一多适配--折叠屏,人民号>关注:号主动态,单图卡样式标题折行不正确
  图集删除冗余代码
  fix:1)搜索 输入wuhuhuan,全部tab未显示,看图
  fix: 默认生产环境
  fix: 19146 UI还原问题-【uat】进入直播详情页,直播中状态和距离和android不一致
  feat:1)Logger.debug日志中添加一个动态的prefix参数据,方便打印完整的日志信息
  fix: 18088 UI还原问题-【uat】进入视频频道,点击全屏观看后,进度条线比android粗
  fix: 18085 UI还原问题-【uat】进入视频频道,点击全屏观看后,分享按钮和android 显示不一致
  fix: 17578 功能缺陷-【uat】进入沉浸式视频页,标题和昵称字体和android不一致
  fix: 17107 UI还原问题-进入视频全屏,回看间距和字体问题
  fix(18643): UI还原问题-【生产】进入直播频道,进入预告直播间,日期显示效果和ios 不一致,多了个0
  fix: 17007 UI还原问题--视频直播,标题、图标、字体大小,字体和android不一致
  图集删除冗余代码
  fix(18689):UI还原问题-【生产】进入直播预告页,预约日期和iOS不一致,看图
  图集请求网络图片方法修改
@@ -40,10 +40,15 @@ export class Logger { @@ -40,10 +40,15 @@ export class Logger {
40 Logger.domain = domain; 40 Logger.domain = domain;
41 } 41 }
42 42
43 - static debug(...args: string[]) { 43 + static debug(prefixStr?:string,...args: string[]) {
44 if (!Logger.isDebug) { 44 if (!Logger.isDebug) {
45 return 45 return
46 } 46 }
  47 + if(prefixStr){
  48 + Logger.prefix = prefixStr
  49 + }else {
  50 + Logger.prefix = 'SightApp';
  51 + }
47 Logger.logContent(LogLevel.DEBUG, ...args) 52 Logger.logContent(LogLevel.DEBUG, ...args)
48 } 53 }
49 54
@@ -150,4 +155,4 @@ export class Logger { @@ -150,4 +155,4 @@ export class Logger {
150 } 155 }
151 } 156 }
152 157
153 -export default new Logger('SightApp', 0xFF00)  
  158 +// export default new Logger('SightApp', 0xFF00)
@@ -87,6 +87,7 @@ instance.interceptors.response.use(// 响应拦截器response类型就是Axios.r @@ -87,6 +87,7 @@ instance.interceptors.response.use(// 响应拦截器response类型就是Axios.r
87 // return Promise.reject(new Error(message)) 87 // return Promise.reject(new Error(message))
88 // } 88 // }
89 // const data: ResponseBean<any> = response.data 89 // const data: ResponseBean<any> = response.data
  90 +
90 Logger.debug('HttpRequest', 'response ==============start=================') 91 Logger.debug('HttpRequest', 'response ==============start=================')
91 Logger.debug('HttpRequest', 'response: ' + JSON.stringify(response.data)) 92 Logger.debug('HttpRequest', 'response: ' + JSON.stringify(response.data))
92 Logger.debug('HttpRequest', 'response ==============end=================') 93 Logger.debug('HttpRequest', 'response ==============end=================')
@@ -62,25 +62,52 @@ export struct ImageDownloadComponent { @@ -62,25 +62,52 @@ export struct ImageDownloadComponent {
62 * 通过http的request方法从网络下载图片资源 62 * 通过http的request方法从网络下载图片资源
63 */ 63 */
64 async getPicture() { 64 async getPicture() {
65 - console.info(`cj2024 getPicture`)  
66 - http.createHttp()  
67 - .request(this.url,  
68 - (error: BusinessError, data: http.HttpResponse) => { 65 + // 每一个httpRequest对应一个HTTP请求任务,不可复用
  66 + let httpRequest = http.createHttp();
  67 + // 用于订阅HTTP响应头事件
  68 + httpRequest.on('headersReceive', (header: Object) => {
  69 + console.info('header: ' + JSON.stringify(header));
  70 + });
  71 + // 用于订阅HTTP流式响应数据接收事件
  72 + let res = new ArrayBuffer(0);
  73 + httpRequest.on('dataReceive', (data: ArrayBuffer) => {
  74 + const newRes = new ArrayBuffer(res.byteLength + data.byteLength);
  75 + const resView = new Uint8Array(newRes);
  76 + resView.set(new Uint8Array(res));
  77 + resView.set(new Uint8Array(data), res.byteLength);
  78 + res = newRes;
  79 + // console.info('dataReceive res length: ' + res.byteLength);
  80 + });
  81 + // 用于订阅HTTP流式响应数据接收完毕事件
  82 + httpRequest.on('dataEnd', () => {
  83 + this.transcodePixelMap(res);
  84 + // 判断网络获取到的资源是否为ArrayBuffer类型
  85 + console.info(`dataEnd getPicture ${res}`)
  86 + if (res instanceof ArrayBuffer) {
  87 + console.info(`dataEnd getPicture`)
  88 + this.imageBuffer = res as ArrayBuffer;
  89 + }
  90 + console.info('No more data in response, data receive end');
  91 + });
  92 + httpRequest.requestInStream(this.url,
  93 + (error: BusinessError, data: number) => {
69 if (error) { 94 if (error) {
70 // 下载失败时弹窗提示检查网络,不执行后续逻辑 95 // 下载失败时弹窗提示检查网络,不执行后续逻辑
71 promptAction.showToast({ 96 promptAction.showToast({
72 message: $r('app.string.image_request_fail'), 97 message: $r('app.string.image_request_fail'),
73 duration: 2000 98 duration: 2000
74 }) 99 })
  100 + console.error(`http reqeust failed with. Code: ${error.code}, message: ${error.message}`);
75 return; 101 return;
76 } 102 }
77 - this.transcodePixelMap(data);  
78 - // 判断网络获取到的资源是否为ArrayBuffer类型  
79 - console.info(`cj2024 getPicture ${data.result}`)  
80 - if (data.result instanceof ArrayBuffer) {  
81 - console.info(`cj2024 getPicture 222`)  
82 - this.imageBuffer = data.result as ArrayBuffer;  
83 - } 103 + // 取消订阅HTTP响应头事件
  104 + httpRequest.off('headersReceive');
  105 + // 取消订阅HTTP流式响应数据接收事件
  106 + httpRequest.off('dataReceive');
  107 + // 取消订阅HTTP流式响应数据接收完毕事件
  108 + httpRequest.off('dataEnd');
  109 + // 当该请求使用完毕时,调用destroy方法主动销毁
  110 + httpRequest.destroy();
84 } 111 }
85 ) 112 )
86 } 113 }
@@ -89,10 +116,8 @@ export struct ImageDownloadComponent { @@ -89,10 +116,8 @@ export struct ImageDownloadComponent {
89 * 使用createPixelMap将ArrayBuffer类型的图片装换为PixelMap类型 116 * 使用createPixelMap将ArrayBuffer类型的图片装换为PixelMap类型
90 * @param data:网络获取到的资源 117 * @param data:网络获取到的资源
91 */ 118 */
92 - transcodePixelMap(data: http.HttpResponse) {  
93 - console.info(`cj2024 transcodePixelMap ${data.responseCode}`)  
94 - if (http.ResponseCode.OK === data.responseCode) {  
95 - const imageData: ArrayBuffer = data.result as ArrayBuffer; 119 + transcodePixelMap(data: ArrayBuffer) {
  120 + const imageData: ArrayBuffer = data;
96 // 通过ArrayBuffer创建图片源实例。 121 // 通过ArrayBuffer创建图片源实例。
97 const imageSource: image.ImageSource = image.createImageSource(imageData); 122 const imageSource: image.ImageSource = image.createImageSource(imageData);
98 const options: image.InitializationOptions = { 123 const options: image.InitializationOptions = {
@@ -108,7 +133,6 @@ export struct ImageDownloadComponent { @@ -108,7 +133,6 @@ export struct ImageDownloadComponent {
108 this.image = pixelMap; 133 this.image = pixelMap;
109 }); 134 });
110 } 135 }
111 - }  
112 136
113 /** 137 /**
114 * 保存ArrayBuffer到图库 138 * 保存ArrayBuffer到图库
@@ -38,25 +38,52 @@ export struct MultiPictureDetailItemComponent { @@ -38,25 +38,52 @@ export struct MultiPictureDetailItemComponent {
38 * 通过http的request方法从网络下载图片资源 38 * 通过http的request方法从网络下载图片资源
39 */ 39 */
40 async getPicture() { 40 async getPicture() {
41 - console.info(`cj2024 getPicture`)  
42 - http.createHttp()  
43 - .request(this.imageUri,  
44 - (error: BusinessError, data: http.HttpResponse) => { 41 + // 每一个httpRequest对应一个HTTP请求任务,不可复用
  42 + let httpRequest = http.createHttp();
  43 + // 用于订阅HTTP响应头事件
  44 + httpRequest.on('headersReceive', (header: Object) => {
  45 + console.info('header: ' + JSON.stringify(header));
  46 + });
  47 + // 用于订阅HTTP流式响应数据接收事件
  48 + let res = new ArrayBuffer(0);
  49 + httpRequest.on('dataReceive', (data: ArrayBuffer) => {
  50 + const newRes = new ArrayBuffer(res.byteLength + data.byteLength);
  51 + const resView = new Uint8Array(newRes);
  52 + resView.set(new Uint8Array(res));
  53 + resView.set(new Uint8Array(data), res.byteLength);
  54 + res = newRes;
  55 + // console.info('dataReceive res length: ' + res.byteLength);
  56 + });
  57 + // 用于订阅HTTP流式响应数据接收完毕事件
  58 + httpRequest.on('dataEnd', () => {
  59 + this.transcodePixelMap(res);
  60 + // 判断网络获取到的资源是否为ArrayBuffer类型
  61 + console.info(`dataEnd getPicture ${res}`)
  62 + if (res instanceof ArrayBuffer) {
  63 + console.info(`dataEnd getPicture`)
  64 + this.imageBuffer = res as ArrayBuffer;
  65 + }
  66 + console.info('No more data in response, data receive end');
  67 + });
  68 + httpRequest.requestInStream(this.imageUri,
  69 + (error: BusinessError, data: number) => {
45 if (error) { 70 if (error) {
46 // 下载失败时弹窗提示检查网络,不执行后续逻辑 71 // 下载失败时弹窗提示检查网络,不执行后续逻辑
47 promptAction.showToast({ 72 promptAction.showToast({
48 message: $r('app.string.image_request_fail'), 73 message: $r('app.string.image_request_fail'),
49 duration: 2000 74 duration: 2000
50 }) 75 })
  76 + console.error(`http reqeust failed with. Code: ${error.code}, message: ${error.message}`);
51 return; 77 return;
52 } 78 }
53 - this.transcodePixelMap(data);  
54 - // 判断网络获取到的资源是否为ArrayBuffer类型  
55 - console.info(`cj2024 getPicture ${data.result}`)  
56 - if (data.result instanceof ArrayBuffer) {  
57 - console.info(`cj2024 getPicture 222`)  
58 - this.imageBuffer = data.result as ArrayBuffer;  
59 - } 79 + // 取消订阅HTTP响应头事件
  80 + httpRequest.off('headersReceive');
  81 + // 取消订阅HTTP流式响应数据接收事件
  82 + httpRequest.off('dataReceive');
  83 + // 取消订阅HTTP流式响应数据接收完毕事件
  84 + httpRequest.off('dataEnd');
  85 + // 当该请求使用完毕时,调用destroy方法主动销毁
  86 + httpRequest.destroy();
60 } 87 }
61 ) 88 )
62 } 89 }
@@ -65,15 +92,12 @@ export struct MultiPictureDetailItemComponent { @@ -65,15 +92,12 @@ export struct MultiPictureDetailItemComponent {
65 * 使用createPixelMap将ArrayBuffer类型的图片装换为PixelMap类型 92 * 使用createPixelMap将ArrayBuffer类型的图片装换为PixelMap类型
66 * @param data:网络获取到的资源 93 * @param data:网络获取到的资源
67 */ 94 */
68 - transcodePixelMap(data: http.HttpResponse) {  
69 - console.info(`cj2024 transcodePixelMap ${data.responseCode}`)  
70 - if (http.ResponseCode.OK === data.responseCode) {  
71 - const imageData: ArrayBuffer = data.result as ArrayBuffer; 95 + transcodePixelMap(data: ArrayBuffer) {
  96 + const imageData: ArrayBuffer = data;
72 // 通过ArrayBuffer创建图片源实例。 97 // 通过ArrayBuffer创建图片源实例。
73 const imageSource: image.ImageSource = image.createImageSource(imageData); 98 const imageSource: image.ImageSource = image.createImageSource(imageData);
74 this.initCurrentImageInfo(imageSource); 99 this.initCurrentImageInfo(imageSource);
75 } 100 }
76 - }  
77 101
78 /** 102 /**
79 * 设置当前图片的相关信息:uri、whRatio、pixelMap、fitWH、defaultSize、maxScaleValue 103 * 设置当前图片的相关信息:uri、whRatio、pixelMap、fitWH、defaultSize、maxScaleValue
@@ -196,7 +220,6 @@ export struct MultiPictureDetailItemComponent { @@ -196,7 +220,6 @@ export struct MultiPictureDetailItemComponent {
196 }) 220 })
197 .height('100%') 221 .height('100%')
198 .width('100%') 222 .width('100%')
199 - .backgroundColor(Color.Black)  
200 .justifyContent(FlexAlign.Center) 223 .justifyContent(FlexAlign.Center)
201 .gesture( 224 .gesture(
202 GestureGroup( 225 GestureGroup(
@@ -55,7 +55,7 @@ export struct Card14Component { @@ -55,7 +55,7 @@ export struct Card14Component {
55 ) 55 )
56 } 56 }
57 // 左标题,右图 57 // 左标题,右图
58 - Flex({ direction: FlexDirection.Row, justifyContent: FlexAlign.SpaceBetween }) { 58 + Flex({ direction: FlexDirection.Row, justifyContent: FlexAlign.Start }) {
59 59
60 Text() { 60 Text() {
61 if (this.titleMarked) { 61 if (this.titleMarked) {
@@ -77,16 +77,14 @@ export struct Card14Component { @@ -77,16 +77,14 @@ export struct Card14Component {
77 .lineHeight(25) 77 .lineHeight(25)
78 .fontFamily('PingFang SC-Regular') 78 .fontFamily('PingFang SC-Regular')
79 .textAlign(TextAlign.Start) 79 .textAlign(TextAlign.Start)
80 - // .flexBasis('auto')  
81 .margin({right: 12}) 80 .margin({right: 12})
82 - .flexBasis(214) 81 + .width('64%')
83 82
84 Image(this.loadImg ? this.contentDTO.coverUrl : '') 83 Image(this.loadImg ? this.contentDTO.coverUrl : '')
85 .backgroundColor(0xf5f5f5) 84 .backgroundColor(0xf5f5f5)
86 - .flexBasis(117) 85 + .aspectRatio(3 / 2)
87 .height(78) 86 .height(78)
88 .borderRadius($r('app.float.image_border_radius')) 87 .borderRadius($r('app.float.image_border_radius'))
89 - // .flexBasis(160)  
90 .backgroundImageSize(ImageSize.Auto) 88 .backgroundImageSize(ImageSize.Auto)
91 89
92 } 90 }
@@ -216,8 +216,12 @@ export struct LiveBigImage01Component { @@ -216,8 +216,12 @@ export struct LiveBigImage01Component {
216 } else { 216 } else {
217 const month = eventDateTime.getMonth() + 1; 217 const month = eventDateTime.getMonth() + 1;
218 const date = eventDateTime.getDate(); 218 const date = eventDateTime.getDate();
  219 + if(date < 10){
  220 + return `${month}月${'0'+date}日`;
  221 + }else{
219 return `${month}月${date}日`; 222 return `${month}月${date}日`;
220 } 223 }
  224 + }
221 } else { 225 } else {
222 return `${eventTimeStr}`; 226 return `${eventTimeStr}`;
223 } 227 }
@@ -29,24 +29,22 @@ export struct SearchComponent { @@ -29,24 +29,22 @@ export struct SearchComponent {
29 @State searchHistoryData: SearchHistoryItem[] = [] 29 @State searchHistoryData: SearchHistoryItem[] = []
30 @State relatedSearchContentsData: SearchRelatedItem[] = [] 30 @State relatedSearchContentsData: SearchRelatedItem[] = []
31 scroller: Scroller = new Scroller() 31 scroller: Scroller = new Scroller()
32 - @State count:string[] = []  
33 - @State isGetRequest:boolean = false 32 + @State count: string[] = []
  33 + @State isGetRequest: boolean = false
34 @Link fromTabName: string 34 @Link fromTabName: string
35 - @State sameSearch:number = 0 //再次搜索  
36 -  
37 - @StorageProp('currentBreakpoint') @Watch("currentChanged")currentBreakpoint: string = 'sm'; 35 + @State sameSearch: number = 0 //再次搜索
  36 + @StorageProp('currentBreakpoint') @Watch("currentChanged") currentBreakpoint: string = 'sm';
38 private breakpointSystem = new BreakpointSystem(); 37 private breakpointSystem = new BreakpointSystem();
39 - @State percent:number = 1 38 + @State percent: number = 1
40 39
41 - currentChanged(){  
42 - if(this.currentBreakpoint == "md" || this.currentBreakpoint == "lg"){ 40 + currentChanged() {
  41 + if (this.currentBreakpoint == "md" || this.currentBreakpoint == "lg") {
43 this.percent = 0.7 42 this.percent = 0.7
44 - }else { 43 + } else {
45 this.percent = 1 44 this.percent = 1
46 } 45 }
47 } 46 }
48 47
49 -  
50 aboutToAppear() { 48 aboutToAppear() {
51 this.breakpointSystem.register(); 49 this.breakpointSystem.register();
52 this.currentChanged() 50 this.currentChanged()
@@ -68,43 +66,42 @@ export struct SearchComponent { @@ -68,43 +66,42 @@ export struct SearchComponent {
68 this.breakpointSystem.unregister(); 66 this.breakpointSystem.unregister();
69 } 67 }
70 68
71 -  
72 getRelatedSearchContent() { 69 getRelatedSearchContent() {
73 - if(StringUtils.isNotEmpty(this.searchText)){  
74 - SearcherAboutDataModel.getRelatedSearchContentData(encodeURI(this.searchText),getContext(this)).then((value) => { 70 + if (StringUtils.isNotEmpty(this.searchText)) {
  71 + SearcherAboutDataModel.getRelatedSearchContentData(encodeURI(this.searchText), getContext(this)).then((value) => {
75 if (value != null && value.length > 0) { 72 if (value != null && value.length > 0) {
76 this.relatedSearchContentsData = [] 73 this.relatedSearchContentsData = []
77 - value.forEach(item=>{  
78 - let tempValue:string = item 74 + value.forEach(item => {
  75 + let tempValue: string = item
79 let tempArr: string[] = [] 76 let tempArr: string[] = []
80 if (tempValue.indexOf(this.searchText) === -1) { 77 if (tempValue.indexOf(this.searchText) === -1) {
81 tempArr.push(item) 78 tempArr.push(item)
82 - this.relatedSearchContentsData.push(new SearchRelatedItem(item,tempArr))  
83 - }else {  
84 - while (tempValue.indexOf(this.searchText) != -1){ 79 + this.relatedSearchContentsData.push(new SearchRelatedItem(item, tempArr))
  80 + } else {
  81 + while (tempValue.indexOf(this.searchText) != -1) {
85 let index = tempValue.indexOf(this.searchText) 82 let index = tempValue.indexOf(this.searchText)
86 - if(index === 0){ 83 + if (index === 0) {
87 try { 84 try {
88 tempArr.push(this.searchText) 85 tempArr.push(this.searchText)
89 - tempValue = tempValue.substring(this.searchText.length,tempValue.length) 86 + tempValue = tempValue.substring(this.searchText.length, tempValue.length)
90 } catch (e) { 87 } catch (e) {
91 } 88 }
92 - }else { 89 + } else {
93 try { 90 try {
94 - tempArr.push(tempValue.substring(0,index)) 91 + tempArr.push(tempValue.substring(0, index))
95 tempArr.push(this.searchText) 92 tempArr.push(this.searchText)
96 - tempValue = tempValue.substring(index+this.searchText.length,tempValue.length) 93 + tempValue = tempValue.substring(index + this.searchText.length, tempValue.length)
97 } catch (e) { 94 } catch (e) {
98 } 95 }
99 } 96 }
100 } 97 }
101 - if(StringUtils.isNotEmpty(tempValue)){ 98 + if (StringUtils.isNotEmpty(tempValue)) {
102 tempArr.push(tempValue) 99 tempArr.push(tempValue)
103 } 100 }
104 - this.relatedSearchContentsData.push(new SearchRelatedItem(item,tempArr)) 101 + this.relatedSearchContentsData.push(new SearchRelatedItem(item, tempArr))
105 } 102 }
106 }) 103 })
107 - }else{ 104 + } else {
108 this.hasInputContent = false 105 this.hasInputContent = false
109 this.relatedSearchContentsData = [] 106 this.relatedSearchContentsData = []
110 } 107 }
@@ -125,8 +122,9 @@ export struct SearchComponent { @@ -125,8 +122,9 @@ export struct SearchComponent {
125 this.setDefaultHitData() 122 this.setDefaultHitData()
126 }) 123 })
127 } 124 }
128 - setDefaultHitData(){  
129 - if(this.searchTextData.length === 0){ 125 +
  126 + setDefaultHitData() {
  127 + if (this.searchTextData.length === 0) {
130 this.hasNoSearchTextData = true 128 this.hasNoSearchTextData = true
131 this.searchTextData.push("搜索感兴趣的内容") 129 this.searchTextData.push("搜索感兴趣的内容")
132 } 130 }
@@ -136,7 +134,7 @@ export struct SearchComponent { @@ -136,7 +134,7 @@ export struct SearchComponent {
136 this.searchHistoryData = SearcherAboutDataModel.getSearchHistoryData() 134 this.searchHistoryData = SearcherAboutDataModel.getSearchHistoryData()
137 } 135 }
138 136
139 - stopInput(){ 137 + stopInput() {
140 this.controller.stopEditing() 138 this.controller.stopEditing()
141 } 139 }
142 140
@@ -146,11 +144,17 @@ export struct SearchComponent { @@ -146,11 +144,17 @@ export struct SearchComponent {
146 if (!this.hasInputContent) { 144 if (!this.hasInputContent) {
147 Scroll(this.scroller) { 145 Scroll(this.scroller) {
148 Column() { 146 Column() {
149 - if(this.searchHistoryData!=null && this.searchHistoryData.length>0){  
150 - SearchHistoryComponent({ searchHistoryData: $searchHistoryData, onDelHistory: (): void => this.getSearchHistoryData(),onGetSearchRes: (item,index): void => this.getSearchHistoryResData(item,index),onCloseInput : (): void => this.stopInput(),percent:this.percent }) 147 + if (this.searchHistoryData != null && this.searchHistoryData.length > 0) {
  148 + SearchHistoryComponent({
  149 + searchHistoryData: $searchHistoryData,
  150 + onDelHistory: (): void => this.getSearchHistoryData(),
  151 + onGetSearchRes: (item, index): void => this.getSearchHistoryResData(item, index),
  152 + onCloseInput: (): void => this.stopInput(),
  153 + percent: this.percent
  154 + })
151 } 155 }
152 156
153 - if(this.searchHistoryData.length>0){ 157 + if (this.searchHistoryData.length > 0) {
154 //分隔符 158 //分隔符
155 Divider() 159 Divider()
156 .width('100%') 160 .width('100%')
@@ -159,7 +163,10 @@ export struct SearchComponent { @@ -159,7 +163,10 @@ export struct SearchComponent {
159 .strokeWidth(`${this.calcHeight(1)}lpx`) 163 .strokeWidth(`${this.calcHeight(1)}lpx`)
160 } 164 }
161 165
162 - SearchHotsComponent({onGetSearchRes: (item): void => this.getSearchHotResData(item),percent:this.percent}) 166 + SearchHotsComponent({
  167 + onGetSearchRes: (item): void => this.getSearchHotResData(item),
  168 + percent: this.percent
  169 + })
163 } 170 }
164 } 171 }
165 .scrollable(ScrollDirection.Vertical) 172 .scrollable(ScrollDirection.Vertical)
@@ -170,16 +177,28 @@ export struct SearchComponent { @@ -170,16 +177,28 @@ export struct SearchComponent {
170 } else { 177 } else {
171 if (this.hasChooseSearch) { 178 if (this.hasChooseSearch) {
172 //搜索结果 179 //搜索结果
173 - SearchResultComponent({count:this.count,searchText:this.searchText,isGetRequest:this.isGetRequest,onClickTryAgain: (): void => {  
174 - if(StringUtils.isNotEmpty(this.searchText)){ 180 + SearchResultComponent({
  181 + count: this.count,
  182 + searchText: this.searchText,
  183 + isGetRequest: this.isGetRequest,
  184 + onClickTryAgain: (): void => {
  185 + if (StringUtils.isNotEmpty(this.searchText)) {
175 SearcherAboutDataModel.putSearchHistoryData(this.searchText) 186 SearcherAboutDataModel.putSearchHistoryData(this.searchText)
176 this.getSearchHistoryData() 187 this.getSearchHistoryData()
177 this.getSearchInputResData(this.searchText) 188 this.getSearchInputResData(this.searchText)
178 } 189 }
179 - },percent:this.percent,sameSearch:this.sameSearch}) 190 + },
  191 + percent: this.percent,
  192 + sameSearch: this.sameSearch
  193 + })
180 } else { 194 } else {
181 //联想搜索 195 //联想搜索
182 - SearchRelatedComponent({relatedSearchContentData:$relatedSearchContentsData,onGetSearchRes: (item): void => this.getSearchRelatedResData(item),searchText:this.searchText,percent:this.percent}) 196 + SearchRelatedComponent({
  197 + relatedSearchContentData: $relatedSearchContentsData,
  198 + onGetSearchRes: (item): void => this.getSearchRelatedResData(item),
  199 + searchText: this.searchText,
  200 + percent: this.percent
  201 + })
183 } 202 }
184 } 203 }
185 }.height('100%') 204 }.height('100%')
@@ -190,19 +209,19 @@ export struct SearchComponent { @@ -190,19 +209,19 @@ export struct SearchComponent {
190 * 点击搜索记录列表回调 209 * 点击搜索记录列表回调
191 * @param content 210 * @param content
192 */ 211 */
193 - getSearchHistoryResData(content:string,index:number){ 212 + getSearchHistoryResData(content: string, index: number) {
194 //删除单条记录 213 //删除单条记录
195 SearcherAboutDataModel.delSearchSingleHistoryData(index) 214 SearcherAboutDataModel.delSearchSingleHistoryData(index)
196 this.isClickedHistorySearch = true 215 this.isClickedHistorySearch = true
197 this.searchResData(content) 216 this.searchResData(content)
198 } 217 }
199 218
200 - searchResData(content:string){  
201 - trackSearchClick(this.fromTabName,content) 219 + searchResData(content: string) {
  220 + trackSearchClick(this.fromTabName, content)
202 //赋值 221 //赋值
203 this.searchText = content 222 this.searchText = content
204 223
205 - if(StringUtils.isNotEmpty(this.searchText)){ 224 + if (StringUtils.isNotEmpty(this.searchText)) {
206 this.hasInputContent = true 225 this.hasInputContent = true
207 } 226 }
208 227
@@ -223,7 +242,7 @@ export struct SearchComponent { @@ -223,7 +242,7 @@ export struct SearchComponent {
223 * 点击hint搜索列表回调 242 * 点击hint搜索列表回调
224 * @param content 243 * @param content
225 */ 244 */
226 - getSearchHintResData(content:string){ 245 + getSearchHintResData(content: string) {
227 this.isClickedHintSearch = true 246 this.isClickedHintSearch = true
228 this.searchResData(content) 247 this.searchResData(content)
229 } 248 }
@@ -232,7 +251,7 @@ export struct SearchComponent { @@ -232,7 +251,7 @@ export struct SearchComponent {
232 * 点击联想搜索列表回调 251 * 点击联想搜索列表回调
233 * @param content 252 * @param content
234 */ 253 */
235 - getSearchRelatedResData(content:string){ 254 + getSearchRelatedResData(content: string) {
236 this.isClickedRelatedSearch = true 255 this.isClickedRelatedSearch = true
237 this.searchResData(content) 256 this.searchResData(content)
238 } 257 }
@@ -241,7 +260,7 @@ export struct SearchComponent { @@ -241,7 +260,7 @@ export struct SearchComponent {
241 * 点击热词搜索列表回调 260 * 点击热词搜索列表回调
242 * @param content 261 * @param content
243 */ 262 */
244 - getSearchHotResData(content:string){ 263 + getSearchHotResData(content: string) {
245 this.isClickedHotSearch = true 264 this.isClickedHotSearch = true
246 this.searchResData(content) 265 this.searchResData(content)
247 } 266 }
@@ -250,17 +269,19 @@ export struct SearchComponent { @@ -250,17 +269,19 @@ export struct SearchComponent {
250 * 点击输入法搜索搜索列表回调 269 * 点击输入法搜索搜索列表回调
251 * @param content 270 * @param content
252 */ 271 */
253 - getSearchInputResData(content:string){ 272 + getSearchInputResData(content: string) {
254 this.isClickedInputSearch = true 273 this.isClickedInputSearch = true
255 this.searchResData(content) 274 this.searchResData(content)
256 } 275 }
257 276
258 //搜索框 277 //搜索框
259 - @Builder searchInputComponent() { 278 + @Builder
  279 + searchInputComponent() {
260 Row() { 280 Row() {
261 //左 281 //左
262 Stack({ alignContent: Alignment.Start }) { 282 Stack({ alignContent: Alignment.Start }) {
263 - if (this.searchTextData != null && this.searchTextData.length > 0 && !this.hasInputContent && StringUtils.isEmpty(this.searchText)) { 283 + if (this.searchTextData != null && this.searchTextData.length > 0 && !this.hasInputContent &&
  284 + StringUtils.isEmpty(this.searchText)) {
264 Swiper(this.swiperController) { 285 Swiper(this.swiperController) {
265 ForEach(this.searchTextData, (item: string, index: number) => { 286 ForEach(this.searchTextData, (item: string, index: number) => {
266 Text(item) 287 Text(item)
@@ -285,42 +306,42 @@ export struct SearchComponent { @@ -285,42 +306,42 @@ export struct SearchComponent {
285 this.curHintSearchData = this.searchTextData[index] 306 this.curHintSearchData = this.searchTextData[index]
286 }) 307 })
287 } 308 }
288 - Row(){  
289 - Search({ value: this.searchText, placeholder: '', controller: this.controller}) 309 + Row() {
  310 + Search({ value: this.searchText, placeholder: '', controller: this.controller })
290 .layoutWeight(1) 311 .layoutWeight(1)
291 .height(`${this.calcHeight(69)}lpx`) 312 .height(`${this.calcHeight(69)}lpx`)
292 .backgroundColor($r('app.color.color_transparent')) 313 .backgroundColor($r('app.color.color_transparent'))
293 - .textFont({ size: `${this.calcHeight(27)}lpx`, weight: 400 })  
294 - // .defaultFocus(true) 314 + .textFont({ size: `${this.calcHeight(27)}lpx`, weight: 400 })// .defaultFocus(true)
295 .id("searchId") 315 .id("searchId")
296 .searchIcon({ 316 .searchIcon({
297 - size:0 317 + size: 0
298 }) 318 })
299 .cancelButton({ 319 .cancelButton({
300 - style:CancelButtonStyle.INVISIBLE 320 + style: CancelButtonStyle.INVISIBLE
301 }) 321 })
302 - .caretStyle({color:Color.Pink}) 322 + .caretStyle({ color: Color.Pink })
303 .onSubmit((value: string) => { 323 .onSubmit((value: string) => {
304 - if(StringUtils.isNotEmpty(this.searchText)){ 324 + if (StringUtils.isNotEmpty(this.searchText)) {
305 SearcherAboutDataModel.putSearchHistoryData(this.searchText) 325 SearcherAboutDataModel.putSearchHistoryData(this.searchText)
306 this.getSearchHistoryData() 326 this.getSearchHistoryData()
307 this.getSearchInputResData(this.searchText) 327 this.getSearchInputResData(this.searchText)
308 - }else{  
309 - if(!this.hasNoSearchTextData){  
310 - if(StringUtils.isEmpty(this.curHintSearchData)){ 328 + } else {
  329 + if (!this.hasNoSearchTextData) {
  330 + if (StringUtils.isEmpty(this.curHintSearchData)) {
311 this.curHintSearchData = this.searchTextData[0] 331 this.curHintSearchData = this.searchTextData[0]
312 } 332 }
313 this.getSearchHintResData(this.curHintSearchData) 333 this.getSearchHintResData(this.curHintSearchData)
314 - }else{ 334 + } else {
315 ToastUtils.shortToast("请输入搜索关键词") 335 ToastUtils.shortToast("请输入搜索关键词")
316 } 336 }
317 } 337 }
318 }) 338 })
319 .onChange((value: string) => { 339 .onChange((value: string) => {
320 this.searchText = value 340 this.searchText = value
321 - if(this.isClickedHistorySearch || this.isClickedHotSearch || this.isClickedRelatedSearch || this.isClickedInputSearch|| this.isClickedHintSearch){ 341 + if (this.isClickedHistorySearch || this.isClickedHotSearch || this.isClickedRelatedSearch ||
  342 + this.isClickedInputSearch || this.isClickedHintSearch) {
322 this.hasChooseSearch = true 343 this.hasChooseSearch = true
323 - }else{ 344 + } else {
324 this.hasChooseSearch = false 345 this.hasChooseSearch = false
325 } 346 }
326 347
@@ -330,10 +351,11 @@ export struct SearchComponent { @@ -330,10 +351,11 @@ export struct SearchComponent {
330 this.hasInputContent = false 351 this.hasInputContent = false
331 } 352 }
332 353
333 - if(this.isClickedHistorySearch || this.isClickedHotSearch || this.isClickedRelatedSearch || this.isClickedInputSearch|| this.isClickedHintSearch){ 354 + if (this.isClickedHistorySearch || this.isClickedHotSearch || this.isClickedRelatedSearch ||
  355 + this.isClickedInputSearch || this.isClickedHintSearch) {
334 this.resetSearch() 356 this.resetSearch()
335 - }else{  
336 - if(this.hasInputContent){ 357 + } else {
  358 + if (this.hasInputContent) {
337 this.getRelatedSearchContent() 359 this.getRelatedSearchContent()
338 } 360 }
339 } 361 }
@@ -344,14 +366,14 @@ export struct SearchComponent { @@ -344,14 +366,14 @@ export struct SearchComponent {
344 .height(`${this.calcHeight(31)}lpx`) 366 .height(`${this.calcHeight(31)}lpx`)
345 .objectFit(ImageFit.Auto) 367 .objectFit(ImageFit.Auto)
346 .interpolation(ImageInterpolation.Medium) 368 .interpolation(ImageInterpolation.Medium)
347 - .onClick(()=>{ 369 + .onClick(() => {
348 this.searchText = "" 370 this.searchText = ""
349 }) 371 })
350 - .offset({x:10}) 372 + .offset({ x: 10 })
351 .enabled(true) 373 .enabled(true)
352 .visibility(StringUtils.isEmpty(this.searchText) ? Visibility.Hidden : Visibility.Visible) 374 .visibility(StringUtils.isEmpty(this.searchText) ? Visibility.Hidden : Visibility.Visible)
353 375
354 - }.padding({right:`${this.calcHeight(70)}lpx`}) 376 + }.padding({ right: `${this.calcHeight(70)}lpx` })
355 .layoutWeight(1) 377 .layoutWeight(1)
356 .justifyContent(FlexAlign.SpaceBetween) 378 .justifyContent(FlexAlign.SpaceBetween)
357 } 379 }
@@ -379,21 +401,29 @@ export struct SearchComponent { @@ -379,21 +401,29 @@ export struct SearchComponent {
379 .alignItems(VerticalAlign.Center) 401 .alignItems(VerticalAlign.Center)
380 } 402 }
381 403
382 -  
383 getSearchResultCountData() { 404 getSearchResultCountData() {
384 - SearcherAboutDataModel.getSearchResultCountData(encodeURI(this.searchText),getContext(this)).then((value) => { 405 + SearcherAboutDataModel.getSearchResultCountData(encodeURI(this.searchText), getContext(this)).then((value) => {
385 if (value != null) { 406 if (value != null) {
386 this.count = [] 407 this.count = []
387 - if(value.allTotal!=0){ 408 +
  409 + /*
  410 + 全部 tab, allTotal> 0 或其它的tab有一个出现
  411 + */
  412 + let haveAll = false
  413 + if (value.cmsTotal != 0 || value.rmhTotal != 0 || value.videoTotal != 0 || value.activityTotal != 0) {
  414 + haveAll = true
  415 + }
  416 +
  417 + if (value.allTotal != 0 || haveAll) {
388 this.count.push("全部") 418 this.count.push("全部")
389 } 419 }
390 - if(value.cmsTotal!=0){ 420 + if (value.cmsTotal != 0) {
391 this.count.push("精选") 421 this.count.push("精选")
392 } 422 }
393 - if(value.rmhTotal!=0){ 423 + if (value.rmhTotal != 0) {
394 this.count.push("人民号") 424 this.count.push("人民号")
395 } 425 }
396 - if(value.videoTotal!=0){ 426 + if (value.videoTotal != 0) {
397 this.count.push("视频") 427 this.count.push("视频")
398 } 428 }
399 //屏蔽活动 429 //屏蔽活动
@@ -411,7 +441,7 @@ export struct SearchComponent { @@ -411,7 +441,7 @@ export struct SearchComponent {
411 }) 441 })
412 } 442 }
413 443
414 - resetSearch(){ 444 + resetSearch() {
415 this.isClickedHistorySearch = false 445 this.isClickedHistorySearch = false
416 this.isClickedHotSearch = false 446 this.isClickedHotSearch = false
417 this.isClickedRelatedSearch = false 447 this.isClickedRelatedSearch = false
@@ -419,12 +449,12 @@ export struct SearchComponent { @@ -419,12 +449,12 @@ export struct SearchComponent {
419 this.isClickedHintSearch = false 449 this.isClickedHintSearch = false
420 } 450 }
421 451
422 - calcHeight(value:number): number{ 452 + calcHeight(value: number): number {
423 return value * this.percent 453 return value * this.percent
424 } 454 }
425 } 455 }
426 456
427 -function trackSearchClick(upOneLevelPageName: string,keyword:string){ 457 +function trackSearchClick(upOneLevelPageName: string, keyword: string) {
428 let params: ParamType = {} 458 let params: ParamType = {}
429 459
430 params["keyword"] = keyword 460 params["keyword"] = keyword
@@ -38,25 +38,53 @@ export struct ImageItemView { @@ -38,25 +38,53 @@ export struct ImageItemView {
38 * 通过http的request方法从网络下载图片资源 38 * 通过http的request方法从网络下载图片资源
39 */ 39 */
40 async getPicture() { 40 async getPicture() {
41 - console.info(`cj2024 getPicture`)  
42 - http.createHttp()  
43 - .request(this.imageUri,  
44 - (error: BusinessError, data: http.HttpResponse) => { 41 + // 每一个httpRequest对应一个HTTP请求任务,不可复用
  42 + let httpRequest = http.createHttp();
  43 + // 用于订阅HTTP响应头事件
  44 + httpRequest.on('headersReceive', (header: Object) => {
  45 + console.info('header: ' + JSON.stringify(header));
  46 + });
  47 + // 用于订阅HTTP流式响应数据接收事件
  48 + let res = new ArrayBuffer(0);
  49 + httpRequest.on('dataReceive', (data: ArrayBuffer) => {
  50 + const newRes = new ArrayBuffer(res.byteLength + data.byteLength);
  51 + const resView = new Uint8Array(newRes);
  52 + resView.set(new Uint8Array(res));
  53 + resView.set(new Uint8Array(data), res.byteLength);
  54 + res = newRes;
  55 + // console.info('dataReceive res length: ' + res.byteLength);
  56 + });
  57 + // 用于订阅HTTP流式响应数据接收完毕事件
  58 + httpRequest.on('dataEnd', () => {
  59 + this.transcodePixelMap(res);
  60 + // 判断网络获取到的资源是否为ArrayBuffer类型
  61 + console.info(`dataEnd getPicture ${res}`)
  62 + if (res instanceof ArrayBuffer) {
  63 + console.info(`dataEnd getPicture`)
  64 + this.imageBuffer = res as ArrayBuffer;
  65 + }
  66 + console.info('No more data in response, data receive end');
  67 + });
  68 + httpRequest.requestInStream(this.imageUri,
  69 + (error: BusinessError, data: number) => {
45 if (error) { 70 if (error) {
46 // 下载失败时弹窗提示检查网络,不执行后续逻辑 71 // 下载失败时弹窗提示检查网络,不执行后续逻辑
47 promptAction.showToast({ 72 promptAction.showToast({
48 message: $r('app.string.image_request_fail'), 73 message: $r('app.string.image_request_fail'),
49 duration: 2000 74 duration: 2000
50 }) 75 })
  76 + this.getPicture()
  77 + console.error(`http reqeust failed with. Code: ${error.code}, message: ${error.message}`);
51 return; 78 return;
52 } 79 }
53 - this.transcodePixelMap(data);  
54 - // 判断网络获取到的资源是否为ArrayBuffer类型  
55 - console.info(`cj2024 getPicture ${data.result}`)  
56 - if (data.result instanceof ArrayBuffer) {  
57 - console.info(`cj2024 getPicture 222`)  
58 - this.imageBuffer = data.result as ArrayBuffer;  
59 - } 80 + // 取消订阅HTTP响应头事件
  81 + httpRequest.off('headersReceive');
  82 + // 取消订阅HTTP流式响应数据接收事件
  83 + httpRequest.off('dataReceive');
  84 + // 取消订阅HTTP流式响应数据接收完毕事件
  85 + httpRequest.off('dataEnd');
  86 + // 当该请求使用完毕时,调用destroy方法主动销毁
  87 + httpRequest.destroy();
60 } 88 }
61 ) 89 )
62 } 90 }
@@ -65,15 +93,12 @@ export struct ImageItemView { @@ -65,15 +93,12 @@ export struct ImageItemView {
65 * 使用createPixelMap将ArrayBuffer类型的图片装换为PixelMap类型 93 * 使用createPixelMap将ArrayBuffer类型的图片装换为PixelMap类型
66 * @param data:网络获取到的资源 94 * @param data:网络获取到的资源
67 */ 95 */
68 - transcodePixelMap(data: http.HttpResponse) {  
69 - console.info(`cj2024 transcodePixelMap ${data.responseCode}`)  
70 - if (http.ResponseCode.OK === data.responseCode) {  
71 - const imageData: ArrayBuffer = data.result as ArrayBuffer; 96 + transcodePixelMap(data: ArrayBuffer) {
  97 + const imageData: ArrayBuffer = data;
72 // 通过ArrayBuffer创建图片源实例。 98 // 通过ArrayBuffer创建图片源实例。
73 const imageSource: image.ImageSource = image.createImageSource(imageData); 99 const imageSource: image.ImageSource = image.createImageSource(imageData);
74 this.initCurrentImageInfo(imageSource); 100 this.initCurrentImageInfo(imageSource);
75 } 101 }
76 - }  
77 102
78 /** 103 /**
79 * 根据图片宽高比及窗口大小计算图片的默认宽高,即,图片最适配屏幕的大小 104 * 根据图片宽高比及窗口大小计算图片的默认宽高,即,图片最适配屏幕的大小
@@ -154,7 +154,12 @@ export struct LiveCountdownComponent { @@ -154,7 +154,12 @@ export struct LiveCountdownComponent {
154 if (StringUtils.isNotEmpty(this.liveDetailsBean.liveInfo?.planStartTime)) { 154 if (StringUtils.isNotEmpty(this.liveDetailsBean.liveInfo?.planStartTime)) {
155 let playStartTimeTmp = this.liveDetailsBean.liveInfo?.planStartTime + '' 155 let playStartTimeTmp = this.liveDetailsBean.liveInfo?.planStartTime + ''
156 this.month = Number(playStartTimeTmp.substring(5, 7)).toString() 156 this.month = Number(playStartTimeTmp.substring(5, 7)).toString()
157 - this.day = playStartTimeTmp.substring(8, 10) 157 + let tempDay = playStartTimeTmp.substring(8, 10)
  158 + if(tempDay.startsWith('0')){
  159 + this.day = playStartTimeTmp.substring(9, 10)
  160 + }else{
  161 + this.day = tempDay
  162 + }
158 this.hour = playStartTimeTmp.substring(11, 13) 163 this.hour = playStartTimeTmp.substring(11, 13)
159 this.minute = playStartTimeTmp.substring(14, 16) 164 this.minute = playStartTimeTmp.substring(14, 16)
160 } 165 }
@@ -223,6 +223,7 @@ export struct PlayUIComponent { @@ -223,6 +223,7 @@ export struct PlayUIComponent {
223 right: 4, 223 right: 4,
224 bottom: 1 224 bottom: 1
225 }) 225 })
  226 + // .margin({left: this.contentDetailData?.rmhInfo ? 0 : 34})
226 } 227 }
227 //回看 228 //回看
228 else if (this.contentDetailData.liveInfo?.liveState == 'end') { 229 else if (this.contentDetailData.liveInfo?.liveState == 'end') {
@@ -154,6 +154,7 @@ export struct PlayerTitleComponent { @@ -154,6 +154,7 @@ export struct PlayerTitleComponent {
154 top: 0, 154 top: 0,
155 bottom: 0 155 bottom: 0
156 } : 4) 156 } : 4)
  157 + .margin({left: this.contentDetailData.rmhInfo?.rmhName ? 0 : 34})
157 } 158 }
158 } 159 }
159 } 160 }
@@ -37,6 +37,7 @@ export struct PlayerProgressFullScreenView { @@ -37,6 +37,7 @@ export struct PlayerProgressFullScreenView {
37 type: SliderBlockType.IMAGE, 37 type: SliderBlockType.IMAGE,
38 image: $r('app.media.ic_player_block') 38 image: $r('app.media.ic_player_block')
39 }) 39 })
  40 + .trackThickness(1)
40 .blockSize({ width: 18, height: 12 }) 41 .blockSize({ width: 18, height: 12 })
41 .width('100%') 42 .width('100%')
42 .height(19) 43 .height(19)
@@ -107,7 +107,7 @@ export struct PlayerTitleView { @@ -107,7 +107,7 @@ export struct PlayerTitleView {
107 Row() { 107 Row() {
108 Text("@" + this.getName()) 108 Text("@" + this.getName())
109 .fontColor(Color.White) 109 .fontColor(Color.White)
110 - .fontSize(17) 110 + .fontSize(14)
111 .maxLines(1) 111 .maxLines(1)
112 .lineHeight(25) 112 .lineHeight(25)
113 .fontWeight(600) 113 .fontWeight(600)
@@ -115,7 +115,7 @@ export struct PlayerTitleView { @@ -115,7 +115,7 @@ export struct PlayerTitleView {
115 .textOverflow({ overflow: TextOverflow.Ellipsis }) 115 .textOverflow({ overflow: TextOverflow.Ellipsis })
116 116
117 if (this.getIcon()) { 117 if (this.getIcon()) {
118 - Image(this.getIcon()).height(10).margin({ left: 4 }) 118 + Image(this.getIcon()).height(11).margin({ left: 4, top: 3 })
119 } 119 }
120 }.margin({ bottom: 8 }) 120 }.margin({ bottom: 8 })
121 121
@@ -126,7 +126,7 @@ export struct PlayerTitleView { @@ -126,7 +126,7 @@ export struct PlayerTitleView {
126 .fontSize(15) 126 .fontSize(15)
127 .maxLines(3) 127 .maxLines(3)
128 .lineHeight(20) 128 .lineHeight(20)
129 - .fontWeight(400) 129 + .fontWeight(600)
130 .fontFamily('PingFang SC-Regular') 130 .fontFamily('PingFang SC-Regular')
131 .textOverflow({ overflow: TextOverflow.Ellipsis }) 131 .textOverflow({ overflow: TextOverflow.Ellipsis })
132 .margin({ bottom: 8 }) 132 .margin({ bottom: 8 })
@@ -35,9 +35,6 @@ export struct MultiPictureDetailPageComponent { @@ -35,9 +35,6 @@ export struct MultiPictureDetailPageComponent {
35 private relId: string = '' 35 private relId: string = ''
36 private contentId: string = '' 36 private contentId: string = ''
37 private relType: string = '' 37 private relType: string = ''
38 - private displayTool = display.getDefaultDisplaySync()  
39 - @State nShowDownloadTitleHeight: number = 0  
40 - @State titleHeight: number = 0  
41 @State index: number = 0 38 @State index: number = 0
42 @State currentIndex: number = 0 39 @State currentIndex: number = 0
43 @Provide contentDetailData: ContentDetailDTO = {} as ContentDetailDTO 40 @Provide contentDetailData: ContentDetailDTO = {} as ContentDetailDTO
@@ -51,7 +48,6 @@ export struct MultiPictureDetailPageComponent { @@ -51,7 +48,6 @@ export struct MultiPictureDetailPageComponent {
51 @State swiperIndex: number = 0; 48 @State swiperIndex: number = 0;
52 @Provide followStatus: string | undefined = undefined // 关注状态 49 @Provide followStatus: string | undefined = undefined // 关注状态
53 @Provide showCommentList: boolean = false 50 @Provide showCommentList: boolean = false
54 - private subScroller: Scroller = new Scroller()  
55 private scroller: Scroller = new Scroller() 51 private scroller: Scroller = new Scroller()
56 private listScroller: ListScroller = new ListScroller() 52 private listScroller: ListScroller = new ListScroller()
57 @State contentStartOffset: number = 0; 53 @State contentStartOffset: number = 0;
@@ -80,9 +76,6 @@ export struct MultiPictureDetailPageComponent { @@ -80,9 +76,6 @@ export struct MultiPictureDetailPageComponent {
80 } 76 }
81 77
82 async aboutToAppear() { 78 async aboutToAppear() {
83 - //获取宽高尺寸  
84 - this.titleHeight = this.displayTool.width * 227 / 375  
85 - this.nShowDownloadTitleHeight = this.displayTool.width * 311 / 375  
86 //注册字体 79 //注册字体
87 // font.registerFont({ 80 // font.registerFont({
88 // familyName: 'BebasNeueBold', 81 // familyName: 'BebasNeueBold',