<a-tree-select
v-decorator="['orgCode', { rules: [{ required: true, message: '不考勤日期!' }] }]"
style="width: 100%"
:tree-data="treeData"
tree-checkable
:show-checked-strategy="SHOW_PARENT"
search-placeholder="Please select"
/>
import { TreeSelect } from 'ant-design-vue'
import moment from 'moment'
const SHOW_PARENT = TreeSelect.SHOW_PARENT
treeData: [],
dataarr1: [],
dataarr2: [],
SHOW_PARENT,
begin() {
this.datatime(this.dataarr1,moment().year())
this.datatime(this.dataarr2,moment().year()+1)
this.treeData = this.dataarr1.concat(this.dataarr2)
},
datatime(arr,year) {
for (let i = 1; i <= 12; i++) {
arr.push({
title: year + '-' + (i >= 10 ? i : '0' + i),
value: year + '-' + (i >= 10 ? i : '0' + i),
key: year + '-' + (i >= 10 ? i : '0' + i),
month: i,
children: [],
})
}
arr.forEach((el) => {
if (
el.month == 1 ||
el.month == 3 ||
el.month == 5 ||
el.month == 7 ||
el.month == 8 ||
el.month == 10 ||
el.month == 12
) {
for (let i = 1; i <= 31; i++) {
el.children.push({
title: el.value + '-' + (i >= 10 ? i : '0' + i),
value: el.value + '-' + (i >= 10 ? i : '0' + i),
key: el.value + '-' + (i >= 10 ? i : '0' + i),
day: i,
})
}
} else if (el.month == 4 || el.month == 6 || el.month == 9 || el.month == 11) {
for (let i = 1; i <= 30; i++) {
el.children.push({
title: el.value + '-' + (i >= 10 ? i : '0' + i),
value: el.value + '-' + (i >= 10 ? i : '0' + i),
key: el.value + '-' + (i >= 10 ? i : '0' + i),
day: i,
})
}
} else {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
for (let i = 1; i <= 29; i++) {
el.children.push({
title: el.value + '-' + (i >= 10 ? i : '0' + i),
value: el.value + '-' + (i >= 10 ? i : '0' + i),
key: el.value + '-' + (i >= 10 ? i : '0' + i),
day: i,
})
}
} else {
for (let i = 1; i <= 28; i++) {
el.children.push({
title: el.value + '-' + (i >= 10 ? i : '0' + i),
value: el.value + '-' + (i >= 10 ? i : '0' + i),
key: el.value + '-' + (i >= 10 ? i : '0' + i),
day: i,
})
}
}
}
})
},
