Kaynağa Gözat

修改富文本上传图片base64数据过大问题

shaogen1995 4 yıl önce
ebeveyn
işleme
faf3253830

+ 6 - 0
src/assets/css/reset.less

@@ -116,6 +116,9 @@ textarea{
 .w-e-toolbar {
 	z-index: 10 !important;
 }
+.w-e-toolbar .w-e-menu:nth-of-type(18) {
+	display: none !important;
+}
 .w-e-toolbar .w-e-menu:nth-of-type(19) {
 	display: none !important;
 }
@@ -158,4 +161,7 @@ textarea{
 }
 .el-button.el-picker-panel__link-btn.el-button--text.el-button--mini{
 	display: none;
+}
+.fwbtit{
+	margin-left: 30px;
 }

+ 47 - 5
src/pages/activity/activityEdit.vue

@@ -26,6 +26,19 @@
         <el-col :span="24">
           <el-form-item label="内容" prop="content" maxlength="30">
             <!-- <vue-editor class="quill-editor" v-model="form.content" /> -->
+            <!-- 图片上传 -->
+            <el-upload
+              class="upload-demo"
+              action="http://8.135.106.227:8001/manage/activity/upload"
+              multiple
+              :before-upload="beforethumbUploadImg"
+              :on-success="upload_thumb_successImg"
+              :headers="headerObj"
+            >
+              <el-button size="small" type="primary">图片上传</el-button>
+              <span class="fwbtit">支持png、jpg、gif和jpeg的图片格式;最大支持5M</span>
+            </el-upload>
+            <!-- 视频上传 -->
             <el-upload
               class="upload-demo"
               action="http://8.135.106.227:8001/manage/activity/upload"
@@ -35,9 +48,7 @@
               :headers="headerObj"
             >
               <el-button size="small" type="primary">视频上传</el-button>
-              <div slot="tip" class="el-upload__tip">
-                只能上传MP4文件,且不超过500M
-              </div>
+              <span class="fwbtit">只能上传MP4文件,且不超过500M</span>
             </el-upload>
 
             <div id="div2" style="z-index: 1;margin-top: 40px;"></div>
@@ -101,9 +112,41 @@ export default {
     },
   },
   methods: {
+    // 上传图片
+    beforethumbUploadImg (file) {
+      // console.log(998, file)
+      // 限制图片大小和格式
+      const sizeOk = file.size / 1024 / 1024 < 5
+      const typeOk =
+        file.type === 'image/png' ||
+        file.type === 'image/jpeg' ||
+        file.type === 'image/gif'
+
+      return new Promise((resolve, reject) => {
+        if (!typeOk) {
+          this.$message.error('照片格式有误!')
+          reject(file)
+        } else if (!sizeOk) {
+          this.$message.error('照片大小超过5M!')
+          reject(file)
+        } else if (file.name.length > 32) {
+          this.$message.error('照片名字不能超过32个字!')
+          reject(file)
+        } else {
+          resolve(file)
+        }
+      })
+    },
+    upload_thumb_successImg (data) {
+     this.$message.success('上传成功')
+      console.log('图片上传成功', data)
+      this.editor.txt.append(
+        `<img src="${data.data.ossUrl}"  style="max-width:100%" /><p>&emsp;&emsp;</p>`
+      );  
+    },
     beforethumbUpload (file) {
       // console.log('上传文件前校验', file)
-      // 限制图片大小和格式
+      // 限制视频大小和格式
       const sizeOk = file.size / 1024 / 1024 < 500
       const typeOk = file.type === 'video/mp4' 
       return new Promise((resolve, reject) => {
@@ -183,7 +226,6 @@ export default {
               "Verdana",
               "Times New Roman",
             ];
-            this.editor.config.uploadImgShowBase64 = true; //图片地址
             this.editor.create();
             this.editor.txt.html(this.iframeData.content);
           }, 100);

+ 51 - 0
src/pages/collection/collectionEdit.vue

@@ -105,6 +105,18 @@
       <el-row>
         <el-form-item label="藏品介绍" prop="description">
           <!-- <vue-editor class="quill-editor" v-model="ruleForm.description" /> -->
+            <!-- 图片上传 -->
+            <el-upload
+              class="upload-demo"
+              action="http://8.135.106.227:8001/manage/goods/upload"
+              multiple
+              :headers="headerObj"
+              :before-upload="beforethumbUploadImg"
+              :on-success="upload_thumb_successImg"
+            >
+              <el-button size="small" type="primary">图片上传</el-button>
+              <span class="fwbtit">支持png、jpg、gif和jpeg的图片格式;最大支持5M</span>
+            </el-upload>
           <div id="div1" style="z-index: 1"></div>
         </el-form-item>
       </el-row>
@@ -182,6 +194,38 @@ export default {
     },
   },
   methods: {
+    // 上传图片
+    beforethumbUploadImg (file) {
+      // console.log(998, file)
+      // 限制图片大小和格式
+      const sizeOk = file.size / 1024 / 1024 < 5
+      const typeOk =
+        file.type === 'image/png' ||
+        file.type === 'image/jpeg' ||
+        file.type === 'image/gif'
+
+      return new Promise((resolve, reject) => {
+        if (!typeOk) {
+          this.$message.error('照片格式有误!')
+          reject(file)
+        } else if (!sizeOk) {
+          this.$message.error('照片大小超过5M!')
+          reject(file)
+        } else if (file.name.length > 32) {
+          this.$message.error('照片名字不能超过32个字!')
+          reject(file)
+        } else {
+          resolve(file)
+        }
+      })
+    },
+    upload_thumb_successImg (data) {
+     this.$message.success('上传成功')
+      console.log('图片上传成功', data)
+      this.editor.txt.append(
+        `<img src="${data.data.ossUrl}"  style="max-width:100%" /><p>&emsp;&emsp;</p>`
+      );  
+    },
     quxiao(reload) {
       this.$layer.close(this.layerid);
       //点击取消 不刷新列表   点击确认 保存成功刷新列表
@@ -337,6 +381,13 @@ export default {
 </script>
 
 <style lang="less" scoped>
+/deep/.el-upload-list__item-name {
+  display: none !important;
+}
+/deep/.el-upload-list__item-status-label {
+  display: none !important;
+}
+
 .Root {
   padding: 50px;
 }

+ 48 - 6
src/pages/exhibition/exhibitionEdit.vue

@@ -92,18 +92,29 @@
       <el-row style="margin-bottom: 100px">
         <el-col :span="24">
           <el-form-item label="内容" prop="content" maxlength="30">
+            <!-- 图片上传 -->
             <el-upload
               class="upload-demo"
-              action="http://8.135.106.227:8001/manage/activity/upload"
+              action="http://8.135.106.227:8001/manage/exhibition/upload"
+              multiple
+              :before-upload="beforethumbUploadImg"
+              :on-success="upload_thumb_successImg"
+              :headers="headerObj"
+            >
+              <el-button size="small" type="primary">图片上传</el-button>
+              <span class="fwbtit">支持png、jpg、gif和jpeg的图片格式;最大支持5M</span>
+            </el-upload>            
+            <!-- 视频上传 -->
+            <el-upload
+              class="upload-demo"
+              action="http://8.135.106.227:8001/manage/exhibition/upload"
               multiple
               :before-upload="beforethumbUpload"
               :on-success="upload_thumb_success"
               :headers="headerObj"
             >
               <el-button size="small" type="primary">视频上传</el-button>
-              <div slot="tip" class="el-upload__tip">
-                只能上传MP4文件,且不超过500M
-              </div>
+              <span class="fwbtit">只能上传MP4文件,且不超过500M</span>
             </el-upload>
 
             <div id="div2" style="z-index: 1; margin-top: 40px"></div>
@@ -216,9 +227,41 @@ export default {
     },
   },
   methods: {
+    // 上传图片
+    beforethumbUploadImg (file) {
+      // console.log(998, file)
+      // 限制图片大小和格式
+      const sizeOk = file.size / 1024 / 1024 < 5
+      const typeOk =
+        file.type === 'image/png' ||
+        file.type === 'image/jpeg' ||
+        file.type === 'image/gif'
+
+      return new Promise((resolve, reject) => {
+        if (!typeOk) {
+          this.$message.error('照片格式有误!')
+          reject(file)
+        } else if (!sizeOk) {
+          this.$message.error('照片大小超过5M!')
+          reject(file)
+        } else if (file.name.length > 32) {
+          this.$message.error('照片名字不能超过32个字!')
+          reject(file)
+        } else {
+          resolve(file)
+        }
+      })
+    },
+    upload_thumb_successImg (data) {
+     this.$message.success('上传成功')
+      console.log('图片上传成功', data)
+      this.editor.txt.append(
+        `<img src="${data.data.ossUrl}"  style="max-width:100%" /><p>&emsp;&emsp;</p>`
+      );  
+    },
     beforethumbUpload(file) {
       // console.log('上传文件前校验', file)
-      // 限制图片大小和格式
+      // 限制视频大小和格式
       const sizeOk = file.size / 1024 / 1024 < 500;
       const typeOk = file.type === "video/mp4";
       return new Promise((resolve, reject) => {
@@ -358,7 +401,6 @@ export default {
               "Verdana",
               "Times New Roman",
             ];
-            this.editor.config.uploadImgShowBase64 = true; //图片地址
             this.editor.create();
             this.editor.txt.html(this.iframeData.content);
           }, 100);

+ 58 - 2
src/pages/leaveMessage/guide.vue

@@ -16,6 +16,20 @@
           <el-row>
             <el-col :span="24">
               <el-form-item label="内容" prop="content">
+                <!-- 图片上传 -->
+                <el-upload
+                  class="upload-demo"
+                  action="http://8.135.106.227:8001/manage/news/upload"
+                  multiple
+                  :headers="headerObj"
+                  :before-upload="beforethumbUploadImg"
+                  :on-success="upload_thumb_successImg"
+                >
+                  <el-button size="small" type="primary">图片上传</el-button>
+                  <span class="fwbtit"
+                    >支持png、jpg、gif和jpeg的图片格式;最大支持5M</span
+                  >
+                </el-upload>
                 <!-- <vue-editor class="quill-editor" v-model="form.content" /> -->
                 <div id="div1" style="z-index: 1"></div>
               </el-form-item>
@@ -50,6 +64,9 @@ export default {
   },
   data() {
     return {
+      headerObj: {
+        token: window.localStorage.getItem("token"),
+      },
       editor: "",
       crumbData,
       form: {},
@@ -87,6 +104,38 @@ export default {
     this.getDetail();
   },
   methods: {
+    // 上传图片
+    beforethumbUploadImg (file) {
+      // console.log(998, file)
+      // 限制图片大小和格式
+      const sizeOk = file.size / 1024 / 1024 < 5
+      const typeOk =
+        file.type === 'image/png' ||
+        file.type === 'image/jpeg' ||
+        file.type === 'image/gif'
+
+      return new Promise((resolve, reject) => {
+        if (!typeOk) {
+          this.$message.error('照片格式有误!')
+          reject(file)
+        } else if (!sizeOk) {
+          this.$message.error('照片大小超过5M!')
+          reject(file)
+        } else if (file.name.length > 32) {
+          this.$message.error('照片名字不能超过32个字!')
+          reject(file)
+        } else {
+          resolve(file)
+        }
+      })
+    },
+    upload_thumb_successImg (data) {
+     this.$message.success('上传成功')
+      console.log('图片上传成功', data)
+      this.editor.txt.append(
+        `<img src="${data.data.ossUrl}"  style="max-width:100%" /><p>&emsp;&emsp;</p>`
+      );  
+    },
     async getDetail() {
       let result = await this.$http({
         method: "get",
@@ -112,7 +161,7 @@ export default {
     async save() {
       let data = this["form"];
       data.id = 1;
-      data.content =this.editor.txt.html()
+      data.content = this.editor.txt.html();
       let result = await this.$http({
         method: "post",
         data,
@@ -129,7 +178,14 @@ export default {
 };
 </script>
 
-<style scoped>
+<style scoped lang="less">
+/deep/.el-upload-list__item-name {
+  display: none !important;
+}
+/deep/.el-upload-list__item-status-label {
+  display: none !important;
+}
+
 .table-interface {
   height: calc(100% - 3rem);
   overflow: auto;

+ 72 - 28
src/pages/news/newEdit.vue

@@ -38,21 +38,31 @@
       <el-row v-show="form.source === 'edit'">
         <el-col :span="24">
           <el-form-item label="内容" prop="content" maxlength="30">
+            <!-- 图片上传 -->
             <el-upload
               class="upload-demo"
-              action="http://8.135.106.227:8001/manage/activity/upload"
+              action="http://8.135.106.227:8001/manage/news/upload"
+              multiple
+              :headers="headerObj"
+              :before-upload="beforethumbUploadImg"
+              :on-success="upload_thumb_successImg"
+            >
+              <el-button size="small" type="primary">图片上传</el-button>
+              <span class="fwbtit">支持png、jpg、gif和jpeg的图片格式;最大支持5M</span>
+            </el-upload>
+            <!-- 视频上传 -->
+            <el-upload
+              class="upload-demo"
+              action="http://8.135.106.227:8001/manage/news/upload"
               multiple
               :before-upload="beforethumbUpload"
               :on-success="upload_thumb_success"
               :headers="headerObj"
             >
               <el-button size="small" type="primary">视频上传</el-button>
-              <div slot="tip" class="el-upload__tip">
-                只能上传MP4文件,且不超过500M
-              </div>
+              <span class="fwbtit">只能上传MP4文件,且不超过500M</span>
             </el-upload>
-
-            <div id="div2" style="z-index: 1;margin-top: 40px;"></div>
+            <div id="div2" style="z-index: 1; margin-top: 40px"></div>
             <!-- <vue-editor class="quill-editor" v-model="form.content" /> -->
           </el-form-item>
         </el-col>
@@ -103,7 +113,10 @@ export default {
         wxUrl: "",
       },
       rules: {
-        name: [{ required: true, message: "请输入标题", trigger: "blur" },{ max: 32, message: '不能超过32个字', trigger: 'blur' }],
+        name: [
+          { required: true, message: "请输入标题", trigger: "blur" },
+          { max: 32, message: "不能超过32个字", trigger: "blur" },
+        ],
         type: [{ required: true, message: "请选择类别", trigger: "blur" }],
         source: [{ required: true, message: "请选择来源", trigger: "blur" }],
         // content: [{ required: true, message: "请输入内容", trigger: "blur" }],
@@ -127,32 +140,66 @@ export default {
     },
   },
   methods: {
-    beforethumbUpload (file) {
-      // console.log('上传文件前校验', file)
+    // 上传图片
+    beforethumbUploadImg (file) {
+      // console.log(998, file)
       // 限制图片大小和格式
-      const sizeOk = file.size / 1024 / 1024 < 500
-      const typeOk = file.type === 'video/mp4' 
+      const sizeOk = file.size / 1024 / 1024 < 5
+      const typeOk =
+        file.type === 'image/png' ||
+        file.type === 'image/jpeg' ||
+        file.type === 'image/gif'
+
       return new Promise((resolve, reject) => {
         if (!typeOk) {
-          this.$message.error('视频格式有误!')
+          this.$message.error('照片格式有误!')
           reject(file)
         } else if (!sizeOk) {
-          this.$message.error('视频大小超过500M!')
+          this.$message.error('照片大小超过5M!')
+          reject(file)
+        } else if (file.name.length > 32) {
+          this.$message.error('照片名字不能超过32个字!')
           reject(file)
         } else {
           resolve(file)
         }
       })
     },
-    upload_thumb_success (data) {
-      console.log('上传文件成功', data)
-      this.$message.success('上传成功')
+    upload_thumb_successImg (data) {
+     this.$message.success('上传成功')
+      console.log('图片上传成功', data)
+      this.editor.txt.append(
+        `<img src="${data.data.ossUrl}"  style="max-width:100%" /><p>&emsp;&emsp;</p>`
+      );  
+    },
+     beforethumbUpload(file) {
+      // console.log('上传文件前校验', file)
+      // 限制视频大小和格式
+      const sizeOk = file.size / 1024 / 1024 < 500;
+      const typeOk = file.type === "video/mp4";
+      return new Promise((resolve, reject) => {
+        if (!typeOk) {
+          this.$message.error("视频格式有误!");
+          reject(file);
+        } else if (!sizeOk) {
+          this.$message.error("视频大小超过500M!");
+          reject(file);
+        } else {
+          resolve(file);
+        }
+      });
+    },
+    upload_thumb_success(data) {
+      console.log("上传文件成功", data);
+      this.$message.success("上传成功");
       // this.editor.txt.html(`${this.editor.txt.html()}<p><video src="${data.data.ossUrl}" controls style="width:50%"></video></p>`);
-     
-      this.editor.txt.append(`<video src="${data.data.ossUrl}" controls style="width:100%"></video><p>&emsp;&emsp;</p>`)
+
+      this.editor.txt.append(
+        `<video src="${data.data.ossUrl}" controls style="width:100%"></video><p>&emsp;&emsp;</p>`
+      );
       // this.editor.txt.append(`<p>123456</p>`)
-    },   
-     //上传视频方法
+    },
+    //上传视频方法
     quxiao(reload) {
       this.$layer.close(this.layerid);
       //点击取消 不刷新列表   点击确认 保存成功刷新列表
@@ -177,9 +224,8 @@ export default {
       if (this.form.source === "edit") {
         data.content = this.editor.txt.html();
         //把微信链接变成空
-        data.wxUrl=''
-        }
-      else data.content = "";
+        data.wxUrl = "";
+      } else data.content = "";
       // console.log(666,data);
       if (data.content === undefined) data.content = " ";
       let result = await this.$http({
@@ -217,7 +263,6 @@ export default {
               "Verdana",
               "Times New Roman",
             ];
-            this.editor.config.uploadImgShowBase64 = true; //图片地址
             this.editor.create();
             this.editor.txt.html(this.iframeData.content);
           }, 100);
@@ -228,16 +273,15 @@ export default {
     },
   },
   created() {},
-  mounted() {
-  },
+  mounted() {},
 };
 </script>
 
 <style lang="less" scoped>
-/deep/.el-upload-list__item-name{
+/deep/.el-upload-list__item-name {
   display: none !important;
 }
-/deep/.el-upload-list__item-status-label{
+/deep/.el-upload-list__item-status-label {
   display: none !important;
 }
 // /deep/.el-icon-close{

+ 56 - 1
src/pages/survey/surveyList.vue

@@ -28,6 +28,20 @@
           <el-row>
             <el-col :span="24">
               <el-form-item label="内容" prop="content">
+                <!-- 图片上传 -->
+                <el-upload
+                  class="upload-demo"
+                  action="http://8.135.106.227:8001/manage/news/upload"
+                  multiple
+                  :headers="headerObj"
+                  :before-upload="beforethumbUploadImg"
+                  :on-success="upload_thumb_successImg"
+                >
+                  <el-button size="small" type="primary">图片上传</el-button>
+                  <span class="fwbtit"
+                    >支持png、jpg、gif和jpeg的图片格式;最大支持5M</span
+                  >
+                </el-upload>
                 <!-- <vue-editor class="quill-editor" v-model="form.content" /> -->
                 <div id="div1" style="z-index:1"></div>
               </el-form-item>
@@ -63,6 +77,9 @@ export default {
   },
   data() {
     return {
+      headerObj: {
+        token: window.localStorage.getItem("token"),
+      },
       editor:'',
       crumbData,
       form: {
@@ -110,6 +127,38 @@ export default {
     this.getDetail();
   },
   methods: {
+    // 上传图片
+    beforethumbUploadImg (file) {
+      // console.log(998, file)
+      // 限制图片大小和格式
+      const sizeOk = file.size / 1024 / 1024 < 5
+      const typeOk =
+        file.type === 'image/png' ||
+        file.type === 'image/jpeg' ||
+        file.type === 'image/gif'
+
+      return new Promise((resolve, reject) => {
+        if (!typeOk) {
+          this.$message.error('照片格式有误!')
+          reject(file)
+        } else if (!sizeOk) {
+          this.$message.error('照片大小超过5M!')
+          reject(file)
+        } else if (file.name.length > 32) {
+          this.$message.error('照片名字不能超过32个字!')
+          reject(file)
+        } else {
+          resolve(file)
+        }
+      })
+    },
+    upload_thumb_successImg (data) {
+     this.$message.success('上传成功')
+      console.log('图片上传成功', data)
+      this.editor.txt.append(
+        `<img src="${data.data.ossUrl}"  style="max-width:100%" /><p>&emsp;&emsp;</p>`
+      );  
+    },
     async getDetail() {
       let result = await this.$http({
         method: "post",
@@ -153,7 +202,13 @@ export default {
 };
 </script>
 
-<style scoped>
+<style scoped lang="less">
+/deep/.el-upload-list__item-name {
+  display: none !important;
+}
+/deep/.el-upload-list__item-status-label {
+  display: none !important;
+}
 .table-interface {
   height: calc(100% - 3rem);
   overflow: auto;