Ant Design Vue or AntD Vue, is a useful UI framework made for Vue.js.
In this article, we’ll look at how to use it in our Vue apps.
Checkbox Groups
We can add checkbox groups with various options.
For example, we can write:
<template>
<div>
<a-checkbox-group
v-model="value"
name="checkboxgroup"
:options="plainOptions"
@change="onChange"
/>
<br>
<a-checkbox-group :options="plainOptions" :default-value="['Apple']" @change="onChange"/>
<br>
<a-checkbox-group :options="options" :value="['Pear']" @change="onChange"/>
<br>
<a-checkbox-group
:options="optionsWithDisabled"
disabled
:default-value="['Apple']"
@change="onChange"
>
<span slot="label" slot-scope="{ value }" style="color: red">{{ value }}</span>
</a-checkbox-group>
</div>
</template>
<script>
const plainOptions = ["Apple", "Pear", "Orange"];
const options = [
{ label: "Apple", value: "Apple" },
{ label: "Pear", value: "Pear" },
{ label: "Orange", value: "Orange" }
];
const optionsWithDisabled = [
{ value: "Apple" },
{ label: "Pear", value: "Pear" },
{ label: "Orange", value: "Orange", disabled: false }
];
export default {
data() {
return {
plainOptions,
options,
optionsWithDisabled,
value: []
};
},
methods: {
onChange(checkedValues) {
console.log(checkedValues);
console.log(this.value);
}
}
};
</script>
The a-checkbox-group lets us set various options.
v-model binds the checkbox to a reactive property.
options has an array of options. It can be an array of strings.
And it can have array of objects with the label and value properties.
label has the labels and value has the values.
Date Picker
We can add a date picker with the a-date-picker component.
For example, we can write:
<template>
<div>
<a-date-picker @change="onChange"/>
<br>
<a-month-picker placeholder="Select month" @change="onChange"/>
</div>
</template>
<script>
export default {
methods: {
onChange(date, dateString) {
console.log(date, dateString);
}
}
};
</script>
The a-month-picker component lets us select the month.
The change event is emitted with the date with selected date object.
And the dateString has the string representation of the date.
It also comes with the a-range-picker and a-week-picker to select the date range and the week:
<template>
<div>
<a-range-picker @change="onChange"/>
<br>
<a-week-picker placeholder="Select week" @change="onChange"/>
</div>
</template>
<script>
export default {
methods: {
onChange(date, dateString) {
console.log(date, dateString);
}
}
};
</script>
Customized Date Rendering
The rendering of the selected date can be changed by populating the dateRender slot:
<template>
<div>
<a-date-picker>
<template slot="dateRender" slot-scope="current, today">
<div class="ant-calendar-date" :style="getCurrentStyle(current, today)">{{ current.date() }}</div>
</template>
</a-date-picker>
<a-range-picker>
<template slot="dateRender" slot-scope="current">
<div class="ant-calendar-date" :style="getCurrentStyle(current)">{{ current.date() }}</div>
</template>
</a-range-picker>
<a-week-picker>
<template slot="dateRender" slot-scope="current">
<div class="ant-calendar-date" :style="getCurrentStyle(current)">{{ current.date() }}</div>
</template>
</a-week-picker>
</div>
</template>
<script>
export default {
methods: {
getCurrentStyle(current, today) {
const style = {};
if (current.date() === 1) {
style.border = "1px solid #1890ff";
style.borderRadius = "50%";
}
return style;
}
}
};
</script>
We set the styles with the getCurrentStyle method.
It takes the current and today parameters to set the border of the date according to whether it’s selected or not.
current.date() has the day of the month. So we render the first of the month with a circle border.
Conclusion
We can add checkbox groups and date pickers to let us add checkboxes and select dates.