From b71b4fa3c592e667e114ba1bcf42a2204d6cbf6d Mon Sep 17 00:00:00 2001 From: feige <791364011@qq.com> Date: 星期二, 18 三月 2025 15:56:27 +0800 Subject: [PATCH] 修改了对应代码 --- ruoyi-ui/src/views/meeting/webcast.vue | 466 +++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 299 insertions(+), 167 deletions(-) diff --git a/ruoyi-ui/src/views/meeting/webcast.vue b/ruoyi-ui/src/views/meeting/webcast.vue index abd3eb6..16ecd89 100644 --- a/ruoyi-ui/src/views/meeting/webcast.vue +++ b/ruoyi-ui/src/views/meeting/webcast.vue @@ -10,216 +10,264 @@ <span>鐩存挱</span> <div class="button-container"></div> <div style="display: flex; align-items: center;"> - <el-button size="mini" type="text" v-hasPermi="['person:information:memo']" style="margin-left: 200px"> - <div class="form" @click="newRequest"><el-icon style="padding-right:100px;"></el-icon> - <span class="text" style="width: 69px;height: 26px;font-size: 16px; - font-family: Microsoft YaHei-Regular, Microsoft YaHei; color: #EBA4AA;">鐩存挱鐢宠</span> - </div> - </el-button> </div> </h1> - <hr> <!-- 鎼滅储 --> - <el-form :model="queryParams1"> - <el-row> - <el-form-item label="" prop="people"> - <el-input v-model="queryParams1.people" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" clearable style="width: 300px; + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> + + <el-form-item label="鐩存挱鏍囬" prop="title"> + <el-input v-model="queryParams.title" placeholder="璇疯緭鍏ョ洿鎾爣棰�" clearable style="width: 200px; height: 35px; - text-align: left; border-radius: 16px 16px 16px 16px; - opacity: 0.5;" @keyup.enter.native="handleQuery"> - <i slot="prefix" class="el-input__icon el-icon-search"></i> - </el-input> - </el-form-item> - </el-row> + opacity: 0.5;" @keyup.enter.native="handleQuery" /> + </el-form-item> + + <el-form-item> + <el-button size="mini" @click="handleQuery" style=" width: 65px; height: 32px;background: #FFDDE3; + border-radius: 6px 6px 6px 6px;opacity:1;">鎼滅储</el-button> + <el-button size="mini" @click="resetQuery" style=" width: 65px;height: 32px; background: #FFDDE3; + border-radius: 6px 6px 6px 6px; + opacity: 1;">閲嶇疆</el-button> + </el-form-item> </el-form> - <el-row :gutter="0"> - <el-col :span="4"> - <div class="module"> - <div class="video"> - 66666666 - </div> - <span class="span1">涓瀹跺涵浼氳</span> - <div class="tubiao"><i class="el-icon-view">10000</i></div> - <p class="author">鍙戣捣鑰�</p> - </div> + <el-row :gutter="10" class="mb8"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="newRequest" + v-hasPermi="['person:information:memo']" + >鏂板</el-button> </el-col> - <el-col :span="4"> - <div class="module"> - <div class="video"> - 66666666 - </div> - <span class="span1">涓瀹跺涵浼氳</span> - <div class="tubiao"><i class="el-icon-view">10000</i></div> - <p class="author">鍙戣捣鑰�</p> - </div> - </el-col> - <el-col :span="4"> - <div class="module"> - <div class="video"> - 66666666 - </div> - <span class="span1">涓瀹跺涵浼氳</span> - <div class="tubiao"><i class="el-icon-view">10000</i></div> - <p class="author">鍙戣捣鑰�</p> - </div> - </el-col> - <el-col :span="4"> - <div class="module"> - <div class="video"> - 66666666 - </div> - <span class="span1">涓瀹跺涵浼氳</span> - <div class="tubiao"><i class="el-icon-view">10000</i></div> - <p class="author">鍙戣捣鑰�</p> - </div> - </el-col> - <el-col :span="4"> - <div class="module"> - <div class="video"> - </div> - <span class="span1">涓瀹跺涵浼氳</span> - <div class="tubiao"><i class="el-icon-view">10000</i></div> - <p class="author">鍙戣捣鑰�</p> - </div> - </el-col> - <el-col :span="4"> - <div class="module"> - <div class="video"> - 66666666 - </div> - <span class="span1">涓瀹跺涵浼氳</span> - <div class="tubiao"><i class="el-icon-view">10000</i></div> - <p class="author">鍙戣捣鑰�</p> - </div> - </el-col> - <el-col :span="4"> - <div class="module"> - <div class="video"> - 66666666 - </div> - <span class="span1">涓瀹跺涵浼氳</span> - <div class="tubiao"><i class="el-icon-view">10000</i></div> - <p class="author">鍙戣捣鑰�</p> - </div> - </el-col> - <el-col :span="4"> - <div class="module"> - <div class="video"> - 66666666 - </div> - <span class="span1">涓瀹跺涵浼氳</span> - <div class="tubiao"><i class="el-icon-view">10000</i></div> - <p class="author">鍙戣捣鑰�</p> - </div> - </el-col> - <el-col :span="4"> - <div class="module"> - <div class="video"> - 66666666 - </div> - <span class="span1">涓瀹跺涵浼氳</span> - <div class="tubiao"><i class="el-icon-view">10000</i></div> - <p class="author">鍙戣捣鑰�</p> - </div> - </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> </el-row> + + <el-row :gutter="0" v-loading="loading"> + <el-col :span="4" v-for="(item,i) in webcastList"> + <div class="module" @click="toLook(item.id)"> + <div class="video"> + 66666666 + </div> + <span class="span1">{{ item.title }}</span> + <div class="tubiao"><i class="el-icon-view">10000</i></div> + <p class="author">{{ item.applyPerson }}</p> + <img :src="item.avatar" + style="margin-left: 15px;margin-top: 190px; background-color: pink; width: 50px; height: 50px;"/> + + </div> + </el-col> + + + </el-row> + + <pagination + v-show="total>0" + :total="total" + :page-sizes="pageSizes" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + style="background: #FEF7FC;" + /> <!-- 鐩存挱鐢宠瀵硅瘽妗� --> <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> <el-form ref="elForm" :model="formDat" :rules="rules" size="medium" label-width="100px"> - <!-- <el-form-item label="鑾峰緱鏃堕棿" prop="happenTime">--> - <!-- <el-input v-model="formDat.happenTime" placeholder="璇疯緭鍏ヨ幏寰楁椂闂�" clearable :style="{width: '100%'}" ></el-input>--> - <!-- </el-form-item>--> - <!-- <el-form-item label="寮�濮嬫椂闂�" prop="happenTime"> - </el-form-item> --> - <el-form-item label="鏃堕棿" prop="timeSpan"> - <el-date-picker v-model="formDat.timeSpan" type="datetimerange" range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" - end-placeholder="缁撴潫鏃ユ湡" value-format="yyyy-MM-dd HH:mm:ss"> + + <el-form-item label="寮�濮嬫椂闂�" prop="startTime"> + <el-date-picker v-model="formDat.startTime" type="datetime" placeholder="閫夋嫨寮�濮嬫椂闂�" + value-format="yyyy-MM-dd HH:mm:ss"> </el-date-picker> </el-form-item> - <el-form-item label="浼氳鏍囬" prop="meetingTitle"> - <el-input v-model="formDat.meetingTitle" placeholder="璇疯緭鍏ヤ細璁爣棰�" clearable :style="{width: '100%'}"> + + <el-form-item label="鏃堕暱(鍒嗛挓)" prop="duration"> + <el-input v-model="formDat.duration" type="number" placeholder="璇疯緭鍏ヤ細璁椂闀�(鍒嗛挓)" clearable :style="{width: '100%'}"> </el-input> - </el-form-item> - <el-form-item label="浼氳鍦扮偣" prop="address"> - <el-input v-model="formDat.address" placeholder="璇疯緭鍏ヤ細璁湴鐐�" clearable :style="{width: '100%'}"> - </el-input> - </el-form-item> - <el-form-item label="浼氳瀹や唬鐮�" prop="meetingID"> - <el-input v-model="formDat.meetingID" placeholder="璇疯緭鍏ヤ細璁浠g爜" clearable :style="{width: '100%'}"> - </el-input> - </el-form-item> - <el-form-item label="鍙绾充汉鏁�" prop="capacity"> - <el-input v-model="formDat.capacity" placeholder="璇疯緭鍏ュ彲瀹圭撼浜烘暟" clearable :style="{width: '100%'}"> - </el-input> - </el-form-item> - <el-form-item label="鍙備笌浜烘暟" prop="attendance"> - <el-input v-model="formDat.attendance" placeholder="璇疯緭鍏ュ弬涓庝汉鏁�" clearable :style="{width: '100%'}"> - </el-input> - </el-form-item> - <el-form-item label="鐢宠浜�" prop="applicant"> - <el-input v-model="formDat.applicant" placeholder="璇疯緭鍏ョ敵璇蜂汉" clearable :style="{width: '100%'}"> - </el-input> - </el-form-item> - <el-form-item label="鐢宠瀹跺涵鎴栭儴闂�" prop="familyName"> - <el-input v-model="formDat.familyName" placeholder="璇疯緭鍏ョ敵璇峰搴垨閮ㄩ棬" clearable :style="{width: '100%'}"> - </el-input> - </el-form-item> - <el-form-item label="鑱旂郴浜�" prop="name"> - <el-input v-model="formDat.name" placeholder="璇疯緭鍏ヨ仈绯讳汉" clearable :style="{width: '100%'}"> - </el-input> - </el-form-item> - <el-form-item label="鑱旂郴鐢佃瘽" prop="phone"> - <el-input v-model="formDat.phone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" clearable :style="{width: '100%'}"></el-input> </el-form-item> + <el-form-item label="鎴块棿鍙�" prop="roomId"> + <el-input v-model="formDat.roomId" type="number" :min="1" placeholder="璇疯緭鍏ユ埧闂村彿" clearable :style="{width: '100%'}"> + </el-input> + </el-form-item> + + <el-form-item label="鏈�澶氫汉鏁�" prop="maxPerson"> + <el-input v-model="formDat.maxPerson" type="number" placeholder="璇疯緭鍏ユ渶澶氫汉鏁�" clearable :style="{width: '100%'}"> + </el-input> + </el-form-item> + + <el-form-item label="浼氳鏍囬" prop="title"> + <el-input v-model="formDat.title" placeholder="璇疯緭鍏ヤ細璁爣棰�" clearable :style="{width: '100%'}"> + </el-input> + </el-form-item> + + <el-form-item label="鐢宠浜�" prop="applyPerson"> + <el-input v-model="formDat.applyPerson" placeholder="璇疯緭鍏ョ敵璇蜂汉" clearable :style="{width: '100%'}"> + </el-input> + </el-form-item> + + <el-form-item label="鑱旂郴浜�" prop="contactPerson"> + <el-input v-model="formDat.contactPerson" placeholder="璇疯緭鍏ヨ仈绯讳汉" clearable :style="{width: '100%'}"> + </el-input> + </el-form-item> + + <el-form-item label="鑱旂郴鐢佃瘽" prop="contactPhone"> + <el-input v-model="formDat.contactPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" clearable :style="{width: '100%'}"></el-input> + </el-form-item> + + + <h4 class="form-header">涓绘挱澶村儚 </h4> + <el-upload + action="#" + accept="image/jpeg, image/png,image/jpg, image/WMF,image/gif" + list-type="picture-card" + :http-request="requestUpload" + :file-list="fileList" + :limit="1" + > + <i slot="default" class="el-icon-plus"></i> + <div slot="file" slot-scope="{ file }"> + <template v-if="fileList"> + <img + class="el-upload-list__item-thumbnail" + :src="file.url" + alt="" + style="width: 100%; height: 100%; object-fit: cover;" + fit="cover" + :preview-src-list="[file.url]" + > + </template> + <span class="el-upload-list__item-actions"> + <span + class="el-upload-list__item-preview" + @click="handlePictureCardPreview(file)" + > + <i class="el-icon-zoom-in"></i> + </span> + <span + v-if="!disabled" + class="el-upload-list__item-delete" + @click="handleRemove(file)" + > + <i class="el-icon-delete"></i> + </span> + </span> + </div> + </el-upload> + + </el-form> + + <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitDataScope">淇� 瀛�</el-button> <el-button @click="cancel">鍙� 娑�</el-button> </div> </el-dialog> + <el-dialog :visible.sync="dialogVisible"> + <img w-full :src="dialogImageUrl" style="width: 100%; height: 100%" alt="Preview Image" /> + </el-dialog> + </div> </template> <script> + import { + listRole, + getRole, + delRole, + addRole, + updateRole, + dataScope, + changeRoleStatus, + deptTreeSelect + } from "@/api/system/role"; + import { + treeselect as menuTreeselect, + roleMenuTreeselect + } from "@/api/system/menu"; + import { + Notification, + MessageBox, + Message, + Loading + } from 'element-ui' + + //瀵煎叆鎺ュ彛鍑芥暟 --鎺ュソ浜� + import { + addWebcast, + listWebcast, + getWebcastInfo, + uploadPic, + uploadPic1, + } from "@/api/meeting/index"; + export default { + created() { + this.getList(); + }, data() { return { - queryParams1: [], + showSearch: true, + pageSizes: [12, 24, 36], + webcastList:[], + // 鎬绘潯鏁� + total: 0, + loading: true, + dateRange: [], + queryParams: { + pageNum: 1, + pageSize: 12, + title: undefined, + applyPerson: undefined, + contactPerson: undefined, + happenStartTime: undefined, + happenEndTime: undefined + }, + // 閬僵灞� + disabled: false, // 寮瑰嚭灞傛爣棰� title: "", // 鏄惁鏄剧ず寮瑰嚭灞� open: false, formDat: { - id: undefined, - happenTime: undefined, + startTime: undefined, endTime: undefined, - timeSpan: undefined, - meetingTitle: undefined, - address: undefined, - meetingID: undefined, - capacity: undefined, - attendance: undefined, - applicant: undefined, - familyName: undefined, - name: undefined, - phone: undefined, - url: "", - - + title: undefined, + applyPerson: undefined, + contactPerson: undefined, + contactPhone: undefined, + createTime: undefined, + roomId:undefined, + maxPerson:undefined, + duration:undefined, + avatar:undefined, }, - + uploadFileList: [], + fileList:[], + dialogImageUrl: '', + dialogVisible: false, } }, methods: { + /** 鎼滅储鎸夐挳鎿嶄綔 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 閲嶇疆鎸夐挳鎿嶄綔 */ + resetQuery() { + this.dateRange = []; + this.resetForm("queryForm"); + this.handleQuery(); + }, newRequest() { // this.reset(); this.open = true; @@ -229,9 +277,91 @@ this.open = false; // this.reset(); }, - submitDataScope() { - console.log(this.formDat.timeSpan) - } + submitDataScope: function() { + let ul = this.fileList[0].url + this.formDat.avatar = ul, + // alert(this.formDat.avatar) + this.$refs["elForm"].validate(valid => { + if (valid && this.formDat.roomId > 0) { + addWebcast(this.formDat).then(response => { + this.$modal.msgSuccess("鏂板鎴愬姛"); + this.open = false; + // 娓呯┖formDat瀵硅薄鐨勬暟鎹� + Object.keys(this.formDat).forEach(key => { + this.formDat[key] = ''; + }); + // for(let i = 0; i <= this.fileList.length; i++) + // { + // this.handleRemove(this.fileList[0]); + // } + // for(let i = 0; i < this.fileListOther.length; i++){ + // this.handleRemoveFile(this.fileListOther[0]); + // } + this.fileList = [] + this.getList(); + }); + }else{ + this.$message.error("鏂板澶辫触锛屾埧闂村彿涓嶈兘鏄礋鏁�"); + this.open = false; + Object.keys(this.formDat).forEach(key => { + this.formDat[key] = ''; + }); + } + + }); + + }, + getList() { + this.loading = true; + // console.log(this.queryParams) + // listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => { + this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0] + this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1] + listWebcast(this.queryParams).then(response => { + this.webcastList = response.data.data; + console.log(this.webcastList,'webcastListwebcastListwebcastList') + this.total = response.data.total; + this.loading = false; + } + + ); + }, + toLook(id) { + this.$router.push('/meeting/webcast/Home/' + id) + }, + + requestUpload(params) + { + var file = params.file; + var formData = new FormData(); + + formData.append('uploadFile', file); + let _this = this + console.log(formData,'123123') + + uploadPic1(formData).then(response => { + let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length) + _this.fileList.push({name:response.data.fileName, url:response.data.url}) + console.log(this.fileList) + // _this.fileList2.push({name:response.data.fileName, url:response.data.url}) + // alert('ok') + }) + + }, + handlePictureCardPreview(file) { + alert(file.url) + this.dialogImageUrl = file.url; + this.dialogVisible = true; + }, + handleRemove(file) { + for(let i = 0; i < this.fileList.length; i++) + { + if(this.fileList[i].url==file.url) + this.$delete(this.fileList,i); + } + }, + + } } @@ -269,6 +399,7 @@ } .module { + /* display: flex; */ width: 250px; height: 250px; background-color: rgb(255, 255, 255); @@ -279,6 +410,7 @@ /* margin-left: 5px; margin-right: 5px; */ position: relative; + cursor: pointer; } .grid-content { -- Gitblit v1.9.1