|
@@ -41,7 +41,7 @@
|
|
|
|
|
|
<script>
|
|
|
import { getToken } from "@/utils/auth";
|
|
|
-import { delOss } from "@/api/system/oss";
|
|
|
+import { listByIds, delOss } from "@/api/system/oss";
|
|
|
|
|
|
export default {
|
|
|
name: "FileUpload",
|
|
@@ -83,19 +83,24 @@ export default {
|
|
|
},
|
|
|
watch: {
|
|
|
value: {
|
|
|
- handler(val) {
|
|
|
+ async handler(val) {
|
|
|
if (val) {
|
|
|
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 => {
|
|
|
- // 字符串回显处理 如果此处存的是url可直接回显 如果存的是id需要调用接口查出来
|
|
|
- if (typeof item === "string") {
|
|
|
- item = { name: item, url: item };
|
|
|
- } else {
|
|
|
- item = { name: item.name, url: item.url, ossId: item.ossId };
|
|
|
- }
|
|
|
+ item = { name: item.name, url: item.url, ossId: item.ossId };
|
|
|
item.uid = item.uid || new Date().getTime() + temp++;
|
|
|
return item;
|
|
|
});
|
|
@@ -162,7 +167,7 @@ export default {
|
|
|
this.fileList = this.fileList.concat(this.uploadList);
|
|
|
this.uploadList = [];
|
|
|
this.number = 0;
|
|
|
- this.$emit("input", this.fileList);
|
|
|
+ this.$emit("input", this.listToString(this.fileList));
|
|
|
this.$modal.closeLoading();
|
|
|
}
|
|
|
} else {
|
|
@@ -175,7 +180,7 @@ export default {
|
|
|
let ossId = this.fileList[index].ossId;
|
|
|
delOss(ossId);
|
|
|
this.fileList.splice(index, 1);
|
|
|
- this.$emit("input", this.fileList);
|
|
|
+ this.$emit("input", this.listToString(this.fileList));
|
|
|
},
|
|
|
// 获取文件名称
|
|
|
getFileName(name) {
|
|
@@ -186,6 +191,15 @@ export default {
|
|
|
return name;
|
|
|
}
|
|
|
},
|
|
|
+ // 对象转成指定字符串分隔
|
|
|
+ listToString(list, separator) {
|
|
|
+ let strs = "";
|
|
|
+ separator = separator || ",";
|
|
|
+ for (let i in list) {
|
|
|
+ strs += list[i].ossId + separator;
|
|
|
+ }
|
|
|
+ return strs != "" ? strs.substr(0, strs.length - 1) : "";
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|