liweilong
2020-12-25 57fedb8aa042c9f8bf5a3214b455144436850f1f
src/pages/system/banner.vue
@@ -64,24 +64,12 @@
          <el-input v-model="dialogData.orderNum" placeholder="请输入排序号" />
        </el-form-item>
        <el-form-item ref="uploadFormItem" label="轮播图:" prop="uploadImgs">
          <!-- 上传图片组件(单图) -->
          <el-upload
          <!-- 上传图片组件(多图) -->
          <UploadSingleImg
            ref="refUploadImg"
            accept="image/jpeg,image/jpg,image/gif,image/png"
            :auto-upload="false"
            list-type="picture-card"
            :class="{disabled:uploadDisabled}"
            action="#"
            :limit="1"
            :file-list="dialogData.uploadImgs"
            :on-change="addUploadImg"
            :on-remove="delUploadImg"
            :http-request="uploadImg"
            :on-preview="uploadPreview"
            :before-upload="beforeUploadImg"
          >
            <i class="el-icon-plus" />
          </el-upload>
            v-model="dialogData.uploadImgs"
            @change.capture="$refs[formName].clearValidate()"
          />
        </el-form-item>
        <el-form-item label="跳转类型:" prop="jumpType">
          <el-select
@@ -130,8 +118,10 @@
import mixin_Upload from '@/mixins/upload.js'
import mixin_bannerOpts from '@/mixins/bannerOpts.js' // 通用轮播图下拉选项
import UploadSingleImg from '@/components_simple/UploadSingleImg'
export default {
  name: 'Equipment',
  components: { UploadSingleImg },
  mixins: [mixin_Upload, mixin_bannerOpts],
  data() {
    return {
@@ -192,66 +182,6 @@
    init() {
      this.getList()
    },
    // 上传图片 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
    // 上传前确认格式
    beforeUploadImg(file) {
      const isImg = file.type.indexOf('image/') > -1
      if (!isImg) {
        this.$message.error('必须是选择图片文件')
      }
      return isImg
    },
    // 增加图片
    addUploadImg(file, fileList) {
      this.$refs.uploadFormItem.resetField()
      this.dialogData.uploadImgs = fileList
    },
    // 删除图片
    delUploadImg(file, fileList) {
      this.dialogData.uploadImgs = fileList
    },
    // 执行上传图
    runUploadImg(suc_cb) {
      if (this.checkNeedUpload(this.dialogData.uploadImgs)) {
        this.$refs.refUploadImg.submit()
      } else {
        suc_cb && suc_cb()
      }
    },
    // 上传图
    uploadImg(res) {
      console.log(res)
      const file = res.file
      const formData = new FormData()
      formData.append('file', file)
      console.log(formData)
      this.postFN({
        url: 'admin/image/upload',
        header: { 'Content-Type': 'multipart/form-data' },
        params: formData,
        mockData: {
          code: 100,
          msg: '',
          data: {
            imgUrl: 'xxxx'
          }
        }
      }, (inf) => {
        console.log('上传图片成功')
        // 替换掉未上传的图片
        this.dialogData.uploadImgs[0] = { url: inf.imgUrl, status: 'success' }
        this.dialogData.uploadImgs = JSON.parse(JSON.stringify(this.dialogData.uploadImgs))
        this.$set(this.dialogData, 'imgUrl', inf.imgUrl)
        console.log('上传图片结束')
        // 提交
        this.submit(this.dialogData.type)
      })
    },
    // 上传图片 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
    // 获取列表
    getList() {
@@ -351,7 +281,8 @@
      this.$refs[this.formName].validate((valid) => {
        if (valid) {
          // 上传图片
          this.runUploadImg(() => {
          this.$refs.refUploadImg.runUploadImg((imgUrl) => {
            imgUrl && this.$set(this.dialogData, 'imgUrl', imgUrl)
            this.submit(type)
          })
        }