一種:
/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述: 數組# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/27 20:13# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : ListPage.ets**/
@Entry
@Component
struct ListPage {@State message: string = 'Hello World';@State cc:number=0@State ls:string[][]=[['墜飾', '戒指', '對戒', '項鏈', '吊墜', '耳釘', '手鐲', '手鏈', '串飾', '擺件'],['DiaBling', ' Shimmering', 'Fortune', 'Snake', 'Heirloom', 'HexiconHot', 'Beloved', 'Wedding', 'Love', 'Beauty'],['人氣爆款', '鉆光影金', '金蛇獻寶', '福滿傳家', '悅己愛己', '天天愛上新', '愛很美', '婚嫁', '囍愛', 'Goldstyle'],['Hexicon', 'Your Style', 'Dear Q', '玄酷', '抱抱家庭', '娉婷', 'E意大利', '銀飾間<', '金龍獻福', '寶爵']]//分組的數據封裝數組@State nameList: string[] = ['黃金','鉆石', '珍珠', '寶銀']@Builder itemHead(headName: string){Text(headName).fontSize(20).fontWeight(600).width('100%').backgroundColor('#ffb0adad').padding(10)}//設置下標變量private listScroller: Scroller = new Scroller()build() {//層疊布局,里面的元素不做處理,會疊在一起//設置位置在底部Stack({alignContent: Alignment.BottomEnd}){Image($r('app.media.list_item_top_icon')).width(50).height(50)//設置在層疊布局展示的順序.zIndex(1).backgroundColor('#ffe7e3e3').padding(10)//內邊距.margin({right: 40,bottom: 20}).borderRadius(50)//組件添加線條.border({width: 1,color: '#ffb7b4b4'}).onClick(() => {//點擊向上箭頭的圖標,實現邏輯操作,通過點擊圖片實現修好list組件的下標,改為0this.listScroller.scrollToIndex(0)})//注意:如果要實現回到頂部公共,學要進行綁定操作List({scroller: this.listScroller}){ForEach(this.nameList,(ithead:string,index:number)=>{ListItemGroup({header:this.itemHead(ithead)}){ForEach(this.ls[index],(item: string) => {ListItem(){Text(item).fontSize(20).height(100)}})}.divider({strokeWidth: 1,color: Color.Gray})})}//添加粘性標題.sticky(StickyStyle.Header).alignListItem(ListItemAlign.Center).scrollBar(BarState.Auto).scrollBarColor(Color.Orange).scrollBarWidth(10)}.width('100%').height('100%')}}
二種:
/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/27 22:21# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : AllGroups.ets**/
/*** AllGroups.ets 類別*/
export class AllGroups {id: number = 0;title: string = '';isSpecial: boolean = false;constructor(id: number, title: string, isSpecial: boolean) {this.id = id;this.title = title;this.isSpecial = isSpecial;}
}/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:ArKTS# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/27 20:35# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : GoldInfo.ets**//*** GoldInfo.ets 金信息*/
export class GoldInfo {id: number = 0 //數據庫表自增主鍵idName: string = ''group: number = 0//員工IDconstructor(id: number, Name: string, group: number) {this.id = idthis.Name = Namethis.group = group}
}/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述: 數組# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/27 20:13# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : ListPage.ets**/
import { faceDetector } from '@kit.CoreVisionKit';
import { AllGroups } from '../models/AllGroups'
import { GoldInfo } from '../models/GoldInfo'
@Entry
@Component
struct ListPage {@Builder itemHead(headName: string) {Text(headName).fontSize(20).fontWeight(FontWeight.Bold).width('100%').backgroundColor('#ffb0adad').padding(10);}private listScroller: Scroller = new Scroller();// 分組信息數據private groups: AllGroups[] = [new AllGroups(1, '黃金', false),new AllGroups(2, '鉆石', false),new AllGroups(3, '珍珠', false),new AllGroups(4, '寶銀', false)];// 商品數據private listgold: GoldInfo[] = [new GoldInfo(1, 'Beauty', 1),new GoldInfo(2, '愛很美', 1),new GoldInfo(3, '婚嫁', 1),new GoldInfo(4, 'HexiconHot', 2),new GoldInfo(5, 'Love', 2),new GoldInfo(6, '墜飾', 1),new GoldInfo(7, '對戒', 1),new GoldInfo(8, '項鏈', 1),new GoldInfo(9, 'DiaBling', 2),new GoldInfo(10, 'Shimmering', 2),new GoldInfo(11, 'Fortune', 2),new GoldInfo(12, '人氣爆款', 3),new GoldInfo(13, '鉆光影金', 3),new GoldInfo(14, '金蛇獻寶', 3),new GoldInfo(15, '抱抱家庭', 4),new GoldInfo(16, '娉婷', 4),new GoldInfo(17, '銀飾間', 4),new GoldInfo(18, '金蛇獻寶', 3),new GoldInfo(19, '囍愛', 3),new GoldInfo(20, '耳釘', 4),new GoldInfo(21, '手鐲', 4),new GoldInfo(22, '手鏈串', 4),new GoldInfo(23, '人氣爆款', 3),new GoldInfo(24, '鉆光影金', 3),new GoldInfo(25, '金蛇獻寶', 3),new GoldInfo(26, '抱抱家庭', 4),new GoldInfo(27, '銀飾間', 4),new GoldInfo(28, '飾擺件', 1),new GoldInfo(29, '實體黃金擺件', 2),new GoldInfo(30, 'Goldstyle', 2),];/*** 根據分組ID獲取該組所有項目*/private getItemsByGroup(groupId: number): GoldInfo[] {return this.listgold.filter(item => item.group === groupId);}build() {Column() {// 頁面標題Text("珠寶分類列表").fontSize(24).fontWeight(FontWeight.Bold).padding(16).width('100%').textAlign(TextAlign.Center).backgroundColor('#f0f0f0');//層疊布局,里面的元素不做處理,會疊在一起//設置位置在底部Stack({alignContent: Alignment.BottomEnd}) {Image($r('app.media.list_item_top_icon')).width(50).height(50)//設置在層疊布局展示的順序.zIndex(1).backgroundColor('#ffe7e3e3').padding(10)//內邊距.margin({ right: 40, bottom: 20 }).borderRadius(50)//組件添加線條.border({ width: 1, color: '#ffb7b4b4' }).onClick(() => {//點擊向上箭頭的圖標,實現邏輯操作,通過點擊圖片實現修好list組件的下標,改為0this.listScroller.scrollToIndex(0)})// 列表容器,確保占滿剩余空間List({ scroller: this.listScroller }) {ForEach(this.groups, (group: AllGroups, index: number = group.id) => {ListItemGroup({ header: this.itemHead(group.title) }) {ForEach(this.getItemsByGroup(group.id), (item: GoldInfo) => {ListItem() {Text(item.Name)}})}.divider({ strokeWidth: 1, color: Color.Gray })})}.padding(16).listDirection(Axis.Vertical).divider({strokeWidth: 1,color: '#EEEEEE',startMargin: 16,endMargin: 16})//添加粘性標題.sticky(StickyStyle.Header).alignListItem(ListItemAlign.Center).scrollBar(BarState.Auto).scrollBarColor(Color.Orange).scrollBarWidth(10).backgroundColor('#ffffff').borderRadius(10).layoutWeight(1); // 使用layoutWeight確保列表占據可用空間}}.width('100%').height('100%') // 確保根容器占滿屏幕.backgroundColor('#F5F5F5');}
}
三種:
/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/27 22:21# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : AllGroups.ets**/
/*** AllGroups.ets 類別*/
export class AllGroups {private id: number = 0;private title: string= '';private isSpecial: boolean = false;/*** AllGroups.ets* @param id* @param title* @param isSpecial*/constructor(id: number, title: string, isSpecial: boolean) {this.id = id;this.title = title;this.isSpecial = isSpecial;}/*** Id* @param value*/set Id(value: number) {this.id = value;}/***Id* @returns*/get Id(): number {return this.id;}/***名稱* @param value*/set Title(value: string) {this.title = value;}/***名稱* @returns*/get Title(): string {return this.title;}/*** 是否特別* @param value*/set IsSpecial(value: boolean) {this.isSpecial = value;}/***是否特別* @returns*/get IsSpecial(): boolean {return this.isSpecial;}}/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:ArKTS# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/27 20:35# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : GoldInfo.ets**//*** GoldInfo.ets 金信息*/
export class GoldInfo {private id: number = 0 //數據庫表自增主鍵idprivate name: string = ''private group: number = 0/*** 構造函數* @param id* @param name* @param group*/constructor(id: number, name: string, group: number) {this.id = idthis.name = namethis.group = group}/**** @param value*/set Id(value: number) {this.id = value;}/**** @returns*/get Id(): number {return this.id;}/**** @param value*/get Name(): string {return this.name;}/**** @param value*/set Name(value: string) {this.name = value;}/**** @param value*/set Group(value: number) {this.group = value;}/**** @returns*/get Group(): number {return this.group;}
}/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/28 1:28# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : GroupDAL.ets**/
import { AllGroups } from '../models/AllGroups'export class GroupDAL {/*** 獲取所有分組* @returns*/getAll(): Array<AllGroups> {// 創建并初始化AllGroups數組const groupInfo: Array<AllGroups> = [new AllGroups(1, '黃金', false),new AllGroups(2, '鉆石', false),new AllGroups(3, '珍珠', false),new AllGroups(4, '寶銀', false)];// 可以在這里添加更多業務邏輯,比如從數據庫獲取數據return groupInfo;}
}/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/28 1:10# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : GoldDAL.ets**/
import { GoldInfo } from '../models/GoldInfo'/****/export class GoldDAL{/*** 獲取所有金* @returns*/getAll(): Array<GoldInfo> {// 創建并初始化AllGroups數組const goldInfo: Array<GoldInfo> = [new GoldInfo(1, 'Beauty', 1),new GoldInfo(2, '愛很美', 1),new GoldInfo(3, '婚嫁', 1),new GoldInfo(4, 'HexiconHot', 2),new GoldInfo(5, 'Love', 2),new GoldInfo(6, '墜飾', 1),new GoldInfo(7, '對戒', 1),new GoldInfo(8, '項鏈', 1),new GoldInfo(9, 'DiaBling', 2),new GoldInfo(10, 'Shimmering', 2),new GoldInfo(11, 'Fortune', 2),new GoldInfo(12, '人氣爆款', 3),new GoldInfo(13, '鉆光影金', 3),new GoldInfo(14, '金蛇獻寶', 3),new GoldInfo(15, '抱抱家庭', 4),new GoldInfo(16, '娉婷', 4),new GoldInfo(17, '銀飾間', 4),new GoldInfo(18, '金蛇獻寶', 3),new GoldInfo(19, '囍愛', 3),new GoldInfo(20, '耳釘', 4),new GoldInfo(21, '手鐲', 4),new GoldInfo(22, '手鏈串', 4),new GoldInfo(23, '人氣爆款', 3),new GoldInfo(24, '鉆光影金', 3),new GoldInfo(25, '金蛇獻寶', 3),new GoldInfo(26, '抱抱家庭', 4),new GoldInfo(27, '銀飾間', 4),new GoldInfo(28, '飾擺件', 1),new GoldInfo(29, '實體黃金擺件', 2),new GoldInfo(30, 'Goldstyle', 2),];// 可以在這里添加更多業務邏輯,比如從數據庫獲取數據return goldInfo;}}/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述: 數組# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/27 20:13# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : ListPage.ets**/
import { faceDetector } from '@kit.CoreVisionKit';
import { GoldDAL } from '../DAL/GoldDAL'
import { GroupDAL } from '../DAL/GroupDAL'
import { AllGroups } from '../models/AllGroups'
import { GoldInfo } from '../models/GoldInfo'@Entry
@Component
struct ListPage {@Builder itemHead(headName: string) {Text(headName).fontSize(20).fontWeight(FontWeight.Bold).width('100%').backgroundColor('#ffb0adad').padding(10);}private listScroller: Scroller = new Scroller();// 分組信息數據private groups:AllGroups[] = new GroupDAL().getAll();// 商品數據private listgold: GoldInfo[] =new GoldDAL().getAll();/*** 根據分組ID獲取該組所有項目*/private getItemsByGroup(groupId: number): GoldInfo[] {return this.listgold.filter(item => item.Group === groupId);}build() {Column() {// 頁面標題Text("珠寶分類列表").fontSize(24).fontWeight(FontWeight.Bold).padding(16).width('100%').textAlign(TextAlign.Center).backgroundColor('#f0f0f0');//層疊布局,里面的元素不做處理,會疊在一起//設置位置在底部Stack({alignContent: Alignment.BottomEnd}) {Image($r('app.media.list_item_top_icon')).width(50).height(50)//設置在層疊布局展示的順序.zIndex(1).backgroundColor('#ffe7e3e3').padding(10)//內邊距.margin({ right: 40, bottom: 20 }).borderRadius(50)//組件添加線條.border({ width: 1, color: '#ffb7b4b4' }).onClick(() => {//點擊向上箭頭的圖標,實現邏輯操作,通過點擊圖片實現修好list組件的下標,改為0this.listScroller.scrollToIndex(0)})// 列表容器,確保占滿剩余空間List({ scroller: this.listScroller }) {ForEach(this.groups, (group: AllGroups, index: number = group.Id) => {ListItemGroup({ header: this.itemHead(group.Title) }) {ForEach(this.getItemsByGroup(group.Id), (item: GoldInfo) => {ListItem() {Text(item.Name)}})}.divider({ strokeWidth: 1, color: Color.Gray })})}.padding(16).listDirection(Axis.Vertical).divider({strokeWidth: 1,color: '#EEEEEE',startMargin: 16,endMargin: 16})//添加粘性標題.sticky(StickyStyle.Header).alignListItem(ListItemAlign.Center).scrollBar(BarState.Auto).scrollBarColor(Color.Orange).scrollBarWidth(10).backgroundColor('#ffffff').borderRadius(10).layoutWeight(1); // 使用layoutWeight確保列表占據可用空間}}.width('100%').height('100%') // 確保根容器占滿屏幕.backgroundColor('#F5F5F5');}
}
四種:
/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/27 22:21# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : AllGroups.ets**/
/*** AllGroups.ets 類別*/
export class AllGroups {private id: number = 0;private title: string= '';private isSpecial: boolean = false;/*** AllGroups.ets* @param id* @param title* @param isSpecial*/constructor(id?: number, title?: string, isSpecial?: boolean) {if (id) this.id = id;if (title) this.title = title;if (isSpecial !== undefined) this.isSpecial = isSpecial;}/*** Id* @param value*/set Id(value: number) {this.id = value;}/***Id* @returns*/get Id(): number {return this.id;}/***名稱* @param value*/set Title(value: string) {this.title = value;}/***名稱* @returns*/get Title(): string {return this.title;}/*** 是否特別* @param value*/set IsSpecial(value: boolean) {this.isSpecial = value;}/***是否特別* @returns*/get IsSpecial(): boolean {return this.isSpecial;}}/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:ArKTS# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/27 20:35# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : GoldInfo.ets**//*** GoldInfo.ets 金信息*/
export class GoldInfo {private id: number = 0 //數據庫表自增主鍵idprivate name: string = ''private group: number = 0/*** 構造函數* @param id* @param name* @param group*/constructor(id?: number, name?: string, group?: number) {if (id) this.id = idif (name) this.name = nameif (group) this.group = group}/**** @param value*/set Id(value: number) {this.id = value;}/**** @returns*/get Id(): number {return this.id;}/**** @param value*/get Name(): string {return this.name;}/**** @param value*/set Name(value: string) {this.name = value;}/**** @param value*/set Group(value: number) {this.group = value;}/**** @returns*/get Group(): number {return this.group;}
}/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/28 1:10# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : GoldDAL.ets**/
import { GoldInfo } from '../models/GoldInfo'/****/export class GoldDAL{/*** 獲取所有金* @returns*/getAll(): Array<GoldInfo> {/*// 創建并初始化AllGroups數組const goldInfo: Array<GoldInfo> = [new GoldInfo(1, 'Beauty', 1),new GoldInfo(2, '愛很美', 1),new GoldInfo(3, '婚嫁', 1),new GoldInfo(4, 'HexiconHot', 2),new GoldInfo(5, 'Love', 2),new GoldInfo(6, '墜飾', 1),new GoldInfo(7, '對戒', 1),new GoldInfo(8, '項鏈', 1),new GoldInfo(9, 'DiaBling', 2),new GoldInfo(10, 'Shimmering', 2),new GoldInfo(11, 'Fortune', 2),new GoldInfo(12, '人氣爆款', 3),new GoldInfo(13, '鉆光影金', 3),new GoldInfo(14, '金蛇獻寶', 3),new GoldInfo(15, '抱抱家庭', 4),new GoldInfo(16, '娉婷', 4),new GoldInfo(17, '銀飾間', 4),new GoldInfo(18, '金蛇獻寶', 3),new GoldInfo(19, '囍愛', 3),new GoldInfo(20, '耳釘', 4),new GoldInfo(21, '手鐲', 4),new GoldInfo(22, '手鏈串', 4),new GoldInfo(23, '人氣爆款', 3),new GoldInfo(24, '鉆光影金', 3),new GoldInfo(25, '金蛇獻寶', 3),new GoldInfo(26, '抱抱家庭', 4),new GoldInfo(27, '銀飾間', 4),new GoldInfo(28, '飾擺件', 1),new GoldInfo(29, '實體黃金擺件', 2),new GoldInfo(30, 'Goldstyle', 2),];*/const goldInfo: Array<GoldInfo> = [];const newItem: GoldInfo = new GoldInfo(); // 聲明時直接初始化,更簡潔newItem.Id = 1;newItem.Name = 'Beauty';newItem.Group = 1;goldInfo.push(newItem);const newItem2: GoldInfo = new GoldInfo();newItem2.Id = 2;newItem2.Name = '愛很美';newItem2.Group = 1;goldInfo.push(newItem2);const newItem3: GoldInfo = new GoldInfo();newItem3.Id = 3;newItem3.Name = '婚嫁';newItem3.Group = 1;goldInfo.push(newItem3);const newItem4: GoldInfo = new GoldInfo();newItem4.Id = 4;newItem4.Name = 'HexiconHot';newItem4.Group = 2;goldInfo.push(newItem4);const newItem5: GoldInfo = new GoldInfo();newItem5.Id = 5;newItem5.Name = 'Love';newItem5.Group = 2;goldInfo.push(newItem5);const newItem6: GoldInfo = new GoldInfo();newItem6.Id = 6;newItem6.Name = '墜飾';newItem6.Group = 1;goldInfo.push(newItem6);const newItem7: GoldInfo = new GoldInfo();newItem7.Id = 7;newItem7.Name = '對戒';newItem7.Group = 1;goldInfo.push(newItem7);const newItem8: GoldInfo = new GoldInfo();newItem8.Id = 8;newItem8.Name = '項鏈';newItem8.Group = 1;goldInfo.push(newItem8);const newItem9: GoldInfo = new GoldInfo();newItem9.Id = 9;newItem9.Name = 'DiaBling';newItem9.Group = 2;goldInfo.push(newItem9);const newItem10: GoldInfo = new GoldInfo();newItem10.Id = 10;newItem10.Name = 'Shimmering';newItem10.Group = 2;goldInfo.push(newItem10);const newItem11: GoldInfo = new GoldInfo();newItem11.Id = 11;newItem11.Name = 'Fortune';newItem11.Group =2;goldInfo.push(newItem11);const newItem12: GoldInfo = new GoldInfo();newItem12.Id = 12;newItem12.Name = '人氣爆款';newItem12.Group = 3;goldInfo.push(newItem12);const newItem13: GoldInfo = new GoldInfo();newItem13.Id = 13;newItem13.Name = '鉆光影金';newItem13.Group = 3;goldInfo.push(newItem13);const newItem14: GoldInfo = new GoldInfo();newItem14.Id = 14;newItem14.Name = '金蛇獻寶';newItem14.Group = 3;goldInfo.push(newItem14);const newItem15: GoldInfo = new GoldInfo();newItem15.Id = 15;newItem15.Name = '抱抱家庭';newItem15.Group =4;goldInfo.push(newItem15);const newItem16: GoldInfo = new GoldInfo();newItem16.Id = 16;newItem16.Name = '娉婷';newItem16.Group = 4;goldInfo.push(newItem16);const newItem18: GoldInfo = new GoldInfo();newItem18.Id = 17;newItem18.Name = '銀飾間';newItem18.Group = 4;goldInfo.push(newItem18);const newItem17: GoldInfo = new GoldInfo();newItem17.Id = 18;newItem17.Name = '金蛇獻寶';newItem17.Group = 3;goldInfo.push(newItem17);const newItem19: GoldInfo = new GoldInfo();newItem19.Id = 19;newItem19.Name = '囍愛';newItem19.Group = 3;goldInfo.push(newItem19);const newItem20: GoldInfo = new GoldInfo();newItem20.Id = 20;newItem20.Name = '耳釘';newItem20.Group = 4;goldInfo.push(newItem20);const newItem21: GoldInfo = new GoldInfo();newItem21.Id = 21;newItem21.Name = '手鐲';newItem21.Group = 4;goldInfo.push(newItem21);const newItem22: GoldInfo = new GoldInfo();newItem22.Id = 22;newItem22.Name = '手鏈串';newItem22.Group = 4;goldInfo.push(newItem22);const newItem23: GoldInfo = new GoldInfo();newItem23.Id = 23;newItem23.Name = '人氣爆款';newItem23.Group = 3;goldInfo.push(newItem23);const newItem24: GoldInfo = new GoldInfo();newItem24.Id = 24;newItem24.Name = '鉆光影金';newItem24.Group = 3;goldInfo.push(newItem24);const newItem25: GoldInfo = new GoldInfo();newItem25.Id = 25;newItem25.Name = '金蛇獻寶';newItem25.Group = 3;goldInfo.push(newItem25);const newItem26: GoldInfo = new GoldInfo();newItem26.Id = 26;newItem26.Name = '抱抱家庭';newItem26.Group = 4;goldInfo.push(newItem26);const newItem27: GoldInfo = new GoldInfo();newItem27.Id = 27;newItem27.Name = '銀飾間';newItem27.Group = 4;goldInfo.push(newItem27);const newItem29: GoldInfo = new GoldInfo();newItem29.Id = 28;newItem29.Name = '飾擺件';newItem29.Group = 1;goldInfo.push(newItem29);const newItem28: GoldInfo = new GoldInfo();newItem28.Id = 29;newItem28.Name = '實體黃金擺件';newItem28.Group = 2;goldInfo.push(newItem28);const newItem30: GoldInfo = new GoldInfo();newItem30.Id = 30;newItem30.Name = 'Goldstyle';newItem30.Group = 2;goldInfo.push(newItem30);// 可以在這里添加更多業務邏輯,比如從數據庫獲取數據return goldInfo;}}/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述:# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/28 1:28# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : GroupDAL.ets**/
import { AllGroups } from '../models/AllGroups'export class GroupDAL {/*** 可行// 創建并初始化AllGroups數組const groupInfo: Array<AllGroups> = [new AllGroups(1, '黃金', false),new AllGroups(2, '鉆石', false),new AllGroups(3, '珍珠', false),new AllGroups(4, '寶銀', false)];*//*** 獲取所有分組* @returns*/getAll(): Array<AllGroups> {const groupInfo: Array<AllGroups> = [];const newItem: AllGroups = new AllGroups(); // 聲明時直接初始化,更簡潔newItem.Id = 1;newItem.Title = '黃金';newItem.IsSpecial = false;groupInfo.push(newItem);const newItem2: AllGroups = new AllGroups();newItem2.Id = 2;newItem2.Title = '鉆石';newItem2.IsSpecial = false;groupInfo.push(newItem2);const newItem3: AllGroups = new AllGroups();newItem3.Id = 3;newItem3.Title = '珍珠';newItem3.IsSpecial = false;groupInfo.push(newItem3);const newItem4: AllGroups = new AllGroups();newItem4.Id =4;newItem4.Title = '寶銀';newItem4.IsSpecial = false;groupInfo.push(newItem4);// 可以在這里添加更多業務邏輯,比如從數據庫獲取數據return groupInfo;}
}/**# encoding: utf-8# 版權所有 2025 ?涂聚文有限公司? ?# 許可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎# 描述: 數組# Author : geovindu,Geovin Du 涂聚文.# IDE : DevEco Studio 5.1.1 HarmonyOS# os : windows 10# database : mysql 9.0 sql server 2019, postgreSQL 17.0 Oracle 21c Neo4j# Datetime : 2025/7/27 20:13# User : geovindu# Product : DevEco Studio# Project : MyApplication# File : ListPage.ets**/
import { faceDetector } from '@kit.CoreVisionKit';
import { GoldDAL } from '../DAL/GoldDAL'
import { GroupDAL } from '../DAL/GroupDAL'
import { AllGroups } from '../models/AllGroups'
import { GoldInfo } from '../models/GoldInfo'@Entry
@Component
struct ListPage {@Builder itemHead(headName: string) {Text(headName).fontSize(20).fontWeight(FontWeight.Bold).width('100%').backgroundColor('#ffb0adad').padding(10);}private listScroller: Scroller = new Scroller();//const dal = new GroupDAL();//const groups = dal.getAll(); // 此時groups會包含4個分組數據// 分組信息數據private groups:AllGroups[] = new GroupDAL().getAll();// 商品數據private listgold: GoldInfo[] =new GoldDAL().getAll();/*** 根據分組ID獲取該組所有項目*/private getItemsByGroup(groupId: number): GoldInfo[] {return this.listgold.filter(item => item.Group === groupId);}build() {Column() {// 頁面標題Text("珠寶分類列表").fontSize(24).fontWeight(FontWeight.Bold).padding(16).width('100%').textAlign(TextAlign.Center).backgroundColor('#f0f0f0');//層疊布局,里面的元素不做處理,會疊在一起//設置位置在底部Stack({alignContent: Alignment.BottomEnd}) {Image($r('app.media.list_item_top_icon')).width(50).height(50)//設置在層疊布局展示的順序.zIndex(1).backgroundColor('#ffe7e3e3').padding(10)//內邊距.margin({ right: 40, bottom: 20 }).borderRadius(50)//組件添加線條.border({ width: 1, color: '#ffb7b4b4' }).onClick(() => {//點擊向上箭頭的圖標,實現邏輯操作,通過點擊圖片實現修好list組件的下標,改為0this.listScroller.scrollToIndex(0)})// 列表容器,確保占滿剩余空間List({ scroller: this.listScroller }) {ForEach(this.groups, (group: AllGroups, index: number = group.Id) => {ListItemGroup({ header: this.itemHead(group.Title) }) {ForEach(this.getItemsByGroup(group.Id), (item: GoldInfo) => {ListItem() {Text(item.Name)}})}.divider({ strokeWidth: 1, color: Color.Gray })})}.padding(16).listDirection(Axis.Vertical).divider({strokeWidth: 1,color: '#EEEEEE',startMargin: 16,endMargin: 16})//添加粘性標題.sticky(StickyStyle.Header).alignListItem(ListItemAlign.Center).scrollBar(BarState.Auto).scrollBarColor(Color.Orange).scrollBarWidth(10).backgroundColor('#ffffff').borderRadius(10).layoutWeight(1); // 使用layoutWeight確保列表占據可用空間}}.width('100%').height('100%') // 確保根容器占滿屏幕.backgroundColor('#F5F5F5');}
}