Commit eb96e496 authored by tanyang's avatar tanyang

更新文件上传接口

parent 49a33724
...@@ -60,7 +60,7 @@ export default { ...@@ -60,7 +60,7 @@ export default {
}, },
data() { data() {
return { return {
uploadUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址 uploadUrl: process.env.VUE_APP_BASE_API + "/system/oss/upload", // 上传的图片服务器地址
headers: { headers: {
Authorization: "Bearer " + getToken() Authorization: "Bearer " + getToken()
}, },
...@@ -176,11 +176,11 @@ export default { ...@@ -176,11 +176,11 @@ export default {
// 获取光标所在位置 // 获取光标所在位置
let length = quill.getSelection().index; let length = quill.getSelection().index;
// 插入图片 res.url为服务器返回的图片地址 // 插入图片 res.url为服务器返回的图片地址
quill.insertEmbed(length, "image", process.env.VUE_APP_BASE_API + res.fileName); quill.insertEmbed(length, "image", res.data.url);
// 调整光标到最后 // 调整光标到最后
quill.setSelection(length + 1); quill.setSelection(length + 1);
} else { } else {
this.$message.error("图片插入失败"); this.$message.error(res.msg);
} }
}, },
handleUploadError() { handleUploadError() {
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
<!-- 文件列表 --> <!-- 文件列表 -->
<transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul"> <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"> <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"> <el-link :href="`${file.url}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ getFileName(file.name) }} </span> <span class="el-icon-document"> {{ getFileName(file.name) }} </span>
</el-link> </el-link>
<div class="ele-upload-list__item-content-action"> <div class="ele-upload-list__item-content-action">
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
<script> <script>
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { listByIds, delOss } from "@/api/system/oss";
export default { export default {
name: "FileUpload", name: "FileUpload",
...@@ -73,7 +74,7 @@ export default { ...@@ -73,7 +74,7 @@ export default {
number: 0, number: 0,
uploadList: [], uploadList: [],
baseUrl: process.env.VUE_APP_BASE_API, baseUrl: process.env.VUE_APP_BASE_API,
uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传文件服务器地址 uploadFileUrl: process.env.VUE_APP_BASE_API + "/system/oss/upload", // 上传文件服务器地址
headers: { headers: {
Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken(),
}, },
...@@ -82,16 +83,24 @@ export default { ...@@ -82,16 +83,24 @@ export default {
}, },
watch: { watch: {
value: { value: {
handler(val) { async handler(val) {
if (val) { if (val) {
let temp = 1; let temp = 1;
// 首先将值转为数组 // 首先将值转为数组
const list = Array.isArray(val) ? val : this.value.split(','); let list;
if (Array.isArray(val)) {
list = val;
} else {
await listByIds(val).then(res => {
list = res.data.map(oss => {
oss = { name: oss.originalName, url: oss.url, ossId: oss.ossId };
return oss;
});
})
}
// 然后将数组转为对象数组 // 然后将数组转为对象数组
this.fileList = list.map(item => { this.fileList = list.map(item => {
if (typeof item === "string") { item = { name: item.name, url: item.url, ossId: item.ossId };
item = { name: item, url: item };
}
item.uid = item.uid || new Date().getTime() + temp++; item.uid = item.uid || new Date().getTime() + temp++;
return item; return item;
}); });
...@@ -142,12 +151,12 @@ export default { ...@@ -142,12 +151,12 @@ export default {
// 上传失败 // 上传失败
handleUploadError(err) { handleUploadError(err) {
this.$modal.msgError("上传文件失败,请重试"); this.$modal.msgError("上传文件失败,请重试");
this.$modal.closeLoading() this.$modal.closeLoading();
}, },
// 上传成功回调 // 上传成功回调
handleUploadSuccess(res, file) { handleUploadSuccess(res, file) {
if (res.code === 200) { if (res.code === 200) {
this.uploadList.push({ name: res.fileName, url: res.fileName }); this.uploadList.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId });
this.uploadedSuccessfully(); this.uploadedSuccessfully();
} else { } else {
this.number--; this.number--;
...@@ -159,6 +168,8 @@ export default { ...@@ -159,6 +168,8 @@ export default {
}, },
// 删除文件 // 删除文件
handleDelete(index) { handleDelete(index) {
let ossId = this.fileList[index].ossId;
delOss(ossId);
this.fileList.splice(index, 1); this.fileList.splice(index, 1);
this.$emit("input", this.listToString(this.fileList)); this.$emit("input", this.listToString(this.fileList));
}, },
...@@ -174,10 +185,11 @@ export default { ...@@ -174,10 +185,11 @@ export default {
}, },
// 获取文件名称 // 获取文件名称
getFileName(name) { getFileName(name) {
// 如果是url那么取最后的名字 如果不是直接返回
if (name.lastIndexOf("/") > -1) { if (name.lastIndexOf("/") > -1) {
return name.slice(name.lastIndexOf("/") + 1); return name.slice(name.lastIndexOf("/") + 1);
} else { } else {
return ""; return name;
} }
}, },
// 对象转成指定字符串分隔 // 对象转成指定字符串分隔
...@@ -185,11 +197,11 @@ export default { ...@@ -185,11 +197,11 @@ export default {
let strs = ""; let strs = "";
separator = separator || ","; separator = separator || ",";
for (let i in list) { for (let i in list) {
strs += list[i].url + separator; strs += list[i].ossId + separator;
} }
return strs != '' ? strs.substr(0, strs.length - 1) : ''; return strs != "" ? strs.substr(0, strs.length - 1) : "";
} },
} },
}; };
</script> </script>
......
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
</template> </template>
<script> <script>
import { isExternal } from "@/utils/validate";
export default { export default {
name: "ImagePreview", name: "ImagePreview",
...@@ -36,10 +35,7 @@ export default { ...@@ -36,10 +35,7 @@ export default {
return; return;
} }
let real_src = this.src.split(",")[0]; let real_src = this.src.split(",")[0];
if (isExternal(real_src)) { return real_src;
return real_src;
}
return process.env.VUE_APP_BASE_API + real_src;
}, },
realSrcList() { realSrcList() {
if (!this.src) { if (!this.src) {
...@@ -48,10 +44,7 @@ export default { ...@@ -48,10 +44,7 @@ export default {
let real_src_list = this.src.split(","); let real_src_list = this.src.split(",");
let srcList = []; let srcList = [];
real_src_list.forEach(item => { real_src_list.forEach(item => {
if (isExternal(item)) { return srcList.push(item);
return srcList.push(item);
}
return srcList.push(process.env.VUE_APP_BASE_API + item);
}); });
return srcList; return srcList;
}, },
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
> >
<i class="el-icon-plus"></i> <i class="el-icon-plus"></i>
</el-upload> </el-upload>
<!-- 上传提示 --> <!-- 上传提示 -->
<div class="el-upload__tip" slot="tip" v-if="showTip"> <div class="el-upload__tip" slot="tip" v-if="showTip">
请上传 请上传
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
<script> <script>
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { listByIds, delOss } from "@/api/system/oss";
export default { export default {
props: { props: {
...@@ -77,7 +78,7 @@ export default { ...@@ -77,7 +78,7 @@ export default {
dialogVisible: false, dialogVisible: false,
hideUpload: false, hideUpload: false,
baseUrl: process.env.VUE_APP_BASE_API, baseUrl: process.env.VUE_APP_BASE_API,
uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址 uploadImgUrl: process.env.VUE_APP_BASE_API + "/system/oss/upload", // 上传的图片服务器地址
headers: { headers: {
Authorization: "Bearer " + getToken(), Authorization: "Bearer " + getToken(),
}, },
...@@ -86,19 +87,21 @@ export default { ...@@ -86,19 +87,21 @@ export default {
}, },
watch: { watch: {
value: { value: {
handler(val) { async handler(val) {
if (val) { if (val) {
// 首先将值转为数组 // 首先将值转为数组
const list = Array.isArray(val) ? val : this.value.split(','); let list;
if (Array.isArray(val)) {
list = val;
} else {
await listByIds(val).then(res => {
list = res.data;
})
}
// 然后将数组转为对象数组 // 然后将数组转为对象数组
this.fileList = list.map(item => { this.fileList = list.map(item => {
if (typeof item === "string") { // 此处name使用ossId 防止删除出现重名
if (item.indexOf(this.baseUrl) === -1) { item = { name: item.ossId, url: item.url, ossId: item.ossId };
item = { name: this.baseUrl + item, url: this.baseUrl + item };
} else {
item = { name: item, url: item };
}
}
return item; return item;
}); });
} else { } else {
...@@ -125,7 +128,7 @@ export default { ...@@ -125,7 +128,7 @@ export default {
if (file.name.lastIndexOf(".") > -1) { if (file.name.lastIndexOf(".") > -1) {
fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1); fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);
} }
isImg = this.fileType.some(type => { isImg = this.fileType.some((type) => {
if (file.type.indexOf(type) > -1) return true; if (file.type.indexOf(type) > -1) return true;
if (fileExtension && fileExtension.indexOf(type) > -1) return true; if (fileExtension && fileExtension.indexOf(type) > -1) return true;
return false; return false;
...@@ -155,7 +158,7 @@ export default { ...@@ -155,7 +158,7 @@ export default {
// 上传成功回调 // 上传成功回调
handleUploadSuccess(res, file) { handleUploadSuccess(res, file) {
if (res.code === 200) { if (res.code === 200) {
this.uploadList.push({ name: res.fileName, url: res.fileName }); this.uploadList.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId });
this.uploadedSuccessfully(); this.uploadedSuccessfully();
} else { } else {
this.number--; this.number--;
...@@ -169,12 +172,14 @@ export default { ...@@ -169,12 +172,14 @@ export default {
handleDelete(file) { handleDelete(file) {
const findex = this.fileList.map(f => f.name).indexOf(file.name); const findex = this.fileList.map(f => f.name).indexOf(file.name);
if(findex > -1) { if(findex > -1) {
let ossId = this.fileList[findex].ossId;
delOss(ossId);
this.fileList.splice(findex, 1); this.fileList.splice(findex, 1);
this.$emit("input", this.listToString(this.fileList)); this.$emit("input", this.listToString(this.fileList));
} }
}, },
// 上传失败 // 上传失败
handleUploadError() { handleUploadError(res) {
this.$modal.msgError("上传图片失败,请重试"); this.$modal.msgError("上传图片失败,请重试");
this.$modal.closeLoading(); this.$modal.closeLoading();
}, },
...@@ -198,11 +203,11 @@ export default { ...@@ -198,11 +203,11 @@ export default {
let strs = ""; let strs = "";
separator = separator || ","; separator = separator || ",";
for (let i in list) { for (let i in list) {
if (list[i].url) { if (list[i].ossId) {
strs += list[i].url.replace(this.baseUrl, "") + separator; strs += list[i].ossId + separator;
} }
} }
return strs != '' ? strs.substr(0, strs.length - 1) : ''; return strs != "" ? strs.substr(0, strs.length - 1) : "";
} }
} }
}; };
...@@ -219,8 +224,8 @@ export default { ...@@ -219,8 +224,8 @@ export default {
} }
::v-deep .el-list-enter, .el-list-leave-active { ::v-deep .el-list-enter, .el-list-leave-active {
opacity: 0; opacity: 0;
transform: translateY(0); transform: translateY(0);
} }
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment