<template>
|
<view class="page-calendar">
|
<view class="container justify-center items-center" v-if="noCalendar">
|
<view class="uni-panel-create-calendar" v-if="loadedCalendar">
|
<view class="uni-create-calendar-tip">您还没有一个 {{dateCalendar.getFullYear()}} 年度的日历,赶紧点击下面 的按钮创建一个吧</view>
|
<button type="primary" @click="clickCreateCalendar">创建日历</button>
|
</view>
|
</view>
|
<view class="container" v-else>
|
<view class="uni-panel-header-main">
|
<view class="uni-panel-header">
|
<view class="uni-panel-header-child-menu fu-list1" @click="clickMenu">
|
</view>
|
<picker mode="date" fields="month" :start="startDateCalendar" :end="endDateCalendar"
|
@change="bindDateChange">
|
<view class="uni-panel-header-child-date">
|
<text>{{monthText}}</text>
|
<text style="padding: 5px;" class="fs-ArrowDown" />
|
</view>
|
</picker>
|
</view>
|
<view class="uni-panel-content">
|
<view class="uni-panel-week">
|
<text class="uni-panel-week-item">日</text>
|
<text class="uni-panel-week-item">一</text>
|
<text class="uni-panel-week-item">二</text>
|
<text class="uni-panel-week-item">三</text>
|
<text class="uni-panel-week-item">四</text>
|
<text class="uni-panel-week-item">五</text>
|
<text class="uni-panel-week-item">六</text>
|
</view>
|
<view class="uni-panel-calenda">
|
<calendarDate ref="calendar" class="uni-panel-calendar" :lunar="switchedLunar"
|
:selected="events" @change="changeCalendar" @monthSwitch="monthSwitchCalendar">
|
</calendarDate>
|
<view class="uni-panel-calendar-schedule">
|
<view class="uni-panel-schedule-title">{{dayText}}</view>
|
<view class="uni-panel-item" v-for="(item, index) in dayEvents" :key="item.ID">
|
<scheduleItem :isMy="isMyCalendar" :calendarId="calendarID" :scheduleData="item"></scheduleItem>
|
</view>
|
</view>
|
</view>
|
</view>
|
</view>
|
<view class="uni-panel-button-add fs-CirclPlus" v-if="isMyCalendar" @click="clickAddEvent"
|
@touchstart='btnTouchStart' @touchmove='btnTouchMove'
|
:style="{transform:`translate(${btninfo.x}px,${btninfo.y}px) scale(1)`}">
|
</view>
|
<view>
|
<!-- 普通弹窗 -->
|
<uni-popup ref="popupLeft" background-color="#fff">
|
<view class="popup-content" style="padding: 2px 4px 12px;">
|
<view class="uni-panel-h" style="padding: 4px 10px;">
|
<view>显示农历</view>
|
<switch :checked="switchedLunar" color="#007aff" style="transform:scale(0.8)"
|
@change="changeLunarSwitched" />
|
</view>
|
<view class="uni-panel-menu-content">
|
<uni-collapse ref="collapse">
|
<uni-collapse-item titleBorder="none" :open="true">
|
<template v-slot:title>
|
<view class="uni-collapse-item-ban"><text
|
class="uni-collapse-item-ico fs-ArrowDown"></text>
|
<text class="uni-collapse-item-text">我的日历</text>
|
<text class="uni-panel-right-icon fs-CirclPlus blue-text"
|
@click.prevent.stop="clickCreateCalendar"></text>
|
<text class="uni-panel-right-icon fs-set blue-text"
|
@click.prevent.stop="clickSetCalendar"></text>
|
</view>
|
</template>
|
<view class="uni-collapse-content">
|
<view class="uni-collapse-content-item"
|
:class="calendarID == item.ID ? 'uni-collapse-content-item-sel' : ''"
|
v-for="(item,index) in myCalendars" :key="index"
|
@click="clickCalendarItem(item,true)">
|
<text class="uni-collapse-item-ico " :class="item.IsDefault?'fs-favor_fill_light orange':'fs-calendar'"></text> <text
|
class="uni-collapse-item-text">{{item.Name}}</text>
|
<text class="uni-panel-right-icon fs-cancle blue-text"
|
@click="clickShareCalendar(item)"></text>
|
<text class="uni-panel-right-icon fs-delete_solid_circle blue-text"
|
@click="clickRemoveCalendar(item)"></text>
|
</view>
|
</view>
|
</uni-collapse-item>
|
<uni-collapse-item titleBorder="none" :open="true">
|
<template v-slot:title>
|
<view class="uni-collapse-item-ban"><text
|
class="uni-collapse-item-ico fs-ArrowDown"></text>
|
<text class="uni-collapse-item-text">其他人的日历</text>
|
<text class="uni-panel-right-icon fs-set blue-text"
|
@click.prevent.stop="clickSetOtherCalendar"></text>
|
</view>
|
</template>
|
<view class="uni-collapse-content">
|
<view class="uni-collapse-content-item"
|
:class="calendarID == item.ID ? 'uni-collapse-content-item-sel' : ''"
|
v-for="(item,index) in otherCalendars" :key="index"
|
@click="clickCalendarItem(item,false)">
|
<text class="uni-collapse-item-ico fs-calendar"></text>
|
{{item.CreatorName }}{{ ' ('+item.Name +')'}}<!-- {{item.Name}} -->
|
</view>
|
</view>
|
</uni-collapse-item>
|
</uni-collapse>
|
</view>
|
</view>
|
</uni-popup>
|
</view>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import TaskInit from "@/common/extend.js"
|
import Session from "@/common/utils.js"
|
import CalendarLunar from '@/common/calendarLunar.js'
|
import {
|
showModal,
|
showToast,
|
showLoading,
|
hideLoading
|
} from "@/common/Page.js"
|
import {
|
Base64
|
} from 'js-base64';
|
import calendarDate from '@/components/calendar/infos/date.vue'
|
import scheduleItem from "./infos/schedule-item.vue"
|
import {
|
list as calendarList,
|
otherList as calendarOtherlist,
|
eventList as calendarEventList,
|
del as calendarDelete,
|
shareAdd as calendarShareAdd,
|
} from "@/api/gungho/calendar.js"
|
|
export default {
|
name: "pageCalendar",
|
components: {
|
calendarDate,
|
scheduleItem,
|
},
|
data() {
|
return {
|
loadedCalendar: false,
|
noCalendar: true,
|
events: [],
|
dayEvents: [],
|
calendarID: "",
|
dateCalendar: new Date(),
|
selCalendar: {},
|
startDateCalendar: TaskInit.dateUtils.getDate('start'),
|
endDateCalendar: TaskInit.dateUtils.getDate('end'),
|
switchedLunar: false,
|
switchedDateTerm: true,
|
myCalendars: [],
|
otherCalendars: [],
|
isMyCalendar: true,
|
btninfo: {
|
lx: 0,
|
ly: 0,
|
x: 0,
|
y: 0
|
}
|
}
|
},
|
computed: {
|
monthText() {
|
return TaskInit.dateUtils.getShortDate(TaskInit.dateUtils.toDateString(this.dateCalendar))
|
},
|
dayText() {
|
|
let curDate = new Date()
|
let fullDate = this.selCalendar.fulldate
|
let month = curDate.getMonth() + 1
|
let day = curDate.getDate()
|
let nowDate = curDate.getFullYear() + '-' + (month < 10 ?
|
'0' + month : month) + '-' + (day < 10 ?
|
'0' + day : day)
|
//console.log("dayText",nowDate,fullDate)
|
// 是否今天
|
let isDay = fullDate === nowDate
|
if (isDay)
|
return "今天"
|
else
|
return this.selCalendar.month + '-' + this.selCalendar.date
|
},
|
},
|
methods: {
|
setData: function(obj) {
|
let that = this;
|
let keys = [];
|
let val, data;
|
|
Object.keys(obj).forEach(function(key) {
|
keys = key.split(".");
|
val = obj[key];
|
data = that.$data;
|
keys.forEach(function(key2, index) {
|
if (index + 1 == keys.length) {
|
that.$set(data, key2, val);
|
} else {
|
if (!data[key2]) {
|
that.$set(data, key2, {});
|
}
|
}
|
data = data[key2];
|
});
|
});
|
},
|
bindDateChange(e) {
|
//console.log("bindDateChange",e.detail)
|
this.setData({
|
dateCalendar: TaskInit.dateUtils.parse(e.detail.value)
|
})
|
|
//console.log("bindDateChange2",this.dateCalendar)
|
this.$refs.calendar.setDate(this.dateCalendar)
|
this.loadMonthEventList(this.dateCalendar)
|
|
},
|
changeCalendar(e) {
|
//console.log("changeCalendar",e)
|
var _this = this
|
|
_this.setData({
|
selCalendar: e,
|
dayEvents: []
|
})
|
if (_this.calendarID == "")
|
return
|
let year = e.year;
|
let month = e.month
|
let day = e.date
|
|
let startDate = `${year}-${month}-${day}`;
|
let endDate = `${year}-${month}-${day}`;
|
//console.log("changeCalendar", startDate, endDate)
|
calendarEventList(_this.calendarID, {
|
startDate,
|
endDate
|
}).then((res) => {
|
|
let events = _this.eventDatas(res || [])
|
|
_this.setData({
|
dayEvents: events
|
})
|
console.log("changeCalendar eventList", events)
|
|
}).catch((rej) => {
|
console.log("changeCalendar eventList catch", rej)
|
})
|
},
|
monthSwitchCalendar(e) {
|
//console.log("monthSwitchCalendar",e)
|
var _this = this
|
const yearOld = _this.dateCalendar.getFullYear()
|
_this.setData({
|
dateCalendar: new Date(e.year, e.month - 1, 1)
|
})
|
//console.log("monthSwitchCalendar",_this.dateCalendar)
|
if (e.year != yearOld) {
|
setTimeout(() => {
|
_this.loadMonthEventList(_this.dateCalendar)
|
}, 200)
|
|
} else {
|
_this.loadMonthEventList(_this.dateCalendar)
|
}
|
},
|
clickToday() {
|
this.$refs.calendar.backtoday()
|
},
|
|
loadMonthEventList(date) {
|
var _this = this
|
if (_this.calendarID != "") {
|
//console.log("loadMonthEventList",_this.calendarID )
|
let day = new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()
|
let date1 = new Date(date.getFullYear(), date.getMonth(), 1)
|
let date2 = new Date(date.getFullYear(), date.getMonth(), day)
|
date1.setDate(date1.getDate() - 6)
|
date2.setDate(date2.getDate() + 6)
|
|
let year1 = date1.getFullYear();
|
let month1 = date1.getMonth() + 1;
|
let day1 = date1.getDate();
|
let year2 = date2.getFullYear();
|
let month2 = date2.getMonth() + 1;
|
let day2 = date2.getDate();
|
|
month1 = month1 > 9 ? month1 : '0' + month1;
|
month2 = month2 > 9 ? month2 : '0' + month2;
|
|
day1 = day1 > 9 ? day1 : '0' + day1;
|
day2 = day2 > 9 ? day2 : '0' + day2;
|
let startDate = `${year1}-${month1}-${day1}`;
|
let endDate = `${year2}-${month2}-${day2}`;
|
// console.log("loadMonthEventList", startDate, endDate)
|
calendarEventList(_this.calendarID, {
|
startDate,
|
endDate
|
}).then((res) => {
|
//console.log("loadMonthEventList eventList res",res)
|
_this.markEventCalendar(res || [])
|
}).catch((rej) => {
|
console.log("loadMonthEventList eventList catch", rej)
|
})
|
}
|
},
|
eventDatas(res) {
|
let event = []
|
for (let i = 0; i < res.length; i++) {
|
let trimsplit = res[i].StartTime.split(' ');
|
let trimsplit2 = res[i].EndTime.split(' ');
|
let timearr = this.getAll(trimsplit[0], trimsplit2[0]); //计算两个日期中的日期
|
res[i].Note = Base64.decode(res[i].Note || "")
|
event.push(res[i])
|
}
|
return event
|
},
|
markEventCalendar(res) {
|
let event = []
|
let dEvents = []
|
let dayDate = TaskInit.dateUtils.toDateString(this.dateCalendar)
|
// console.log("markEventCalendar:",dayDate)
|
for (let i = 0; i < res.length; i++) {
|
let trimsplit = res[i].StartTime.split(' ');
|
let trimsplit2 = res[i].EndTime.split(' ');
|
let bFlag = false
|
let timearr = this.getAll(trimsplit[0], trimsplit2[0]); //计算两个日期中的日期
|
//console.log(i,timearr )
|
for (let t = 0; t < timearr.length; t++) {
|
//var start =timearr[t].split('-');
|
event.push({
|
date: timearr[t],
|
info: '日程'
|
})
|
|
if (timearr[t] == dayDate)
|
bFlag = true
|
}
|
res[i].Note = Base64.decode(res[i].Note || "")
|
if (bFlag)
|
dEvents.push(res[i])
|
}
|
// console.log("markEventCalendar",event,dEvents)
|
this.setData({
|
events: event,
|
dayEvents: dEvents,
|
})
|
},
|
getAll(begin, end) {
|
let arr = [];
|
let ab = begin.split("-");
|
let ae = end.split("-");
|
let db = new Date();
|
db.setUTCFullYear(ab[0], ab[1] - 1, ab[2]);
|
let de = new Date();
|
de.setUTCFullYear(ae[0], ae[1] - 1, ae[2]);
|
let unixDb = db.getTime() - 24 * 60 * 60 * 1000;
|
let unixDe = de.getTime() - 24 * 60 * 60 * 1000;
|
for (let k = unixDb; k <= unixDe;) {
|
//console.log((new Date(parseInt(k))).format());
|
k = k + 24 * 60 * 60 * 1000;
|
let date = TaskInit.dateUtils.toDateString(new Date(parseInt(k)))
|
arr.push(date);
|
}
|
return arr;
|
},
|
clickAddEvent() {
|
//console.log("clickAddEvent")
|
uni.navigateTo({
|
url: '/pages/calendar/schedule?calendarId=' + this.calendarID + "&canEdit=1&date=" + this.selCalendar
|
.fulldate
|
})
|
},
|
eventDataChange(data) {
|
//console.log("tasks eventDataChange",data)
|
var _this = this
|
_this.loadMonthEventList(_this.dateCalendar)
|
},
|
clickMenu() {
|
this.$refs.popupLeft.open("left")
|
},
|
clickCreateCalendar() {
|
uni.navigateTo({
|
url: '/pages/calendar/add'
|
})
|
},
|
clickSetCalendar() {
|
uni.navigateTo({
|
url: '/pages/calendar/set'
|
})
|
},
|
clickSetOtherCalendar() {
|
uni.navigateTo({
|
url: '/pages/calendar/atten'
|
})
|
},
|
clickShareCalendar(item) {
|
const _this = this
|
uni.navigateTo({
|
url: "/pages/org/selpsn?multiselect=true&title=日历分享给",
|
events: {
|
selPsnOk: function(data) {
|
_this.getBackUser(data)
|
}
|
}
|
})
|
},
|
clickRemoveCalendar(item) {
|
showModal("是否真的要删除该日历? 系统在删除日历的时会删除和该日历相关的所有日程,请慎重!", "提醒").then((res) => {
|
if (res) {
|
calendarDelete(item.ID).then((res) => {
|
|
showToast("日历删除成功", "success")
|
this.loadCalendarMyList()
|
}).catch((rej) => {
|
console.log("delCalendar failed", rej)
|
showModal(rej, "出错", false)
|
})
|
}
|
})
|
},
|
loadCalendarMyList() {
|
var _this = this
|
let year = this.dateCalendar.getFullYear()
|
_this.loadedCalendar = false
|
_this.noCalendar = true
|
showLoading("加载中,请稍后...")
|
calendarList().then((res) => {
|
const list = res || []
|
if (list.length > 0) {
|
_this.setData({
|
myCalendars: list,
|
noCalendar: false,
|
loadedCalendar: true
|
})
|
_this.noCalendar = false
|
let curIndex = _this.myCalendars.findIndex((item2, index, arr) => {
|
return item2.IsDefault;
|
})
|
if (curIndex < 0) {
|
_this.calendarID = list[0].ID
|
}
|
else
|
{
|
_this.calendarID = list[curIndex].ID
|
}
|
uni.setNavigationBarTitle({
|
title: `日历 ${list[0].Name}`
|
})
|
setTimeout(() => {
|
_this.loadMonthEventList(_this.dateCalendar)
|
}, 200)
|
} else
|
_this.setData({
|
myCalendars: [],
|
noCalendar: true,
|
loadedCalendar: true
|
})
|
hideLoading()
|
}).catch((rej) => {
|
_this.setData({
|
myCalendars: [],
|
noCalendar: true,
|
loadedCalendar: true
|
})
|
_this.loadedCalendar = true
|
hideLoading()
|
console.log("calendarList catch", rej)
|
})
|
},
|
loadCalendarOtherList() {
|
var _this = this
|
let year = this.dateCalendar.getFullYear()
|
showLoading("加载中,请稍后...")
|
calendarOtherlist(0x01).then((res) => {
|
//console.log("calendarOtherlist res",res)
|
_this.setData({
|
otherCalendars: res || []
|
})
|
hideLoading()
|
}).catch((rej) => {
|
_this.setData({
|
otherCalendars: []
|
})
|
hideLoading()
|
})
|
},
|
calendarListChanged() {
|
|
this.loadCalendarMyList()
|
this.loadCalendarOtherList()
|
},
|
clickCalendarItem(item, isMy) {
|
this.$refs.popupLeft.close()
|
this.calendarID = item.ID
|
uni.setNavigationBarTitle({
|
title: isMy ? `日历 ${item.Name}` : `日历 ${item.CreatorName} (${item.Name})`
|
})
|
this.isMyCalendar = isMy
|
|
setTimeout(() => {
|
this.$refs.calendar.setDate(this.dateCalendar)
|
this.loadMonthEventList(this.dateCalendar)
|
}, 200)
|
},
|
changeLunarSwitched(evt) {
|
let checked = evt.detail.value;
|
this.setData({
|
switchedLunar: checked
|
});
|
//console.log("changeLunarSwitched",this.switchedLunar)
|
let info = {
|
lunar: checked
|
}
|
Session.setValue('calendar_info', info)
|
},
|
changeDateTermSwitched(evt) {
|
//console.log("changeLunarSwitched",evt)
|
let checked = evt.detail.value;
|
this.setData({
|
switchedDateTerm: checked
|
});
|
},
|
getBackUser(data) {
|
const _this = this
|
setTimeout(() => {
|
_this.addCalendarShare(data)
|
}, 10)
|
|
|
},
|
addCalendarShare(users) {
|
const _this = this
|
const shareUsers = []
|
if (users.length > 0) {
|
users.forEach(function(item) {
|
shareUsers.push({
|
login: item.Login,
|
name: item.Name
|
})
|
})
|
calendarShareAdd({
|
id: _this.calendarID,
|
users: shareUsers
|
}).then((res) => {
|
showToast("日历分享成功", "success")
|
}).catch((rej) => {
|
console.log("calendarShareAdd failed", rej)
|
showModal(rej, "出错", false)
|
})
|
}
|
},
|
btnTouchStart(e) {
|
this.btninfo.lx = e.touches[0].clientX;
|
this.btninfo.ly = e.touches[0].clientY;
|
},
|
btnTouchMove(e) {
|
this.btninfo.x += (e.touches[0].clientX - this.btninfo.lx)
|
this.btninfo.y += (e.touches[0].clientY - this.btninfo.ly)
|
this.btninfo.lx = e.touches[0].clientX;
|
this.btninfo.ly = e.touches[0].clientY;
|
Session.setValue('calendar_btninfo', this.btninfo)
|
},
|
showError(ex) {
|
let tip = typeof ex == 'string' ? ex : typeof ex.err_msg == 'string' ? ex.err_msg : typeof ex.errMsg ==
|
'string' ? ex.errMsg : ""
|
showModal(tip, "提示", false)
|
},
|
},
|
onTabItemTap(item) {
|
//console.log("calendar-event onTabItemTap",item)
|
let default_pageinfo = Session.getDefaultPageInfo()
|
if (!default_pageinfo) {
|
default_pageinfo = {}
|
}
|
default_pageinfo.pagePath = item.pagePath
|
Session.setDefaultPageInfo(default_pageinfo)
|
},
|
onLoad() {
|
// #ifdef MP-DINGTALK
|
|
my.setNavigationBar({
|
backgroundColor: "#007AFF",
|
frontColor: "#ffffff"
|
})
|
// #endif
|
let btninfo = Session.getValue('calendar_btninfo')
|
if (btninfo) {
|
if (btninfo.x > 10) {
|
btninfo.x = 10
|
}
|
if (btninfo.x > 40) {
|
btninfo.x = 40
|
}
|
this.btninfo = btninfo
|
//console.log("onLoad calendar_btninfo:",btninfo)
|
|
}
|
let info = Session.getValue('calendar_info')
|
if (info) {
|
//console.log("onLoad calendar_info:",info)
|
if (info.lunar) {
|
this.setData({
|
switchedLunar: info.lunar
|
});
|
}
|
}
|
/* uni.setTabBarBadge({index:3,
|
text:"99+",
|
success(res) {
|
console.log("setTabBarBadge success",res)
|
},
|
fail(res) {
|
console.log("setTabBarBadge fail",res)
|
}
|
}) */
|
/*
|
my.setNavigationBar({
|
reset:true,
|
title:"测试",
|
success(res){
|
console.log("setNavigationBar success",res)
|
},
|
fail(res){
|
console.log("setNavigationBar fail",res)
|
}
|
}) */
|
this.loadCalendarMyList()
|
this.loadCalendarOtherList()
|
var pages = getCurrentPages()
|
let default_pageinfo = Session.getDefaultPageInfo()
|
if (!default_pageinfo) {
|
default_pageinfo = {}
|
}
|
default_pageinfo.pagePath = pages[0].route
|
Session.setDefaultPageInfo(default_pageinfo)
|
uni.$on('calendarListChange', this.calendarListChanged)
|
},
|
onUnload() {
|
uni.$off('calendarListChange', this.calendarListChanged)
|
},
|
|
}
|
</script>
|
|
<style lang="scss" scoped>
|
.page-calendar {
|
width: 750rpx;
|
height: 100vh;
|
|
.container {
|
display: flex;
|
width: 100%;
|
height: 100%;
|
flex-direction: column;
|
}
|
|
.uni-panel-create-calendar {
|
padding: 20px;
|
}
|
|
.uni-create-calendar-tip {
|
color: #aaa;
|
padding-bottom: 20px;
|
font-size: 20px;
|
}
|
|
.justify-center {
|
justify-content: center;
|
}
|
|
.items-center {
|
align-items: center
|
}
|
|
.uni-panel-header-main {
|
width: 100%;
|
position: fixed;
|
height: 100%;
|
left: 0;
|
z-index: 10;
|
}
|
|
.uni-panel-header {
|
height: 40px;
|
padding: 0 3%;
|
display: flex;
|
flex-wrap: wrap;
|
align-items: center;
|
color: #000;
|
font-size: 16px;
|
}
|
|
.uni-panel-header-child-menu {
|
display: flex;
|
padding: 0px 10px;
|
font-size: 20px;
|
color: #505050;
|
}
|
|
.uni-panel-header-child-date {
|
display: flex;
|
margin-left: 200rpx;
|
|
}
|
|
.clearfix {
|
content: " ";
|
box-sizing: border-box;
|
}
|
|
.uni-panel-day {
|
height: 72px;
|
background: #00aaff;
|
color: #898989;
|
}
|
|
.uni-panel-day-grid {
|
width: 92%;
|
height: 100%;
|
padding: 0 5%;
|
display: flex;
|
align-items: center;
|
}
|
|
.uni-panel-day-left {
|
display: flex;
|
flex-basis: 56%;
|
}
|
|
.uni-panel-day-right {
|
display: flex;
|
flex: 0;
|
flex-grow: 0;
|
flex-shrink: 0;
|
flex-basis: 44%;
|
align-items: center;
|
justify-content: flex-end;
|
}
|
|
.uni-panel-h1 {
|
font-size: 48px;
|
padding-right: 5px;
|
font-weight: 600;
|
}
|
|
.uni-panel-day-top-contrl {
|
display: flex;
|
flex-wrap: wrap;
|
margin: 10px;
|
flex-direction: column;
|
}
|
|
.uni-panel-day-right .yun {
|
height: 100%;
|
display: flex;
|
align-items: center;
|
}
|
|
.uni-panel-day-right .yun text {
|
display: inline-block;
|
font-size: 24px;
|
width: 40px;
|
height: 40px;
|
line-height: 40px;
|
text-align: center;
|
border: 2px solid #898989;
|
border-radius: 50%;
|
margin: 2px;
|
}
|
|
.uni-panel-content {
|
padding-top: 5px;
|
height: calc(100% - 48px);
|
}
|
|
.uni-panel-week {
|
width: 94%;
|
padding: 0 3%;
|
display: flex;
|
height: 32px;
|
}
|
|
.uni-panel-week-item {
|
display: flex;
|
flex: auto;
|
justify-content: center;
|
align-items: center;
|
font-size: 14px;
|
color: #606060;
|
}
|
|
.uni-panel-calenda {
|
width: 100%;
|
display: flex;
|
flex-direction: column;
|
height: calc(100% - 32px);
|
background-color: #e5eaee;
|
}
|
|
.uni-panel-calendar {
|
width: 94%;
|
padding: 2px 3%;
|
background-color: #fff;
|
}
|
|
.uni-panel-calendar-schedule {
|
width: 94%;
|
padding: 2px 3%;
|
display: flex;
|
flex-direction: column;
|
overflow: auto;
|
background-color: #e5eaee;
|
}
|
|
.uni-panel-h {
|
display: flex;
|
background-color: #ffffff;
|
flex-direction: row !important;
|
align-items: center !important;
|
margin: 8px 0px 0px;
|
padding: 8px 10px 8px 12px;
|
font-size: 14px;
|
border-bottom: 1px solid #f2e7e7;
|
}
|
|
.uni-panel-schedule-title {
|
display: flex;
|
padding: 4px 4px 2px;
|
color: #666666;
|
|
}
|
|
.uni-panel-right {
|
padding: 6px;
|
color: #999999;
|
}
|
|
.uni-panel-item {
|
margin: 5px 0;
|
background-color: white;
|
border-radius: 8px;
|
|
}
|
|
.uni-panel-button-add {
|
font-size: 40px;
|
border-radius: 50%;
|
position: fixed;
|
z-index: 15;
|
bottom: 40px;
|
right: 10px;
|
color: #00aaff;
|
background: #fff;
|
box-shadow: 0 1px 5px 2px rgb(0 0 0 / 30%);
|
}
|
|
.popup-content {
|
/* width: 375rpx; */
|
display: flex;
|
justify-content: center;
|
flex-direction: column;
|
background-color: transparent;
|
}
|
|
.uni-collapse-content {
|
margin-left: 20px;
|
padding-left: 12px;
|
margin-right: 4px;
|
display: flex;
|
flex-direction: column !important;
|
|
}
|
|
.uni-collapse-content-item {
|
padding: 8px 4px;
|
display: flex;
|
flex-direction: row !important;
|
align-items: center;
|
}
|
|
.uni-collapse-content-item-sel {
|
// background-color: #00aaff;
|
// color: #fff;
|
border-right:5px solid #00aaff;
|
border-radius: 5px;
|
}
|
|
.uni-collapse-item-ban {
|
display: flex;
|
width: 100%;
|
height: 48px;
|
padding-left: 16px;
|
padding-right: 8px;
|
font-size: 14px;
|
box-sizing: border-box;
|
flex-direction: row;
|
align-items: center;
|
}
|
|
.uni-panel-right-icon {
|
height: 50rpx;
|
padding: 0px 4px;
|
line-height: 50rpx;
|
font-size: 35rpx;
|
text-align: right;
|
}
|
|
.uni-collapse-item-text {
|
flex: 1;
|
padding: 0 4px;
|
}
|
|
.uni-collapse-item-ico {
|
display: flex;
|
margin: 4px 8px 4px 4px;
|
font-size: 16px;
|
color: #333;
|
}
|
|
.blue-text {
|
color: #00aaff;
|
}
|
.orange {
|
color: orange !important;
|
}
|
|
}
|
</style>
|