uniapp栅格布局

利用uniapp自带的组件可以进行快速的造页面,比手搓样式快很多,而且不用写什么样式。

循环卡片

 

 <view>

        //<uni-card>
      <uni-list v-for="(item, index) in alarmList" :key="item.id">
          <view style="border: 1px solid #fcfcfc; margin-bottom: 10px; ">
              <view style="padding: 5px; margin-left: 5px;">
                  <uni-row>
                    <uni-col :span="24">
                      <text style="font-size: 12px;">{ { item.sceneName || '---'}}>{ { item.deviceName || '---'}}</text>
                    </uni-col>
                  </uni-row>
              </view>
         
         <view style="padding: 5px; margin-left: 5px;">
          <uni-row>
            <uni-col :span="14">
              <text style="font-size:12px;">传感器MAC: { { item.mac || '---'}}</text>
            </uni-col>
            <uni-col :span="10">
              <text style="font-size: 12px;">报警类型: </text><text style="font-size: 12px; color: #de0000;"> { { item.typeLabel || '---'}}</text>
            </uni-col>
          </uni-row>
          </view>
          
          <view style="padding: 5px; margin-left: 5px;">
          <uni-row>
            <uni-col :span="14">
              <text style="font-size: 12px;">传感器类型: { { item.deviceCategoryLabel || '---'}}</text>
            </uni-col>
            <uni-col :span="10">
              <text style="font-size: 12px;">传感器型号: { { item.deviceModel || '---'}}</text>
            </uni-col>
          </uni-row>
          </view>
          
          <view style="padding: 5px; margin-left: 5px;">
          <uni-row>
            <uni-col :span="24">
              <text style="font-size: 12px;">报警时间: { { formatDate(item.createTime) || '---'}}</text>
            </uni-col>
          </uni-row>
          </view>
          
          <view style="padding: 5px; margin-left: 5px;">
          <uni-row>
            <uni-col :span="24">
              <text style="font-size: 12px;">处理时间: { { formatDate(item.processTime) || '---'}}</text>
            </uni-col>
          </uni-row>
          </view>
          
          <uni-row >
            <uni-col :span="24">
              <button
                :class="{
                  'unprocessed-button': item.status === 0,
                  'processed-button': item.status !== 0
                }"
                style="width: 100%; height: 30px; line-height: 30px; border: none; padding: 0; box-sizing: border-box;"
                @click="goConfirm(item)"
              >
                { { item.status === 0 ? '未处理' : '已处理' }}
              </button>
            </uni-col>
          </uni-row>
          
          </view>
      </uni-list>
     //</uni-card>
    </view>

可以加上uni-card这样直接布局,不用调边距,但是由于特殊页面需要,没有使用

下面来一个对比的手搓页面,体会组件的方便

 

循环卡片

 <!-- 温湿度设备卡片 -->
    <view class="card-container">
      <view class="card" v-for="(item, index) in deviceList.list" :key="index" :class="{
        'gray-background': item.status === 0,
        'blue-background': item.status === 1,
        'gray-background': item.status === 2,
        'gray-background': item.status === 3,
        'red-background': item.alarmTime != null,
    
      }">
        <view class="info-status" @click="goChartIndex(item)">
          <div class="info">
            <div class="info-header">
              <text class="info-title">温湿度传感器</text>
              <div class="status-text">
                <p v-show="item.status === 0">未激活</p>
                <p v-show="item.status === 1">在线</p>
                <p v-show="item.status === 2">离线</p>
                <p v-show="item.status === 3">禁用</p>
              </div>
            </div>
              <div class="info-details">
                <div class="info-right">
                  <b>{ { item.mac || '---' }}</b>
                  <div class="battery-level">
                    <image class="small-icon" src="/static/images/device/quantity.png"></image>
                    <text>{ { item.status === 2 ? '---' : (item.batteryLevel != null ? item.batteryLevel + '%' : '---') }}</text>
                  </div>
                </div>
                <div class="info-line">
                  { { item.sceneName || '---' }}>{ { item.name || '---' }}>{ { item.deviceModel || '---' }}
                </div>
                <div class="info-line">
                  网关:{ { item.gatewayMac || '---' }}>{ { item.rssi !=

  • 35
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
UniApp是一个基于Vue.js的跨平台开发框架,可以用于开发iOS、Android、H5等多个平台的应用。在UniApp中,主页布局可以通过使用Vue组件和样式来实现。 一种常见的UniApp主页布局方式是使用底部导航栏,可以在页面底部放置多个导航按钮,每个按钮对应一个页面。用户点击不同的按钮时,UniApp会自动切换到对应的页面。 以下是一个简单的UniApp主页布局示例: 1. 创建一个底部导航栏组件(BottomTabBar.vue): ```html <template> <view class="tab-bar"> <view class="tab-item" @click="switchTab(0)"> <text>首页</text> </view> <view class="tab-item" @click="switchTab(1)"> <text>消息</text> </view> <view class="tab-item" @click="switchTab(2)"> <text>我的</text> </view> </view> </template> <script> export default { methods: { switchTab(index) { uni.switchTab({ url: this.tabList[index].pagePath }); } } } </script> <style> .tab-bar { display: flex; justify-content: space-around; align-items: center; height: 50px; background-color: #f5f5f5; } .tab-item { flex: 1; display: flex; justify-content: center; align-items: center; } </style> ``` 2. 在App.vue中引入底部导航栏组件,并配置页面路由: ```html <template> <view> <router-view></router-view> <bottom-tab-bar></bottom-tab-bar> </view> </template> <script> import BottomTabBar from '@/components/BottomTabBar.vue'; export default { components: { BottomTabBar } } </script> <style> /* 全局样式 */ </style> ``` 3. 在pages文件夹下创建三个页面组件(Home.vue、Message.vue、Mine.vue),并配置页面路由: ```html <template> <view> <!-- 页面内容 --> </view> </template> <script> export default { // 页面逻辑 } </script> <style> /* 页面样式 */ </style> ``` 通过以上步骤,你可以实现一个简单的UniApp主页布局。当用户点击底部导航栏的按钮时,UniApp会自动切换到对应的页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java菜鸟、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值