Commit c776144f1ea7d7b2da0ab908db8407beb5b4b633
1 parent
69aeb7b4
图片组件上传功能优化
Showing
2 changed files
with
60 additions
and
80 deletions
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> | ... | ... |