位置: IT常识 - 正文

vue大屏开发系列—列表无缝滚动之vue-seamless-scroll(vue大屏组件库)

编辑:rootadmin
vue大屏开发系列—列表无缝滚动之vue-seamless-scroll

目录

一 安装

二 使用

 三 简单使用

四  应用


推荐整理分享vue大屏开发系列—列表无缝滚动之vue-seamless-scroll(vue大屏组件库),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue开发数据大屏,vue 大屏可视化设计 开源,vue大屏项目,vue大屏适配,vue大屏可视化模板,vue大屏项目,vue大屏项目,vue大屏项目,内容如对您有帮助,希望把文章链接给更多的朋友!

vue-seamless-scroll是一个基于Vue.js的简单无缝滚动组件, 基于requestAnimationFrame实现,配置多满足多样需求。目前支持上下左右无缝滚动,单步滚动,以及支持水平方向的手动切换功能

官方文档:  vue-seamless-scroll的简介及使用教程 - Made with Vuejs

一 安装

npm安装 : 

npm install vue-seamless-scroll --save

yarn 安装:

yarn add vue-seamless-scroll 二 使用

全局注册:

import Vue from 'vue'import scroll from 'vue-seamless-scroll'Vue.use(scroll)

局部注册:

 注意这里分vue2和veu3注册

vue大屏开发系列—列表无缝滚动之vue-seamless-scroll(vue大屏组件库)

vue2:  

import vueSeamless from 'vue-seamless-scroll'

vue3;找不到路径所以加了 /src

import vueSeamless from 'vue-seamless-scroll/src'components: { vueSeamless }, 三 简单使用<div id="app"> <vue-seamless-scroll></vue-seamless-scroll> </div>

四  应用

本文是在“物美智能”源码的基础上进行二次开发完成wumei-smart: 物美智能开源物联网平台,简单易用,可用于搭建物联网平台以及二次开发和学习。适用于智能家居、智慧办公、智慧社区、农业监测、水利监测、工业控制等。

也可以直接在lofTV-Screen代码上直接修改IofTV-Screen: 🔥一个基于 vue、datav、Echart 框架的物联网可视化(大屏展示)模板,提供数据动态刷新渲染、屏幕适应、数据滚动配置,内部图表自由替换、Mixins注入等功能,持续更新....

效果如下,技术点主要使用了

