From 5a85dcab83e969d6b21c599b512a15117e9b8651 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期四, 04 七月 2024 08:54:30 +0800 Subject: [PATCH] '' --- admin/src/views/meeting/components/OperaBookingsWindow.vue | 145 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 109 insertions(+), 36 deletions(-) diff --git a/admin/src/views/meeting/components/OperaBookingsWindow.vue b/admin/src/views/meeting/components/OperaBookingsWindow.vue index b998662..c81231c 100644 --- a/admin/src/views/meeting/components/OperaBookingsWindow.vue +++ b/admin/src/views/meeting/components/OperaBookingsWindow.vue @@ -31,7 +31,11 @@ class="time-item" v-for="(item, index) in timelist" :key="item.id" - :class="form.times.indexOf(index)!=-1?'time-item-sel': item.isUse ? 'time-item-disable' : ''" + :class="{ + 'time-item-sel': form.times.indexOf(index)!=-1, + 'time-item-disable': item.isUse, + 'disable': item.bookingTimeId + }" @click="selectTimes(index, item)" >{{ `${item.startTime}-${item.endTime}` }}</div> </div> @@ -40,7 +44,7 @@ <el-input v-model="form.name" placeholder="璇疯緭鍏ヤ細璁富棰�" :maxlength="30" v-trim/> </el-form-item> - <el-form-item label="鍙備細浜哄憳" prop="sysList"> + <el-form-item label="鍙備細浜哄憳"> <!-- <el-input style="width:40%" disabled v-model="sysList" placeholder="閫夋嫨鍙備細浜哄憳" v-trim/> --> <el-select v-model="form.sysList" @@ -94,6 +98,32 @@ </el-form-item> <input type="file" @change="upFiles" ref="upFile" style="display: none;" /> </el-form> + + <el-dialog + title="浼氳瀹ら绾︽儏鍐�" + :visible.sync="isShowDetail" + append-to-body + width="600px" + > + <div class="detail_modal"> + <div class="h1">{{ activeInfo.meetingName }}</div> + <div class="line"> + <div class="label">浼氳鏃堕棿</div> + <div class="value" v-if="activeInfo.meetingDate"> + {{ activeInfo.meetingDate.slice(5) }} {{ activeInfo.meetingTime }} + </div> + </div> + <div class="line"> + <div class="label">浼氳瀹�</div> + <div class="value">{{ activeInfo.roomName }}</div> + </div> + <div class="line"> + <div class="label">棰勭害浜�</div> + <div class="value">{{ activeInfo.bookingUserName }}</div> + </div> + <el-button @click="isShowDetail = false">鍏抽棴</el-button> + </div> + </el-dialog> </GlobalAlertWindow> </template> @@ -101,9 +131,10 @@ import BaseOpera from '@/components/base/BaseOpera' import GlobalAlertWindow from '@/components/common/GlobalAlertWindow' import FileLink from '@/views/meeting/components/common/FileLink' -import { upload as upload } from '@/api/system/common' +import { upload } from '@/api/system/common' import { fetchList as userList } from '@/api/system/user' import { findListByObjId } from '@/api/meeting/projects' +import { BookDetailById } from '@/api/meeting/bookings' import { findList } from '@/api/meeting/roomTime' import { numRule, arrayRule } from '@/utils/form' export default { @@ -126,8 +157,10 @@ times: [], content: '', sysList: [], - fileList: [], + fileList: [] }, + activeInfo: {}, + isShowDetail: false, isEdit: false, // room: [], sysList: [], @@ -136,20 +169,20 @@ // 楠岃瘉瑙勫垯 rules: { roomId: [ - { required: true, validator: numRule, message: '璇烽�夋嫨鍏宠仈浼氳瀹�', tigger: 'change' } + { required: true, validator: numRule, message: '璇烽�夋嫨鍏宠仈浼氳瀹�', tigger: 'change' } ], date: [ - { required: true, message: '璇烽�夋嫨棰勫畾鏃ユ湡', tigger: 'change' } + { required: true, message: '璇烽�夋嫨棰勫畾鏃ユ湡', tigger: 'change' } ], times: [ - { required: true, validator: arrayRule, message: '璇烽�夋嫨棰勭害鏃堕棿', tigger: 'change' } + { required: true, validator: arrayRule, message: '璇烽�夋嫨棰勭害鏃堕棿', tigger: 'change' } ], sysList: [ - { required: true, validator: arrayRule, message: '璇烽�夋嫨鍙備細浜哄憳', tigger: 'change' } + { required: true, validator: arrayRule, message: '璇烽�夋嫨鍙備細浜哄憳', tigger: 'change' } ], name: [ - { required: true, message: '璇烽�夋嫨杈撳叆浼氳涓婚', tigger: 'blur' } - ], + { required: true, message: '璇烽�夋嫨杈撳叆浼氳涓婚', tigger: 'blur' } + ] // content: [ // { required: true, message: '璇疯緭鍏ヤ細璁唴瀹�', tigger: 'blur' } // ], @@ -165,10 +198,10 @@ userList({ page: 1, capacity: 9999, - model: { realname: this.filterText }, + model: { realname: this.filterText } }) .then(res => { - console.log('userList', res); + console.log('userList', res) this.sysList = res.records }) }, @@ -178,7 +211,7 @@ * @title 绐楀彛鏍囬 * @target 缂栬緫鐨勫璞� */ - open (title, target) { + open (title, target) { this.title = title this.visible = true this.timelist = [] @@ -187,8 +220,6 @@ if (target == null) { this.$nextTick(() => { this.$refs.form.resetFields() - console.log(this.form.content); - debugger this.form[this.configData['field.id']] = null }) return @@ -208,7 +239,7 @@ this.selectRoom(this.form.roomId) }) }, - selectRoom(objId) { + selectRoom (objId) { this.getTimes() findListByObjId({ objId: objId, @@ -218,11 +249,11 @@ this.projectList = res }) }, - selectDate(v) { + selectDate (v) { // console.log(v); this.getTimes() }, - getTimes(isInit=false) { + getTimes (isInit = false) { this.form.times = [] this.timelist = [] @@ -259,33 +290,45 @@ }) } }, - selectTimes(index, item) { + getDetail (id) { + BookDetailById({ + id + }).then(res => { + this.activeInfo = res + this.isShowDetail = true + }) + }, + selectTimes (index, item) { + if (item.bookingTimeId) { + this.getDetail(item.bookingTimeId) + return + } if (this.isEdit) { return } - let tempIndex = this.form.times.indexOf(index) + const tempIndex = this.form.times.indexOf(index) if (tempIndex != -1) { - if (tempIndex==0) { + if (tempIndex == 0) { // console.log(this.form.times); // debugger this.form.times.splice(0, 1) - } else if (tempIndex==this.form.times.length-1) { + } else if (tempIndex == this.form.times.length - 1) { this.form.times.splice(tempIndex, 1) } } else { if (item.isUse) { return } - if (this.form.times.length && index+1 !== this.form.times[0] && index-1 !== this.form.times[this.form.times.length-1]) { + if (this.form.times.length && index + 1 !== this.form.times[0] && index - 1 !== this.form.times[this.form.times.length - 1]) { this.$message.error('棰勭害鏃堕棿蹇呴』鏄浉閭荤殑锛�') return } this.form.times.push(index) - this.form.times.sort((x,y)=> x - y) + this.form.times.sort((x, y) => x - y) } // console.log(this.form.times); }, - upFiles(file) { + upFiles (file) { const formdate = new FormData() this.isUploading = true formdate.append('file', file.target.files[0]) @@ -318,21 +361,21 @@ this.isWorking = true let sysList = [...this.form.sysList] sysList = sysList.map(item => { - return {userId: item} + return { userId: item } }) let projectList = [...this.form.projectList] projectList = projectList.map(item => { - return {projectId: item} + return { projectId: item } }) - let bookingTimeList = [] + const bookingTimeList = [] this.form.times.forEach(item => { bookingTimeList.push({ timeId: this.timelist[item].id, id: this.timelist[item].bookingTimeId }) }) - let startTime = this.form.date + ' ' + this.timelist[this.form.times[0]].startTime + ':00' - let endTime = this.form.date + ' ' + this.timelist[this.form.times[this.form.times.length-1]].endTime + ':00' + const startTime = this.form.date + ' ' + this.timelist[this.form.times[0]].startTime + ':00' + const endTime = this.form.date + ' ' + this.timelist[this.form.times[this.form.times.length - 1]].endTime + ':00' this.api.create({ ...this.form, sysList, @@ -364,21 +407,21 @@ this.isWorking = true let sysList = [...this.form.sysList] sysList = sysList.map(item => { - return {userId: item} + return { userId: item } }) let projectList = [...this.form.projectList] projectList = projectList.map(item => { - return {projectId: item} + return { projectId: item } }) - let bookingTimeList = [] + const bookingTimeList = [] this.form.times.forEach(item => { bookingTimeList.push({ timeId: this.timelist[item].id, id: this.timelist[item].bookingTimeId }) }) - let startTime = this.form.date + ' ' + this.timelist[this.form.times[0]].startTime + ':00' - let endTime = this.form.date + ' ' + this.timelist[this.form.times[this.form.times.length-1]].endTime + ':00' + const startTime = this.form.date + ' ' + this.timelist[this.form.times[0]].startTime + ':00' + const endTime = this.form.date + ' ' + this.timelist[this.form.times[this.form.times.length - 1]].endTime + ':00' this.api.updateById({ ...this.form, sysList, @@ -400,7 +443,7 @@ }) }) } - }, + } } </script> @@ -433,10 +476,40 @@ color: #fff; } .time-item-disable { + color: #e4e4e4; + border-color: #999; + background-color: #999; + } + .disable{ border-color: #999; background-color: #999; color: #111; } } +.detail_modal { + padding: 20px 16px; + .title { + text-align: center; + font-weight: 600; + font-size: 16px; + margin-bottom: 20px; + } + .h1 { + font-weight: 600; + font-size: 16px; + margin-bottom: 15px; + } + .line { + display: flex; + margin-bottom: 10px; + .label { + width: 70px; + color: #888888; + } + .value { + color: #333333; + } + } +} </style> -- Gitblit v1.9.3