Commit 84c1fb33 by fengzhaoyu

保存

parent 278ffddb
...@@ -4,7 +4,7 @@ setGlobalStore(exampleStore); ...@@ -4,7 +4,7 @@ setGlobalStore(exampleStore);
App({ App({
onLaunch(options) { onLaunch(options) {
this.checkFullScren()
// 第一次打开 // 第一次打开
// options.query == {number:1} // options.query == {number:1}
// console.info('App onLaunch'); // console.info('App onLaunch');
...@@ -13,7 +13,25 @@ App({ ...@@ -13,7 +13,25 @@ App({
// 从后台被 scheme 重新打开 // 从后台被 scheme 重新打开
// options.query == {number:1} // options.query == {number:1}
}, },
// 检测全面屏
checkFullScren() {
dd.getSystemInfo({
success: (res) => {
// dd.alert({
// content: res.model.indexOf('iPhone 11') != -1
// })
if (true) {
// dd.alert({
// content: res.model.indexOf('iPhone 11') != -1
// })
this.globalData.isIPX = true
}
}
})
},
globalData: { globalData: {
isIPX: false,
loading: false, loading: false,
token: '', token: '',
avatar: '', avatar: '',
......
...@@ -54,7 +54,8 @@ input { ...@@ -54,7 +54,8 @@ input {
} }
.remark .placeholder { .remark .placeholder {
font-size: 28rpx font-size: 28rpx;
font-family: PingFangSC-Regular;
} }
.place, .time, .participator, .meetingWay { .place, .time, .participator, .meetingWay {
...@@ -88,13 +89,13 @@ input { ...@@ -88,13 +89,13 @@ input {
justify-content: space-between; justify-content: space-between;
} }
.meetingWay .close, .place .close, .participator .iconicon_open { .meetingWay .close, .place .close, .participator .iconright {
color: #9599A2; color: #9599A2;
} }
.close { .close {
font-size: 32rpx; font-size: 32rpx;
color: rgba(10, 10, 10, 0.4) color: rgba(10, 10, 10, 0.3)
} }
.repeatModal { .repeatModal {
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
</view> </view>
</view> </view>
<view class="remark" a:if="{{isShowRemark}}"> <view class="remark" a:if="{{isShowRemark}}">
<input placeholder-class="placeholder" placeholder="请添加描述" class="text" onInput="onInput" data-type="remark" value="{{remark}}" focus="{{false}}" /> <input placeholder-class="placeholder" placeholder="请添加描述" class="text" onInput="onInput" data-type="remark" value="{{remark}}" focus="{{true}}" />
</view> </view>
</view> </view>
<!-- $data.$data.roomId locationName 地点 --> <!-- $data.$data.roomId locationName 地点 -->
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
{{conflictPeople.length}}人会议安排冲突 {{conflictPeople.length}}人会议安排冲突
</view> </view>
</view> </view>
<view class="iconicon_open iconfont icon" style=" vertical-align: middle" catchTap="nextPage" data-nextPage="participantsDetail"></view> <view class="iconright iconfont icon" style=" vertical-align: middle" catchTap="nextPage" data-nextPage="participantsDetail"></view>
</view> </view>
<view class="participatorListBottom" catchTap="nextPage" data-nextPage="participantsDetail"> <view class="participatorListBottom" catchTap="nextPage" data-nextPage="participantsDetail">
<view class="people" a:for="{{$data.participatorList.length > 10 ? [...$data.participatorList].splice(0, 11) : $data.participatorList}}"> <view class="people" a:for="{{$data.participatorList.length > 10 ? [...$data.participatorList].splice(0, 11) : $data.participatorList}}">
......
.tabBar { .tabBar {
height: 120rpx;
width: 100%; width: 100%;
background: url('../../assests/tabBarBg.png');
background-size: cover;
display: flex;
position: fixed; position: fixed;
left: 0; left: 0;
bottom: 0; bottom: 0;
padding-top: 4rpx;
/* box-shadow: 0 -4rpx 8rpx 0 rgba(0,0,0,0.04); /* box-shadow: 0 -4rpx 8rpx 0 rgba(0,0,0,0.04);
border-radius: 0 64rpx 0 64rpx 0 0 0; */ border-radius: 0 64rpx 0 64rpx 0 0 0; */
} }
.tabBar>view { .tabBarContaint {
display: flex;
height: 120rpx;
background: url('../../assests/tabBarBg.png');
background-size: cover;
padding-top: 4rpx;
}
.tabBarContaint>view {
flex: 1; flex: 1;
font-size: 28rpx; font-size: 28rpx;
} }
.tabBar>view:nth-of-type(1) { .tabBarContaint>view:nth-of-type(1) {
text-align: left; text-align: left;
} }
.tabBar>view:nth-of-type(2) { .tatabBarContaintbBar>view:nth-of-type(2) {
text-align: right; text-align: right;
} }
...@@ -100,3 +103,9 @@ ...@@ -100,3 +103,9 @@
.tabBarView .iconicon_days { .tabBarView .iconicon_days {
color: #FFFFFF !important; color: #FFFFFF !important;
} }
.tabBarBottom {
height: 15rpx;
width: 100%;
background: #fff;
}
\ No newline at end of file
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
</my-schedule> </my-schedule>
</view> </view>
<view class="tabBar"> <view class="tabBar">
<view class="tabBarContaint">
<view onTap="changeTabBar" data-tabbar='0'> <view onTap="changeTabBar" data-tabbar='0'>
<view class="tabBarView tabBarView1 {{$data.tabBarIndex === '0' ? 'ischooseTabBar' : ''}}"> <view class="tabBarView tabBarView1 {{$data.tabBarIndex === '0' ? 'ischooseTabBar' : ''}}">
<view class="iconfont iconicon_dynamic"></view> <view class="iconfont iconicon_dynamic"></view>
...@@ -25,4 +26,7 @@ ...@@ -25,4 +26,7 @@
<view class="createMeeting" onTap="createMeeting"> <view class="createMeeting" onTap="createMeeting">
<text class="iconfont iconicon_add1"></text> <text class="iconfont iconicon_add1"></text>
</view> </view>
</view>
<view class="tabBarBottom">
</view>
</view> </view>
\ No newline at end of file
...@@ -4,12 +4,14 @@ create.Page({ ...@@ -4,12 +4,14 @@ create.Page({
data: { data: {
$data: null, $data: null,
iconDay: "", iconDay: "",
isLocation: false isLocation: false,
isIPX: false,
}, },
onLoad() { onLoad() {
let iconDay = new Date().getDate(); let iconDay = new Date().getDate();
this.setData({ this.setData({
iconDay: iconDay iconDay: iconDay,
isIPX: getApp().globalData.isIPX
}); });
dd.setNavigationBar({ dd.setNavigationBar({
title: "动态" title: "动态"
......
...@@ -194,7 +194,8 @@ input { ...@@ -194,7 +194,8 @@ input {
} }
.remark .placeholder { .remark .placeholder {
font-size: 28rpx font-size: 28rpx;
font-family: PingFangSC-Regular;
} }
.meetingWay { .meetingWay {
...@@ -232,13 +233,13 @@ input { ...@@ -232,13 +233,13 @@ input {
justify-content: space-between; justify-content: space-between;
} }
.meetingWay .close, .place .close, .participator .iconicon_open { .meetingWay .close, .place .close, .participator .iconright {
color: #9599A2; color: #9599A2;
} }
.close { .close {
font-size: 32rpx; font-size: 32rpx;
color: rgba(10, 10, 10, 0.4) color: rgba(10, 10, 10, 0.3)
} }
.repeatModal { .repeatModal {
...@@ -584,3 +585,9 @@ input { ...@@ -584,3 +585,9 @@ input {
.participateText { .participateText {
vertical-align: middle vertical-align: middle
} }
.tabBarBottom {
height: 20rpx;
background: #fff;
width: 100%;
}
\ No newline at end of file
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
{{conflictPeople.length}}人会议安排冲突 {{conflictPeople.length}}人会议安排冲突
</view> </view>
</view> </view>
<view class="iconicon_open iconfont icon" style=" vertical-align: middle" catchTap="nextPage" data-nextPage="participantsDetail"></view> <view class="iconright iconfont icon" style=" vertical-align: middle" catchTap="nextPage" data-nextPage="participantsDetail"></view>
</view> </view>
<view class="participatorListBottom" catchTap="nextPage" data-nextPage="participantsDetail"> <view class="participatorListBottom" catchTap="nextPage" data-nextPage="participantsDetail">
<view class="people" a:for="{{$data.participatorList.length > 10 ? [...$data.participatorList].splice(0, 11) : $data.participatorList}}"> <view class="people" a:for="{{$data.participatorList.length > 10 ? [...$data.participatorList].splice(0, 11) : $data.participatorList}}">
...@@ -193,6 +193,8 @@ ...@@ -193,6 +193,8 @@
<text class="iconfont iconicon_share1"></text> <text class="iconfont iconicon_share1"></text>
</view> </view>
</view> </view>
<view class="tabBarBottom">
</view>
</view> </view>
<centerpopup centerPopup="{{centerPopup.showCenterPopup}}" centerPopupList="{{centerPopup.centerPopupList}}" onSelectSend="onSelectSend"></centerpopup> <centerpopup centerPopup="{{centerPopup.showCenterPopup}}" centerPopupList="{{centerPopup.centerPopupList}}" onSelectSend="onSelectSend"></centerpopup>
<toast showToast="{{conToastData.showToast}}" title="{{conToastData.title}}" onToastHidden="onToastHidden"></toast> <toast showToast="{{conToastData.showToast}}" title="{{conToastData.title}}" onToastHidden="onToastHidden"></toast>
......
import create from 'dd-store'; import create from 'dd-store';
// import exampleStore from '/stores/exampleStore'
import pageStore from './store'; import pageStore from './store';
import { getMeetingRoomAffairs, createMeetingTask, deleteMeetingTask, updateMeetingTask, uploadPermissions } from '../../api/request'; import { getMeetingRoomAffairs, createMeetingTask, deleteMeetingTask, updateMeetingTask, uploadPermissions } from '../../api/request';
import { isParticipate, deleteSchedule, getScheduleDetail, getUserScheduleInTime, modifySchedule } from '../../api/request.js' import { isParticipate, deleteSchedule, getScheduleDetail, getUserScheduleInTime, modifySchedule } from '../../api/request.js'
...@@ -110,7 +109,7 @@ create.Page({ ...@@ -110,7 +109,7 @@ create.Page({
placeholder: '' placeholder: ''
}, },
onShow() { onShow() {
this.conflictPeople() // this.conflictPeople()
setTimeout(() => { setTimeout(() => {
this.update() this.update()
}, 100) }, 100)
...@@ -121,6 +120,63 @@ create.Page({ ...@@ -121,6 +120,63 @@ create.Page({
'conToastData.title': '保存成功', 'conToastData.title': '保存成功',
}) })
} }
if (this.$store.data.updateInfo.isUpate) {
switch (this.$store.data.updateInfo.updateType) {
case 'operate_user':
if (this.$store.data.participatorList !== this.$store.data.originUsers) {
if (this.data.repeatable === 1) {
this.setData({
'conSelectPopupData.selectType': 'common',
'conSelectPopupData.showSelectPopup': true,
editType: this.$store.data.updateInfo.updateType
})
} else {
this.isChange(this.$store.data.updateInfo.updateType, 'only')
}
} else {
this.reSetUsers()
this.$store.data.updateInfo = {
isUpate: false,
updateType: ''
}
}
break;
case 'modify_location':
if ((this.$store.data.locationName !== this.$store.data.originalData.locationName) || (this.$store.data.roomId !== this.$store.data.originalData.meetingRoomId)) {
if (this.data.repeatable === 1) {
this.setData({
'conSelectPopupData.selectType': 'common',
'conSelectPopupData.showSelectPopup': true,
editType: this.$store.data.updateInfo.updateType
})
} else {
this.isChange(this.$store.data.updateInfo.updateType, 'only')
}
} else {
this.reSetLocation()
this.$store.data.updateInfo = {
isUpate: false,
updateType: ''
}
}
break;
}
} else {
// if (this.$store.data.updateInfo.updateType === 'operate_user') {
// this.reSetUsers()
// } else if (this.$store.data.updateInfo.updateType === 'modify_location') {
// this.reSetTime()
// this.reSetLocation()
// }
// this.$store.data.updateInfo = {
// isUpate: false,
// updateType: ''
// }
}
}, },
onLoad(event) { onLoad(event) {
this.reset() this.reset()
...@@ -154,12 +210,14 @@ create.Page({ ...@@ -154,12 +210,14 @@ create.Page({
if (res.data.code === 0) { if (res.data.code === 0) {
let participatorList = [] let participatorList = []
let originUsers = [] let originUsers = []
let originUsersId = []
let participatorUserId = [] let participatorUserId = []
let repeatListMap = new Map() let repeatListMap = new Map()
for (let value of res.data.data.userList) { for (let value of res.data.data.userList) {
if (value.participator) { if (value.participator) {
participatorList.push(value.participator) participatorList.push(value.participator)
participatorUserId.push(value.participator.userId) participatorUserId.push(value.participator.userId)
originUsersId.push(value.participator.userId)
originUsers.push(value.participator) originUsers.push(value.participator)
if (value.userId === getApp().globalData.userid) { if (value.userId === getApp().globalData.userid) {
this.setData({ this.setData({
...@@ -194,14 +252,14 @@ create.Page({ ...@@ -194,14 +252,14 @@ create.Page({
}) })
} }
this.$store.data.originalData = res.data.data this.$store.data.originalData = res.data.data
this.$store.data.originUsers = participatorList this.$store.data.originUsers = originUsers
this.$store.data.locationName = res.data.data.location.locationName this.$store.data.locationName = res.data.data.location.locationName
this.$store.data.roomId = res.data.data.meetingRoomId < 0 ? '' : res.data.data.meetingRoomId this.$store.data.roomId = res.data.data.meetingRoomId < 0 ? '' : res.data.data.meetingRoomId
this.$store.data.startTime = res.data.data.startTime.replace(/-/g, "/") this.$store.data.startTime = res.data.data.startTime.replace(/-/g, "/")
this.$store.data.endTime = res.data.data.endTime.replace(/-/g, "/") this.$store.data.endTime = res.data.data.endTime.replace(/-/g, "/")
this.$store.data.participatorList = participatorList this.$store.data.participatorList = participatorList
this.$store.data.participatorUserId = participatorUserId this.$store.data.participatorUserId = participatorUserId
this.$store.data.originUsersId = participatorUserId this.$store.data.originUsersId = originUsersId
this.update() this.update()
this.conflictPeople() this.conflictPeople()
this.store.data.scheduleId = res.data.data.id; this.store.data.scheduleId = res.data.data.id;
...@@ -273,6 +331,10 @@ create.Page({ ...@@ -273,6 +331,10 @@ create.Page({
this.$store.data.participatorList = [] this.$store.data.participatorList = []
this.$store.data.participatorUserId = [] this.$store.data.participatorUserId = []
this.$store.data.locationName = '' this.$store.data.locationName = ''
this.$store.data.updateInfo = {
updateType: '',
isUpate: false
}
this.$store.data.startTime = this.getTimes() this.$store.data.startTime = this.getTimes()
this.$store.data.endTime = this.getTimes(new Date(this.getTimes()).setMinutes(new Date(this.$store.data.startTime).getMinutes() + 120)) this.$store.data.endTime = this.getTimes(new Date(this.getTimes()).setMinutes(new Date(this.$store.data.startTime).getMinutes() + 120))
this.update() this.update()
...@@ -283,9 +345,13 @@ create.Page({ ...@@ -283,9 +345,13 @@ create.Page({
nextPage(event) { nextPage(event) {
switch (event.target.dataset.nextPage) { switch (event.target.dataset.nextPage) {
case 'location': case 'location':
this.$store.data.updateInfo.updateType = 'modify_location'
this.update()
dd.navigateTo({ url: `./../place/place?scheduleItem=${JSON.stringify(this.data.scheduleItem)}&repeatable=${this.data.repeatable}` }) dd.navigateTo({ url: `./../place/place?scheduleItem=${JSON.stringify(this.data.scheduleItem)}&repeatable=${this.data.repeatable}` })
break break
case 'participantsDetail': case 'participantsDetail':
this.$store.data.updateInfo.updateType = 'operate_user'
this.update()
dd.navigateTo({ url: `./../participantsDetail/participantsDetail?scheduleItem=${JSON.stringify(this.data.scheduleItem)}` }) dd.navigateTo({ url: `./../participantsDetail/participantsDetail?scheduleItem=${JSON.stringify(this.data.scheduleItem)}` })
break break
} }
...@@ -498,9 +564,7 @@ create.Page({ ...@@ -498,9 +564,7 @@ create.Page({
} else { } else {
_that.$store.data.originUsers.forEach((item, index) => { _that.$store.data.originUsers.forEach((item, index) => {
participatorList.push(item) participatorList.push(item)
if (item.platform === 'dingtalk') {
participatorUserId.push(item.userId) participatorUserId.push(item.userId)
}
}) })
res.users.forEach((item, index) => { res.users.forEach((item, index) => {
participatorList.push({ userId: item.userId, username: item.name, headUrl: item.avatar, platform: 'dingtalk' }) participatorList.push({ userId: item.userId, username: item.name, headUrl: item.avatar, platform: 'dingtalk' })
...@@ -628,6 +692,7 @@ create.Page({ ...@@ -628,6 +692,7 @@ create.Page({
for (let value of this.$store.data.participatorList) { for (let value of this.$store.data.participatorList) {
userIds.push(value.userId) userIds.push(value.userId)
} }
let data = { let data = {
startTime: this.$store.data.startTime.replace(/\//g, "-"), startTime: this.$store.data.startTime.replace(/\//g, "-"),
endTime: this.$store.data.endTime.replace(/\//g, "-"), endTime: this.$store.data.endTime.replace(/\//g, "-"),
...@@ -867,6 +932,7 @@ create.Page({ ...@@ -867,6 +932,7 @@ create.Page({
}) })
break break
case 'operate_user': case 'operate_user':
if (this.$store.data.originUsers != this.$store.data.participatorList) {
let addUserList = this.arrayPoor(this.$store.data.originUsers, this.$store.data.participatorList).addUserList let addUserList = this.arrayPoor(this.$store.data.originUsers, this.$store.data.participatorList).addUserList
let deleteUserList = this.arrayPoor(this.$store.data.originUsers, this.$store.data.participatorList).deleteUserList let deleteUserList = this.arrayPoor(this.$store.data.originUsers, this.$store.data.participatorList).deleteUserList
let dataUser = { let dataUser = {
...@@ -878,12 +944,22 @@ create.Page({ ...@@ -878,12 +944,22 @@ create.Page({
this.modifySchedule(dataUser, needNotice).catch(err => { this.modifySchedule(dataUser, needNotice).catch(err => {
this.$store.data.participatorList = this.$store.data.originUsers this.$store.data.participatorList = this.$store.data.originUsers
this.$store.data.participatorUserId = this.$store.data.originUsersId this.$store.data.participatorUserId = this.$store.data.originUsersId
this.$store.data.updateInfo = {
updateType: '',
isUpate: false
}
this.update() this.update()
}).then(res => { }).then(res => {
this.$store.data.originUsers = this.$store.data.participatorList this.$store.data.originUsers = this.$store.data.participatorList
this.$store.data.originUsersId = this.$store.data.participatorUserId this.$store.data.originUsersId = this.$store.data.participatorUserId
this.$store.data.updateInfo = {
updateType: '',
isUpate: false
}
this.update() this.update()
}) })
}
break break
case 'repeat': case 'repeat':
let repeatListMap = new Map() let repeatListMap = new Map()
...@@ -964,7 +1040,7 @@ create.Page({ ...@@ -964,7 +1040,7 @@ create.Page({
latitude: '-999', latitude: '-999',
locationName: this.$store.data.locationName locationName: this.$store.data.locationName
}, },
meetingRoomId: this.$store.data.meetingRoomId meetingRoomId: this.$store.data.roomId
} }
this.modifySchedule(dataLocation, needNotice).catch(err => { this.modifySchedule(dataLocation, needNotice).catch(err => {
this.$store.data.locationName = this.$store.data.originalData.location.locationName this.$store.data.locationName = this.$store.data.originalData.location.locationName
...@@ -978,6 +1054,17 @@ create.Page({ ...@@ -978,6 +1054,17 @@ create.Page({
} }
this.$store.data.originalData.meetingRoomId = this.$store.data.roomId ? -1 : this.$store.data.roomId this.$store.data.originalData.meetingRoomId = this.$store.data.roomId ? -1 : this.$store.data.roomId
this.update() this.update()
if (this.$store.data.startTime != this.$store.data.originalData.startTime.replace(/-/g, '/') || this.$store.data.endTime != this.$store.data.originalData.endTime.replace(/-/g, '/')) {
let dat2Time1 = {
modifyModel: modifyModel,
startTime: this.$store.data.startTime.replace(/\//g, "-"),
endTime: this.$store.data.endTime.replace(/\//g, "-"),
modifyContent: 'modify_time'
}
this.isChange(dat2Time1)
}
}) })
break break
case 'modify_time': case 'modify_time':
...@@ -1485,6 +1572,6 @@ create.Page({ ...@@ -1485,6 +1572,6 @@ create.Page({
desc: '明我会议室描述', desc: '明我会议室描述',
path: 'pages/index/index' path: 'pages/index/index'
}; };
} },
}); });
...@@ -76,7 +76,6 @@ input { ...@@ -76,7 +76,6 @@ input {
right: 0; right: 0;
padding: 32rpx; padding: 32rpx;
background: #fff; background: #fff;
box-shadow: 0 -2px 4px 0 rgba(0, 0, 0, 0.04);
bottom: 0; bottom: 0;
} }
......
import { getUserScheduleInTime, modifySchedule } from '../../api/request.js' import { getUserScheduleInTime } from '../../api/request.js'
import { throttle } from './../../utils/utils.js' import { throttle } from './../../utils/utils.js'
import create from 'dd-store' import create from 'dd-store'
import { observer } from '/utils/observer.js'
// 传递给组件toast的所有数据
const conToastData = {
showToast: false,
title: '保存成功'
}
create.Page({ create.Page({
data: { data: {
$data: null, $data: null,
userList: [],
userListId: [],
outlookContact: [], outlookContact: [],
value: '',
conflictPeople: [], conflictPeople: [],
scheduleItem: '', scheduleItem: '',
// 传给组件 hList 水平排列 所有数据 comHListData
comHListData: {
contactData: [
{ id: 0, text: '钉钉联系人', imageUrl: '../../assests/dingContact.png' },
{ id: 1, text: '手动添加邮箱', imageUrl: '../../assests/emailContact.png' }
]
},
popupShow: false,
// 传递给组件selectPopup 的数据
conSelectPopupData: {
selectPopupId: '',
showSelectPopup: false,
selectType: 'common',
editSaveList: [{ text: '仅保存此会议', id: 'only' }, { text: '保存此次及以后会议', id: 'future' }]
},
// 传递给组件centerPopup 的数据
centerPopup: {
showCenterPopup: false,
centerPopupList: [
{ id: 0, text: '不发送通知' },
{ id: 1, text: '发送通知' },
{ id: -1, text: '取消编辑' }
],
centerPopupId: ''
},
// 传递给组件toast的所有数据 // 传递给组件toast的所有数据
conToastData: { conToastData: conToastData,
showToast: false, currentPeople: '',
title: '保存成功' value: '',
},
currentPeople: ''
}, },
onLoad(event) { onLoad(event) {
const _that = this const _that = this
if (event.scheduleItem) { if (event.scheduleItem) {
let scheduleItem = JSON.parse(event.scheduleItem) let scheduleItem = JSON.parse(event.scheduleItem)
this.setData({ this.setData({
scheduleItem: scheduleItem scheduleItem: scheduleItem
}) })
} }
let outlookContact = [] let outlookContact = []
for (let value of this.$store.data.participatorList) { for (let value of this.$store.data.participatorList) {
if (value.platform === 'outlook') { if (value.platform === 'outlook') {
...@@ -61,14 +38,7 @@ create.Page({ ...@@ -61,14 +38,7 @@ create.Page({
outlookContact: outlookContact, outlookContact: outlookContact,
currentPeople: getApp().globalData.userid currentPeople: getApp().globalData.userid
}) })
observer.register({
notice(scheduleItem) {
_that.setData({
'scheduleItem.scheduleTemplateId': scheduleItem
})
console.log(scheduleItem);
}
})
this.conflictPeople() this.conflictPeople()
}, },
onShow() { onShow() {
...@@ -82,6 +52,7 @@ create.Page({ ...@@ -82,6 +52,7 @@ create.Page({
// 添加email // 添加email
addEmail() { addEmail() {
let reg = /^\w+((.\w+)|(-\w+))@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+).[A-Za-z0-9]+$/ let reg = /^\w+((.\w+)|(-\w+))@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+).[A-Za-z0-9]+$/
if (!!this.data.value) {
if (reg.test(this.data.value)) { if (reg.test(this.data.value)) {
let outlookContact = this.data.outlookContact let outlookContact = this.data.outlookContact
outlookContact.push({ outlookContact.push({
...@@ -97,13 +68,13 @@ create.Page({ ...@@ -97,13 +68,13 @@ create.Page({
}) })
this.conflictPeople() this.conflictPeople()
} }
else if (!!this.data.value) { }
else { else {
dd.alert({ dd.alert({
content: '请输入正确的邮箱格式', content: '请输入正确的邮箱格式',
buttonText: '确定' buttonText: '确定'
}) })
} }
}
}, },
// 关闭 // 关闭
close(event) { close(event) {
...@@ -128,50 +99,37 @@ create.Page({ ...@@ -128,50 +99,37 @@ create.Page({
} }
return Object.values(containt) return Object.values(containt)
}, },
// 保存 // 创建的时候保存
save() { createSave() {
// concat 拼接后生成新的数组 push 返回的是长度 dd.navigateBack({
let participatorList = [] delta: 1
let participatorListId = []
for (let value of this.$store.data.participatorList) {
if (value.platform !== 'outlook') {
participatorList.push(value)
participatorListId.push(value.userId)
}
}
participatorListId.push(getApp().globalData.userid)
participatorList.push({ userId: getApp().globalData.userid, username: getApp().globalData.name, headUrl: getApp().globalData.avatar, platform: 'dingtalk' })
participatorList.push(...this.data.outlookContact)
participatorList = this.setArrary(participatorList)
this.data.outlookContact.forEach(item => {
participatorListId.push(item.userId)
})
this.setData({
userList: participatorList,
userListId: [...new Set(participatorListId)]
})
if (!!this.data.scheduleItem) {
if (this.$store.data.originalData.repeatable === 1) {
this.setData({
'conSelectPopupData.showSelectPopup': true
}) })
} else {
let addUserList = this.arrayPoor(this.$store.data.originUsers, this.data.userList).addUserList },
let deleteUserList = this.arrayPoor(this.$store.data.originUsers, this.data.userList).deleteUserList // 编辑的时候保存
let dataUser = { editSave() {
addUserList: addUserList, this.$store.data.updateInfo.isUpate = true
deleteUserList: deleteUserList, this.$store.data.updateInfo.updateType = 'operate_user'
modifyModel: 'only',
modifyContent: 'operate_user'
}
this.modifySchedule(dataUser)
}
} else {
this.$store.data.participatorList = participatorList
this.update() this.update()
dd.navigateBack({ dd.navigateBack({
delta: 1 delta: 1
}) })
},
// 保存
save() {
this.$store.data.participatorList.push({ userId: getApp().globalData.userid, username: getApp().globalData.name, headUrl: getApp().globalData.avatar, platform: 'dingtalk' })
this.$store.data.participatorUserId.push(getApp().globalData.userid)
for (let value of this.data.outlookContact) {
this.$store.data.participatorList.push(value)
this.$store.data.participatorUserId.push(value.userId)
}
this.$store.data.participatorList = this.setArrary(this.$store.data.participatorList)
this.$store.data.participatorUserId = [...new Set(this.$store.data.participatorUserId)]
this.update()
if (!!this.data.scheduleItem) {
this.editSave()
} else {
this.createSave()
} }
}, },
// 选择弹窗 // 选择弹窗
...@@ -182,86 +140,12 @@ create.Page({ ...@@ -182,86 +140,12 @@ create.Page({
'centerPopup.showCenterPopup': true 'centerPopup.showCenterPopup': true
}) })
}, },
// 选择发不发通知
onSelectSend(event) {
this.setData({
'centerPopup.showCenterPopup': false
})
if (event.currentTarget.dataset.item.id > -1) {
let addUserList = this.arrayPoor(this.$store.data.originUsers, this.data.userList).addUserList
let deleteUserList = this.arrayPoor(this.$store.data.originUsers, this.data.userList).deleteUserList
let dataUser = {
addUserList: addUserList,
deleteUserList: deleteUserList,
modifyModel: this.data.conSelectPopupData.selectPopupId,
modifyContent: 'operate_user'
}
this.modifySchedule(dataUser, event.currentTarget.dataset.item.id)
} else {
this.operateUserE(false)
}
},
// toast 消失之后的回调 // toast 消失之后的回调
onToastHidden() { onToastHidden() {
this.setData({ this.setData({
'conToastData.showToast': false 'conToastData.showToast': false
}) })
}, },
// 保存编辑
modifySchedule(data, needNotice = 0) {
let obj = {
needNotice: needNotice,
scheduleId: this.data.scheduleItem.id,
templateId: this.data.scheduleItem.scheduleTemplateId,
planDate: this.data.scheduleItem.planDate
}
return new Promise((resolve, rejects) => {
modifySchedule(Object.assign(data, obj)).then(res => {
if (res.data.code === 0) {
this.$store.data.indexNeedUpdate = true
this.update()
if (this.$store.data.originalData.repeatable === 1) {
observer.notice(res.data.data)
}
this.operateUserS()
return resolve(res)
} else {
this.operateUserE()
return rejects(res)
}
}).catch(err => {
this.operateUserE()
return rejects(err)
})
})
},
// 数组取差值 原先的数组与现在的比较 增加与减少
arrayPoor(origin, now) {
let originMap = new Map()
let nowMap = new Map()
let add = []
let del = []
for (let x of origin) {
originMap.set(x.userId, x)
}
for (let x of now) {
nowMap.set(x.userId, x)
let status1 = originMap.get(x.userId)
if (!status1) {
add.push(x)
}
}
for (let x of origin) {
let status2 = nowMap.get(x.userId)
if (!status2) {
del.push(x)
}
}
return {
addUserList: add,
deleteUserList: del
}
},
// 会议冲突 // 会议冲突
conflictPeople() { conflictPeople() {
let userIds = [] let userIds = []
...@@ -307,31 +191,10 @@ create.Page({ ...@@ -307,31 +191,10 @@ create.Page({
}) })
this.operateUserE(false) this.operateUserE(false)
}, },
// 参会人修改成功
operateUserS() {
this.$store.data.participatorList = this.data.userList
this.$store.data.participatorUserId = this.data.userListId
this.$store.data.indexNeedUpdate = true
this.$store.data.originUsers = this.$store.data.participatorList
this.$store.data.originUsersId = this.$store.data.participatorUserId
this.update()
dd.navigateBack({
delta: 1
})
},
// 参会人修改失败
operateUserE(x = true) {
if (x) {
this.setData({
'conToastData.showToast': true,
'conToastData.title': '保存失败'
})
}
},
// 页面卸载 // 页面卸载
onUnload() { onUnload() {
// 页面被关闭
observer.unregister()
}, }
}); });
...@@ -86,3 +86,26 @@ page { ...@@ -86,3 +86,26 @@ page {
.peopleList:last-of-type .info { .peopleList:last-of-type .info {
border: none border: none
} }
.save {
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 32rpx;
background: #fff;
position: fixed;
bottom: 0;
}
.button {
font-family: PingFangSC-Regular;
width: 686rpx;
height: 72rpx;
background: #EA0C28;
border-radius: 48rpx;
font-size: 32rpx;
color: #FFFFFF;
text-align: center;
line-height: 72rpx;
}
\ No newline at end of file
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
</view> </view>
<view class="info"> <view class="info">
<text class="name">{{item.username}}</text> <text class="name">{{item.username}}</text>
<text a:if="{{(!scheduleItem || currentPeople === $data.originalData.organizer) ? !(item.userId == currentPeople) : false}}" class="close iconicon_close iconfont" data-userId="{{item.userId}}" onTap="delParticipants"></text> <text a:if="{{(!scheduleItem || currentPeople === $data.originalData.organizer) ? !(item.userId == currentPeople) : !($data.originUsersId.includes(item.userId)) }}" class="close iconicon_close iconfont" data-userId="{{item.userId}}" onTap="delParticipants"></text>
</view> </view>
</view> </view>
</view> </view>
...@@ -16,10 +16,13 @@ ...@@ -16,10 +16,13 @@
<text class="iconfont iconicon_add "></text> <text class="iconfont iconicon_add "></text>
<text>添加参会人</text> <text>添加参会人</text>
</view> </view>
<popup title="{{popupTitle}}" show="{{popupShow}}" mask="true" onClose="closePopup"> <!-- 保存 -->
<view class="save" onTap="saveInfo" a:if="{{scheduleItem}}">
<view class="button">
完成
</view>
</view>
<popup title="{{comPopupData.title}}" show="{{comPopupData.popupShow}}" mask="true" onClose="closePopup">
<hlist dataComList="{{comHListData.contactData}}" onSelectComHList="selectComHList"></hlist> <hlist dataComList="{{comHListData.contactData}}" onSelectComHList="selectComHList"></hlist>
</popup> </popup>
<toast showToast="{{conToastData.showToast}}" title="{{conToastData.title}}" onToastHidden="onToastHidden"></toast>
<centerpopup centerPopup="{{centerPopup.showCenterPopup}}" centerPopupList="{{centerPopup.centerPopupList}}" onSelectSend="onSelectSend"></centerpopup>
<selectpopup showSelectPopup="{{conSelectPopupData.showSelectPopup}}" selectPopupList="{{conSelectPopupData.editSaveList}}" onSelectPopup="onSelectPopup" onSelectPopupCancel="onSelectPopupCancel"></selectpopup>
</view> </view>
\ No newline at end of file
class Store {
data = {
contactPeople: [],
contactPeopleId: []
}
}
export default new Store()
\ No newline at end of file
...@@ -34,15 +34,6 @@ create.Page({ ...@@ -34,15 +34,6 @@ create.Page({
}, },
onLoad(e) { onLoad(e) {
if (e.scheduleItem) { if (e.scheduleItem) {
const _that = this
observer.register({
notice(scheduleItem) {
_that.setData({
'scheduleItem.scheduleTemplateId': scheduleItem
})
console.log(scheduleItem);
}
})
this.setData({ this.setData({
repeatable: e.repeatable, repeatable: e.repeatable,
scheduleItem: JSON.parse(e.scheduleItem) scheduleItem: JSON.parse(e.scheduleItem)
...@@ -65,34 +56,15 @@ create.Page({ ...@@ -65,34 +56,15 @@ create.Page({
selectPlace(event) { selectPlace(event) {
this.$store.data.locationName = event.target.dataset.locationName this.$store.data.locationName = event.target.dataset.locationName
this.$store.data.roomId = '' this.$store.data.roomId = ''
this.update() if (!!this.data.scheduleItem)
if (!!this.data.scheduleItem) { this.$store.data.updateInfo = {
if (this.data.repeatable != 0) { updateType: 'modify_location',
this.setData({ isUpate: true
'conSelectPopupData.showSelectPopup': true
})
} else {
let data = {
location: {
longitude: -999,
latitude: -999,
locationName: this.$store.data.locationName
},
meetingRoomId: this.$store.data.roomId,
modifyModel: 'only',
modifyContent: 'modify_location'
}
this.modifySchedule(data, 0).then(res => {
this.editLocationS()
}).catch(err => {
this.editLocationE()
})
} }
} else { this.update()
dd.navigateBack({ dd.navigateBack({
delta: 1 delta: 1
}) })
}
}, },
onSelectPopup(event) { onSelectPopup(event) {
...@@ -184,34 +156,15 @@ create.Page({ ...@@ -184,34 +156,15 @@ create.Page({
selectMeetingRoom(e) { selectMeetingRoom(e) {
this.$store.data.locationName = e.target.dataset.locationName this.$store.data.locationName = e.target.dataset.locationName
this.$store.data.roomId = e.target.dataset.locationid this.$store.data.roomId = e.target.dataset.locationid
this.update() if (!!this.data.scheduleItem)
if (!!this.data.scheduleItem) { this.$store.data.updateInfo = {
if (this.data.repeatable != 0) { updateType: 'modify_location',
this.setData({ isUpate: true
'conSelectPopupData.showSelectPopup': true
})
} else {
let data = {
location: {
longitude: -999,
latitude: -999,
locationName: this.$store.data.locationName
},
meetingRoomId: this.$store.data.roomId,
modifyModel: 'only',
modifyContent: 'modify_location'
}
this.modifySchedule(data, 0).then(res => {
this.editLocationS()
}).catch(err => {
this.editLocationE()
})
} }
} else { this.update()
dd.navigateBack({ dd.navigateBack({
delta: 1 delta: 1
}) })
}
}, },
inputPlace(event) { inputPlace(event) {
this.setData({ this.setData({
......
...@@ -10,6 +10,10 @@ class Store { ...@@ -10,6 +10,10 @@ class Store {
originUsersId: [], originUsersId: [],
originalData: null, originalData: null,
indexNeedUpdate: false, indexNeedUpdate: false,
updateInfo: {
updateType: '',
isUpate: false
},
tabBarIndex: '0', tabBarIndex: '0',
locationSchedule: () => { } locationSchedule: () => { }
} }
......
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