|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <view class="main_app"> | 
|---|
|  |  |  | <view class="module_list"> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name">会议时间</view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label">2022年22月2日 1000000000</view> | 
|---|
|  |  |  | <u-icon name="arrow-right" color="#999999" size="14" /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name">会议室</view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label">aaaaaaaa</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name">预约人</view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label">aaaaaaaa</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="empty"></view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name"> | 
|---|
|  |  |  | <text>会议主题</text> | 
|---|
|  |  |  | <text class="star">*</text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <input type="text" v-model="param.aaa" placeholder="请输入会议主题" placeholder-class="placeholder9" class="label"> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name"> | 
|---|
|  |  |  | <text>会议内容</text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <u-textarea border="none" v-model="param.aaa" count :maxlength="300" placeholder="请输入会议内容" placeholder-class="placeholder9" class="label" /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="empty"></view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name">参会人员</view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label"> | 
|---|
|  |  |  | <text v-if="false">moumoumou</text> | 
|---|
|  |  |  | <text v-else class="placeholder9" @click="$jump('/pages/staff/memberSel')">请选择</text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <u-icon name="arrow-right" color="#999999" size="14" @click="$jump('/pages/staff/memberSel')" /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name">选择服务项</view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label"> | 
|---|
|  |  |  | <view class="service_item" v-for="(item,index) in serviceOps" :key="index"> | 
|---|
|  |  |  | {{ item.value }} | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name"> | 
|---|
|  |  |  | <text>备注</text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <textarea v-model="param.as" :maxlength="-1" placeholder="请输入" placeholder-class="placeholder9" class="label" /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <view class="sub_btn"> | 
|---|
|  |  |  | 确认预约 | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="main_app"> | 
|---|
|  |  |  | <view class="module_list"> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name">会议时间</view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label"> | 
|---|
|  |  |  | {{ param.activeDate }} {{ param.startTime }}-{{ param.endTime }} | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <u-icon name="arrow-right" color="#999999" size="14" /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name">会议室</view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label">{{ param.roomName }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name">预约人</view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label">{{ userInfo.realname }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="empty"></view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name"> | 
|---|
|  |  |  | <text>会议主题</text> | 
|---|
|  |  |  | <text class="star">*</text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <input | 
|---|
|  |  |  | type="text" | 
|---|
|  |  |  | v-model="param.name" | 
|---|
|  |  |  | placeholder="请输入会议主题" | 
|---|
|  |  |  | placeholder-class="placeholder9" | 
|---|
|  |  |  | class="label" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name"> | 
|---|
|  |  |  | <text>会议内容</text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <u-textarea | 
|---|
|  |  |  | border="none" | 
|---|
|  |  |  | v-model="param.content" | 
|---|
|  |  |  | count | 
|---|
|  |  |  | :maxlength="300" | 
|---|
|  |  |  | placeholder="请输入会议内容" | 
|---|
|  |  |  | placeholder-class="placeholder9" | 
|---|
|  |  |  | class="label" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="empty"></view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name">参会人员</view> | 
|---|
|  |  |  | <view class="line" @click="selPeople"> | 
|---|
|  |  |  | <view class="label"> | 
|---|
|  |  |  | <text v-if="param.sysList && param.sysList.length > 0"> | 
|---|
|  |  |  | {{ param.sysList.map(i=>i.realname).join(',') }} | 
|---|
|  |  |  | </text> | 
|---|
|  |  |  | <text | 
|---|
|  |  |  | v-else | 
|---|
|  |  |  | class="placeholder9" | 
|---|
|  |  |  | @click="$jump('/pages/staff/memberSel')" | 
|---|
|  |  |  | >请选择</text | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <u-icon | 
|---|
|  |  |  | name="arrow-right" | 
|---|
|  |  |  | color="#999999" | 
|---|
|  |  |  | size="14" | 
|---|
|  |  |  | @click="$jump('/pages/staff/memberSel')" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name">选择服务项</view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="label"> | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="service_item" | 
|---|
|  |  |  | :class="{active: item.checked}" | 
|---|
|  |  |  | v-for="(item, index) in info.projectList" | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | @click="serviceClick(item)" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | {{ item.projectName }} | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="name"> | 
|---|
|  |  |  | <text>备注</text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <textarea | 
|---|
|  |  |  | v-model="param.remark" | 
|---|
|  |  |  | :maxlength="-1" | 
|---|
|  |  |  | placeholder="请输入" | 
|---|
|  |  |  | placeholder-class="placeholder9" | 
|---|
|  |  |  | class="label" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <view class="sub_btn" @click="onSubmit"> 确认预约 </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <script> | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | param: {}, | 
|---|
|  |  |  | serviceOps: [ | 
|---|
|  |  |  | { key: '0', value: '席卡' }, | 
|---|
|  |  |  | { key: '1', value: '投影仪' }, | 
|---|
|  |  |  | { key: '2', value: '笔记本电脑' }, | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | import { | 
|---|
|  |  |  | reservationMeeting, | 
|---|
|  |  |  | getRoomDetail | 
|---|
|  |  |  | } from '@/api' | 
|---|
|  |  |  | import dayjs from 'dayjs' | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | param: {}, | 
|---|
|  |  |  | userInfo: uni.getStorageSync('userInfo'), | 
|---|
|  |  |  | info: {}, | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onLoad(option) { | 
|---|
|  |  |  | this.param = { ...option } | 
|---|
|  |  |  | this.$set(this.param, 'activeDate', dayjs(option.yudingDate).format('YYYY年M月D日')) | 
|---|
|  |  |  | this.initOption() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | mounted() { | 
|---|
|  |  |  | this.$eventBus.$on('meetingPeo', (res) => { | 
|---|
|  |  |  | this.$set(this.param, 'sysList', res) | 
|---|
|  |  |  | // this.$set(this.param, 'memberIds', res.map(i => i.id).join(',')) | 
|---|
|  |  |  | // this.$set(this.param, 'memberNames', res.map(i => i.name).join(',')) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | onSubmit() { | 
|---|
|  |  |  | const { param, info } = this | 
|---|
|  |  |  | if (!param.name) return uni.showToast({ | 
|---|
|  |  |  | title: '请输入会议主题', | 
|---|
|  |  |  | icon: 'none' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | reservationMeeting({ | 
|---|
|  |  |  | ...param, | 
|---|
|  |  |  | startTime: `${param.yudingDate} ${param.startTime}:00`, | 
|---|
|  |  |  | endTime: `${param.yudingDate} ${param.endTime}:00`, | 
|---|
|  |  |  | projectList: info.projectList.filter(i => i.checked), | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | if(res.code === 200){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | selPeople() { | 
|---|
|  |  |  | const { param } = this | 
|---|
|  |  |  | let startTime = param.yudingDate + ' ' + param.startTime | 
|---|
|  |  |  | let endTime = param.yudingDate + ' ' + param.endTime | 
|---|
|  |  |  | uni.navigateTo({ | 
|---|
|  |  |  | url: `/pages/staff/meetingSel?startTime=${startTime}&endTime=${endTime}` | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | serviceClick(item) { | 
|---|
|  |  |  | const { info } = this | 
|---|
|  |  |  | info.projectList.forEach(ite => { | 
|---|
|  |  |  | if(ite.projectId === item.projectId){ | 
|---|
|  |  |  | ite.checked = !ite.checked | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | this.$forceUpdate() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | initOption() { | 
|---|
|  |  |  | const roomId = Number(this.param.roomId) | 
|---|
|  |  |  | getRoomDetail({ roomId }).then(res => { | 
|---|
|  |  |  | res.data.projectList.forEach(item => { | 
|---|
|  |  |  | item.active = false | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | this.info = res.data | 
|---|
|  |  |  | if(this.info && this.info.projectList){ | 
|---|
|  |  |  | this.info.projectList.forEach(i => { | 
|---|
|  |  |  | i.checked = false | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <style lang="scss"> | 
|---|
|  |  |  | .module_list{ | 
|---|
|  |  |  | .item{ | 
|---|
|  |  |  | border-bottom: 1rpx solid #E5E5E5; | 
|---|
|  |  |  | padding: 30rpx 0; | 
|---|
|  |  |  | .name{ | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | margin-bottom: 30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .line{ | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | .label{ | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | .service_item{ | 
|---|
|  |  |  | height: 64rpx; | 
|---|
|  |  |  | line-height: 64rpx; | 
|---|
|  |  |  | background: #F7F7F7; | 
|---|
|  |  |  | border-radius: 4rpx; | 
|---|
|  |  |  | padding: 0 24rpx; | 
|---|
|  |  |  | margin-right: 20rpx; | 
|---|
|  |  |  | .module_list { | 
|---|
|  |  |  | .item { | 
|---|
|  |  |  | border-bottom: 1rpx solid #e5e5e5; | 
|---|
|  |  |  | padding: 30rpx 0; | 
|---|
|  |  |  | .name { | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | margin-bottom: 30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .line { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | .label { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | .service_item { | 
|---|
|  |  |  | height: 64rpx; | 
|---|
|  |  |  | line-height: 64rpx; | 
|---|
|  |  |  | background: #f7f7f7; | 
|---|
|  |  |  | border-radius: 4rpx; | 
|---|
|  |  |  | padding: 0 24rpx; | 
|---|
|  |  |  | margin-right: 20rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .active{ | 
|---|
|  |  |  | background-color: #4d99a8; | 
|---|
|  |  |  | color: #fff; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | padding-bottom: 100rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | padding-bottom: 100rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .empty { | 
|---|
|  |  |  | width: 750rpx; | 
|---|
|  |  |  | height: 20rpx; | 
|---|
|  |  |  | background-color: #f7f7f7; | 
|---|
|  |  |  | margin: 0 -30rpx; | 
|---|
|  |  |  | width: 750rpx; | 
|---|
|  |  |  | height: 20rpx; | 
|---|
|  |  |  | background-color: #f7f7f7; | 
|---|
|  |  |  | margin: 0 -30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .sub_btn{ | 
|---|
|  |  |  | width: 690rpx; | 
|---|
|  |  |  | height: 72rpx; | 
|---|
|  |  |  | line-height: 72rpx; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | background: #279BAA; | 
|---|
|  |  |  | box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE; | 
|---|
|  |  |  | border-radius: 36rpx; | 
|---|
|  |  |  | font-size: 30rpx; | 
|---|
|  |  |  | color: #FFFFFF; | 
|---|
|  |  |  | margin-top: 20rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .star{ | 
|---|
|  |  |  | margin-left: 4rpx; | 
|---|
|  |  |  | color: #e42d2d; | 
|---|
|  |  |  | .sub_btn { | 
|---|
|  |  |  | width: 690rpx; | 
|---|
|  |  |  | height: 72rpx; | 
|---|
|  |  |  | line-height: 72rpx; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | background: $uni-color-primary; | 
|---|
|  |  |  | box-shadow: 0rpx -1rpx 0rpx 0rpx #eeeeee; | 
|---|
|  |  |  | border-radius: 36rpx; | 
|---|
|  |  |  | font-size: 30rpx; | 
|---|
|  |  |  | color: #ffffff; | 
|---|
|  |  |  | margin-top: 20rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .star { | 
|---|
|  |  |  | margin-left: 4rpx; | 
|---|
|  |  |  | color: #e42d2d; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|