import { TabBarCompModel } from '../model/TabBarCompModel' import { BasicConstant, hdHttp,HdNav, HdResponse } from '@itcast/basic' import { ListCompPublic } from '../components/ListCompPublic' import { ListCompMany } from '../components/ListCompMany' import { StopNoticeComp } from './StopNoticeComp' import { HMRouterMgr } from '@hadss/hmrouter' import { HashMap } from '@kit.ArkTS' import { BusinessError } from '@kit.BasicServicesKit' import { PatientNoticeModel } from '../model/PatientNoticeModel' import { promptAction } from '@kit.ArkUI' import { ArrangementsComp } from './ArrangementsComp' @Component export struct TabBarOutComp { @StorageProp('bottomHeight') bottomHeight: number = 0 @Link activeIndex: number @State note:string='' @State uuid:string='' @State textInfo:string='发布新的停诊' @State stopnum: number = 0 aboutToAppear() { this.mailanNoticeGet() } @Builder TabBarBuilder(item: TabBarCompModel, index: number) { Row() { Text(item.label) .fontSize(16) .fontColor(this.activeIndex === index ? $r('app.color.top_title'):$r('app.color.common_gray_03') ) .animation({ duration: 300 }) .textAlign(TextAlign.Center) .layoutWeight(1) if (index < TabBarItems.length - 1) { // 竖线 Text('|').fontColor($r('app.color.common_gray_02')) // 可选:左右留点间距 } } } build() { RelativeContainer() { Column() { HdNav({ title: '出/停诊公告', showLeftIcon: true, showRightIcon: false}) Tabs({ index: this.activeIndex }) { ForEach(TabBarItems, (item: TabBarCompModel, index: number) => { TabContent() { if (index==0) { StopNoticeComp({stopnum:this.stopnum}) } else if(index==1) { ArrangementsComp() } } .tabBar(this.TabBarBuilder(item, index)) }) } .layoutWeight(1) .divider({ strokeWidth: $r('app.float.common_border_width'), color: $r('app.color.common_gray_border') }) .barPosition(BarPosition.Start) .barHeight(50) .scrollable(false) .onTabBarClick((index) => { this.activeIndex = index if (index==0) { this.textInfo='发布新的停诊' } else if(index==1) { this.textInfo='增加门诊安排' } }) Column() { Text(this.textInfo).height(42).width(168).fontSize(17) .backgroundColor($r('app.color.top_title')) .fontColor($r('app.color.white')) .textAlign(TextAlign.Center) .borderRadius(4) .margin({top:8}) } .width('100%') .height(57) .backgroundColor(Color.White) .onClick(() => { if (this.activeIndex==0) { if(this.stopnum==2) { promptAction.showToast({ message: "有效停诊公告最多只能两个", duration: 1000 }) } else { HMRouterMgr.push({ pageUrl: 'ReleaseOutpatient' }) } } else if(this.activeIndex==1) { HMRouterMgr.push({ pageUrl: 'AddOutpatient' }) } }) } Image($r('app.media.send_feed')).width(50).height(50) .alignRules({ right: { anchor: "__container__", align: HorizontalAlign.End }, bottom:{ anchor: "__container__", align:VerticalAlign.Bottom} }) .margin({bottom:100,right:30}) .onClick(() => { HMRouterMgr.push({ pageUrl: 'OutpatientInformation' , param: { note:this.note, uuid:this.uuid } }) }) } } mailanNoticeGet() { const hashMap: HashMap = new HashMap(); hdHttp.httpReq(BasicConstant.mailanNoticeGet,hashMap).then(async (res: HdResponse) => { let json:PatientNoticeModel = JSON.parse(res+'') as PatientNoticeModel; if(json.code == '200') { this.uuid=json.data.uuid this.note=json.data.notice } else { } }).catch((err: BusinessError) => { console.info(`Response fails: ${err}`); }) } } export const TabBarItems: TabBarCompModel[] = [ { label: '停诊公告' }, { label: '门诊安排' } ]