From f72cc2c5bc9ea4df7819cf53e3b872024e0583a1 Mon Sep 17 00:00:00 2001
From: feige <791364011@qq.com>
Date: 星期六, 31 八月 2024 10:54:27 +0800
Subject: [PATCH] 修改家庭医生上传

---
 ruoyi-ui/src/views/wish/wishInfo.vue |  444 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 354 insertions(+), 90 deletions(-)

diff --git a/ruoyi-ui/src/views/wish/wishInfo.vue b/ruoyi-ui/src/views/wish/wishInfo.vue
index 9d4bc4f..81d1508 100644
--- a/ruoyi-ui/src/views/wish/wishInfo.vue
+++ b/ruoyi-ui/src/views/wish/wishInfo.vue
@@ -1,11 +1,15 @@
 <template>
-  <div class="app-container">
+  <div class="app-container" id="printable-content">
     <div class="form-header mt">
-      <h4 class="dt h4">鐧惧勾蹇冩効璇︾粏淇℃伅 </h4>
-      <!--      <el-button v-if="isShow" type="primary" class="pt"  icon="el-icon-edit" @click="handleEdit()" >缂栬緫</el-button>-->
-      <!--      <br>-->
-      <!--      <el-button type="primary" class="pt"   @click="handleExport"-->
-      <!--                 v-hasPermi="['self:user:export']" >瀵煎嚭</el-button>-->
+      <h1 style="font-size:21px;padding-top:30px;display: flex;justify-content: space-between;align-items: center;" >
+        <span>鐧惧勾蹇冩効璇︾粏淇℃伅</span>
+        <div style="display: flex; align-items: center;">
+          <el-button size="mini" type="text"  v-print="'#printable-content'" v-hasPermi="['person:information:memo']">
+            <div class="form" ><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>
     </div>
     <div style="padding-left:15px">
       <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-position="left" label-width="120px">
@@ -17,8 +21,9 @@
           <el-row :span="12">
             <el-cow >
               <el-form-item label="鏃堕棿" prop="happenTime" label-width="70px" style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
-                <el-input v-model="formData.happenTime" placeholder="璇疯緭鍏ユ椂闂�" clearable :style="{width: '100%'}" :disabled="dsb">
-                </el-input>
+                <el-date-picker v-model="formData.happenTime" type="date" placeholder="璇烽�夋嫨鏃ユ湡"
+                                :editable="false" :clearable="false" :style="{width: '100%'}" :disabled="dsb" value-format="yyyy-MM-dd"
+                ></el-date-picker>
 
               </el-form-item>
               <!--               <el-form-item label="鑾峰緱鏃堕棿" prop="happenTime" label-width="78px" style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">-->
@@ -58,7 +63,7 @@
             </el-cow>
             <el-cow >
               <el-form-item label="鏄惁渚濇棫鏈夋晥" prop="isEffective" label-width="100px" style="background: #FAD1E0;border-radius: 7px 7px 7px 7px;opacity: 1;">
-                <el-select v-model="formData.isEffective" placeholder="璇烽�夋嫨鏄惁渚濇棫鏈夋晥" clearable :style="{width: '100%'}"  >
+                <el-select v-model="formData.isEffective" placeholder="璇烽�夋嫨鏄惁渚濇棫鏈夋晥" clearable :style="{width: '100%'}"  :disabled="dsb">
                   <el-option v-for="(item, index) in typeOptions" :key="index" :label="item.label" :value="item.value"
                   ></el-option>
                 </el-select>
@@ -71,34 +76,42 @@
             </el-cow>
           </el-row>
         </el-container>
-        <h4 class="form-header">鐢靛瓙鏂囦欢 </h4>
+        <h4 class="form-header">鐩稿叧鍥剧墖 </h4>
         <el-upload
           action="#"
+          accept="image/jpeg, image/png,image/jpg, image/WMF,image/gif"
           list-type="picture-card"
           multiple
           :http-request="requestUpload"
           :file-list="fileList"
+		  :show-file-list="true"
+
+		       :on-change="handleChange"
+		  	  :auto-upload="false"
+          :disabled="!btn"
+          :class="{ hide: !btn }"
         >
-          <i slot="default" class="el-icon-plus"></i>
+          <div v-if="uploading" class="upload-status">姝e湪涓婁紶...</div>
+          <i v-if="!uploading" 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: 147px; height: 147px"
+              style="width: 100%; height: 100%; object-fit: cover;"
               fit="cover"
               :preview-src-list="[file.url]"
             >
             <span class="el-upload-list__item-actions" >
             <span
