From fa3615d2dcad3eb020a7ac59581546a6560e37ae Mon Sep 17 00:00:00 2001
From: yz3456 <2753272399@qq.com>
Date: 星期五, 10 五月 2024 16:06:41 +0800
Subject: [PATCH] 解决了其他附件封面问题

---
 ruoyi-ui/src/views/device/index.vue |  322 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 259 insertions(+), 63 deletions(-)

diff --git a/ruoyi-ui/src/views/device/index.vue b/ruoyi-ui/src/views/device/index.vue
index d5e3876..8cfc06e 100644
--- a/ruoyi-ui/src/views/device/index.vue
+++ b/ruoyi-ui/src/views/device/index.vue
@@ -5,8 +5,11 @@
       <el-form-item label="鏃堕棿" prop="happenTime">
         <el-date-picker
           v-model="dateRange"
-          style="width: 240px;"
-          value-format="yyyy-MM-dd HH-MM"
+          style="width: 240px;
+                   height: 35px;
+                   border-radius: 16px 16px 16px 16px;
+                   opacity: 0.5;"
+          value-format="yyyy-MM-dd"
           type="daterange"
           range-separator="-"
           start-placeholder="寮�濮嬫棩鏈�"
@@ -18,7 +21,10 @@
           v-model="queryParams.name"
           placeholder="璇疯緭鍏ヨ澶囧悕绉�"
           clearable
-          style="width: 240px"
+          style="width: 200px;
+                   height: 35px;
+                   border-radius: 16px 16px 16px 16px;
+                   opacity: 0.5;"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
@@ -27,7 +33,10 @@
           v-model="queryParams.buyer"
           placeholder="璇疯緭鍏ヨ喘涔颁汉"
           clearable
-          style="width: 240px"
+          style="width: 200px;
+                   height: 35px;
+                   border-radius: 16px 16px 16px 16px;
+                   opacity: 0.5;"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
@@ -36,7 +45,10 @@
           v-model="queryParams.location"
           placeholder="璇疯緭鍏ュ瓨鏀惧湴鐐�"
           clearable
-          style="width: 240px"
+          style="width: 200px;
+                   height: 35px;
+                   border-radius: 16px 16px 16px 16px;
+                   opacity: 0.5;"
           @keyup.enter.native="handleQuery"
         />
 
@@ -47,7 +59,10 @@
           v-model="queryParams.content"
           placeholder="璇疯緭鍏ヤ簨椤瑰唴瀹�"
           clearable
-          style="width: 240px"
+          style="width: 200px;
+                   height: 35px;
+                   border-radius: 16px 16px 16px 16px;
+                   opacity: 0.5;"
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
@@ -103,7 +118,7 @@
           v-hasPermi="['family:note:export']"
         >瀵煎叆妯℃澘涓嬭浇</el-button>
       </el-col>
-      <el-col :span="1.2">
+      <el-col :span="1.5">
 
         <el-upload
           action=""
@@ -114,7 +129,7 @@
         >
           <el-button size="mini"   type="primary"
                      plain
-                     icon="el-icon-plus" >瀵煎叆</el-button>
+                   icon="el-icon-top" >瀵煎叆</el-button>
 
         </el-upload>
       </el-col>
@@ -126,26 +141,30 @@
     <el-table v-loading="loading" :data="equipmentList"  :row-key="getRowId" ref="multipleTable" @selection-change="handleSelectionChange" :row-class-name="tableRowClassName" style="background: #FFEFF2;  border-radius: 14px 14px 14px 14px;">
       <el-table-column type="selection" :reserve-selection="true" width="55"  align="center" />
       <el-table-column fixed label="搴忓彿" sortable type="index" :index="(queryParams.pageNum-1)*queryParams.pageSize+1" width="120"/>
-      <el-table-column label="璁惧鍚嶇О" prop="name" sortable width="120" />
+      <el-table-column label="璁惧鍚嶇О" prop="name" sortable width="150" />
 
-      <el-table-column label="鏃堕棿" align="happenTime" sortable prop="happenTime" width="180">
+      <el-table-column label="鏃堕棿" align="happenTime" sortable prop="happenTime" width="140">
         <template slot-scope="scope">{{scope.row.happenTime? scope.row.happenTime: '鈥斺�斺�斺��'}}</template>
       </el-table-column>
-      <el-table-column label="鏄惁娉ㄩ攢" align="center" sortable prop="status" width="180">
+      <el-table-column label="鏄惁娉ㄩ攢" align="center" sortable prop="status" width="140">
         <template slot-scope="scope">
           {{ getSrc1(scope.row.status) }}
         </template>
       </el-table-column>
