|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <GlobalAlertWindow v-loading="isUploading" :title="title" :visible.sync="visible" :confirm-working="isWorking" | 
|---|
|  |  |  | @confirm="confirm"> | 
|---|
|  |  |  | <p class="tip-warn" v-if="form.id"><i class="el-icon-warning"></i>操作说明:<br> | 
|---|
|  |  |  | <span style="color: #e75314">如果当前会议室存在未结束的会议,不允许更新开放时间和粒度分钟,提交后开放时间和粒度分钟修改不生效!</span> | 
|---|
|  |  |  | </p> | 
|---|
|  |  |  | <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix=":"> | 
|---|
|  |  |  | <el-form-item label="会议室名称" prop="name"> | 
|---|
|  |  |  | <el-input v-model="form.name" placeholder="请输入会议室名称" :maxlength="10" v-trim /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="开放时间" prop="timeRange"> | 
|---|
|  |  |  | <el-time-picker is-range value-format="HH:mm" format="HH:mm" v-model="timeRange" range-separator="至" | 
|---|
|  |  |  | <el-time-picker is-range value-format="HH:mm" :disabled=" form.bookingNum && form.bookingNum>0" format="HH:mm" v-model="timeRange" range-separator="至" | 
|---|
|  |  |  | start-placeholder="开始时间" end-placeholder="结束时间" placeholder="选择时间范围" @change="selectRange"></el-time-picker> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="粒度分钟" prop="intervalTime"> | 
|---|
|  |  |  | <el-input v-model="form.intervalTime" type="number" placeholder="请输入时间粒度(分钟)" v-trim /> | 
|---|
|  |  |  | <el-input v-model="form.intervalTime" type="number"  :disabled="form.bookingNum && form.bookingNum>0" placeholder="请输入时间粒度(分钟)" v-trim /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="容纳人数" prop="limitNum"> | 
|---|
|  |  |  | <el-input v-model="form.limitNum" type="number" placeholder="请输入容纳人数" v-trim /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="管理员" prop="sysList"> | 
|---|
|  |  |  | <el-select v-model="form.sysList" filterable multiple clearable placeholder="请选择部门"> | 
|---|
|  |  |  | <el-select style="width: 100%" v-model="form.sysList" filterable multiple clearable placeholder="请选择部门"> | 
|---|
|  |  |  | <!-- :label="`${item.department.name}-${item.realname}`" --> | 
|---|
|  |  |  | <el-option v-for="item in userList()" :key="item.id" :value="item.id" | 
|---|
|  |  |  | :label="item.companyId ? `${item.companyName}-${item.companyName}` : item.realname" /> | 
|---|
|  |  |  | :label="item.companyId ? `${item.realname}-${item.companyName}` : item.realname" /> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="提供服务项目" prop="projectList"> | 
|---|
|  |  |  | 
|---|
|  |  |  | <el-form-item v-if="form.fileType == 0" label="展示图片" prop="imgurl"> | 
|---|
|  |  |  | <div class="upload_wrap"> | 
|---|
|  |  |  | <el-upload class="avatar-uploader" accept=".png,.jpg,.jpeg" :action="uploadImgUrl" :data="uploadData" | 
|---|
|  |  |  | :show-file-list="false" :on-success="handleImgSuccess"> | 
|---|
|  |  |  | :show-file-list="false" :before-upload="beforeAvatarUpload" :on-error="uploadError" | 
|---|
|  |  |  | :on-success="handleImgSuccess"> | 
|---|
|  |  |  | <div> | 
|---|
|  |  |  | <i class="el-icon-plus avatar-uploader-icon"></i> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item v-if="form.fileType == 1" label="展示视频" prop="imgurl"> | 
|---|
|  |  |  | <UploadAvatarVideo :file="{ 'videourlfull': form.videoFullUrl, 'videourl': form.videourl }" :uploadData="uploadData" | 
|---|
|  |  |  | @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" @uploadBegin="isUploading = true" /> | 
|---|
|  |  |  | <UploadAvatarVideo :file="{ 'videourlfull': form.videoFullUrl, 'videourl': form.videourl }" | 
|---|
|  |  |  | :uploadData="uploadData" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false" | 
|---|
|  |  |  | @uploadBegin="isUploading = true" /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="使用须知" prop="tips"> | 
|---|
|  |  |  | <el-input v-model="form.tips" type="textarea" placeholder="请输入使用须知" v-trim /> | 
|---|
|  |  |  | 
|---|
|  |  |  | import UploadAvatarVideo from '@/components/common/UploadAvatarVideo' | 
|---|
|  |  |  | import { numRule } from '@/utils/form' | 
|---|
|  |  |  | import { fetchList } from '@/api/meeting/projects' | 
|---|
|  |  |  | import { Loading } from 'element-ui' | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | name: 'OperaRoomsWindow', | 
|---|
|  |  |  | extends: BaseOpera, | 
|---|
|  |  |  | 
|---|
|  |  |  | folder: 'projects' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | timeRange: ['', ''], | 
|---|
|  |  |  | loading: null, | 
|---|
|  |  |  | // 表单数据 | 
|---|
|  |  |  | form: { | 
|---|
|  |  |  | id: null, | 
|---|
|  |  |  | 
|---|
|  |  |  | imgFullUrl: '', | 
|---|
|  |  |  | tips: '', | 
|---|
|  |  |  | status: 0, | 
|---|
|  |  |  | intervalTime: 0 | 
|---|
|  |  |  | intervalTime: 0, | 
|---|
|  |  |  | bookingNum: 0, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | user: [], | 
|---|
|  |  |  | projectList: [], | 
|---|
|  |  |  | 
|---|
|  |  |  | for (const key in this.form) { | 
|---|
|  |  |  | this.form[key] = target[key] | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(target.fileType == 1 && target.multifileList && target.multifileList.length > 0){ | 
|---|
|  |  |  | if (target.fileType == 1 && target.multifileList && target.multifileList.length > 0) { | 
|---|
|  |  |  | this.$set(this.form, 'videoFullUrl', target.multifileList[0].fileurlFull) | 
|---|
|  |  |  | this.$set(this.form, 'videourl', target.multifileList[0].fileurl) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | this.form.multifileList.splice(i, 1) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | handleImgSuccess(res) { | 
|---|
|  |  |  | this.$nextTick(() => { | 
|---|
|  |  |  | this.loading.close() | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | const list = [...this.form.multifileList] | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (res.code == 200) { | 
|---|
|  |  |  | let { data } = res | 
|---|
|  |  |  | list.push({ | 
|---|
|  |  |  | 
|---|
|  |  |  | this.$set(this.form, 'multifileList', list) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadError() { | 
|---|
|  |  |  | // this.$message.error('上传失败') | 
|---|
|  |  |  | this.$nextTick(() => { | 
|---|
|  |  |  | this.loading.close() | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // // 拦截 | 
|---|
|  |  |  | beforeAvatarUpload(file) { | 
|---|
|  |  |  | this.loading = Loading.service({ | 
|---|
|  |  |  | lock: true, | 
|---|
|  |  |  | text: 'Loading', | 
|---|
|  |  |  | spinner: 'el-icon-loading', | 
|---|
|  |  |  | background: 'rgba(0, 0, 0, 0.7)' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | return true | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | selectRange(v) { | 
|---|
|  |  |  | // console.log(this.timeRange); | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadAvatarSuccess(file) { | 
|---|
|  |  |  | console.log('file', file) | 
|---|
|  |  |  | this.form.multifileList.push({ | 
|---|
|  |  |  | let temp = [] | 
|---|
|  |  |  | temp.push({ | 
|---|
|  |  |  | fileurl: file.imgurl, | 
|---|
|  |  |  | fileurlFull: file.imgurlfull, | 
|---|
|  |  |  | type: 1 | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | this.form.multifileList = temp | 
|---|
|  |  |  | this.$set(this.form, 'videourl', file.imgurl) | 
|---|
|  |  |  | this.$set(this.form, 'videoFullUrl', file.imgurlfull) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 
|---|
|  |  |  | max-height: 90px; | 
|---|
|  |  |  | display: block; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|
|  |  |  | </style> | 
|---|