最近正在试试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. 以位为单位存储标志-共用体-union

    一.程序的结构如下: typedef union _KEYST     {         struct         {             uint8 Key1_Flag :1;//表示第0 ...

  2. Leetcode 86.分隔链表

    分隔链表 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前. 你应当保留两个分区中每个节点的初始相对位置. 示例: 输入: head = 1-> ...

  3. JAVA虚拟机运行时内存划分--运行时数据区域

    Java虚拟机在执行java程序时会把内存划分为以下几个不同的数据区域: java虚拟机内存划分(运行时)1.线程私有的: 程序计数器(Program Counter Register):可以看作当前 ...

  4. P1656 炸铁路 洛谷

    https://www.luogu.org/problem/show?pid=1656 题目描述 因为某国被某红色政权残酷的高压暴力统治.美国派出将军uim,对该国进行战略性措施,以解救涂炭的生灵. ...

  5. Unix stat

    Linux 下有stat命令,可以非常方便的得到一个文件的inode等信息.但是今天在Solaris下使用stat居然没有这个命令.不过没关系,我们可以自己写这个命令,比如: #include < ...

  6. C++ Sleep Function 使用方法 Sleep(-1)

    <span style="font-size:18px;">//==================================================== ...

  7. Spring的AOP特性

    一.AOP简介 AOP是Aspect-Oriented Programming的缩写,即面向切面编程.利用oop思想,可以很好的处理业务流程,但是不能把系统中某些特定的重复性行为封装到模块中.例如,在 ...

  8. Date类型转换为Integer类型

    Date类型转换为Integer类型: Integer date = Integer.valueOf(String.valueOf(new SimpleDateFormat("yyyyMMd ...

  9. android实现跑马灯效果(能够实现两个以上跑马灯)

    本文用了继承自TextView的MarqueeTextView来实现跑马灯效果.原因是,跑马灯效果是须要TextView拥有焦点才会跑动的.而有时候TextView获得焦点会有点耗时,造成要等待一段时 ...

  10. 命令行下mysql的部分操作

    远程链接数据库: mysql –u用户名 [–h主机名或者IP地址] –p密码 (用户名是登录的用 户,主机名或者IP地址为可选项,如果是本地连接则不需要,远程连接需要填写,密码是对应用户的密码.) ...