-      <el-table-column label="璐拱浜�" prop="buyer" sortable width="100" />
+      <el-table-column label="璐拱浜�" prop="buyer" sortable width="140" />
       <el-table-column label="浜嬮」鍐呭" prop="content" sortable :show-overflow-tooltip="true" width="150" />
-      <el-table-column label="瀛樻斁鍦扮偣" prop="location" sortable width="100" />
+      <el-table-column label="瀛樻斁鍦扮偣" prop="location" sortable width="120" />
 
       <el-table-column label="澶囨敞" prop="remark" sortable width="100" >
         <template slot-scope="scope">{{scope.row.remark? scope.row.remark: '鈥斺�斺�斺��'}}</template>
       </el-table-column>
 
 
-      <el-table-column label="鐢靛瓙鏂囦欢" prop="url" width="180" align="center">
+
+      <el-table-column label="鏄惁鏄湰瀹跺涵璁板綍" prop="ownData" sortable width="150px" >
+        <template slot-scope="scope">{{scope.row.ownData === 0 ? '鍚�': '鏄�'}}</template>
+      </el-table-column>
+      <el-table-column label="鐢靛瓙鏂囦欢" prop="url" width="120" align="center">
 
         <template slot-scope="scope" >
           <div  @click="handleCheck(scope.row)">
@@ -155,24 +174,27 @@
               alt=""
               style="width: 35px; height: 35px;"
               fit="cover"
-              v-if="scope.row.url !== ',' "
+              v-if="!(scope.row.url === '' || scope.row.url === ',' || scope.row.url === null)"
             >
             <img
+              v-else
               class="el-upload-list__item-thumbnail"
               src="../../assets/images/deviceA.png"
               alt=""
               style="width: 35px; height: 35px;"
               fit="cover"
-              v-if="scope.row.url === ','"
+
             ></div>
         </template>
       </el-table-column>
-      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
+      <el-table-column label="鎿嶄綔" align="center" width="250" class-name="small-padding fixed-width">
         <template slot-scope="scope" v-if="scope.row.roleId !== 1">
-          <el-button
+          <div class="button-container">
+            <el-button
             size="mini"
             type="text"
             icon="el-icon-edit"
+                :disabled="!scope.row.ownData"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['system:role:edit']"
           >淇敼</el-button>
@@ -180,6 +202,7 @@
             size="mini"
             type="text"
             icon="el-icon-delete"
+                :disabled="!scope.row.ownData"
             @click="handleDelete(scope.row)"
             v-hasPermi="['system:role:remove']"
           >鍒犻櫎</el-button>
@@ -187,6 +210,7 @@
             <el-button size="mini" type="text" icon="el-icon-d-arrow-right"  @click="handleCheck(scope.row)">鏌ョ湅璇︽儏</el-button>
 
           </el-dropdown>
+          </div>
         </template>
       </el-table-column>
     </el-table>
@@ -210,10 +234,8 @@
         </el-form-item>
 
         <el-form-item label="鍙戠敓鏃堕棿" prop="happenTime">
-          <el-date-picker
-            v-model='formDat.happenTime'
-            type='date'
-            placeholder='閫夋嫨鏃ユ湡'
+          <el-date-picker v-model="formDat.happenTime" type="date" placeholder="璇烽�夋嫨鏃ユ湡"
+                          :editable="false" :clearable="false" :style="{width: '100%'}"  value-format="yyyy-MM-dd"
           ></el-date-picker>
         </el-form-item>
 
@@ -247,14 +269,17 @@
           multiple
           :http-request="requestUpload"
           :file-list="fileList"
+		  :on-change="handleChange"
+		  :auto-upload="false"
+		  	ref="upload"
         >
-          <i slot="default" class="el-icon-plus"></i>
+          <i  slot="default" class="el-icon-plus"></i>
           <div slot="file" slot-scope="{file}">
             <img
               class="el-upload-list__item-thumbnail"
               :src="file.url"
               alt=""
-              style="width: 126px; height: 126px"
+            style="width: 100%; height: 100%; object-fit: cover;"
               fit="cover"
               :preview-src-list="[file.url]"
             >
@@ -277,7 +302,15 @@
 
 
           </div>
+
         </el-upload>
+		<el-button
+		         style="margin-left: 10px"
+		         size="small"
+		         type="success"
+
+		         @click="picUpload"
+		       >涓婁紶鍒版湇鍔″櫒</el-button>
         <h4 class="form-header">鍏朵粬闄勪欢 </h4>
         <el-upload
           action=""
@@ -285,17 +318,64 @@
           class="upload-demo"
           multiple
 
