提交会议页面
This commit is contained in:
parent
ae211c8b35
commit
c8184e2b32
File diff suppressed because it is too large
Load Diff
@ -25,3 +25,5 @@ export { DataWebModel } from './src/main/ets/models/DataWebModel'
|
|||||||
export { PromptActionClass } from './src/main/ets/components/PromptActionClass'
|
export { PromptActionClass } from './src/main/ets/components/PromptActionClass'
|
||||||
|
|
||||||
export { RequestDefaultModel } from './src/main/ets/models/RequestDefaultModel'
|
export { RequestDefaultModel } from './src/main/ets/models/RequestDefaultModel'
|
||||||
|
|
||||||
|
export { HdList, HdListController } from './src/main/ets/components/HdList'
|
||||||
|
|||||||
119
commons/basic/src/main/ets/components/HdList.ets
Normal file
119
commons/basic/src/main/ets/components/HdList.ets
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
import { BasicConstant } from '../constants/BasicConstant'
|
||||||
|
|
||||||
|
export class HdListController {
|
||||||
|
loaded: () => void = () => {
|
||||||
|
}
|
||||||
|
finished: () => void = () => {
|
||||||
|
}
|
||||||
|
refreshed: () => void = () => {
|
||||||
|
}
|
||||||
|
reload: () => void = () => {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Component
|
||||||
|
export struct HdList {
|
||||||
|
@State
|
||||||
|
refreshing: boolean = false
|
||||||
|
@State
|
||||||
|
finished: boolean = false
|
||||||
|
@State
|
||||||
|
loading: boolean = false
|
||||||
|
// options
|
||||||
|
lw: number = 0
|
||||||
|
|
||||||
|
@Builder
|
||||||
|
defaultListContent() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@BuilderParam
|
||||||
|
listContent: () => void = this.defaultListContent
|
||||||
|
// function
|
||||||
|
onLoad: () => void = () => {
|
||||||
|
}
|
||||||
|
onRefresh: () => void = () => {
|
||||||
|
}
|
||||||
|
// controller
|
||||||
|
controller: HdListController = new HdListController()
|
||||||
|
scroller: Scroller = new Scroller()
|
||||||
|
|
||||||
|
aboutToAppear() {
|
||||||
|
if (this.controller) {
|
||||||
|
this.controller.loaded = () => this.loading = false
|
||||||
|
this.controller.finished = () => this.finished = true
|
||||||
|
this.controller.refreshed = () => this.refreshing = false
|
||||||
|
this.controller.reload = () => {
|
||||||
|
this.finished = false
|
||||||
|
this.refreshing = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Builder
|
||||||
|
loadMoreBuilder() {
|
||||||
|
ListItem() {
|
||||||
|
if (this.finished) {
|
||||||
|
Row() {
|
||||||
|
Text($r('app.string.hd_list_finished'))
|
||||||
|
.fontColor(Color.Gray)
|
||||||
|
.fontSize($r('app.float.hd_list_load_font'))
|
||||||
|
}
|
||||||
|
.height($r('app.float.hd_list_load_height'))
|
||||||
|
.width('100%')
|
||||||
|
.justifyContent(FlexAlign.Center)
|
||||||
|
} else if (this.loading && !this.finished) {
|
||||||
|
Row() {
|
||||||
|
LoadingProgress()
|
||||||
|
.width($r('app.float.hd_list_load_icon'))
|
||||||
|
Text($r('app.string.hd_list_loading'))
|
||||||
|
.fontColor(Color.Gray)
|
||||||
|
.fontSize($r('app.float.hd_list_load_font'))
|
||||||
|
}
|
||||||
|
.height($r('app.float.hd_list_load_height'))
|
||||||
|
.width('100%')
|
||||||
|
.justifyContent(FlexAlign.Center)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.height($r('app.float.hd_list_load_height'))
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
Refresh({ refreshing: $$this.refreshing }) {
|
||||||
|
List({ scroller: this.scroller }) {
|
||||||
|
this.listContent()
|
||||||
|
this.loadMoreBuilder()
|
||||||
|
}
|
||||||
|
.width('100%')
|
||||||
|
.height('100%')
|
||||||
|
.padding({ left: BasicConstant.SPACE_LG, right: BasicConstant.SPACE_LG })
|
||||||
|
.divider({
|
||||||
|
strokeWidth: $r('app.float.common_border_width'),
|
||||||
|
color: $r('app.color.common_gray_border')
|
||||||
|
})
|
||||||
|
.onReachEnd(() => {
|
||||||
|
if (this.loading || this.refreshing || this.finished) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.loading = true
|
||||||
|
this.onLoad()
|
||||||
|
})
|
||||||
|
.scrollBar(BarState.Off)
|
||||||
|
.nestedScroll({
|
||||||
|
scrollForward: NestedScrollMode.PARENT_FIRST,
|
||||||
|
scrollBackward: NestedScrollMode.SELF_FIRST
|
||||||
|
})
|
||||||
|
.edgeEffect(EdgeEffect.None)
|
||||||
|
}
|
||||||
|
.width('100%')
|
||||||
|
.height('100%')
|
||||||
|
.layoutWeight(this.lw)
|
||||||
|
.onRefreshing(() => {
|
||||||
|
if (this.loading) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.finished = false
|
||||||
|
this.onRefresh()
|
||||||
|
// tip: must next tick
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
13
features/Home/src/main/ets/components/ItemComp.ets
Normal file
13
features/Home/src/main/ets/components/ItemComp.ets
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
import { MeetingItemModel,ItemModel } from '../model/ItemModel'
|
||||||
|
@Component
|
||||||
|
export struct ItemComp {
|
||||||
|
item: MeetingItemModel = new MeetingItemModel({} as ItemModel)
|
||||||
|
|
||||||
|
build() {
|
||||||
|
Column({ space: 12 }) {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
105
features/Home/src/main/ets/components/ListComp.ets
Normal file
105
features/Home/src/main/ets/components/ListComp.ets
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
import { ItemComp } from './ItemComp'
|
||||||
|
import { MeetingItemModel } from '../model/ItemModel'
|
||||||
|
import { HdList, HdListController,BasicConstant } from '@itcast/basic/Index'
|
||||||
|
import promptAction from '@ohos.promptAction'
|
||||||
|
import HashMap from '@ohos.util.HashMap';
|
||||||
|
import { hdHttp } from '@itcast/basic'
|
||||||
|
|
||||||
|
@Component
|
||||||
|
export struct ListComp {
|
||||||
|
@State
|
||||||
|
list: MeetingItemModel[] = []
|
||||||
|
controller = new HdListController()
|
||||||
|
@State
|
||||||
|
page: number = 1
|
||||||
|
@State
|
||||||
|
keyword: string = ''
|
||||||
|
@Prop
|
||||||
|
@Watch('onUpdate')
|
||||||
|
sort: number = 30
|
||||||
|
timer: number = -1
|
||||||
|
hashMap: HashMap<string, string> = new HashMap();
|
||||||
|
|
||||||
|
onUpdate() {
|
||||||
|
if (this.timer) clearTimeout(this.timer)
|
||||||
|
this.timer = setTimeout(() => {
|
||||||
|
this.controller.reload()
|
||||||
|
this.onRefresh()
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
|
|
||||||
|
onRefresh() {
|
||||||
|
this.page = 1
|
||||||
|
this.hashMap.clear();
|
||||||
|
// this.hashMap.set('mobile',this.mobile)
|
||||||
|
//
|
||||||
|
// this.hashMap.set('current_spec','hongmeng')
|
||||||
|
// hdHttp.httpReq<string>(this.loginUrl,this.hashMap).then(async (res: HdResponse<string>) => {
|
||||||
|
// this.loading = false
|
||||||
|
// logger.info('Response login'+res);
|
||||||
|
// console.info(`Response login succeeded: ${res}`);
|
||||||
|
// let json:LoginInfo = JSON.parse(res+'') as LoginInfo;
|
||||||
|
//
|
||||||
|
// if(json.code=='1')
|
||||||
|
// {
|
||||||
|
// this.getSaveUserInfor(1,json)
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// promptAction.showToast({ message: json.message, duration: 1000 })
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// }).catch((err: BusinessError) => {
|
||||||
|
// this.loading = false
|
||||||
|
// console.info(`Response login fail: ${err}`);
|
||||||
|
// })
|
||||||
|
// InterviewService.findInterviewList({
|
||||||
|
// questionBankType: 9,
|
||||||
|
// page: this.page,
|
||||||
|
// sort: this.sort,
|
||||||
|
// keyword: this.keyword
|
||||||
|
// }).then(res => {
|
||||||
|
// this.list = res.data.rows
|
||||||
|
// this.controller.refreshed()
|
||||||
|
// if (this.page >= res.data.pageTotal) {
|
||||||
|
// this.controller.finished()
|
||||||
|
// } else {
|
||||||
|
// this.page++
|
||||||
|
// }
|
||||||
|
// promptAction.showToast({ message: '已更新' })
|
||||||
|
// })
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
HdList({
|
||||||
|
lw: 1,
|
||||||
|
controller: this.controller,
|
||||||
|
onRefresh: () => {
|
||||||
|
this.onRefresh()
|
||||||
|
},
|
||||||
|
onLoad: () => {
|
||||||
|
// InterviewService.findInterviewList({
|
||||||
|
// questionBankType: 9,
|
||||||
|
// page: this.page,
|
||||||
|
// sort: this.sort,
|
||||||
|
// keyword: this.keyword
|
||||||
|
// }).then(res => {
|
||||||
|
// this.list.push(...res.data.rows)
|
||||||
|
// this.controller.loaded()
|
||||||
|
// if (this.page >= res.data.pageTotal) {
|
||||||
|
// this.controller.finished()
|
||||||
|
// } else {
|
||||||
|
// this.page++
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
}
|
||||||
|
}) {
|
||||||
|
ForEach(this.list, (item: MeetingItemModel) => {
|
||||||
|
ListItem() {
|
||||||
|
ItemComp({ item })
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,9 +1,27 @@
|
|||||||
|
import { HdNav } from '@itcast/basic'
|
||||||
|
|
||||||
|
class RdbData{
|
||||||
|
key:string = ''
|
||||||
|
value:string = ''
|
||||||
|
|
||||||
|
constructor(key:string,value:string) {
|
||||||
|
this.key = key
|
||||||
|
this.value = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Entry
|
@Entry
|
||||||
@Component
|
@Component
|
||||||
export struct VideoPage {
|
export struct VideoPage {
|
||||||
@State message: string = 'Hello World333';
|
|
||||||
|
|
||||||
|
@State notselectImg: ResourceStr = $r('app.media.triangle_normal');
|
||||||
|
@State selectImg: ResourceStr = $r('app.media.triangle_green_theme');
|
||||||
|
@State monthWords:Array<string> =[]
|
||||||
|
@State timePosition:number=-1;
|
||||||
|
@State tlistStatus:boolean=false;
|
||||||
|
@State timeText:string='会议时间';
|
||||||
|
@State rdbDataArray:RdbData[] = []
|
||||||
onPageShow(): void {
|
onPageShow(): void {
|
||||||
console.log('VideoPage onPageShow!');
|
console.log('VideoPage onPageShow!');
|
||||||
}
|
}
|
||||||
@ -11,19 +29,123 @@ export struct VideoPage {
|
|||||||
onPageHide(): void {
|
onPageHide(): void {
|
||||||
console.log('VideoPage onPageHide!');
|
console.log('VideoPage onPageHide!');
|
||||||
}
|
}
|
||||||
|
aboutToAppear(): void {
|
||||||
|
this.getNowMonth()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
build() {
|
build() {
|
||||||
Row() {
|
Column()
|
||||||
Column() {
|
{
|
||||||
Text(this.message)
|
HdNav({ title: '肝胆会议', showRightIcon: false, showLeftIcon: true,showRightText:true,rightText:'扫一扫' })
|
||||||
.fontSize($r('app.float.page_text_font_size'))
|
Row() {
|
||||||
.fontWeight(FontWeight.Bold)
|
Blank()
|
||||||
.onClick(() => {
|
Row() {
|
||||||
this.message = 'Welcome';
|
if(this.timePosition!=-1)
|
||||||
})
|
{
|
||||||
|
Text(this.timeText).customStyle().fontColor($r('app.color.top_title'))
|
||||||
|
Image(this.selectImg).width(13).margin({left:5})
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Text(this.timeText).customStyle()
|
||||||
|
Image(this.notselectImg).width(13).margin({left:5})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
.onClick(()=>{
|
||||||
|
this.tlistStatus=!this.tlistStatus
|
||||||
|
})
|
||||||
|
Blank()
|
||||||
|
Text('|').customStyle()
|
||||||
|
Blank()
|
||||||
|
Row() {
|
||||||
|
Text('会议地点').customStyle()
|
||||||
|
Image(this.notselectImg).width(13).margin({left:5})
|
||||||
|
}
|
||||||
|
Blank()
|
||||||
|
Text('|').customStyle()
|
||||||
|
Blank()
|
||||||
|
Row() {
|
||||||
|
Text('会议直播').customStyle()
|
||||||
|
|
||||||
|
}
|
||||||
|
Blank()
|
||||||
|
}.width('100%').height(45)
|
||||||
|
Text().Line()
|
||||||
|
if(this.tlistStatus)
|
||||||
|
{
|
||||||
|
List() {
|
||||||
|
ForEach(this.monthWords, (item: string,index:number) => {
|
||||||
|
ListItem() {
|
||||||
|
Column() {
|
||||||
|
|
||||||
|
if(this.timePosition==index)
|
||||||
|
{
|
||||||
|
Row()
|
||||||
|
{
|
||||||
|
Text(item).customStyle().height(40).fontColor($r('app.color.top_title'))
|
||||||
|
Blank()
|
||||||
|
Image($r('app.media.chose_card')).width(22).margin({right:25})
|
||||||
|
|
||||||
|
}
|
||||||
|
.width('100%')
|
||||||
|
.alignSelf(ItemAlign.Start)
|
||||||
|
Text().Line().backgroundColor($r('app.color.top_title'))
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Text(item).customStyle().height(40).alignSelf(ItemAlign.Start)
|
||||||
|
Text().Line()
|
||||||
|
}
|
||||||
|
|
||||||
|
}.padding({left:22})
|
||||||
|
.width('100%')
|
||||||
|
.justifyContent(FlexAlign.Start)
|
||||||
|
.onClick(()=>{
|
||||||
|
this.timePosition=index
|
||||||
|
this.tlistStatus=false
|
||||||
|
this.timeText=item
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, (item: string) => JSON.stringify(item))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.width('100%')
|
|
||||||
}
|
}
|
||||||
|
.width('100%')
|
||||||
.height('100%')
|
.height('100%')
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getNowMonth()
|
||||||
|
{
|
||||||
|
|
||||||
|
this.monthWords.push("所有");
|
||||||
|
let month:number= new Date().getMonth()+1;
|
||||||
|
for(let i =month;i<13;i++){
|
||||||
|
this.monthWords.push(i+"月");
|
||||||
|
|
||||||
|
}
|
||||||
|
for(let i =1;i<month;i++){
|
||||||
|
this.monthWords.push(i+"月");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@Extend(Text)
|
||||||
|
function customStyle() {
|
||||||
|
|
||||||
|
.fontColor($r('app.color.tab_text_nor'))
|
||||||
|
.fontSize(13)
|
||||||
|
|
||||||
|
}
|
||||||
|
@Extend(Text)
|
||||||
|
function Line() {
|
||||||
|
|
||||||
|
.height(0.5).width('100%').backgroundColor($r('app.color.devider_line'))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
32
features/Home/src/main/resources/base/element/color.json
Normal file
32
features/Home/src/main/resources/base/element/color.json
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"color": [
|
||||||
|
{
|
||||||
|
"name": "common_gray_01",
|
||||||
|
"value": "#222222"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "common_gray_02",
|
||||||
|
"value": "#ffbebbb4"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "common_gray_03",
|
||||||
|
"value": "#666666"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "tab_text_nor",
|
||||||
|
"value": "#848284"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "devider_line",
|
||||||
|
"value": "#CCCCCC"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "top_title",
|
||||||
|
"value": "#8D2316"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "top_bg",
|
||||||
|
"value": "#FFEFEFEF"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
features/Home/src/main/resources/base/media/chose_card.png
Normal file
BIN
features/Home/src/main/resources/base/media/chose_card.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
BIN
features/Home/src/main/resources/base/media/triangle_normal.png
Normal file
BIN
features/Home/src/main/resources/base/media/triangle_normal.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
Loading…
x
Reference in New Issue
Block a user