4000-520-616
欢迎来到免疫在线!(蚂蚁淘生物旗下平台)  请登录 |  免费注册 |  询价篮
主营:原厂直采,平行进口,授权代理(蚂蚁淘为您服务)
咨询热线电话
4000-520-616
当前位置: 首页 > 新闻动态 >
热卖商品
新闻详情
vue+element-ui中实现多层级复杂的维度根据数据自动生..._CSDN博客
来自 : CSDN技术社区 发布时间:2021-03-25

表头主要复杂在
1 有三层 一层是大类 第二层是具体项 第三层是标准值/对比值
2 首列和末尾列是一层
3 整个表格的维度是根据数据的输入自己生成 也就是动态的

\"\"

下面是在 vue eleUI 中的解决方案

el-table :data tableData border style width: 100% max-height 700 v-loading areaLoading element-loading-text 拼命加载中
    el-table-column fixed label IP prop ip width 180 /el-table-column
    el-table-column v-for (item, index) in itemList :key index :label item.label
        el-table-column :label standard_name v-for (standard,standard_name) in item.standard width 150
            el-table-column :label standard min-width 150
                template scope scope
                    span {{scope.row.list[item.label][standard_name][ value ]}} /span
                /template
            /el-table-column
        /el-table-column
    /el-table-column
    el-table-column fixed right label 验收结果 width 100
        template scope scope
              span :class { unqualified-color : !scope.row.result} {{scope.row.result ? 合格 : 不合格 }} /span
        /template
    /el-table-column

/el-table


其对应data:
//整理出所有的label和标准对象的属性
itemList: [],
//实际数据

tableData []

《方法二》

vue element html配置:

