国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

基于Vue2-Calendar改進(jìn)的日歷組件(含中文使用說(shuō)明)

番茄西紅柿 / 3710人閱讀

摘要:改進(jìn)原控件無(wú)法切換語(yǔ)言的,支持和。日歷面板增加一個(gè)位置選項(xiàng),允許讓面板右對(duì)齊,只需要即可。原事件只有在時(shí)才生效,現(xiàn)改為一直有效,這樣當(dāng)用戶(hù)點(diǎn)擊日歷面板上的日期后就可以觸發(fā)該事件。

一,前言

我是剛學(xué)Vue的菜鳥(niǎo),在使用過(guò)程中需要用到日歷控件,由于項(xiàng)目中原來(lái)是用jQuery寫(xiě)的,因此用了bootstarp的日歷控件,但是配合Vue實(shí)在有點(diǎn)蛋疼,不夠優(yōu)雅……

于是網(wǎng)上搜了好久找到了Vue2-Calendar,不用說(shuō),挺好用的,但是同時(shí)也發(fā)現(xiàn)這個(gè)組件有些問(wèn)題,有些功能挺不符合我們的要求,于是著手改了一版

二,改進(jìn)的功能

在Vue2-Calendar v2.2.4 版基礎(chǔ)上作了優(yōu)化。
  1. 改進(jìn)原控件無(wú)法切換語(yǔ)言的BUG,支持 lang=zh-CN和en。
  2. 日歷面板增加一個(gè)位置選項(xiàng),允許讓面板右對(duì)齊,只需要position=right即可。
  3. 原 :on-day-click 事件只有在 hasInput=false 時(shí)才生效,現(xiàn)改為一直有效,這樣當(dāng)用戶(hù)點(diǎn)擊日歷面板上的日期后就可以觸發(fā)該事件。
  4. clear=false時(shí)文本框右側(cè)會(huì)顯示一個(gè)日歷圖標(biāo),高仿bootstrap的日歷組件,但clear=true時(shí)不顯示

效果圖

 

 

三,使用示例

1.常規(guī)使用,單日歷

HTML代碼:

1  <calendar v-model="value" show-date-only :disabled-days-of-week="disabled" :format="format" :clear-button="clear" :placeholder="placeholder" :lang="lang" :position="position" :on-day-click="dayClick">
2             calendar>
View Code

JS代碼:

 1 var app = new Vue({
 2             el: "#app",
 3             data: function() {
 4                 return {
 5                     disabled: [], //禁用的日期
 6                     value: new Date(), //
 7                     format: "yyyy-MM-dd", //文本框中顯示的日期格式
 8                     clear: false, //是否在文本框右側(cè)顯示清除按鈕(X)
 9                     placeholder: "日期", //水印
10                     position: "left", //日期面板位置,默認(rèn)null和left 居左,right則靠右
11                     lang: "" //語(yǔ)言,默認(rèn)中文,可選值:zh-CN、en
12                 };
13             },
14             methods: {
15                 //鼠標(biāo)點(diǎn)擊日歷面板上的日期時(shí)的事件,
16                 //傳遞的兩個(gè)參數(shù)均是同一個(gè)值,只是類(lèi)型不同,隨便用哪個(gè)看個(gè)人需要
17                 //date 是 Date 類(lèi)型
18                 //dateStr 是 String 類(lèi)型
19                 dayClick: function(date, dateStr) {
20                     console.log(date);
21                     console.log(dateStr);
22                     console.log(this.value);
23                 }
24             },
25             components: {
26                 calendar: Calendar
27             }
28         });
View Code

 

2.常規(guī)使用,雙月日歷

HTML代碼:

1  <calendar v-model="value" show-date-only :disabled-days-of-week="disabled" :format="format" :clear-button="clear" :placeholder="placeholder" :lang="lang" :position="position" :on-day-click="dayClick" :pane="2">
2             calendar>
View Code

JS代碼:

 1   var app = new Vue({
 2             el: "#app",
 3             data: function() {
 4                 return {
 5                     disabled: [], //禁用的日期
 6                     value: new Date(), //
 7                     format: "yyyy-MM-dd", //文本框中顯示的日期格式
 8                     clear: false, //是否在文本框右側(cè)顯示清除按鈕(X)
 9                     placeholder: "日期", //水印
10                     position: "left", //日期面板位置,默認(rèn)null和left 居左,right則靠右
11                     lang: "" //語(yǔ)言,默認(rèn)中文,可選值:zh-CN、en
12                 };
13             },
14             methods: {
15                 //鼠標(biāo)點(diǎn)擊日歷面板上的日期時(shí)的事件,
16                 //傳遞的兩個(gè)參數(shù)均是同一個(gè)值,只是類(lèi)型不同,隨便用哪個(gè)看個(gè)人需要
17                 //date 是 Date 類(lèi)型
18                 //dateStr 是 String 類(lèi)型
19                 dayClick: function(date, dateStr) {
20                     console.log(date);
21                     console.log(dateStr);
22                     console.log(this.value);
23                 }
24             },
25             components: {
26                 calendar: Calendar
27             }
28         });
View Code

3.雙日歷聯(lián)動(dòng),通常用在開(kāi)始和結(jié)束時(shí)間的選擇上,結(jié)束時(shí)間不能早于開(kāi)始時(shí)間

說(shuō)明:當(dāng)選擇了開(kāi)始時(shí)間后,結(jié)束時(shí)間選擇時(shí)會(huì)顯示哪些日期可選,并且顯示已經(jīng)選擇的開(kāi)始時(shí)間

HTML代碼:

1  <calendar v-model="value" show-date-only :disabled-days-of-week="disabled" :format="format" :clear-button="clear" :placeholder="起始時(shí)間" :lang="lang" :position="position" :on-day-click="dayClick" :pane="1" :range-bus="getBus" :range-status="1">calendar>
2             <calendar v-model="value2" show-date-only :disabled-days-of-week="disabled" :format="format" :clear-button="clear" :placeholder="結(jié)束時(shí)間" :lang="lang" :position="position" :on-day-click="dayClick" :pane="1" :range-bus="getBus" :range-status="2">calendar>
View Code

JS代碼:

 1  var app2 = new Vue({
 2             el: "#app2",
 3             data: function() {
 4                 return {
 5                     disabled: [],
 6                     value: new Date(),
 7                     value2: new Date(),
 8                     format: "yyyy-MM-dd",
 9                     clear: false,
10                     placeholder: "Start Date",
11                     position: "left",
12                     lang: "",
13                     bus: new Vue()
14                 };
15             },
16             methods: {
17                 dayClick: function(date, dateStr) {
18                     console.log(value= + this.value);
19                     console.log(value2= + this.value2);
20                 },
21                 getBus: function() {
22                     return this.bus;
23                 }
24             },
25             components: {
26                 calendar: Calendar
27             }
28         });
View Code

 四,參數(shù)說(shuō)明(翻譯的官方文檔)

安裝(需要node支持)

$ npm install vue2-slot-calendar

導(dǎo)入模塊

// js file
import vue2-slot-calendar/lib/calendar.min.css;
import calendar from vue2-slot-calendar/lib/calendar;

// vue file
// in ES6 modules
import Calendar from vue2-slot-calendar;

// in CommonJS
const Calendar = require(vue2-slot-calendar);

// in Global variable
const VueCalendar = Calendar;

直接引用編譯好的js文件(推薦)



多語(yǔ)言支持

系統(tǒng)提供window.VueCalendarLang 勾子函數(shù)來(lái)讓用戶(hù)自定義語(yǔ)言,

window.VueCalendarLang=function(lang){
    return {}; //對(duì)象必須是下面JSON格式 
};

上面勾子函數(shù)返回的必須是下面格式的JSON對(duì)象。

下面的腳本在 /src/lang/zh-CN.js 中有

{
    daysOfWeek: ["日", "一", "二", "三", "四", "五", "六"],
    limit: "超過(guò)限制 (最多{{limit}}項(xiàng))",
    loading: "加載中...",
    minLength: "最小長(zhǎng)度",
    months: [
        "一月",
        "二月",
        "三月",
        "四月",
        "五月",
        "六月",
        "七月",
        "八月",
        "九月",
        "十月",
        "十一",
        "十二"
    ],
    notSelected: "未選擇",
    required: "必填項(xiàng)",
    search: "查找"
}

  

構(gòu)建步驟

# 安裝依賴(lài)
npm install

# 運(yùn)行開(kāi)發(fā)服務(wù)器 localhost:4000
npm run dev

# 編譯(壓縮JS和CSS等)
npm run build

# 單元測(cè)試
npm run unit

# 運(yùn)行所有測(cè)試
npm test

參數(shù)和事件

 

NameTypeDefaultDescription
value String 組件輸入輸出的值,即 v-model 的值
width String 200px input文本框的寬度
format String yyyy-MM-dd 日期格式,可用值: d, dd, M, MM, MMM, MMMM, yyyy.
disabled-days-of-week Array   每周有哪些天禁用,可用值0-6,多個(gè)值則用逗號(hào)隔開(kāi)
clear-button Bollean false 是否顯示清除按鈕,顯示清除按鈕時(shí)右側(cè)的日歷圖標(biāo)不顯示,不顯示清除按鈕時(shí)則顯示日歷圖標(biāo)
placeholder String   文本框中顯示的水印
hasInput Boolean true 是否顯示文本框
pane Number 1 日歷面板數(shù)量,默認(rèn)1,雙月日歷設(shè)為2即可,目前僅支持1和2
borderWidth Number 2 日歷面板邊框線寬度
onDayClick Function   點(diǎn)擊日期時(shí)的事件,已改為不受hasInput值的限制,總是觸發(fā)
specialDays Object   特殊日期
changePane Function   切換日歷面板時(shí)的事件, 暫時(shí)還沒(méi)研究這個(gè),大多數(shù)情況下用不到,請(qǐng)參考  /src/modules/Docs.vue
rangeBus Function   暫時(shí)不明白啥意思,請(qǐng)總是返回一個(gè) new Vue() 就對(duì)了
rangeStatus Number 0 日期范圍狀態(tài),默認(rèn)0表示不使用日期范圍,1表示雙日歷聯(lián)動(dòng)的起始日期,2表示雙日歷聯(lián)動(dòng)的結(jié)束日期
onDrawDate Function   繪制日期時(shí)的事件,可以讓用戶(hù)自定義日歷樣式
showDateOnly Boolean false 是否只顯示日歷面板
transfer Boolean false 是否將日歷面板添加到 document.body中
elementId String   日歷ID
firstDayOfWeek Number 0 每周第1天,0表示星期天,1表示星期一,其它依次類(lèi)推


組件的所有屬性值

props: {
    value: {
      type: [String, Date]
    },
    format: {
      default: yyyy-MM-dd
    },
    firstDayOfWeek: {
      // sunday
      default: 0
    },
    disabledDaysOfWeek: {
      type: Array,
      default () {
        return []
      }
    },
    width: {
      type: String,
      default: 200px
    },
    clearButton: {
      type: Boolean,
      default: false
    },
    inputClasses: {
      type: String,
      default: 
    },
    lang: {
      type: String,
      default: navigator.language
    },
    placeholder: {
      type: String
    },
    hasInput: {
      type: Boolean,
      default: true
    },
    pane: {
      type: Number,
      default: 1
    },
    borderWidth: {
      type: Number,
      default: 2
    },
    onDayClick: {
      type: Function,
      default () {}
    },
    changePane: {
      type: Function,
      default () {}
    },
    specialDays: {
      type: Object,
      default () {
        return {}
      }
    },
    rangeBus: {
      type: Function,
      default () {
        // return new Vue()
      }
    },
    rangeStatus: {
      type: Number,
      default: 0
    },
    onDrawDate: {
      type: Function,
      default () {}
    },
    maxDate: {
      type: String
    },
    minDate: {
      type: String
    },
    showDateOnly: {
      type: Boolean,
      default: false
    },
    transfer: {
      type: Boolean,
      default: false
    },
    elementId: [String]
  }

五,源碼

以下是我改過(guò)后的源碼:

https://github.com/alaxgit/Vue2-Calendar

