diff --git a/arkoala-arkts/arkui/src/ForEach.ts b/arkoala-arkts/arkui/src/ForEach.ts index d05800a8fe122b471f6ac598280bac760fb7fdba..c0543a682884e0df0b0042096fa105e4b674156c 100644 --- a/arkoala-arkts/arkui/src/ForEach.ts +++ b/arkoala-arkts/arkui/src/ForEach.ts @@ -19,8 +19,8 @@ import { RepeatByArray } from "@koalaui/runtime" /** @memo */ export function ForEach(data: Array, /** @memo */ - itemGenerator: (item: T, index?: int32) => void, - keyGenerator?: (item: T, index?: int32) => string, + itemGenerator: (item: T, index: int32) => void, + keyGenerator: (item: T, index: int32) => string, ) { RepeatByArray(data, (element: T, index: int32) => keyGenerator ? hashCodeFromString(keyGenerator!(element, index)) : index, diff --git a/arkoala-arkts/shopping/src/ets/pages/detailPage/detail.ets b/arkoala-arkts/shopping/src/ets/pages/detailPage/detail.ets index 72500a743a9c63d28722d9ce7d0013b40f0c3e69..083e1bd951c162b37370e31dc6fc3fbd5ec2d001 100644 --- a/arkoala-arkts/shopping/src/ets/pages/detailPage/detail.ets +++ b/arkoala-arkts/shopping/src/ets/pages/detailPage/detail.ets @@ -85,10 +85,10 @@ export struct Detail { .backgroundColor(Color.White) Swiper() { - ForEach(this.swiper, (item: SwiperModel) => { + ForEach(this.swiper, (item: SwiperModel, index: int32) => { Image(item.src) .objectFit(ImageFit.Contain) - }, (item: SwiperModel) => JSON.stringify(item)) + }, (item: SwiperModel, index: int32) => JSON.stringify(item)) } .index(0) .width('100%') @@ -364,11 +364,11 @@ export struct Detail { Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { Text() Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - ForEach(this.phoneType, (item: PhoneTypeModel) => { + ForEach(this.phoneType, (item: PhoneTypeModel, index: int32) => { Image(`${item.uri}`) .objectFit(ImageFit.Contain) .width(35 * this.ratio) - }, (item: PhoneTypeModel) => JSON.stringify(item)) + }, (item: PhoneTypeModel, index: int32) => JSON.stringify(item)) Text('共6种机身颜色可选') .fontSize(13 * this.ratio) } @@ -456,12 +456,12 @@ export struct Detail { .margin({ top: 10, bottom: 10 } as Margin) Row() { - ForEach(this.showImg, (item: ShowImgModel) => { + ForEach(this.showImg, (item: ShowImgModel, index: int32) => { Image(item.uri) .objectFit(ImageFit.Cover) .width('25%') .height(100 * this.ratio) - }, (item: ShowImgModel) => JSON.stringify(item)) + }, (item: ShowImgModel, index: int32) => JSON.stringify(item)) } .backgroundColor(Color.Red) @@ -586,7 +586,7 @@ export struct Detail { .margin({ top: 10, bottom: 10 } as Margin) Flex({ justifyContent: FlexAlign.Center, wrap: FlexWrap.Wrap, alignContent: FlexAlign.Start }) { - ForEach(this.recommendData, (item: RecommendDataModel) => { + ForEach(this.recommendData, (item: RecommendDataModel, index: int32) => { Column() { Image(`${item.img}`) .objectFit(ImageFit.Contain) @@ -606,22 +606,22 @@ export struct Detail { .width('33%') .height('48%') .alignItems(HorizontalAlign.Start) - }, (item: RecommendDataModel) => JSON.stringify(item)) + }, (item: RecommendDataModel, index: int32) => JSON.stringify(item)) } .height('45%') } .margin({ top: 10 } as Margin) Column() { - ForEach(this.goodsList, (item: GoodsInfoModel) => { + ForEach(this.goodsList, (item: GoodsInfoModel, index: int32) => { Image(`${item.img}`) .width('100%') .objectFit(ImageFit.Cover) - }, (item: GoodsInfoModel) => JSON.stringify(item)) + }, (item: GoodsInfoModel, index: int32) => JSON.stringify(item)) } Flex({ justifyContent: FlexAlign.Start, wrap: FlexWrap.Wrap, alignContent: FlexAlign.Start }) { - ForEach(this.listImg, (item: ListDataModel) => { + ForEach(this.listImg, (item: ListDataModel, index: int32) => { Column() { Image(`${item.img}`) .objectFit(ImageFit.Contain) @@ -638,7 +638,7 @@ export struct Detail { .height('32%') .margin(5) .alignItems(HorizontalAlign.Center) - }, (item: ListDataModel) => JSON.stringify(item)) + }, (item: ListDataModel, index: int32) => JSON.stringify(item)) } } diff --git a/arkoala-arkts/shopping/src/ets/pages/homePage/User.ets b/arkoala-arkts/shopping/src/ets/pages/homePage/User.ets index 9ba78d1abda85697377e3fa3ccc51d3a526fd513..711fcd145c03a8a22d148ccc173ad4828b18ed7f 100644 --- a/arkoala-arkts/shopping/src/ets/pages/homePage/User.ets +++ b/arkoala-arkts/shopping/src/ets/pages/homePage/User.ets @@ -94,7 +94,7 @@ export struct User { } Flex({ justifyContent: FlexAlign.SpaceAround, alignItems: ItemAlign.Center }) { - ForEach(this.record, (item: RecordModel) => { + ForEach(this.record, (item: RecordModel, index: int32) => { Column() { Image(item.img) .width(30 * this.ratio) @@ -113,7 +113,7 @@ export struct User { } as SearchParam }) }) - }, (item: RecordModel) => JSON.stringify(item)) + }, (item: RecordModel, index: int32) => JSON.stringify(item)) } Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { @@ -161,7 +161,7 @@ export struct User { } Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - ForEach(this.orderData, (item: OrderModel) => { + ForEach(this.orderData, (item: OrderModel, index: int32) => { Column() { Image(item.img) .width(30 * this.ratio) @@ -171,7 +171,7 @@ export struct User { Text(item.title) .fontSize(12 * this.ratio) } - }, (item: OrderModel) => JSON.stringify(item)) + }, (item: OrderModel, index: int32) => JSON.stringify(item)) } .margin({ top: 10 } as Margin) @@ -211,7 +211,7 @@ export struct User { Column() { Flex({ justifyContent: FlexAlign.SpaceAround, alignItems: ItemAlign.Center }) { - ForEach(this.discountData, (item: DiscountModel) => { + ForEach(this.discountData, (item: DiscountModel, index: int32) => { Column() { Image(item.img) .width(35 * this.ratio) @@ -225,7 +225,7 @@ export struct User { .fontSize(12 * this.ratio) .fontColor(Color.Grey) } - }, (item: DiscountModel) => JSON.stringify(item)) + }, (item: DiscountModel, index: int32) => JSON.stringify(item)) } .margin({ top: 10 } as Margin) } @@ -236,7 +236,7 @@ export struct User { Column() { Flex({ justifyContent: FlexAlign.SpaceAround, alignItems: ItemAlign.Center }) { - ForEach(this.serviceData, (item: ServiceModel) => { + ForEach(this.serviceData, (item: ServiceModel, index: int32) => { Column() { Image(item.img) .width(30 * this.ratio) @@ -246,7 +246,7 @@ export struct User { Text(item.title) .fontSize(12 * this.ratio) } - }, (item: ServiceModel) => JSON.stringify(item)) + }, (item: ServiceModel, index: int32) => JSON.stringify(item)) } .margin({ top: 10 } as Margin) } diff --git a/arkoala-arkts/shopping/src/ets/pages/homePage/boutique.ets b/arkoala-arkts/shopping/src/ets/pages/homePage/boutique.ets index b59eac55834349921f12cd864f32db617db1c85c..990d0d47cfd51c91c22206595d4bd7cff01d49e2 100644 --- a/arkoala-arkts/shopping/src/ets/pages/homePage/boutique.ets +++ b/arkoala-arkts/shopping/src/ets/pages/homePage/boutique.ets @@ -24,7 +24,7 @@ export struct Boutique { build() { Column() { Flex({ wrap: FlexWrap.Wrap, direction: FlexDirection.Row }) { - ForEach(this.boutiqueData, (item: BoutiqueModel) => { + ForEach(this.boutiqueData, (item: BoutiqueModel, index: int32) => { Column() { Text(item.text1) .fontSize(15 * this.ratio) @@ -46,7 +46,7 @@ export struct Boutique { } .width('50%') .alignItems(HorizontalAlign.Start) - }, (item: BoutiqueModel) => JSON.stringify(item)) + }, (item: BoutiqueModel, index: int32) => JSON.stringify(item)) } } .width('92%') diff --git a/arkoala-arkts/shopping/src/ets/pages/homePage/core1.ets b/arkoala-arkts/shopping/src/ets/pages/homePage/core1.ets index 557b9a2bf90c9a6e205296619d349ba0136d337a..92e2cf49c32831a6de4ac1915540483cd598736c 100644 --- a/arkoala-arkts/shopping/src/ets/pages/homePage/core1.ets +++ b/arkoala-arkts/shopping/src/ets/pages/homePage/core1.ets @@ -26,10 +26,10 @@ export struct Core1 { build() { Column() { List() { - ForEach(this.cols, (item1: Number) => { + ForEach(this.cols, (item1: Number, index: int32) => { ListItem() { Grid() { - ForEach(this.rows, (item2: Number) => { + ForEach(this.rows, (item2: Number, index: int32) => { GridItem() { Column() { Image(`${this.coreData[item1.valueOf() * 2 + item2.valueOf()].uri}`) @@ -42,13 +42,13 @@ export struct Core1 { } } .width('100%') - }, (item2: Number) => JSON.stringify(item2.valueOf())) + }, (item2: Number, index: int32) => JSON.stringify(item2.valueOf())) } .rowsTemplate('1fr 1fr') .columnsTemplate('1fr') } .width('20%') - }, (item1: Number) => JSON.stringify(item1.valueOf())) + }, (item1: Number, index: int32) => JSON.stringify(item1.valueOf())) } .listDirection(Axis.Horizontal) .height(160 * this.ratio) diff --git a/arkoala-arkts/shopping/src/ets/pages/homePage/core2.ets b/arkoala-arkts/shopping/src/ets/pages/homePage/core2.ets index 2505226b8b4c09afff1253a9df8b497e3ad9958b..24472e0e9e66d70afd4d4f5d2bf236899be3995e 100644 --- a/arkoala-arkts/shopping/src/ets/pages/homePage/core2.ets +++ b/arkoala-arkts/shopping/src/ets/pages/homePage/core2.ets @@ -26,10 +26,10 @@ export struct Core2 { build() { Column() { List() { - ForEach(this.cols, (item1: Number) => { + ForEach(this.cols, (item1: Number, index: int32) => { ListItem() { Grid() { - ForEach(this.rows, (item2: Number) => { + ForEach(this.rows, (item2: Number, index: int32) => { GridItem() { Column() { Image(`${this.coreData[item1.valueOf() * 2 + item2.valueOf()].uri}`) @@ -42,13 +42,13 @@ export struct Core2 { } } .width('100%') - }, (item2: Number) => JSON.stringify(item2.valueOf())) + }, (item2: Number, index: int32) => JSON.stringify(item2.valueOf())) } .rowsTemplate('1fr 1fr') .columnsTemplate('1fr') } .width('22.5%') - }, (item1: Number) => JSON.stringify(item1.valueOf())) + }, (item1: Number, index: int32) => JSON.stringify(item1.valueOf())) } .listDirection(Axis.Horizontal) .height('22%') diff --git a/arkoala-arkts/shopping/src/ets/pages/homePage/find.ets b/arkoala-arkts/shopping/src/ets/pages/homePage/find.ets index 63b3eb510862daac70cd27c0d2ed352313176015..242dd14e5c32eeddfc6e796ac8972cd9e0cf6dd1 100644 --- a/arkoala-arkts/shopping/src/ets/pages/homePage/find.ets +++ b/arkoala-arkts/shopping/src/ets/pages/homePage/find.ets @@ -41,11 +41,11 @@ export struct FindPage { .vertical(true) .height('8%') Swiper() { - ForEach(this.searchText, (item: SearchTextModel) => { + ForEach(this.searchText, (item: SearchTextModel, index: int32) => { Text(item.searchText) .fontSize(15 * this.ratio) .fontColor(Color.Grey) - }, (item: SearchTextModel) => JSON.stringify(item)) + }, (item: SearchTextModel, index: int32) => JSON.stringify(item)) } .width('65%') .autoPlay(false) @@ -77,10 +77,10 @@ export struct FindPage { ListItem() { Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { - ForEach(this.titleText, (item: FindTitleTextModel) => { + ForEach(this.titleText, (item: FindTitleTextModel, index: int32) => { Text(item.titleText) .fontSize(15 * this.ratio) - }, (item: FindTitleTextModel) => JSON.stringify(item)) + }, (item: FindTitleTextModel, index: int32) => JSON.stringify(item)) } .padding({ left: 15, right: 15 } as Padding) } @@ -90,7 +90,7 @@ export struct FindPage { ListItem() { Column() { - ForEach(items, (item: Number) => { + ForEach(items, (item: Number, index: int32) => { Row() { Column() { ImageItem({ ratio: this.ratio }) @@ -105,7 +105,7 @@ export struct FindPage { .width('100%') .aspectRatio(1.1) .margin({ top: 10 } as Margin) - }, (item: Number) => JSON.stringify(item.valueOf())) + }, (item: Number, index: int32) => JSON.stringify(item.valueOf())) } .padding({ left: 10, right: 10 } as Padding) } diff --git a/arkoala-arkts/shopping/src/ets/pages/homePage/main.ets b/arkoala-arkts/shopping/src/ets/pages/homePage/main.ets index 52dcba274c0df09d37d4db6bc62a0e214c158de5..11e37f41ae63476fb03752ab92b551d3de9ccd82 100644 --- a/arkoala-arkts/shopping/src/ets/pages/homePage/main.ets +++ b/arkoala-arkts/shopping/src/ets/pages/homePage/main.ets @@ -48,7 +48,7 @@ export struct MainPage { .objectFit(ImageFit.Contain) Swiper() { - ForEach(this.searchData, (item: SearchTextModel) => { + ForEach(this.searchData, (item: SearchTextModel, index: int32) => { Column() { Text(item.searchText) .fontSize(14 * (this.ratio + 0.2)) @@ -65,7 +65,7 @@ export struct MainPage { } this.pathInfos.pushPath({name:'searchPage', param: searchParam}) }) - }, (item: SearchTextModel) => JSON.stringify(item)) + }, (item: SearchTextModel, index: int32) => JSON.stringify(item)) } .width('65%') .autoPlay(true) @@ -97,7 +97,7 @@ export struct MainPage { Column() { Row() { List() { - ForEach(this.navData, (item: NavDataModel) => { + ForEach(this.navData, (item: NavDataModel, index: int32) => { ListItem() { Text(item.navData) .fontColor(`${item.navData == '首页' ? Color.Blue : Color.Black}`) @@ -107,7 +107,7 @@ export struct MainPage { .lineHeight(30 * this.ratio) } .height(30 * this.ratio) - }, (item: NavDataModel) => JSON.stringify(item)) + }, (item: NavDataModel, index: int32) => JSON.stringify(item)) } .height(30 * this.ratio) .width('85%') @@ -127,7 +127,7 @@ export struct MainPage { .margin({ bottom: 0, left: 5, right: 5 } as Margin) Swiper() { - ForEach(this.swiperData, (item: SwiperModel) => { + ForEach(this.swiperData, (item: SwiperModel, index: int32) => { Image(item.img) .width('100%') .height('100%') @@ -141,7 +141,7 @@ export struct MainPage { this.pathInfos.pushPath({name:'detailPage',param:params}) }) - }, (item: SwiperModel) => JSON.stringify(item)) + }, (item: SwiperModel, index: int32) => JSON.stringify(item)) } .autoPlay(true) .loop(true) @@ -158,7 +158,7 @@ export struct MainPage { .margin({ top: 10 } as Margin) Flex({ justifyContent: FlexAlign.SpaceAround, alignItems: ItemAlign.Center }) { - ForEach(this.titleBarData, (item: TitleBarModel) => { + ForEach(this.titleBarData, (item: TitleBarModel, index: int32) => { Column() { Text(item.title) .fontSize(15 * this.ratio) @@ -171,7 +171,7 @@ export struct MainPage { this.tabsIndex = item.id this.controller.changeIndex(item.id) }) - }, (item: TitleBarModel) => JSON.stringify(item)) + }, (item: TitleBarModel, index: int32) => JSON.stringify(item)) } .height('7%') .zIndex(2) diff --git a/arkoala-arkts/shopping/src/ets/pages/homePage/shopCart.ets b/arkoala-arkts/shopping/src/ets/pages/homePage/shopCart.ets index 437120abbd066833b042a28fe82134606a41b044..a6cc4621eb0a7f54d4358247e21024c964605453 100644 --- a/arkoala-arkts/shopping/src/ets/pages/homePage/shopCart.ets +++ b/arkoala-arkts/shopping/src/ets/pages/homePage/shopCart.ets @@ -97,20 +97,20 @@ export struct ShopCart { Row() { Column() { - ForEach(this.cartNum, (item: Number) => { + ForEach(this.cartNum, (item: Number, index: int32) => { Column() { Other({ item: item.valueOf() % 6, ratio: this.ratio }) } - }, (item: Number) => JSON.stringify(item.valueOf())) + }, (item: Number, index: int32) => JSON.stringify(item.valueOf())) } .margin(2) Column() { - ForEach(this.cartNum, (item: Number) => { + ForEach(this.cartNum, (item: Number, index: int32) => { Column() { Other({ item: item.valueOf() % 6, ratio: this.ratio }) } - }, (item: Number) => JSON.stringify(item.valueOf())) + }, (item: Number, index: int32) => JSON.stringify(item.valueOf())) } .margin(2) } diff --git a/arkoala-arkts/shopping/src/ets/pages/index-entry.ets b/arkoala-arkts/shopping/src/ets/pages/index-entry.ets index accafa4aa72aef2462dd149714a461fe0a17bd1f..641d97a1641582c21e8ff54710ac3813cbf5e0b6 100644 --- a/arkoala-arkts/shopping/src/ets/pages/index-entry.ets +++ b/arkoala-arkts/shopping/src/ets/pages/index-entry.ets @@ -89,7 +89,7 @@ struct Index { Column() { Flex({ justifyContent: FlexAlign.SpaceAround, alignItems: ItemAlign.Center }) { - ForEach(this.tabTittleData, (item: TabTitleModel) => { + ForEach(this.tabTittleData, (item: TabTitleModel, index: int32) => { Flex({ direction: FlexDirection.Column, justifyContent: FlexAlign.Center, @@ -109,7 +109,7 @@ struct Index { this.tabsIndex = item.id this.controller.changeIndex(item.id) }) - }, (item: TabTitleModel) => JSON.stringify(item)) + }, (item: TabTitleModel, index: int32) => JSON.stringify(item)) } .height('8%') } diff --git a/arkoala-arkts/shopping/src/ets/pages/search/searchPage.ets b/arkoala-arkts/shopping/src/ets/pages/search/searchPage.ets index 7897ab1993082538405e61640848e526fde38a5d..886da29819cc0a5c6a45bab23412ab6eda2e3982 100644 --- a/arkoala-arkts/shopping/src/ets/pages/search/searchPage.ets +++ b/arkoala-arkts/shopping/src/ets/pages/search/searchPage.ets @@ -132,7 +132,7 @@ export struct SearchPage { if (this.flag) { Flex({ justifyContent: FlexAlign.Start, alignItems: ItemAlign.Center, wrap: FlexWrap.Wrap }) { - ForEach(this.exampleText, (item: ExampleDataModel) => { + ForEach(this.exampleText, (item: ExampleDataModel, index: int32) => { Button() { Text(item.exampleText) .fontSize(12 * this.ratio) @@ -142,7 +142,7 @@ export struct SearchPage { .margin(3) .height(30 * this.ratio) .backgroundColor('#f8f8f8') - }, (item: ExampleDataModel) => JSON.stringify(item)) + }, (item: ExampleDataModel, index: int32) => JSON.stringify(item)) } .margin({ left: 10, right: 10 } as Margin) } else { @@ -182,7 +182,7 @@ export struct SearchPage { .alignItems(HorizontalAlign.Start) List() { - ForEach(this.outerArray, (item: Number) => { + ForEach(this.outerArray, (item: Number, index: int32) => { ListItem() { Column() { Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { @@ -204,7 +204,7 @@ export struct SearchPage { } .padding({ left: 5, right: 5 } as Padding) - ForEach(this.innerArray, (item: Number) => { + ForEach(this.innerArray, (item: Number, index: int32) => { Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { Flex({ alignItems: ItemAlign.Center }) { Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { @@ -231,7 +231,7 @@ export struct SearchPage { .padding({ left: 5, right: 5 } as Padding) .width('100%') .height(40 * this.ratio) - }, (item: Number) => JSON.stringify(item.valueOf())) + }, (item: Number, index: int32) => JSON.stringify(item.valueOf())) } .width('100%') } @@ -240,7 +240,7 @@ export struct SearchPage { .padding({ top: 5 } as Padding) .backgroundColor(Color.White) .width(`60%`) - }, (item: Number) => JSON.stringify(item.valueOf())) + }, (item: Number, index: int32) => JSON.stringify(item.valueOf())) } .listDirection(Axis.Horizontal) .height('70%') @@ -257,7 +257,7 @@ export struct SearchPage { } if (this.isFlag) { Column() { - ForEach(this.searched, (item: string) => { + ForEach(this.searched, (item: string, index: int32) => { Flex({ justifyContent: FlexAlign.SpaceBetween, alignItems: ItemAlign.Center }) { Row() { Image('/resources/icon/search.png') @@ -281,7 +281,7 @@ export struct SearchPage { this.isFlag = false this.value = item }) - }, (item: string) => JSON.stringify(item)) + }, (item: string, index: int32) => JSON.stringify(item)) } } } diff --git a/arkoala/ets-plugin/src/Importer.ts b/arkoala/ets-plugin/src/Importer.ts index 69de0a7b140e62e4e1a1ae5b36d558d4f627b459..4833ca39430a30fa14a61e4009e71718d2c487ed 100644 --- a/arkoala/ets-plugin/src/Importer.ts +++ b/arkoala/ets-plugin/src/Importer.ts @@ -257,6 +257,7 @@ export class Importer { temporary workaround for arkts reexport bug */ if (this.isArkts()) { + this.addCommonImport("int32") if (name === "LocalStorage") return this.addArkuiCommonImport(name) if (name === "observableProxy") return this.addArkuiCommonImport(name) }