index.vue 1.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
<template>
  <el-drawer title="媒体库" :visible.sync="drawer" :with-header="false">
    <div style="display:flex;justify-content:space-around;flex-wrap:wrap;padding-top:40px">
      <el-image
        class="header-img-box-list"
        :src="item.url"
        v-for="(item,key) in picList"
        :key="key"
        @click.native="chooseImg(item.url,target,targetKey)"
      >
        <div slot="error" class="header-img-box-list">
          <i class="el-icon-picture-outline"></i>
        </div>
      </el-image>
    </div>
  </el-drawer>
</template>

<script>
import { getFileList } from "@/api/fileUploadAndDownload";
export default {
  props: {
    target: [Object],
    targetKey: [String]
  },
  data() {
    return {
      drawer: false,
      picList: []
    };
  },
  methods: {
    chooseImg(url, target, targetKey) {
      if(target&&targetKey){
        target[targetKey] = url;
      }
      this.$emit("enter-img", url);
      this.drawer = false;
    },
    async open() {
      const res = await getFileList({ page: 1, pageSize: 9999 });
      this.picList = res.data.list;
      this.drawer = true;
    }
  }
};
</script>

<style lang="scss">
.header-img-box-list {
  width: 180px;
  height: 180px;
  border: 1px dashed #ccc;
  border-radius: 20px;
  text-align: center;
  line-height: 180px;
  cursor: pointer;
}
</style>