Commit c776144f1ea7d7b2da0ab908db8407beb5b4b633

Authored by zhangzzzz
1 parent 69aeb7b4

图片组件上传功能优化

src/api/file.js
... ... @@ -55,4 +55,12 @@ export function fileDetail(data) {
55 55 })
56 56 }
57 57  
58   -export default { fileList, fileAdd, fileDel, fileUpdate, fileDetail }
  58 +export function getFielList() {
  59 + return request({
  60 + url: '/file/getFielList',
  61 + method: 'get'
  62 + })
  63 +}
  64 +
  65 +
  66 +export default { fileList, fileAdd, fileDel, fileUpdate, fileDetail, getFielList }
... ...
src/views/bigscreenDesigner/designer/components/customUploadNew.vue
... ... @@ -3,18 +3,16 @@
3 3 <el-input clearable v-model.trim="uploadImgUrl" size="mini" @change="changeInput">
4 4 <template slot="append">
5 5 <i class="iconfont iconfolder-o" @click="dialogVisible = true"></i>
6   - <!-- <input type="file" class="file" ref="files" @change="getImages" /> -->
7 6 </template>
8 7 </el-input>
9 8  
10 9  
11 10 <!-- 弹窗 -->
12 11 <el-dialog title="图库" :visible.sync="dialogVisible">
13   - <el-upload class="upload-demo" :on-change="changeInput">
14   - <el-button size="medium" type="info" icon="el-icon-upload2">点击上传</el-button>
15   - </el-upload>
  12 + <el-button size="medium" type="info" icon="el-icon-upload2" @click="uploadHandler">点击上传</el-button>
  13 + <input type="file" class="file" ref="files" @change="getImages" />
16 14 <div class="image-list">
17   - <el-image class="image" v-for="url in urls" :key="url" :src="url" lazy></el-image>
  15 + <el-image class="image" v-for="item in fileList" :key="item.fileId" :src="item.urlPath" lazy></el-image>
18 16 </div>
19 17 </el-dialog>
20 18  
... ... @@ -26,6 +24,7 @@
26 24 <script>
27 25 import axios from "axios";
28 26 import { getToken } from "@/utils/auth";
  27 +import { getFielList } from "@/api/file"
29 28 export default {
30 29 name: 'custom-upload-new',
31 30 model: {
... ... @@ -41,42 +40,6 @@ export default {
41 40 data() {
42 41 return {
43 42 dialogVisible: false, // 弹窗状态
44   - urls: [
45   - 'https://fuss10.elemecdn.com/0/6f/e35ff375812e6b0020b6b4e8f9583jpeg.jpeg',
46   - 'https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg',
47   - 'https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg',
48   - 'https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg',
49   - 'https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg',
50   - 'https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg',
51   - 'https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg',
52   - 'https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg',
53   - 'https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg',
54   - 'https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg',
55   - 'https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg',
56   - 'https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg',
57   - 'https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg',
58   - 'https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg',
59   - 'https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg',
60   - 'https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg',
61   - 'https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg',
62   - 'https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg',
63   - 'https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg',
64   - 'https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg',
65   - 'https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg',
66   - 'https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg',
67   - 'https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg',
68   - 'https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg',
69   - 'https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg',
70   - 'https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg',
71   - 'https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg',
72   - 'https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg',
73   - 'https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg',
74   - 'https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg',
75   - 'https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg',
76   - 'https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg',
77   - 'https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg'
78   - ],
79   -
80 43 requestUrl: process.env.BASE_API + "/file/upload",
81 44 headers: {
82 45 Authorization: getToken()
... ... @@ -85,64 +48,65 @@ export default {
85 48 uploadImgUrl: ""
86 49 };
87 50 },
88   - created() {
  51 + async created() {
89 52 this.uploadImgUrl = this.value;
  53 + const rs = await getFielList();
  54 + if (rs.code === 200 || rs.code === "200") {
  55 + this.fileList = rs.data;
  56 + }
90 57 },
91 58 methods: {
92   - openDialog() {
93   - console.log(12313123213)
  59 + uploadHandler() {
  60 + this.$refs.files.click();
94 61 },
95   -
96   -
97   -
98 62 getImages(el) {
99   - let file = el.target.files[0];
100   - let type = file.type.split("/")[0];
  63 + const file = el.target.files[0];
  64 + const type = file.type.split("/")[0];
101 65 if (type === "image") {
102 66 this.upload(file);
103 67 } else {
104   - this.$message.warn("只能上传图片格式");
  68 + this.$message.warning("只能上传图片格式")
105 69 }
106 70 },
107   - upload(imgUrl) {
  71 + upload(file) {
108 72 let that = this;
109   - console.log(that.headers);
110 73 let formdata = new FormData();
111   - formdata.append("file", imgUrl);
112   - axios
113   - .post(this.requestUrl, formdata, {
114   - headers: that.headers
115   - })
116   - .then(response => {
117   - let res = response.data;
118   - if (res.code == "200") {
119   - that.uploadImgUrl = res.data.urlPath;
120   - that.$emit("input", that.uploadImgUrl);
121   - that.$emit("change", that.uploadImgUrl);
122   - }
123   - });
  74 + formdata.append("file", file);
  75 + // axios
  76 + // .post(this.requestUrl, formdata, {
  77 + // headers: that.headers
  78 + // })
  79 + // .then(response => {
  80 + // let res = response.data;
  81 + // if (res.code === "200") {
  82 + // that.uploadImgUrl = res.data.urlPath;
  83 + // that.$emit("input", that.uploadImgUrl);
  84 + // that.$emit("change", that.uploadImgUrl);
  85 + // }
  86 + // });
124 87 },
125 88 changeInput(e) {
126   - if (e) {
127   - this.uploadImgUrl = e;
128   - } else {
129   - this.$refs.files.value = "";
130   - this.uploadImgUrl = "";
131   - }
132   - this.$emit("input", this.uploadImgUrl);
133   - this.$emit("change", this.uploadImgUrl);
  89 + // if (e) {
  90 + // this.uploadImgUrl = e;
  91 + // } else {
  92 + // this.$refs.files.value = "";
  93 + // this.uploadImgUrl = "";
  94 + // }
  95 + // this.$emit("input", this.uploadImgUrl);
  96 + // this.$emit("change", this.uploadImgUrl);
134 97 }
135 98 }
136 99 };
137 100 </script>
138 101 <style lang="scss" scoped>
139 102 .file {
140   - position: absolute;
141   - width: 100%;
142   - padding: 100%;
143   - right: 0;
144   - top: 0;
145   - opacity: 0;
  103 + // position: absolute;
  104 + // width: 100%;
  105 + // padding: 100%;
  106 + // right: 0;
  107 + // top: 0;
  108 + // opacity: 0;
  109 + display: none;
146 110 }
147 111  
148 112 /deep/.el-input-group__append,
... ... @@ -188,6 +152,14 @@ export default {
188 152  
189 153 .image {
190 154 width: 20%;
  155 + padding: 0 0.5px 0 0.5px;
  156 + min-height: 90px;
  157 +
  158 + /deep/ .el-image__error {
  159 + width: 100%;
  160 + height: 100%;
  161 + min-height: 90px;
  162 + }
191 163 }
192 164 }
193 165 </style>
... ...