123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298 |
- import config from '@/config'
- import uma from 'umtrack-wx'
- function umaInit() {
- config.appKey &&
- uma.init({
- appKey: config.appKey, // 由友盟分配的APP_KEY
- // 使用Openid进行统计,此项为false时将使用友盟+uuid进行用户统计。
- // 使用Openid来统计微信小程序的用户,会使统计的指标更为准确,对系统准确性要求高的应用推荐使用Openid。
- useOpenid: false,
- // 使用openid进行统计时,是否授权友盟自动获取Openid,
- // 如若需要,请到友盟后台"设置管理-应用信息"(https://mp.umeng.com/setting/appset)中设置appId及secret
- autoGetOpenid: false
- // debug: true, // 是否打开调试模式
- // uploadUserInfo: true // 自动上传用户信息,设为false取消上传,默认为false
- })
- }
- const SliderUnit = 0.5 // 一个色块代表0.5个小时
- const TimeStart = 0
- const TimeEnd = 24
- function generateTimeSliders(openStartTime, openEndTime, disabledPast = true) {
- let start = TimeStart,
- end = TimeEnd
- let duration = end - start
- let times = []
- let { juggeValue } = getNowTime()
- for (let i = 0; i < duration / SliderUnit; i++) {
- let value = start + i * SliderUnit
- let values = value.toString().split('.')
- let status = ''
- let label = ''
- if (values.length == 1) {
- // 代表是整数
- label =
- parseInt(values[0]) < 10 ? '0' + values[0] + ':00' : values[0] + ':00'
- } else {
- // 代表是有分钟
- let mniuts = SliderUnit * 60 // 转化分钟;
- label =
- parseInt(values[0]) < 10
- ? '0' + values[0] + ':' + mniuts
- : values[0] + ':' + mniuts
- }
- if (disabledPast && value < juggeValue) {
- status = 'past' // 过去时间
- }
- if (openEndTime && value >= openStartTime && value <= openEndTime) {
- status = 'unOpened' // 不在开放时间内
- }
- times.push({
- value,
- label,
- status
- })
- }
- return times
- }
- function getNowTime() {
- let now = new Date()
- let hour = now.getHours()
- let minuts = now.getMinutes()
- // let hour = 16;
- // let minuts = 30;
- let minutsValue = 0
- if (minuts < 30) {
- // 在30分钟内,都可以预约当前小时,故取0
- minutsValue = 0
- } else {
- minutsValue = 0.5 // 在30分钟-59分钟内,都可以预约当前小时+半小时之后,故取0.5
- }
- let juggeValue = hour + minutsValue
- return {
- juggeValue,
- trueValue: {
- hour,
- minuts
- }
- }
- }
- function getNowDate(date) {
- let now = new Date()
- return getDate(now)
- }
- function getDate(now) {
- let year = now.getFullYear()
- let month = now.getMonth() + 1
- let date = now.getDate()
- return [year, getTowNum(month), getTowNum(date)].join('')
- }
- function getTowNum(num) {
- num = parseInt(num)
- return num < 10 ? '0' + num : num
- }
- function formateTimeValue(timeValue) {
- let value = parseFloat(timeValue)
- let hour = parseInt(timeValue)
- let minits = (value - hour) * 60
- return `${getTowNum(hour)}${getTowNum(minits)}00`
- }
- function formateDateValue(dateValue) {
- return dateValue.replace(/-/g, '')
- }
- function formateTimeToValue(time) {
- if (time === '') return 0
- let hours = time.substring(0, 2)
- let mins = time.substring(2, 4)
- let hoursValue = parseInt(hours)
- let mintusValue = parseInt(mins) / 60
- return hoursValue + mintusValue
- }
- function formateTimeToColon(time) {
- let hours = time.substring(0, 2)
- let mins = time.substring(2, 4)
- return `${hours}:${mins}`
- }
- function endtimeToUnitTime(time) {
- let hours = time.substring(0, 2)
- let mins = time.substring(2, 4)
- if (mins < 30) {
- mins = '00'
- } else {
- mins = '30'
- }
- return `${hours}${mins}00`
- }
- function startimeToUnitTime(time) {
- let hours = time.substring(0, 2)
- let mins = time.substring(2, 4)
- if (mins < 30 && mins !== '00') {
- mins = '30'
- } else if (mins > 30) {
- mins = '00'
- hours = parseInt(hours) + 1
- hours = hours < 10 ? `0${hours}` : hours
- } else {
- }
- return `${hours}${mins}00`
- }
- function formateBookedList(bookedList) {
- let list = {}
- if (!bookedList || (bookedList && bookedList.length == 0)) {
- return list
- }
- bookedList.forEach((item) => {
- let { startTime, endTime, startDate } = item
- let key = startDate
- let data = {
- start: formateTimeToValue(endtimeToUnitTime(startTime)),
- end: formateTimeToValue(startimeToUnitTime(endTime)),
- ...item
- }
- if (!list[key]) {
- list[key] = [data]
- } else {
- list[key].push(data)
- }
- })
- return list
- }
- function dateToDate(val) {
- const year = val.slice(0, 4)
- const month = val.slice(4, 6)
- const day = val.slice(6, 8)
- return `${year}-${month}-${day}`
- }
- function getWeekDay(date) {
- let week = date.getDay()
- let weekday = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
- return weekday[week]
- }
- function checkSpaceControl(val) {
- if (!val) {
- wx.showToast({
- title: '您没有权限!',
- icon: 'none',
- duration: 1500
- })
- return false
- } else {
- return true
- }
- }
- function carbonCredit(projectId) {
- return '碳积分'
- }
- function carbonCreditExplain(params) {
- const arr = [
- {
- id: '',
- sty: '',
- text: '空调加时积分规则:'
- },
- {
- id: '1.',
- sty: '',
- text: '空调/照明加时申请,增加积分1.5;'
- },
- {
- id: '2.',
- sty: '',
- text: '空调/照明加时时段内,点击“我要离开”主动结束加时,增加积分0.5。'
- },
- {
- id: '',
- sty: '',
- text: '空调&照明操作积分规则:'
- },
- {
- id: '1.',
- sty: '',
- text: '当日主动关闭空调或照明设备,且持续时间大于1小时,空调积2分,照明积0.3分;'
- },
- {
- id: '2.',
- sty: '',
- text: '夏季,空调调节温度大于等于26℃,且持续时间大于30分钟,积0.3分;'
- },
- {
- id: '3.',
- sty: '',
- text: '冬季,空调调节温度小于等于21℃,且持续时间大于30分钟,积0.3分;'
- },
- {
- id: '4.',
- sty: '',
- text: '办公室出现大于等于2个空调或照明设备时,用户开启空调或照明30分钟后,未开启的空调或照明数量大于等于1个时,空调积1分,照明积0.2分。'
- },
- {
- id: '',
- sty: '',
- text: '会议场景积分规则:'
- },
- {
- id: '1.',
- sty: '',
- text: '会议期间提前结束会议,从讨论或投影场景切换至散会场景时,积2分。'
- },
- {
- id: '',
- sty: 'color:#9FA3AF;padding-top:20rpx;',
- text: '说明:'
- },
- {
- id: '1.',
- sty: 'color:#9FA3AF;font-size:24rpx',
- text: '以上低碳行为会根据系统规则在正常使用空调/照明等设备的合理范围内限制积分次数;'
- },
- {
- id: '2.',
- sty: 'color:#9FA3AF;font-size:24rpx',
- text: '低碳积分将同时计入个人和企业积分账户。'
- }
- ]
- return arr
- }
- export {
- carbonCreditExplain,
- carbonCredit,
- checkSpaceControl,
- umaInit,
- generateTimeSliders,
- getNowTime,
- formateBookedList,
- formateTimeValue,
- formateTimeToValue,
- formateDateValue,
- getNowDate,
- formateTimeToColon,
- dateToDate,
- getWeekDay,
- endtimeToUnitTime,
- startimeToUnitTime,
- TimeEnd,
- TimeStart,
- SliderUnit
- }
|