diff --git a/example/pages/calendar/index.js b/example/pages/calendar/index.js
index f911362f..17b3ffeb 100644
--- a/example/pages/calendar/index.js
+++ b/example/pages/calendar/index.js
@@ -13,7 +13,7 @@ Page({
customConfirm: [],
customRange: null,
customDayText: [],
- customPosition: null
+ customPosition: null,
},
type: 'single',
round: true,
@@ -32,7 +32,8 @@ Page({
tiledMinDate: new Date(2012, 0, 10).getTime(),
tiledMaxDate: new Date(2012, 2, 20).getTime(),
confirmText: undefined,
- confirmDisabledText: undefined
+ confirmDisabledText: undefined,
+ firstDayOfWeek: 0,
},
onConfirm(event) {
@@ -40,7 +41,9 @@ Page({
this.setData({ showCalendar: false });
this.setData({
- [`date.${this.data.id}`]: Array.isArray(event.detail) ? event.detail.map(date => date.valueOf()) : event.detail.valueOf()
+ [`date.${this.data.id}`]: Array.isArray(event.detail)
+ ? event.detail.map((date) => date.valueOf())
+ : event.detail.valueOf(),
});
},
@@ -83,7 +86,7 @@ Page({
formatter: null,
showConfirm: true,
confirmText: '确定',
- confirmDisabledText: null
+ confirmDisabledText: null,
});
},
@@ -93,7 +96,7 @@ Page({
const data = {
id,
type,
- showCalendar: true
+ showCalendar: true,
};
switch (id) {
@@ -150,5 +153,5 @@ Page({
}
return day;
- }
+ },
});
diff --git a/example/pages/calendar/index.wxml b/example/pages/calendar/index.wxml
index c4a5ac99..2c351681 100644
--- a/example/pages/calendar/index.wxml
+++ b/example/pages/calendar/index.wxml
@@ -112,6 +112,7 @@
show-confirm="{{ false }}"
min-date="{{ tiledMinDate }}"
max-date="{{ tiledMaxDate }}"
+ first-day-of-week="{{ firstDayOfWeek }}"
class="tiled-calendar"
/>
@@ -129,6 +130,7 @@
show-confirm="{{ showConfirm }}"
confirm-text="{{ confirmText }}"
confirm-disabled-text="{{ confirmDisabledText }}"
+ first-day-of-week="{{ firstDayOfWeek }}"
bind:confirm="onConfirm"
bind:select="onSelect"
bind:unselect="onUnselect"
diff --git a/packages/calendar/README.md b/packages/calendar/README.md
index 4fc139f9..30a2122f 100644
--- a/packages/calendar/README.md
+++ b/packages/calendar/README.md
@@ -234,6 +234,14 @@ Page({
```
+### 自定义周起始日
+
+通过 `first-day-of-week` 属性设置一周从哪天开始。
+
+```html
+
+```
+
### 平铺展示
将`poppable`设置为`false`,日历会直接展示在页面内,而不是以弹层的形式出现。
@@ -274,6 +282,7 @@ Page({
| show-confirm | 是否展示确认按钮 | _boolean_ | `true` |
| confirm-text | 确认按钮的文字 | _string_ | `确定` |
| confirm-disabled-text | 确认按钮处于禁用状态时的文字 | _string_ | `确定` |
+| first-day-of-week | 设置周起始日 | _0~6_ | `0` |
### Poppable Props
diff --git a/packages/calendar/calendar.wxml b/packages/calendar/calendar.wxml
index 26938c1a..4872e191 100644
--- a/packages/calendar/calendar.wxml
+++ b/packages/calendar/calendar.wxml
@@ -4,6 +4,7 @@
showTitle="{{ showTitle }}"
subtitle="{{ subtitle }}"
showSubtitle="{{ showSubtitle }}"
+ firstDayOfWeek="{{ firstDayOfWeek }}"
>
@@ -31,6 +32,7 @@
showSubtitle="{{ showSubtitle }}"
allowSameDay="{{ allowSameDay }}"
showMonthTitle="{{ index !== 0 || !showSubtitle }}"
+ firstDayOfWeek="{{ firstDayOfWeek }}"
bind:click="onClickDay"
/>
diff --git a/packages/calendar/components/header/index.ts b/packages/calendar/components/header/index.ts
index b64b70b0..2b1b4c23 100644
--- a/packages/calendar/components/header/index.ts
+++ b/packages/calendar/components/header/index.ts
@@ -9,11 +9,31 @@ VantComponent({
subtitle: String,
showTitle: Boolean,
showSubtitle: Boolean,
+ firstDayOfWeek: {
+ type: Number,
+ observer: 'initWeekDay',
+ },
},
data: {
- weekdays: ['日', '一', '二', '三', '四', '五', '六'],
+ weekdays: [] as Array,
},
- methods: {},
+ created() {
+ this.initWeekDay();
+ },
+
+ methods: {
+ initWeekDay() {
+ const defaultWeeks = ['日', '一', '二', '三', '四', '五', '六'];
+ const firstDayOfWeek = this.data.firstDayOfWeek || 0;
+
+ this.setData({
+ weekdays: [
+ ...defaultWeeks.slice(firstDayOfWeek, 7),
+ ...defaultWeeks.slice(0, firstDayOfWeek),
+ ],
+ });
+ },
+ },
});
diff --git a/packages/calendar/components/month/index.ts b/packages/calendar/components/month/index.ts
index 913d4d19..812893dd 100644
--- a/packages/calendar/components/month/index.ts
+++ b/packages/calendar/components/month/index.ts
@@ -42,6 +42,10 @@ VantComponent({
type: null,
observer: 'setDays',
},
+ firstDayOfWeek: {
+ type: Number,
+ observer: 'setDays',
+ },
allowSameDay: Boolean,
showSubtitle: Boolean,
showMonthTitle: Boolean,
diff --git a/packages/calendar/components/month/index.wxml b/packages/calendar/components/month/index.wxml
index 55bab83f..4a2c47c9 100644
--- a/packages/calendar/components/month/index.wxml
+++ b/packages/calendar/components/month/index.wxml
@@ -14,7 +14,7 @@