123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <template>
- <view class="page">
- <cu-custom :backUrl="'/pages/index/index'" :isBack="true" bgColor="bg-gradual-blue" >
- <block slot="content">我的日程</block>
- </cu-custom>
- <el-calendar class="page">
- <template v-slot:dateCell="{ data }">
- <view
- @click.stop="selectHandler(data)"
- class="cell"
- :class="{ 'is-selected': data.isSelected }"
- >
- {{ data.day.split("-").slice(1).join("-") }} <br /><br />
- <!-- <div v-for="(event, index) in calendarEvents" :key="index" style="text-align: center;margin-top: -15px; overflow: hidden; white-space: nowrap;">-->
- <!-- <el-tag-->
- <!-- style="text-overflow: ellipsis; overflow: hidden; white-space: nowrap;"-->
- <!-- @click.stop="handleEventClick(event)"-->
- <!-- v-if="data.day === event.startDate.substring(0, 10)"-->
- <!-- >-->
- <!-- {{ event.title }}-->
- <!-- </el-tag>-->
- <!-- </div>-->
- <div style="text-align: center; margin-top: -15px;overflow: hidden; white-space: nowrap;">
- <el-tag
- v-for="(event, index) in calendarEvents"
- :key="index"
- :style="{ 'text-overflow': 'ellipsis', 'overflow': 'hidden', 'white-space': 'nowrap' }"
- @click.stop="handleEventClick(event)"
- v-if="data.day === event.startDate.substring(0, 10)"
- >
- {{ event.title }}
- </el-tag>
- </div>
- </view>
- </template>
- </el-calendar>
- </view>
- </template>
- <script>
- import myCalendarService from "@/api/calendar/myCalendarService";
- export default {
- data() {
- return {
- showForm: false,
- calendarDates: [], // 你的日期数据
- startDate: new Date(),
- endDate: new Date(),
- calendarEvents: [],
- };
- },
- components: {
- },
- activated() {
- this.refreshList();
- },
- methods: {
- // 选择月份
- selectHandler(data) {
- this.startDate = data.day;
- this.endDate = data.day;
- // 使用 $nextTick 确保组件已经准备好
- // this.$nextTick(() => {
- // this.$refs.myCalendarForm.init(
- // "add",
- // "",
- // this.startDate,
- // this.endDate
- // );
- // });
- uni.navigateTo({
- url: '/pages/calendar/MyCalendarForm?method=' + 'add' + '&startDate=' + this.startDate + '&endDate=' + this.endDate // DialogPage 对应的页面路径
- });
- },
- handleEventClick(info) {
- uni.navigateTo({
- url: '/pages/calendar/MyCalendarForm?id=' + info.id + '&method=' + 'edit' // DialogPage 对应的页面路径
- });
- },
- refreshList() {
- myCalendarService.list().then((data) => {
- this.calendarEvents = data;
- });
- },
- formatStartDate(date) {
- const formattedDate = new Date(date);
- const year = formattedDate.getFullYear();
- const month = String(formattedDate.getMonth() + 1).padStart(2, '0');
- const day = String(formattedDate.getDate()).padStart(2, '0');
- const hours = String(formattedDate.getHours()).padStart(2, '0');
- const minutes = String(formattedDate.getMinutes()).padStart(2, '0');
- const seconds = String(formattedDate.getSeconds()).padStart(2, '0');
- return `${year}-${month}-${day}`;
- },
- },
- };
- </script>
- <style>
- .is-selected {
- color: #1989fa;
- }
- </style>
|