semantic、vue 使用分页组件和日历插件
var pageComponent = Vue.extend({
template: `<div class="ui floated pagination menu">
<a class="icon item" :class="{\'disabled\':curPage==1}" v-on:click="goPage(curPage==1?curPage:curPage-1)">
<i class="left chevron icon"></i>
</a>
<a class="item" style="background-color:#fff;" v-for="(page,index) in selectPage" :class="{'p-active':page==curPage}" v-on:click="goPage(page)">
<template v-if="page">{{page}}</template>
<template v-else="page" >···</template>
</a>
<a class="icon item" :class="{\'disabled\':curPage==pages}" v-on:click="goPage(curPage==pages?curPage:curPage+1)">
<i class="right chevron icon"></i>
</a>
</div>`,
props: {
pages: {
type: Number,
default: 1
},
current: {
type: Number,
default: 1
}
},
data() {
return {
curPage: 1
}
},
computed: {
selectPage() {
let pageNum = this.pages;
let index = this.curPage;
let arr = [];
if (pageNum <= 5) {
for (var i = 1; i <= pageNum; i++) {
arr.push(i);
}
return arr;
}
if (index <= 2) return [1, 2, 3, 0, pageNum];
if (index >= pageNum - 1) return [1, 0, pageNum - 2, pageNum - 1, pageNum];
if (index === 3) return [1, 2, 3, 4, 0, pageNum];
if (index === pageNum - 2) return [1, 0, pageNum - 3, pageNum - 2, pageNum - 1, pageNum];
return [1, 0, index - 1, index, index + 1, 0, pageNum];
}
},
methods: {
init: function () {
this.curPage = 1;
},
goPage: function (page) {
$('.pagination>.item').removeClass('active');
if (page == 0)
return;
if (page != this.curPage) {
this.curPage = page;
this.$emit('navpage', this.curPage);
} else {
console.log('Already in the current page');
}
}
},
watch: {
'curPage': function () {
$('.pagination>.item').removeClass('active');
}
}
});
Vue.component('pagination', pageComponent);
使用时:
<pagination class="right" ref="pageUser" v-bind:pages="pageNum" v-bind:current.sync="pageIndex" v-on:navpage="getList"></pagination>
其中getList就是获取分页的数据
let timeSetting = {
type: 'datetime',//这里可自定义,参照github上的说明
formatter: { // 自定义日期的格式
date: function (date, settings) {
if (!date) return '';
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate(); month = month < 10 ? '0' + month : month;
day = day < 10 ? '0' + day : day; return year + '-' + month + '-' + day;
},
time: function (date, settings, forCalendar) {
if (!date) return '';
var hour = date.getHours();
var minute = date.getMinutes();
hour = hour < 10 ? '0' + hour : hour;
minute = minute < 10 ? '0' + minute : minute;
return hour + ':' + minute;
},
},
ampm: false,
disableMinute:true,
text: {
days: ['日', '一', '二', '三', '四', '五', '六'],
months: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
monthsShort: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
today: '今天',
now: '当前',
am: ' am',
pm: ' pm'
},
minDate: new Date("2018-5-20 09:00"),
maxDate: new Date("2018-5-25 18:00")
};
//由于这里我需要一个时间段,所以就写了一个区域形式(参考github上的说明)
let leftTimeSetting = $.extend({ endCalendar: "#rightTime" }, timeSetting);
let rightTimeSetting = $.extend({ startCalendar : "#leftTime" }, timeSetting);
$('#leftTime').calendar(leftTimeSetting);
$('#rightTime').calendar(rightTimeSetting);
}
semantic、vue 使用分页组件和日历插件的更多相关文章
- 基于Vue封装分页组件
使用Vue做双向绑定的时候,可能经常会用到分页功能 接下来我们来封装一个分页组件 先定义样式文件 pagination.css ul, li { margin: 0px; padding: 0px;} ...
- 基于iview 封装一个vue 表格分页组件
iview 是一个支持中大型项目的后台管理系统ui组件库,相对于一个后台管理系统的表格来说分页十分常见的 iview是一个基于vue的ui组件库,其中的iview-admin是一个已经为我们搭好的后天 ...
- vue 封装分页组件
分页 一般都是调接口, 接口为这种格式 {code: 0, msg: "success",…} code:0 data:{ content:[{content: "11& ...
- vue 自定义分页组件
vue2.5自定义分页组件,可设置每页显示条数,带跳转框直接跳转到相应页面 Pagination.vue 效果如下图: all: small(只显示数字和上一页和下一页): html <temp ...
- vue自定义分页组件---切图网
vue2.5自定义分页组件 Pagination.vue,可设置每页显示条数,带跳转框直接跳转到相应页面,亲测有用.目前很多框架自带有分页组件比如elementUI,不过在面对一个拿到PSD稿,然后重 ...
- vue封装分页组件
element提供的分页是已经封装好的组件,在这里再次封装是为了避免每个用到分页的页面点击跳转时都要写一遍跳转请求 分页组件 <!--分页组件--> <template> &l ...
- vue element-ui 分页组件封装
<template> <el-pagination @size-change="handleSizeChange" @current-change="h ...
- vue实现分页组件
创建pagination.vue /* * 所需参数 * total Number 总页数 * current Number 当前页面下标 * pageSize Number 页面显示条数 * siz ...
- vue的分页组件
<template> <div class="page-nav"> <div class="page-btn-wrap"> ...
随机推荐
- shrink&split
shrink将分片数按因子缩减.hard link segment文件.因缩减前后hash一致,不需要rehash.如:0 ,1 , 2, 3, 4, 5, 6, 7, 8.9个分片缩减成3个:0 [ ...
- MTK平台系统稳定性分析
目录 1:简介 2:怎么抓取和分析log 3:怎么确定问题点 简介 系统稳定性目前主要是解决系统死机重启. 分为两部分:Android /kernel Kernel 分析需要的文件和工具: Mtklo ...
- Ubuntu 16.04安装Synaptic Package Manager图形化APT管理工具
安装: sudo apt-get install synaptic 启动:
- 源码分析-react1-根节点渲染
- android 使用post 提交
1.使用post 方式提交时不要把须要传递的參数写在URL 中,一定要使用 BasicNameValuePair 这个类来完毕 创建我想发送一个类似Get 方式的一个URL ---------- ht ...
- Cocos2d-x 3.x 图形学渲染系列十五
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家.特邀编辑,畅销书作者,国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...
- jsp 中声明方法的使用
1.在"<%!"和"%>"之间声明方法,该方法在整个JSP页面有效.可是该方法内定义的变量仅仅在该方法内有效. 这些方法将在Java程序片中被调用, ...
- es bulk 批量删除
bulk [root@hadoop2 ~]# cat bulk.del.es.json {"delete":{"_index":"direct_vot ...
- UVA 1476 - Error Curves(三分法)
UVA 1476 1476 - Error Curves 题目链接 题意:给几条下凹二次函数曲线.然后问[0,1000]全部位置中,每一个位置的值为曲线中最大值的值,问全部位置的最小值是多少 思路:三 ...
- sed 之 N D P
sed的N,D,P 是用于多行模式空间的命令,分别对应于n,d,p n & N: n(next)输出模式空间的内容,然后读取新的输入行,n命令不创建多行模式空间:N(Next)通过读取新的输入 ...