-              v-if="isShow"
+
               class="el-upload-list__item-preview"
               @click="handlePictureCardPreview(file)"
             >
               <i class="el-icon-zoom-in"></i>
             </span>
             <span
-              v-if="isShow"
+
               class="el-upload-list__item-delete"
               @click="handleDownload(file.url)"
             >
@@ -116,7 +129,13 @@
 
           </div>
         </el-upload>
-
+		 <el-button
+		          style="margin-left: 10px"
+		          size="small"
+		          type="success"
+				  v-if="btn"
+		          @click="picUpload"
+		        >涓婁紶鍒版湇鍔″櫒</el-button>
         <h4 class="form-header">鍏朵粬闄勪欢 </h4>
         <el-upload
           action=""
@@ -126,28 +145,42 @@
           list-type="picture-card"
           :on-preview="handleFileCardPreview"
           :on-remove="handleRemoveFile"
-          :http-request="requestUpload"
+          :http-request="requestUpload1"
           :show-file-list="true"
-        >
 
-          <i slot="default" class="el-icon-plus"></i>
+		:on-change="handleChange1"
+		:auto-upload="false"
+          :disabled="!btn"
+          :class="{ hide: !btn }"
+        >
+          <div v-if="uploading1" class="upload-status">姝e湪涓婁紶...</div>
+          <i v-if="!uploading1" slot="default" class="el-icon-plus"></i>
           <div slot="file" slot-scope="{file}">
-            <img
+            <!-- 娣诲姞video鍏冪礌鐢ㄤ簬鏄剧ず瑙嗛 -->
+            <video
+              v-if="file.url.includes('.mp4')"
               class="el-upload-list__item-thumbnail"
-              src="../../assets/401_images/401.gif"
-              alt=""
+              :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: 147px; height: 147px"
+                 fit="cover">
+
             <span class="el-upload-list__item-actions">
-                    <span v-if="isShow"
-                          class="el-upload-list__item-preview"
-                          @click="handleFileCardPreview(file)"
+               <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>
                     <span
-                      v-if="isShow"
+
                       class="el-upload-list__item-delete"
                       @click="handleDownload(file.url)"
                     >
@@ -160,14 +193,19 @@
                     >
                       <i class="el-icon-delete"></i>
                     </span>
-                  </span>
-
+              </span>
 
           </div>
 
-
         </el-upload>
-
+	 <el-button
+		          style="margin-left: 10px"
+		          size="small"
+		          type="success"
+		          v-if="btn"
+		          @click="fileUpload"
+		        >涓婁紶鍒版湇鍔″櫒</el-button>
+				      <h4 class="form-header"> </h4>
         <el-form-item size="large">
           <el-button v-if="isShow" type="primary" @click="submitForm" :disabled="dsb" >淇敼</el-button>
         </el-form-item>
@@ -175,7 +213,7 @@
     </div>
 
     <el-dialog  :visible.sync="dialogVisible">
-      <img w-full :src="dialogImageUrl"    style="width: 700px; height: 700px" alt="Preview Image" />
+      <img w-full :src="dialogImageUrl"    style="width: 100%; height: 100%" alt="Preview Image" />
     </el-dialog>
 
 
@@ -188,6 +226,7 @@
 import errorCode from "@/utils/errorCode";
 import {Message} from "element-ui";
 import {getWish, updateWish,download,uploadPic} from "@/api/wish/index";
