Commit 224a17bf by fengzhaoyu

编辑选人模块

parents 59dddfc0 112bd921
{{permissions}}
<view class="createOrEditSchedule"> <view class="createOrEditSchedule">
<!-- 主题 --> <!-- 主题 -->
<view class="theme"> <view class="theme">
...@@ -160,14 +161,17 @@ ...@@ -160,14 +161,17 @@
描述 描述
</view> </view>
</view> </view>
<view a:if="{{repeatable==0&&!!scheduleItem}}" class="listGroup" onTap="editSchedule" data-icon="iconshanchu"> {{organize}}
<!-- {{permissions}} -->
{{organize}}
<view a:if="{{isRepeat==0&&!!scheduleItem}}" class="listGroup" onTap="editSchedule" data-icon="iconshanchu">
<view class="listIcon iconfont iconshanchu"> <view class="listIcon iconfont iconshanchu">
</view> </view>
<view class="listText"> <view class="listText">
删除 删除
</view> </view>
</view> </view>
<picker a:if="{{!!scheduleItem&&repeatable==1}}" value="{{0}}" range="{{['仅删除此次会议', '删除以后会议', '删除所有会议']}}" onChange="deleteRepeatSchedule"> <picker a:if="{{!!scheduleItem&&isRepeat==1}}" range="{{['仅删除此次会议', '删除以后会议', '删除所有会议']}}" onChange="deleteRepeatSchedule">
<view class="listGroup" data-icon="iconshanchu"> <view class="listGroup" data-icon="iconshanchu">
<view class="listIcon iconfont iconshanchu"> <view class="listIcon iconfont iconshanchu">
</view> </view>
...@@ -178,7 +182,7 @@ ...@@ -178,7 +182,7 @@
</picker> </picker>
</view> </view>
<!-- 编辑重复的时候的保存 --> <!-- 编辑重复的时候的保存 -->
<picker a:if="{{repeatable=='1'}}" value="{{0}}" range="{{['仅更新此会议', '更新以后会议', '更新所有会议']}}" onChange="saveRepeat"> <picker a:if="{{isRepeat=='1'}}" value="{{0}}" range="{{['仅更新此会议', '更新以后会议', '更新所有会议']}}" onChange="saveRepeat">
<view> <view>
<view class="save"> <view class="save">
<view> <view>
......
...@@ -21,12 +21,14 @@ create.Page({ ...@@ -21,12 +21,14 @@ create.Page({
scheduleItem: '', // 日程ID 从详情页面传过来 scheduleItem: '', // 日程ID 从详情页面传过来
buttonText: '立即创建', buttonText: '立即创建',
// 人员增量信息 减量信息 只有在编辑的时候使用 // 人员增量信息 减量信息 只有在编辑的时候使用
addUserList: undefined, addUserList: [],
deleteUserList: undefined, deleteUserList: [],
originUserList: [], originUserList: [],
requireUsers: [], requireUsers: [],
requireUsersInfo: [], requireUsersInfo: [],
organizer: '' organizer: '',
isRepeat: '',
permissions: ''
}, },
onLoad(event) { onLoad(event) {
let index = new Date().getDay() let index = new Date().getDay()
...@@ -59,6 +61,7 @@ create.Page({ ...@@ -59,6 +61,7 @@ create.Page({
week1: w, week1: w,
week2: w, week2: w,
type: event.type, type: event.type,
permissions: getApp().globalData.userid,
repeatWeek: this.data.repeatWeek repeatWeek: this.data.repeatWeek
}) })
if (!!event.scheduleItem) { if (!!event.scheduleItem) {
...@@ -76,10 +79,11 @@ create.Page({ ...@@ -76,10 +79,11 @@ create.Page({
this.store.data.aheadTimes = [15] this.store.data.aheadTimes = [15]
this.update() this.update()
} }
this.conflict()
}, },
onShow() { onShow() {
const _that = this const _that = this
_that.conflict()
_that.arrayPoor(_that.data.originUserList, _that.store.data.participatorList)
setTimeout(function () { setTimeout(function () {
_that.update() _that.update()
}, 100) }, 100)
...@@ -184,7 +188,7 @@ create.Page({ ...@@ -184,7 +188,7 @@ create.Page({
_that.store.data.participatorList = [] _that.store.data.participatorList = []
_that.store.data.participatorUserId = [] _that.store.data.participatorUserId = []
res.users.forEach((item, index) => { res.users.forEach((item, index) => {
_that.store.data.participatorList.push({ userId: item.userId, username: item.name, headUrl: item.headUrl }) _that.store.data.participatorList.push({ userId: item.userId, username: item.name, headUrl: item.avatar })
_that.store.data.participatorUserId.push(item.userId) _that.store.data.participatorUserId.push(item.userId)
}) })
_that.store.data.participatorList.push({ userId: getApp().globalData.userid, username: getApp().globalData.name, headUrl: getApp().globalData.avatar }) _that.store.data.participatorList.push({ userId: getApp().globalData.userid, username: getApp().globalData.name, headUrl: getApp().globalData.avatar })
...@@ -193,7 +197,7 @@ create.Page({ ...@@ -193,7 +197,7 @@ create.Page({
_that.store.data.participatorList = [] _that.store.data.participatorList = []
_that.store.data.participatorUserId = [] _that.store.data.participatorUserId = []
res.users.forEach((item, index) => { res.users.forEach((item, index) => {
_that.store.data.participatorList.push({ userId: item.userId, username: item.name, headUrl: item.headUrl }) _that.store.data.participatorList.push({ userId: item.userId, username: item.name, headUrl: item.avatar })
_that.store.data.participatorUserId.push(item.userId) _that.store.data.participatorUserId.push(item.userId)
}) })
_that.data.requireUsersInfo.forEach((item, index) => { _that.data.requireUsersInfo.forEach((item, index) => {
...@@ -219,7 +223,7 @@ create.Page({ ...@@ -219,7 +223,7 @@ create.Page({
} }
switch (event.target.dataset.nextPage) { switch (event.target.dataset.nextPage) {
case 'participantsDetail': case 'participantsDetail':
dd.navigateTo({ url: `./../participantsDetail/participantsDetail?time=${JSON.stringify(time)}` }) dd.navigateTo({ url: `./../participantsDetail/participantsDetail?scheduleItem=${JSON.stringify(this.data.scheduleItem)}&organizer=${this.data.organizer}&requireUsers=${JSON.stringify(this.data.requireUsers)}&requireUsersInfo=${JSON.stringify(this.data.requireUsersInfo)}` })
break; break;
case 'place': case 'place':
dd.navigateTo({ url: './../place/place' }) dd.navigateTo({ url: './../place/place' })
...@@ -348,13 +352,17 @@ create.Page({ ...@@ -348,13 +352,17 @@ create.Page({
} }
getUserScheduleInTime(data).then(res => { getUserScheduleInTime(data).then(res => {
for (let value in res.data.data) { for (let value in res.data.data) {
if (!!res.data.data[value].length) { if (!!this.data.scheduleItem) {
if (res.data.data[value]) { if (res.data.data[value].length > 1) {
this.store.data.conflictPeople.push(value) this.store.data.conflictPeople.push(value)
} }
} else {
if (res.data.data[value].length > 0) {
this.store.data.conflictPeople.push(value)
} }
} }
}
this.update() this.update()
}) })
}, },
...@@ -381,10 +389,11 @@ create.Page({ ...@@ -381,10 +389,11 @@ create.Page({
this.store.data.remark = res.data.data.remark || '' this.store.data.remark = res.data.data.remark || ''
this.store.data.recurrenceModel = res.data.data.recurrenceModel || { model: 'no-repeat' } this.store.data.recurrenceModel = res.data.data.recurrenceModel || { model: 'no-repeat' }
this.setData({ this.setData({
isRepeat: res.data.data.repeatable,
organizer: res.data.data.organizer, organizer: res.data.data.organizer,
requireUsersInfo: participatorList, requireUsersInfo: participatorList,
requireUsers: participatorUserId, requireUsers: participatorUserId,
originUserList: participatorList, originUserList: [...participatorList],
title: res.data.data.title, title: res.data.data.title,
time1: res.data.data.startTime.replace(/-/g, '/'), time1: res.data.data.startTime.replace(/-/g, '/'),
time2: res.data.data.endTime.replace(/-/g, '/'), time2: res.data.data.endTime.replace(/-/g, '/'),
...@@ -423,18 +432,15 @@ create.Page({ ...@@ -423,18 +432,15 @@ create.Page({
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
success: (success) => { success: (success) => {
console.log(JSON.stringify(success)) if (!!success.confirm) {
deleteSchedule(data).then(res => { deleteSchedule(data).then(res => {
dd.navigateBack({ dd.navigateBack({
delta: 2 delta: 2
}) })
}) })
}, }
error: (err) => {
console.log(JSON.stringify(err))
} }
}) })
break; break;
} }
...@@ -479,8 +485,6 @@ create.Page({ ...@@ -479,8 +485,6 @@ create.Page({
del.push(x) del.push(x)
} }
} }
console.log(1111)
console.log(JSON.stringify(add))
this.setData({ this.setData({
addUserList: add, addUserList: add,
deleteUserList: del deleteUserList: del
...@@ -509,16 +513,21 @@ create.Page({ ...@@ -509,16 +513,21 @@ create.Page({
deleteRepeatSchedule(event) { deleteRepeatSchedule(event) {
let deleteModel = '' let deleteModel = ''
switch (event.detail.value) { switch (event.detail.value) {
case 0: case 0 || '0':
deleteModel = 'only' deleteModel = 'only'
break; break;
case 1: case 1 || '1':
deleteModel = 'future' deleteModel = 'future'
break; break;
case 2: case 2 || '2':
deleteModel = 'all' deleteModel = 'all'
break; break;
} }
this.setData({
deleteModel: deleteModel
})
console.log(11111)
console.log(JSON.stringify(this.data.scheduleItem.planDate))
let data = { let data = {
planDate: this.data.scheduleItem.planDate, planDate: this.data.scheduleItem.planDate,
templateId: this.data.scheduleItem.scheduleTemplateId, templateId: this.data.scheduleItem.scheduleTemplateId,
......
...@@ -22,10 +22,19 @@ page { ...@@ -22,10 +22,19 @@ page {
height: 64rpx; height: 64rpx;
background: #3296FA; background: #3296FA;
border-radius: 50%; border-radius: 50%;
overflow: hidden;
color: white; color: white;
line-height: 64rpx; line-height: 64rpx;
text-align: center; text-align: center;
position: relative;
}
.conflict {
position: absolute;
width: 18rpx;
height: 18rpx;
background: red;
bottom: 3rpx;
right: -2rpx;
border-radius: 50%;
} }
.headImg image { .headImg image {
vertical-align: middle; vertical-align: middle;
...@@ -49,11 +58,10 @@ page { ...@@ -49,11 +58,10 @@ page {
} }
.button { .button {
padding: 24rpx 32rpx;
position: fixed; position: fixed;
bottom: 0; bottom: 0;
display: flex; display: flex;
margin-left: 32rpx;
padding-bottom: 32rpx;
background: white; background: white;
} }
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
<view class="headImg"> <view class="headImg">
<image a:if="{{!!item.headUrl}}" mode="scaleToFill" src="{{item.headUrl}}"/> <image a:if="{{!!item.headUrl}}" mode="scaleToFill" src="{{item.headUrl}}"/>
<text a:else>{{item.username.substring(0, 1)}}</text> <text a:else>{{item.username.substring(0, 1)}}</text>
<text a:if="{{conflictPeople.includes(item.userId)}}"class="conflict"></text>
</view> </view>
<view class="info"> <view class="info">
<text class="name">{{item.username}}</text> <text class="name">{{item.username}}</text>
......
...@@ -7,44 +7,88 @@ create.Page({ ...@@ -7,44 +7,88 @@ create.Page({
time1: '', time1: '',
time2: '', time2: '',
data: { data: {
scheduleItem: '',
requireUsers: [],
organizer: '',
myself: '',
requireUsersInfo: []
}, },
onLoad(event) { onLoad(event) {
let myself = getApp().globalData.userid
let scheduleItem = JSON.parse(event.scheduleItem)
let organizer = event.organizer
let requireUsers = JSON.parse(event.requireUsers)
let requireUsersInfo = JSON.parse(event.requireUsersInfo)
this.setData({ this.setData({
time1: event.time1, requireUsers: requireUsers,
time2: event.time1 organizer: organizer,
scheduleItem: scheduleItem,
time1: scheduleItem.startTime,
time2: scheduleItem.endTime,
myself: myself,
requireUsersInfo: requireUsersInfo
}) })
dd.setNavigationBar({ dd.setNavigationBar({
title: `参会人(${this.store.data.participatorList.length}人)` title: `参会人(${this.store.data.participatorList.length}人)`
}) })
this.conflict()
}, },
// 保存信息 // 保存信息
saveInfo() { saveInfo() {
this.conflict() dd.navigateBack({
delta: 1
})
}, },
// 添加参会人 // 添加参会人
addParticipants() { addParticipants() {
const _that = this const _that = this
let require = []
let select = []
if (!this.data.scheduleItem || this.data.organizer === getApp().globalData.userid) {
select = this.store.data.participatorUserId
require = [getApp().globalData.userid]
select.forEach((item, index) => {
if (item.userId == getApp().globalData.userid) {
select.splice(index, 1)
}
})
} else {
select = [...this.store.data.participatorUserId]
require = [...this.data.requireUsers]
}
select = _that.selectedelRequired(require, select).pickedUsers
dd.complexChoose({ dd.complexChoose({
title: "选择参会人", //标题 title: "选择参会人", //标题
multiple: true, //是否多选 multiple: true, //是否多选
limitTips: "超出了", //超过限定人数返回提示 pickedUsers: select, //已选用户
maxUsers: 100, //最大可选人数 requiredUsers: require, //必选用户(不可取消选中状态)
pickedUsers: _that.store.data.participatorUserId, //已选用户
requiredUsers: [], //必选用户(不可取消选中状态
responseUserOnly: true, //返回人,或者返回人和部门 responseUserOnly: true, //返回人,或者返回人和部门
success: function (res) { success: function (res) {
if (!_that.data.scheduleItem || _that.data.organizer === getApp().globalData.userid) {
_that.store.data.participatorList = []
_that.store.data.participatorUserId = []
res.users.forEach((item, index) => { res.users.forEach((item, index) => {
_that.store.data.participatorList.push({ userId: item.userId, username: item.name, headUrl: item.headUrl }) _that.store.data.participatorList.push({ userId: item.userId, username: item.name, headUrl: item.avatar })
_that.store.data.participatorUserId.push(item.userId)
})
_that.store.data.participatorList.push({ userId: getApp().globalData.userid, username: getApp().globalData.name, headUrl: getApp().globalData.avatar })
_that.store.data.participatorUserId.push(getApp().globalData.userid)
} else {
_that.store.data.participatorList = []
_that.store.data.participatorUserId = []
res.users.forEach((item, index) => {
_that.store.data.participatorList.push({ userId: item.userId, username: item.name, headUrl: item.avatar })
_that.store.data.participatorUserId.push(item.userId)
})
_that.data.requireUsersInfo.forEach((item, index) => {
_that.store.data.participatorList.push({ userId: item.userId, username: item.username, headUrl: item.headUrl })
_that.store.data.participatorUserId.push(item.userId) _that.store.data.participatorUserId.push(item.userId)
}) })
}
_that.store.data.participatorList = _that.setArrary(_that.store.data.participatorList) _that.store.data.participatorList = _that.setArrary(_that.store.data.participatorList)
_that.store.data.participatorUserId = [...new Set(_that.store.data.participatorUserId)] _that.store.data.participatorUserId = [...new Set(_that.store.data.participatorUserId)]
_that.conflict()
_that.update() _that.update()
dd.setNavigationBar({
title: `参会人(${_that.store.data.participatorList.length}人)`
})
}, },
fail: function (err) { fail: function (err) {
} }
...@@ -70,6 +114,7 @@ create.Page({ ...@@ -70,6 +114,7 @@ create.Page({
dd.setNavigationBar({ dd.setNavigationBar({
title: `参会人(${this.store.data.participatorList.length}人)` title: `参会人(${this.store.data.participatorList.length}人)`
}) })
this.conflict()
}, },
// 数组去重 // 数组去重
setArrary(arr, userId) { setArrary(arr, userId) {
...@@ -90,14 +135,33 @@ create.Page({ ...@@ -90,14 +135,33 @@ create.Page({
} }
getUserScheduleInTime(data).then(res => { getUserScheduleInTime(data).then(res => {
for (let value in res.data.data) { for (let value in res.data.data) {
if (!!res.data.data[value].length) { if (!!this.data.scheduleItem) {
if (res.data.data[value].length > 1) {
this.store.data.conflictPeople.push(value)
}
} else {
if (res.data.data[value].length > 0) {
this.store.data.conflictPeople.push(value) this.store.data.conflictPeople.push(value)
} }
} }
}
this.update() this.update()
dd.navigateBack({
delta: 1
})
}) })
},
// 已选用户去中去掉必选用户
selectedelRequired(req, pic) {
for (let i = 0; i < req.length; i++) {
for (let m = 0; m < pic.length; m++) {
if (req[i] == pic[m]) {
pic.splice(m, 1)
m--;
}
}
}
return {
requiredUsers: req,
pickedUsers: pic
}
} }
}); });
...@@ -18,7 +18,7 @@ create.Page({ ...@@ -18,7 +18,7 @@ create.Page({
title: '选择重复' title: '选择重复'
}) })
let week = new Date().getDay() let week = new Date().getDay()
this.data.repeatList[2].weekDayList = [this.data.week1[week]] this.data.repeatList[2].weekDayList = [this.data.week1[week -1]]
this.data.repeatList[2].text = this.data.week2[week -1] this.data.repeatList[2].text = this.data.week2[week -1]
this.setData({ this.setData({
repeatList: this.data.repeatList repeatList: this.data.repeatList
......
...@@ -32,10 +32,10 @@ ...@@ -32,10 +32,10 @@
</view> </view>
</view> </view>
<!-- 参会人 --> <!-- 参会人 -->
<view class="participants"> <view class="participants" onTap="nextPage" data-nextPage="participants">
<view class="icon iconcanhuiren1 iconfont"> <view class="icon iconcanhuiren1 iconfont">
</view> </view>
<view class="scroll" v-if="{{!!userList.length}}" onTap="nextPage" data-nextPage="participants"> <view class="scroll" v-if="{{!!userList.length}}" >
<text class="imageGroup" a:for="{{userList}}" a:for-item="item"> <text class="imageGroup" a:for="{{userList}}" a:for-item="item">
<text> <text>
<image a:if="{{!!item.participator.headUrl}}" mode="scaleToFill" src="{{item.participator.headUrl}}"/> <image a:if="{{!!item.participator.headUrl}}" mode="scaleToFill" src="{{item.participator.headUrl}}"/>
......
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