From 17efddc6a667670dca682bf36b51a43e99615e6d Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 16 十月 2024 15:59:38 +0800
Subject: [PATCH] 代码初始化
---
h5/pages/staff/meetingSubOrder.vue | 405 +++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 333 insertions(+), 72 deletions(-)
diff --git a/h5/pages/staff/meetingSubOrder.vue b/h5/pages/staff/meetingSubOrder.vue
index 3a25438..1d82d33 100644
--- a/h5/pages/staff/meetingSubOrder.vue
+++ b/h5/pages/staff/meetingSubOrder.vue
@@ -1,84 +1,345 @@
<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">
- <textarea v-model="param.aaa" :maxlength="300" placeholder="璇疯緭鍏ヤ細璁唴瀹�" placeholder-class="placeholder9" class="label" />
- </view>
- </view>
-
- </view>
- </view>
+ <view class="main_app">
+ <view class="module_list">
+ <view class="item">
+ <view class="name">浼氳鏃堕棿</view>
+ <view class="line" @click="handleBack">
+ <view class="label">
+ {{ 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>
+ </view>
+ <view class="item">
+ <view class="name">浼氳瀹�</view>
+ <view class="line">
+ <view class="label">{{ param.roomName }}(鍙绾硔{ param.limitNum }}浜�)</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">
+ 鍙備細浜哄憳
+ <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>
+ <text
+ v-else
+ class="placeholder9"
+ >璇烽�夋嫨</text
+ >
+ </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">
+ <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 v-if="param.id" class="sub_btn" @click="onUpdate">纭淇敼</view>
+ <view v-else class="sub_btn" @click="onSubmit"> 纭棰勭害 </view>
+ </view>
+ </view>
</template>
<script>
- export default {
- data() {
- return {
- param: {}
- };
- }
- }
+import {
+ reservationMeeting,
+ getRoomDetail,
+ meetingDetail,
+ updateById,
+ getAppRoomDetail
+} from '@/api'
+import dayjs from 'dayjs'
+export default {
+ data() {
+ return {
+ param: {},
+ userInfo: uni.getStorageSync('userInfo'),
+ info: {},
+ }
+ },
+ onLoad(option) {
+ if (option.id) {
+ uni.setNavigationBarTitle({
+ title: '浼氳璇︽儏'
+ })
+ this.getDetail(option.id)
+ }
+ },
+ mounted() {
+ this.$eventBus.$on('meetingPeo', (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: {
+ 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,
+ 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'
+ })
+ }
+ })
+ },
+ 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)
+ getRoomDetail({ roomId }).then(res => {
+ 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;
- }
-
- }
- }
+.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;
+ flex-wrap: wrap;
+ align-items: center;
+ .service_item {
+ height: 64rpx;
+ line-height: 64rpx;
+ background: #f7f7f7;
+ border-radius: 4rpx;
+ padding: 0 24rpx;
+ margin-right: 20rpx;
+ margin-bottom: 12rpx;
+ }
+ .active {
+ background-color: #4d99a8;
+ color: #fff;
+ }
+ }
+ }
+ }
+ padding-bottom: 100rpx;
}
.empty {
- width: 750rpx;
- height: 20rpx;
- background-color: #f7f7f7;
- margin: 0 -30rpx;
+ width: 750rpx;
+ height: 20rpx;
+ background-color: #f7f7f7;
+ margin: 0 -30rpx;
}
-.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>
--
Gitblit v1.9.3