From 2cb2f782d29b546caecbabf16f605721e0ea4243 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 19 九月 2024 09:01:11 +0800
Subject: [PATCH] ‘’

---
 admin/src/views/meeting/components/OperaRoomsWindow.vue |  203 ++++++++++++++++++++++++++++++++++----------------
 1 files changed, 139 insertions(+), 64 deletions(-)

diff --git a/admin/src/views/meeting/components/OperaRoomsWindow.vue b/admin/src/views/meeting/components/OperaRoomsWindow.vue
index 22561e6..15981d2 100644
--- a/admin/src/views/meeting/components/OperaRoomsWindow.vue
+++ b/admin/src/views/meeting/components/OperaRoomsWindow.vue
@@ -1,67 +1,58 @@
 <template>
-  <GlobalAlertWindow
-    v-loading="isUploading"
-    :title="title"
-    :visible.sync="visible"
-    :confirm-working="isWorking"
-    @confirm="confirm"
-  >
+  <GlobalAlertWindow v-loading="isUploading" :title="title" :visible.sync="visible" :confirm-working="isWorking"
+    @confirm="confirm">
     <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-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="鑷�"
-          start-placeholder="寮�濮嬫椂闂�"
-          end-placeholder="缁撴潫鏃堕棿"
-          placeholder="閫夋嫨鏃堕棿鑼冨洿"
-          @change="selectRange"
-        ></el-time-picker>
+        <el-time-picker is-range value-format="HH:mm" 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" placeholder="璇疯緭鍏ユ椂闂寸矑搴︼紙鍒嗛挓锛�" v-trim />
       </el-form-item>
       <el-form-item label="瀹圭撼浜烘暟" prop="limitNum">
-        <el-input v-model="form.limitNum" type="number" placeholder="璇疯緭鍏ュ绾充汉鏁�" v-trim/>
+        <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="璇烽�夋嫨閮ㄩ棬"
-        >
-        <!-- :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"
-          />
+        <el-select 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" />
         </el-select>
       </el-form-item>
       <el-form-item label="鎻愪緵鏈嶅姟椤圭洰" prop="projectList">
         <el-checkbox-group v-model="form.projectList">
-          <el-checkbox v-for="project in projectList" :label="project.id" :key="project.id">{{project.name}}</el-checkbox>
+          <el-checkbox v-for="project in projectList" :label="project.id" :key="project.id">{{ project.name
+            }}</el-checkbox>
         </el-checkbox-group>
       </el-form-item>
-      <el-form-item label="浼氳瀹ゅ浘鐗�" prop="imgurl">
-        <UploadAvatarImage
-          :file="{ 'imgurlfull': form.imgFullUrl, 'imgurl': form.imgurl }"
-          :uploadData="uploadData"
-          @uploadSuccess="uploadAvatarSuccess"
-          @uploadEnd="isUploading = false"
-          @uploadBegin="isUploading = true"
-        />
+      <el-form-item label="绌洪棽灞曠ず鍐呭" prop="fileType">
+        <el-radio v-model="form.fileType" @change="changeFile" :label="2">鏃�</el-radio>
+        <el-radio v-model="form.fileType" @change="changeFile" :label="0">鍥剧墖</el-radio>
+        <el-radio v-model="form.fileType" @change="changeFile" :label="1">瑙嗛</el-radio>
+      </el-form-item>
+      <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">
+            <div>
+              <i class="el-icon-plus avatar-uploader-icon"></i>
+            </div>
+          </el-upload>
+          <div v-for="item, i in form.multifileList" class="img_wrap">
+            <img :src="item.fileurlFull" class="img">
+            <i class="el-icon-error del" @click="imgDel(i)"></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" />
       </el-form-item>
       <el-form-item label="浣跨敤椤荤煡" prop="tips">
-        <el-input v-model="form.tips" type="textarea" placeholder="璇疯緭鍏ヤ娇鐢ㄩ』鐭�" v-trim/>
+        <el-input v-model="form.tips" type="textarea" placeholder="璇疯緭鍏ヤ娇鐢ㄩ』鐭�" v-trim />
       </el-form-item>
     </el-form>
   </GlobalAlertWindow>