<template> <div v-if="pageflag" class="right_center_wrap beautify-scroll-def" :class="{ 'overflow-y-auto': !sbtxSwiperFlag }"> <component :is="components" :data="list" :class-option="defaultOption"> <ul class="right_center "> <li class="right_center_item" v-for="(item, i) in list" :key="i"> <span class="orderNum">{{ i + 1 }}</span> <div class="inner_right"> <div class="dibu"></div> <div class="flex"> <div class="info"> <span class="labels ">设备ID:</span> <span class="contents zhuyao"> {{ item.serialNumber }}</span> </div> <div class="info time"> <span class="labels">时间:</span> <span class="contents" style="font-size:12px"> {{ item.createTime }}</span> </div> <div class="info"> <span class="labels1" >属性上报</span> </div> </div> <div class="flex"> <div class="info"> <span class="labels">设备名称:</span> <span class="contents "> {{ item.deviceName }}</span> </div> <div class="info"> <span class="labels">属性:</span> <span class="contents ciyao" style="font-size:12px"> {{ item.identity }}</span> </div> <div class="info"> <span class="labels">数值:</span> <span class="contents warning"> {{ item.logValue}}</span> </div> </div> </div> </li> </ul> </component> </div> <Reacquire v-else @onclick="getData" style="line-height:200px" /></template><script>import { currentGET } from '@/api/bigScreen/modules'import vueSeamlessScroll from 'vue-seamless-scroll' // vue2引入方式import Kong from '../components/kong.vue'import {listAllDeviceLog} from "@/api/iot/deviceLog";export default { components: { vueSeamlessScroll, Kong }, data() { return { list: [], pageflag: true, defaultOption: { ...this.$store.state.settings.defaultOption, limitMoveNum: 3, singleHeight: 250, step:0, }, queryParams: { pageNum: 1, pageSize: 20 }, }; }, computed: { sbtxSwiperFlag() { let ssyjSwiper = this.$store.state.settings.ssyjSwiper if (ssyjSwiper) { this.components = vueSeamlessScroll } else { this.components = Kong } return ssyjSwiper } }, created() { this.getData() }, mounted() { }, beforeDestroy() { this.clearData() }, methods: { clearData() { if (this.timer) { clearInterval(this.timer) this.timer = null } }, switper() { if (this.timer) { return } let looper = (a) => { this.getData() }; this.timer = setInterval(looper, this.$store.state.settings.leftBottomTime); }, getData() { this.pageflag = true listAllDeviceLog(this.queryParams).then(res => { if (!this.timer) { console.log("检测数据", res); } if (res.code == 200) { this.list = res.data; this.defaultOption.step=this.$store.state.settings.defaultOption.step this.switper(); } else { this.pageflag =false; this.$Message.warning(res.msg); } }) }, },};</script><style lang='scss' scoped>.right_center { width: 100%; height: 100%; .right_center_item { display: flex; align-items: center; justify-content: center; height: auto; padding: 10px; font-size: 14px; color: #fff; .orderNum { margin: 0 20px 0 -20px; } .inner_right { position: relative; height: 100%; width: 400px; flex-shrink: 0; line-height: 1.5; .dibu { position: absolute; height: 2px; width: 104%; background-image: url("../../../assets/bigScreen/img/zuo_xuxian.png"); bottom: -12px; left: -2%; background-size: cover; } } .info { margin-right: 10px; display: flex; align-items: center; .labels { flex-shrink: 0; font-size: 12px; color: rgba(255, 255, 255, 0.6); } .labels1 { flex-shrink: 0; font-size: 12px; // color: rgba(255, 255, 255, 0.6); color:#E6A23C; } .zhuyao { // color: $primary-color; font-size: 15px; } .ciyao { color: rgba(255, 255, 255, 0.8); } .warning { color: #E6A23C; font-size: 15px; } } }}.right_center_wrap { overflow: hidden; width: 100%; height: 250px;}.overflow-y-auto { overflow-y: auto;}.typeRed { color: #fc1a1a;}</style>

后端代码增加如下

/** * 查询所有设备日志列表,用于大屏显示 */ @GetMapping("/listAllDevice") public AjaxResult listAllDevice() { startPage(); List<DeviceLog> list = deviceLogService.selectAllDeviceLogList(); return AjaxResult.success(list); }

间隔时间:

this.$store.state.settings.leftBottomTime

