diff --git a/app.json b/app.json index fba0516..a9f8eaa 100644 --- a/app.json +++ b/app.json @@ -1,5 +1,6 @@ { "pages": [ + "pages/meetingRoomList/meetingRoomList", "pages/scheduleList/scheduleList", "pages/index/index", "pages/meetingDetail/meetingDetail", @@ -7,7 +8,6 @@ "pages/createMeeting/createMeeting", "pages/outLookContact/outLookContact", "pages/place/place", - "pages/meetingRoomList/meetingRoomList", "pages/uploadFile/uploadFile", "pages/participantsDetail/participantsDetail", "pages/applicationDetails/applicationDetails", @@ -16,4 +16,4 @@ "window": { "allowsBounceVertical": "NO" } -} \ No newline at end of file +} diff --git a/components/calendar/calendar.acss b/components/calendar/calendar.acss new file mode 100755 index 0000000..80e26ce --- /dev/null +++ b/components/calendar/calendar.acss @@ -0,0 +1,182 @@ +.am-calendar { + background-color: #fff; + padding-top: 10rpx; +} + +.am-calendar-months { + display: flex; + box-sizing: border-box; + padding: 0 200rpx; + align-items: center; + height: 76rpx; +} + +.am-calendar-prev-month, .am-calendar-next-month { + display: flex; + width: 40rpx; + font-size: 32rpx; +} + +.am-calendar-prev-month { + justify-content: flex-start; +} + +.am-calendar-next-month { + justify-content: flex-end; +} + +.am-calendar-arrow { + height: 28rpx; + width: 28rpx; + background-image: url('https://gw.alipayobjects.com/zos/rmsportal/vYcMhkfyHRIOeVXWdcPe.png'); + background-size: 8rpx 14rpx; + background-position: left center; + background-repeat: no-repeat; +} + +.am-calendar-arrow_year { + width: 28rpx; + background-repeat: no-repeat; +} + +.am-calendar-arrow.next { + transform: rotate(180deg); +} + +.am-calendar-selected-month { + flex: 1; + text-align: center; + font-size: 32rpx; + font-weight: 600; + color: #1B263D; +} + +.am-calendar-days { + display: flex; + height: 26rpx; + padding-top: 28rpx; + line-height: 26rpx; + box-sizing: content-box; +} + +.am-calendar-day { + flex: 1; + text-align: center; + color: #1B263D; + font-size: 28rpx; +} + +.am-calendar-dates { + display: flex; + flex-direction: column; +} + +.am-calendar-week { + margin-bottom: 32rpx; + display: flex; + flex-direction: row; +} + +.am-calendar-week:first-child { + margin-top: 32rpx; +} + +.am-calendar-date-wrap { + position: relative; + text-align: center; + display: flex; + flex-direction: column; + align-items: center; + height: 42rpx; + flex: 1; +} + +.am-calendar-date { + text-align: center; + height: 23rpx; + line-height: 23rpx; + font-size: 28rpx; + font-family: 'Helvetica'; + color: #1B263D; +} + +.am-calendar-tag { + position: absolute; + top: 21rpx; + width: 42rpx; + overflow: hidden; + text-overflow: hidden; + white-space: nowrap; + color: #f5a623; + font-size: 10rpx; + font-weight: 500; +} + +.am-calendar-today { + color: #108ee9; +} + +.am-calendar-gray { + color: #ccc; +} + +.am-calendar-selected .am-calendar-block { + position: absolute; + left: calc(50% - 20rpx); + top: calc(50% - 12rpx); + transform: translateY(-50%); + width: 42rpx; + height: 42rpx; + background: #309EF2; + border-radius: 50%; +} + +.am-calendar-middle.is-range .am-calendar-block { + position: absolute; + left: 0; + top: calc(50% - 10rpx); + transform: translateY(-50%); + height: 42rpx; + background: #309EF2; + width: 100%; + border-radius: 0; +} + +.am-calendar-start.is-range .am-calendar-block { + position: absolute; + left: calc(50% - 21rpx); + top: calc(50% - 10rpx); + transform: translateY(-50%); + width: 100%; + height: 42rpx; + background: #309EF2; + border-radius: 2rpx 0 0 2rpx; +} + +.am-calendar-end.is-range .am-calendar-block { + position: absolute; + left: 0; + top: calc(50% - 10rpx); + transform: translateY(-50%); + width: calc(50% + 21rpx); + height: 42rpx; + background: #309EF2; + border-radius: 0 2rpx 2rpx 0; +} + +.am-calendar-selected .am-calendar-block.has-tag, .am-calendar-start .am-calendar-block.has-tag, .am-calendar-middle .am-calendar-block.has-tag, .am-calendar-end .am-calendar-block.has-tag { + top: calc(50% - 7rpx); +} + +.am-calendar-selected .am-calendar-date, .am-calendar-start .am-calendar-date, .am-calendar-middle .am-calendar-date, .am-calendar-end .am-calendar-date { + position: relative; + color: #fff; +} + +.am-calendar-selected .am-calendar-tag, .am-calendar-start .am-calendar-tag, .am-calendar-middle .am-calendar-tag, .am-calendar-end .am-calendar-tag { + color: #fff; +} + +.am-calendar-disable .am-calendar-date { + color: #999; +} \ No newline at end of file diff --git a/components/calendar/calendar.axml b/components/calendar/calendar.axml new file mode 100644 index 0000000..74c22e8 --- /dev/null +++ b/components/calendar/calendar.axml @@ -0,0 +1,53 @@ +<view class="am-calendar {{className}}" a:if="{{dates.length > 0}}"> + <view class="am-calendar-months"> + <view class="am-calendar-prev-month" onTap="onPrevYearTap" a:if="{{haveYear}}"> + <view class="am-calendar-arrow am-calendar-arrow_year"></view> + </view> + <view class="am-calendar-prev-month" onTap="onPrevMonthTap"> + <view class="am-calendar-arrow"></view> + </view> + <view class="am-calendar-selected-month">{{selectedYear}}年{{selectedMonth + 1}}月</view> + <view class="am-calendar-next-month" onTap="onNextMonthTap"> + <view class="am-calendar-arrow next"></view> + </view> + <view class="am-calendar-next-month" onTap="onNextYearTap" a:if="{{haveYear}}"> + <view class="am-calendar-arrow am-calendar-arrow_year next"></view> + </view> + </view> + <view class="am-calendar-days"> + <block a:for="{{['日', '一', '二', '三', '四', '五', '六']}}"> + <view class="am-calendar-day">{{item}}</view> + </block> + </view> + <view class="am-calendar-dates"> + <block a:for="{{dates}}"> + <view class="am-calendar-week"> + <block a:for="{{item}}"> + <view + class="am-calendar-date-wrap + {{ item.isSelected ? 'am-calendar-selected': '' }} + {{ item.isStart ? 'am-calendar-start': '' }} + {{ item.isMiddle ? 'am-calendar-middle': '' }} + {{ item.isEnd ? 'am-calendar-end': '' }} + {{ item.disable ? 'am-calendar-disable': '' }} + {{ type === 'range' ? 'is-range' : '' }}" + data-year="{{item.year}}" + data-month="{{item.month}}" + data-date="{{item.date}}" + onTap="onDateTap" + > + <view + class="am-calendar-block {{ blockType === 2 ? 'has-tag': '' }}" + ></view> + <view + class="am-calendar-date {{ item.isGray ? 'am-calendar-gray': '' }} {{ item.isToday ? 'am-calendar-today': ''}}" + >{{item.date}}</view> + <view class="am-calendar-tag" style="{{ + color: item.isSelected || item.isMiddle || item.isStart || item.isEnd ? '#fff' : (item.disable ? '#999' : item.color) + }}">{{item.disable ? '' : item.tag}}</view> + </view> + </block> + </view> + </block> + </view> +</view> \ No newline at end of file diff --git a/components/calendar/calendar.js b/components/calendar/calendar.js new file mode 100644 index 0000000..d1a751a --- /dev/null +++ b/components/calendar/calendar.js @@ -0,0 +1,486 @@ +const leapYear = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; +const commonYear = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; +const FIRST_MONTH = 0; +const LAST_MONTH = 11; +const DAYS_PER_ROW = 7; +const COLOR_MAP = { + 1: "#f5a911", + 2: "#e8541e", + 3: "#07a89b", + 4: "#108ee9", + 5: "rgba(51, 51, 51, 0.4)" +}; + +// 获取某月第某天是星期几 +function getDay(month, year, index) { + return new Date(year, month, index).getDay(); +} + +// 获取某月有几天 +function getMonthLength(month, year) { + if (year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0)) { + return leapYear[month]; + } else { + return commonYear[month]; + } +} + +// 数字补位 1 -> 01 +function prefixNum(num) { + if (num < 10) { + return `0${num}`; + } else { + return `${num}`; + } +} + +Component({ + data: { + selectedYear: 0, + selectedMonth: 0, + currentDate: null, + dates: [], + blockType: 1 // 1.没有待办纯数字 2.有待办 用于区分不同类型日期块的样式。 + }, + props: { + className: "", + tagData: [], + type: "single", + haveYear: false, + selectedDate: null + }, + didMount() { + this.tapTimes = 1; + const date = this.props.selectedDate ? new Date(this.props.selectedDate) : new Date(); + date.setHours(0); + date.setMinutes(0); + date.setSeconds(0); + date.setMilliseconds(0); + const year = date.getFullYear(); + const month = date.getMonth(); + this.setData({ + selectedYear: year, + selectedMonth: month, + currentDate: date + }); + this.refreshdates(month, year); + }, + didUpdate() { + const { dates } = this.data; + let blockType = 1; + for (let i = 0; i < dates.length; i++) { + for (let j = 0; j < dates[i].length; j++) { + if (this.hasTag(dates[i][j])) { + blockType = 2; + } + } + } + + this.setData({ + dates, + blockType + }); + }, + methods: { + onPrevYearTap() { + const { selectedMonth, selectedYear } = this.data; + let year = selectedYear; + const month = selectedMonth; + + year = selectedYear - 1; + + if (this.props.onYearChange) { + this.props.onYearChange(year, selectedYear); + } + + this.setData({ + selectedYear: year + }); + + this.refreshdates(month, year); + }, + onNextYearTap() { + const { selectedMonth, selectedYear } = this.data; + let year = selectedYear; + const month = selectedMonth; + + year = selectedYear + 1; + + if (this.props.onYearChange) { + this.props.onYearChange(year, selectedYear); + } + + this.setData({ + selectedYear: year + }); + + this.refreshdates(month, year); + }, + onPrevMonthTap() { + const { selectedMonth, selectedYear } = this.data; + let year = selectedYear; + let month = selectedMonth; + // 如果当前选中是一月份,前一月是去年的12月 + if (selectedMonth === FIRST_MONTH) { + year = selectedYear - 1; + month = LAST_MONTH; + } else { + month = selectedMonth - 1; + } + + if (this.props.onMonthChange) { + this.props.onMonthChange(month, selectedMonth); + } + + this.setData({ + selectedYear: year, + selectedMonth: month + }); + + this.refreshdates(month, year); + }, + onNextMonthTap() { + const { selectedMonth, selectedYear } = this.data; + let year = selectedYear; + let month = selectedMonth; + // 如果当前选中是十二月份,下一月是去年的12月 + if (selectedMonth === LAST_MONTH) { + year = selectedYear + 1; + month = FIRST_MONTH; + } else { + month = selectedMonth + 1; + } + + if (this.props.onMonthChange) { + this.props.onMonthChange(month, selectedMonth); + } + + this.setData({ + selectedYear: year, + selectedMonth: month + }); + + this.refreshdates(month, year); + }, + refreshdates(month, year) { + this.tapTimes = 1; + const { selectedYear, selectedMonth, currentDate } = this.data; + const firstDay = getDay(month, year, 1); + const days = getMonthLength(month, year); + const datesArray = []; + const currentDateTimeStamp = +currentDate; + let num = 0; + + for (let i = 0; i < firstDay; i++) { + num += 1; + // 如果当前选中的是一月份,前一个月是去年的12月 + let _year = selectedYear; + let _month = selectedMonth; + + if (selectedMonth === 0) { + _year = selectedYear - 1; + _month = LAST_MONTH; + } else { + _year = selectedYear; + _month = selectedMonth - 1; + } + + const date = getMonthLength(_month, _year) - i; + datesArray.unshift({ + year: _year, + month: _month, + date, + isToday: false, + isGray: true, + isSelected: false, + tag: "" + }); + } + + for (let i = 0; i < days; i++) { + num += 1; + const date = i + 1; + const dateTimeStamp = +new Date(selectedYear, selectedMonth, date); + datesArray.push({ + year: selectedYear, + month: selectedMonth, + date, + isToday: dateTimeStamp === currentDateTimeStamp, + isGray: false, + isSelected: dateTimeStamp === currentDateTimeStamp, + tag: "" + }); + } + + let nextDate = 0; + let daysPerPage = 35; + + if (num > 35) { + daysPerPage = 42; + } + + for (let i = 0; i < daysPerPage - days - firstDay; i++) { + // 如果是12月,下月是第二年的1月份 + nextDate += 1; + let _year = selectedYear; + let _month = selectedMonth; + + if (selectedMonth === LAST_MONTH) { + _year = selectedYear + 1; + _month = FIRST_MONTH; + } else { + _year = selectedYear; + _month = selectedMonth + 1; + } + + datesArray.push({ + year: _year, + month: _month, + date: nextDate, + isToday: false, + isGray: true, + isSelected: false, + tag: "" + }); + } + let blockType = 1; + for (let i = 0; i < datesArray.length; i++) { + if (this.hasTag(datesArray[i])) { + blockType = 2; + } + } + + const dates = []; + let weekDates = []; + for (let i = 0; i < datesArray.length; i++) { + weekDates.push(datesArray[i]); + if ((i + 1) % DAYS_PER_ROW === 0) { + dates.push([...weekDates]); + weekDates = []; + } + } + + this.setData({ + dates, + blockType + }); + }, + hasTag(dateObj) { + const { tagData } = this.props; + // 去重由调用者处理 + if (tagData.length === 0) { + dateObj.tag = ""; + return false; + } + return tagData.some(item => { + const dateArr = item.date.split("-"); + const dateStr = []; + // 兼容ios下new Date('2018-1-1')格式返回invalid Date的问题 + for (let i = 0; i < dateArr.length; i++) { + dateStr.push(dateArr[i].length > 1 ? dateArr[i] : `0${dateArr[i]}`); + } + + const date = new Date(dateStr.join("-")); + if ( + dateObj.year === date.getFullYear() && + dateObj.month === date.getMonth() && + dateObj.date === date.getDate() + ) { + dateObj.tag = item.tag; + dateObj.color = COLOR_MAP[item.tagColor]; + dateObj.disable = item.disable; + return true; + } else { + dateObj.tag = ""; + return false; + } + }); + }, + getDateGap(day1, day2) { + const date1 = +new Date( + day1.year, + prefixNum(day1.month), + prefixNum(day1.date) + ); + const date2 = +new Date( + day2.year, + prefixNum(day2.month), + prefixNum(day2.date) + ); + return (date1 - date2) / (24 * 3600 * 1000); + }, + makeDate(dateObj) { + return new Date( + `${dateObj.year}-${prefixNum(dateObj.month + 1)}-${prefixNum( + dateObj.date + )}` + ); + }, + onDateTap(event) { + const { dates } = this.data; + const { year, month, date } = event.currentTarget.dataset; + const { type } = this.props; + + if (type === "range") { + if (this.tapTimes % 2 === 0) { + this.tapTimes += 1; + this.endDate = { year, month, date }; + const dateGap = this.getDateGap(this.startDate, this.endDate); + + if (dateGap > 0) { + [this.startDate, this.endDate] = [this.endDate, this.startDate]; + } + + let hasDisable = false; + for (let i = 0; i < dates.length; i++) { + for (let j = 0; j < dates[i].length; j++) { + const dateObj = dates[i][j]; + dateObj.isStart = false; + dateObj.isMiddle = false; + dateObj.isEnd = false; + + const startDateGap = this.getDateGap(dateObj, this.startDate); + const endDateGap = this.getDateGap(dateObj, this.endDate); + + if ( + dateObj.year === year && + dateObj.month === month && + dateObj.date === date && + dateObj.disable + ) { + hasDisable = true; + } + if (startDateGap > 0 && endDateGap < 0) { + if (dateObj.disable) { + hasDisable = true; + } + + if (dateGap !== 0) { + if (j === 0) { + dateObj.isStart = true; + } else if (j === 6) { + dateObj.isEnd = true; + } else { + dateObj.isMiddle = true; + } + } else { + dateObj.isSelected = true; + } + } + + if ( + this.startDate.year === dateObj.year && + this.startDate.month === dateObj.month && + this.startDate.date === dateObj.date && + dateGap !== 0 + ) { + if (j === 6) { + dateObj.isSelected = true; + } else { + dateObj.isStart = true; + } + } + + if ( + this.endDate.year === dateObj.year && + this.endDate.month === dateObj.month && + this.endDate.date === dateObj.date && + dateGap !== 0 + ) { + if (j === 0) { + dateObj.isSelected = true; + } else { + dateObj.isEnd = true; + } + } + } + } + if (hasDisable) { + this.props.onSelectHasDisableDate([ + this.makeDate(this.startDate), + this.makeDate(this.endDate) + ]); + return; + } + + if (this.props.onSelect) { + this.props.onSelect([ + this.makeDate(this.startDate), + this.makeDate(this.endDate) + ]); + } + } else { + let isDisable = false; + for (let i = 0; i < dates.length; i++) { + for (let j = 0; j < dates[i].length; j++) { + const dateObj = dates[i][j]; + if ( + dateObj.year === year && + dateObj.month === month && + dateObj.date === date + ) { + if (dateObj.disable) { + // console.log(1111); + isDisable = true; + dateObj.isSelected = false; + } else { + dateObj.isSelected = true; + } + dateObj.isStart = false; + dateObj.isMiddle = false; + dateObj.isEnd = false; + } else { + dateObj.isSelected = false; + dateObj.isStart = false; + dateObj.isMiddle = false; + dateObj.isEnd = false; + } + } + } + if (!isDisable) { + this.tapTimes += 1; + } + this.startDate = { year, month, date }; + } + + this.setData({ + dates + }); + } else { + let isDisable = false; + for (let i = 0; i < dates.length; i++) { + for (let j = 0; j < dates[i].length; j++) { + const dateObj = dates[i][j]; + if ( + dateObj.year === year && + dateObj.month === month && + dateObj.date === date + ) { + dateObj.isSelected = true; + if (dateObj.disable) { + isDisable = true; + } + } else { + dateObj.isSelected = false; + } + } + } + + if (isDisable) { + return; + } + + this.setData({ + dates + }); + + if (this.props.onSelect) { + this.props.onSelect([ + this.makeDate({ year, month, date }), + undefined + ]); + } + } + } + } +}); diff --git a/components/calendar/calendar.json b/components/calendar/calendar.json new file mode 100644 index 0000000..32640e0 --- /dev/null +++ b/components/calendar/calendar.json @@ -0,0 +1,3 @@ +{ + "component": true +} \ No newline at end of file diff --git a/fonts/iconfont.acss b/fonts/iconfont.acss index 63ea63a..ec6b349 100644 --- a/fonts/iconfont.acss +++ b/fonts/iconfont.acss @@ -1,8 +1,8 @@ @font-face { - font-family: 'iconfont'; - src: url(data:application/font-woff2;charset=utf-8;base64,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) format('woff2'), url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); - font-weight: normal; - font-style: normal; + font-family: 'iconfont'; + src: url(data:font/truetype;charset=utf-8;base64,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ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoNaWNvbl9idWlsZGluZwxpY29uX0FncmVlZDEJaWNvbl9jaXR5Dmljb25fbm9BZ3JlZWQxCWljb25fdG9wMQxpY29uX2R5bmFtaWMLaWNvbl9zZWFyY2gNaWNvbl9jb25mbGljdAhpY29uX2FkZAlpY29uX2JhY2sJaWNvbl9vcGVuC2ljb25fUGFja3VwCWljb25fZm9sZAtpY29uX2V4cGFuZAppY29uX2Nsb3NlB2ljb25fb2sKaWNvbl9zbGlkZQppY29uX21vcmUxCWljb25fdGVhbQlpY29uX2FkZDENaWNvbl9hdHRlbmRlcglpY29uX2FwcDEMaWNvbl9jYW1lcmExDmljb25fbG9jYXRpb24xCWljb25fbWVldAppY29uX3RpbWUxC2ljb25fcGhvbmUxCmljb25fdGFzazERaWNvbl9kZXNjcmlwdGlvbjEJaWNvbl9kYXRhC2ljb25fc2hhcmUxDWljb25fc2V0dGluZzELaWNvbl9mbG9vcjEOaWNvbl9mYWNpbGl0eTEKaWNvbl9yb29tMQtpY29uX2RlbGV0ZQVyaWdodBBpY29uX0NhbGVuZGFyYm94EWljb25fQ2FsZW5kYXJib3gxCmljb25fZGF5czEKaWNvbl9kYXlzMgppY29uX2RheXM0Cmljb25fZGF5czMKaWNvbl9kYXlzNQppY29uX2RheXM2Cmljb25fZGF5czcKaWNvbl9kYXlzOAppY29uX2RheXM5C2ljb25fZGF5czEwC2ljb25fZGF5czExC2ljb25fZGF5czEyC2ljb25fZGF5czEzC2ljb25fZGF5czE0C2ljb25fZGF5czE1C2ljb25fZGF5czE2C2ljb25fZGF5czE3C2ljb25fZGF5czE4C2ljb25fZGF5czE5C2ljb25fZGF5czIwC2ljb25fZGF5czIxC2ljb25fZGF5czIyC2ljb25fZGF5czIzC2ljb25fZGF5czI0C2ljb25fZGF5czI1C2ljb25fZGF5czI2C2ljb25fZGF5czI3C2ljb25fZGF5czI4C2ljb25fZGF5czI5C2ljb25fZGF5czMwC2ljb25fZGF5czMxDGljb25fcmVwZWF0MQlpY29uX3Jvb20MaWNvbl91bmNoZWNrAAAAAAH//wACAAEAAAAMAAAAFgAAAAIAAQADAEsAAQAEAAAAAgAAAAAAAAABAAAAANWkJwgAAAAA2rnlzQAAAADaueXN) format('truetype'); + font-weight: normal; + font-style: normal; } .iconfont { @@ -13,6 +13,14 @@ -moz-osx-font-smoothing: grayscale; } +.iconicon_uncheck:before { + content: "\e747"; +} + +.iconicon_room:before { + content: "\e746"; +} + .iconicon_repeat1:before { content: "\e745"; } @@ -295,4 +303,5 @@ .iconicon_building:before { content: "\e6b1"; -} \ No newline at end of file +} + diff --git a/pages/meetingRoomList/meetingRoomList.acss b/pages/meetingRoomList/meetingRoomList.acss index 1c73388..544cced 100644 --- a/pages/meetingRoomList/meetingRoomList.acss +++ b/pages/meetingRoomList/meetingRoomList.acss @@ -157,26 +157,34 @@ .reserveRoomLocation { color: rgba(25, 31, 37, 0.56); } -.reserveRoomTimeBar{ + +.reserveRoomTimeBar { overflow: hidden; + margin-top: 12rpx; } + .reserveRoomTimeBarBg { width: 100%; display: flex; - margin-top: 32rpx; - border: 1px solid rgba(25, 31, 37, 0.08); box-sizing: border-box; + flex-wrap: wrap; + flex-direction: column; + height: 60rpx; } .reserveRoomTimeBarBg>view { - flex: 1; - height: 32rpx; - border-right: 1px solid #ffffff; + height: 24rpx; + width: 24rpx; + border-radius: 2rpx; box-sizing: border-box; + margin-top: 6rpx; + margin-right: 6rpx; + background: #F3F6FA; + border: 1px solid rgba(27, 38, 61, 0.10); } -.reserveRoomTimeBarBg>view:nth-of-type(48) { - border-right: none !important; +.reserveRoomTimeBarBg>view:nth-of-type(47), .reserveRoomTimeBarBg>view:nth-of-type(48) { + margin-right: 0; } .preemption { @@ -184,15 +192,18 @@ } .expired { - background: #EDEDEE; + background: url(../../assests/cancel.png) center /100% 100% !important; + border: 1px solid rgba(27, 38, 61, 0.04) !important; } .reservation { - background: #FFFFFF; + background: #F3F6FA !important; + border: 1px solid rgba(27, 38, 61, 0.10) !important; } .occupied { - background: #3296FA; + background: rgba(48, 112, 242, 0.28) !important; + border: 1rpx solid rgba(27, 38, 61, 0.10) !important; } .reserveRoomTimeBarNum { @@ -203,6 +214,7 @@ } .reserveRoomTimeBarNum>view { + text-align: center; flex: 1; } @@ -222,20 +234,17 @@ .modalContent { width: 100%; - height: 838rpx; - background: #FFFFFF; - border-radius: 19rpx 19rpx 0 0; - box-shadow: 0 -2px 20px 0 rgba(25, 31, 37, 0.12); + height: 732rpx; } .modalHeader { - height: 104rpx; - line-height: 104rpx; - font-size: 34rpx; - display: flex; + height: 44rpx; + line-height: 44rpx; + font-size: 32rpx; padding: 0 32rpx; + text-align: right; + color: #3070F2; box-sizing: border-box; - border-bottom: 1px solid rgba(25, 31, 37, 0.12); } .modalHeader>view { @@ -258,8 +267,9 @@ font-size: 30rpx; text-align: center; display: flex; - height: 104rpx; - line-height: 104rpx; + height: 100rpx; + align-items: center; + justify-content: center; } .changeDay>view { @@ -285,7 +295,7 @@ display: flex; align-items: center; font-size: 24rpx; - color: rgba(25,31,37,0.56); + color: rgba(25, 31, 37, 0.56); } .OccupyTimeList>view:nth-of-type(1) { @@ -395,7 +405,6 @@ .roomScrollView { height: 100vh; - padding-top: 96rpx; box-sizing: border-box; position: relative; } @@ -404,56 +413,66 @@ font-size: 24rpx; margin-right: 8rpx; } + .occupiedStatus { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -.noRoom{ + +.noRoom { position: absolute; left: 0; top: 0; display: flex; align-items: center; justify-content: center; - width:100%; - height:100%; + width: 100%; + height: 100%; } -.noRoom>view{ + +.noRoom>view { display: flex; flex-direction: column; align-items: center; justify-content: center; } -.noRoomTip{ + +.noRoomTip { margin-top: 32rpx; font-size: 30rpx; - color: rgba(25,31,37,0.56); + color: rgba(25, 31, 37, 0.56); } -.modalFooter{ - height: 120rpx; - line-height: 120rpx; - font-size: 26rpx; - color: #3296FA; - letter-spacing: -0.63px; - padding-left: 32rpx; - width: 100%; - box-sizing: border-box; + +.modalTimeSlot { + height: 44rpx; + font-family: DINAlternate-Bold; + font-size: 32rpx; + text-align: center; + color: #1B263D; } + ::-webkit-scrollbar { width: 0; height: 0; color: transparent; } -.beOverdue .iconxuanzhong2{ - color: rgba(25,31,37,0.12); + +.beOverdue .iconicon_Agreed1 { + color: rgba(25, 31, 37, 0.12); font-size: 40rpx; } -.checked .iconxuanzhong2{ + +.checked .iconicon_Agreed1 { color: #3296FA; font-size: 40rpx; } -.Unchecked .iconweigouxuan{ - color: rgba(25,31,37,0.12); + +.Unchecked .iconicon_uncheck { + color: rgba(25, 31, 37, 0.12); font-size: 40rpx; +} +.calendarTip{ + font-size: 24rpx; + color: rgba(25,31,37,.56) } \ No newline at end of file diff --git a/pages/meetingRoomList/meetingRoomList.axml b/pages/meetingRoomList/meetingRoomList.axml index 2570680..a81106a 100644 --- a/pages/meetingRoomList/meetingRoomList.axml +++ b/pages/meetingRoomList/meetingRoomList.axml @@ -8,141 +8,100 @@ <text class="iconfont iconxialakuang"></text> </view> </view> - <view class="searchLocation"> - <view onTap="changeLocation"> - {{search.locationName}} - </view> - <view class="xialakuangSize"> - <text class="iconfont iconxialakuang"></text> - </view> - </view> </view> - <!-- <view class="searchHeader2"> - <scroll-view scroll-x='{{true}}' scroll-left='{{100}}' scroll-into-view='searchList'> - <view a:for="{{equipFacilityList}}" class="equipFacilityList" onTap="changeSearchEquipFacility" data-id='{{item.id}}'> - <view class="selectListcheck"> - <text class="iconfont iconxuanzhong2" a:if="{{search.equipFacilityIds.indexOf(item.id) !== -1}}"></text> - <text class="iconfont iconweigouxuan" a:elif="{{search.equipFacilityIds.indexOf(item.id) === -1}}"></text> - </view> - <view> - {{item.name}} - </view> - </view> - </scroll-view> - </view> --> -</view> -<scroll-view scroll-y="{{canScroll}}" class="roomScrollView"> - <view class="reserveMeeting"> - <view class="meetingRoomContent" a:for="{{reserveRoomList}}" data-roomid="{{item.meetingRoomId}}" data-roomname="{{item.meetingRoomFullName}}" onTap="changeRoomTime"> - <view class="roomMessage"> - <view class="reserveRoomMsg"> - <view class="reserveRoomTitle"> - {{item.meetingRoomFullName}} - </view> - <view class="reserveRoomEquipFacility" a:if="{{item.equipFacilityNames.length>0}}"> - <text class="locationIcon iconfont iconshebei"></text><text a:for="{{item.equipFacilityNames}}" a:if="{{item2 !== null}}" a:for-item="item2" a:for-index="index2">{{item2}}{{index2 === item.equipFacilityNames.length-1 ? '' : '/'}}</text> - </view> - <view class="reserveRoomNumAndLocation" style="{{item.equipFacilityNames.length === 0 ? 'margin-bottom:42rpx' : ''}}"> - <view class="reserveRoomNum"> - <text class="locationIcon iconfont iconcanhuiren"></text>{{item.capacityNum}} - </view> - <view class="reserveRoomLocation"> - <text class="locationIcon iconfont icondingwei1"></text>{{item.locationName}} + <scroll-view scroll-y="{{canScroll}}" class="roomScrollView"> + <view class="reserveMeeting"> + <view class="meetingRoomContent" a:for="{{reserveRoomList}}" data-roomid="{{item.meetingRoomId}}" data-roomname="{{item.meetingRoomFullName}}" onTap="changeRoomTime"> + <view class="roomMessage"> + <view class="reserveRoomMsg"> + <view class="reserveRoomTitle"> + {{item.name}} </view> - </view> - </view> - </view> - <view class="reserveRoomTimeBar"> - <view class="reserveRoomTimeBarBg"> - <block a:for="{{item.timeSlotWithMeetingVOS}}" a:for-item="item2" a:for-index="index2"> - <view class="expired" a:if="{{item2.reserveStatus === 'expired'}}"> + <view class="reserveRoomEquipFacility" a:if="{{item.equipFacilityNames.length>0}}"> + <text class="locationIcon iconfont iconicon_app1"></text> + <text a:for="{{item.equipFacilityNames}}" a:if="{{item2 !== null}}" a:for-item="item2" a:for-index="index2">{{item2}}{{index2 === item.equipFacilityNames.length-1 ? '' : '/'}}</text> </view> - <view class="occupied" a:if="{{item2.reserveStatus === 'occupied'}}"> + <view class="reserveRoomNumAndLocation"> + <view class="reserveRoomNum"> + <text class="locationIcon iconfont iconicon_attender"></text>{{item.capacityNum}} + </view> </view> - <view class="reservation" a:if="{{item2.reserveStatus === 'reservation'}}"> - </view> - </block> + </view> </view> - <view class="reserveRoomTimeBarNum"> - <view a:for="{{timeListStr}}" a:for-item="item2" a:for-index="index2"> + <view class="reserveRoomTimeBar"> + <view class="reserveRoomTimeBarBg"> + <block a:for="{{item.timeSlotWithMeetingVOS}}" a:for-item="item2" a:for-index="index2"> + <view class="expired" a:if="{{item2.reserveStatus === 'expired'}}"> + </view> + <view class="occupied" a:if="{{item2.reserveStatus === 'occupied'}}"> + </view> + <view class="reservation" a:if="{{item2.reserveStatus === 'reservation'}}"> + </view> + </block> + </view> + <view class="reserveRoomTimeBarNum"> + <view a:for="{{timeListStr}}" a:for-item="item2" a:for-index="index2"> {{item2}} + </view> </view> </view> </view> </view> - </view> - <view class="noRoom" a:if={{noRoom}}> - <view> + <view class="noRoom" a:if={{noRoom}}> <view> - <image style="width: 280rpx; height: 156rpx;" mode="{{item.mode}}" src="./../../assests/noRoom.png" /> + <view> + <image style="width: 280rpx; height: 156rpx;" mode="{{item.mode}}" src="./../../assests/noRoom.png" /> + </view> + <view class="noRoomTip">当前暂无会议室</view> </view> - <view class="noRoomTip">当前暂无会议室</view> </view> - </view> -</scroll-view> -<view a:if="{{isShowModal}}" class="modal"> - <view class="modalContent"> - <view class="modalHeader"> - <view data-type="0" onTap="onCancel"> - 取消 + </scroll-view> + <popup show="{{isShowModal}}" onClose="onCancel" position="bottom"> + <view a:if="{{!isShowCalendar}}" class="modalContent"> + <view class="modalHeader"> + <text onTap="onDetermine">确定</text> </view> - <view data-type="1" onTap="onDetermine"> - 确定 + <view class="modalTimeSlot"> + <text a:if="{{!modalFooter.startTime || !modalFooter.endTime}}">请选择会议时间</text> + <text a:if="{{modalFooter.startTime && modalFooter.endTime}}">{{modalFooter.startTime}}至{{modalFooter.isOneDay ? modalFooter.endTime.substr(11,16):modalFooter.endTime}} 共{{modalFooter.allMinutes}}分钟</text> </view> - </view> - <view class="changeDay"> - <view class="{{dataNum == '0' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="0">{{search.time.replace(/-/g,".")}}</view> - <view class="{{dataNum == '1' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="1">{{tomorrowTime}}</view> - <view class="{{dataNum == '2' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="2">{{afterTomorrowTime}}</view> - <!-- <view onTap="selectDate">自定义</view> --> - </view> - <scroll-view scroll-y='{{true}}' class="modalOccupyTimeSlot" onScroll="modalScroll" scroll-into-view="{{toThisTime}}"> - <view class="OccupyTimeList" a:for="{{modalList}}" data-index="{{index}}" onTap="onChangeModalTime" id="{{item.reserveStartTime.substr(11,15)}}"> - <!-- <view data-status="{{item.reserveStatus}}" data-index="{{index}}"> - <timecheckmodal - startTime="{{meetingTime.startTime}}" - endTime="{{meetingTime.endTime}}" - date="{{meetingTime.date}}" - sectionStartTime="{{item.reserveStartTime}}" - sectionEndTime="{{item.reserveEndTime}}" - onselectTime="{{onselectTime}}" - > - </timecheckmodal> - </view> --> - <view> - <view a:if="{{item.status==='BeOverdue'}}" class="beOverdue"> - <text class="iconfont iconxuanzhong2"></text> - </view> - <view a:elif="{{item.status==='Uncheck'}}" class="Unchecked"> - <text class="iconfont iconweigouxuan"></text> - </view> - <view a:elif="{{item.status==='checked'}}" class="checked"> - <text class="iconfont iconxuanzhong2"></text> + <view class="changeDay"> + <view class="{{dataNum == '0' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="0">{{TimeSlot.todayTime.split('/')[1]}}月{{TimeSlot.todayTime.split('/')[2]}}日</view> + <view class="{{dataNum == '1' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="1">{{TimeSlot.tomorrowTime.split('/')[1]}}月{{TimeSlot.tomorrowTime.split('/')[2]}}日</view> + <view class="{{dataNum == '2' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="2">{{TimeSlot.afterTomorrowTime.split('/')[1]}}月{{TimeSlot.afterTomorrowTime.split('/')[2]}}日</view> + <view class="{{dataNum == '3' ? 'dataNumSelected' : ''}}" onTap="chooseDate" data-num="3">自定义日期</view> + </view> + <scroll-view scroll-y='{{true}}' class="modalOccupyTimeSlot" scroll-into-view="{{toThisTime}}"> + <view class="OccupyTimeList" a:for="{{modalList}}" data-index="{{index}}" onTap="onChangeModalTime" id="{{item.reserveStartTime.substr(11,15)}}"> + <view> + <view a:if="{{item.status==='BeOverdue'}}" class="beOverdue"> + <text class="iconfont iconicon_Agreed1"></text> + </view> + <view a:elif="{{item.status==='Uncheck'}}" class="Unchecked"> + <text class="iconfont iconicon_uncheck"></text> + </view> + <view a:elif="{{item.status==='checked'}}" class="checked"> + <text class="iconfont iconicon_Agreed1"></text> + </view> </view> - </view> - <view> - <view>{{item.reserveStartTime.substr(10,15)}} ~ {{item.reserveEndTime.substr(10,15)}} </view> - <view class="expiredStatus" a:if="{{item.reserveStatus === 'expired'}}"> + <view> + <view>{{item.reserveStartTime.substr(10,15)}} ~ {{item.reserveEndTime.substr(10,15)}}</view> + <view class="expiredStatus" a:if="{{item.reserveStatus === 'expired'}}"> 已过期 - </view> - <view class="occupiedStatus" a:if="{{item.reserveStatus === 'occupied'}}"> + </view> + <view class="occupiedStatus" a:if="{{item.reserveStatus === 'occupied'}}"> 已被{{item.scheduleList[0].organizerName}}预定 + </view> </view> </view> + </scroll-view> + </view> + <view a:else> + <view class="calendarTip"> + 自定义时间 </view> - </scroll-view> - <view class="modalFooter"> - <text a:if="{{!modalFooter.startTime || !modalFooter.endTime}}">会议时间:请选择会议时间</text> - <text a:if="{{modalFooter.startTime && modalFooter.endTime}}">会议时间:{{modalFooter.startTime}}至{{modalFooter.isOneDay ? modalFooter.endTime.substr(11,16):modalFooter.endTime}} 共{{modalFooter.allMinutes}}分钟</text> + <calendar type="single" haveYear="{{false}}" selectedDate="{{meetingTime.date}}" onSelect="handleSelect" onMonthChange="onMonthChange" onYearChange="onYearChange" onSelectHasDisableDate="onSelectHasDisableDate" /> </view> - </view> -</view> -<lable-tree - a:if="{{isShowLableModal}}" - areTreeList="{{lableTreeList}}" - locationName="{{location.name}}" - locationId="{{location.id}}" - isShow="{{isShowLableModal}}" - onPropsCS="onPropsCS" -> -</lable-tree> \ No newline at end of file + </popup> + <lable-tree a:if="{{isShowLableModal}}" areTreeList="{{lableTreeList}}" locationName="{{location.name}}" locationId="{{location.id}}" isShow="{{isShowLableModal}}" onPropsCS="onPropsCS"> + </lable-tree> \ No newline at end of file diff --git a/pages/meetingRoomList/meetingRoomList.js b/pages/meetingRoomList/meetingRoomList.js index 921bb8d..660552d 100644 --- a/pages/meetingRoomList/meetingRoomList.js +++ b/pages/meetingRoomList/meetingRoomList.js @@ -1,765 +1,1254 @@ -import { getMeetingRoom, getLabelTree, myMeetingPage, getReserveRoomList, getAllScheduleWithMeetingRoomByTime } from '../../api/request' -import { EEXIST } from 'constants' -import create from 'dd-store' +import { + getMeetingRoom, + myMeetingPage, + getReserveRoomList, + getAllScheduleWithMeetingRoomByTime +} from "../../api/request"; +import { EEXIST } from "constants"; +import { getFormatDate } from "../../utils/utils"; +import create from "dd-store"; create.Page({ data: { $data: null, + isShowCalendar: false, equipFacilityList: [], reserveRoomList: [], lableTreeList: [], - timeListStr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24], + timeListStr: [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24 + ], search: { - category: '', - locationName: '全部区域', - locationId: '', - equipFacilityIds: [], - time: '' + category: "", + locationName: "全部区域", + locationId: "", + time: "" }, modalFooter: { - startTime: '', - endTime: '', - allMinutes: '', + startTime: "", + endTime: "", + allMinutes: "", isOneDay: true }, - dataNum: '0', + dataNum: "0", noRoom: false, - location: { - id: '', - name: '' - }, isShowModal: false, - isShowLableModal: false, modalList: [], meetingTime: { - startTime: '', - endTime: '', - date: '', - meetingRoomId: '', - meetingRoomName: '' + startTime: "", + endTime: "", + date: "", + meetingRoomId: "", + meetingRoomName: "" }, canScroll: true, - toThisTime: '', - tomorrowTime: '', - afterTomorrowTime: '' + toThisTime: "", + TimeSlot: { + todayTime: "", + tomorrowTime: "", + afterTomorrowTime: "" + } }, onLoad(query) { - let date = new Date(this.$store.data.startTime.replace(/-/g, "/")) - console.log(date, 111) - console.log(this.$store.data.startTime, 111) - // let date = new Date() - let year = date.getFullYear() - let month = `${date.getMonth() + 1}` - let day = `${date.getDate()}` - let hour = date.getHours() - let minute = date.getMinutes() - let search = { - time: `${year}-${month.length > 1 ? month : '0' + month}-${day.length > 1 ? day : '0' + day}`, - category: '全部分类', - location: '全部区域' - } + // let date = new Date(this.$store.data.startTime.replace(/-/g, "/")) + let date = new Date(); + let year = date.getFullYear(); + let month = ("00" + (date.getMonth() + 1)).slice(-2); + let day = ("00" + date.getDate()).slice(-2); + let hour = ("00" + date.getHours()).slice(-2); + let minute = ("00" + date.getMinutes()).slice(-2); + let todayTime = `${year}/${date.getMonth() + 1}/${date.getDate()}`; + let tomorrowTime = new Date(date); + tomorrowTime.setDate(tomorrowTime.getDate() + 1); + let afterTomorrowTime = new Date(date); + afterTomorrowTime.setDate(afterTomorrowTime.getDate() + 2); this.setData({ - // 'meetingTime.startTime': startTime, - 'search.time': `${year}-${month.length > 1 ? month : '0' + month}-${day.length > 1 ? day : '0' + day}`, - tomorrowTime: this.getDay(search.time, 1), - afterTomorrowTime: this.getDay(search.time, 2) - }) - this.getPageData() + "search.time": `${year}-${month}-${day}`, + "TimeSlot.todayTime": todayTime, + "TimeSlot.tomorrowTime": `${year}/${tomorrowTime.getMonth() + + 1}/${tomorrowTime.getDate()}/`, + "TimeSlot.afterTomorrowTime": `${year}/${afterTomorrowTime.getMonth() + + 1}/${afterTomorrowTime.getDate()}/` + }); + this.getPageData(); }, onShow() { - this.update() + this.update(); }, getPageData() { - let that = this let data = { - scene: 'meeting_room_facility' - } - // 获取会议室设施的List - getLabelTree(data).then(res => { - let list = res.data.data.map(item => { - return { - name: item.name, - isChecked: false, - id: item.id - } - }) - that.setData({ - equipFacilityList: list - }) - let data2 = { - startTime: that.data.search.time, - locationId: '', - categoryId: '', - equipFacilityIds: '', + startTime: this.data.search.time, + locationId: "" + }; + getReserveRoomList(data).then(res => { + if (res.data.data) { + let reserveRoomList = res.data.data.map(item => { + let startTime = parseInt( + item.timeSlotWithMeetingVOS[0].reserveStartTime.substring(0, 2) + ); + let endTime = parseInt( + item.timeSlotWithMeetingVOS[ + item.timeSlotWithMeetingVOS.length - 1 + ].reserveEndTime.substring(0, 2) + ); + let timeList = []; + for (let i = startTime; i < endTime; i++) { + timeList.push(i); + } + return { + ...item, + timeList + }; + }); + this.setData({ + reserveRoomList: reserveRoomList, + noRoom: false + }); + } else { + this.setData({ + noRoom: true + }); } - getReserveRoomList(data2).then(res => { - if (res.data.data) { - let reserveRoomList = res.data.data.map(item => { - let startTime = parseInt(item.timeSlotWithMeetingVOS[0].reserveStartTime.substring(0, 2)) - let endTime = parseInt(item.timeSlotWithMeetingVOS[item.timeSlotWithMeetingVOS.length - 1].reserveEndTime.substring(0, 2)) - let timeList = [] - for (let i = startTime; i < endTime; i++) { - timeList.push(i) - } - return { - ...item, - timeList, - } - }) - that.setData({ - reserveRoomList: reserveRoomList, - noRoom: false - }) - } else { - that.setData({ - noRoom: true - }) - } - }) - }) + }); }, selectSearchTime() { - let that = this + let that = this; dd.datePicker({ - format: 'yyyy-MM-dd', + format: "yyyy-MM-dd", currentDate: this.data.search.time, - success: (res) => { + success: res => { if (res !== {}) { - that.setData({ - 'search.time': res.date, - tomorrowTime: this.getDay(res.date, 1), - afterTomorrowTime: this.getDay(res.date, 2) - }, () => { - that.getRoomList() - }) + that.setData( + { + "search.time": res.date + }, + () => { + that.getRoomList(); + } + ); } }, - complete: (res) => { + complete: res => { // res } }); }, // 弹出modal选择会议时间 changeRoomTime(e) { - let that = this + let that = this; let roomId = e.currentTarget.dataset.roomid; - let dateTime = this.data.search.time + let dateTime = this.data.search.time; let modalDate = new Date(); let modalMins = modalDate.getMinutes(); - let modalHour = modalMins < 30 ? modalDate.getHours() < 10 ? '0' + modalDate.getHours() : modalDate.getHours() : (modalDate.getHours() + 1) < 10 ? '0' + (modalDate.getHours() + 1) : (modalDate.getHours() + 1) + let modalHour = + modalMins < 30 + ? modalDate.getHours() < 10 + ? "0" + modalDate.getHours() + : modalDate.getHours() + : modalDate.getHours() + 1 < 10 + ? "0" + (modalDate.getHours() + 1) + : modalDate.getHours() + 1; let data = { meetingRoomId: roomId, startTime: dateTime - } + }; this.setData({ - 'meetingTime.date': dateTime, - 'meetingTime.meetingRoomId': e.currentTarget.dataset.roomid, - 'meetingTime.meetingRoomName': e.currentTarget.dataset.roomname - }) + "meetingTime.date": dateTime, + "meetingTime.meetingRoomId": e.currentTarget.dataset.roomid, + "meetingTime.meetingRoomName": e.currentTarget.dataset.roomname + }); getReserveRoomList(data).then(res => { let modalList = res.data.data[0].timeSlotWithMeetingVOS.map(item => { // 判断是否过期 - if (item.reserveStatus === 'expired' || item.reserveStatus === 'occupied') { + if ( + item.reserveStatus === "expired" || + item.reserveStatus === "occupied" + ) { return { ...item, - status: 'BeOverdue', + status: "BeOverdue", reserveStartTime: `${dateTime} ${item.reserveStartTime}`, reserveEndTime: `${dateTime} ${item.reserveEndTime}` - } + }; } else { return { ...item, - status: 'Uncheck', + status: "Uncheck", reserveStartTime: `${dateTime} ${item.reserveStartTime}`, reserveEndTime: `${dateTime} ${item.reserveEndTime}` - } + }; } - }) - + }); that.setData({ modalList: modalList, isShowModal: true, canScroll: false, - toThisTime: `${modalHour}:${modalMins < 30 ? '30' : '00'}` - }) - }) - }, - modalScroll() { - // this.setData({ - // toThisTime: '12312312' - // }) + toThisTime: `${modalHour}:${modalMins < 30 ? "30" : "00"}` + }); + }); }, // 修改弹框checkBox onChangeModalTime(e) { let that = this; let index = e.currentTarget.dataset.index; let data = this.data.modalList[index]; // 点击的数据 - if (data.status === 'BeOverdue') { + if (data.status === "BeOverdue") { return false; } if (!this.data.meetingTime.startTime && !this.data.meetingTime.endTime) { // 判断是否有开始时间 - console.log('判断是否有开始时间') - let listStr = `modalList[${index}].status` - let modalFooterTime = new Date(data.reserveStartTime.replace(/-/g, '/')) - modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30) + console.log("判断是否有开始时间"); + let listStr = `modalList[${index}].status`; + let modalFooterTime = new Date(data.reserveStartTime.replace(/-/g, "/")); + modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30); this.setData({ - 'meetingTime.startTime': data.reserveStartTime, - [listStr]: 'checked', - 'modalFooter.startTime': data.reserveStartTime, - 'modalFooter.endTime': `${modalFooterTime.getFullYear()}-${modalFooterTime.getMonth() < 9 ? '0' + (modalFooterTime.getMonth() + 1) : modalFooterTime.getMonth() + 1}-${modalFooterTime.getDate() < 10 ? '0' + modalFooterTime.getDate() : modalFooterTime.getDate()} ${modalFooterTime.getHours() < 10 ? '0' + modalFooterTime.getHours() : modalFooterTime.getHours()}:${modalFooterTime.getMinutes() < 10 ? '0' + modalFooterTime.getMinutes() : modalFooterTime.getMinutes()}`, - 'modalFooter.allMinutes': 30, - 'modalFooter.isOneDay': true, - }) - } else if (this.data.meetingTime.startTime && !this.data.meetingTime.endTime) { + "meetingTime.startTime": data.reserveStartTime, + [listStr]: "checked", + "modalFooter.startTime": data.reserveStartTime, + "modalFooter.endTime": `${modalFooterTime.getFullYear()}-${ + modalFooterTime.getMonth() < 9 + ? "0" + (modalFooterTime.getMonth() + 1) + : modalFooterTime.getMonth() + 1 + }-${ + modalFooterTime.getDate() < 10 + ? "0" + modalFooterTime.getDate() + : modalFooterTime.getDate() + } ${ + modalFooterTime.getHours() < 10 + ? "0" + modalFooterTime.getHours() + : modalFooterTime.getHours() + }:${ + modalFooterTime.getMinutes() < 10 + ? "0" + modalFooterTime.getMinutes() + : modalFooterTime.getMinutes() + }`, + "modalFooter.allMinutes": 30, + "modalFooter.isOneDay": true + }); + } else if ( + this.data.meetingTime.startTime && + !this.data.meetingTime.endTime + ) { // 判断有开时间,没有结束时间 if (this.data.meetingTime.startTime === data.reserveStartTime) { // 点击的同一个checkBox - let listStr = `modalList[${index}].status` + let listStr = `modalList[${index}].status`; this.setData({ - 'meetingTime.startTime': '', - [listStr]: 'Uncheck', - 'modalFooter.startTime': data.reserveStartTime, - 'modalFooter.endTime': '', - 'modalFooter.allMinutes': '', - 'modalFooter.isOneDay': true, - }) - console.log('2.1') - } else if (new Date(this.data.meetingTime.startTime.replace(/-/g, '/')).getTime() > new Date(data.reserveStartTime.replace(/-/g, '/')).getTime()) { + "meetingTime.startTime": "", + [listStr]: "Uncheck", + "modalFooter.startTime": data.reserveStartTime, + "modalFooter.endTime": "", + "modalFooter.allMinutes": "", + "modalFooter.isOneDay": true + }); + console.log("2.1"); + } else if ( + new Date(this.data.meetingTime.startTime.replace(/-/g, "/")).getTime() > + new Date(data.reserveStartTime.replace(/-/g, "/")).getTime() + ) { //比已选时间小 - console.log('2.2') - if (this.isDaySpan(this.data.meetingTime.startTime.replace(/-/g, '/'), data.reserveStartTime.replace(/-/g, '/'))) { + console.log("2.2"); + if ( + this.isDaySpan( + this.data.meetingTime.startTime.replace(/-/g, "/"), + data.reserveStartTime.replace(/-/g, "/") + ) + ) { //非跨天 - if (this.isOptional(data.reserveStartTime, this.data.meetingTime.startTime)) { - let modalFooterTime = new Date(that.data.meetingTime.startTime.replace(/-/g, '/')) - modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30) - let allMinutes = (modalFooterTime - new Date(data.reserveStartTime.replace(/-/g, '/')).getTime()) / 60000 - this.setData({ - 'meetingTime.startTime': data.reserveStartTime, - 'meetingTime.endTime': that.data.meetingTime.startTime, - 'modalFooter.startTime': data.reserveStartTime, - 'modalFooter.endTime': `${modalFooterTime.getFullYear()}-${modalFooterTime.getMonth() < 9 ? '0' + (modalFooterTime.getMonth() + 1) : modalFooterTime.getMonth() + 1}-${modalFooterTime.getDate() < 10 ? '0' + modalFooterTime.getDate() : modalFooterTime.getDate()} ${modalFooterTime.getHours() < 10 ? '0' + modalFooterTime.getHours() : modalFooterTime.getHours()}:${modalFooterTime.getMinutes() < 10 ? '0' + modalFooterTime.getMinutes() : modalFooterTime.getMinutes()}`, - 'modalFooter.allMinutes': allMinutes, - 'modalFooter.isOneDay': true, - }, () => { - that.refreshModalList() - }) + if ( + this.isOptional( + data.reserveStartTime, + this.data.meetingTime.startTime + ) + ) { + let modalFooterTime = new Date( + that.data.meetingTime.startTime.replace(/-/g, "/") + ); + modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30); + let allMinutes = + (modalFooterTime - + new Date(data.reserveStartTime.replace(/-/g, "/")).getTime()) / + 60000; + this.setData( + { + "meetingTime.startTime": data.reserveStartTime, + "meetingTime.endTime": that.data.meetingTime.startTime, + "modalFooter.startTime": data.reserveStartTime, + "modalFooter.endTime": `${modalFooterTime.getFullYear()}-${ + modalFooterTime.getMonth() < 9 + ? "0" + (modalFooterTime.getMonth() + 1) + : modalFooterTime.getMonth() + 1 + }-${ + modalFooterTime.getDate() < 10 + ? "0" + modalFooterTime.getDate() + : modalFooterTime.getDate() + } ${ + modalFooterTime.getHours() < 10 + ? "0" + modalFooterTime.getHours() + : modalFooterTime.getHours() + }:${ + modalFooterTime.getMinutes() < 10 + ? "0" + modalFooterTime.getMinutes() + : modalFooterTime.getMinutes() + }`, + "modalFooter.allMinutes": allMinutes, + "modalFooter.isOneDay": true + }, + () => { + that.refreshModalList(); + } + ); } else { - console.log('已有会议,不可点击') + console.log("已有会议,不可点击"); } } else { //跨天 - this.getAllScheduleWithMeetingRoomByTime(data.reserveStartTime, this.data.meetingTime.startTime).then(res => { + this.getAllScheduleWithMeetingRoomByTime( + data.reserveStartTime, + this.data.meetingTime.startTime + ).then(res => { if (res) { - let modalFooterTime = new Date(that.data.meetingTime.startTime.replace(/-/g, '/')) - modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30) - let allMinutes = (modalFooterTime - new Date(data.reserveStartTime.replace(/-/g, '/')).getTime()) / 60000 - that.setData({ - 'meetingTime.startTime': data.reserveStartTime, - 'meetingTime.endTime': that.data.meetingTime.startTime, - 'modalFooter.startTime': data.reserveStartTime, - 'modalFooter.endTime': `${modalFooterTime.getFullYear()}-${modalFooterTime.getMonth() < 9 ? '0' + (modalFooterTime.getMonth() + 1) : modalFooterTime.getMonth() + 1}-${modalFooterTime.getDate() < 10 ? '0' + modalFooterTime.getDate() : modalFooterTime.getDate()} ${modalFooterTime.getHours() < 10 ? '0' + modalFooterTime.getHours() : modalFooterTime.getHours()}:${modalFooterTime.getMinutes() < 10 ? '0' + modalFooterTime.getMinutes() : modalFooterTime.getMinutes()}`, - 'modalFooter.allMinutes': allMinutes, - 'modalFooter.isOneDay': false, - }, () => { - that.refreshModalList() - }) + let modalFooterTime = new Date( + that.data.meetingTime.startTime.replace(/-/g, "/") + ); + modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30); + let allMinutes = + (modalFooterTime - + new Date( + data.reserveStartTime.replace(/-/g, "/") + ).getTime()) / + 60000; + that.setData( + { + "meetingTime.startTime": data.reserveStartTime, + "meetingTime.endTime": that.data.meetingTime.startTime, + "modalFooter.startTime": data.reserveStartTime, + "modalFooter.endTime": `${modalFooterTime.getFullYear()}-${ + modalFooterTime.getMonth() < 9 + ? "0" + (modalFooterTime.getMonth() + 1) + : modalFooterTime.getMonth() + 1 + }-${ + modalFooterTime.getDate() < 10 + ? "0" + modalFooterTime.getDate() + : modalFooterTime.getDate() + } ${ + modalFooterTime.getHours() < 10 + ? "0" + modalFooterTime.getHours() + : modalFooterTime.getHours() + }:${ + modalFooterTime.getMinutes() < 10 + ? "0" + modalFooterTime.getMinutes() + : modalFooterTime.getMinutes() + }`, + "modalFooter.allMinutes": allMinutes, + "modalFooter.isOneDay": false + }, + () => { + that.refreshModalList(); + } + ); } else { dd.alert({ - content: '会议室已被占用', + content: "会议室已被占用" }); } - }) + }); } } else { //比已选时间大 - console.log('2.3') - if (this.isDaySpan(this.data.meetingTime.startTime.replace(/-/g, '/'), data.reserveStartTime.replace(/-/g, '/'))) { + console.log("2.3"); + if ( + this.isDaySpan( + this.data.meetingTime.startTime.replace(/-/g, "/"), + data.reserveStartTime.replace(/-/g, "/") + ) + ) { // 非跨天 - if (this.isOptional(this.data.meetingTime.startTime, data.reserveStartTime)) { - let modalFooterTime = new Date(data.reserveStartTime.replace(/-/g, '/')) - modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30) - let allMinutes = (modalFooterTime - new Date(that.data.meetingTime.startTime.replace(/-/g, '/')).getTime()) / 60000 - this.setData({ - 'meetingTime.endTime': data.reserveStartTime, - 'modalFooter.startTime': that.data.meetingTime.startTime, - 'modalFooter.endTime': `${modalFooterTime.getFullYear()}-${modalFooterTime.getMonth() < 9 ? '0' + (modalFooterTime.getMonth() + 1) : modalFooterTime.getMonth() + 1}-${modalFooterTime.getDate() < 10 ? '0' + modalFooterTime.getDate() : modalFooterTime.getDate()} ${modalFooterTime.getHours() < 10 ? '0' + modalFooterTime.getHours() : modalFooterTime.getHours()}:${modalFooterTime.getMinutes() < 10 ? '0' + modalFooterTime.getMinutes() : modalFooterTime.getMinutes()}`, - 'modalFooter.allMinutes': allMinutes, - 'modalFooter.isOneDay': true, - }, () => { - that.refreshModalList() - }) + if ( + this.isOptional( + this.data.meetingTime.startTime, + data.reserveStartTime + ) + ) { + let modalFooterTime = new Date( + data.reserveStartTime.replace(/-/g, "/") + ); + modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30); + let allMinutes = + (modalFooterTime - + new Date( + that.data.meetingTime.startTime.replace(/-/g, "/") + ).getTime()) / + 60000; + this.setData( + { + "meetingTime.endTime": data.reserveStartTime, + "modalFooter.startTime": that.data.meetingTime.startTime, + "modalFooter.endTime": `${modalFooterTime.getFullYear()}-${ + modalFooterTime.getMonth() < 9 + ? "0" + (modalFooterTime.getMonth() + 1) + : modalFooterTime.getMonth() + 1 + }-${ + modalFooterTime.getDate() < 10 + ? "0" + modalFooterTime.getDate() + : modalFooterTime.getDate() + } ${ + modalFooterTime.getHours() < 10 + ? "0" + modalFooterTime.getHours() + : modalFooterTime.getHours() + }:${ + modalFooterTime.getMinutes() < 10 + ? "0" + modalFooterTime.getMinutes() + : modalFooterTime.getMinutes() + }`, + "modalFooter.allMinutes": allMinutes, + "modalFooter.isOneDay": true + }, + () => { + that.refreshModalList(); + } + ); } else { - console.log('已有会议') + console.log("已有会议"); } } else { // 跨天 - this.getAllScheduleWithMeetingRoomByTime(data.reserveStartTime, this.data.meetingTime.startTime).then(res => { + this.getAllScheduleWithMeetingRoomByTime( + data.reserveStartTime, + this.data.meetingTime.startTime + ).then(res => { if (res) { - let modalFooterTime = new Date(data.reserveStartTime.replace(/-/g, '/')) - modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30) - let allMinutes = (modalFooterTime - new Date(that.data.meetingTime.startTime.replace(/-/g, '/')).getTime()) / 60000 - this.setData({ - 'meetingTime.endTime': data.reserveStartTime, - 'modalFooter.startTime': that.data.meetingTime.startTime, - 'modalFooter.endTime': `${modalFooterTime.getFullYear()}-${modalFooterTime.getMonth() < 9 ? '0' + (modalFooterTime.getMonth() + 1) : modalFooterTime.getMonth() + 1}-${modalFooterTime.getDate() < 10 ? '0' + modalFooterTime.getDate() : modalFooterTime.getDate()} ${modalFooterTime.getHours() < 10 ? '0' + modalFooterTime.getHours() : modalFooterTime.getHours()}:${modalFooterTime.getMinutes() < 10 ? '0' + modalFooterTime.getMinutes() : modalFooterTime.getMinutes()}`, - 'modalFooter.allMinutes': allMinutes, - 'modalFooter.isOneDay': false, - }, () => { - that.refreshModalList() - }) + let modalFooterTime = new Date( + data.reserveStartTime.replace(/-/g, "/") + ); + modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30); + let allMinutes = + (modalFooterTime - + new Date( + that.data.meetingTime.startTime.replace(/-/g, "/") + ).getTime()) / + 60000; + this.setData( + { + "meetingTime.endTime": data.reserveStartTime, + "modalFooter.startTime": that.data.meetingTime.startTime, + "modalFooter.endTime": `${modalFooterTime.getFullYear()}-${ + modalFooterTime.getMonth() < 9 + ? "0" + (modalFooterTime.getMonth() + 1) + : modalFooterTime.getMonth() + 1 + }-${ + modalFooterTime.getDate() < 10 + ? "0" + modalFooterTime.getDate() + : modalFooterTime.getDate() + } ${ + modalFooterTime.getHours() < 10 + ? "0" + modalFooterTime.getHours() + : modalFooterTime.getHours() + }:${ + modalFooterTime.getMinutes() < 10 + ? "0" + modalFooterTime.getMinutes() + : modalFooterTime.getMinutes() + }`, + "modalFooter.allMinutes": allMinutes, + "modalFooter.isOneDay": false + }, + () => { + that.refreshModalList(); + } + ); } else { dd.alert({ - content: '会议室已被占用', + content: "会议室已被占用" }); } - }) + }); } } - } else if (this.data.meetingTime.startTime && this.data.meetingTime.endTime) { + } else if ( + this.data.meetingTime.startTime && + this.data.meetingTime.endTime + ) { //判断有开始时间和结束时间 if (this.data.meetingTime.startTime === data.reserveStartTime) { //开始时间等于点击的开始时间,取消第一个的操作 - console.log('3.1') - let startTimeDate = new Date(this.data.meetingTime.startTime.replace(/-/g, '/')) - startTimeDate.setMinutes(startTimeDate.getMinutes() + 30) - let meetingStartTime = `${startTimeDate.getFullYear()}-${startTimeDate.getMonth() + 1 < 10 ? '0' + (startTimeDate.getMonth() + 1) : startTimeDate.getMonth() + 1}-${startTimeDate.getDate() < 10 ? '0' + startTimeDate.getDate() : startTimeDate.getDate()} ${startTimeDate.getHours() < 10 ? '0' + startTimeDate.getHours() : startTimeDate.getHours()}:${startTimeDate.getMinutes() < 10 ? '0' + startTimeDate.getMinutes() : startTimeDate.getMinutes()}` + console.log("3.1"); + let startTimeDate = new Date( + this.data.meetingTime.startTime.replace(/-/g, "/") + ); + startTimeDate.setMinutes(startTimeDate.getMinutes() + 30); + let meetingStartTime = `${startTimeDate.getFullYear()}-${ + startTimeDate.getMonth() + 1 < 10 + ? "0" + (startTimeDate.getMonth() + 1) + : startTimeDate.getMonth() + 1 + }-${ + startTimeDate.getDate() < 10 + ? "0" + startTimeDate.getDate() + : startTimeDate.getDate() + } ${ + startTimeDate.getHours() < 10 + ? "0" + startTimeDate.getHours() + : startTimeDate.getHours() + }:${ + startTimeDate.getMinutes() < 10 + ? "0" + startTimeDate.getMinutes() + : startTimeDate.getMinutes() + }`; if (meetingStartTime === this.data.meetingTime.endTime) { - let modalFooterTime = new Date(that.data.meetingTime.endTime.replace(/-/g, '/')) - modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30) - this.setData({ - 'meetingTime.startTime': meetingStartTime, - 'meetingTime.endTime': '', - 'modalFooter.startTime': meetingStartTime, - 'modalFooter.endTime': `${modalFooterTime.getFullYear()}-${modalFooterTime.getMonth() < 9 ? '0' + (modalFooterTime.getMonth() + 1) : modalFooterTime.getMonth() + 1}-${modalFooterTime.getDate() < 10 ? '0' + modalFooterTime.getDate() : modalFooterTime.getDate()} ${modalFooterTime.getHours() < 10 ? '0' + modalFooterTime.getHours() : modalFooterTime.getHours()}:${modalFooterTime.getMinutes() < 10 ? '0' + modalFooterTime.getMinutes() : modalFooterTime.getMinutes()}`, - 'modalFooter.allMinutes': 30, - 'modalFooter.isOneDay': true, - }, () => { - that.refreshModalList() - }) + let modalFooterTime = new Date( + that.data.meetingTime.endTime.replace(/-/g, "/") + ); + modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30); + this.setData( + { + "meetingTime.startTime": meetingStartTime, + "meetingTime.endTime": "", + "modalFooter.startTime": meetingStartTime, + "modalFooter.endTime": `${modalFooterTime.getFullYear()}-${ + modalFooterTime.getMonth() < 9 + ? "0" + (modalFooterTime.getMonth() + 1) + : modalFooterTime.getMonth() + 1 + }-${ + modalFooterTime.getDate() < 10 + ? "0" + modalFooterTime.getDate() + : modalFooterTime.getDate() + } ${ + modalFooterTime.getHours() < 10 + ? "0" + modalFooterTime.getHours() + : modalFooterTime.getHours() + }:${ + modalFooterTime.getMinutes() < 10 + ? "0" + modalFooterTime.getMinutes() + : modalFooterTime.getMinutes() + }`, + "modalFooter.allMinutes": 30, + "modalFooter.isOneDay": true + }, + () => { + that.refreshModalList(); + } + ); } else { - let modalFooterTime = new Date(that.data.meetingTime.endTime.replace(/-/g, '/')) - modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30) - let allMinutes = (modalFooterTime - new Date(meetingStartTime.replace(/-/g, '/')).getTime()) / 60000 - this.setData({ - 'meetingTime.startTime': meetingStartTime, - 'modalFooter.startTime': meetingStartTime, - 'modalFooter.endTime': `${modalFooterTime.getFullYear()}-${modalFooterTime.getMonth() < 9 ? '0' + (modalFooterTime.getMonth() + 1) : modalFooterTime.getMonth() + 1}-${modalFooterTime.getDate() < 10 ? '0' + modalFooterTime.getDate() : modalFooterTime.getDate()} ${modalFooterTime.getHours() < 10 ? '0' + modalFooterTime.getHours() : modalFooterTime.getHours()}:${modalFooterTime.getMinutes() < 10 ? '0' + modalFooterTime.getMinutes() : modalFooterTime.getMinutes()}`, - 'modalFooter.allMinutes': allMinutes, - }, () => { - that.refreshModalList() - }) + let modalFooterTime = new Date( + that.data.meetingTime.endTime.replace(/-/g, "/") + ); + modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30); + let allMinutes = + (modalFooterTime - + new Date(meetingStartTime.replace(/-/g, "/")).getTime()) / + 60000; + this.setData( + { + "meetingTime.startTime": meetingStartTime, + "modalFooter.startTime": meetingStartTime, + "modalFooter.endTime": `${modalFooterTime.getFullYear()}-${ + modalFooterTime.getMonth() < 9 + ? "0" + (modalFooterTime.getMonth() + 1) + : modalFooterTime.getMonth() + 1 + }-${ + modalFooterTime.getDate() < 10 + ? "0" + modalFooterTime.getDate() + : modalFooterTime.getDate() + } ${ + modalFooterTime.getHours() < 10 + ? "0" + modalFooterTime.getHours() + : modalFooterTime.getHours() + }:${ + modalFooterTime.getMinutes() < 10 + ? "0" + modalFooterTime.getMinutes() + : modalFooterTime.getMinutes() + }`, + "modalFooter.allMinutes": allMinutes + }, + () => { + that.refreshModalList(); + } + ); } } else if (this.data.meetingTime.endTime === data.reserveStartTime) { //开始时间等于点击的结束时间,取消最后一个的操作 - console.log('3.2') - let endTimeDate = new Date(this.data.meetingTime.endTime.replace(/-/g, '/')) - endTimeDate.setMinutes(endTimeDate.getMinutes() - 30) - let meetingEndTime = `${endTimeDate.getFullYear()}-${endTimeDate.getMonth() + 1 < 10 ? '0' + (endTimeDate.getMonth() + 1) : endTimeDate.getMonth() + 1}-${endTimeDate.getDate() < 10 ? '0' + endTimeDate.getDate() : endTimeDate.getDate()} ${endTimeDate.getHours() < 10 ? '0' + endTimeDate.getHours() : endTimeDate.getHours()}:${endTimeDate.getMinutes() < 10 ? '0' + endTimeDate.getMinutes() : endTimeDate.getMinutes()}` + console.log("3.2"); + let endTimeDate = new Date( + this.data.meetingTime.endTime.replace(/-/g, "/") + ); + endTimeDate.setMinutes(endTimeDate.getMinutes() - 30); + let meetingEndTime = `${endTimeDate.getFullYear()}-${ + endTimeDate.getMonth() + 1 < 10 + ? "0" + (endTimeDate.getMonth() + 1) + : endTimeDate.getMonth() + 1 + }-${ + endTimeDate.getDate() < 10 + ? "0" + endTimeDate.getDate() + : endTimeDate.getDate() + } ${ + endTimeDate.getHours() < 10 + ? "0" + endTimeDate.getHours() + : endTimeDate.getHours() + }:${ + endTimeDate.getMinutes() < 10 + ? "0" + endTimeDate.getMinutes() + : endTimeDate.getMinutes() + }`; if (meetingEndTime === this.data.meetingTime.startTime) { - let modalFooterTime = new Date(this.data.meetingTime.startTime.replace(/-/g, '/')) - modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30) - this.setData({ - 'meetingTime.endTime': '', - 'modalFooter.startTime': that.data.meetingTime.startTime, - 'modalFooter.endTime': `${modalFooterTime.getFullYear()}-${modalFooterTime.getMonth() < 9 ? '0' + (modalFooterTime.getMonth() + 1) : modalFooterTime.getMonth() + 1}-${modalFooterTime.getDate() < 10 ? '0' + modalFooterTime.getDate() : modalFooterTime.getDate()} ${modalFooterTime.getHours() < 10 ? '0' + modalFooterTime.getHours() : modalFooterTime.getHours()}:${modalFooterTime.getMinutes() < 10 ? '0' + modalFooterTime.getMinutes() : modalFooterTime.getMinutes()}`, - 'modalFooter.allMinutes': 30, - }, () => { - that.refreshModalList() - }) + let modalFooterTime = new Date( + this.data.meetingTime.startTime.replace(/-/g, "/") + ); + modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30); + this.setData( + { + "meetingTime.endTime": "", + "modalFooter.startTime": that.data.meetingTime.startTime, + "modalFooter.endTime": `${modalFooterTime.getFullYear()}-${ + modalFooterTime.getMonth() < 9 + ? "0" + (modalFooterTime.getMonth() + 1) + : modalFooterTime.getMonth() + 1 + }-${ + modalFooterTime.getDate() < 10 + ? "0" + modalFooterTime.getDate() + : modalFooterTime.getDate() + } ${ + modalFooterTime.getHours() < 10 + ? "0" + modalFooterTime.getHours() + : modalFooterTime.getHours() + }:${ + modalFooterTime.getMinutes() < 10 + ? "0" + modalFooterTime.getMinutes() + : modalFooterTime.getMinutes() + }`, + "modalFooter.allMinutes": 30 + }, + () => { + that.refreshModalList(); + } + ); } else { - let modalFooterTime = new Date(meetingEndTime.replace(/-/g, '/')) - modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30) - let allMinutes = (modalFooterTime - new Date(that.data.meetingTime.startTime.replace(/-/g, '/')).getTime()) / 60000 - this.setData({ - 'meetingTime.endTime': meetingEndTime, - 'modalFooter.startTime': that.data.meetingTime.startTime, - 'modalFooter.endTime': `${modalFooterTime.getFullYear()}-${modalFooterTime.getMonth() < 9 ? '0' + (modalFooterTime.getMonth() + 1) : modalFooterTime.getMonth() + 1}-${modalFooterTime.getDate() < 10 ? '0' + modalFooterTime.getDate() : modalFooterTime.getDate()} ${modalFooterTime.getHours() < 10 ? '0' + modalFooterTime.getHours() : modalFooterTime.getHours()}:${modalFooterTime.getMinutes() < 10 ? '0' + modalFooterTime.getMinutes() : modalFooterTime.getMinutes()}`, - 'modalFooter.allMinutes': allMinutes, - }, () => { - that.refreshModalList() - }) + let modalFooterTime = new Date(meetingEndTime.replace(/-/g, "/")); + modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30); + let allMinutes = + (modalFooterTime - + new Date( + that.data.meetingTime.startTime.replace(/-/g, "/") + ).getTime()) / + 60000; + this.setData( + { + "meetingTime.endTime": meetingEndTime, + "modalFooter.startTime": that.data.meetingTime.startTime, + "modalFooter.endTime": `${modalFooterTime.getFullYear()}-${ + modalFooterTime.getMonth() < 9 + ? "0" + (modalFooterTime.getMonth() + 1) + : modalFooterTime.getMonth() + 1 + }-${ + modalFooterTime.getDate() < 10 + ? "0" + modalFooterTime.getDate() + : modalFooterTime.getDate() + } ${ + modalFooterTime.getHours() < 10 + ? "0" + modalFooterTime.getHours() + : modalFooterTime.getHours() + }:${ + modalFooterTime.getMinutes() < 10 + ? "0" + modalFooterTime.getMinutes() + : modalFooterTime.getMinutes() + }`, + "modalFooter.allMinutes": allMinutes + }, + () => { + that.refreshModalList(); + } + ); } - } else if (new Date(this.data.meetingTime.startTime.replace(/-/g, '/')).getTime() > new Date(data.reserveStartTime.replace(/-/g, '/')).getTime()) { + } else if ( + new Date(this.data.meetingTime.startTime.replace(/-/g, "/")).getTime() > + new Date(data.reserveStartTime.replace(/-/g, "/")).getTime() + ) { //比已选时间小 - console.log('3.3') + console.log("3.3"); // 判断是否跨天 - if (this.isDaySpan(this.data.meetingTime.startTime.replace(/-/g, '/'), data.reserveStartTime.replace(/-/g, '/'))) { + if ( + this.isDaySpan( + this.data.meetingTime.startTime.replace(/-/g, "/"), + data.reserveStartTime.replace(/-/g, "/") + ) + ) { // 非跨天 - if (data.reserveStartTime, this.data.meetingTime.startTime) { - let modalFooterTime = new Date(that.data.meetingTime.endTime.replace(/-/g, '/')) - modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30) - let allMinutes = (modalFooterTime - new Date(data.reserveStartTime.replace(/-/g, '/')).getTime()) / 60000 - this.setData({ - 'meetingTime.startTime': data.reserveStartTime, - 'modalFooter.startTime': data.reserveStartTime, - 'modalFooter.endTime': `${modalFooterTime.getFullYear()}-${modalFooterTime.getMonth() < 9 ? '0' + (modalFooterTime.getMonth() + 1) : modalFooterTime.getMonth() + 1}-${modalFooterTime.getDate() < 10 ? '0' + modalFooterTime.getDate() : modalFooterTime.getDate()} ${modalFooterTime.getHours() < 10 ? '0' + modalFooterTime.getHours() : modalFooterTime.getHours()}:${modalFooterTime.getMinutes() < 10 ? '0' + modalFooterTime.getMinutes() : modalFooterTime.getMinutes()}`, - 'modalFooter.allMinutes': allMinutes, - 'modalFooter.isOneDay': true, - }, () => { - that.refreshModalList() - }) + if ((data.reserveStartTime, this.data.meetingTime.startTime)) { + let modalFooterTime = new Date( + that.data.meetingTime.endTime.replace(/-/g, "/") + ); + modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30); + let allMinutes = + (modalFooterTime - + new Date(data.reserveStartTime.replace(/-/g, "/")).getTime()) / + 60000; + this.setData( + { + "meetingTime.startTime": data.reserveStartTime, + "modalFooter.startTime": data.reserveStartTime, + "modalFooter.endTime": `${modalFooterTime.getFullYear()}-${ + modalFooterTime.getMonth() < 9 + ? "0" + (modalFooterTime.getMonth() + 1) + : modalFooterTime.getMonth() + 1 + }-${ + modalFooterTime.getDate() < 10 + ? "0" + modalFooterTime.getDate() + : modalFooterTime.getDate() + } ${ + modalFooterTime.getHours() < 10 + ? "0" + modalFooterTime.getHours() + : modalFooterTime.getHours() + }:${ + modalFooterTime.getMinutes() < 10 + ? "0" + modalFooterTime.getMinutes() + : modalFooterTime.getMinutes() + }`, + "modalFooter.allMinutes": allMinutes, + "modalFooter.isOneDay": true + }, + () => { + that.refreshModalList(); + } + ); } } else { // 跨天 - this.getAllScheduleWithMeetingRoomByTime(data.reserveStartTime, this.data.meetingTime.startTime).then(res => { + this.getAllScheduleWithMeetingRoomByTime( + data.reserveStartTime, + this.data.meetingTime.startTime + ).then(res => { if (res) { - let modalFooterTime = new Date(that.data.meetingTime.endTime.replace(/-/g, '/')) - modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30) - let allMinutes = (modalFooterTime - new Date(data.reserveStartTime.replace(/-/g, '/')).getTime()) / 60000 - this.setData({ - 'meetingTime.startTime': data.reserveStartTime, - 'modalFooter.startTime': data.reserveStartTime, - 'modalFooter.endTime': `${modalFooterTime.getFullYear()}-${modalFooterTime.getMonth() < 9 ? '0' + (modalFooterTime.getMonth() + 1) : modalFooterTime.getMonth() + 1}-${modalFooterTime.getDate() < 10 ? '0' + modalFooterTime.getDate() : modalFooterTime.getDate()} ${modalFooterTime.getHours() < 10 ? '0' + modalFooterTime.getHours() : modalFooterTime.getHours()}:${modalFooterTime.getMinutes() < 10 ? '0' + modalFooterTime.getMinutes() : modalFooterTime.getMinutes()}`, - 'modalFooter.allMinutes': allMinutes, - 'modalFooter.isOneDay': false, - }, () => { - that.refreshModalList() - }) + let modalFooterTime = new Date( + that.data.meetingTime.endTime.replace(/-/g, "/") + ); + modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30); + let allMinutes = + (modalFooterTime - + new Date( + data.reserveStartTime.replace(/-/g, "/") + ).getTime()) / + 60000; + this.setData( + { + "meetingTime.startTime": data.reserveStartTime, + "modalFooter.startTime": data.reserveStartTime, + "modalFooter.endTime": `${modalFooterTime.getFullYear()}-${ + modalFooterTime.getMonth() < 9 + ? "0" + (modalFooterTime.getMonth() + 1) + : modalFooterTime.getMonth() + 1 + }-${ + modalFooterTime.getDate() < 10 + ? "0" + modalFooterTime.getDate() + : modalFooterTime.getDate() + } ${ + modalFooterTime.getHours() < 10 + ? "0" + modalFooterTime.getHours() + : modalFooterTime.getHours() + }:${ + modalFooterTime.getMinutes() < 10 + ? "0" + modalFooterTime.getMinutes() + : modalFooterTime.getMinutes() + }`, + "modalFooter.allMinutes": allMinutes, + "modalFooter.isOneDay": false + }, + () => { + that.refreshModalList(); + } + ); } else { dd.alert({ - content: '会议室已被占用', + content: "会议室已被占用" }); } - }) + }); } } else { //比已选时间大直接赋值endTime - console.log('3.4') - if (this.isDaySpan(this.data.meetingTime.startTime.replace(/-/g, '/'), data.reserveStartTime.replace(/-/g, '/'))) { + console.log("3.4"); + if ( + this.isDaySpan( + this.data.meetingTime.startTime.replace(/-/g, "/"), + data.reserveStartTime.replace(/-/g, "/") + ) + ) { // 非跨天 - if (this.isOptional(this.data.meetingTime.startTime, data.reserveStartTime)) { + if ( + this.isOptional( + this.data.meetingTime.startTime, + data.reserveStartTime + ) + ) { //是否可选中 - let modalFooterTime2 = new Date(data.reserveStartTime.replace(/-/g, '/')) - modalFooterTime2.setMinutes(modalFooterTime2.getMinutes() + 30) - let allMinutes = (modalFooterTime2 - new Date(that.data.meetingTime.startTime.replace(/-/g, '/')).getTime()) / 60000 - console.log('3.4.1', allMinutes) - this.setData({ - 'meetingTime.endTime': data.reserveStartTime, - 'modalFooter.startTime': that.data.meetingTime.startTime, - 'modalFooter.endTime': `${modalFooterTime2.getFullYear()}-${modalFooterTime2.getMonth() < 9 ? '0' + (modalFooterTime2.getMonth() + 1) : modalFooterTime2.getMonth() + 1}-${modalFooterTime2.getDate() < 10 ? '0' + modalFooterTime2.getDate() : modalFooterTime2.getDate()} ${modalFooterTime2.getHours() < 10 ? '0' + modalFooterTime2.getHours() : modalFooterTime2.getHours()}:${modalFooterTime2.getMinutes() < 10 ? '0' + modalFooterTime2.getMinutes() : modalFooterTime2.getMinutes()}`, - 'modalFooter.allMinutes': allMinutes, - 'modalFooter.isOneDay': true, - }, () => { - that.refreshModalList() - }) + let modalFooterTime2 = new Date( + data.reserveStartTime.replace(/-/g, "/") + ); + modalFooterTime2.setMinutes(modalFooterTime2.getMinutes() + 30); + let allMinutes = + (modalFooterTime2 - + new Date( + that.data.meetingTime.startTime.replace(/-/g, "/") + ).getTime()) / + 60000; + console.log("3.4.1", allMinutes); + this.setData( + { + "meetingTime.endTime": data.reserveStartTime, + "modalFooter.startTime": that.data.meetingTime.startTime, + "modalFooter.endTime": `${modalFooterTime2.getFullYear()}-${ + modalFooterTime2.getMonth() < 9 + ? "0" + (modalFooterTime2.getMonth() + 1) + : modalFooterTime2.getMonth() + 1 + }-${ + modalFooterTime2.getDate() < 10 + ? "0" + modalFooterTime2.getDate() + : modalFooterTime2.getDate() + } ${ + modalFooterTime2.getHours() < 10 + ? "0" + modalFooterTime2.getHours() + : modalFooterTime2.getHours() + }:${ + modalFooterTime2.getMinutes() < 10 + ? "0" + modalFooterTime2.getMinutes() + : modalFooterTime2.getMinutes() + }`, + "modalFooter.allMinutes": allMinutes, + "modalFooter.isOneDay": true + }, + () => { + that.refreshModalList(); + } + ); } } else { // 跨天 - this.getAllScheduleWithMeetingRoomByTime(data.reserveStartTime, this.data.meetingTime.startTime).then(res => { + this.getAllScheduleWithMeetingRoomByTime( + data.reserveStartTime, + this.data.meetingTime.startTime + ).then(res => { if (res) { - let modalFooterTime = new Date(data.reserveStartTime.replace(/-/g, '/')) - modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30) - let allMinutes = (modalFooterTime - new Date(that.data.meetingTime.startTime.replace(/-/g, '/')).getTime()) / 60000 - this.setData({ - 'meetingTime.endTime': data.reserveStartTime, - 'modalFooter.startTime': that.data.meetingTime.startTime, - 'modalFooter.endTime': `${modalFooterTime.getFullYear()}-${modalFooterTime.getMonth() < 9 ? '0' + (modalFooterTime.getMonth() + 1) : modalFooterTime.getMonth() + 1}-${modalFooterTime.getDate() < 10 ? '0' + modalFooterTime.getDate() : modalFooterTime.getDate()} ${modalFooterTime.getHours() < 10 ? '0' + modalFooterTime.getHours() : modalFooterTime.getHours()}:${modalFooterTime.getMinutes() < 10 ? '0' + modalFooterTime.getMinutes() : modalFooterTime.getMinutes()}`, - 'modalFooter.allMinutes': allMinutes, - 'modalFooter.isOneDay': false, - }, () => { - that.refreshModalList() - }) + let modalFooterTime = new Date( + data.reserveStartTime.replace(/-/g, "/") + ); + modalFooterTime.setMinutes(modalFooterTime.getMinutes() + 30); + let allMinutes = + (modalFooterTime - + new Date( + that.data.meetingTime.startTime.replace(/-/g, "/") + ).getTime()) / + 60000; + this.setData( + { + "meetingTime.endTime": data.reserveStartTime, + "modalFooter.startTime": that.data.meetingTime.startTime, + "modalFooter.endTime": `${modalFooterTime.getFullYear()}-${ + modalFooterTime.getMonth() < 9 + ? "0" + (modalFooterTime.getMonth() + 1) + : modalFooterTime.getMonth() + 1 + }-${ + modalFooterTime.getDate() < 10 + ? "0" + modalFooterTime.getDate() + : modalFooterTime.getDate() + } ${ + modalFooterTime.getHours() < 10 + ? "0" + modalFooterTime.getHours() + : modalFooterTime.getHours() + }:${ + modalFooterTime.getMinutes() < 10 + ? "0" + modalFooterTime.getMinutes() + : modalFooterTime.getMinutes() + }`, + "modalFooter.allMinutes": allMinutes, + "modalFooter.isOneDay": false + }, + () => { + that.refreshModalList(); + } + ); } else { dd.alert({ - content: '会议室已被占用', + content: "会议室已被占用" }); } - }) + }); } } } }, // 接口判断跨天会议是否可点击 getAllScheduleWithMeetingRoomByTime(startTime, endTime) { - let endTimeDate = new Date(endTime.replace(/-/g, '/')) - endTimeDate.setMinutes(endTimeDate.getMinutes() + 30) + let endTimeDate = new Date(endTime.replace(/-/g, "/")); + endTimeDate.setMinutes(endTimeDate.getMinutes() + 30); let data = { meetingRoomId: this.data.meetingTime.meetingRoomId, startTime: `${startTime}:00`, - endTime: `${endTimeDate.getFullYear()}-${endTimeDate.getMonth() + 1 < 10 ? '0' + (endTimeDate.getMonth() + 1) : endTimeDate.getMonth() + 1}-${endTimeDate.getDate() < 10 ? '0' + endTimeDate.getDate() : endTimeDate.getDate()} ${endTimeDate.getHours() < 10 ? '0' + endTimeDate.getHours() : endTimeDate.getHours()}:${endTimeDate.getMinutes() < 10 ? '0' + endTimeDate.getMinutes() : endTimeDate.getMinutes()}:00` - } + endTime: `${endTimeDate.getFullYear()}-${ + endTimeDate.getMonth() + 1 < 10 + ? "0" + (endTimeDate.getMonth() + 1) + : endTimeDate.getMonth() + 1 + }-${ + endTimeDate.getDate() < 10 + ? "0" + endTimeDate.getDate() + : endTimeDate.getDate() + } ${ + endTimeDate.getHours() < 10 + ? "0" + endTimeDate.getHours() + : endTimeDate.getHours() + }:${ + endTimeDate.getMinutes() < 10 + ? "0" + endTimeDate.getMinutes() + : endTimeDate.getMinutes() + }:00` + }; return getAllScheduleWithMeetingRoomByTime(data).then(res => { - return res.data.data - }) + return res.data.data; + }); }, // 非跨天会议是否可点击 isOptional(startTime, endTime) { - let startTimeMS = new Date(startTime.replace(/-/g, '/')).getTime(); - let endTimeMs = new Date(endTime.replace(/-/g, '/')).getTime(); - let UnDisable = true + let startTimeMS = new Date(startTime.replace(/-/g, "/")).getTime(); + let endTimeMs = new Date(endTime.replace(/-/g, "/")).getTime(); + let UnDisable = true; this.data.modalList.map(item => { - let itemReserveStartTime = new Date(item.reserveStartTime.replace(/-/g, '/')).getTime(); - if (itemReserveStartTime >= startTimeMS && itemReserveStartTime <= endTimeMs) { - if (item.reserveStatus === 'expired' || item.reserveStatus === 'occupied') { - UnDisable = false + let itemReserveStartTime = new Date( + item.reserveStartTime.replace(/-/g, "/") + ).getTime(); + if ( + itemReserveStartTime >= startTimeMS && + itemReserveStartTime <= endTimeMs + ) { + if ( + item.reserveStatus === "expired" || + item.reserveStatus === "occupied" + ) { + UnDisable = false; } } - }) + }); return UnDisable; }, // 更新渲染数据 refreshModalList() { - let startTimeMS = new Date(this.data.meetingTime.startTime.replace(/-/g, '/')).getTime(); - let endTimeMs = new Date(this.data.meetingTime.endTime.replace(/-/g, '/')).getTime(); + let startTimeMS = new Date( + this.data.meetingTime.startTime.replace(/-/g, "/") + ).getTime(); + let endTimeMs = new Date( + this.data.meetingTime.endTime.replace(/-/g, "/") + ).getTime(); let modalList = this.data.modalList.map(item => { - let itemReserveStartTime = new Date(item.reserveStartTime.replace(/-/g, '/')).getTime(); - if (itemReserveStartTime === startTimeMS || (itemReserveStartTime >= startTimeMS && itemReserveStartTime <= endTimeMs)) { + let itemReserveStartTime = new Date( + item.reserveStartTime.replace(/-/g, "/") + ).getTime(); + if ( + itemReserveStartTime === startTimeMS || + (itemReserveStartTime >= startTimeMS && + itemReserveStartTime <= endTimeMs) + ) { return { ...item, - status: 'checked' - } + status: "checked" + }; } else { - if (item.reserveStatus === 'expired' || item.reserveStatus === 'occupied') { + if ( + item.reserveStatus === "expired" || + item.reserveStatus === "occupied" + ) { return { ...item, - status: 'BeOverdue' - } + status: "BeOverdue" + }; } else { return { ...item, - status: 'Uncheck' - } + status: "Uncheck" + }; } } - }) + }); this.setData({ modalList: modalList - }) + }); }, + // 是否跨天 isDaySpan(date1, date2) { var date1 = new Date(date1.substr(0, 10)); var date2 = new Date(date2.substr(0, 10)); - var date = (date2.getTime() - date1.getTime()) / (1000 * 60 * 60 * 24);/*不用考虑闰年否*/ - return date === 0 + var date = + (date2.getTime() - date1.getTime()) / + (1000 * 60 * 60 * 24); /*不用考虑闰年否*/ + return date === 0; }, // 点击今天明天后天 chooseDate(e) { + if (e && e.currentTarget.dataset.num == "3") { + this.setData({ + isShowCalendar: true, + dataNum: e.currentTarget.dataset.num + }); + } else { + this.setData( + { + "meetingTime.date": + e.currentTarget.dataset.num == "0" + ? this.data.TimeSlot.todayTime + : e.currentTarget.dataset.num == "1" + ? this.data.TimeSlot.tomorrowTime + : this.data.TimeSlot.afterTomorrowTime, + dataNum: e.currentTarget.dataset.num + }, + () => { + this.getTimeSlotData(); + } + ); + } + }, + getTimeSlotData() { let that = this; let modalDate = new Date(); let modalMins = modalDate.getMinutes(); - let modalHour = modalMins < 30 ? modalDate.getHours() < 10 ? '0' + modalDate.getHours() : modalDate.getHours() : (modalDate.getHours() + 1) < 10 ? '0' + (modalDate.getHours() + 1) : (modalDate.getHours() + 1) - let num = parseInt(e.currentTarget.dataset.num); + let modalHour = + modalMins < 30 + ? modalDate.getHours() < 10 + ? "0" + modalDate.getHours() + : modalDate.getHours() + : modalDate.getHours() + 1 < 10 + ? "0" + (modalDate.getHours() + 1) + : modalDate.getHours() + 1; let selectDate = new Date(this.data.meetingTime.date); - selectDate.setDate(selectDate.getDate() + num) - let meetingDate = `${selectDate.getFullYear()}-${selectDate.getMonth() + 1 < 10 ? '0' + (selectDate.getMonth() + 1) : selectDate.getMonth() + 1}-${selectDate.getDate() < 10 ? '0' + selectDate.getDate() : selectDate.getDate()}` + let meetingDate = `${selectDate.getFullYear()}-${ + selectDate.getMonth() + 1 < 10 + ? "0" + (selectDate.getMonth() + 1) + : selectDate.getMonth() + 1 + }-${ + selectDate.getDate() < 10 + ? "0" + selectDate.getDate() + : selectDate.getDate() + }`; let data = { meetingRoomId: that.data.meetingTime.meetingRoomId, startTime: meetingDate - } + }; getReserveRoomList(data).then(res => { let modalList = res.data.data[0].timeSlotWithMeetingVOS.map(item => { // 判断是否过期 - if (item.reserveStatus === 'expired' || item.reserveStatus === 'occupied') { + if ( + item.reserveStatus === "expired" || + item.reserveStatus === "occupied" + ) { return { ...item, - status: 'BeOverdue', + status: "BeOverdue", reserveStartTime: `${meetingDate} ${item.reserveStartTime}`, reserveEndTime: `${meetingDate} ${item.reserveEndTime}` - } + }; } else { return { ...item, - status: 'Uncheck', + status: "Uncheck", reserveStartTime: `${meetingDate} ${item.reserveStartTime}`, reserveEndTime: `${meetingDate} ${item.reserveEndTime}` - } + }; } - }) + }); if (this.data.meetingTime.startTime) { - let startTimeMS = new Date(this.data.meetingTime.startTime.replace(/-/g, '/')).getTime(); - let endTimeMs = new Date(this.data.meetingTime.endTime.replace(/-/g, '/')).getTime(); + let startTimeMS = new Date( + this.data.meetingTime.startTime.replace(/-/g, "/") + ).getTime(); + let endTimeMs = new Date( + this.data.meetingTime.endTime.replace(/-/g, "/") + ).getTime(); let modalList2 = modalList.map(item => { - let itemReserveStartTime = new Date(item.reserveStartTime.replace(/-/g, '/')).getTime(); - if (itemReserveStartTime === startTimeMS || (itemReserveStartTime >= startTimeMS && itemReserveStartTime <= endTimeMs)) { + let itemReserveStartTime = new Date( + item.reserveStartTime.replace(/-/g, "/") + ).getTime(); + if ( + itemReserveStartTime === startTimeMS || + (itemReserveStartTime >= startTimeMS && + itemReserveStartTime <= endTimeMs) + ) { return { ...item, - status: 'checked' - } + status: "checked" + }; } else { - if (item.reserveStatus === 'expired' || item.reserveStatus === 'occupied') { + if ( + item.reserveStatus === "expired" || + item.reserveStatus === "occupied" + ) { return { ...item, - status: 'BeOverdue' - } + status: "BeOverdue" + }; } else { return { ...item, - status: 'Uncheck' - } + status: "Uncheck" + }; } } - }) + }); that.setData({ modalList: modalList2, - dataNum: num, - toThisTime: `${modalHour}:${modalMins < 30 ? '30' : '00'}` - }) + toThisTime: `${modalHour}:${modalMins < 30 ? "30" : "00"}` + }); } else { that.setData({ modalList: modalList, - dataNum: num, - toThisTime: `${modalHour}:${modalMins < 30 ? '30' : '00'}` - }) + toThisTime: `${modalHour}:${modalMins < 30 ? "30" : "00"}` + }); } - }) - }, - // 计算明天 后天的日期 - getDay(currentDate, AddDayCount) { - let now = '' - if (currentDate.indexOf("-") != -1) { - now = new Date(currentDate.replace(/-/g, '/')) - } else { - now = new Date(currentDate) - } - - let time = now.setDate(now.getDate() + AddDayCount) - let year = new Date(time).getFullYear() - let month = new Date(time).getMonth() + 1 - let date = new Date(time).getDate() - return `${year}.${month < 10 ? '0' + month : month}.${date < 10 ? '0' + date : date}` + }); }, onCancel() { this.setData({ isShowModal: false, + isShowCalendar: false, modalList: [], meetingTime: { - startTime: '', - endTime: '', - date: '', - meetingRoomId: '' + startTime: "", + endTime: "", + date: "", + meetingRoomId: "" }, dataNum: 0, canScroll: true - }) + }); }, onDetermine() { - let startTime = this.data.meetingTime.startTime - // let startTime = `${year}-${month.length > 1 ? month : '0' + month}-${day.length > 1 ? day : '0' + day} ${hour < 10 ? '0' + hour : hour}` - // startTime = startTime + ':00' + let startTime = this.data.meetingTime.startTime; if (startTime && this.data.meetingTime.endTime) { - var endTimeDate = new Date(this.data.meetingTime.endTime.replace(/-/g, '/')) - endTimeDate.setMinutes(endTimeDate.getMinutes() + 30) - this.$store.data.startTime = `${startTime.replace(/-/g, '/')}:00` - this.$store.data.endTime = `${endTimeDate.getFullYear()}/${endTimeDate.getMonth() + 1 < 10 ? '0' + (endTimeDate.getMonth() + 1) : endTimeDate.getMonth() + 1}/${endTimeDate.getDate() < 10 ? '0' + endTimeDate.getDate() : endTimeDate.getDate()} ${endTimeDate.getHours() < 10 ? '0' + endTimeDate.getHours() : endTimeDate.getHours()}:${endTimeDate.getMinutes() < 10 ? '0' + endTimeDate.getMinutes() : endTimeDate.getMinutes()}:00` - this.$store.data.locationName = this.data.meetingTime.meetingRoomName - this.$store.data.roomId = this.data.meetingTime.meetingRoomId - this.update() + var endTimeDate = new Date( + this.data.meetingTime.endTime.replace(/-/g, "/") + ); + endTimeDate.setMinutes(endTimeDate.getMinutes() + 30); + this.$store.data.startTime = `${startTime.replace(/-/g, "/")}:00`; + this.$store.data.endTime = `${endTimeDate.getFullYear()}/${ + endTimeDate.getMonth() + 1 < 10 + ? "0" + (endTimeDate.getMonth() + 1) + : endTimeDate.getMonth() + 1 + }/${ + endTimeDate.getDate() < 10 + ? "0" + endTimeDate.getDate() + : endTimeDate.getDate() + } ${ + endTimeDate.getHours() < 10 + ? "0" + endTimeDate.getHours() + : endTimeDate.getHours() + }:${ + endTimeDate.getMinutes() < 10 + ? "0" + endTimeDate.getMinutes() + : endTimeDate.getMinutes() + }:00`; + this.$store.data.locationName = this.data.meetingTime.meetingRoomName; + this.$store.data.roomId = this.data.meetingTime.meetingRoomId; + this.update(); } else if (startTime) { - var endTimeDate = new Date(this.data.meetingTime.startTime.replace(/-/g, '/')) - endTimeDate.setMinutes(endTimeDate.getMinutes() + 30) - this.$store.data.startTime = `${startTime.replace(/-/g, '/')}:00` - this.$store.data.endTime = `${endTimeDate.getFullYear()}/${endTimeDate.getMonth() + 1 < 10 ? '0' + (endTimeDate.getMonth() + 1) : endTimeDate.getMonth() + 1}/${endTimeDate.getDate() < 10 ? '0' + endTimeDate.getDate() : endTimeDate.getDate()} ${endTimeDate.getHours() < 10 ? '0' + endTimeDate.getHours() : endTimeDate.getHours()}:${endTimeDate.getMinutes() < 10 ? '0' + endTimeDate.getMinutes() : endTimeDate.getMinutes()}:00` - this.$store.data.locationName = this.data.meetingTime.meetingRoomName - this.$store.data.roomId = this.data.meetingTime.meetingRoomId - this.update() + var endTimeDate = new Date( + this.data.meetingTime.startTime.replace(/-/g, "/") + ); + endTimeDate.setMinutes(endTimeDate.getMinutes() + 30); + this.$store.data.startTime = `${startTime.replace(/-/g, "/")}:00`; + this.$store.data.endTime = `${endTimeDate.getFullYear()}/${ + endTimeDate.getMonth() + 1 < 10 + ? "0" + (endTimeDate.getMonth() + 1) + : endTimeDate.getMonth() + 1 + }/${ + endTimeDate.getDate() < 10 + ? "0" + endTimeDate.getDate() + : endTimeDate.getDate() + } ${ + endTimeDate.getHours() < 10 + ? "0" + endTimeDate.getHours() + : endTimeDate.getHours() + }:${ + endTimeDate.getMinutes() < 10 + ? "0" + endTimeDate.getMinutes() + : endTimeDate.getMinutes() + }:00`; + this.$store.data.locationName = this.data.meetingTime.meetingRoomName; + this.$store.data.roomId = this.data.meetingTime.meetingRoomId; + this.update(); } dd.navigateBack({ delta: 2 - }) + }); }, getRoomList() { - let that = this + let that = this; let data = { startTime: that.data.search.time, - locationId: that.data.search.locationId, - equipFacilityIds: that.data.search.equipFacilityIds.toString() - } + locationId: that.data.search.locationId + }; getReserveRoomList(data).then(res => { if (res.data.data) { let reserveRoomList = res.data.data.map(item => { - let startTime = parseInt(item.timeSlotWithMeetingVOS[0].reserveStartTime.substring(0, 2)) - let endTime = parseInt(item.timeSlotWithMeetingVOS[item.timeSlotWithMeetingVOS.length - 1].reserveEndTime.substring(0, 2)) - let timeList = [] + let startTime = parseInt( + item.timeSlotWithMeetingVOS[0].reserveStartTime.substring(0, 2) + ); + let endTime = parseInt( + item.timeSlotWithMeetingVOS[ + item.timeSlotWithMeetingVOS.length - 1 + ].reserveEndTime.substring(0, 2) + ); + let timeList = []; for (let i = startTime; i < endTime; i++) { - timeList.push(i) + timeList.push(i); } return { ...item, - timeList, - } - }) + timeList + }; + }); that.setData({ reserveRoomList: reserveRoomList, noRoom: false - }) + }); } else { that.setData({ reserveRoomList: [], noRoom: true - }) + }); } - }) - }, - changeLocation() { - let that = this - let data = { - scene: 'meeting_room_location' - } - // 获取会议室设施的List - getLabelTree(data).then(res => { - that.setData({ - lableTreeList: res.data.data, - isShowLableModal: true, - 'location.id': that.data.search.locationId, - 'location.name': that.data.search.locationName, - }) - }) - }, - onPropsCS(e) { - let that = this - if (e.type == 'sure') { - this.setData({ - isShowLableModal: false, - 'search.locationId': e.id, - 'search.locationName': e.name - }, () => { - that.getRoomList() - }) - } else { - this.setData({ - isShowLableModal: false - }) - } - }, - changeSearchEquipFacility(e) { - let that = this - let id = e.currentTarget.dataset.id; - let index = this.data.search.equipFacilityIds.indexOf(id) - if (index === -1) { - let data = [...this.data.search.equipFacilityIds] - data.push(id) - this.setData({ - 'search.equipFacilityIds': data - }, () => { - that.getRoomList() - }) - } else { - let data = [...this.data.search.equipFacilityIds] - data.splice(index, 1) - this.setData({ - 'search.equipFacilityIds': data - }, () => { - that.getRoomList() - }) - } - }, - onReady() { - // 页面加载完成 - }, - onHide() { - // 页面隐藏 - }, - onUnload() { - // 页面被关闭 - - }, - onPullDownRefresh() { - // 页面被下拉 + }); }, - onReachBottom() { - // 页面被拉到底部 + handleSelect(e) { + let date = getFormatDate(e[0], "yyyyMMdd"); + this.setData( + { + isShowCalendar: false, + "meetingTime.date": date + }, + () => { + this.getTimeSlotData(); + } + ); }, - onShareAppMessage() { - // 返回自定义分享信息 + onMonthChange() {}, + onYearChange() {}, + onSelectHasDisableDate() { + my.alert({ + content: "SelectHasDisableDate" + }); } -}) \ No newline at end of file +}); diff --git a/pages/meetingRoomList/meetingRoomList.json b/pages/meetingRoomList/meetingRoomList.json index 39991c7..bcbb40d 100644 --- a/pages/meetingRoomList/meetingRoomList.json +++ b/pages/meetingRoomList/meetingRoomList.json @@ -1,7 +1,7 @@ { - "usingComponents": { - "timecheckmodal": "../../components/timeCheckModal/timeCheckModal", - "lable-tree": "../../components/selectArea/selectArea" - }, - "defaultTitle": "所有会议室" -} \ No newline at end of file + "usingComponents": { + "popup": "../../components/popup/index", + "calendar": "../../components/calendar/calendar" + }, + "defaultTitle": "所有会议室" +}