@@ -70,14 +61,14 @@
 <script>
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-import UploadAvatarImage from '@/components/common/UploadAvatarImage'
+import UploadAvatarVideo from '@/components/common/UploadAvatarVideo'
 import { numRule } from '@/utils/form'
 import { fetchList } from '@/api/meeting/projects'
 export default {
   name: 'OperaRoomsWindow',
   extends: BaseOpera,
-  components: { GlobalAlertWindow, UploadAvatarImage },
-  data () {
+  components: { GlobalAlertWindow, UploadAvatarVideo },
+  data() {
     let timeRangeRule = (rule, value, callBack) => {
       if (!this.form.startTime) {
         callBack(new Error('璇烽�夋嫨寮�濮嬫椂闂�'))
@@ -90,6 +81,7 @@
       callBack()
     }
     return {
+      uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload',
       isUploading: false,
       uploadData: {
         folder: 'projects'
@@ -99,11 +91,13 @@
       form: {
         id: null,
         sysList: [],
+        multifileList: [],
         projectList: [],
         createDate: '',
         editor: '',
         editDate: null,
         isdeleted: 0,
+        fileType: 2,
         name: '',
         remark: '',
         startTime: '',
@@ -132,7 +126,7 @@
     }
   },
   inject: ['userList'],
-  created () {
+  created() {
     this.config({
       api: '/meeting/rooms',
       'field.id': 'id'
@@ -153,7 +147,7 @@
      * @title 绐楀彛鏍囬
      * @target 缂栬緫鐨勫璞�
      */
-     open (title, target) {
+    open(title, target) {
       this.title = title
       this.visible = true
       this.form.imgFullUrl = ''
@@ -182,20 +176,44 @@
         console.log(target)
       })
     },
+    imgDel(i) {
+      this.form.multifileList.splice(i, 1)
+    },
+    handleImgSuccess(res) {
+      const list = [...this.form.multifileList]
+      if (res.code == 200) {
+        let { data } = res
+        list.push({
+          fileurl: data.imgaddr,
+          fileurlFull: data.url,
+          type: 0
+        })
+        this.$set(this.form, 'multifileList', list)
+
+      }
+    },
     selectRange(v) {
       // console.log(this.timeRange);
-      console.log(v);
+      console.log(v)
       this.form.startTime = v[0]
       this.form.endTime = v[1]
-      console.log(this.form.startTime, this.form.endTime);
+      console.log(this.form.startTime, this.form.endTime)
     },
-    // 涓婁紶鍥剧墖
+    changeFile() {
+      this.$set(this.form, 'multifileList', [])
+    },
     uploadAvatarSuccess(file) {
-      this.form.imgurl = file.imgurl;
-      this.form.imgFullUrl = file.imgurlfull;
+      console.log('file', file)
+      this.form.multifileList.push({
+        fileurl: file.imgurl,
+        fileurlFull: file.imgurlfull,
+        type: 1
+      })
+      this.$set(this.form, 'videourl', file.imgurl)
+      this.$set(this.form, 'videoFullUrl', file.imgurlfull)
     },
     // 纭鏂板缓
-    __confirmCreate () {
+    __confirmCreate() {
       this.$refs.form.validate((valid) => {
         // debugger
         if (!valid) {
@@ -207,11 +225,11 @@
         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 }
         })
         this.api.create({
           ...this.form,
@@ -232,22 +250,22 @@
       })
     },
     // 纭淇敼
-    __confirmEdit () {
+    __confirmEdit() {
       this.$refs.form.validate((valid) => {
         if (!valid) {
           return
         }
-        console.log(this.form);
+        console.log(this.form)
         debugger
         // 璋冪敤鏂板缓鎺ュ彛
         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 }
         })
         this.api.updateById({
           ...this.form,
@@ -272,6 +290,63 @@
 </script>
 
 <style lang="scss" scoped>
-@import "@/assets/style/alertstyle.scss";
+$image-width: 90px;
 
-</style>
+.upload_wrap {
+  display: flex;
+
+  .img_wrap {
+    margin-left: 10px;
+    border: 1px dashed #d9d9d9;
+    width: $image-width;
+    height: $image-width;
+    border-radius: 6px;
+    position: relative;
+
+    .img {
+      width: $image-width;
+      height: $image-width;
+    }
+
+    .del {
+      position: absolute;
+      top: -6px;
+      right: -6px;
+      cursor: pointer;
+      color: red;
+    }
+  }
+}
+
+.avatar-uploader {
+  width: $image-width;
+  height: $image-width;
+}
+
+::v-deep .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+}
+
+.avatar-uploader .el-upload:hover {
+  border-color: #409EFF;
+}
+
+.avatar-uploader-icon {
+  line-height: 90px;
+  font-size: 28px;
+  color: #8c939d;
+  width: $image-width;
+  height: $image-width;
+  text-align: center;
+}
+
+.avatar {
+  width: 90px;
+  max-height: 90px;
+  display: block;
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3