tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 8.5 kB
Source Map (JSON)
{"version":3,"file":"action-sheet-grid.mjs","sources":["../../src/action-sheet/action-sheet-grid.tsx"],"sourcesContent":["import { defineComponent, computed } from 'vue';\nimport { Grid as TGrid, GridItem as TGridItem } from '../grid';\nimport { Swiper as TSwiper, SwiperItem as TSwiperItem } from '../swiper';\nimport { ActionSheetItem } from './type';\nimport { usePrefixClass } from '../hooks/useClass';\n\nexport default defineComponent({\n components: { TGrid, TGridItem, TSwiper, TSwiperItem },\n props: {\n items: {\n type: Array<ActionSheetItem>,\n required: true,\n },\n count: {\n type: Number,\n default: 8,\n },\n selected: {\n type: Function,\n default: undefined,\n },\n },\n emits: ['selected'],\n setup(props, { emit }) {\n const actionSheetClass = usePrefixClass('action-sheet');\n\n const gridColumn = computed(() => Math.ceil(props.count / 2));\n\n const pageNum = computed(() => Math.ceil(props.items.length / props.count));\n\n const actionItems = computed(() => {\n const res: ActionSheetItem[][] = [];\n for (let i = 0; i < pageNum.value; i++) {\n const temp = props.items.slice(i * props.count, (i + 1) * props.count);\n res.push(temp);\n }\n return res;\n });\n\n const gridClasses = computed(() => ({\n [`${actionSheetClass.value}__grid`]: true,\n [`${actionSheetClass.value}__grid--swiper`]: pageNum.value > 1,\n [`${actionSheetClass.value}__dots`]: pageNum.value > 1,\n }));\n\n const handleSelected = (i: number) => {\n emit('selected', i);\n };\n\n return () => {\n const swiper = () => {\n const swiperItems = actionItems.value.map((items, i) => {\n const gridItems = items.map((item, index) => (\n <t-grid-item\n key={index}\n text={item.label}\n image={item.icon}\n badge={item.badge}\n onClick={(event: MouseEvent) => {\n event.preventDefault();\n handleSelected(i * props.count + index);\n }}\n />\n ));\n return (\n <t-swiper-item key={i}>\n <t-grid column={gridColumn.value}>{gridItems}</t-grid>\n </t-swiper-item>\n );\n });\n if (actionItems.value.length > 1) {\n return (\n <t-swiper\n autoplay={false}\n pagination-position=\"bottom\"\n navigation={{ type: 'dots', showControls: false }}\n loop={false}\n class={`${actionSheetClass.value}__swiper-wrap`}\n height={192}\n >\n {swiperItems}\n </t-swiper>\n );\n }\n return null;\n };\n const grid = () => {\n if (actionItems.value.length === 1) {\n const items = actionItems.value[0].map((item, index) => (\n <t-grid-item\n key={index}\n text={item.label}\n image={item.icon}\n badge={item.badge}\n onClick={() => handleSelected(index)}\n />\n ));\n\n return <t-grid column={gridColumn.value}>{items}</t-grid>;\n }\n return null;\n };\n return (\n <div class={gridClasses.value}>\n {swiper()}\n {grid()}\n </div>\n );\n };\n },\n});\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","components","TGrid","TGridItem","TSwiper","TSwiperItem","props","items","type","Array","required","count","Number","default","selected","Function","emits","setup","_ref","emit","actionSheetClass","usePrefixClass","gridColumn","computed","Math","ceil","pageNum","length","actionItems","res","i","value","temp","slice","push","gridClasses","_defineProperty","concat","handleSelected","swiper","swiperItems","map","gridItems","item","index","_createVNode","_resolveComponent","label","icon","badge","onClick","event","preventDefault","_default","showControls","grid"],"mappings":"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"}