最近正在试试semantic-ui,结合了vue,这里忍不住吐槽semantic和vue的友好度简直不忍直视,不过既然用了,这里就分享几个用到的插件了
1.分页组件(基于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就是获取分页的数据

由于semantic自己渲染按钮组有一套js触发,使用vue触发的就会出现问题,这里已处理。

2. https://github.com/mdehoog/Semantic-UI-Calendar.git这个插件很好用了,也查过@公孙二狗 的文章,结合github上的说明进行组装了这个,所有操作均是按照github上提供的说明来加的
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 使用分页组件和日历插件的更多相关文章

  1. 基于Vue封装分页组件

    使用Vue做双向绑定的时候,可能经常会用到分页功能 接下来我们来封装一个分页组件 先定义样式文件 pagination.css ul, li { margin: 0px; padding: 0px;} ...

  2. 基于iview 封装一个vue 表格分页组件

    iview 是一个支持中大型项目的后台管理系统ui组件库,相对于一个后台管理系统的表格来说分页十分常见的 iview是一个基于vue的ui组件库,其中的iview-admin是一个已经为我们搭好的后天 ...

  3. vue 封装分页组件

    分页 一般都是调接口, 接口为这种格式 {code: 0, msg: "success",…} code:0 data:{ content:[{content: "11& ...

  4. vue 自定义分页组件

    vue2.5自定义分页组件,可设置每页显示条数,带跳转框直接跳转到相应页面 Pagination.vue 效果如下图: all: small(只显示数字和上一页和下一页): html <temp ...

  5. vue自定义分页组件---切图网

    vue2.5自定义分页组件 Pagination.vue,可设置每页显示条数,带跳转框直接跳转到相应页面,亲测有用.目前很多框架自带有分页组件比如elementUI,不过在面对一个拿到PSD稿,然后重 ...

  6. vue封装分页组件

    element提供的分页是已经封装好的组件,在这里再次封装是为了避免每个用到分页的页面点击跳转时都要写一遍跳转请求 分页组件 <!--分页组件--> <template> &l ...

  7. vue element-ui 分页组件封装

    <template> <el-pagination @size-change="handleSizeChange" @current-change="h ...

  8. vue实现分页组件

    创建pagination.vue /* * 所需参数 * total Number 总页数 * current Number 当前页面下标 * pageSize Number 页面显示条数 * siz ...

  9. vue的分页组件

    <template> <div class="page-nav"> <div class="page-btn-wrap"> ...

随机推荐

  1. idea 类图显示

    不得不说idea java开发的神器啊,免去了自己画图的很多工作量. 打开类图快捷键:Ctrl+Alt+Shift+U

  2. 负载均衡之Ocelot+Consul(WebAPI注册服务)

    上一篇   负载均衡之Ocelot+Consul(文件配置注册服务),介绍了如何通过json文件注册服务,本篇将学习如何通过web api 注册服务. 在展开学习过程之前,且先总结一下 consul服 ...

  3. 创建Maven版Java工程

    步骤: 创建成功后,如图:

  4. better-scroll & scroll

    scroll better-scroll https://github.com/ustbhuangyi/better-scroll/blob/master/README.md#getting-star ...

  5. HDU 1203 背包问题

    题目大意: 根据学校的申请费用,根据已有的钱得到最大的offer率 这里很明显就是一个价值为概率的背包问题 计算两个offer合并的概率 为a + b - a*b #include <cstdi ...

  6. noip模拟赛 猜数字

    题目描述 LYK在玩猜数字游戏. 总共有n个互不相同的正整数,LYK每次猜一段区间的最小值.形如[li,ri]这段区间的数字的最小值一定等于xi. 我们总能构造出一种方案使得LYK满意.直到…… LY ...

  7. hdu 2089 记忆化搜索写法(数位dp)

    /* 记忆化搜索,第二维判断是否是6 */ #include<stdio.h> #include<string.h> #define N 9 int dp[N][2],digi ...

  8. 多Tabs的横向滚动插件(支持Zepto和jQuery)

    一. 效果图 二. 功能介绍 1. 支持横向移动 2. 支持点击Tab后该Tab居中 3. 拉到最左边和最右边后依然可以拉动,只是tabs的移动距离变小. 三. 使用说明 1. 在你的html中添加T ...

  9. .NET跨平台 - WCF & Mono

    让WCF运行在Linux上(寄宿于服务器程序) WCF介绍请自行 bing 搜索 使用的开发工具为vs2017,系统为 Ubuntu16.04 服务器软件为Jexus ( 详情请看:  Jexus官网 ...

  10. ssh连接失败

    参考:http://www.cnblogs.com/starof/p/4709805.html https://www.chenyudong.com/archives/ssh-using-privat ...