+import {updateCollection} from "@/api/collection";
 
 export default {
   components: {},
@@ -196,15 +235,21 @@
     return {
       cdi:"鐧惧勾蹇冩効璇︾粏淇℃伅",
       udi:"鐧惧勾蹇冩効淇℃伅璇︽儏",
-      fot:[".jpg",".jif"],
-      fileList:[
-      ],
-      fileListOther:[
+     // 鏁版嵁鑼冨洿閫夐」
+     fot:['.bmp','.jpg','.jpeg','.png','.tif','.gif','.pcx','.tga','.exif','.fpx',
+       '.svg','.psd','.cdr','.pcd','.dxf','.ufo','.eps','.ai','.aw','.WMF','.webp','.apng'],
 
-      ],
+      fileList:[],
+      fileList1:[],
+      uploadFileList:[],
+      uploadFileList1:[],
+      fileListOther:[],
+      fileListOther1:[],
       dsb:true,
       btn:false,
       isShow:true,
+      uploading: false,
+      uploading1: false,
       // 鐧惧勾蹇冩効琛ㄦ牸鏁版嵁
       wishList: [],
 
@@ -219,8 +264,9 @@
         difficulty:undefined,
         isEffective:undefined,
         remark:undefined,
-        url: undefined,
+        url: "",
       },
+      desurl:'',
       dialogImageUrl: '',
       dialogVisible: false,
       disabled: false,
@@ -282,13 +328,14 @@
       jd =  this.$route.query.detail
       this.btn= jd
       this.dsb = !jd
-      document.title = "淇敼鐧惧勾蹇冩効璇︾粏淇℃伅";
+     // document.title = "淇敼鐧惧勾蹇冩効璇︾粏淇℃伅";
       this.$route.meta.title = "淇敼鐧惧勾蹇冩効璇︾粏淇℃伅";//鍒楄〃鐨勫悕绉�
     }
     else{
-      document.title = "鐧惧勾蹇冩効璇︾粏淇℃伅";
+     // document.title = "鐧惧勾蹇冩効璇︾粏淇℃伅";
       this.$route.meta.title = "鐧惧勾蹇冩効璇︾粏淇℃伅";//鍒楄〃鐨勫悕绉�
-      this.isShow=true
+      this.isShow=false
+      this.btn = false;
     }
 
     let _this = this
@@ -299,19 +346,43 @@
         let paths = response.data.url.split(",");
         for(let i = 0; i < paths.length; i++)
         {
-          if(paths[i]!="") {
+       if(paths[i]!="") {
 
-            let pth = paths[i].substr(paths[i].length - 4, paths[i].length)
-
-            if (_this.fot.includes(pth) === true)
-              _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i]})
-            else {
-              // alert(paths[i])
-              let nms = paths[i].split("\/")
-              let nm = nms[nms.length - 1]
-              _this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i]})
-            }
+           let pth = paths[i].substr(paths[i].length - 4, paths[i].length)
+       //	alert(pth)
+           if (_this.fot.includes(pth) === true)
+       	// {
+       	// 	if(paths[i][0]=="/")
+        //      _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i].substr(1),res:false})
+       	//   else
+       	//      _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i],res:false})
+       	//   }
+        {
+          if(paths[i].includes(process.env.VUE_APP_BASE_TRUE_API)){
+            if(paths[i][0]=="/")
+                  _this.fileList.push({name:paths[i],url: paths[i].substr(1),res:false})
+            else
+               _this.fileList.push({name:paths[i],url: paths[i],res:false})
+          }else{
+            if(paths[i][0]=="/")
+                  _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i].substr(1),res:false})
+            else
+               _this.fileList.push({name:paths[i],url: process.env.VUE_APP_BASE_TRUE_API+paths[i],res:false})
           }
+
+          }
+           else {
+             // alert(paths[i])
+       	 // alert()
+             let nms = paths[i].split("\/")
+             let nm = nms[nms.length - 1]
+       	  if(paths[i][0]=="/")
+             _this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i].substr(1),res:false})
+       		else
+       		_this.fileListOther.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i],res:false})
+
+       	}
+         }
         }
         this.loading = false;
       });
