组件库文档 tmui.design
宫格 Grid
宫格用于把元素进行水平方向分割成等宽区块,是较为常用的布局方式,通常用于页面导航。
🌶️ 宫格 Grid 示例效果
查看模拟效果+
示例代码
vue
<template>
<tm-app>
<tm-sheet>
<tm-text :font-size="24" _class="text-weight-b" label="基础示例(点击项目减少)"></tm-text>
<tm-divider></tm-divider>
<tm-grid :width="638" :col="3">
<tm-grid-item @click="del(index)" v-for="(item, index) in testNum" :key="index">
<tm-text :label="item"></tm-text>
</tm-grid-item>
</tm-grid>
</tm-sheet>
<tm-sheet :margin="[32, 0, 32, 32]">
<tm-text :font-size="24" _class="text-weight-b mb-24" label="含有边线(点击项目新增)"></tm-text>
<tm-grid showBorder :width="638" :col="5">
<tm-grid-item @click="add(index)" v-for="(item, index) in testNum" :key="index">
<tm-text :label="item"></tm-text>
</tm-grid-item>
</tm-grid>
</tm-sheet>
<tm-sheet :margin="[32, 0, 32, 0]" :padding="[24]">
<tm-text :font-size="24" _class="text-weight-b" label="带角标的宫格"></tm-text>
<tm-divider></tm-divider>
<tm-grid :width="638" :col="4">
<tm-grid-item dot>
<tm-text label="宫格文本"></tm-text>
</tm-grid-item>
<tm-grid-item count="HOT">
<tm-text label="宫格文本"></tm-text>
</tm-grid-item>
<tm-grid-item :count="55">
<tm-text label="宫格文本"></tm-text>
</tm-grid-item>
<tm-grid-item icon="tmicon-gem">
<tm-text label="宫格文本"></tm-text>
</tm-grid-item>
</tm-grid>
</tm-sheet>
<tm-sheet>
<tm-text :font-size="24" _class="text-weight-b" label="自定更多内容"></tm-text>
<tm-divider></tm-divider>
<tm-grid :width="638" :col="3">
<tm-grid-item :height="120" dot>
<tm-icon name="tmicon-user-fill" :font-size="42"></tm-icon>
<tm-text _class="pt-10" :font-size="22" label="宫格文本"></tm-text>
</tm-grid-item>
<tm-grid-item color="orange" :height="120" count="积分">
<tm-icon name="tmicon-cog-fill" :font-size="42"></tm-icon>
<tm-text _class="pt-10" :font-size="22" label="宫格文本"></tm-text>
</tm-grid-item>
<tm-grid-item color="green" :height="120" :count="55">
<tm-icon name="tmicon-heart-fill" :font-size="42"></tm-icon>
<tm-text :font-size="22" label="宫格文本"></tm-text>
</tm-grid-item>
<tm-grid-item color="pink" :height="120" icon="tmicon-gem">
<tm-icon name="tmicon-layergroup-fill" :font-size="42"></tm-icon>
<tm-text _class="pt-10" :font-size="22" label="宫格文本"></tm-text>
</tm-grid-item>
<tm-grid-item :height="120">
<tm-icon color="blue" name="tmicon-lightbulb-fill" :font-size="42"></tm-icon>
<tm-text _class="pt-10" :font-size="22" label="宫格文本"></tm-text>
</tm-grid-item>
</tm-grid>
</tm-sheet>
</tm-app>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
import { onShow, onLoad } from '@dcloudio/uni-app'
import tmApp from '@/tmui/components/tm-app/tm-app.vue'
import tmSheet from '@/tmui/components/tm-sheet/tm-sheet.vue'
import tmText from '@/tmui/components/tm-text/tm-text.vue'
import tmIcon from '@/tmui/components/tm-icon/tm-icon.vue'
import tmDivider from '@/tmui/components/tm-divider/tm-divider.vue'
import tmGridItem from '@/tmui/components/tm-grid-item/tm-grid-item.vue'
import tmGrid from '@/tmui/components/tm-grid/tm-grid.vue'
import tmCheckbox from '@/tmui/components/tm-checkbox/tm-checkbox.vue'
import tmButton from '@/tmui/components/tm-button/tm-button.vue'
const testNum = ref([])
for (let i = 0; i < 10; i++) {
testNum.value.push(i)
}
const del = (index) => {
testNum.value.splice(index, 1)
}
const add = (index) => {
testNum.value.push(index)
}
</script>
🌶️ 兼容性
APP-VUE | APP-NVUE | 小程序 | WEB/H5 | VUE3/TS |
---|---|---|---|---|
✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
🌱 参数
本组件含有公共属性 公共属性
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
width | Number | 750 | 宽度 |
col | Number | 5 | 每行的列数 |
showBorder | Boolean | false | 是否显示边线 |
color | String | white | 背景颜色 |
transprent | Boolean | false | 是否透明背景 |
🌹 事件
无
🌽 slot插槽
注意,它内部只能放置tm-grid-item,且不能嵌套tm-grid
tm-grid-item
🥗 ref方法
无
宫格子组件 Grid-Item
🌱 参数
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
height | Number | 100 | 高度,如果提供为0,就表示自动高度。 |
dot | Boolean, String | false | 是否显示红点 |
icon | Boolean, String | false | 显示图标 |
count | Number, String | 0 | 为数字时,显示数字角标,如果为string是显示文本角标 |
maxCount | Number | 999 | 数字角标显示最大值 |
color | String | red | dot的主题色 |
url | String | '' | 如果提供了链接,当点击格子时自动跳转页面 |
🌹 事件
事件名 | 参数 | 返回数据 | 描述 |
---|---|---|---|
click |
💏 文档贡献
此页文档由Kyour贡献,如果对该框架感兴趣的可以参与我们一同进步!