赞
踩
Vue使用FullCalendar实现日历/周历/月历
需求背景:项目上遇到新需求,要求实现工单以日/周/月历形式展示。而且要求不同工单根据状态显示不同颜色,一个工单内部,需要以不同颜色显示三个阶段。
日历
周历
月历
"@fullcalendar/core": "^6.1.14",
"@fullcalendar/daygrid": "^6.1.14",
"@fullcalendar/interaction": "^6.1.14",
"@fullcalendar/timegrid": "^6.1.14",
"@fullcalendar/vue": "^6.1.14",
"moment": "^2.30.1",
html
<!-- 日程部分--> <div style="box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);padding: 10px;"> <FullCalendar :options="calendarOptions" ref="FullCalendar"> <template v-slot:eventContent='arg'> <el-tooltip class="box-item" effect="dark" placement="top-start" > <template #content> <span > {{ formmatTime(arg.event.start) }}~{{ formmatTime(arg.event.end) }} {{ arg.event.extendedProps.reportId }} {{ arg.event.title }} </span> </template> <div class="test-div" v-if="viewType!='dayGridMonth'"> <div class="info-part"> <div class="info-desc">{{ formmatTime(arg.event.start) }}~{{ formmatTime(arg.event.end) }}</div> <div class="info-desc">{{ arg.event.extendedProps.reportId }}</div> <div class="info-desc">{{ arg.event.title }}</div> </div> <div class="mid-block" v-if="arg.event.id == 1||arg.event.id == 5||arg.event.id == 6" :style="getStandLen(arg.event,'top')"> 去程 </div> <div class="mid-block" v-if="arg.event.id == 1||arg.event.id == 5||arg.event.id == 6" :style="getStandLen(arg.event,'mid')"> 工作 </div> <div class="mid-block" v-if="arg.event.id == 1||arg.event.id == 5||arg.event.id == 6" :style="getStandLen(arg.event,'bottom')"> 返程 </div> </div> <div class="test-div test-div22" v-if="viewType=='dayGridMonth'"> <div class="info-part-month" :style="{background:arg.event.backgroundColor}"> {{ formmatTime(arg.event.start) }}~{{ formmatTime(arg.event.end) }} <!-- {{ arg.event.start }}~{{ arg.event.end }} --> </div> </div> </el-tooltip> </template> </FullCalendar> <!-- 点击会议弹窗内容 --> <div v-if="selectedEvent"> <el-dialog :close-on-click-modal="true" :visible="this.showDialog" @close="closeDialog()" title="日程详情"> <h3>{{ this.selectedEvent.title }}</h3> <p>开始时间:{{ this.selectedEvent.start }}</p> <p>结束时间:{{ this.selectedEvent.end }}</p> <p>内容:{{ this.selectedEvent.context }}</p> <p>职位:{{ this.selectedEvent.zw }}</p> <p>性别:{{ this.selectedEvent.sex }}</p> <p>年龄:{{ this.selectedEvent.age }}</p> </el-dialog> </div>
data&&methods
data() { return { //监听到的当前view模式 viewType:'', //普通查询时间 queryStartDate: null, //日程弹窗开关 showDialog: false, //日程弹窗内容 selectedEvent: null, //抽屉窗开关 drawer: false, //日程内容集合 meetingArr:meetingArr, calendarOptions: { allDaySlot:false,//是否在日历上方显示all-day(全天) axisFormat:'h(:mm)tt', // 加载的视图 plugins: [dayGridPlugin, timeGridPlugin, interactionPlugin], // 视图类型 初始显示的视图 视图名称规则 比如dayGridPlugin去掉Plugin 加上Month或者Week或者Day initialView: 'dayGridMonth',//dayGridMonth timeGridWeek timeGridDay // 语言选项 设置为中文后 部分文本会替换为中文 但是不全面 locale: 'zh-cn', firstDay: 1, firstHour:1, //无用 // slotMinutes:10,//在agenda的视图中, 两个时间之间的间隔(分钟) 无用 handleWindowResize:true,//是否随浏览器窗口大小变化而自动 contentHeight:'600px', //设置日历主体内容的高度,不包括header部分 aspectRatio:2,//日历单元格宽高比 dayMaxEvents:true,//时间中网格内容高度超出单元格高度时,是否折叠,如果选择false,则会完全展开网格内容,并自动撑开日历单元格高度 eventLimit:true,// 设置月日程,与all-day slot 的最大显示数量,超过的通过弹窗展示 selectEventOverlap:false,// 相同时间段的多个日程视觉上是否允许重叠,默认为true,允许 无用 slotEventOverlap:false,//设置视图中的事件显示是否可以重叠覆盖 有用 // 配置日历头部 // 按钮: prev为切换(上)下一月(/周/日) next today 跳转到今天 // 文本: title 年月(YYYY-MM) // 按钮: dayGridMonth月 timeGridWeek周 timeGridDay日 headerToolbar: { left: 'prev,next today', center: 'title', right: 'dayGridMonth,timeGridWeek,timeGridDay', }, eventTimeFormat: { // like '14:30:00' hour: "2-digit", minute: "2-digit", meridiem: false, hour12: false, // 设置时间为24小时 }, // 设置各种按钮的文字 默认是英文的 buttonText: { today: '今天', month: '月', week: '周', day: '日', list: '表' }, customButtons: { prev: { click: () => { this.prevWeekClick(); } }, next: { click: () => { this.nextWeekClick(); } } }, // 初始就存在的事件【日程内容】 initialEvents: [], // 是否可拖拽 editable: false, // 是否可选择添加 selectable: true, datesSet:this.datesSet, //日期渲染;修改日期范围后触发 // 选择时触发函数 select: this.handleDateSelect, // 点击事项触发函数 eventClick: this.handleEventClick, // 移动事项或者拓展事项时间触发函数 eventsSet: this.handleEvents, // 全天行 的文本显示内容 // allDayText: '全天', // 最小时间 slotMinTime: '00:00:00', // 最大时间 slotMaxTime: '23:59:59', // 是否可以进行(拖动、缩放)修改 //editable: false, }, }; }, methods: { datesSet(info) { //注意:该方法在页面初始化时就会触发一次 console.log('间接监听view的变化',info.view.type) this.viewType = info.view.type // this.search() //请求本页数据 Message.success('当前模式'+info.view.type); }, // 向前点击 prevWeekClick(){ let calendarApi = this.$refs['FullCalendar'].getApi(); calendarApi.prev(); const startTime = calendarApi.view.activeStart; const endTime = calendarApi.view.activeEnd; console.log(startTime,endTime); }, // 向后点击 nextWeekClick(){ let calendarApi = this.$refs['FullCalendar'].getApi(); calendarApi.next(); const startTime = calendarApi.view.activeStart; const endTime = calendarApi.view.activeEnd; console.log(startTime,endTime); }, //UTC时间去掉T formmatTime(time){ const utcTimestamp = time; const date = new Date(utcTimestamp); const year = date.getUTCFullYear(); const month = String(date.getUTCMonth() + 1).padStart(2, '0'); const day = String(date.getUTCDate()).padStart(2, '0'); const hours = String(date.getUTCHours()).padStart(2, '0'); const minutes = String(date.getUTCMinutes()).padStart(2, '0'); const seconds = String(date.getUTCSeconds()).padStart(2, '0'); const formattedDateTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; return formattedDateTime }, //计算距离起点时间的距离 getStandLen(obj,type){ let styleObj = { top:0, left:0, height:0, background:'' } let startTime = new Date(obj.start).getTime(); let endTime = new Date(obj.end).getTime(); let specificTime = 0 let intervalEndTime = 0 if(type=='top'){ specificTime = new Date(obj.extendedProps.topSt).getTime(); intervalEndTime = new Date(obj.extendedProps.topEt).getTime(); styleObj.background='rgba(204, 204, 204,0.4)' }else if(type=='mid'){ specificTime = new Date(obj.extendedProps.midSt).getTime(); intervalEndTime = new Date(obj.extendedProps.midEt).getTime(); styleObj.background='rgba(255,255,0,0.4)' }else if(type=='bottom'){ specificTime = new Date(obj.extendedProps.bottomSt).getTime(); intervalEndTime = new Date(obj.extendedProps.bottomEt).getTime(); styleObj.background='rgba(229, 229, 229,0.4)' } let elapsedTimePercentage = ((specificTime - startTime) / (endTime - startTime)) * 100; let intervalPercentage = ((intervalEndTime - specificTime) / (endTime - startTime)) * 100; styleObj.top = elapsedTimePercentage?elapsedTimePercentage+'%':0 styleObj.height = intervalPercentage?intervalPercentage+'%':0 console.log('top:'+elapsedTimePercentage); // console.log(`Percentage of time interval from 03:00:00 to 04:00:00: ${intervalPercentage.toFixed(2)}%`); return styleObj }, /* 普通查询方法*/ quertStart() { let calendarApi = this.$refs.FullCalendar.getApi() //非空 if (this.queryStartDate != null) { // gotoDate方法是让当前视图跳转到指定日期的位置 calendarApi.gotoDate(this.queryStartDate) } else { //跳转到今日 calendarApi.today() } }, /* 获取指定日期范围的所有日程信息 */ toClick() { // 获取 FullCalendar 实例 const calendar = this.$refs.FullCalendar.getApi(); // 定义搜索范围的起始和结束时间 const startDate = moment("2015-06-06"); const endDate = moment("2028-06-08"); // 获取日历中的所有事件 const events = calendar.getEvents(); // 根据范围条件筛选事件 const filteredEvents = events.filter(event => { // 获取事件的开始时间和结束时间 const eventStart = moment(event.start); const eventEnd = moment(event.end); // 判断事件是否在范围内 return eventStart.isBetween(startDate, endDate, null, '[]') || eventEnd.isBetween(startDate, endDate, null, '[]'); }); // 处理筛选出的事件 console.log(filteredEvents); }, /* 点击会议弹窗具体内容*/ handleEventClick(info) { // 获取点击的事件对象 const event = info.event; // 更新选中的事件 this.selectedEvent = { title: event.title, start: moment(event.start).format('YYYY-MM-DD HH:mm'), end: moment(event.end).format('YYYY-MM-DD HH:mm'), zw: event.extendedProps.zw, context: event.extendedProps.context, age: event.extendedProps.age, sex: event.extendedProps.sex }; console.info(info) console.info(this.selectedEvent) //开启弹窗 this.showDialog = true }, // handleDateSelect(info){ const event = info.event; console.log('信息',info) Message.success('点击日期'+info.startStr+'-'+info.endStr); }, /* 关闭日程弹窗方法*/ closeDialog() { this.showDialog = false }, /* 申请会议按钮 */ toMeetingClick() { //根据自己的业务进行处理... } },
event事件数据
const today = new Date(); const year = today.getFullYear(); const month = String(today.getMonth() + 1).padStart(2, '0'); const day = String(today.getDate()).padStart(2, '0'); const formattedDate = `${year}-${month}-${day}`; const formattedDateTomrrow = `${year}-${month}-${Number(day)+1}` const formattedDateAfterTomrrow = `${year}-${month}-${Number(day)+2}` const formattedDateYestoday = `${year}-${month}-${Number(day)-1}` const formattedDateBeforeYestoday = `${year}-${month}-${Number(day)-2}` let meetingArr = [ { id: 1, reportId:'SR20240527435908', title: `机器维修单`, start: formattedDate + 'T00:00:00', end: formattedDate + 'T23:59:59', context: '自定义的内容', color:'rgba(43,177,76,0.8)', textColor:'#fff', age: 18, sex: '男', zw: '董事长', // 开始时段 topSt:formattedDate + 'T02:30:00', topEt:formattedDate + 'T03:00:00', //中间时段 midSt:formattedDate + 'T03:30:00', midEt:formattedDate + 'T04:30:00', //结束时段 bottomSt:formattedDate + 'T05:30:00', bottomEt:formattedDate + 'T06:00:00', }, { id: 5, reportId:'SR20240527435999', title: `机器维修单`, start: formattedDate + 'T01:30:00', end: formattedDate + 'T06:30:00', context: '自定义的内容', color:'rgba(43,177,76,0.8)', textColor:'#fff', age: 18, sex: '男', zw: '董事长', // 开始时段 topSt:formattedDate + 'T02:30:00', topEt:formattedDate + 'T03:00:00', //中间时段 midSt:formattedDate + 'T03:30:00', midEt:formattedDate + 'T04:30:00', //结束时段 bottomSt:formattedDate + 'T05:30:00', bottomEt:formattedDate + 'T06:00:00', }, { id: 6, reportId:'SR20240527435777', title: `机器维修单`, start: formattedDate + 'T01:30:00', end: formattedDate + 'T06:30:00', context: '自定义的内容', color:'rgba(43,177,76,0.8)', textColor:'#fff', age: 18, sex: '男', zw: '董事长', // allDay:true, // 开始时段 topSt:formattedDate + 'T02:30:00', topEt:formattedDate + 'T03:00:00', //中间时段 midSt:formattedDate + 'T03:30:00', midEt:formattedDate + 'T04:30:00', //结束时段 bottomSt:formattedDate + 'T05:30:00', bottomEt:formattedDate + 'T06:00:00', }, { id: 7, reportId:'IN202405094357333', title: `机器安装单`, color:'rgba(63,72,204,0.8)', start: formattedDate + 'T07:30:00', end: formattedDate + 'T08:30:00', }, { id: 2, reportId:'IN20240509435732', title: `机器安装单`, color:'rgba(63,72,204,0.8)', start: formattedDate + 'T13:00:00', end: formattedDate + 'T14:20:00', }, { id: 3, reportId:'CIN20240604436001', title: `合同加装单`, color:'rgba(112,146,190,0.8)', start: formattedDate + 'T15:10:00', end: formattedDate + 'T16:10:00', }, { id: 3, reportId:'PLF2023032415233400000111', title: `客户报修单`, color:'rgba(43,177,76,0.8)', start: formattedDate + 'T16:00:00', end: formattedDate + 'T17:10:00', }, { id: 4, reportId:'CIN20240604436001', title: `合同加装单`, color:'rgba(112,146,190,0.8)', start: formattedDate + 'T17:30:00', end: formattedDate + 'T18:10:00', }, //明天 { id: 8, reportId:'SR20240527435908', title: `机器维修单`, start: formattedDateTomrrow + 'T00:00:00', end: formattedDateTomrrow + 'T23:59:59', context: '自定义的内容', color:'rgba(43,177,76,0.8)', textColor:'#fff', age: 18, sex: '男', zw: '董事长', // 开始时段 topSt:formattedDateTomrrow + 'T02:30:00', topEt:formattedDateTomrrow + 'T03:00:00', //中间时段 midSt:formattedDateTomrrow + 'T03:30:00', midEt:formattedDateTomrrow + 'T04:30:00', //结束时段 bottomSt:formattedDateTomrrow + 'T05:30:00', bottomEt:formattedDateTomrrow + 'T06:00:00', }, { id: 9, reportId:'SR20240527435999', title: `机器维修单`, start: formattedDateTomrrow + 'T01:30:00', end: formattedDateTomrrow + 'T06:30:00', context: '自定义的内容', color:'rgba(43,177,76,0.8)', textColor:'#fff', age: 18, sex: '男', zw: '董事长', // 开始时段 topSt:formattedDateTomrrow + 'T02:30:00', topEt:formattedDateTomrrow + 'T03:00:00', //中间时段 midSt:formattedDateTomrrow + 'T03:30:00', midEt:formattedDateTomrrow + 'T04:30:00', //结束时段 bottomSt:formattedDateTomrrow + 'T05:30:00', bottomEt:formattedDateTomrrow + 'T06:00:00', }, { id: 10, reportId:'IN202405094357333', title: `机器安装单`, color:'rgba(63,72,204,0.8)', start: formattedDateTomrrow + 'T07:30:00', end: formattedDateTomrrow + 'T08:30:00', }, { id: 11, reportId:'IN20240509435732', title: `机器安装单`, color:'rgba(63,72,204,0.8)', start: formattedDateTomrrow + 'T13:00:00', end: formattedDateTomrrow + 'T14:20:00', }, { id: 12, reportId:'CIN20240604436001', title: `合同加装单`, color:'rgba(112,146,190,0.8)', start: formattedDateTomrrow + 'T15:10:00', end: formattedDateTomrrow + 'T16:10:00', }, { id: 13, reportId:'PLF2023032415233400000111', title: `客户报修单`, color:'rgba(43,177,76,0.8)', start: formattedDateTomrrow + 'T16:00:00', end: formattedDateTomrrow + 'T17:10:00', }, { id: 14, reportId:'CIN20240604436001', title: `合同加装单`, color:'rgba(112,146,190,0.8)', start: formattedDateTomrrow + 'T17:30:00', end: formattedDateTomrrow + 'T18:10:00', }, //后天 { id: 8, reportId:'SR20240527435908', title: `机器维修单`, start: formattedDateAfterTomrrow + 'T00:00:00', end: formattedDateAfterTomrrow + 'T23:59:59', context: '自定义的内容', color:'rgba(43,177,76,0.8)', textColor:'#fff', age: 18, sex: '男', zw: '董事长', // 开始时段 topSt:formattedDateAfterTomrrow + 'T02:30:00', topEt:formattedDateAfterTomrrow + 'T03:00:00', //中间时段 midSt:formattedDateAfterTomrrow + 'T03:30:00', midEt:formattedDateAfterTomrrow + 'T04:30:00', //结束时段 bottomSt:formattedDateAfterTomrrow + 'T05:30:00', bottomEt:formattedDateAfterTomrrow + 'T06:00:00', }, { id: 9, reportId:'SR20240527435999', title: `机器维修单`, start: formattedDateAfterTomrrow + 'T01:30:00', end: formattedDateAfterTomrrow + 'T06:30:00', context: '自定义的内容', color:'rgba(43,177,76,0.8)', textColor:'#fff', age: 18, sex: '男', zw: '董事长', // 开始时段 topSt:formattedDateAfterTomrrow + 'T02:30:00', topEt:formattedDateAfterTomrrow + 'T03:00:00', //中间时段 midSt:formattedDateAfterTomrrow + 'T03:30:00', midEt:formattedDateAfterTomrrow + 'T04:30:00', //结束时段 bottomSt:formattedDateAfterTomrrow + 'T05:30:00', bottomEt:formattedDateAfterTomrrow + 'T06:00:00', }, { id: 10, reportId:'IN202405094357333', title: `机器安装单`, color:'rgba(63,72,204,0.8)', start: formattedDateAfterTomrrow + 'T07:30:00', end: formattedDateAfterTomrrow + 'T08:30:00', }, { id: 11, reportId:'IN20240509435732', title: `机器安装单`, color:'rgba(63,72,204,0.8)', start: formattedDateAfterTomrrow + 'T13:00:00', end: formattedDateAfterTomrrow + 'T14:20:00', }, { id: 12, reportId:'CIN20240604436001', title: `合同加装单`, color:'rgba(112,146,190,0.8)', start: formattedDateAfterTomrrow + 'T15:10:00', end: formattedDateAfterTomrrow + 'T16:10:00', }, { id: 13, reportId:'PLF2023032415233400000111', title: `客户报修单`, color:'rgba(43,177,76,0.8)', start: formattedDateAfterTomrrow + 'T16:00:00', end: formattedDateAfterTomrrow + 'T17:10:00', }, { id: 14, reportId:'CIN20240604436001', title: `合同加装单`, color:'rgba(112,146,190,0.8)', start: formattedDateAfterTomrrow + 'T17:30:00', end: '2024-06-16' + 'T18:10:00', }, //昨天 { id: 15, reportId:'SR20240527435908', title: `机器维修单`, start: formattedDateYestoday + 'T00:00:00', end: formattedDateYestoday + 'T23:59:59', context: '自定义的内容', color:'rgba(43,177,76,0.8)', textColor:'#fff', age: 18, sex: '男', zw: '董事长', // 开始时段 topSt:formattedDateYestoday + 'T02:30:00', topEt:formattedDateYestoday + 'T03:00:00', //中间时段 midSt:formattedDateYestoday + 'T03:30:00', midEt:formattedDateYestoday + 'T04:30:00', //结束时段 bottomSt:formattedDateYestoday + 'T05:30:00', bottomEt:formattedDateYestoday + 'T06:00:00', }, { id: 16, reportId:'SR20240527435999', title: `机器维修单`, start: formattedDateYestoday + 'T01:30:00', end: formattedDateYestoday + 'T06:30:00', context: '自定义的内容', color:'rgba(43,177,76,0.8)', textColor:'#fff', age: 18, sex: '男', zw: '董事长', // 开始时段 topSt:formattedDateYestoday + 'T02:30:00', topEt:formattedDateYestoday + 'T03:00:00', //中间时段 midSt:formattedDateYestoday + 'T03:30:00', midEt:formattedDateYestoday + 'T04:30:00', //结束时段 bottomSt:formattedDateYestoday + 'T05:30:00', bottomEt:formattedDateYestoday + 'T06:00:00', }, { id: 17, reportId:'IN202405094357333', title: `机器安装单`, color:'rgba(63,72,204,0.8)', start: formattedDateYestoday + 'T07:30:00', end: formattedDateYestoday + 'T08:30:00', }, { id: 18, reportId:'IN20240509435732', title: `机器安装单`, color:'rgba(63,72,204,0.8)', start: formattedDateYestoday + 'T13:00:00', end: formattedDateYestoday + 'T14:20:00', }, { id: 19, reportId:'CIN20240604436001', title: `合同加装单`, color:'rgba(112,146,190,0.8)', start: formattedDateYestoday + 'T15:10:00', end: formattedDateYestoday + 'T16:10:00', }, { id: 20, reportId:'PLF2023032415233400000111', title: `客户报修单`, color:'rgba(43,177,76,0.8)', start: formattedDateYestoday + 'T16:00:00', end: formattedDateYestoday + 'T17:10:00', }, { id: 21, reportId:'CIN20240604436001', title: `合同加装单`, color:'rgba(112,146,190,0.8)', start: formattedDateYestoday + 'T17:30:00', end: formattedDateYestoday + 'T18:10:00', }, //前天 { id: 22, reportId:'SR20240527435908', title: `机器维修单`, start: formattedDateBeforeYestoday + 'T00:00:00', end: formattedDateBeforeYestoday + 'T23:59:59', context: '自定义的内容', color:'rgba(43,177,76,0.8)', textColor:'#fff', age: 18, sex: '男', zw: '董事长', // 开始时段 topSt:formattedDateBeforeYestoday + 'T02:30:00', topEt:formattedDateBeforeYestoday + 'T03:00:00', //中间时段 midSt:formattedDateBeforeYestoday + 'T03:30:00', midEt:formattedDateBeforeYestoday + 'T04:30:00', //结束时段 bottomSt:formattedDateBeforeYestoday + 'T05:30:00', bottomEt:formattedDateBeforeYestoday + 'T06:00:00', }, { id: 23, reportId:'SR20240527435999', title: `机器维修单`, start: formattedDateBeforeYestoday + 'T01:30:00', end: formattedDateBeforeYestoday + 'T06:30:00', context: '自定义的内容', color:'rgba(43,177,76,0.8)', textColor:'#fff', age: 18, sex: '男', zw: '董事长', // 开始时段 topSt:formattedDateBeforeYestoday + 'T02:30:00', topEt:formattedDateBeforeYestoday + 'T03:00:00', //中间时段 midSt:formattedDateBeforeYestoday + 'T03:30:00', midEt:formattedDateBeforeYestoday + 'T04:30:00', //结束时段 bottomSt:formattedDateBeforeYestoday + 'T05:30:00', bottomEt:formattedDateBeforeYestoday + 'T06:00:00', }, { id: 24, reportId:'IN202405094357333', title: `机器安装单`, color:'rgba(63,72,204,0.8)', start: formattedDateBeforeYestoday + 'T07:30:00', end: formattedDateBeforeYestoday + 'T08:30:00', }, { id: 25, reportId:'IN20240509435732', title: `机器安装单`, color:'rgba(63,72,204,0.8)', start: formattedDateBeforeYestoday + 'T13:00:00', end: formattedDateBeforeYestoday + 'T14:20:00', }, { id: 26, reportId:'CIN20240604436001', title: `合同加装单`, color:'rgba(112,146,190,0.8)', start: formattedDateBeforeYestoday + 'T15:10:00', end: formattedDateBeforeYestoday + 'T16:10:00', }, { id: 27, reportId:'PLF2023032415233400000111', title: `客户报修单`, color:'rgba(43,177,76,0.8)', start: formattedDateBeforeYestoday + 'T16:00:00', end: formattedDateBeforeYestoday + 'T17:10:00', }, { id: 28, reportId:'CIN20240604436001', title: `合同加装单`, color:'rgba(112,146,190,0.8)', start: formattedDateBeforeYestoday + 'T17:30:00', end: formattedDateBeforeYestoday + 'T18:10:00', }, ] export default meetingArr;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。