vue图片上传编辑

news/2024/12/3 0:47:55/

list.vue

    <el-table>

      <el-table-column label="图片">

        <template slot-scope="{ row }">

          <div v-if="row.pics">

            <img :src="JSON.parse(row.pics).url" style="width: 100px; height: 100px">

          </div>

          <div v-else>暂无</div>

        </template>

      </el-table-column>

    </el-table>

edit.vue

<el-form>

      <el-form-item label="图片" prop="fileList">

        <div style="width: 30%">

          <el-upload

            class="upload-demo"

            action="/file/upload"

            :on-success="handleSuccess"

            :on-preview="handlePreview"

            :on-remove="handleRemove"

            :before-remove="beforeRemove"

            accept=".jpg,.jpeg,.png,.JPG,.JPEG"

            multiple

            :limit="1"

            :on-exceed="handleExceed"

            :file-list="fileList"

            list-type="picture"

          >

            <el-button size="small" type="primary">点击上传</el-button>

          </el-upload>

        </div>

      </el-form-item>

    </el-form>

<script>

import { villageTownInfoupdate, villageTownInfoget } from '@/api/introduce'

export default {

  data() {

    var fileList = (rule, value, callback) => {

      if (this.fileList.length === 0) {

        callback(new Error('请选择图片上传'))

      } else {

        callback()

      }

    }

    return {

      fileList: [],

      form: {

        id: '',

        townName: '',

        pics: '',

        introduce: ''

      },

      rules: {

        fileList: [{ required: true, validator: fileList }]

      }

    }

  },

  created() {

    villageTownInfoget({

      id: this.$route.query.id

    }).then((response) => {

      if (response.data.pics !== null) {

        this.fileList.push(JSON.parse(response.data.pics))

      }

      this.form.id = this.$route.query.id

      this.form.townName = response.data.townName

      this.form.introduce = response.data.introduce

      // this.form.pics = response.data.pics

      // this.fileList = JSON.parse(this.form.pics)

      // this.image = this.fileList[0].url

    })

  },

  methods: {

    handleSuccess(response, file, fileList) {

      if (response.code === 200) {

        this.fileList.push({

          name: '图片',

          url: response.data

        })

        this.$message({

          message: '上传成功',

          type: 'success'

        })

      } else {

        this.$message.error(response.msg)

        fileList.splice(fileList.length - 1, 1)

      }

    },

    handlePreview(file) {

      console.log(file)

    },

    handleRemove(file, fileList) {

      console.log(file)

      if (this.fileList.length > 0) {

        for (var i = 0; i < this.fileList.length; i++) {

          if (file.url === this.fileList[i].url) {

            this.fileList.splice(i, 1)

          }

        }

        console.log(this.fileList)

      }

    },

    beforeRemove(file, fileList) {

      console.log(this.fileList)

      return this.$confirm('确定移除文件' + file.name + '?')

    },

    handleExceed(files, fileList) {},

    submitForm(formName) {

      this.$refs[formName].validate((valid) => {

        if (valid) {

          // this.form.pics = this.fileList[0]

          console.log(this.fileList)

          villageTownInfoupdate({

            id: this.form.id,

            townName: this.form.townName,

            pics: JSON.stringify(this.fileList[0]),

            introduce: this.form.introduce

          }).then((response) => {

            // if (response.data.pics !== null) {

            //   this.fileList.push(response.data.pics)

            // }

            if (response.status) {

              this.$message({

                message: '修改成功',

                type: 'success'

              })

              this.goto('/introduce/list')

            } else {

              this.$message.error(response.msg)

            }

          })

        } else {

          return false

        }

      })

    },

    goto(val) {

      this.$router.push({

        path: val

      })

    }

  }

}

</script>

api.js

import { dataToFormData } from '@/utils'

export function villageTownInfoupdate(data) {

  return request({

    url: '/villageTownInfo/update',

    method: 'post',

    data: dataToFormData(data)

  })

}


http://www.ppmy.cn/news/917508.html

相关文章

这款视频录制剪辑软件千万别错过!

案例&#xff1a;有没有录制完成之后&#xff0c;可以直接剪辑视频的软件&#xff1f; 【我的工作经常需要对电脑上的内容进行录制、剪辑。我每次都需要使用录屏工具录制完成后&#xff0c;再使用视频剪辑工具进行剪辑&#xff0c;十分麻烦。想问一下有没有软件既能录屏又能剪…

K11734 完美照片

K11734 完美照片 题目描述 科丁博士为了更好宣传科丁星系&#xff0c;想拍一张科丁战士的宣传照片。但是科丁博士想拍一张“完美的”照片&#xff0c;“完美的”是指是照片中的女战士和男战士的数量相等。他让N(1≤N≤50000)个科丁战士占成一条直线&#xff0c;每个战士都有各自…

视频编辑软件-剪辑制作后期配音字幕合并剪切图片电子相册Mac手机

介绍&#xff1a; 某宝花钱买的&#xff0c;做剪接视频必备神器&#xff0c;无需激活&#xff0c;安装即可使用。附win&#xff0c;mac&#xff0c;安卓版 网盘下载地址&#xff1a; http://kekewangLuo.net/BaKMW3tHpMS0 图片&#xff1a;

代码随想录第51天| 309.最佳买卖股票时机含冷冻期 , 714.买卖股票的最佳时机含手续费

LeetCode309.最佳买卖股票时机含冷冻期 题目链接&#xff1a;309. 最佳买卖股票时机含冷冻期 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; class Solution { public:int maxProfit(vector<int>& prices) {int n prices.size();if(n 0) return 0;…

会声会影最新网盘资源搜索下载如何使用转场功能制作宠物电子相册

使用会声会影的转场功能制作宠物电子相册 会声会影有很多强大的功能&#xff0c;今天跟着小编一起来通过一个简单的案例&#xff0c;使用会声会影的转场功能制作一个宠物电子相册。掌握技能后可以制作各种想要制作的相册哦。 第一步&#xff1a;准备好所有剪辑所需要的素材 下…

4K视频剪辑、特效合成、调色完美硬件配置方案2018

主要内容4K视频数据量比高清多出至少4倍以上的&#xff0c;其存储系统、后期制作带来了巨大压力&#xff0c;本文对4K影视后期创作各个环节计算特点进行了分析&#xff0c;给出4K视频剪辑、特效合成、调色用途的先进、领先的硬件配置解决方案。 &#xff08;1&#xff09;4K视…

Pr 复古胶片老电影回忆效果

哈喽&#xff0c;各位小伙伴&#xff01;今天我们来学习一下如何制作复古胶片老电影回忆效果&#xff1f; 新建序列 新建一个1920*1080的序列&#xff0c;将视频拖入序列中 黑白单色 效果—颜色校正&#xff0c;拖拽至视频轨道&#xff0c;视频立马就会变成黑白&#xff0…

(景德镇)麻将计分规则

[游戏声明]景德镇麻将 [操作选项]&#xff1a;吃碰杠胡 [吃牌] 副牌&#xff1a;同花顺[3] 只吃上家 注&#xff1a;>同花顺[万条筒]>字循环[东南西北][中发白] [碰牌] 副牌&#xff1a;同三张[3] [杠牌] 副牌&#xff1a;同四张[4][胡牌规则] 平胡&#xff08;四副一对能…