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