DataV中的轮播表 -- 自定义样式

  • 最近大屏项目中,使用 DataV中的轮播表,样式需要做相关调整,总结一波!

基本轮播表

<dv-scroll-board :config="config" style="width:500px;height:220px" />

// config如下
export default {
  header: ['列1', '列2', '列3'],
  data: [
    ['行1列1', '行1列2', '行1列3'],
    ['行2列1', '行2列2', '行2列3'],
    ['行3列1', '行3列2', '行3列3'],
    ['行4列1', '行4列2', '行4列3'],
    ['行5列1', '行5列2', '行5列3'],
    ['行6列1', '行6列2', '行6列3'],
    ['行7列1', '行7列2', '行7列3'],
    ['行8列1', '行8列2', '行8列3'],
    ['行9列1', '行9列2', '行9列3'],
    ['行10列1', '行10列2', '行10列3']
  ],
  index: true,
  columnWidth: [50],
  align: ['center']
}

自定义样式

<template>
  <div class="scrollboard">
    <dv-scroll-board :config="config" />
  </div>
</template>

<script>
export default {
  props: {
    // 表头名称
    titles: {
      type: Array,
      default: () => [],
    },
    // 单位
    units: {
      type: Array,
      default: () => [],
    },
    // 具体数值
    list: {
      type: Array,
      default: () => [
        ['xx', '44108', '46694', '-0.5', '-5.64', '-23.89'],
        ['xx', '27089', '25173', '35.32', '7.61', '-22.73'],
        ['xxx', '27624', '28683', '15.90', '-3.69', '-23.87'],
        ['xx', '8091', '9830', '-5.20', '-17.69', '-30.44'],
        ['xx', '0', '0', 'NaN', '-', '-'],
        ['xx', '0', '0', 'NaN', '-', '-'],
      ],
    },

    defaultConfig: {
      type: Object,
      default: () => ({
        // index: true,
        columnWidth: [80, 80, 80],
        align: ['center', 'center', 'center', 'center', 'center'],
      }),
    },
  },
  computed: {
  // 应用---表头
    newHeader() {
      return this.titles.map(
        (item, index) =>
          '<span>' + item + '</span><span>' + this.units[index] + '</span>'
      )
    },

// 应用---表格内容
    newList() {
      let aa = this.list.reduce((acc, item) => {
        acc.push(item.slice(-3))
        return acc
      }, [])

      let bb = aa.map((item) => {
        let arr = []
        for (let val of item) {
          let str = ''
          if (Number(val) > 0) {
            str ='<span>' + val + '<i class="iconfont up icon-jiantou_xiangshang" style="color: rgb(39, 174, 78)"></i></span>'
          } else if (Number(val) < 0) {
            str ='<span>' + val +'<i class="iconfont icon-jiantou_xiangxia" style="color: rgb(242, 166, 1);"></i></span>'
          } else {
            str = val
          }
          arr.push(str)
        }
        return arr
      })

      let cc = this.list.map((item, index) => [
        ...item.slice(0, 3),
        ...bb[index],
      ])
      return cc
    },
    config() {
      return Object.assign(
        {},
        this.defaultConfig,
        { header: this.newHeader },
        { data: this.newList }
      )
    },
  },
}
</script>

<style lang="scss" scoped>
.scrollboard {
  height: 100%;
}
// 表头--整体设置
::v-deep .header {
  align-items: center;
}
// 表头元素设置
::v-deep .header-item {
  font-size: vw(10) !important;
  height: auto !important;
  padding: 0;
  line-height: vw(25) !important;
  display: flex;
  flex-direction: column;
  align-items: center;
}
// 表格内容--行元素设置
::v-deep .dv-scroll-board .rows .row-item {
  font-size: vw(10) !important;
  text-align: center !important;
}
</style>


  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在vue-awesome-swiper,要自定义分页器,可以使用pagination组件来进行自定义。以下是一个简单的示例: ```vue <template> <div> <swiper :options="swiperOptions"> <swiper-slide v-for="(slide, index) in slides" :key="index"> <!-- 内容 --> </swiper-slide> <!-- 自定义分页器 --> <div class="custom-pagination" slot="pagination"> <span v-for="(slide, index) in slides" :key="index" :class="{ active: index === activeIndex }" @click="goToSlide(index)" > {{ index + 1 }} </span> </div> </swiper> </div> </template> <script> import { swiper, swiperSlide } from "vue-awesome-swiper"; export default { components: { swiper, swiperSlide, }, data() { return { swiperOptions: { // 设置其他选项 }, slides: [ // 设置轮播项数据 ], activeIndex: 0, }; }, methods: { goToSlide(index) { this.activeIndex = index; }, }, }; </script> <style> .custom-pagination { /* 样式自定义 */ } .custom-pagination span { /* 样式自定义 */ } .custom-pagination span.active { /* 样式自定义 */ } </style> ``` 在这个示例,我们首先导入`vue-awesome-swiper`的`swiper`和`swiperSlide`组件,然后在模板使用`swiper`组件包裹轮播项,并设置`options`属性来配置其他选项。 接下来,在`swiper`组件内部,我们使用`slot`属性将自定义分页器的内容放在名为"pagination"的插槽。我们使用一个`v-for`循环来渲染分页器的每个页码,并在点击时调用`goToSlide`方法来切换轮播项。 最后,我们可以通过样式自定义分页器的外观,通过修改`.custom-pagination`和`.custom-pagination span`的样式来实现自定义效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值