| | |
| | | <!-- --> |
| | | <view class="empty"></view> |
| | | <view class="module_list"> |
| | | <view class="item"> |
| | | <view class="item" v-if="detail.meetingContent"> |
| | | <view class="label">会议内容</view> |
| | | <view class="value"> |
| | | <!-- <text>主要讨论智能会议室系统选型,请大家一定要按时来开会,时间宝贵。感谢大家!</text> --> |
| | |
| | | /> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="item" v-if="detail.userResponseList && detail.userResponseList.length > 0"> |
| | | <view class="label">参会人员</view> |
| | | <view class="value"> |
| | | <view class="personnel"> |
| | |
| | | v-for="mem in detail.userResponseList" |
| | | :key="mem.id" |
| | | > |
| | | <image :src="mem.avatar ? mem.avatar : require('@/static/meeting/common/default_user@2x.png')" class="avatar" mode=""></image> |
| | | <image |
| | | v-if="mem.avatar" |
| | | :src="mem.avatar" |
| | | class="avatar" |
| | | mode="" |
| | | ></image> |
| | | <view v-else class="avatar">{{ mem.realname.slice(0, 1) }}</view> |
| | | <view class="name">{{ mem.realname }}</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="item" v-if="detail.projectsResponseList && detail.projectsResponseList.length > 0"> |
| | | <view class="label">服务项</view> |
| | | <view class="value"> |
| | | <template v-for="(ser, serI) in detail.projectsResponseList"> |
| | |
| | | </template> |
| | | </view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="item" v-if="detail.remark || detail.meetingRemark"> |
| | | <view class="label">备注</view> |
| | | <view class="value">{{ detail.remark || detail.meetingRemark }}</view> |
| | | </view> |
| | | <view class="item"> |
| | | <view class="label">预约人</view> |
| | | <view class="value" |
| | | <view class="value" v-if="detail.bookingUser" |
| | | >{{ detail.bookingUser.companyName || "" }} |
| | | {{ detail.bookingUser.realname }} |
| | | {{ detail.bookingUser.mobile }}</view |
| | |
| | | </view> |
| | | <view class="empty empty2"></view> |
| | | <view class="main_footer" v-if="detail.meetingStatus == '1'"> |
| | | <view class="btn" @click="handleCancel(detail.id)">撤回</view> |
| | | <view class="btn" @click="openCancel">撤回</view> |
| | | <view class="btn agree" @click="handleEdit">修改</view> |
| | | </view> |
| | | <view class="main_footer" v-if="detail.meetingStatus == '2'"> |
| | | <view class="btn agree" @click="handleSub('2')">结束</view> |
| | | <view class="btn agree" @click="openClose">结束</view> |
| | | </view> |
| | | <!-- 撤回 --> |
| | | <u-popup |
| | | catchtouchmove |
| | | :show="isShowCancel" |
| | | closeable |
| | | :round="12" |
| | | mode="bottom" |
| | | @close="isShowCancel = false" |
| | | > |
| | | <view class="cancel_modal"> |
| | | <view class="title">撤销预约</view> |
| | | <view class="line"> |
| | | <view class="label">撤回说明</view> |
| | | <textarea |
| | | class="textarea" |
| | | placeholder="请输入" |
| | | maxlength="300" |
| | | v-model="cancelParam.businessRemark" |
| | | /> |
| | | </view> |
| | | <view class="sub_btn" @click="handleCancel('0')">提交</view> |
| | | </view> |
| | | </u-popup> |
| | | <!-- 结束 --> |
| | | <u-popup |
| | | catchtouchmove |
| | | closeable |
| | | :show="isShowClose" |
| | | :round="12" |
| | | mode="bottom" |
| | | @close="isShowClose = false" |
| | | > |
| | | <view class="cancel_modal"> |
| | | <view class="title">结束预约</view> |
| | | <view class="line"> |
| | | <view class="label">结束说明</view> |
| | | <textarea |
| | | class="textarea" |
| | | placeholder="请输入" |
| | | maxlength="300" |
| | | v-model="cancelParam.businessRemark" |
| | | /> |
| | | </view> |
| | | <view class="sub_btn" @click="handleCancel('1')">提交</view> |
| | | </view> |
| | | </u-popup> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { meetingDetail, cancelById } from '@/api' |
| | | import { meetingDetail, cancelById, closeMeetignById } from '@/api' |
| | | export default { |
| | | data() { |
| | | return { |
| | | param: {}, |
| | | detail: {}, |
| | | |
| | | cancelParam: {}, |
| | | isShowCancel: false, |
| | | isShowClose: false, |
| | | id: '' |
| | | } |
| | | }, |
| | |
| | | this.detail = res.data |
| | | }) |
| | | }, |
| | | handleCancel(id) { |
| | | uni.showModal({ |
| | | title: '提示', |
| | | // confirmText: '确认', |
| | | content: '确认撤回该会议吗', |
| | | success: function (res) { |
| | | if (res.confirm) { |
| | | cancelById({ id }).then(res => { |
| | | if (res.code === 200) { |
| | | setTimeout(() => { |
| | | uni.showToast({ |
| | | title: '撤回成功', |
| | | icon: 'success' |
| | | }) |
| | | }) |
| | | setTimeout(() => { |
| | | uni.navigateBack() |
| | | }) |
| | | } |
| | | openCancel() { |
| | | this.isShowCancel = true |
| | | this.cancelParam = {} |
| | | }, |
| | | openClose() { |
| | | this.isShowClose = true |
| | | this.cancelParam = {} |
| | | }, |
| | | handleCancel(str) { |
| | | const { id } = this.detail |
| | | let fn = str == '0' ? cancelById : closeMeetignById |
| | | fn({ id, ...this.cancelParam }).then(res => { |
| | | if (res.code === 200) { |
| | | setTimeout(() => { |
| | | uni.showToast({ |
| | | title: '提交成功', |
| | | icon: 'success' |
| | | }) |
| | | } |
| | | }) |
| | | setTimeout(() => { |
| | | uni.navigateBack() |
| | | }) |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | handleEdit() { |
| | | const { id } = this |
| | |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | justify-content: center; |
| | | margin-right: 24rpx; |
| | | .avatar { |
| | | width: 72rpx; |
| | | height: 72rpx; |
| | | margin: 0; |
| | | border-radius: 50%; |
| | | } |
| | | .name { |
| | |
| | | .empty2 { |
| | | height: 280rpx !important; |
| | | } |
| | | .cancel_modal { |
| | | height: 440rpx; |
| | | padding: 30rpx; |
| | | .title { |
| | | padding: 0 30rpx 50rpx; |
| | | text-align: center; |
| | | } |
| | | .line { |
| | | .label { |
| | | margin-bottom: 10rpx; |
| | | } |
| | | textarea { |
| | | height: 120rpx; |
| | | } |
| | | } |
| | | .sub_btn { |
| | | background-color: $uni-color-primary; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | color: #fff; |
| | | border-radius: 44rpx; |
| | | width: 690rpx; |
| | | height: 88rpx; |
| | | margin: 20rpx auto; |
| | | } |
| | | } |
| | | </style> |