|
|
@@ -7,6 +7,7 @@ import Utils from '@/utils/util'
|
|
|
import { findAllByCurrUserId, saveCalendarInfos, removeCalendarInfos } from '@/api/detection/newHomeApi'
|
|
|
import { delQuickNavigation, addQuickNavigation, getQuickNavigation } from '@/api/platform/message/innerMessage'
|
|
|
import newPng from '@/assets/images/homepage/new.png'
|
|
|
+import ScheduleAdd from '@/views/system/dashboard/templates/scheduleAdd'
|
|
|
|
|
|
/**
|
|
|
* 创建组件
|
|
|
@@ -16,7 +17,8 @@ export function buildComponent (name, column, preview) {
|
|
|
return {
|
|
|
name: name,
|
|
|
components: {
|
|
|
- VueDraggable: () => import('vuedraggable')
|
|
|
+ VueDraggable: () => import('vuedraggable'),
|
|
|
+ ScheduleAdd
|
|
|
},
|
|
|
props: {
|
|
|
params: {
|
|
|
@@ -30,6 +32,10 @@ export function buildComponent (name, column, preview) {
|
|
|
visible: {
|
|
|
type: Boolean,
|
|
|
default: false
|
|
|
+ },
|
|
|
+ fullCalendar: {
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
}
|
|
|
},
|
|
|
filters: {
|
|
|
@@ -136,7 +142,10 @@ export function buildComponent (name, column, preview) {
|
|
|
disabled: false,
|
|
|
animation: 200,
|
|
|
axis: 'y'
|
|
|
- }
|
|
|
+ },
|
|
|
+ calendarToolbar:this.fullCalendar ? [{key: 'refresh'}]: [{key: 'refresh'}, {key: 'fullscreen'}, {key: 'collapse'}],
|
|
|
+ calendarDialogVisible: false,
|
|
|
+ calendarDialogForm: {},
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -288,7 +297,7 @@ export function buildComponent (name, column, preview) {
|
|
|
config.headerToolbar = {
|
|
|
start: '',
|
|
|
center: 'title',
|
|
|
- end: 'prev,next,today,dayGridMonth,listMonth'
|
|
|
+ end: 'prev,next,today'
|
|
|
// end: 'prev,next,today,month,agendaWeek,agendaDay,listWeek'
|
|
|
}
|
|
|
delete config['dayMaxEvents']
|
|
|
@@ -490,6 +499,69 @@ export function buildComponent (name, column, preview) {
|
|
|
return val.slice(0, length - 2) + '...'
|
|
|
}
|
|
|
return val
|
|
|
+ },
|
|
|
+ // 关闭指定弹框
|
|
|
+ handleCloseCalendarDialog (state) {
|
|
|
+ switch (state) {
|
|
|
+ case 'calendar':
|
|
|
+ this.calendarDialogVisible = false
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 打开指定弹框
|
|
|
+ handleOpen (state, dateArr, events) {
|
|
|
+ const status = ['急', '重', '轻', '缓']
|
|
|
+ const eventTrees = []
|
|
|
+ console.log('517 events',events)
|
|
|
+ switch (state) {
|
|
|
+ case 'calendar':
|
|
|
+ this.calendarDialogVisible = true
|
|
|
+ for (const i of events) {
|
|
|
+ // 根据指定日期A获取A在时间区间内的数据
|
|
|
+ if (!((this.compareDates(i.start, dateArr[1]) > 0) || (this.compareDates(i.jieShuShiJian, dateArr[0]) < 0))) {
|
|
|
+ i.label = i.zhuangTai?`【${status[Number(i.zhuangTai) - 1] ? status[Number(i.zhuangTai) - 1] : ''}】` + i.title:i.title
|
|
|
+ eventTrees.push(i)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (eventTrees.length) {
|
|
|
+ this.calendarDialogForm = {
|
|
|
+ eventTrees
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.calendarDialogForm = {
|
|
|
+ eventTrees: []
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.calendarDialogForm.clickedDate = dateArr[0]
|
|
|
+ this.calendarDialogForm.clickedId = events.
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * date1(2024-01-01) 大于 date2(2023-01-01) 返回 1
|
|
|
+ * date1 小于 date2 返回 -1
|
|
|
+ * date1 等于 date2 返回 0
|
|
|
+ */
|
|
|
+ compareDates (date1, date2) {
|
|
|
+ var time1 = new Date(date1).getTime()
|
|
|
+ var time2 = new Date(date2).getTime()
|
|
|
+ return Math.sign(time1 - time2) // 使用Math.sign()函数返回值为 -1, 0, 1
|
|
|
+ },
|
|
|
+ // 日历弹框组件保存时候的回调
|
|
|
+ handleSaveData (param) {
|
|
|
+ if (param.state === 'calendar') {
|
|
|
+ this.$refs.myCalendar[0].setCalendarEvents(param)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 日历弹框组件删除日程时候的回调
|
|
|
+ handleDelData (param) {
|
|
|
+ if (param.state === 'calendar') {
|
|
|
+ this.$refs.myCalendar[0].hanldeCalendardel(param)
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
template: column.templateHtml !== '' ? `${column.templateHtml}` : `<div></div>`
|