-          :on-remove="handleRemove"
-          :http-request="requestUpload"
-          :show-file-list="true"
+          :on-remove="handleRemoveFile"
+
+
+		  ref="upload1"
+		  :on-change="handleChange1"
+		  :auto-upload="false"
+		  list-type="picture-card"
+		    :http-request="requestUpload1"
+		    :show-file-list="true"
         >
-          <el-button type="primary">涓婁紶</el-button>
+
+   <i slot="default" class="el-icon-plus"></i>
+           <div slot="file" slot-scope="{file}">
+             <!-- 娣诲姞video鍏冪礌鐢ㄤ簬鏄剧ず瑙嗛 -->
+             <video
+               v-if="file.url.includes('.mp4')"
+               class="el-upload-list__item-thumbnail"
+               :src="file.url"
+               style="width: 147px; height: 147px"
+               fit="cover"
+             ></video>
+             <img v-else
+                  class="el-upload-list__item-thumbnail"
+                  src="../../assets/images/deviceLis.png"
+                  alt=""
+                  style="width: 100%; height: 100%"
+                  fit="cover"></img>
+
+             <span class="el-upload-list__item-actions">
+                  <span class="el-upload-list__item-name">{{ file.name }}</span>
+                       <span
+                         class="el-upload-list__item-preview"
+                         @click="handleFileCardPreview(file)"
+                       >
+                         <i class="el-icon-zoom-in"></i>
+                       </span>A
+
+                       <span
+
+                         class="el-upload-list__item-delete"
+                         @click="handleRemoveFile(file)"
+                       >
+                         <i class="el-icon-delete"></i>
+                       </span>
+                 </span>
+
+           </div>
           <template #tip>
             <div class="el-upload__tip">
             </div>
           </template>
         </el-upload>
-
+	 <el-button
+		          style="margin-left: 10px"
+		          size="small"
+		          type="success"
+		          @click="fileUpload"
+		        >涓婁紶鍒版湇鍔″櫒</el-button>
       </el-form>
       <h4 class="form-header"> </h4>
 
@@ -356,14 +436,18 @@
       // 鏃ユ湡鑼冨洿
       dateRange: [],
       // 鏁版嵁鑼冨洿閫夐」
-      fot:[".jpg",".jif"],
+    fot:['.bmp','.jpg','.jpeg','.png','.tif','.gif','.pcx','.tga','.exif','.fpx',
+      '.svg','.psd','.cdr','.pcd','.dxf','.ufo','.eps','.ai','.aw','.WMF','.webp','.apng'],
+
       fileList:[
       ],
-      fileListOther:[
-
-      ],
+		fileList1:[],
+   	  uploadFileList: [],
+   		uploadFileList1: [],
+	  fileListOther:[],
       dsb:true,
       btn:false,
+      uploading: false,
       formDat: {
         // type: undefined,
         content: undefined,
@@ -372,7 +456,7 @@
         name:undefined,
         remark: undefined,
         familyId:undefined,
-        url: undefined,
+        url: "",
         status:undefined,
       },
       // 鑿滃崟鍒楄〃
@@ -403,7 +487,7 @@
           trigger: 'blur'
         }],
         status: [{
-          required: true,
+          // required: true,
           message: '鏄惁娉ㄩ攢',
           trigger: 'change'
         }],
@@ -428,7 +512,7 @@
         happenTime: [{
           required: true,
           message: '璇烽�夋嫨鏃ユ湡閫夋嫨',
-          trigger: 'change'
+          trigger: 'blur'
         }],
         content: [{
           required: true,
@@ -482,15 +566,24 @@
 
     getList() {
       this.loading = true;
+      this.queryParams.happenStartTime = this.dateRange.length > 0 && this.dateRange[0]
+      this.queryParams.happenEndTime = this.dateRange.length > 0 && this.dateRange[1]
       // console.log(this.queryParams)
       //  listProperty(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
+      let _this = this
       listEquipment(this.queryParams).then(response => {
           //  alert(123)
           //   console.log(response.data)
-          this.equipmentList = response.data.data;
+          if(response.msg=="鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�")
+          {
+              _this.$modal.msgSuccess("鎮ㄦ病鍔犲叆鍒板搴旂殑瀹跺涵锛岃鑱旂郴绠$悊鍛�");
+              _this.loading = false;
+          }else{
+          _this.equipmentList = response.data.data;
 
-          this.total = response.data.total;
-          this.loading = false;
+          _this.total = response.data.total;
+          _this.loading = false;
+          }
         }
       );
     },
@@ -581,50 +674,147 @@
       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);
+         		 this.$delete(this.uploadFileList,i);
+         		 }
+
+      }
+    },
+    handleRemoveFile(file) {
+      for(let i = 0; i < this.fileListOther.length; i++)
+      {
+        if(this.fileListOther[i].url==file.url)
+       {
+
+         this.$delete(this.fileListOther,i);
+         this.$delete(this.uploadFileList1,i);
+
+         }
+      }
+    },
     /** 鎻愪氦鎸夐挳锛堟暟鎹潈闄愶級 */
     submitDataScope: function() {
 
-      let ul = this.fileList.map(function (elem){
-        return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
-      }).join(",")
-      let uls = this.fileListOther.map(function (elem){
-        return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
-      }).join(",")
-      this.formDat.url = ul+","+uls
       this.$refs["elForm"].validate(valid => {
         if (valid) {
 
           addEquipment(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.getList();
           });
         }
       });
