Commit 58d0bb17 by xiexiaoqin

delete

parent 4a88b919
.mwModal{
font-family: PingFangSC-Regular;
font-size: 34rpx;
color: #191F25;
}
.mwModal{
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
display: flex;
background: rgba(0, 0, 0, 0.15);
flex-direction: column-reverse;
z-index: 99;
}
.mwModalBox{
background: #fff;
width: 100%;
height: 500rpx;
border-radius: 21px 21px 0px 0px;
}
.mwModalHeader{
color: #3296FA;
font-size: 34rpx;
width: 100%;
display: flex;
box-sizing: border-box;
padding: 32rpx;
}
.mwModalHeader view{
flex: 1;
}
.mwModalHeader view:nth-of-type(1){
color: #191F25;
}
.mwModalHeader view:nth-of-type(2){
text-align: right;
}
.mwModalBody{
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 0 60rpx;
}
.mwModalBody picker-view{
width: 100%;
display: flex;
}
.son2{
flex: 1;
}
.son{
flex: 2;
}
\ No newline at end of file
<view class="mwModal" a:if="{{isShowModal === true}}">
<view class="mwModalBox">
<view class="mwModalHeader">
<view onTap="ModalCancel" catchTap="onCancel">
取消
</view>
<view onTap="mwModalDetermine" catchTap="onDetermine">
确定
</view>
</view>
<view class="mwModalBody">
<picker-view value="{{pickerValue}}" onChange="onChange">
<picker-view-column class="son">
<view a:for="{{timeData}}">{{item}}</view>
</picker-view-column>
<picker-view-column class="son2">
<view a:for="{{timeHour}}">{{item}}</view>
</picker-view-column>
<picker-view-column class="son2">
<view a:for="{{timeMin}}">{{item}}</view>
</picker-view-column>
</picker-view>
</view>
</view>
</view>
\ No newline at end of file
Component({
mixins: [],
data: {
timeData: [],
timeHour: ['00', '01', '02', '03', '04', '05', '06', '07', '08', '09','10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23'],
timeMin: ['00', '05', '10', '15', '20', '25', '30', '35', '40', '45', '50', '55'],
pickerValue: [],
time: ''
},
props: {
isShowModal: 'false'
},
didMount() {
let timeData = [];
for(let i=365;i>=0;i--) {
timeData.push(this.GetDateStr(-i));
}
for(var i=1;i<365;i++){
timeData.push(this.GetDateStr(i));
}
this.setData({
timeData: timeData
})
},
didUpdate() {
var date = new Date(this.props.time);
var y = date.getFullYear();
var m = (date.getMonth()+1)<10?"0"+(date.getMonth()+1):(date.getMonth()+1);//获取当前月份的日期,不足10补0
var d = date.getDate()<10?"0"+date.getDate():date.getDate();//获取当前几号,不足10补0
var weekList = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
var w = weekList[date.getDay()];
var h = date.getHours()<10? "0"+date.getHours() : date.getHours();
var min = date.getMinutes()<10? "0"+date.getMinutes() :date.getMinutes();
var pickerValue = [this.data.timeData.indexOf(y+"/"+m+"/"+d+" "+w),this.data.timeHour.indexOf(`${h}`),this.data.timeMin.indexOf(`${min}`)]
this.setData({
pickerValue: pickerValue,
time: this.props.time
})
},
didUnmount() {},
methods: {
showModal(e) {
console.log(e)
},
onCancel(e) {
this.props.onChange({status: 0})
},
GetDateStr(AddDayCount) {
var time = new Date();
time.setDate(time.getDate()+AddDayCount);//获取AddDayCount天后的日期
var y = time.getFullYear();
var m = (time.getMonth()+1)<10?"0"+(time.getMonth()+1):(time.getMonth()+1);//获取当前月份的日期,不足10补0
var d = time.getDate()<10?"0"+time.getDate():time.getDate();//获取当前几号,不足10补0
var weekList = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
var w = weekList[time.getDay()]
return y+"/"+m+"/"+d+" "+w;
},
onDetermine(e) {
this.props.onChange({status: 1, time: this.data.time})
},
onChange(e) {
console.log(e)
let index = e.detail.value
this.props.time = `${this.data.timeData[index[0]].slice(0,10)} ${this.data.timeHour[index[1]]}:${this.data.timeMin[index[2]]}`
this.setData({
time: `${this.data.timeData[index[0]].slice(0,10)} ${this.data.timeHour[index[1]]}:${this.data.timeMin[index[2]]}`
})
console.log(this.data.time)
}
},
});
{
"component": true
}
\ No newline at end of file
@import "../../assests/font/iconfont.acss";
page {
background: #fff;
font-family: PingFangSC-Regular;
font-size: 30rpx;
color: #191F25;
line-height: 42rpx;
padding-bottom: 180rpx;
}
.confirm>view {
width: 100%;
height: 96rpx;
font-size: 36rpx;
text-align: center;
line-height: 96rpx;
color: #fff;
background: #3296FA;
border: 1prx solid rgba(25, 31, 37, 0.12);
border-radius: 48rpx;
}
.confirm {
background: #fff;
width: 682rpx;
padding: 32rpx 34rpx;
position: fixed;
bottom: 0;
}
.remarkInput {
padding: 32rpx 32rpx 0 32rpx;
}
.textarea {
padding-left: 0!important;
display: block;
}
\ No newline at end of file
<view>
<view class="remarkInput">
<textarea onInput="getRemark" auto-height placeholder="添加内容描述" value="{{remark}}" class="textarea" focus="{{false}}" />
</view>
<!-- 保存 -->
<view class="confirm" onTap="save">
<view>
完成
</view>
</view>
</view>
\ No newline at end of file
import create from 'dd-store'
import exampleStore from '/stores/exampleStore'
create.Page({
store: exampleStore,
useAll: true,
data: {},
onLoad() {
dd.setNavigationBar({
title: '添加描述'
})
},
getRemark(event) {
this.store.data.remark = event.detail.value
this.update()
},
save() {
dd.navigateBack({
delta: 1
})
}
});
{}
\ No newline at end of file
@import "../../assests/font/iconfont.acss";
page {
background: #f6f6f6;
font-family: PingFangSC-Regular;
font-size: 30rpx;
color: #191F25;
padding-bottom: 128rpx;
}
.list {
background: #fff;
height: 112rpx;
line-height: 112rpx;
display: flex;
padding-left: 32rpx;
}
.headImg {
position: relative;
margin-right: 24rpx;
margin-top: 24rpx;
width: 64rpx;
height: 64rpx;
background: #3296FA;
border-radius: 50%;
color: white;
line-height: 64rpx;
text-align: center;
}
.headImg image {
vertical-align: top;
width: 64rpx;
height: 64rpx;
border-radius: 50%;
}
.info {
width: 630rpx;
line-height: 112rpx;
height: 112rpx;
border-bottom: 1rpx solid rgba(25, 31, 37, 0.12);
}
.close {
position: absolute;
right: 32rpx;
color: #D8D8D8;
}
.button {
position: fixed;
bottom: 0;
display: flex;
margin-left: 32rpx;
padding-bottom: 32rpx;
background: white;
}
.button view {
width: 335rpx;
height: 96rpx;
border: 1px solid #3296FA;
border-radius: 48px;
text-align: center;
line-height: 96rpx;
font-size: 36rpx;
}
.add {
color: #0080FF;
margin-right: 16rpx;
}
.button .save {
color: white;
background: #3296FA;
border: 1px solid rgba(25, 31, 37, 0.12);
}
.tip {
text-align: center;
line-height: 20rpx;
width: 20rpx;
height: 20rpx;
border-radius: 50%;
background: #F25643;
position: absolute;
bottom: 4rpx;
right: -2rpx;
}
.accept {
background: #15BC83
}
.cancel {
background: #E60012 ;
}
.participatorStaus {
width: 11px;
text-align: center;
line-height:11px;
color: #fff;
font-size: 12rpx;
border: 1rpx solid #fff;
height: 11px;
border-radius: 50%;
position: absolute;
bottom: 2rpx;
right: -4rpx;
overflow: hidden;
display: inline-block;
}
\ No newline at end of file
<view>
<view class="list" a:for="{{allUserList}}">
<view class="headImg">
<image mode="scaleToFill" src="{{item.participator.headUrl}}" a:if="{{item.participator.headUrl.length}}"/>
<text a:else>{{item.participator.username.substring(0,1)}}</text>
<text a:if="{{item.confirmAttendance!=null || item.participator.userId == organizer }}" class="participatorStaus iconfont {{item.confirmAttendance==1 || item.participator.userId == organizer?'accept iconduigou':'cancel iconhengxian'}} "></text>
</view>
<view class="info">
<text class="name">{{item.participator.username}}</text>
</view>
</view>
</view>
\ No newline at end of file
import create from 'dd-store'
import exampleStore from '/stores/exampleStore'
create.Page({
store: exampleStore,
useAll: true,
data: {
allUserList: [],
organizer: ''
},
onLoad(event) {
let allUserList = JSON.parse(event.userList)
let organizer = event.organizer
this.setData({
allUserList: allUserList,
organizer: organizer
})
dd.setNavigationBar({
title: `参会人(${this.data.allUserList.length}人)`
})
console.log(this.data.allUserList)
},
});
@import "../../assests/font/iconfont.acss";
page {
background: #fff;
font-family: PingFangSC-Regular;
font-size: 34rpx;
color: #191F25;
padding-bottom: 180rpx;
}
.describe {
padding: 0 32rpx;
}
.fileList {
margin-top: 32rpx;
padding: 0 32rpx;
display: flex;
justify-content: space-between;
}
.file {
background: #F6F7F8;
border-radius: 2rpx;
width: 634rpx;
height: 88rpx;
line-height: 88rpx;
display: flex;
overflow: hidden;
}
.fileimage{
width: 60rpx;
height: 72rpx;
background: #3296Fa;
margin: 8rpx 16rpx 8rpx 8rpx;
}
.fileName {
font-size: 26rpx;
}
.close {
line-height: 88rpx;
font-size: 30rpx;
color: rgba(25, 31, 37, 0.40);
text-align: right;
}
.add {
padding: 0 32rpx;
margin-top: 40rpx;
}
.icontianjia {
line-height: 33rpx;
color: #3296fa;
margin-right: 16rpx;
}
.addText {
vertical-align: top;
font-size: 24rpx;
color: #3296FA;
}
.save {
padding: 32rpx 34rpx;
position: fixed;
bottom: 0;
}
.saveButton {
font-size: 36rpx;
width: 686rpx;
line-height: 96rpx;
text-align: center;
color: #fff;
background: #3296FA;
border: 1rpx solid rgba(25, 31, 37, 0.12);
border-radius: 48rpx;
}
\ No newline at end of file
<view class="uploadFile">
<view class="describe">
<textarea class="textarea" value="{{descript}}" onInput="inputDes" placeholder="添加文件描述..." maxlength="-1" />
</view>
<view class="save">
<view class="saveButton" onTap="save">
保存
</view>
</view>
</view>
\ No newline at end of file
import create from 'dd-store'
import exampleStore from '/stores/exampleStore'
import { editFile } from '../../api/request.js'
create.Page({
store: exampleStore,
useAll: true,
data: {
id: '',
descript: '',
fileInfos: '',
scheduleId: ''
},
onLoad(event) {
dd.setNavigationBar({
title: '编辑文件'
})
this.setData({
id:JSON.parse(event.file).id,
fileInfos: JSON.parse(event.file).fileInfos,
descript: JSON.parse(event.file).descript
})
},
inputDes(event) {
let value = event.detail.value
this.setData({
descript: value
})
},
// 点击保存
save() {
let data = {
id: this.data.id,
uploader: getApp().globalData.userid,
uploaderInfo: JSON.stringify({
userId: getApp().globalData.userid,
username: getApp().globalData.name,
headUrl: getApp().globalData.avatar
}),
thirdStoreTenant: 'dingTalk',
fileInfos: JSON.stringify(this.data.fileInfos.fileInfos),
descript: this.data.descript
}
editFile(data).then(res => {
dd.navigateBack({
delta: 1
})
})
}
});
{}
\ No newline at end of file
@import "../../assests/font/iconfont.acss";
page {
background: #f6f6f6;
font-family: PingFangSC-Regular;
font-size: 34rpx;
color: #191F25;
padding-bottom: 180rpx;
}
.remindList {
background: #fff;
padding-left: 32rpx;
}
.remindContent {
line-height: 112rpx;
height: 112rpx;
display: flex;
padding-right: 32rpx;
justify-content: space-between;
border-bottom: 1rpx solid rgba(25, 31, 37, 0.12);
}
.confirm {
background: #fff;
width: 682rpx;
padding: 24rpx 34rpx;
position: fixed;
bottom: 0;
}
.confirm>view {
width: 100%;
height: 90rpx;
font-size: 36rpx;
text-align: center;
line-height: 90rpx;
color: #fff;
background: #3296FA;
border: 1prx solid rgba(25, 31, 37, 0.12);
border-radius: 48rpx;
}
.iconxuanzhong1 {
color: #fff;
}
.select {
color: #1890FF;
}
<view>
<view class="remindList" a:for="{{remindList}}" data-item="{{item}}" onTap="selectTimes">
<view class="remindContent">
<view class="remindText">
{{item.text}}
</view>
<view class="iconfont iconxuanzhong1 {{saveTime.includes(item.time)?'select':''}}">
</view>
</view>
</view>
<view class="confirm" onTap="save">
<view>
完成
</view>
</view>
</view>
\ No newline at end of file
import create from 'dd-store'
import exampleStore from '/stores/exampleStore'
import { throttle } from './../../utils/utils.js'
create.Page({
store: exampleStore,
useAll: true,
data: {
remindList: [
{ time: 0, text: '开始时' },
{ time: 5, text: '5分钟前' },
{ time: 15, text: '15分钟前' },
{ time: 30, text: '30分钟前' },
{ time: 60, text: '1小时前' },
{ time: 1440, text: '1天前' },
{ time: 2880, text: '2天前' },
{ time: 10080, text: '1周前' }
],
saveTime: []
},
onLoad() {
dd.setNavigationBar({
title: '会前提醒'
})
this.setData({
saveTime: [...this.store.data.aheadTimes]
})
},
selectTimes(event) {
if (this.data.saveTime.includes(event.target.dataset.item.time)) {
this.data.saveTime.forEach((item, index) => {
if (item == event.target.dataset.item.time) {
this.data.saveTime.splice(index, 1)
}
return
})
}
else {
this.data.saveTime.push(event.target.dataset.item.time)
}
this.setData({
saveTime: this.data.saveTime
})
},
save: throttle(function () {
this.store.data.aheadTimes = this.data.saveTime
this.update()
dd.navigateBack({
delta: 1
})
}, 1000)
});
{}
\ No newline at end of file
@import "../../assests/font/iconfont.acss";
page {
background: #f6f6f6;
font-family: PingFangSC-Regular;
font-size: 32rpx;
color: #191F25;
}
.iconfont {
font-size: 32rpx;
}
.repeatList {
line-height: 112rpx;
height: 112rpx;
background: white;
padding-left: 32rpx;
}
.repeatRight {
border-bottom: 1rpx solid rgba(25, 31, 37, 0.12);
height: 112rpx;
margin-bottom: 10rpx;
padding-right: 32rpx;
margin-top: 1rpx;
}
.icon {
float: right;
color: white;
}
.select {
color: #1890FF;
}
\ No newline at end of file
<view>
<view class="repeatList" a:for="{{repeatList}}" data-item="{{item}}" onTap="selectRepeat">
<view class="repeatRight ">
<text>{{item.text}}</text>
<text class="iconfont iconxuanzhong1 icon {{recurrenceModel.model=='day_in_week'?(recurrenceModel.weekDayList.length==item.weekDayList.length?'select':''):recurrenceModel.model==item.model?'select': ''}}
"></text>
</view>
</view>
</view>
\ No newline at end of file
import create from 'dd-store'
import exampleStore from '/stores/exampleStore'
create.Page({
store: exampleStore,
useAll: true,
data: {
weekEn: ['MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU'],
weekCh: ['每周一重复', '每周二重复', '每周三重复', '每周四重复', '每周五重复', '每周六重复', '每周日重复'],
repeatList: [
{ model: 'no_repeat', text: '不重复', weekDayList: [] },
{ model: 'every_day', text: '每天重复', weekDayList: [] },
{ model: 'day_in_week', text: '每周重复', weekDayList: [] },
{ model: 'day_in_week', text: '每周的工作日重复', weekDayList: ['MO', 'TU', 'WE', 'TH', 'FR'] }
]
},
onLoad() {
dd.setNavigationBar({
title: '选择重复'
})
let week1 = this.data.weekEn
let repeatList = this.data.repeatList
let week = new Date().getDay()
repeatList[2].weekDayList = [ week1[week - 1] ]
this.setData({
repeatList: repeatList
})
},
// 选择重复机制
selectRepeat(event) {
switch (event.target.dataset.item.model) {
case 'no_repeat':
this.store.data.repeatable = 0
this.store.data.recurrenceModel = { model: "no_repeat" }
break;
case 'every_day':
this.store.data.repeatable = 1
this.store.data.recurrenceModel = { model: "every_day" }
break;
case 'day_in_week':
let weekDayList = event.target.dataset.item.weekDayList
this.store.data.repeatable = 1
this.store.data.recurrenceModel = { model: "day_in_week", weekDayList: weekDayList, terminateTime: '' }
break;
}
this.store.data.recurrenceModel.forever = '1'
this.update()
dd.navigateBack({
delta: 1
})
}
});
.timeView{
position: fixed;
left: 0;
bottom: 176rpx;
width: 100%;
height: 404rpx;
background: #ffffff;
border-bottom: 1px solid rgba(25,31,37,0.12);
}
.sureBtn{
position: fixed;
left: 0;
bottom: 0;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
height: 160rpx;
background: #ffffff;
}
.sureBtn view{
background: #3296FA;
color: #ffffff;
font-size: 36rpx;
text-align: center;
line-height: 96rpx;
width: 686rpx;
height: 96rpx;
border-radius: 48rpx;
}
.itemList {
width: 100%;
display: flex;
padding: 0 32rpx;
line-height: 112rpx;
box-sizing: border-box;
border-bottom: 1px solid rgba(25,31,37,0.12);
background: #ffffff;
}
.itemList view{
flex: 1;
}
.itemList view:nth-of-type(1) {
text-align: left;
font-size: 34rpx;
color: #191F25;
}
.itemList view:nth-of-type(2) {
text-align: right;
font-size: 28rpx;
color: rgba(25,31,37,0.56);
}
.timeView>view:nth-of-type(1) {
text-align: right;
padding-right: 32rpx;
box-sizing: border-box;
width: 100%;
}
.timeView picker-view{
width: 100%;
}
.itemList .isBeOverdue {
color: red !important;
}
.tip {
font-size: 28rpx;
line-height: 42rpx;
color: rgba(25,31,37,0.56);
padding-left: 32rpx;
}
.timeViewSwich {
height: 122rpx;
font-size: 30rpx;
line-height: 122rpx;
display: flex;
align-items: center;
justify-content: flex-end;
border-bottom: 1px solid rgba(25,31,37,0.12);
/* font-weight: bold; */
}
.timeViewSwich switch{
display: block;
margin-left: 24rpx;
}
\ No newline at end of file
<view class="itemList">
<view>
截止日期
</view>
<view class="{{isBeOverdue ? 'isBeOverdue' : ''}}">
{{year}}年{{month}}月{{day}}日{{week}}
</view>
</view>
<view class="tip" a:if="{{isBeOverdue}}">
结束时间不能小于会议截止时间
</view>
<view class="timeView">
<view class="timeViewSwich">
<view>
永不截止
</view>
<switch checked="{{forever == '1'}}" onChange="switchChange"/>
</view>
<view>
<picker-view value="{{pickerValue}}" class="parent" onChange="onChange">
<picker-view-column class="son">
<view a:for="{{timeYear}}">{{item}}</view>
</picker-view-column>
<picker-view-column class="son2">
<view a:for="{{timeMonth}}">{{item}}</view>
</picker-view-column>
<picker-view-column class="son2">
<view a:for="{{timeDay}}">{{item}}</view>
</picker-view-column>
</picker-view>
</view>
</view>
<view class="sureBtn">
<view onTap="save">
保存
</view>
</view>
\ No newline at end of file
import create from 'dd-store'
import exampleStore from '/stores/exampleStore'
create.Page({
store: exampleStore,
useAll: true,
data: {
timeYear: [],
timeMonth: ['01','02','03','04','05','06','07','08','09','10','11','12'],
timeDay: [],
pickerValue: [],
year: '',
month: '',
day: '',
week: '',
isBeOverdue: false,
forever: '1'
},
onLoad() {
if (!this.store.data.recurrenceModel.terminateTime || this.store.data.recurrenceModel.forever == '1') {
let date = new Date();
let year = date.getFullYear();
let timeYear = [`${year}年`, `${year + 1}年`]
let timeMonth = []
let timeDay = []
let thisDate = date.getDate()
let weekList = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
for (let i = 1; i <= 12;i++) {
timeMonth.push(`${i}月`)
}
let day = this.getMonthLength(year,date.getMonth(),1)
for (let i = 1;i <= day;i++) {
let thisweek = weekList[new Date(year,date.getMonth(),i).getDay()]
timeDay.push(`${i}${thisweek}`)
}
this.setData({
timeYear: timeYear,
timeMonth: timeMonth,
timeDay: timeDay,
year: year,
month: date.getMonth()+1,
day: thisDate,
week: weekList[date.getDay()],
pickerValue: [timeYear.indexOf(`${date.getFullYear()}年`),timeMonth.indexOf(`${date.getMonth()+1}月`),timeDay.indexOf(`${date.getDate()}${weekList[date.getDay()]}`)]
})
} else {
let date = new Date();
let date2 = new Date(this.store.data.recurrenceModel.terminateTime.replace(/-/g, '/'))
let year = date.getFullYear();
let timeYear = [`${year}年`, `${year + 1}年`]
let timeMonth = []
let timeDay = []
let thisDate = date2.getDate()
let weekList = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
for (let i = 1; i <= 12;i++) {
timeMonth.push(`${i}月`)
}
let day = this.getMonthLength(year,date2.getMonth(),1)
for (let i = 1;i <= day;i++) {
let thisweek = weekList[new Date(year,date2.getMonth(),i).getDay()]
timeDay.push(`${i}${thisweek}`)
}
this.setData({
timeYear: timeYear,
timeMonth: timeMonth,
timeDay: timeDay,
year: year,
month: date2.getMonth()+1,
day: thisDate,
week: weekList[date2.getDay()],
pickerValue: [timeYear.indexOf(`${date2.getFullYear()}年`),timeMonth.indexOf(`${date2.getMonth()+1}月`),timeDay.indexOf(`${date2.getDate()}${weekList[date2.getDay()]}`)]
})
}
this.setData({
forever: this.store.data.recurrenceModel.forever
})
},
getMonthLength(year, month ,day) {
let d = new Date(year, month ,day)
// 将日期设置为下月一号
d.setMonth(d.getMonth()+1)
d.setDate('1')
// 获取本月最后一天
d.setDate(d.getDate()-1)
return d.getDate()
},
switchChange(e) {
this.setData({
forever: e.detail.value ? '1' : '0'
})
},
save(){
if(this.data.isBeOverdue) {
return false;
} else {
if (this.data.forever == '1') {
let data = this.getTwoYearToday();
this.store.data.recurrenceModel.terminateTime = data;
} else {
this.store.data.recurrenceModel.terminateTime = `${this.data.year}-${this.data.month<10 ? '0' + this.data.month: this.data.month}-${this.data.day<10 ? '0'+ this.data.day : this.data.day}`
}
this.store.data.recurrenceModel.forever = this.data.forever
this.update();
dd.navigateBack({
delta: 1
})
}
},
getTwoYearToday(){
let date = new Date()
date.setYear(date.getFullYear() + 2)
let year = date.getFullYear();
let month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
let day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
return year + '-' + month + '-' + day
},
onChange(e) {
let data = e.detail.value;
let weekList = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
let year = new Date().getFullYear() + data[0];
let month = data[1];
let day = data[2] + 1;
let date = new Date(year, month, day);
let count = this.getMonthLength(year, month, 1);
let timeDay = [];
for (let i = 1; i <= count; i++) {
let week = weekList[new Date(year,month,i).getDay()]
timeDay.push(`${i}${week}`)
}
let isBeOverdue;
if (date.getTime()< new Date(this.store.data.endTime.replace(/-/g, '/')).getTime()) {
isBeOverdue = true
} else {
isBeOverdue = false
}
this.setData ({
timeDay: timeDay,
year: year,
month: month + 1,
day: day,
week: weekList[date.getDay()],
isBeOverdue: isBeOverdue,
pickerValue: [data[0],data[1],data[2]]
})
this.setData({
forever: '0'
})
}
});
@import "../../assests/font/iconfont.acss";
page {
background: #f6f6f6;
font-family: PingFangSC-Regular;
font-size: 34rpx;
color: #191F25;
padding-bottom: 180rpx;
}
.iconfont {
font-size: 32rpx;
vertical-align: top;
}
::-webkit-scrollbar {
display: none
}
.scheduleInfo {
border-top: 1rpx solid rgba(25, 31, 37, 0.12);
border-bottom: 1rpx solid rgba(25, 31, 37, 0.12);
background: white;
padding-left: 32rpx;
}
.title, .place, .time, .remind {
display: flex;
background: white;
}
.icon {
line-height: 112rpx;
text-align: left;
color: #191F25;
vertical-align: center;
margin-right: 25rpx;
}
.title .text, .place .text, .time .text, .remind .text {
vertical-align: top;
line-height: 112rpx;
width: 100%;
border-bottom: 1rpx solid rgba(25, 31, 37, 0.12);
}
.scheduleInfo .time .text {
border: none;
line-height: 48rpx;
padding: 32rpx 0;
}
.participants {
position: relative;
background: #fff;
margin: 16rpx 0;
height: 112rpx;
line-height: 112rpx;
padding: 0 32rpx;
display: flex;
}
.scroll {
white-space: nowrap;
overflow-x: scroll;
max-width: 400rpx;
}
.scroll .imageGroup {
position: relative;
font-size: 24rpx;
color: #fff;
text-align: center;
line-height: 58rpx;
display: inline-block;
vertical-align: top;
border-radius: 50%;
width: 58rpx;
height: 58rpx;
margin-top: 27rpx;
background: #3296Fa;
margin-right: 16rpx;
}
.imageGroup image {
vertical-align: top;
width: 58rpx;
height: 58rpx;
border-radius: 50%;
}
.number {
margin-right: 16rpx;
vertical-align: top;
}
.right {
position: absolute;
right: 32rpx;
opacity: 0.56;
font-family: PingFangSC-Regular;
font-size: 28rpx;
color: #191F25;
}
.iconyoujinru, .icontianjia {
line-height: 112rpx;
color: rgba(25, 31, 37, 0.40);
}
.remind {
padding: 0 32rpx;
}
.remind .text {
border: none;
}
.dynamic {
position: relative;
background: #fff;
height: 112rpx;
line-height: 112rpx;
padding: 0 32rpx;
display: flex;
margin-top: 16rpx;
border-bottom: 1rpx solid rgba(25, 31, 37, 0.12);
}
.upload {
font-size: 24rpx;
position: absolute;
right: 32rpx;
color: #3296FA;
}
.upload text {
color: #3296FA;
vertical-align: top;
}
.icontianjia {
margin-left: 4rpx;
}
.dynamicDetail {
background: #fff;
margin-top: 32rpx;
position: relative;
}
.latestTip {
text-align: center;
font-size: 26rpx;
color: rgba(25, 31, 37, 0.56);
}
.dynamicList {
display: flex;
margin-top: 32rpx;
padding: 0 32rpx;
}
.dynamicleft {
text-align: center;
color: #fff;
font-size: 30rpx;
width: 58rpx;
margin-right: 16rpx;
height: 58rpx;
line-height: 58rpx;
border-radius: 50%;
background: #3296FA;
vertical-align: top;
}
.dynamicleft>image, .dynamicleft>text {
display: inline-block;
flex: 0 0 58rpx;
vertical-align: top;
width: 58rpx;
height: 58rpx;
border-radius: 50%;
background: #3296FA;
}
.dynamicMinutes>text {
margin-right: 10rpx;
font-size: 26rpx;
color: rgba(25, 31, 37, 0.40);
line-height: 37rpx;
}
.dynamicDetail .describe {
text-align: left;
padding: 0;
font-size: 26rpx;
line-height: 37rpx;
margin-top: 8rpx;
}
.file {
width: 612rpx;
padding-right: 8rpx;
height: 88rpx;
line-height: 88rpx;
background: #F6F7F8;
border-radius: 2px;
margin-top: 16rpx;
border-bottom: 1rpx solid transparent;
display: flex;
position: relative;
}
.fileImage {
width: 60rpx;
flex: 0 0 60rpx;
height: 72rpx;
margin: 8rpx 37rpx 8rpx 8rpx;
background: url(../../assests/all.png) center /100% 100%;
}
.fileName {
padding-right: 8rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 26rpx;
}
.otherTip {
width: 100%;
text-align: center;
font-size: 26rpx;
color: rgba(25, 31, 37, 0.40);
line-height: 37rpx;
margin-top: 10rpx;
}
.bottom {
width: 686rpx;
display: flex;
padding: 0 32rpx;
position: fixed;
background: white;
height: 100rpx;
line-height: 100rpx;
bottom: 0;
color: rgba(25, 31, 37, 0.56);
font-size: 28rpx;
box-shadow: 0 -2px 16px 0 rgba(25, 31, 37, 0.10);
}
.bottom .iconfont {
margin-right: 12rpx;
}
.buttonGroup {
flex: 1;
text-align: center;
}
.buttonGroup text {
vertical-align: top;
}
.describe {
padding: 0 32rpx;
display: flex;
background: #fff;
margin-top: 16rpx;
}
.describe .text {
padding: 27rpx 0;
margin-top: 10rpx;
}
.modFile {
padding: 0;
display: flex;
color: white;
height: 57rpx;
border-radius: 6px;
background: rgba(0, 0, 0, 0.8);
position: absolute;
z-index: 9;
top: -73rpx;
left: 50%;
}
.modFile>view {
width: 95rpx;
line-height: 57rpx;
text-align: center;
font-size: 26rpx;
}
.ediFile {
border-right: 1rpx solid #fff;
}
.modFile .triangle {
position: absolute;
bottom: -28rpx;
width: 0;
left: 50%;
margin-left: -16rpx;
height: 0;
border-top: 16rpx solid rgba(0, 0, 0, 0.8);
border-bottom: 16rpx solid rgba(0, 0, 0, 0);
border-right: 16rpx solid rgba(0, 0, 0, 0);
border-left: 16rpx solid rgba(0, 0, 0, 0);
}
.participatorStaus {
border: 1rpx solid #fff;
width: 11px;
height: 11px;
color: #fff;
font-size: 12rpx;
line-height: 11px;
text-align: center;
border-radius: 50%;
position: absolute;
bottom: 2rpx;
right: -5rpx;
display: block;
overflow: hidden;
}
.accept {
background: #15BC83
}
.cancel {
background: #F25643;
}
.blank {
width: 650rpx;
overflow-x: scroll;
white-space: nowrap;
}
.blank>text {
margin-right: 10rpx;
}
.pdf {
background: url(../../assests/pdf.png) center /100% 100%;
}
.image {
background: url(../../assests/image.png) center /100% 100%;
}
.docx {
background: url(../../assests/docx.png) center /100% 100%;
}
.mov {
background: url(../../assests/mp4.png) center /100% 100%;
}
.mp4 {
background: url(../../assests/mp4.png) center /100% 100%;
}
.ppt {
background: url(../../assests/ppt.png) center /100% 100%;
}
.pptx {
background: url(../../assests/ppt.png) center /100% 100%;
}
.pdf {
background: url(../../assests/pdf.png) center /100% 100%;
}
.xlsx {
background: url(../../assests/xlsx.png) center /100% 100%;
}
.zip {
background: url(../../assests/zip.png) center /100% 100%;
}
.scheduleInfo .text .repeatTip {
font-size: 24rpx;
color: rgba(25, 31, 37, 0.51)
}
.dynamicContent {
width: 750rpx;
background: #fff;
padding-bottom: 48rpx;
display: inline-block;
}
.dynamicright {
position: relative;
}
.selectDynamicright {
padding: 0 4rpx;
position: absolute;
top: 0;
height: 100%;
width: 100%;
background: rgba(25, 31, 37, 0.12);
border-radius: 6rpx;
}
.line {
color: rgba(25, 31, 37, 0.12)!important;
margin-right: 32rpx;
}
.iconcanjia2 {
color: #15BC83;
}
.iconbucanjia2 {
color: #F25643;
}
.red {
color: #F25643;
}
.green {
color: #15BC83;
}
.model {
position: fixed;
width: 100%;
height: 100%;
top: 0;
background: rgb(0, 0, 0, 0);
z-index: 9999;
background: red;
}
.icondingwei1 {
font-size: 34rpx;
}
.listBg {
position: fixed;
top: 0;
height: 100%;
width: 100%;
background: rgba(0, 0, 0, 0.12);
font-family: 'PingFangSC-Regular';
font-size: 40rpx;
color: #191F25;
text-align: center;
z-index: 9999;
}
.listContent {
padding: 0 20rpx;
position: fixed;
bottom: 18rpx;
width: 710rpx;
}
.listItemCont {
background: #FFFFFF;
border-radius: 26rpx;
width: 100%;
}
.listItem {
height: 112rpx;
line-height: 112rpx;
border-bottom: 1rpx solid rgba(25, 31, 37, 0.12);
}
.listItem:last-child {
border: none;
}
.cancelList {
background: #fff;
height: 112rpx;
line-height: 112rpx;
margin-top: 16rpx;
border-radius: 26rpx;
}
.del {
text-decoration: line-through;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
\ No newline at end of file
<block a:if="{{showPage}}">
<view class="scheduleDetail" onTap="hideModel">
<view class="scheduleInfo">
<!-- 标题 -->
<view class="title">
<view class="icon iconhuiyizhuti2 iconfont">
</view>
<view class="text">
{{title}}
</view>
</view>
<!-- 地址 -->
<view class="place" a:if="{{!!location.locationName}}">
<view class="icon icondingwei1 iconfont">
</view>
<view class="text {{mrReserveStatus=='Y'?'del':''}}">
{{location.locationName}}
</view>
</view>
<!-- 时间 -->
<view class="time">
<view class="icon iconshijian1 iconfont">
</view>
<view class="text" a:if="{{isAcrossDay}}">
<view>
{{`
${time1.substring(5, 7)}月${time1.substring(8, 10)}日 ${time1.substring(11, 16)} 至
${time2.substring(5, 7)}月${time2.substring(8, 10)}日 ${time2.substring(11, 16)}
`}}
<view class="repeatTip" a:if="{{!!isRepeatable}}">
{{recModel.model=='day_in_week'?(recModel.weekDayList.length==5?'每周的工作日重复':'每'+week+'重复'):'每天重复'}},
{{recModel.forever=='1'? '永不截止':'截止到'+recModel.terminateTime}}
</view>
</view>
</view>
<view class="text" a:else>
<text>
{{`${time1.substring(5, 7)}月${time1.substring(8, 10)}日 ${week} ${time1.substring(11, 16)}-${time2.substring(11, 16)}`}}
</text>
<view class="repeatTip" a:if="{{!!isRepeatable}}">
{{recModel.model=='day_in_week'?(recModel.weekDayList.length==5?'每周的工作日重复':'每'+week+'重复'):'每天重复'}},
{{recModel.forever=='1'? '永不截止':'截止到'+recModel.terminateTime}}
</view>
</view>
</view>
</view>
<!-- 参会人 -->
<view class="participants" onTap="nextPage" data-nextPage="participants" a:if="{{!(userList.length == 1)}}">
<view class="icon iconcanhuiren iconfont"></view>
<view class="scroll" v-if="{{!!userList.length}}">
<text class="imageGroup" a:for="{{userList}}" a:for-item="item">
<text>
<image a:if="{{!!item.participator.headUrl}}" mode="scaleToFill" src="{{item.participator.headUrl}}"/>
<text a:else class="name">{{item.participator.username.substring(item.participator.username.length - 2, item.participator.username.length)}}</text>
<text a:if="{{item.confirmAttendance!=null || item.participator.userId == organizer }}" class="participatorStaus iconfont {{item.confirmAttendance==1 || item.participator.userId == organizer?'accept iconduigou':'cancel iconhengxian'}} "></text>
</text>
</text>
</view>
<view class="right">
<text class="number">{{userList.length}}人参与</text>
<text class="iconyoujinru iconfont"></text></view></view>
<!-- 重复 -->
<view class="remind" a:if="{{aheadTimes.length}}">
<view class="icon icontixing iconfont"></view>
<view class="text blank">
<text a:if="{{aheadTimes.includes(0)}}">立即提醒</text>
<text a:if="{{aheadTimes.includes(5)}}">5分钟前</text>
<text a:if="{{aheadTimes.includes(15)}}">15分钟前</text>
<text a:if="{{aheadTimes.includes(30)}}">30分钟前</text>
<text a:if="{{aheadTimes.includes(60)}}">1小时前</text>
<text a:if="{{aheadTimes.includes(1440)}}">1天前</text>
<text a:if="{{aheadTimes.includes(2880)}}">两天前</text>
<text a:if="{{aheadTimes.includes(10080)}}">1周前</text>
提醒
</view></view>
<!-- 会议描述 -->
<view class="describe" a:if="{{!!remark}}">
<view class="icon iconmiaoshu iconfont"></view>
<view class="text">
{{remark}}
</view></view>
<!-- 会议动态 -->
<view class="dynamic">
<view class="icon icondongtai1 iconfont"></view>
<view class="text">
会议动态
</view>
<view class="upload" onTap="upload">
<text class="line">|</text>
<text class="iconshangchuanwenjian1 iconfont"></text></view></view>
<!-- 动态详情展示 -->
<view class="dynamicContent" a:if="{{allFileInfo.length}}">
<view a:for="{{allFileInfo}}" catchTap="blank" data-scheduleid="{{item.meetingLogId}}">
<view class="dynamicDetail" catchTouchStart="touchStart" catchTouchEnd="touchEnd" catchLongTap="longPress" data-id="{{item.meetingLogId}}">
<view class="dynamicList" a:if="{{!!item.scheduleAccessory}}">
<view class="dynamicleft">
<image a:if="{{!!item.scheduleAccessory.uploaderInfo.headUrl}}" mode="scaleToFill" src="{{item.scheduleAccessory.uploaderInfo.headUrl}}"/>
<text a:else>{{item.scheduleAccessory.uploaderInfo.username.substring(0,1)}}</text></view>
<view class="dynamicright">
<view class="dynamicMinutes">
<text>{{item.scheduleAccessory.uploaderInfo.username}}</text>
<text>{{item.scheduleAccessory.time}}</text></view>
<view class="describe">
{{item.scheduleAccessory.descript}}
</view>
<view class="file" data-file="{{item2}}" onTap="preview" a:for="{{item.scheduleAccessory.fileInfos}}" a:for-item="item2">
<view class="fileImage {{item2.fileType==('png' || 'jpg' || 'svg' || 'jpeg') ?'image': item2.fileType}}"></view>
<view class="fileName">
{{item2.fileName}}
</view>
</view>
<view class="modFile" a:if="{{organizer == pemissions?(item.meetingLogId == meetingLogId):(item.meetingLogId == meetingLogId&&item.scheduleAccessory.uploaderInfo.userId==pemissions)}}">
<view class="ediFile" data-nextPage="editFile" catchTap="nextPage" data-file="{{item.scheduleAccessory}}">
编辑
</view>
<view class="delFile" catchTap="delFile" data-file="{{item.scheduleAccessory}}">
删除
</view>
<view class="triangle"></view>
</view>
<view class="selectDynamicright" a:if="{{organizer == pemissions?(item.meetingLogId == meetingLogId):(item.meetingLogId == meetingLogId&&item.scheduleAccessory.uploaderInfo.userId==pemissions)}}">
</view>
</view>
</view>
<view class="otherTip" a:if="{{!!item.content}}">
{{item.content}}
{{item.time}}
</view>
</view>
</view>
</view>
<!-- 底部按钮 -->
<view class="bottom">
<view class="buttonGroup" data-value=1 onTap="confirmAtten" a:if="{{(organizer != pemissions)&&isRepeatable == 0}}">
<text class="iconcanjia2 iconfont" a:if="{{currentParStaus == 1}}"></text>
<text class="iconcanjia3 iconfont" a:else ></text>
<text class="{{currentParStaus == 1?'green': ''}}">参加</text>
</view>
<view class="buttonGroup" a:if="{{(organizer != pemissions)&&isRepeatable == 1}}" data-type="participate" onTap="showList">
<!-- <picker range="{{['仅参加本次', '参加所有']}}" data-value=1 onChange="confirmRepeatAtten"> -->
<view>
<text class="iconcanjia2 iconfont" a:if="{{currentParStaus == 1}}"></text>
<text class="iconcanjia3 iconfont" a:else></text>
<text class="{{currentParStaus == 1?'green': ''}}">参加</text>
</view>
<!-- </picker> -->
</view>
<view class="buttonGroup" data-value=0 onTap="confirmAtten" a:if="{{(organizer != pemissions)&&isRepeatable == 0}}">
<text class="iconbucanjia2 iconfont" a:if="{{currentParStaus == 0}}"></text>
<text class="iconbucanjia3 iconfont" a:else></text>
<text class="{{currentParStaus == 0?'red': ''}}">不参加</text>
</view>
<view class="buttonGroup" a:if="{{(organizer != pemissions)&&isRepeatable == 1}}" data-type="noParticipate" onTap="showList">
<!-- <picker range="{{['仅不参加本次', '不参加所有']}}" data-value=0 onChange="cancelRepeatAtten" a:if="{{!(organizer == pemissions)&&isRepeatable == 1}}"> -->
<view>
<text class="iconbucanjia2 iconfont" a:if="{{currentParStaus == 0}}"></text>
<text class="iconbucanjia3 iconfont" a:else></text>
<text class="{{currentParStaus == 0?'red': ''}}">不参加</text>
</view>
</picker>
</view>
<view class="buttonGroup" data-nextPage="edit" onTap="nextPage">
<text class="iconbianji iconfont"></text>
<text>编辑</text>
</view>
</view>
</view>
<toast showToast="{{showToast}}"></toast>
<!-- 选择列表 -->
<view class="showList" a:if="{{showList}}">
<view class="listBg">
<view class="listContent">
<view class="listItemCont">
<view class="listItem" data-item="{{item}}" a:for="{{showItem}}" data-item="{{item}}" onTap="{{type=='participate'?'confirmRepeatAtten':'cancelRepeatAtten'}}">
{{item.content}}
</view>
</view>
<view class="cancelList" onTap="listHide">
取消
</view>
</view>
</view>
</view>
</block>
\ No newline at end of file
{
"defaultTitle": "会议详情",
"usingComponents": {
"toast": "../../components/toast/toast"
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment