inleft
2022-08-26 87317f44d9cc20ad70b6971168667e1c843e03d8
src/components/mini/box10-add.vue
@@ -22,11 +22,9 @@
         </a-form-model-item>
         <a-form-model-item label="日志文件" v-show="!form.online">
            <a-upload :customRequest="customRequest" name="file" :showUploadList="true" @change="handleChange"
               :default-file-list="form.blogFileList" :beforeUpload="beforeUpload"
               :data="{'fileType':fileTypeMarkDown}">
            <a-upload ref="blogFileUpload" :customRequest="customRequest" name="file" :showUploadList="true"
               @change="handleChange" :default-file-list="form.blogFileList" :beforeUpload="beforeUpload"
               :data="{'bucketName':bucketName.bucket_article}" accept=".md,.html,.htm,.txt">
               <a-button>
                  <a-icon type="upload" />限 markdown/html
               </a-button>
@@ -60,7 +58,7 @@
               </span>
            </a-form-model-item>
            <a-form-model-item label=" 日志类型">
            <a-form-model-item label=" 日志主类型">
               <a-select v-model="form.blogType" mode="default" placeholder=""
                  :getPopupContainer="getCalendarContainer()">
                  <a-select-option value="1">
@@ -70,10 +68,16 @@
                     html
                  </a-select-option>
                  <a-select-option value="3">
                     video
                     视频
                  </a-select-option>
                  <a-select-option value="4">
                     音频
                  </a-select-option>
                  <a-select-option value="5">
                     fast(闪念)
                     图组
                  </a-select-option>
                  <a-select-option value="9">
                     taking
                  </a-select-option>
               </a-select>
            </a-form-model-item>
@@ -104,8 +108,10 @@
            <a-form-model-item label="封面">
               <a-upload :customRequest="customRequest" name="file" :showUploadList="true" list-type="picture"
                  @change="handleChangeCoverFile" :default-file-list="form.coverFileList"
                  :beforeUpload="beforeUploadCover" :data="{'fileType':fileTypeCover}">
                  :data="{'bucketName':bucketName.bucket_cover}" @change="handleChangeCoverFile"
                  :default-file-list="form.coverFileList" :beforeUpload="beforeUploadCover"
                  accept=".jpg,.png,.jpeg">
                  <!-- :disabled="form.coverFileList.length>=1" -->
                  <a-button>
                     <a-icon type="upload" />jpg/png/jpeg..
                  </a-button>
@@ -187,6 +193,7 @@
   } from '../../api/blogArticleType.js'
   import myConstant from "../../config/myConstant.js"
   import md5 from 'js-md5';
   export default {
      beforeMount() {
@@ -195,18 +202,16 @@
         })
      },
      data() {
         let _this = this;
         let validateContent = (rule, value, callback) => {
            if (this.form.online) {
               console.log("内容未填");
               this.$refs.myForm.validateField('content')
               if (this.form.content == null || this.form.content == "") {
            if (_this.form.online) {
               //this.$refs.myForm.validateField('content')
               if (_this.form.content == null || _this.form.content == "") {
                  callback(new Error('内容未填'));
               }
            } else {
               console.log("文件未传");
               this.$refs.myForm.validateField('blogFileList')
               if (this.form.fileId == null) {
               //this.$refs.myForm.validateField('blogFileList')
               if (_this.form.fileId == null) {
                  callback(new Error('文件未传'));
               }
            }
@@ -214,8 +219,7 @@
         };
         return {
            fileTypeMarkDown: myConstant.fileTypeMarkDown,
            fileTypeCover: myConstant.fileTypeCover,
            bucketName: myConstant.bucketName,
            blogArticleType: [],
            tags: [],
            inputVisible: false,
@@ -261,7 +265,7 @@
               ],
               secret: [{
                  required: true,
                  message: '不正经的人..',
                  message: '好像这里错了..',
                  trigger: 'blur'
               }],
               common: [{
@@ -289,28 +293,41 @@
         };
      },
      methods: {
         beforeUploadCover(file, fileList) {
            if (this.form.coverFileList.length > 1) {
               this.$message.error('这里最多上传一个文件');
               return false;
            }
         reset() {
            // this.form.blogFileList = [];
            // this.form.coverFileList = [];
         },
         beforeUpload(file, fileList) {
         beforeUploadCover(file, fileList) {
            return new Promise((resolve, reject) => {
               if (this.form.fileId != null) {
               if (this.form.secret == null || this.form.secret == "") {
                  this.$message.error('需要正确的授权码');
                  return reject(false);
               }
               if (this.form.coverFileList.length >= 1) {
                  this.$message.error('这里最多上传一个文件');
                  return reject(false);
               }
               // var testmsg=/^image\/(jpeg|png|jpg)$/.test(file.type)
               // // var testmsg=/^image\/(md|html|markdown)$/.test(file.type)
               // if (!testmsg) {
               //   this.$message.error('上传文件格式不对!');
               //   return reject(false);
               // }
               if (file.size > myConstant.uploadFileSizeLimit) {
                  this.$message.error('上传文件大小不能超过 2M!');
                  return reject(false);
               }
               return resolve(true)
            });
         },
         beforeUpload(file, fileList) {
            return new Promise((resolve, reject) => {
               if (this.form.secret == null || this.form.secret == "") {
                  this.$message.error('需要正确的口令..');
                  return reject(false);
               }
               const isLt2M = file.size / 1024 / 1024 <= 2 //图片大小不超过2MB
               if (!isLt2M) {
               if (this.form.blogFileList.length >= 1) {
                  this.$message.error('这里最多上传一个文件');
                  return reject(false);
               }
               if (file.size > myConstant.uploadFileSizeLimit) {
                  this.$message.error('上传文件大小不能超过 2M!');
                  return reject(false);
               }
@@ -319,6 +336,8 @@
         },
         handleChange(info) {
            this.form.blogFileList = info.fileList;
            if (info.file.status !== 'uploading') {
               console.log(info.file, info.fileList);
            }
@@ -328,8 +347,14 @@
            } else if (info.file.status === 'error') {
               this.$message.error(`${info.file.name} file upload failed.`);
            }
            if (this.form.blogFileList == null || this.form.blogFileList.length == 0) {
               this.form.fileId = null
            }
         },
         handleChangeCoverFile(info) {
            this.form.coverFileList = info.fileList;
            if (info.file.status !== 'uploading') {
               console.log(info.file, info.fileList);
            }
@@ -339,6 +364,10 @@
            } else if (info.file.status === 'error') {
               this.$message.error(`${info.file.name} file upload failed.`);
            }
            if (this.form.coverFileList == null || this.form.coverFileList.length == 0) {
               this.form.coverFile = null
            }
         },
         /**
          * 上传文件
@@ -346,17 +375,36 @@
         customRequest(option) {
            const formData = new FormData()
            formData.append('file', option.file)
            formData.append('fileType', option.data.fileType)
            formData.append('authCode', this.form.secret)
            formData.append('bucketName', option.data.bucketName)
            formData.append('authCode', this.form.secret == "" ? "" : md5(this.form.secret))
            myFileInfoUpload(formData).then((res) => {
               if (res.success) {
                  this.$message.success('上传成功')
                  option.onSuccess(res, option.file)
                  // 在上传成功后进度条显示为99
                  progress.percent = 100
               } else {
                  this.$message.error('上传失败:' + res.message)
               }
            })
            let progress = {
               percent: 1
            }
            let speed = 100 / (option.file.size / 65000) //上传速度
            const intervalId = setInterval(() => {
               // 控制进度条防止在未上传成功时进度条达到100
               if (progress.percent < 99 && progress.percent + speed < 100) {
                  progress.percent += speed //控制进度条速度
                  option.onProgress(progress) //onProgress接收一个对象{ percent: 进度 }在进度条上显示
               } else if ((progress.percent < 100)) {
                  progress.percent++
               } else if (progress.percent >= 100) {
                  clearInterval(intervalId)
               }
            }, 500)
         },
         disabledDate(current) {
            return current < moment().subtract(1, "day");
@@ -365,9 +413,9 @@
            return trigger => trigger.parentNode;
         },
         handleClose(removedTag) {
            const tags = this.tags.filter(tag => tag !== removedTag);
            // const tags = this.tags.filter(tag => tag !== removedTag);
            //console.log(tags);
            this.tags = tags;
            this.tags = this.tags.filter(tag => tag !== removedTag);
         },
         showInput() {