import defaultSettings from '@/settings'const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle } = defaultSettingsconst storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''const state = { title: '', theme: storageSetting.theme || '#409EFF', sideTheme: storageSetting.sideTheme || sideTheme, showSettings: showSettings, topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav, tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView, fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader, sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo, dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle, sbtxSwiper: true,//设备提醒轮播 ssyjSwiper:true,//实时预警轮播 isScale:true,//是否进行全局适配 defaultOption: { step: 4.4, // 数值越大速度滚动越快 hoverStop: true, // 是否开启鼠标悬停stop openWatch: true, // 开启数据实时监控刷新dom direction: 1, // 0向下 1向上 2向左 3向右 limitMoveNum: 4, // 开始无缝滚动的数据量 this.dataList.length singleHeight: 0, // 单步运动停止的高度(默认值0是无缝不停止的滚动) direction => 0/1 singleWidth: 0, // 单步运动停止的宽度(默认值0是无缝不停止的滚动) direction => 2/3 waitTime: 3000 // 单步运动停止的时间(默认值1000ms) }, echartsAutoTime:3000,//echarts 图自动请求接口时间 leftBottomTime:3000,//echarts 图自动请求接口时间}const mutations = { CHANGE_SETTING: (state, { key, value }) => { if (state.hasOwnProperty(key)) { state[key] = value } }}const actions = { // 修改布局设置 changeSetting({ commit }, data) { commit('CHANGE_SETTING', data) }, // 设置网页标题 setTitle({ commit }, title) { state.title = title }}export default { namespaced: true, state, mutations, actions}
本文链接地址:https://www.jiuchutong.com/zhishi/277387.html 转载请保留说明!

上一篇:Win11正式版发现新问题:不兼容注册表中带有非 ASCII 字符的应用程序(window10发现威胁怎么办)

下一篇:如何在线网络测速呢?(如何网络测试)

  • 电子版身份证怎么弄(电子身证怎样下载)

    电子版身份证怎么弄(电子身证怎样下载)

  • 优酷字幕不见了(优酷字幕不见了怎么找回)

    优酷字幕不见了(优酷字幕不见了怎么找回)

  • iphone11nfc功能怎么设置门禁卡(iphone11nfc功能怎么设置公交卡)

    iphone11nfc功能怎么设置门禁卡(iphone11nfc功能怎么设置公交卡)

  • 钉钉老师发起的签到不显示(钉钉老师发起的会议不显示)

    钉钉老师发起的签到不显示(钉钉老师发起的会议不显示)

  • 淘宝复制链接在哪里找(淘宝链接复制后怎么打开)

    淘宝复制链接在哪里找(淘宝链接复制后怎么打开)

  • 启动hadoop的命令行(hadoop启动成功界面)

    启动hadoop的命令行(hadoop启动成功界面)

  • 毒app可以微信支付吗(毒能不能微信支付)

    毒app可以微信支付吗(毒能不能微信支付)

  • cad输入坐标找不到点怎么办(cad输入坐标怎么无法正常定位)

    cad输入坐标找不到点怎么办(cad输入坐标怎么无法正常定位)

  • qq扩列匹配太频繁了怎么解除(qq扩列匹配失败好几天)

    qq扩列匹配太频繁了怎么解除(qq扩列匹配失败好几天)

  • nove5z和nove5i pro有什么区别(华为nova5z和nova5i pro手机壳通用吗)

    nove5z和nove5i pro有什么区别(华为nova5z和nova5i pro手机壳通用吗)

  • 手机关联启动什么意思(手机关联启动怎么设置在哪)

    手机关联启动什么意思(手机关联启动怎么设置在哪)

  • 网线连接好了但是电脑上不了网怎么好回事(网线连接好了但是没网)

    网线连接好了但是电脑上不了网怎么好回事(网线连接好了但是没网)

  • 小米手环支付宝能离开手机吗(小米手环支付宝出行码)

    小米手环支付宝能离开手机吗(小米手环支付宝出行码)

  • 笔记本立体声混音有什么用(笔记本立体声混音为什么被禁)

    笔记本立体声混音有什么用(笔记本立体声混音为什么被禁)

  • 华为slaal00是什么机型(华为slaaloo是什么型号手机)

    华为slaal00是什么机型(华为slaaloo是什么型号手机)

  • 手机没有通话记录怎么回事(手机没有通话记录怎么恢复正常)

    手机没有通话记录怎么回事(手机没有通话记录怎么恢复正常)

  • 移动光猫注册灯闪烁(移动光猫注册灯闪烁什么原因)

    移动光猫注册灯闪烁(移动光猫注册灯闪烁什么原因)

  • ie浏览器怎么改兼容模式(IE浏览器怎么改模式)

    ie浏览器怎么改兼容模式(IE浏览器怎么改模式)

  • 哔哩哔哩电视版为什么有些内容看不了(哔哩哔哩电视版app叫什么)

    哔哩哔哩电视版为什么有些内容看不了(哔哩哔哩电视版app叫什么)

  • vsco取消自动续费(vsco怎么关闭付费)

    vsco取消自动续费(vsco怎么关闭付费)

  • iphone如何补电(怎么给iphone补电)

    iphone如何补电(怎么给iphone补电)

  • 红魔3防水吗(红魔3用什么手机膜)

    红魔3防水吗(红魔3用什么手机膜)

  • 苹果app是用什么开发的(苹果app是用什么代码写的)

    苹果app是用什么开发的(苹果app是用什么代码写的)

  • ppwebcap.exe是什么进程  ppwebcap进程查询(wedp是什么文件)

    ppwebcap.exe是什么进程 ppwebcap进程查询(wedp是什么文件)

  • 未达起征点增值税申报表怎么填
  • 免税收入是什么票据类型
  • 支付的各项税费现金流量表怎么填
  • 先开票后收款违法吗
  • 进口货物退货如何退税
  • 现金流量表中的销售商品提供劳务收到的现金
  • 法定盈余公积可以分配给股东吗
  • 增值税16点税降到13点,补缴税款怎么算
  • 企业劳务外包员工有五险一金吗
  • 企业会计准则和新会计准则的区别
  • 暂估工资成本
  • 委托加工的材料计入什么科目
  • 出差出了事故怎么处理
  • 经营期间银行存在的问题
  • 如何才能成为一个好老师
  • 限售股所得税的优惠政策
  • 2018年一般纳税人转小规模
  • 印花税注册资本缴税时间
  • 无票收入如何做会计凭证
  • 契税如果没有按时交会怎么办
  • 印花税税基含不含增值税
  • 个体户需不需要银行开户
  • 个人社保缴费允许多少年
  • 产值和营业收入哪个数值大
  • 车辆保养计入什么二级科目
  • win10怎么清空
  • 汇算清缴期业务包括哪些
  • 电信网络网速变快设置
  • php的强大功能函数库中都含有哪些常用函数?
  • 如何更改自己
  • 医保养老保险怎么查
  • win7bios网络启动
  • php数组函数大全
  • 如何更改windows11管理员账户名称
  • 营改增会计分录
  • 已计提的存货跌价准备计入成本吗
  • PHP:proc_terminate()的用法_命令行函数
  • 原材料的盘盈与盘亏的会计处理
  • 万字短文
  • 新手会计怎么做帐
  • 免交的增值税要交所得税吗
  • 详解16型人格
  • 零税率和免税的含义和区别
  • 织梦参数配置设置
  • 所有者权益类的借贷方向是什么
  • 简易计税办法计算的应纳税额可以抵扣吗
  • 城镇土地使用税优惠政策
  • 行政事业单位福利费列支范围及标准2023
  • 公司基本户可以注销吗
  • 冲红的发票怎么做账会计分录
  • 坏账的计算公式
  • 工程物资进项税额转出
  • 小微企业如何升级一般纳税人
  • mysql备份数据
  • 免税收入就是不征收收入,均属于税收优惠范畴
  • 工程安装公司注册条件
  • 预付账款在何时可以转出
  • 预付账款借方如何结转
  • 商贸公司库存表怎么做
  • winxp开机提示explorer.exe
  • win2003设置网络共享
  • 如何用u盘装系统 知乎
  • lumia1020手机
  • windows ftp软件
  • spoolsrv.exe - spoolsrv是什么进程 有什么作用
  • 电脑审核策略更改是什么意思
  • windows xp的控制面板
  • 登录ip怎么查位置
  • Windows下的C语言编译器
  • CCMoveBy与CCMoveTo
  • Extjs4 GridPanel 的几种样式使用介绍
  • js瀑布流效果代码
  • 结合mint-ui移动端下拉加载实践方法总结
  • js实现时间
  • 使用vue-cli快速搭建vue项目
  • jquery删除dom
  • 举例说明json数据格式的语法
  • 安卓手机安装推特
  • 如何填写财产申报表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设