图片组件跟患者列表
This commit is contained in:
parent
1cdb5a3311
commit
75277f5bb5
@ -243,8 +243,7 @@ export struct SenderMessageComponent {
|
||||
}.alignItems(HorizontalAlign.End).margin({ left: 8 }).width('75%')
|
||||
|
||||
CommonAvatar({
|
||||
item: new AvatarItem(this.chatUserInfo != null ?
|
||||
this.chatUserInfo?.getCurrentUserAvatarUrl() : BasicConstant.urlHtml+authStore.getUser().photo,
|
||||
item: new AvatarItem( BasicConstant.urlHtml+authStore.getUser().photo,
|
||||
this.chatUserInfo?.getCurrentUserAvatarName() ?? '',
|
||||
AvatarColorUntil.getBackgroundColorById(this.message.message.senderId),
|
||||
),
|
||||
|
||||
@ -29,7 +29,8 @@ export struct CommonAvatar {
|
||||
if (this.item != null) {
|
||||
|
||||
if (this.item.avatarUrl == null || this.item.avatarUrl.toString().length <= 0) {
|
||||
Image(BasicConstant.urlHtml+authStore.getUser().photo)
|
||||
// Image(BasicConstant.urlHtml+authStore.getUser().photo)
|
||||
Image($r('app.media.icon_touxiang_persion_new'))
|
||||
.onError(() => {
|
||||
if(this.item!=null)
|
||||
{
|
||||
@ -88,7 +89,7 @@ export struct CommonAvatar {
|
||||
export function buildAvatar(item: AvatarItem, width: Length, height: Length,
|
||||
borderRadius?: Length | null) {
|
||||
Stack() {
|
||||
if (item.avatarUrl == null || item.avatarUrl.toString().length <= 0) {
|
||||
if (item.avatarUrl == null || item.avatarUrl.toString().length <= 0||item.avatarUrl=='') {
|
||||
Column() {
|
||||
}.width('100%').height('100%').backgroundColor(item.color)
|
||||
|
||||
|
||||
@ -89,4 +89,6 @@ export { InputPopWindow } from './src/main/ets/Views/InputPopWindow'
|
||||
|
||||
export { ChatExtModel,ChatParam } from './src/main/ets/models/ChatExtModel'
|
||||
|
||||
export { PatientListModel,PatientsData } from './src/main/ets/models/PatientListModel'
|
||||
export { PatientListModel,PatientsData } from './src/main/ets/models/PatientListModel'
|
||||
|
||||
export { applyListCallBacl, applyListModel, applyHistoryCallBacl , historyObjectModel, historyModel } from './src/main/ets/models/ApplyModel'
|
||||
@ -147,6 +147,7 @@ export struct PreviewPhotos {
|
||||
|
||||
|
||||
}
|
||||
.index(this.previewIndex)
|
||||
.indicator(false)
|
||||
.loop(false) // 禁用循环滑动
|
||||
.onChange((index: number) => {
|
||||
|
||||
@ -41,9 +41,9 @@ export struct ChangePhotoGrids {
|
||||
.width(20).height(20)
|
||||
.position({ x: 55, y: 5 })
|
||||
.onClick(() => {
|
||||
|
||||
this.removeImg=!this.removeImg
|
||||
this.removeIndex=index
|
||||
this.removeImg=!this.removeImg
|
||||
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
56
commons/basic/src/main/ets/models/ApplyModel.ets
Normal file
56
commons/basic/src/main/ets/models/ApplyModel.ets
Normal file
@ -0,0 +1,56 @@
|
||||
export interface applyListCallBacl {
|
||||
code:number,
|
||||
msg:string,
|
||||
data:applyListModel[],
|
||||
message:string,
|
||||
}
|
||||
|
||||
export interface applyHistoryCallBacl {
|
||||
code:number,
|
||||
msg:string,
|
||||
data:historyObjectModel,
|
||||
message:string,
|
||||
}
|
||||
|
||||
export class applyListModel {
|
||||
mobile?:string;
|
||||
photo?:string;
|
||||
birthDate?:string;
|
||||
sex?:number;
|
||||
realName?:string;
|
||||
checkDate?:string;
|
||||
uuid?:string;
|
||||
createDate?:string;
|
||||
patientUuid?:string;
|
||||
expertUuid?:string;
|
||||
status?:number;
|
||||
content?:string;
|
||||
nationName?:string;
|
||||
provName?:string;
|
||||
cityName?:string;
|
||||
countyName?:string;
|
||||
nation?:string;
|
||||
note?:string
|
||||
nickname?:string
|
||||
groupType?:string
|
||||
groupUuid?:string
|
||||
}
|
||||
|
||||
export interface historyObjectModel {
|
||||
list:historyModel[];
|
||||
isFirstPage?:string;
|
||||
isLastPage?:string;
|
||||
pageNum?:string;
|
||||
pages?:string;
|
||||
pageSize?:string;
|
||||
total?:string;
|
||||
}
|
||||
|
||||
export class historyModel {
|
||||
status?:string;//审核状态(1.待审核2.审核通过3.拒绝4.已过期 5.患者取消 6专家解除)
|
||||
patient_photo?:string;
|
||||
create_date?:string;
|
||||
content?:string;
|
||||
nickname?:string;
|
||||
patient_name?:string;
|
||||
}
|
||||
@ -233,5 +233,15 @@ export class ChangeUtil {
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
//将第一位移动到最后一位
|
||||
static moveFirstToEnd(arr: string[]): string[] {
|
||||
if (arr.length <= 1) return arr;
|
||||
const first = arr[0];
|
||||
// 前移后续元素(从索引1开始)
|
||||
for (let i = 1; i < arr.length; i++) {
|
||||
arr[i - 1] = arr[i];
|
||||
}
|
||||
arr[arr.length - 1] = first; // 首位移至末尾
|
||||
return arr;
|
||||
}
|
||||
}
|
||||
@ -14,6 +14,10 @@ class PreferenceStore {
|
||||
this.getStore().putSync(keyword, value)
|
||||
this.getStore().flush()
|
||||
}
|
||||
setItemNumber(keyword: string,value:number) {
|
||||
this.getStore().putSync(keyword, value)
|
||||
this.getStore().flush()
|
||||
}
|
||||
setItemBoolean(keyword: string,value:boolean) {
|
||||
this.getStore().putSync(keyword, value)
|
||||
this.getStore().flush()
|
||||
@ -25,6 +29,9 @@ class PreferenceStore {
|
||||
getItemString(keyword: string) {
|
||||
return this.getStore().getSync(keyword,'') as string
|
||||
}
|
||||
getItemNumber(keyword: string) {
|
||||
return this.getStore().getSync(keyword,0) as number
|
||||
}
|
||||
getItemBooleanT(keyword: string):boolean {
|
||||
return this.getStore().getSync(keyword,true) as boolean
|
||||
}
|
||||
|
||||
BIN
commons/basic/src/main/resources/base/media/close.png
Normal file
BIN
commons/basic/src/main/resources/base/media/close.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
BIN
commons/basic/src/main/resources/base/media/patientgif.png
Normal file
BIN
commons/basic/src/main/resources/base/media/patientgif.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 78 KiB |
@ -16,6 +16,7 @@ export struct MyOpinionComp {
|
||||
@State photos: string[] = []
|
||||
@State previewIndex: number = -1
|
||||
@State maxSelectNumber: number = 6
|
||||
|
||||
private photoSheetDialog!: CustomDialogController;
|
||||
@State
|
||||
@Watch('onRemoveImg')
|
||||
@ -36,7 +37,8 @@ export struct MyOpinionComp {
|
||||
onRemoveImg()
|
||||
{
|
||||
this.photos.splice(this.removeIndex, 1)
|
||||
this.maxSelectNumber = this.maxSelectNumber - this.photos.length;
|
||||
this.maxSelectNumber =6- this.photos.length;
|
||||
let a= this.maxSelectNumber
|
||||
}
|
||||
private custom!:CustomDialogController;
|
||||
dialog: CustomDialogController = new CustomDialogController({
|
||||
@ -89,8 +91,7 @@ export struct MyOpinionComp {
|
||||
}
|
||||
|
||||
this.photos.push(...selectedUris);
|
||||
this.maxSelectNumber = this.maxSelectNumber - this.photos.length;
|
||||
|
||||
this.maxSelectNumber = 6- this.photos.length;
|
||||
|
||||
}
|
||||
|
||||
@ -112,7 +113,7 @@ export struct MyOpinionComp {
|
||||
if(this.params.myAnswer.imgs!=null)
|
||||
{
|
||||
this.photos.push(...this.changeToImgs(this.params.myAnswer.imgs.split(",")))
|
||||
this.maxSelectNumber = this.maxSelectNumber - this.photos.length;
|
||||
this.maxSelectNumber = 6- this.photos.length;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,11 +1,19 @@
|
||||
import { authStore, BasicConstant, hdHttp, HdLoadingDialog,HdNav, HdResponse, patientDbManager,
|
||||
import {
|
||||
applyListCallBacl,
|
||||
applyListModel,
|
||||
authStore, BasicConstant,
|
||||
ChangeUtil,
|
||||
hdHttp, HdLoadingDialog,HdNav, HdResponse, patientDbManager,
|
||||
PatientListModel,
|
||||
PatientsData} from '@itcast/basic'
|
||||
PatientsData,
|
||||
preferenceStore} from '@itcast/basic'
|
||||
import { Groups } from '../model/Groups';
|
||||
import { display } from '@kit.ArkUI';
|
||||
import { StringIsEmpty } from '@nimkit/common';
|
||||
import I18n from '@ohos.i18n';
|
||||
import Intl from '@ohos.intl';
|
||||
import { BusinessError } from '@kit.BasicServicesKit';
|
||||
|
||||
let collator = new Intl.Collator(I18n.System.getSystemLocale(), {
|
||||
usage: 'sort',
|
||||
collation: 'pinyin',
|
||||
@ -22,18 +30,51 @@ export struct PatientListComp {
|
||||
'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '#']
|
||||
|
||||
private indexUtil = I18n.getInstance(I18n.System.getSystemLocale());
|
||||
|
||||
displayClass = display.getDefaultDisplaySync()
|
||||
@State alphabetSelected: number = 0
|
||||
dialog: CustomDialogController = new CustomDialogController({
|
||||
builder: HdLoadingDialog({ message: '加载中...' }),
|
||||
customStyle: true,
|
||||
alignment: DialogAlignment.Center
|
||||
})
|
||||
|
||||
@State count: number = 0
|
||||
@State total: number = 0
|
||||
@State old:number=preferenceStore.getItemNumber('old_patient_num')
|
||||
@State applyArray:applyListModel[] = [];
|
||||
@State needShow:boolean=false
|
||||
aboutToAppear() {
|
||||
this. PatientsData()
|
||||
|
||||
this.loadPatients()
|
||||
this.getApplyList()
|
||||
}
|
||||
getApplyList() {
|
||||
this.dialog.open()
|
||||
hdHttp.post<string>(BasicConstant.applyList, {
|
||||
expertUuid: authStore.getUser().uuid,
|
||||
} as updateExtraData).then(async (res: HdResponse<string>) => {
|
||||
this.dialog.close();
|
||||
let json:applyListCallBacl = JSON.parse(res+'') as applyListCallBacl;
|
||||
if(json.code == 1) {
|
||||
this.applyArray = json.data;
|
||||
if( this.applyArray!=null)
|
||||
{
|
||||
this.applyArray.forEach( item=>{
|
||||
if(1==item.status)
|
||||
{
|
||||
this.count++
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
}
|
||||
}).catch((err: BusinessError) => {
|
||||
this.dialog.close();
|
||||
|
||||
console.info(`Response fails: ${err}`);
|
||||
})
|
||||
}
|
||||
|
||||
PatientsData()
|
||||
@ -47,7 +88,32 @@ export struct PatientListComp {
|
||||
console.log('服务器返回的患者数据:', json);
|
||||
if(json.data!=null)
|
||||
{
|
||||
this.collationData(json.data);
|
||||
// let regionRequestData: PatientsData[]=[...json.data]
|
||||
// regionRequestData =[...json.data]
|
||||
// regionRequestData.push(...json.data)
|
||||
// regionRequestData.push(...json.data)
|
||||
// regionRequestData.push(...json.data)
|
||||
// regionRequestData.push(...json.data)
|
||||
// regionRequestData.push(...json.data)
|
||||
// regionRequestData.push(...json.data)
|
||||
// regionRequestData.push(...json.data)
|
||||
// regionRequestData.push(...json.data)
|
||||
// regionRequestData.push(...json.data)
|
||||
// regionRequestData.push(...json.data)
|
||||
// regionRequestData.push(...json.data)
|
||||
// this.collationData(regionRequestData);
|
||||
if(json.data!=null&&json.data.length>0)
|
||||
{
|
||||
this.total=json.data.length
|
||||
if(this.old<this.total/10)
|
||||
{
|
||||
this.needShow=true
|
||||
preferenceStore.setItemNumber('old_patient_num',this.total/10)
|
||||
}
|
||||
this.collationData(json.data);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -77,7 +143,6 @@ export struct PatientListComp {
|
||||
.alignItems(VerticalAlign.Center)
|
||||
.justifyContent(FlexAlign.Start)
|
||||
.backgroundColor($r('sys.color.ohos_id_color_panel_bg'))
|
||||
// .enabled(this.selectState)
|
||||
.height(40)
|
||||
.width('100%')
|
||||
.padding({ left: 15,})
|
||||
@ -89,8 +154,7 @@ export struct PatientListComp {
|
||||
|
||||
Column() {
|
||||
HdNav({ title: '患者消息', showRightIcon: true, showLeftIcon: true,showRightText:false,rightIcon:$r('app.media.selected_hospital_ws')})
|
||||
Stack({ alignContent: Alignment.TopEnd }) {
|
||||
Column() {
|
||||
Stack({ }) {
|
||||
List({ scroller: this.scroller, space: 0, initialIndex: 0 }) {
|
||||
ListItem() {
|
||||
Column()
|
||||
@ -110,7 +174,7 @@ export struct PatientListComp {
|
||||
.maxLines(1)
|
||||
.textOverflow({ overflow: TextOverflow.Ellipsis })
|
||||
.ellipsisMode(EllipsisMode.END)
|
||||
Text('(待审核'+'人)')
|
||||
Text('(待审核'+this.count+'人)')
|
||||
.fontSize(16)
|
||||
.fontColor(Color.Red)
|
||||
.layoutWeight(1)
|
||||
@ -119,8 +183,9 @@ export struct PatientListComp {
|
||||
.maxLines(1)
|
||||
.textOverflow({ overflow: TextOverflow.Ellipsis })
|
||||
.ellipsisMode(EllipsisMode.END)
|
||||
|
||||
.visibility(this.count>0?Visibility.Visible:Visibility.Hidden)
|
||||
}.layoutWeight(1)
|
||||
|
||||
.align(Alignment.Start)
|
||||
|
||||
Column()
|
||||
@ -136,7 +201,7 @@ export struct PatientListComp {
|
||||
.alignItems(VerticalAlign.Center)
|
||||
.padding({ top:10,bottom:10})
|
||||
.width('100%')
|
||||
Text().height(0.5).backgroundColor($r('sys.color.ohos_id_color_list_separator')).width('100%')
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -162,7 +227,7 @@ export struct PatientListComp {
|
||||
.maxLines(1)
|
||||
.textOverflow({ overflow: TextOverflow.Ellipsis })
|
||||
.ellipsisMode(EllipsisMode.END)
|
||||
Text('(随访'+'人)')
|
||||
Text('(随访'+this.total+'人)')
|
||||
.fontSize(16)
|
||||
.fontColor(Color.Red)
|
||||
.layoutWeight(1)
|
||||
@ -171,7 +236,7 @@ export struct PatientListComp {
|
||||
.maxLines(1)
|
||||
.textOverflow({ overflow: TextOverflow.Ellipsis })
|
||||
.ellipsisMode(EllipsisMode.END)
|
||||
|
||||
.visibility(this.total>0?Visibility.Visible:Visibility.Hidden)
|
||||
}.layoutWeight(1)
|
||||
.align(Alignment.Start)
|
||||
|
||||
@ -197,101 +262,76 @@ export struct PatientListComp {
|
||||
ForEach(this.regionDataGroupsList, (regionDataGroups: Groups, index) => {
|
||||
|
||||
ListItemGroup({ header: this.itemHead(regionDataGroups.title) }) {
|
||||
ListItem() {
|
||||
List() {
|
||||
|
||||
ForEach(regionDataGroups.regionDataList, (regionData: PatientsData, index?: number) => {
|
||||
ListItem() {
|
||||
Row() {
|
||||
Image(BasicConstant.urlHtml+regionData.photo)
|
||||
.alt($r('app.media.userPhoto_default'))
|
||||
.width(50)
|
||||
.height(50)
|
||||
.margin({ left:10 })
|
||||
.borderRadius(8)
|
||||
Column()
|
||||
{
|
||||
Text(regionData.realName)
|
||||
.fontSize(16)
|
||||
.fontColor($r('app.color.common_gray_01'))
|
||||
.width('100%')
|
||||
.textAlign(TextAlign.Start)
|
||||
.padding({left:10,right:10})
|
||||
.maxLines(1)
|
||||
.textOverflow({ overflow: TextOverflow.Ellipsis })
|
||||
.ellipsisMode(EllipsisMode.END)
|
||||
Text(regionData.diagnosis?regionData.diagnosis.includes("甲、乙、丙、丁") ? '肝炎' :regionData.diagnosis:'')
|
||||
.fontSize(12)
|
||||
.borderColor($r('app.color.top_title'))
|
||||
.fontColor($r('app.color.top_title'))
|
||||
.padding({left:8,right:8,top:3,bottom:3})
|
||||
.borderRadius(17)
|
||||
.borderWidth(1)
|
||||
.textAlign(TextAlign.Center)
|
||||
.margin({top:5,left:10})
|
||||
.visibility(regionData.diagnosis?Visibility.Visible:Visibility.None)
|
||||
.alignSelf(ItemAlign.Start)
|
||||
|
||||
}.layoutWeight(1)
|
||||
.align(Alignment.Start)
|
||||
|
||||
Column()
|
||||
{
|
||||
Image($r('app.media.edit_patitent'))
|
||||
.width(24)
|
||||
.height(24)
|
||||
Column()
|
||||
{
|
||||
Row() {
|
||||
Image(BasicConstant.urlHtml+regionData.photo)
|
||||
.alt($r('app.media.userPhoto_default'))
|
||||
.width(50)
|
||||
.height(50)
|
||||
.margin({ left:10 })
|
||||
.alignSelf(ItemAlign.End)
|
||||
.borderRadius(8)
|
||||
Column()
|
||||
{
|
||||
Text(regionData.realName)
|
||||
.fontSize(16)
|
||||
.fontColor($r('app.color.common_gray_01'))
|
||||
.width('100%')
|
||||
.textAlign(TextAlign.Start)
|
||||
.padding({left:10,right:10})
|
||||
.maxLines(1)
|
||||
.textOverflow({ overflow: TextOverflow.Ellipsis })
|
||||
.ellipsisMode(EllipsisMode.END)
|
||||
Text(regionData.diagnosis?regionData.diagnosis.includes("甲、乙、丙、丁") ? '肝炎' :regionData.diagnosis:'')
|
||||
.fontSize(12)
|
||||
.borderColor($r('app.color.top_title'))
|
||||
.fontColor($r('app.color.top_title'))
|
||||
.padding({left:8,right:8,top:3,bottom:3})
|
||||
.borderRadius(17)
|
||||
.borderWidth(1)
|
||||
.textAlign(TextAlign.Center)
|
||||
.margin({top:5,left:10})
|
||||
.visibility(regionData.diagnosis?Visibility.Visible:Visibility.None)
|
||||
.alignSelf(ItemAlign.Start)
|
||||
|
||||
Text(regionData.join_date ?"随访于"+ regionData.join_date.split(" ")[0] :'')
|
||||
.fontSize(12)
|
||||
.fontColor($r('app.color.666666'))
|
||||
.margin({top:5})
|
||||
.textAlign(TextAlign.Center)
|
||||
.visibility(regionData.join_date?Visibility.Visible:Visibility.None)
|
||||
}.layoutWeight(1)
|
||||
.align(Alignment.Start)
|
||||
|
||||
}.align(Alignment.End).padding({right:30})
|
||||
Column()
|
||||
{
|
||||
Image($r('app.media.edit_patitent'))
|
||||
.width(24)
|
||||
.height(24)
|
||||
.margin({ left:10 })
|
||||
.alignSelf(ItemAlign.End)
|
||||
|
||||
Text(regionData.join_date ?"随访于"+ regionData.join_date.split(" ")[0] :'')
|
||||
.fontSize(12)
|
||||
.fontColor($r('app.color.666666'))
|
||||
.margin({top:5})
|
||||
.textAlign(TextAlign.Center)
|
||||
.visibility(regionData.join_date?Visibility.Visible:Visibility.None)
|
||||
|
||||
}.align(Alignment.End).padding({right:30})
|
||||
}
|
||||
.alignItems(VerticalAlign.Center)
|
||||
.padding({ top:10,bottom:10})
|
||||
.width('100%')
|
||||
Text().height(1).width('100%').backgroundColor( $r('sys.color.ohos_id_color_panel_bg'))
|
||||
}
|
||||
.alignItems(VerticalAlign.Center)
|
||||
.padding({ top:10,bottom:10})
|
||||
.width('100%')
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
// .height(100)
|
||||
.width('100%')
|
||||
.align(Alignment.Start)
|
||||
.onClick(() => {
|
||||
// // 暂不选择需要退出
|
||||
// if (regionData.name === this.noSelect) {
|
||||
// this.selectedRegion = '';
|
||||
// // 页面返回
|
||||
// return;
|
||||
// }
|
||||
// this.selectedRegion = regionData.name;
|
||||
// this.selectState = false;
|
||||
// if (this.pageLevel < 4) {
|
||||
// this.pageLevel++;
|
||||
// }
|
||||
// let regionData1 = this.getData('data2');
|
||||
// if (this.pageLevel > 1) {
|
||||
// regionData1 = this.getData('data3');
|
||||
// }
|
||||
// if (regionData1.regionInfos.length === 0) {
|
||||
// return;
|
||||
// }
|
||||
// if (this.pageLevel < 4) {
|
||||
// this.collationData(regionData1, false);
|
||||
// }
|
||||
|
||||
})
|
||||
})
|
||||
}
|
||||
.divider({
|
||||
strokeWidth: 0.5,
|
||||
color: $r('sys.color.ohos_id_color_list_separator'),
|
||||
startMargin: 0,
|
||||
endMargin: 0
|
||||
})
|
||||
.width('100%')
|
||||
}
|
||||
.width('100%')
|
||||
|
||||
}
|
||||
.width('100%')
|
||||
@ -300,21 +340,30 @@ export struct PatientListComp {
|
||||
|
||||
}
|
||||
.sticky(StickyStyle.None)
|
||||
.divider({
|
||||
strokeWidth: 1,
|
||||
color: $r('sys.color.ohos_id_color_panel_bg'),
|
||||
startMargin: 0,
|
||||
endMargin: 0
|
||||
})
|
||||
.onScrollIndex((start: number, end: number) => {
|
||||
if(start<3)
|
||||
{
|
||||
start=0
|
||||
}
|
||||
else
|
||||
{
|
||||
start=start-2
|
||||
}
|
||||
let target = this.indexList[start]
|
||||
let indexList = this.normalIndexValue;
|
||||
let index = this.searchIndex(indexList, target)
|
||||
this.alphabetSelected = index === -1 ? this.onSlideList(indexList, target) - 1 : index;
|
||||
|
||||
})
|
||||
.layoutWeight(1)
|
||||
.width('100%')
|
||||
.scrollBar(BarState.Off)
|
||||
// Text().height(56).width('100%')
|
||||
}
|
||||
.width('100%')
|
||||
.height('100%')
|
||||
|
||||
Column() {
|
||||
AlphabetIndexer({
|
||||
arrayValue: this.normalIndexValue,
|
||||
selected: 0
|
||||
@ -329,26 +378,17 @@ export struct PatientListComp {
|
||||
let pos = 0
|
||||
let useValue = this.normalIndexValue
|
||||
let currentWord = useValue[index] // 在右侧索引上的位置
|
||||
if (currentWord === '·') { // 在右侧索引上的位置 刚号是点,则需要找右侧索引上一个字母
|
||||
|
||||
let beforeWord = useValue[index - 1]; // 这个是右侧索引点的上一个字母
|
||||
let afterWord = useValue[index + 1];
|
||||
pos = this.searchIndex(this.indexList, currentWord)
|
||||
|
||||
pos = this.onClickPointIndex(this.indexList, beforeWord, afterWord)
|
||||
} else {
|
||||
pos = this.searchIndex(this.indexList, currentWord)
|
||||
}
|
||||
if (pos === -1) {
|
||||
return;
|
||||
}
|
||||
this.scroller.scrollToIndex(pos);
|
||||
this.scroller.scrollToIndex(pos+2);
|
||||
})
|
||||
.id('id_hwid_region_choose_alphabetIndexer')
|
||||
.onAreaChange((oldValue: Area, newValue: Area) => {
|
||||
// 获取屏幕对象
|
||||
let displayObj: display.Display = display.getDefaultDisplaySync();
|
||||
// 获取屏幕高度
|
||||
let displayHeight: number = displayObj.height / displayObj.densityPixels;
|
||||
|
||||
})
|
||||
.itemSize('20')
|
||||
.font({ size: '20vp' })
|
||||
@ -356,13 +396,27 @@ export struct PatientListComp {
|
||||
size: '20vp', style: FontStyle.Normal,
|
||||
weight: FontWeight.Bolder
|
||||
})
|
||||
.position({ x: this.displayClass.width / this.displayClass.densityPixels - 25 }) // 侧边栏位置
|
||||
|
||||
Column()
|
||||
{
|
||||
Image($r('app.media.close')).width(40).height(40).margin({right:50,top:60})
|
||||
.position({x:this.displayClass.width / this.displayClass.densityPixels-50,y:60})
|
||||
.onClick(()=>{
|
||||
this.needShow=false
|
||||
})
|
||||
|
||||
}
|
||||
.visibility(this.needShow?Visibility.Visible:Visibility.None)
|
||||
.width('100%')
|
||||
.height('100%')
|
||||
.backgroundColor(Color.Transparent)
|
||||
.backgroundImageSize(ImageSize.Contain)
|
||||
.backgroundImagePosition(Alignment.Center)
|
||||
.backgroundImage($r('app.media.patientgif'))
|
||||
.backgroundColor('#44444444')
|
||||
}
|
||||
.layoutWeight(1)
|
||||
|
||||
.width('100%')
|
||||
|
||||
}.width('100%')
|
||||
.height('100%')
|
||||
@ -388,17 +442,21 @@ export struct PatientListComp {
|
||||
this.regionDataGroupsList = [];
|
||||
this.regionInfo.forEach((value: PatientsData) => {
|
||||
let index = this.indexUtil.getIndex(value.nickname);
|
||||
if(!ChangeUtil.isLetter(index))
|
||||
{
|
||||
index='#'
|
||||
}
|
||||
|
||||
if (this.indexList.indexOf(index) === -1) {
|
||||
let regionDataGroups: Groups = new Groups();
|
||||
if(this.normalIndexValue.includes(index))
|
||||
{
|
||||
// if(this.normalIndexValue.includes(index))
|
||||
// {
|
||||
regionDataGroups.title = index;
|
||||
}
|
||||
else
|
||||
{
|
||||
regionDataGroups.title = '#';
|
||||
}
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// regionDataGroups.title = '#';
|
||||
// }
|
||||
|
||||
this.indexList.push(index);
|
||||
regionDataGroups.regionDataList.push(value);
|
||||
@ -408,6 +466,10 @@ export struct PatientListComp {
|
||||
|
||||
}
|
||||
})
|
||||
if( this.indexList.length>0&&!ChangeUtil.isLetter(this.indexList[0]))
|
||||
{
|
||||
ChangeUtil.moveFirstToEnd(this.indexList)
|
||||
}
|
||||
this.regionDataGroupsList.sort((a, b) => {
|
||||
return this.normalIndexValue.indexOf(a.title) - this.normalIndexValue.indexOf(b.title);
|
||||
});
|
||||
@ -420,15 +482,7 @@ export struct PatientListComp {
|
||||
}
|
||||
private onSlideList(indexList: string[], target: string): number {
|
||||
for (let i = 1; i < indexList.length; i++) {
|
||||
if (indexList[i] > target && indexList[i] !== '·') {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
private onClickPointIndex(indexList: string[], beforeWord: string, afterWord: string): number {
|
||||
for (let i = 1; i < indexList.length; i++) {
|
||||
if (indexList[i] > beforeWord && indexList[i] < afterWord) {
|
||||
if (indexList[i] > target ) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user