|
<script>
import Vue from "vue";
import { CheckBox } from "@syncfusion/ej2-buttons";
Vue.use(SchedulePlugin);
var editorTemplateVue = Vue.component("editorTemplate", {
template: `<table class="custom-event-editor" width="100%" cellpadding="5">
<tbody>
<tr>
<td class="e-textlabel">AllDay</td>
<td colspan="4">
<input id="IsAllDay" class="e-field" type="text" name="IsAlDay" />
</td>
</tr>
</tbody>
</table>`,
data() {
return {
data: {},
};
},
});
export default {
data() {
return {
editorTemplate: function (e) {
return {
template: editorTemplateVue,
};
},
};
},
methods: {
onPopupOpen: function (args) {
if (args.type === "Editor") {
let allDayEle = args.element.querySelector("#IsAllDay");
if (!allDayEle.classList.contains("e-checkbox")) {
let scheduleObj = this.$refs.scheduleObj.ej2Instances;
if (scheduleObj.currentView === "Month" || args.target.classList.contains("e-header-cells") || args.target.classList.contains("e-all-day-cells") || args.target.classList.contains("e-all-day-appointment")) {
new CheckBox({ checked: true, change: this.onCheck }, allDayEle);
} else {
new CheckBox({ checked: false, change: this.onCheck }, allDayEle);
}
}
}
},
onCheck(args) {
if (args.checked === true) {
document.querySelectorAll(".e-time-icon")[1].classList.add("e-icon-disable");
document.querySelectorAll(".e-time-icon")[0].classList.add("e-icon-disable");
document.querySelector("#StartTime").ej2_instances[0].format = "M/d/yy";
document.querySelector("#EndTime").ej2_instances[0].format = "M/d/yy";
document.querySelector("#StartTime").ej2_instances[0].value.setHours(0, 0, 0);
document.querySelector("#EndTime").ej2_instances[0].value.setDate(document.querySelector("#StartTime").ej2_instances[0].value.getDate() + 1);
document.querySelector("#EndTime").ej2_instances[0].value.setHours(0, 0, 0);
document.querySelector("#StartTime").ej2_instances[0].dataBind();
} else {
document.querySelectorAll(".e-time-icon")[1].classList.remove("e-icon-disable");
document.querySelectorAll(".e-time-icon")[0].classList.remove("e-icon-disable")
document.querySelector("#StartTime").ej2_instances[0].format = "M/d/yy h:mm a"
document.querySelector("#EndTime").ej2_instances[0].format = "M/d/yy h:mm a";
document.querySelector("#StartTime").ej2_instances[0].dataBind();
}
},
},
provide: {
schedule: [Day, Week, WorkWeek, Month],
},
};
</script> |