<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      基于uniapp+vue3自定義增強版table表格組件「兼容H5+小程序+App端」

      vue3+uniapp多端自定義table組件|uniapp加強版綜合表格組件

      uv3-table:一款基于uniapp+vue3跨端自定義手機端增強版表格組件。支持固定表頭/列、邊框、斑馬紋、單選/多選,自定義表頭/表體插槽、左右固定列陰影高亮顯示。支持編譯兼容H5+小程序端+App端

      如下圖:H5+小程序+App端,多端運行一致。

      uv3-table表格插件是最新原創項目uniapp-os后臺管理系統的一個獨立版組件。

      由于在開發uni-os手機后臺系統需要用到table表格組件。無奈uniapp官方及插件市場table表格組件無論功能及UI上都不滿足要求,于是自己爆肝一個多日夜開發了一款全新uniapp+vue3綜合表格組件。

      目前該項目已經出階段性成果接近尾聲了,相信很快就能和大家見面,到時也會做一些技術分享,敬請期待!

      uv3-table使用示例

      將uv3-table組件放到uniapp項目components目錄下,無需在頁面再次引入,即可使用。

      • 基礎用法
      <uv3-table :columns="columns" :dataSource="data.list" />
      • 自定義條紋樣式
      <uv3-table
          :columns="columns"
          :dataSource="data.list"
          stripe
          stripeColor="#eee"
          padding="5px"
          height="450rpx"
      />
      • 綜合用法(固定表頭/列、自定義插槽內容)
      <script setup>
          import { ref } from 'vue'
          import Mock from 'mockjs'
      
          const columns = ref([
              {type: 'selection', align: 'center', width: 80, fixed: true}, // 多選
              {type: 'index', label: 'ID', align: 'center', width: 80, fixed: true}, // 索引序號
              {prop: 'author', label: '作者', align: 'center', width: 120},
              {prop: 'title', label: '標題', align: 'left', width: 350},
              {prop: 'image', label: '圖片', align: 'center', width: 120},
              {prop: 'switch', label: '推薦', align: 'center', width: 100},
              {prop: 'tags', label: '標簽', align: 'center', width: 100},
              {prop: 'rate', label: '評分', align: 'center', width: 200},
              {prop: 'date', label: '發布時間', align: 'left', width: 250}, // 時間
              {prop: 'action', label: '操作', align: 'center', width: 150, fixed: 'right'}, // 操作
          ])
          const data = ref(Mock.mock({
              total: 100,
              page: 1,
              pagesize: 10,
              'list|20': [
                  {
                      id: '@id()',
                      author: '@cname()',
                      title: '@ctitle(10, 20)',
                      image: `https://api.yimian.xyz/img?id=@integer(100, 300)`,
                      switch: '@boolean()',
                      'tags|1': ['admin', 'test', 'dev'],
                      rate: '@integer(1, 5)',
                      date: '@datetime()',
                      color: '@color()',
                  }
              ]
          }))
      </script>
      <uv3-table
          :dataSource="data.list"
          :columns="columns"
          :headerBold="true"
          headerBackground="#ecf5ff"
          stripe
          border
          padding="5px"
          maxHeight="650rpx"
          @rowClick="handleRowClick"
          @select="handleSelect"
      >
          <!-- 自定義header插槽內容 -->
          <template #headerCell="{ key, col, index }">
              <template v-if="key == 'title'">
                  <view class="flex-c">{{col.label}} <input placeholder="搜索" size="small" /></view>
              </template>
              <template v-else-if="key == 'date'">
                  <uni-icons type="calendar"></uni-icons> {{col.label}}
              </template>
              <template v-else>{{col.label}}</template>
          </template>
          
          <!-- 自定義body插槽內容(由于小程序不支持動態:name插槽,通過key標識來自定義表格內容) -->
          <template #default="{ key, value, row, col, index }">
              <template v-if="key == 'image'">
                  <uv-image :src="value" lazyLoad observeLazyLoad @click="previewImage(value)" />
              </template>
              <template v-else-if="key == 'switch'">
                  <switch :checked="value" style="transform:scale(0.6);" />
              </template>
              <template v-else-if="key == 'tags'">
                  <uv-tags :text="value" :color="row.color" :borderColor="row.color" plain size="mini" />
              </template>
              <template v-else-if="key == 'rate'">
                  <uni-rate :value="value" size="14" readonly />
              </template>
              <template v-else-if="key == 'action'">
                  <uni-icons type="compose" color="#00aa7f" @click="handleEdit(row)" />
                  <uni-icons type="trash" color="#ff007f" style="margin-left: 5px;" @click="handleDel(row)" />
              </template>
              <template v-else>{{value}}</template>
          </template>
      </uv3-table>

      rowClick點擊表格行,會返回該行數據。

      select單選/多選,會返回表格選中數據。

      uv3Table編碼實現

      • uv3-table表格參數配置
      const props = defineProps({
          // 表格數據
          dataSource: {
              type: Array,
              default() {
                  return []
              }
          },
          /**
           * @params {string} background 對應列背景色
           * @params {string} type 對應列類型(多選selection 索引index)
           * @params {string} label 顯示的列標題
           * @params {string} prop 對應的列字段名
           * @params {string} align 列水平對齊方式(left center right)
           * @params {number|string} width 對應列寬度
           * @params {boolean|string} fixed 該列固定到左側(fixed:true|'left')或右側(fixed:'right')
           * @params {string} columnStyle 對應列自定義樣式
           * @params {string} className/class 表格列的類名className
           */
          columns: {
              type: Array,
              default() {
                  return []
              }
          },
          // 表格寬度
          width: { type: [Number, String] },
          // 表格高度
          height: { type: [Number, String] },
          // 表格最大高度
          maxHeight: { type: [Number, String] },
          // 是否為斑馬紋
          stripe: { type: [Boolean, String] },
          // 斑馬紋背景
          stripeColor: { type: String, default: '#fafafa' },
          // 是否帶有邊框
          border: { type: [Boolean, String] },
          // 列寬度(推薦默認rpx)
          columnWidth: { type: [Number, String], default: 200 },
          // 單元格間距
          padding: { type: String, default: '5rpx 10rpx' },
          // 是否顯示表頭
          showHeader: { type: [Boolean, String], default: true },
          // 表頭背景色
          headerBackground: { type: String, default: '#ebeef5' },
          // 表頭顏色
          headerColor: { type: String, default: '#333' },
          // 表頭字體加粗
          headerBold: { type: [Boolean, String], default: true },
          // 表格背景色
          background: { type: String, default: '#fff' },
          // 表格顏色
          color: { type: String, default: '#606266' },
          // 空數據時顯示的文本內容,也可以通過 #empty 設置
          emptyText: { type: String, default: '暫無數據' }
      })
      • 模板結構如下
      <template>
          <view
              class="uv3__table"
              ...
          >
              <!-- 表頭 -->
              <view v-if="showHeader" class="uv3__table-thead" :style="{'background': headerBackground}">
                  <view
                      v-for="(col, cindex) in columns"
                      :key="cindex"
                      class="uv3__thead-th"
                      :class="[
                          {
                              'fixedLeft': col.fixed == true || col.fixed == 'left',
                              'fixedRight': col.fixed == 'right',
                              'fixedLeftShadow': cindex == fixedLeftIndex,
                              'fixedRightShadow': cindex == fixedRightIndex,
                          },
                          col.className || col.class
                      ]"
                      ...
                      @click="handleHeaderClick(col)"
                  >
                      ...
                  </view>
              </view>
              <!-- 表體 -->
              <view class="uv3__table-tbody">
                  ...
              </view>
          </view>
      </template>

      目前基于uv3-table表格組件開發的uni-os系統,已經發布到我的作品集,歡迎去下載使用。

      基于uniapp+vue3跨三端手機版os管理系統

      Props參數

      columns參數

      • background 對應列背景色
      • type 對應列類型(多選selection 索引index)
      • label 顯示的列標題
      • prop 對應的列字段名
      • align 列水平對齊方式(left center right)
      • width 對應列寬度
      • fixed 該列固定到左側(fixed:true|‘left’) 或 右側(fixed:‘right’)
      • columnStyle 對應列自定義樣式
      • className/class 表格列的類名className

      事件

      • @headerClick 點擊表頭
      • @rowClick 點擊行觸發
      • @select 多選/單選

      自定義插槽

      • headerCell 自定義表頭內容
      • default 默認表體內容
      • empty 無數據插槽

      Uniapp-DeepSeek跨三端AI助手|uniapp+vue3+deepseek-v3流式ai聊天模板

      Electron35-DeepSeek桌面端AI系統|vue3.5+electron+arco客戶端ai模板

      Tauri2.0+Vite5聊天室|vue3+tauri2+element-plus仿微信|tauri聊天應用

      Electron32-ViteOS桌面版os系統|vue3+electron+arco客戶端OS管理模板

      tauri2.0-admin桌面端后臺系統|Tauri2+Vite5+ElementPlus管理后臺EXE程序

      flutter3-winchat桌面端聊天實例|Flutter3+Dart3+Getx仿微信Exe程序

      希望以上分享對大家有些幫助,開發不易,一起fighting~~??

      http://www.rzrgm.cn/xiaoyan2017/p/18165578

      http://www.rzrgm.cn/xiaoyan2017/p/18048244

       

      posted @ 2024-05-18 10:48  xiaoyan2017  閱讀(2873)  評論(1)    收藏  舉報
      友情鏈接: UP主小店B站
      主站蜘蛛池模板: 国内精品久久人妻无码不卡| 起碰免费公开97在线视频| 丁香花成人电影| 亚洲乱码一区二区三区视色| 国产精品乱码久久久久久小说| www亚洲精品| 成人国产一区二区三区精品| 日本真人做爰免费视频120秒| 国产精品高清视亚洲乱码| 国产精品中文av专线| 90后极品粉嫩小泬20p| 精品人妻伦一二三区久久aaa片| 国产熟女精品一区二区三区| 99久久国产综合精品成人影院| 69人妻精品中文字幕| 日韩精品专区在线影院重磅| 蜜臀av久久国产午夜| 午夜福利啪啪片| 亚洲的天堂在线中文字幕| 成人看的污污超级黄网站免费| 免费国产一级 片内射老| 国产果冻豆传媒麻婆精东| 国产精品免费第一区二区| 日本中文字幕在线播放| 亚洲国产欧美在线人成| 亚洲大尺度无码专区尤物| 一色屋精品视频在线观看| 蜜桃无码一区二区三区| 日本熟妇XXXX潮喷视频| 息烽县| 国产一区二区三区亚洲精品| 99热精国产这里只有精品| 中文字幕人妻精品在线| 人成午夜大片免费视频77777| 欧美成人精品手机在线| 人人澡人摸人人添| 999国产精品一区二区| 中文字幕第一页国产| 国产日韩精品免费二三氏| 国产精品免费视频不卡| 在线 欧美 中文 亚洲 精品|