国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

Element-ui DatePicker顯示周數(shù)的方法示例

2019-11-19 11:09:51
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1.場(chǎng)景描述

我們公司是做電商的,運(yùn)營(yíng)的工作指標(biāo)都是按周來(lái)定的,所以他們對(duì)周特別敏感,希望我們能在日期選擇器上顯示周數(shù)。剛接到這個(gè)需求時(shí),心中很不樂(lè)意,因?yàn)镋lement-ui的日期選擇器根本不支持顯示周數(shù)。我只能看看源碼來(lái)看看能否有解決的辦法

具體代碼大家可以在github中看到https://github.com/ElemeFE/element/pull/16415/commits/2b810cf73d1127645054265469bbb353d036cb21

2.查看源碼

我們很輕松就能找到DatePicker相關(guān)的代碼,在packages > date-picker 整個(gè)目錄都是date-picker的代碼,在date-picker > src > basic > date-table.vue中就是顯示日期的代碼,在這里竟然發(fā)現(xiàn)了一個(gè)屬性showWeekNumber,在date-table.vue的第83行。

showWeekNumber: {  type: Boolean,  default: false },

為了驗(yàn)證這個(gè)參數(shù)對(duì)我們是否有幫助,我們把showWeekNumber默認(rèn)設(shè)置為true試試,然后把第11行的

<th v-if="showWeekNumber">{{ t('el.datepicker.week') }}</th>

改為

<th v-if="showWeekNumber">周數(shù)</th>

設(shè)置用來(lái)設(shè)置國(guó)際化的,國(guó)際化文件中沒(méi)有這個(gè)對(duì)應(yīng)的翻譯,我們暫時(shí)先這么寫(xiě),不然會(huì)報(bào)錯(cuò)。當(dāng)我們完成這個(gè)之后神奇的事情發(fā)生了

周數(shù)展示出來(lái)了,而且好像展示的事正確的,7.1-7.6就是2019年的第27周。既然能夠展示周數(shù),那么為什么element不開(kāi)放出來(lái)這個(gè)參數(shù)了,是否是有什么問(wèn)題呢。我們自己來(lái)簡(jiǎn)單的測(cè)試下

3. 發(fā)現(xiàn)并解決問(wèn)題

問(wèn)題

(1)切換月時(shí),周數(shù)并不會(huì)發(fā)生變化

(2)選中的是29周,輸入框中確展示的是28周

(3)hover選中時(shí),周數(shù)不應(yīng)該展示高亮的樣式

(4)日期區(qū)間選中的樣式也不正確

解決問(wèn)題

(1)解決周數(shù)不變化的問(wèn)題,我們找到date-table.vue中第149行到152行

if (this.showWeekNumber) { if (!row[0]) {  row[0] = { type: 'week', text: getWeekNumber(nextDate(startDate, i * 7 + 1)) }; }}

當(dāng)showWeekNumber為true時(shí),row[0]就是用來(lái)展示周數(shù)的,當(dāng)row[0],存在時(shí),就不在去獲取新的值,顯然不正確,我們把if判斷去掉就行,這樣就會(huì)更新周數(shù)

(2)解決選中后周數(shù)展示不正確的問(wèn)題,我們找到date-table.vue中第14行到18行

<tr class="el-date-table__row" v-for="(row, key) in rows" :class="{ current: isWeekActive(row[1]) }" :key="key">

isWeekActive就是用來(lái)獲得當(dāng)前展示的周數(shù)的,當(dāng)展示周數(shù)之后我們要做適當(dāng)?shù)男薷?/p>

<tr class="el-date-table__row" v-for="(row, key) in rows" :class="{ current: isWeekActive(row[showWeekNumber ? 2 : 1]) }" :key="key">

至于第三個(gè)問(wèn)題和第三個(gè)問(wèn)題都是樣式的問(wèn)題,我們修改下date-table對(duì)應(yīng)的樣式即可

最后看下展示效果

4. 最后

我已經(jīng)向element-ui提了pr,但是還沒(méi)有merge,具體的代碼大家可以在github中看到https://github.com/ElemeFE/element/pull/16415/commits/2b810cf73d1127645054265469bbb353d036cb21,解決了國(guó)際化的問(wèn)題和增加了參數(shù)展示周數(shù)

5. 問(wèn)題

代碼是已經(jīng)改好了,但是我們引入餓了么的代碼是直接通過(guò)npm下載的,線(xiàn)上環(huán)境也是npm下載的,我們是無(wú)法來(lái)更改npm的代碼的。那么我們?cè)趺磥?lái)解決這個(gè)問(wèn)題呢,請(qǐng)看我的下一篇文章,我最近會(huì)更新。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 长宁县| 闽清县| 安国市| 三江| 盐山县| 竹北市| 玛曲县| 潮州市| 个旧市| 巴东县| 石嘴山市| 阳春市| 抚顺市| 内乡县| 子洲县| 徐水县| 交口县| 分宜县| 莒南县| 水富县| 铜梁县| 乐都县| 怀集县| 威海市| 闽清县| 乐东| 宁阳县| 陵水| 玉门市| 沐川县| 藁城市| 平江县| SHOW| 盐城市| 安西县| 泾阳县| 道孚县| 耒阳市| 乌拉特后旗| 彩票| 庆阳市|