六,直接引用JS

如果你喜歡直接引用JS和CSS,不喜歡用webpack編譯啥的,可以直接下載編譯好的文件:

https://github.com/alaxgit/Vue2-Calendar/blob/master/lib/calendar.min.js

https://github.com/alaxgit/Vue2-Calendar/blob/master/lib/calendar.min.css

 

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/1015.html

相關(guān)文章

  • Vue.js資源分享

    摘要:中文官網(wǎng)英文官網(wǎng)組織發(fā)出一個(gè)問(wèn)題之后,不要暫時(shí)的離開(kāi)電腦,如果沒(méi)有把握先不要提問(wèn)。珍惜每一次提問(wèn),感恩每一次反饋,每個(gè)人工作還是業(yè)余之外抽出的時(shí)間有限,充分準(zhǔn)備好應(yīng)有的資源之后再發(fā)問(wèn),有利于問(wèn)題能夠高效質(zhì)量地得到解決。 Vue.js資源分享 更多資源請(qǐng)Star:https://github.com/maidishike... 文章轉(zhuǎn)自:https://github.com/maid...

    vpants 評(píng)論0 收藏0
  • vue-calendar 基于 vue 2.0 開(kāi)發(fā)輕量,高性能日歷組件

    摘要:基于開(kāi)發(fā)的輕量,高性能日歷組件占用內(nèi)存小,性能好,樣式好看,可擴(kuò)展性強(qiáng)原生開(kāi)發(fā),沒(méi)引入第三方庫(kù)上很多點(diǎn)擊彈出日歷選擇某個(gè)時(shí)間的組件,卻沒(méi)有找到單純展示日歷并且能點(diǎn)擊獲取時(shí)間的組件少部分日歷組件的占用內(nèi)存過(guò)于大,對(duì)于日歷這樣簡(jiǎn)單的功能來(lái)說(shuō) vue-calendar-component 基于 vue 2.0 開(kāi)發(fā)的輕量,高性能日歷組件 占用內(nèi)存小,性能好,樣式好看,可擴(kuò)展性強(qiáng) 原生 js...

    vvpale 評(píng)論0 收藏0
  • vue-calendar 基于 vue 2.0 開(kāi)發(fā)輕量,高性能日歷組件

    摘要:基于開(kāi)發(fā)的輕量,高性能日歷組件占用內(nèi)存小,性能好,樣式好看,可擴(kuò)展性強(qiáng)原生開(kāi)發(fā),沒(méi)引入第三方庫(kù)上很多點(diǎn)擊彈出日歷選擇某個(gè)時(shí)間的組件,卻沒(méi)有找到單純展示日歷并且能點(diǎn)擊獲取時(shí)間的組件少部分日歷組件的占用內(nèi)存過(guò)于大,對(duì)于日歷這樣簡(jiǎn)單的功能來(lái)說(shuō) vue-calendar-component 基于 vue 2.0 開(kāi)發(fā)的輕量,高性能日歷組件 占用內(nèi)存小,性能好,樣式好看,可擴(kuò)展性強(qiáng) 原生 js...

    megatron 評(píng)論0 收藏0
  • 前端開(kāi)源項(xiàng)目周報(bào)1226

    摘要:由出品的前端開(kāi)源項(xiàng)目周報(bào)第三期來(lái)啦。我們的前端開(kāi)源周報(bào)集合了一周來(lái)新收錄的優(yōu)質(zhì)的前端開(kāi)發(fā)方面的開(kāi)源項(xiàng)目,方便前端開(kāi)發(fā)人員便捷的找到自己需要的項(xiàng)目工具等。 由OpenDigg?出品的前端開(kāi)源項(xiàng)目周報(bào)第三期來(lái)啦。我們的前端開(kāi)源周報(bào)集合了OpenDigg一周來(lái)新收錄的優(yōu)質(zhì)的前端開(kāi)發(fā)方面的開(kāi)源項(xiàng)目,方便前端開(kāi)發(fā)人員便捷的找到自己需要的項(xiàng)目工具等。 Cost of modules 查看哪個(gè)依賴(lài)拖...

    jubincn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<