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