div id table {{tableData}} el-table : data tabledata01 : span-method tableSpanMethod max-height 420 el-table-column v-for item in tableConfig : label item.label : prop item.prop : width item.width : key item.id el-table-column v-if item.children||item.children.length 0 v-for item1 in item.children : label item1.label : prop item1.prop : width item1.width : key item1.id el-table-column v-if item1.children||item1.children.length 0 v-for item2 in item1.children : label item2.label : prop item2.prop : width item2.width : key item2.id / el-table-column / el-table-column / el-table-column / el-table / div
data: tableConfig:[ {id: 100,label: 一级表头 ,prop: ,width: ,children:[ {id: 110,label: 二级表头1 ,prop: districtName ,width: }, {id: 120,label: 二级表头2 ,prop: timeDimension ,width: } ]}, {id: 200,label: 一级表头 ,prop: ,width: ,children:[ {id: 210,label: 二级表头 ,prop: ,width: ,children:[ {id: 211,label: 三级表头 ,prop: residentPopNum ,width: 110 }, {id: 212,label: 三级表头 ,prop: residentPopDst ,width: 110 } ]} ]}, {id: 300,label: 一级表头 ,prop: ,width: ,children:[ {id: 310,label: 二级表头 ,prop: ,width: ,children:[ {id: 311,label: 三级表头 ,prop: liveLandArea ,width: 110 }, {id: 312,label: 三级表头 ,prop: liveLandDst ,width: 110 } ], }, {id: 320,label: 二级表头 ,prop: ,width: ,children:[ {id: 321,label: 三级表头(km²) ,prop: employmentLandArea ,width: 110 }, {id: 322,label: 三级表头 ,prop: employmentLandDst ,width: 110 } ], } ]}, {id: 400,label: 一级表头 ,prop: ,width: ,children:[ {id: 410,label: 二级表头 ,prop: ,width: ,children:[ {id: 411,label: 三级表头(个) ,prop: regionTrafficHubNum ,width: 110 }, {id: 412,label: 三级表头(人次/km²) ,prop: regionTrafficHubFlow ,width: 140 } ], }, {id: 420,label: 二级表头 ,prop: ,width: ,children:[ {id: 421,label: 三级表头(个) ,prop: highSpeedNum ,width: 110 }, {id: 422,label: 三级表头(个/km²) ,prop: highSpeedDst ,width: 140 } ], },{id: 430,label: 二级表头 ,prop: ,width: ,children:[ {id: 431,label: 三级表头(个) ,prop: trackTrafficSpotNum ,width: 140 }, {id: 432,label: 三级表头(个/km²) ,prop: trackTrafficSpotDst ,width: 140 } ], }, {id: 440,label: 二级表头 ,prop: ,width: ,children:[ {id: 441,label: 三级表头(km) ,prop: trackTrafficNetNum ,width: 110 }, {id: 442,label: 三级表头(km/km²) ,prop: trackTrafficNetDst ,width: 140 } ], }, {id: 450,label: 二级表头 ,prop: ,width: ,children:[ {id: 451,label: 三级表头(个) ,prop: cityTrafficHubNum ,width: 110 }, {id: 452,label: 三级表头(个/km²) ,prop: cityTrafficHubDst ,width: 110 }, {id: 453,label: 三级表头(人次/km²) ,prop: cityTrafficHubFlow ,width: 140 } ], }, {id: 460,label: 二级表头 ,prop: ,width: ,children:[ {id: 461,label: 三级表头(km) ,prop: cityTrafficNetNum ,width: 110 }, {id: 462,label: 三级表头 ,prop: cityTrafficNetDst ,width: 140 } ], }, ]}, {id: 500,label: 一级表头 ,prop: ,width: ,children:[ {id: 510,label: 二级表头 ,prop: ,width: ,children:[ {id: 511,label: 三级表头(km²) ,prop: pubServeLandArea ,width: 110 }, {id: 512,label: 三级表头 ,prop: pubServeLandDst ,width: 110 } ], }, {id: 520,label: 二级表头 ,prop: ,width: ,children:[ {id: 521,label: 三级表头(个) ,prop: hospitalResourcesNum ,width: 110 }, {id: 522,label: 三级表头(km²) ,prop: hospitalResourcesArea ,width: 110 }, {id: 523,label: 三级表头(个/km²) ,prop: hospitalResourcesDst ,width: 110 } ], },{id: 530,label: 二级表头 ,prop: ,width: ,children:[ {id: 531,label: 三级表头(个) ,prop: schoolResourcesNum ,width: 110 }, {id: 532,label: 三级表头(km²) ,prop: schoolResourcesArea ,width: 110 }, {id: 533,label: 三级表头(个/km²) ,prop: schoolResourcesDst ,width: 110 } ], }, {id: 540,label: 二级表头 ,prop: ,width: ,children:[ {id: 541,label: 三级表头(个) ,prop: humanResourcesNum ,width: 110 }, {id: 542,label: 三级表头(个/km²) ,prop: humanResourcesDst ,width: 110 } ], }, {id: 550,label: 二级表头 ,prop: ,width: ,children:[ {id: 551,label: 三级表头(个) ,prop: businessResourcesNum ,width: 110 }, {id: 552,label: 三级表头(个/km²) ,prop: businessResourcesDst ,width: 110 } ], }, {id: 560,label: 二级表头 ,prop: ,width: ,children:[ {id: 561,label: 三级表头(个) ,prop: environResourcesNum ,width: 110 }, {id: 562,label: 三级表头(个/km²) ,prop: environResourcesDst ,width: 110 } ], }, ]}, {id: 600,label: 一级表头 ,prop: ,width: ,children:[ {id: 610,label: 二级表头 ,prop: ,width: ,children:[ {id: 611,label: 三级表头(分) ,prop: populationScore ,width: 110 }, ], }, {id: 620,label: 二级表头 ,prop: ,width: ,children:[ {id: 621,label: 三级表头(分) ,prop: landScore ,width: 110 }, ], },{id: 630,label: 二级表头 ,prop: ,width: ,children:[ {id: 631,label: 三级表头(分) ,prop: trafficScore ,width: 110 }, ], }, {id: 640,label: 二级表头 ,prop: ,width: ,children:[ {id: 641,label: 三级表头(分) ,prop: communalFacilitiesScore ,width: 110 }, ], }, {id: 650,label: 二级表头 ,prop: ,width: ,children:[ {id: 651,label: 三级表头(分) ,prop: modelScore ,width: 110 }, ], } ]}, ], 注:动态生成表头必须配置 key view:

\"\"

《elementUI使用指南》开发环境1.安装webpack
npm install -g webpack
12.安装vue-cli

vue-cli是什么

vue-cli 是vue.js的脚手架 用于自动生成vue.js模板工程的。