@@ -321,17 +392,44 @@
   },
   mounted() {},
   methods: {
-    /** 鏌ヨ绫诲埆淇℃伅 */
-    // getCateInfor()
-    // {
-    //   let _this = this
-    //   getCategory().then(response=>{
-    //
-    //     response.data.itemValues.replace("{","").replace("}","").split(",").map(elem=>{
-    //       _this.typeOptions.push({"label":elem.split(":")[0], "value":elem.split(":")[0]})
-    //     })
-    //   })
-    // },
+    getData(){
+      const id = this.$route.params && this.$route.params.id;
+      let _this = this
+      if (id) {
+        this.loading = true;
+        getWish({id}).then((response) => {
+          this.formData = response.data;
+          let paths = response.data.url.split(",");
+          for(let i = 0; i < paths.length; i++)
+          {
+         if(paths[i]!="") {
+
+             let pth = paths[i].substr(paths[i].length - 4, paths[i].length)
+         //	alert(pth)
+             if (_this.fot.includes(pth) === true)
+         	{
+          console.log()
+         	  }
+             else {
+               // alert(paths[i])
+         	 // alert()
+               let nms = paths[i].split("\/")
+               let nm = nms[nms.length - 1]
+         	  if(paths[i][0]=="/")
+               _this.fileListOther1.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i].substr(1),res:false})
+         		else
+         		_this.fileListOther1.push({name:nm, url: process.env.VUE_APP_BASE_TRUE_API+paths[i],res:false})
+
+         	}
+           }
+          }
+          _this.fileListOther = _this.fileListOther1
+          this.loading = false;
+        });
+        // this.getCateInfor()
+
+      }
+    },
     submitForm() {
       let ul = this.fileList.map(function (elem){
         return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
@@ -379,24 +477,93 @@
       })
     },
     handleRemoveFile(file) {
+      //鍒よ鏄惁鏄箣鍓嶇殑鍥剧墖
+      let res = false
       for(let i = 0; i < this.fileListOther.length; i++)
       {
         if(this.fileListOther[i].url==file.url)
+    	{
+    		if(this.fileListOther[i].res==false)
+    			res = true
+    		else
+    		{
+    			this.$delete(this.uploadFileList1, Math.abs(i - this.uploadFileList1.length-1))
+    		}
           this.$delete(this.fileListOther,i);
+
+    	}
+      }
+
+      let ul = ""
+      this.fileList.map(function (elem){
+      		if(elem.res==false)
+      			ul = ul + ","+elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+      })
+      let uls = ""
+      this.fileListOther.map(function (elem){
+        if(elem.res==false)
+      			uls = uls +","+elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+      })
+      this.formData.url = ul+","+uls;
+    //  alert(this.formData.url)
+      if(res==true){
+    	  updateWish(this.formData).then(response => {
+    		this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+    		// this.open = false;
+
+    	  });
       }
     },
     handleRemove(file) {
+    		  //鍒ゆ柇鏄惁鏄箣鍓嶇殑鍥剧墖
+      let res = false
+    //  alert(this.fileList.length)
       for(let i = 0; i < this.fileList.length; i++)
       {
         if(this.fileList[i].url==file.url)
+    	{
+    		//鍘熸潵鍥惧儚鏍囪涓篺alse
+    		//alert(this.fileList[i].res)
+    	  if(this.fileList[i].res==false)
+    		res = true
+    	  else
+    	  {
+    		//  alert(this.uploadFileList.length)
+    		//  alert(87)
+    		 this.$delete(this.uploadFileList, Math.abs(i - this.uploadFileList.length-1))
+    		 	//	  alert(this.uploadFileList.length)
+    		 }
           this.$delete(this.fileList,i);
+
       }
+      }
+      let ul = ""
+      this.fileList.map(function (elem){
+    	if(elem.res==false)
+    		ul = ul + ","+elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+      })
+      let uls = ""
+      this.fileListOther.map(function (elem){
+        if(elem.res==false)
+    		uls = uls +","+elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"")
+      })
+      this.formData.url = ul+","+uls;
+      if(res==true){
+    	  updateWish(this.formData).then(response => {
+    		this.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+    	  });
+      }
+
     },
     handleFileCardPreview(file){
       this.dialogFileUrl = file.url;
+      if(this.dialogFileUrl.includes("47.93.189.255")==true)
+        this.dialogFileUrl = this.dialogFileUrl.replace("47.93.189.255","www.bendudu.com")
+
       const Base64 = require('js-base64').Base64
-      this.desurl = process.env.VUE_APP_BASE_OTHER_API+'onlinePreview?url='+encodeURIComponent(Base64.encode(this.dialogFileUrl));
-      myWindow=window.open(this.desurl,'','width=1200,height=800,top=150,left=300');
+
+      this.desurl = process.env.VUE_APP_BASE_OTHER_API+"preview/"+'onlinePreview?url='+encodeURIComponent(Base64.encode(this.dialogFileUrl));
+      let myWindow=window.open(this.desurl,'','width=1200,height=800,top=150,left=300');
     },
     handlePictureCardPreview(file) {
       this.dialogImageUrl = file.url;
@@ -418,39 +585,130 @@
     handleEdit()
     {
       this.dsb = false
-      // this.btn = true
+      this.btn = true
       this.isShow=false
     },
-    requestUpload(params)
+
+//鑷畾涔変笂浼犳柟娉�
+    handleChange(file, fileList1) {
+       //瀹氫箟涓�涓叏灞�鏁扮粍uploadFileList鏉ュ仛瀛樺偍
+
+     // this.uploadFileList.push(file.raw);
+      console.log("=========5555=========")
+	  this.uploadFileList.push(file.raw);
+	   this.fileList.push({name:file.name,url:file.url,res:true})
+    },
+	//鑷畾涔変笂浼犳柟娉�
+	handleChange1(file, fileListOther12) {
+	       //瀹氫箟涓�涓叏灞�鏁扮粍uploadFileList鏉ュ仛瀛樺偍
+
+	     // this.uploadFileList.push(file.raw);
+		 this.uploadFileList1.push(file.raw);
+		  this.fileListOther.push({name:file.name,url:file.url,res:true})
+	      console.log("=========5555=========")
+	      //console.log(file)
+	    //  console.log(this.uploadFileList)
+		//  this.fileList = fileList
+	},
+	fileUpload(){
+	//	var file = params.file;
+
+		var formData = new FormData();
+		//this.$refs.upload1.submit();
+	//	alert(this.uploadFileList1.length)
+		// formData.append('uploadFile', file);
+		if(this.uploadFileList1.length==0){
+			  this.$modal.msgSuccess("鏂囨。涓婁紶鍒楄〃涓嶈兘涓虹┖锛�");
+			  return}
+
+		this.uploadFileList1.forEach((elem)=>{
+			formData.append("files", elem)
+
+		})
+		console.log(this.uploadFileList1)
+		let _this = this
+
+		this.uploading = true;
+		uploadPic(formData).then(response => {
+		_this.uploadFileList1 = []
+		  _this.formData.url = _this.formData.url+","+response.fileNames
+		    updateWish(_this.formData).then(response => {
+		      this.$modal.msgSuccess("鏂囨。涓婁紶鎴愬姛");
+		      // this.open = false;
+          this.getData()
+          this.fileListOther1=[]
+		    });
+		  })
+
+	},
+	picUpload()
+	{
+
+		var formData = new FormData();
+		//this.$refs.upload.submit();
+		//alert(this.uploadFileList.length)
+	if(this.uploadFileList.length==0){
+		  this.$modal.msgSuccess("鍥惧儚涓婁紶鍒楄〃涓嶈兘涓虹┖锛�");
+		  return}
+
+		this.uploadFileList.forEach((elem)=>{
+			formData.append("files", elem)
+
+		})
+		let _this = this
+
+
+        uploadPic(formData).then(response => {
+			// console.log(response.originalFilenames)
+			// console.log(response.urls)
+			// console.log(response.fileNames)
+			// 		console.log(response.newFileNames)
+        // let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length)
+        // _this.uploading1= false;
+        // console.log(_this.fot.includes(pth))
+        // // debugger
+        // if(_this.fot.includes(pth) === true)
+        // {
+        //   _this.fileList.push({name:response.data.fileName, "url":response.data.url})
+        //   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(",")
+		//console.log(_this.fileList)
+	//	alert(response.fileNames)
+          _this.formData.url = _this.formData.url+","+response.fileNames
+		_this.uploadFileList = []
+         // alert(87)
+          updateWish(_this.formData).then(response => {
+            _this.$modal.msgSuccess("鍥剧墖涓婁紶鎴愬姛");
+            // this.open = false;
+
+          });
+        // }
+        // else{
+        //   _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
+
+        // }
+      });
+	},
+     requestUpload(params)
     {
-      var file = params.file;
-      var formData = new FormData();
-      formData.append('uploadFile', file);
-      let _this = this
+   //  alert(124)
+//	 this.uploadFileList.push(params.file);
 
-      uploadPic(formData).then(response => {
-        let pth = response.data.originalFilename.substr(response.data.originalFilename.length-4, response.data.originalFilename.length)
+     //alert(34)
 
-        if(_this.fot.includes(pth) === true)
-        {
-          _this.fileList.push({name:response.data.fileName, "url":response.data.url})
-
-        }
-
-        else{
-          _this.fileListOther.push({name:response.data.fileName, url:response.data.url})
-
-        }
-      })
 
     },
-
-    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
-    handleExport() {
-      this.download('/zIdea/export', {
-        ...this.queryParams
-      }, `zIdea_${new Date().getTime()}.xlsx`)
-    }
+    requestUpload1(params)
+    {
+	//	alert(123)
+   // this.uploadFileList1.push(params.file);
+  //  console.log("-----------")
+	//console.log(this.uploadFileList1)
+    },
 
   }
 }
@@ -475,6 +733,12 @@
   display: block;
   position: absolute;
 }
+.hide /deep/ .el-upload--picture-card {
+  display: none;
+}
+.form{
+  background:center/11% no-repeat url('../../assets/icons/form.png') ;
+}
 .form_item{
   font-size: 12px;
   font-family: Microsoft YaHei-Regular, Microsoft YaHei;

--
Gitblit v1.9.1