
回复
公司列表页面是用户查看公司信息的重要功能模块。以下是一个完整的公司列表页面实现,包括公司信息的展示和点击跳转到公司详情页的功能。
import { httpRequestGet } from '../Utils/HttpUtils';
import prompt from '@ohos.promptAction';
import { CompanyModel, CompanyData } from '../model/CompanyModel';
import { router } from '@kit.ArkUI';
@Entry
@Component
export struct CompanyList {
@State companyModel: Array<CompanyData> = [];
private companyurl: string = "****";
async aboutToAppear() {
httpRequestGet(this.companyurl).then((data) => {
let companyLists: CompanyModel = JSON.parse(data.toString());
let msg = companyLists.msg;
if (companyLists.code == 200) {
this.companyModel = companyLists.data;
} else {
prompt.showToast({
message: msg
});
}
});
}
CompanyList
的公司列表组件。@State
装饰器定义了companyModel
,用于存储公司列表数据。companyurl
,用于存储获取公司信息的接口URL。aboutToAppear
生命周期函数中,调用httpRequestGet
方法获取公司列表数据,并根据返回结果更新companyModel
或显示提示信息。build() {
Column() {
Row() {
Text("公司")
.fontSize(20)
.fontColor(Color.White)
.textAlign(TextAlign.Center)
}.width("100%")
.height(40)
.backgroundColor(Color.Green)
.justifyContent(FlexAlign.Center)
List({ space: 15 }) {
ForEach(this.companyModel, (item: CompanyData) => {
ListItem() {
Row() {
Image(item.logo)
.height(100)
.width("100%")
.layoutWeight(3)
.borderRadius(10)
.objectFit(ImageFit.Cover)
Column() {
Text(item.name)
.fontWeight(800)
.fontSize(20)
.width("100%")
.maxLines(1)
.textOverflow({ overflow: TextOverflow.Ellipsis })
Text(`${item.type} · ${item.size} · ${item.employee}`)
.fontSize(14)
.fontWeight(600)
.fontColor('#333')
Text(item.inc)
.width('100%')
.fontSize(14)
.margin({ left: 12, top: 6 })
.textOverflow({ overflow: TextOverflow.Ellipsis })
}.height(100)
.layoutWeight(7)
.justifyContent(FlexAlign.Start)
.alignItems(HorizontalAlign.Start)
.onClick(() => {
router.pushUrl({
url: "pages/Companydetails",
params: {
id: item.id
}
});
})
}.width("100%")
.height(100)
.justifyContent(FlexAlign.Start)
}
})
}
}.width("100%")
.height("100%")
}
Column
和Row
布局组件,构建公司列表页面的UI。List
和ForEach
组件,遍历companyModel
,为每个公司生成一个列表项。router.pushUrl
跳转到公司详情页,并传递公司ID作为参数。export class CompanyModel{
msg:string="";
code:number=0;
data:Array<CompanyData>=[];
}
export class CompanyData{
id:string="";
logo:string="";
name:string="";
location:string="";
type:string="";
size:string="";
employee:string="";
hot:string="";
count:string="";
inc:string="";
}
通过上述代码,我们实现了一个完整的公司列表页面,包括公司信息的展示和点击跳转到公司详情页的功能。用户可以通过公司列表页面查看各个公司的基本信息,并通过点击进入公司详情页获取更多详细信息。