+      // 娓呯┖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]);
+      }
     },
-    requestUpload(params)
-    {
-      var file = params.file;
-      var formData = new FormData();
-      formData.append('uploadFile', file);
-      let _this = this
+	handleChange(file, fileList1) {
+	   //瀹氫箟涓�涓叏灞�鏁扮粍uploadFileList鏉ュ仛瀛樺偍
 
-      uploadPic(formData).then(response => {
-        let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length)
+	 // this.uploadFileList.push(file.raw);
+	  console.log("=========5555=========")
+	  console.log(file)
+	//  console.log(this.uploadFileList)
+	//  this.fileList = fileList
+	//alert(file)
+	    this.uploadFileList.push(file.raw);
+	     this.fileList.push({name:file.name,url:file.url})
+	//alert(fileList1.length)
+	},
+  handleChange1(file, fileOtherList1) {
+  	   //瀹氫箟涓�涓叏灞�鏁扮粍uploadFileList鏉ュ仛瀛樺偍
+  	this.uploadFileList1.push(file.raw);
+  	 this.fileListOther.push({name:file.name,url:file.url})
+  	 // this.uploadFileList.push(file.raw);
+  	  console.log("=========5555=========")
+  	  //console.log(file)
+  	//  console.log(this.uploadFileList)
+  	//  this.fileList = fileList
+  	},
+  	fileUpload(){
+  	//	var file = params.file;
 
-        if(_this.fot.includes(pth) === true)
-        {
-          _this.fileList.push({name:response.data.fileName, "url":response.data.url})
+  		var formData = new FormData();
+  		this.$refs.upload1.submit();
+  		// formData.append('uploadFile', file);
+  		if(this.uploadFileList1.length==0){
+  			  this.$modal.msgSuccess("鏂囨。涓婁紶鍒楄〃涓嶈兘涓虹┖!");
+  			  return
+  		}
+  		this.uploadFileList1.forEach((elem)=>{
+  			formData.append("files", elem)
 
-        }
+  		})
 
-        else{
-          _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
+  		let _this = this
 
-        }
-      })
+  		this.uploading = true;
+  		uploadPic(formData).then(response => {
+  		_this.uploadFileList1 = []
+  		_this.formDat.url = _this.formDat.url+","+response.fileNames
+  		_this.$modal.msgSuccess("鏂囦欢涓婁紶鎴愬姛!");
+  		  })
 
-    },
+  	},
+  	picUpload()
+  	{
+  		var formData = new FormData();
+  		//alert(976)
+  		//this.$refs.upload.submit();
+  		//alert(8)
+  		//alert(this.uploadFileList.length)
+  	if(this.uploadFileList.length==0){
+  		  this.$modal.msgSuccess("鍥剧墖涓婁紶鍒楄〃涓嶈兘涓虹┖锛�");
+  		  return}
+  	//console.log(this.uploadFileList)
+  		this.uploadFileList.forEach((elem)=>{
+  			formData.append("files", elem)
+
+  		})
+  		//alert(90)
+  		let _this = this
+  		//alert(9)
+  	    uploadPic(formData).then(response => {
+  		//	alert("dds")
+  	      _this.formDat.url = _this.formDat.url+","+response.fileNames
+  		  _this.uploadFileList = []
+  		  _this.$modal.msgSuccess("鍥剧墖涓婁紶鎴愬姛");
+
+  	  });
+  	},
+      requestUpload(params) {
+  //alert(98)
+   //    this.uploadFileList.push(params.file);
+      },
+      requestUpload1(params)
+      {
+  		//     this.uploadFileList1.push(params.file);
+      },
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete(row) {
       const Ids = row.id || this.ids;
@@ -684,4 +874,10 @@
   background: #FFEFF2;
 
 }
+.el-table__cell {
+  font-size: 14px; /* 璁剧疆瀛椾綋澶у皬 */
+}
+.button-container {
+  display: inline-flex; /* 璁剧疆鎸夐挳瀹瑰櫒涓鸿鍐呭厓绱� */
+}
 </style>

--
Gitblit v1.9.1