使用步骤

安装vue-cli

npm install -g vue-cli
1

使用vue-cli构建项目

vue init webpack project-name //创建一个基于webpack模板的名为project-name的项目
1

目前可用的模板包括

browserify–全功能的Browserify vueify 包括热加载 静态检测 单元测试。browserify-simple–一个简易的Browserify vueify 以便于快速开始。webpack–全功能的Webpack vueify 包括热加载 静态检测 单元测试。webpack-simple–一个简易的Webpack vueify 以便于快速开始。

安装项目依赖

cd project-name //进入项目目录npm install //安装项目依赖npm run dev //运行项目

此时在浏览器打开 localhost:8080即可看到欢迎页。

关于webpack和vue-cli的更多使用方法参见官方文档。

但是这个只能在本地跑 要如何在我们自己的服务器上访问呢 此时需要执行

npm run build
搭建开发环境

本来想用vue-cli重新创建项目 试了几次总是出现各种问题 没办法成功。最后在仔细查看 Element-UI 的官方文档的 快速上手 部分的时候发现 饿了么 团队给了一个他们自己的 项目模板 。于是我就用这个模板来尝试了下 结果成功了。所以 如果你不想太折腾的话 建议还是使用官方给的项目模板 可以省很多事。

第一步 安装项目模板

克隆/下载项目模板

将下载的模板放到你项目的根目录下

安装依赖

npm install
1

运行项目模板

npm run dev
1

此时在浏览器打开 localhost:8080即可看到欢迎页。

\"欢迎页\"

项目模板里已经把需要配置的文件都配置好了。

第二步 安装element-ui

第一步 我们成功安装了项目模板 接下来 我们需要安装element-ui到项目下。

npm i element-ui next -D

接下来我们就可以参照 Element-UI 的官方文档上手开发了。

我们参照官方的按钮组件使用说明 在项目模板的基础上做一个按钮的例子。其它文件不需要改动 只修改App.vue文件的内容。代码如下

App.vue

 template  div id app  img src ./assets/logo.png  h1 {{ msg }} /h1  el-button click.native startHacking Let s do it /el-button  div class block  span class demonstration 显示默认颜色 /span  span class wrapper  el-button type success 成功按钮 /el-button  el-button type warning 警告按钮 /el-button  el-button type danger 危险按钮 /el-button  el-button type info 信息按钮 /el-button  /span  /div  br/  div class block  span class demonstration hover 显示颜色 /span  span class wrapper  el-button :plain true type success 成功按钮 /el-button  el-button :plain true type warning 警告按钮 /el-button  el-button :plain true type danger 危险按钮 /el-button  el-button :plain true type info 信息按钮 /el-button  /span  /div  /div  /template  script export default { data () { return { msg: Use Vue 2.0 Today!  methods: { startHacking () { this.$notify({ title: It Works , message: We have laid the groundwork for you. Now it\\ s your time to build something epic! , duration: 6000 /script  style body { font-family: Helvetica, sans-serif; /style 
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152

效果如下图所示

\"demo\"

使用过程中碰到的问题 1. phantomjs安装失败

由于源的问题 安装phantomjs必须要“搭梯子” 使用内网无法下载。所以解决的方法有两种

方法一 通过科学上网 然后安装。

方法二 对于不知道怎么“搭梯子”的同学 可以通过更改源来下载 操作方法如下

npm install phantomjs --phantomjs_cdnurl http://cnpmjs.org/downloads
2.打开页面乱码

通过 Element-UI 官方提供的项目模板开发 会发现在浏览器打开页面的时候 中文是乱码的。如下图所示

\"中文乱码\"

但html页面中已经设置了 meta chartset utf-8  。

仔细查看该页面所涉及的文件的编码格式的时候 发现引用的App.vue 文件的编码格式是GBK  所以把该文件编码格式改为UTF-8 即可。


“ 使用VUE开发多级多选树形菜单组件 ”

\"多级多选菜单组件\" 
要开发一个这样的多级多选菜单组件 功能是

点击父标题栏可以打开与折叠子列表点击父标题栏的勾选图标可以全选或取消子列表点击子列表的勾选图标达到全选时 父标题栏的勾选图标自动勾选 反之 没达到全选时 父标题栏的勾选图标自动取消勾选当所有父标题栏的勾选图标达到全选时 最底下那个全选框自动勾选 反之 没达到全选时 最底下那个全选框自动取消勾选

点击最底下那个全选框可以全选或取消全部的勾选图标

所以总结起来我们重点要利用子列表勾选了哪些项来计算出父标题与底下的全选框是自动勾选还是自动取消 并且父标题与底下的全选框在选择变化时子列表应有什么变化。要做到以上 实现过程是

构建我们model层数据

datas : [ //用于判断是否展示子列表 isShowListItem : false, //用于记录选中了哪些子项 selected : [], //父标题 listTitle : 保利南悦湾 , //子列表 listItem : [ id : 1, name : 李小龙  id : 2, name : 周星驰  id : 3, name : 周杰伦  isShowListItem : false, selected : [], listTitle : 南庄万科城 , listItem : [ id : 4, name : 大魔王  id : 5, name : 老妖怪 ]
12345678910111213141516171819202122232425262728293031323334353637383940

记录子列表勾选了哪些项

子列表通过v-model ”data.selected”去双向绑定到selected数组中 当子列表项的checked发生变化时 就会把当前项的id记录到selected数组里去

 input type checkbox :value item.id v-model data.selected  
12345

当父标题勾选变化时的处理方法 
自动处理父标题勾选图标的变化

在HTML里 通过绑定:checked ”isTitleChecked(data)” 这时 每当其他项变化时 父标题都会调用一下isTitleChecked这个方法去判断一下这时自己的checked状态是true还是false 从而达到根据子项选中数目不同 父标题自动变化的目的。 
通过 change ”changeTitleChecked(data,$event)” 每当父标题主动勾选或取消时触发 
父标题HTML

 input :id data.listTitle  class list-input  type checkbox  :checked isTitleChecked(data)  change changeTitleChecked(data,$event)  
123456

父标题JS

changeTitleChecked方法 当主动触发父标题的勾选图标时 如果这次触发chaeked的状态是true 则要把子列表项中没选中的全部选中 即将它们全部加进selected数组中 如果是false 则要把子列表项全部取消选中 即清空selected数组。isTitleChecked方法 当子列表项全部选中时自动勾选父标题。
/*** 当父标题状态变化时的处理方法* param data [当前项的data]* param event [当前项的event]changeTitleChecked : function (data,event) { if (event.target.checked true) { data.listItem.forEach(function (item) { data.selected.indexOf(item.id) -1 data.selected.push(item.id); }else { data.selected [];}
1234567891011121314
/*** 判断父标题选择状态* param data [当前项的data]* returns {boolean}isTitleChecked : function (data) { var _selected data.selected; var _listItem data.listItem; // 验证selected中是否含有全部的item的id 如果是 证明title要选中 return _listItem.every(function (item) { return _selected.indexOf(item.id) ! -1;}
12345678910111213

当底下的全选框变化时的处理方法 
自动处理底下的全选框的变化

全选框HTML

 input id all-checked  type checkbox  :checked isAllChecked()  change changeAllChecked($event)  
12345

全选框JS

changeAllChecked方法 当主动触发全选框时 如果checked为true 则将全部的子项都放进selected数组里 反之则清空全部selected数组。isAllChecked 方法 判断selected数组的长度是否等于全部子项数 如果相等 则全选框checked状态设为true。
/*** 全选框change事件的回调处理方法* param event changeAllChecked : function (event) { if (event.target.checked true) { this.datas.forEach(function (data) { data.listItem.forEach(function (item) { data.selected.indexOf(item.id) -1 data.selected.push(item.id);}else { this.datas.forEach(function (data) { data.selected [];}
1234567891011121314151617
/*** 判断全选框选择状态* returns {boolean}isAllChecked : function () { return this.datas.every(function (data) { return data.selected.length data.listItem.length;}


vue组件库的总结


element - 饿了么出品的Vue2的web UI工具套件
Vux - 基于Vue和WeUI的组件库
mint-ui - Vue 2的移动UI元素
iview - 基于 Vuejs 的开源 UI 组件库
Keen-UI - 轻量级的基本UI组件合集
vue-material - 通过Vue Material和Vue 2建立精美的app应用
muse-ui - 三端样式一致的响应式 UI 库
vuetify - 为移动而生的Vue JS 2组件框架
vonic - 快速构建移动端单页应用
eme - 优雅的Markdown编辑器
vue-multiselect - Vue.js选择框解决方案
vue-table - 简化数据表格
VueCircleMenu - 漂亮的vue圆环菜单
vue-chat - vuejs和vuex及webpack的聊天示例
radon-ui - 快速开发产品的Vue组件库
vue-waterfall - Vue.js的瀑布布局组件
vue-carbon - 基于 vue 开发MD风格的移动端
vue-beauty - 由vue和ant design创建的优美UI组件
vue-blu - 帮助你轻松创建web应用
vueAdmin - 基于vuejs2和element的简单的管理员模板
vue-syntax-highlight - Sublime Text语法高亮
vue-infinite-scroll - VueJS的无限滚动指令
Vue.Draggable - 实现拖放和视图模型数组同步
vue-awesome-swiper - vue.js触摸滑动组件
vue-calendar - 日期选择插件
bootstrap-vue - 应用于Vuejs2的Twitter的Bootstrap 4组件
vue-swipe - VueJS触摸滑块
vue-amap - 基于Vue 2和高德地图的地图组件
vue-chartjs - vue中的Chartjs的封装
vue-datepicker - 日历和日期选择组件
markcook - 好看的markdown编辑器
vue-google-maps - 带有双向数据绑定Google地图组件
vue-progressbar - vue轻量级进度条
vue-picture-input - 移动友好的图片文件输入组件
vue-infinite-loading - VueJS的无限滚动插件
vue-upload-component - Vuejs文件上传组件
vue-datetime-picker - 日期时间选择控件
vue-scroller - Vonic UI的功能性组件
vue2-calendar - 支持lunar和日期事件的日期选择器
vue-video-player - VueJS视频及直播播放器
vue-fullcalendar - 基于vue.js的全日历组件
rubik - 基于Vuejs2的开源 UI 组件库
VueStar - 带星星动画的vue点赞按钮
vue-mugen-scroll - 无限滚动组件
mint-loadmore - VueJS的双向下拉刷新组件
vue-tables-2 - 显示数据的bootstrap样式网格
vue-virtual-scroller - 带任意数目数据的顺畅的滚动
DataVisualization - 数据可视化
vue-quill-editor - 基于Quill适用于Vue2的富文本编辑器
Vueditor - 所见即所得的编辑器
vue-html5-editor - html5所见即所得编辑器
vue-msgbox - vuejs的消息框
vue-slider - vue 滑动组件
vue-core-image-upload - 轻量级的vue上传插件
vue-slide - vue轻量级滑动组件
vue-lazyload-img - 移动优化的vue图片懒加载插件
vue-drag-and-drop-list - 创建排序列表的Vue指令
vue-progressive-image - Vue的渐进图像加载插件
vuwe - 基于微信WeUI所开发的专用于Vue2的组件库
vue-dropzone - 用于文件上传的Vue组件
vue-charts - 轻松渲染一个图表
vue-swiper - 易于使用的滑块组件
vue-images - 显示一组图片的lightbox组件
vue-carousel-3d - VueJS的3D轮播组件
vue-region-picker - 选择中国的省份市和地区
vue-typer - 模拟用户输入选择和删除文本的Vue组件
vue-impression - 移动Vuejs2 UI元素
vue-datatable - 使用Vuejs创建的DataTableView
vue-instant - 轻松创建自动提示的自定义搜索控件
vue-dragging - 使元素可以拖拽
vue-slider-component - 在vue1和vue2中使用滑块
vue2-loading-bar - 最简单的仿Youtube加载条视图
vue-datepicker - 漂亮的Vue日期选择器组件
vue-video - Vue.js的HTML5视频播放器
vue-toast-mobile - VueJS的toast插件
vue-image-crop-upload - vue图片剪裁上传组件
vue-tooltip - 带绑定信息提示的提示工具
vue-highcharts - HighCharts组件
vue-touch-ripple - vuejs的触摸ripple组件
coffeebreak - 实时编辑CSS组件工具
vue-datasource - 创建VueJS动态表格
vue2-timepicker - 下拉时间选择器
vue-date-picker - VueJS日期选择器组件
vue-scrollbar - 最简单的滚动区域组件
vue-quill - vue组件构建quill编辑器
vue-google-signin-button - 导入谷歌登录按钮
vue-svgicon - 创建svg图标组件的工具
vue-float-label - VueJS浮动标签模式
vue-baidu-map - 基于 Vue 2的百度地图组件库
vue-social-sharing - 社交分享组件
vue2-editor - HTML编辑器
vue-tagsinput - 基于VueJS的标签组件
vue-easy-slider - Vue 2.x的滑块组件
datepicker - 基于flatpickr的时间选择组件
vue-chart - 强大的高速的vue图表解析
vue-music-master - vue手机端网页音乐播放器
handsontable - 网页表格组件
vue-simplemde - VueJS的Markdown编辑器组件
vue-popup-mixin - 用于管理弹出框的遮盖层
cubeex - 包含一套完整的移动UI
vue-fullcalendar - vue FullCalendar封装
vue-material-design - Vue MD风格组件
vue-morris - Vuejs组件封装Morrisjs库
we-vue - Vue2及weui1开发的组件
vue-image-clip - 基于vue的图像剪辑组件
vue-bootstrap-table - 可排序可检索的表格
vue-radial-progress - Vue.js放射性进度条组件
vue-slick - 实现流畅轮播框的vue组件
vue-pull-to-refresh - Vue2的上拉下拉
vue-form-2 - 全面的HTML表单管理的解决方案
vue-side-nav - 响应式的侧边导航
mint-indicator - VueJS移动加载指示器插件
chartjs - Vue Bulma的chartjs组件
vue-scroll - vue滚动
vue-ripple - 制作谷歌MD风格涟漪效果的Vue组件
vue-touch-keyboard - VueJS虚拟键盘组件
vue-chartkick - VueJS一行代码实现优美图表
vue-ztree - 用 vue 写的树层级组件
vue-m-carousel - vue 移动端轮播组件
vue-datepicker-simple - 基于vue的日期选择器
vue-tabs - 多tab页轻型框架
vue-verify-pop - 带气泡提示的vue校验插件
vue-parallax - 整洁的视觉效果
vue-img-loader - 图片加载UI组件
vue-typewriter - vue组件类型
vue-smoothscroll - smoothscroll的VueJS版本
vue-city - 城市选择器
vue-tree - vue树视图组件
vue-ios-alertview - iOS7 风格的alertview服务
dd-vue-component - 订单来了的公共组件库
paco-ui-vue - PACOUI的vue组件
vue-cmap - Vue China map可视化组件
vue-button - Vue按钮组件

vue.js - 流行的轻量高效的前端组件化方案
vue-admin - Vue管理面板框架
electron-vue - Electron及VueJS快速启动样板
vue-2.0-boilerplate - Vue2单页应用样板​
vue-spa-template - 前后端分离后的单页应用开发
Framework7-Vue - VueJS与Framework7结合
vue-bulma - 轻量级高性能MVVM Admin UI框架
vue-webgulp - 仿VueJS Vue loader示例
vue-element-starter - vue启动页

vuex - 专为 Vue.js 应用程序开发的状态管理模式
vuelidate - 简单轻量级的基于模块的Vue.js验证
qingcheng - qingcheng主题
vue-desktop - 创建管理面板网站的UI库
vue-meta - 管理app的meta信息
vue-axios - 将axios整合到VueJS的封装
vue-svg-icon - vue2的可变彩色svg图标方案
avoriaz - VueJS测试实用工具库
vue-framework7 - 结合VueJS使用的Framework7组件
vue-bootstrap-modal - vue的Bootstrap样式组件
vuep - 用实时编辑和预览来渲染Vue组件
vue-online - reactive的在线和离线组件
vue-lazy-render - 用于Vue组件的延迟渲染
vue-password-strength-meter - 交互式密码强度计
element-admin - 支持 vuecli 的 Element UI 的后台模板
vue-electron - 将选择的API封装到Vue对象中的插件
cleave - 基于cleave.js的Cleave组件
vue-events - 简化事件的VueJS插件
vue-shortkey - 应用于Vue.js的Vue-ShortKey 插件
vue-cordova - Cordova的VueJS插件
vue-router-transition - 页面过渡插件
vue-gesture - VueJS的手势事件插件
http-vue-loader - 从html及js环境加载vue文件
vue-qart - 用于qartjs的Vue2指令
vuemit - 处理VueJS事件
vue-websocket - VueJS的Websocket插件
vue-local-storage - 具有类型支持的Vuejs本地储存插件
lazy-vue - 懒加载图片
vue-bus - VueJS的事件总线
vue-reactive-storage - vue插件的Reactive层
vue-notifications - 非阻塞通知库
vue-lazy-component - 懒加载组件或者元素的Vue指令
v-media-query - vue中添加用于配合媒体查询的方法
vue-observe-visibility - 当元素在页面上可见或隐藏时检测
vue-ts-loader - 在Vue装载机检查脚本
vue-pagination-2 - 简单通用的分页组件
vuex-i18n - 定位插件
Vue.resize - 检测HTML调整大小事件的vue指令
vuex-shared-mutations - 分享某种Vuex mutations
vue-file-base64 - 将文件转换为Base64的vue组件
modal - Vue Bulma的modal组件
Famous-Vue - Famous库的vue组件
leo-vue-validator - 异步的表单验证组件
Vue-Easy-Validator - 简单的表单验证
vue-truncate-filter - 截断字符串的VueJS过滤器
vue-zoombox - 一个高级zoombox
vue-input-autosize - 基于内容自动调整文本输入的大小
vue-lazyloadImg - 图片懒加载插件

nuxt.js - 用于服务器渲染Vue app的最小化框架
express-vue - 简单的使用服务器端渲染vue.js
vue-ssr - 非常简单的VueJS服务器端渲染模板
vue-ssr - 结合Express使用Vue2服务端渲染
vue-easy-renderer - Nodejs服务端渲染

DejaVue - Vuejs可视化及压力测试
vue-play - 展示Vue组件的最小化框架
vscode-VueHelper - 目前vscode最好的vue代码提示插件
vue-generate-component - 轻松生成Vue js组件的CLI工具
vue-multipage-cli - 简单的多页CLI
VuejsStarterKit - vuejs starter套件

koel - 基于网络的个人音频流媒体服务
pagekit - 轻量级的CMS建站系统
vuedo - 博客平台
jackblog-vue - 个人博客系统
vue-cnode - 重写vue版cnode社区
CMS-of-Blog - 博客内容管理器
rss-reader - 简单的rss阅读器
vue-ghpages-blog - 依赖GitHub Pages无需本地生成的静态博客
swoole-vue-webim - Web版的聊天应用
vue-dashing-js - nuvo-dashing-js的fork
fewords - 功能极其简单的笔记本
vue-blog - 使用Vue2.0 和Vuex的vue-blog
Demo示例
Vue-cnodejs - 基于vue重写Cnodejs.org的webapp
NeteaseCloudWebApp - 高仿网易云音乐的webapp
vue-zhihu-daily - 知乎日报 with Vuejs
vue-wechat - vue.js开发微信app界面
vue2-demo - 从零构建vue2 vue-router vuex 开发环境
eleme - 高仿饿了么app商家详情
vue-demo - vue简易留言板
maizuo - vue/vuex/redux仿卖座网
spa-starter-kit - 单页应用启动套件
vue-music - Vue 音乐搜索播放
douban - 模仿豆瓣前端
vue-Meizi - vue最新实战项目
zhihudaily-vue - 知乎日报web版
vue-demo-kugou - vuejs仿写酷狗音乐webapp
VueDemo_Sell_Eleme - Vue2高仿饿了么外卖平台
vue2.0-taopiaopiao - vue2.0与express构建淘票票页面
vue-leancloud-blog - 一个前后端完全分离的单页应用
node-vue-server-webpack - Node.js Vue.js webpack快速开发框架
mi-by-vue - VueJS仿小米官网
vue-fis3 - 流行开源工具集成demo
vue2.x-douban - Vue2实现简易豆瓣电影webApp
vue-demo-maizuo - 使用Vue2全家桶仿制卖座电影
vue-zhihudaily - 知乎日报 Web 版本
vue-adminLte-vue-router - vue和adminLte整合应用
vue-axios-github - 登录拦截登出功能
Zhihu-Daily-Vue.js - Vuejs单页网页应用
hello-vue-django - 使用带有Django的vuejs的样板项目
vue-cnode - vue单页应用demo
x-blog - 开源的个人blog项目
vue-express-mongodb - 简单的前后端分离案例
websocket_chat - 基于vue和websocket的多人在线聊天室
photoShare - 基于图片分享的社交平台
vue-zhihudaily-2.0 - 使用Vue2.0 vue-router vuex创建的zhihudaily
notepad - 本地存储的记事本
vueBlog - 前后端分离博客
vue-ruby-china - VueJS框架搭建的rubychina平台
Zhihu_Daily - 基于Vue和Nodejs的Web单页应用
vue-koa-demo - 使用Vue2和Koa1的全栈demo
vue2.x-Cnode - 基于vue全家桶的Cnode社区
life-app-vue - 使用vue2完成多功能集合到小webapp
github-explorer - 寻找最有趣的GitHub库
vue-trip - vue2做的出行webapp
vue-ssr-boilerplate - 精简版的ofvue-hackernews-2
vue-bushishiren - 不是诗人应用
houtai - 基于vue和Element的后台管理系统
ios7-vue - 使用vue2.0 vue-router vuex模拟ios7
Framework7-VueJS - 使用移动框架的示例
cnode-vue - 基于vue和vue-router构建的cnodejs web网站SPA
vue-cli-multipage-bootstrap - 将vue官方在线示例整合到组件中
vue-cnode - 用 Vue 做的 CNode 官网
HyaReader - 移动友好的阅读器
zhihu-daily - 轻松查看知乎日报内容
seeMusic - 跨平台云音乐播放器
vue-cnode - 使用cNode社区提供的接口
zhihu-daily-vue - 知乎日报
sls-vuex2-demo - vuex2商城购物车demo
vue-dropload - 用以测试下拉加载与简单路由
vue-cnode-mobile - 搭建cnode社区
Vuejs-SalePlatform - vuejs搭建的售卖平台demo
v-notes - 简单美观的记事本
vue-starter - VueJs项目的简单启动页

vue的组件开发手风琴菜单实例

小图标是引入font-awesome字体图标库绘制的。效果如下图所示  
\"这里写图片描述\"

 !DOCTYPE html  html lang en  head  meta charset UTF-8  title index /title  link rel stylesheet href css/font-awesome.min.css  link rel stylesheet href css/index.css  script type text/javascript src ../lib/vue.min.js /script  script type text/javascript src ../lib/jquery-1.11.3.min.js /script  style  margin: 0; padding: 0; body { padding-top: 100px; #tabPanel { width: 120px; height: auto; margin: 0 auto; #tabPanel .item .sildermun ul li { height: 40px; line-height: 40px; list-style: none; #tabPanel .item .sildermun ul li:hover { background: #ccc; #tabPanel .item .menutitle { height: 40px; line-height: 40px; text-align: center; background: #ccc; #tabPanel .item .sildermun { text-align: center; background: #eee; /style  /head  body  div id tabItem  slider-item /slider-item  slider-item /slider-item  slider-item /slider-item  slider-item /slider-item  /div  !--组件模板,也可以使用template标签方式引入模板--  template id tab  div id tabPanel  div class item  div class menutitle click toggle() i class icon-th-list /i nbsp;{{parentItem}} /div  div class sildermun v-show status  li v-for (index,v) in childItems i class icon-star /i nbsp;{{v index}} /li  /ul  /div  /div  /div  /div  /template  !--组件模板,也可以使用template标签方式引入模板--  /body  /html  script  var vue new Vue({ el: #tabItem , data: { components: { slider-item : { template: #tab , data: function() { return { status: false, parentItem: 父级菜单 , childItems: [ 子级菜单 , 子级菜单 , 子级菜单 , 子级菜单 ] methods: { //切换滑块 toggle: function() { this.status !this.status; /script 

本文链接: http://elementis412.immuno-online.com/view-751277.html

发布于 : 2021-03-25 阅读(0)
公司介绍
品牌分类
联络我们
服务热线:4000-520-616
(限工作日9:00-18:00)
QQ :1570468124
手机:18915418616