| | |
| | | <!-- 上传文件 --> |
| | | <template> |
| | | <div class="upload-file"> |
| | | <el-upload |
| | |
| | | <!-- 上传提示 --> |
| | | <div class="el-upload__tip" slot="tip" v-if="showTip"> |
| | | 请上传 |
| | | <template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template> |
| | | <template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template> |
| | | <template v-if="fileSize"> |
| | | 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> |
| | | </template> |
| | | <template v-if="fileType"> |
| | | 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> |
| | | </template> |
| | | 的文件 |
| | | </div> |
| | | </el-upload> |
| | | |
| | | <!-- 文件列表 --> |
| | | <transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul"> |
| | | <li :key="file.url" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList"> |
| | | <el-link :href="`${baseUrl}${file.url}`" :underline="false" target="_blank"> |
| | | <transition-group |
| | | class="upload-file-list el-upload-list el-upload-list--text" |
| | | name="el-fade-in-linear" |
| | | tag="ul" |
| | | > |
| | | <li |
| | | :key="file.url" |
| | | class="el-upload-list__item ele-upload-list__item-content" |
| | | v-for="(file, index) in fileList" |
| | | > |
| | | <el-link |
| | | :href="`${baseUrl}${file.url}`" |
| | | :underline="false" |
| | | target="_blank" |
| | | > |
| | | <span class="el-icon-document"> {{ getFileName(file.name) }} </span> |
| | | </el-link> |
| | | <div class="ele-upload-list__item-content-action"> |
| | | <el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link> |
| | | <el-link :underline="false" @click="handleDelete(index)" type="danger" |
| | | >删除</el-link |
| | | > |
| | | </div> |
| | | </li> |
| | | </transition-group> |
| | |
| | | // 是否显示提示 |
| | | isShowTip: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | default: true, |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | if (val) { |
| | | let temp = 1; |
| | | // 首先将值转为数组 |
| | | const list = Array.isArray(val) ? val : this.value.split(','); |
| | | const list = Array.isArray(val) ? val : this.value.split(","); |
| | | // 然后将数组转为对象数组 |
| | | this.fileList = list.map(item => { |
| | | this.fileList = list.map((item) => { |
| | | if (typeof item === "string") { |
| | | item = { name: item, url: item }; |
| | | } |
| | |
| | | } |
| | | }, |
| | | deep: true, |
| | | immediate: true |
| | | } |
| | | immediate: true, |
| | | }, |
| | | }, |
| | | computed: { |
| | | // 是否显示提示 |
| | |
| | | handleBeforeUpload(file) { |
| | | // 校检文件类型 |
| | | if (this.fileType) { |
| | | const fileName = file.name.split('.'); |
| | | const fileName = file.name.split("."); |
| | | const fileExt = fileName[fileName.length - 1]; |
| | | const isTypeOk = this.fileType.indexOf(fileExt) >= 0; |
| | | if (!isTypeOk) { |
| | | this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`); |
| | | this.$modal.msgError( |
| | | `文件格式不正确, 请上传${this.fileType.join("/")}格式文件!` |
| | | ); |
| | | return false; |
| | | } |
| | | } |
| | |
| | | // 上传失败 |
| | | handleUploadError(err) { |
| | | this.$modal.msgError("上传文件失败,请重试"); |
| | | this.$modal.closeLoading() |
| | | this.$modal.closeLoading(); |
| | | }, |
| | | // 上传成功回调 |
| | | handleUploadSuccess(res, file) { |
| | |
| | | for (let i in list) { |
| | | strs += list[i].url + separator; |
| | | } |
| | | return strs != '' ? strs.substr(0, strs.length - 1) : ''; |
| | | } |
| | | } |
| | | return strs != "" ? strs.substr(0, strs.length - 1) : ""; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |