From e6acb39a2475e211f2c1decc45a95c868239c25f Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期五, 18 十月 2024 14:28:32 +0800
Subject: [PATCH] ll
---
h5/pages/staff/meetingSubOrder.vue | 218 +++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 157 insertions(+), 61 deletions(-)
diff --git a/h5/pages/staff/meetingSubOrder.vue b/h5/pages/staff/meetingSubOrder.vue
index 7180c9a..a99b6a1 100644
--- a/h5/pages/staff/meetingSubOrder.vue
+++ b/h5/pages/staff/meetingSubOrder.vue
@@ -3,9 +3,11 @@
<view class="module_list">
<view class="item">
<view class="name">浼氳鏃堕棿</view>
- <view class="line">
+ <view class="line" @click="handleBack">
<view class="label">
- {{ param.activeDate }} {{ param.startTime }}-{{ param.endTime }}
+ {{ param.activeDate || param.meetingDate }}
+ <text class="ml12" v-if="!param.id">{{ param.startTime }}-{{ param.endTime }}</text>
+ <text class="ml12" v-if="param.id">{{ param.meetingTime }}</text>
</view>
<u-icon name="arrow-right" color="#999999" size="14" />
</view>
@@ -13,7 +15,7 @@
<view class="item">
<view class="name">浼氳瀹�</view>
<view class="line">
- <view class="label">{{ param.roomName }}</view>
+ <view class="label">{{ param.roomName }}(鍙绾硔{ param.limitNum }}浜�)</view>
</view>
</view>
<view class="item">
@@ -56,16 +58,18 @@
</view>
<view class="empty"></view>
<view class="item">
- <view class="name">鍙備細浜哄憳</view>
+ <view class="name">
+ 鍙備細浜哄憳
+ <text class="star"></text>
+ </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>
+ {{ param.sysList.map((i) => i.realname).join(",") }}
+ </text>
<text
v-else
class="placeholder9"
- @click="$jump('/pages/staff/memberSel')"
>璇烽�夋嫨</text
>
</view>
@@ -73,20 +77,19 @@
name="arrow-right"
color="#999999"
size="14"
- @click="$jump('/pages/staff/memberSel')"
/>
</view>
</view>
- <view class="item">
+ <view class="item" v-if="info.projectList && info.projectList.length > 0">
<view class="name">閫夋嫨鏈嶅姟椤�</view>
<view class="line">
<view class="label">
<view
class="service_item"
- :class="{active: item.checked}"
+ :class="{ active: item.checked }"
v-for="(item, index) in info.projectList"
:key="index"
- @click="serviceClick(item)"
+ @click="serviceClick(item)"
>
{{ item.projectName }}
</view>
@@ -108,7 +111,8 @@
</view>
</view>
- <view class="sub_btn" @click="onSubmit"> 纭棰勭害 </view>
+ <view v-if="param.id" class="sub_btn" @click="onUpdate">纭淇敼</view>
+ <view v-else class="sub_btn" @click="onSubmit"> 纭棰勭害 </view>
</view>
</view>
</template>
@@ -116,7 +120,10 @@
<script>
import {
reservationMeeting,
- getRoomDetail
+ getRoomDetail,
+ meetingDetail,
+ updateById,
+ getAppRoomDetail
} from '@/api'
import dayjs from 'dayjs'
export default {
@@ -124,68 +131,155 @@
return {
param: {},
userInfo: uni.getStorageSync('userInfo'),
- info: {},
+ info: {},
}
},
onLoad(option) {
- this.param = { ...option }
- this.$set(this.param, 'activeDate', dayjs(option.yudingDate).format('YYYY骞碝鏈圖鏃�'))
- this.initOption()
+ if (option.id) {
+ uni.setNavigationBarTitle({
+ title: '浼氳璇︽儏'
+ })
+ this.getDetail(option.id)
+ }
},
- mounted() {
+ mounted() {
this.$eventBus.$on('meetingPeo', (res) => {
- this.$set(this.param, 'sysList', res)
+ this.$set(this.param, 'sysList', res.map(i => {
+ i.userId = i.id
+ return i
+ }))
// this.$set(this.param, 'memberIds', res.map(i => i.id).join(','))
// this.$set(this.param, 'memberNames', res.map(i => i.name).join(','))
})
+ this.$eventBus.$on('meetingSub', (res) => {
+ this.param = { ...res }
+ this.$set(this.param, 'activeDate', dayjs(res.yudingDate).format('YYYY骞碝鏈圖鏃�'))
+ const bookingTimeList = res.bookingTimeList.split(',').map(i => {
+ return {
+ timeId: Number(i)
+ }
+ })
+ this.$set(this.param, 'bookingTimeList', bookingTimeList)
+ this.initOption()
+ })
},
methods: {
- onSubmit() {
- const { param, info } = this
- if (!param.name) return uni.showToast({
+ getDetail(id) {
+ meetingDetail({ id }).then(res => {
+ this.param = { ...res.data,name: res.data.meetingName, content: res.data.meetingContent, sysList: res.data.userResponseList }
+ // this.param = { ...res.data }
+ if(this.param.sysList && this.param.sysList.length > 0){
+ this.param.sysList.forEach(i => {
+ i.userId = i.id
+ })
+ }
+ getRoomDetail({ roomId: res.data.roomId }).then(ress => {
+ this.info = ress.data
+ if (this.info && this.info.projectList) {
+ this.info.projectList.forEach(i => {
+ i.checked = false
+ if(res.data.projectsResponseList && res.data.projectsResponseList.length > 0){
+ res.data.projectsResponseList.forEach(item2 => {
+ if(i.projectId === item2.id){
+ i.checked = true
+ }
+ })
+ }
+ })
+ }
+ })
+ })
+ },
+ onUpdate() {
+ 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}`
+ reservationMeeting({
+ ...param,
+ projectList: info.projectList.filter(i => i.checked),
+ }).then(res => {
+ if (res.code === 200) {
+ setTimeout(() => {
+ uni.showToast({
+ title: '淇敼鎴愬姛',
+ icon: 'success',
+ duration: 2000
+ })
+ })
+ uni.redirectTo({
+ url: '/pages/staff/index'
+ })
+ }
})
},
- serviceClick(item) {
- const { info } = this
- info.projectList.forEach(ite => {
- if(ite.projectId === item.projectId){
- ite.checked = !ite.checked
- }
- })
- this.$forceUpdate()
- },
+ handleBack() {
+ if(this.param.id) return
+ uni.navigateBack( )
+ },
+ onSubmit() {
+ const { param, info } = this
+ if (!param.name) return uni.showToast({
+ title: '璇疯緭鍏ヤ細璁富棰�',
+ icon: 'none'
+ })
+ // if (!param.sysList || param.sysList.length == 0) 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) {
+ setTimeout(() => {
+ uni.showToast({
+ title: '棰勭害鎴愬姛',
+ icon: 'success',
+ duration: 2000
+ })
+ })
+ uni.redirectTo({
+ url: '/pages/staff/index'
+ })
+ }
+ })
+ },
+ selPeople() {
+ const { param } = this
+ let startTime = new Date(param.yudingDate + ' ' + param.startTime).getTime()
+ let endTime = new Date(param.yudingDate + ' ' + param.endTime).getTime()
+ if(this.param.sysList && this.param.sysList.length > 0){
+ setTimeout(() => {
+ this.$eventBus.$emit('meetingPeoDetail', this.param.sysList || [])
+ }, 500)
+ }
+ uni.navigateTo({
+ url: `/pages/staff/meetingSel?startTime=${startTime}&endTime=${endTime}&limitNum=${this.param.limitNum}`
+ })
+ },
+ 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)
+ 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
- })
- }
+ if (this.info && this.info.projectList) {
+ this.info.projectList.forEach(i => {
+ i.checked = false
+
+ })
+ }
})
}
}
@@ -206,6 +300,7 @@
.label {
flex: 1;
display: flex;
+ flex-wrap: wrap;
align-items: center;
.service_item {
height: 64rpx;
@@ -214,11 +309,12 @@
border-radius: 4rpx;
padding: 0 24rpx;
margin-right: 20rpx;
+ margin-bottom: 12rpx;
}
- .active{
- background-color: #4d99a8;
- color: #fff;
- }
+ .active {
+ background-color: #4d99a8;
+ color: #fff;
+ }
}
}
}
--
Gitblit v1.9.3