|
@@ -44,7 +44,7 @@
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import { getToken } from "@/utils/auth";
|
|
import { getToken } from "@/utils/auth";
|
|
-import { delOss } from "@/api/system/oss";
|
|
|
|
|
|
+import { listByIds, delOss } from "@/api/system/oss";
|
|
|
|
|
|
export default {
|
|
export default {
|
|
props: {
|
|
props: {
|
|
@@ -87,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 => {
|
|
- // 字符串回显处理 如果此处存的是url可直接回显 如果存的是id需要调用接口查出来
|
|
|
|
- if (typeof item === "string") {
|
|
|
|
- item = { name: item, url: item };
|
|
|
|
- } else {
|
|
|
|
- // 此处name使用ossId 防止删除出现重名
|
|
|
|
- item = { name: item.ossId, url: item.url, ossId: item.ossId };
|
|
|
|
- }
|
|
|
|
|
|
+ // 此处name使用ossId 防止删除出现重名
|
|
|
|
+ item = { name: item.ossId, url: item.url, ossId: item.ossId };
|
|
return item;
|
|
return item;
|
|
});
|
|
});
|
|
} else {
|
|
} else {
|
|
@@ -125,7 +127,7 @@ export default {
|
|
let ossId = this.fileList[findex].ossId;
|
|
let ossId = this.fileList[findex].ossId;
|
|
delOss(ossId);
|
|
delOss(ossId);
|
|
this.fileList.splice(findex, 1);
|
|
this.fileList.splice(findex, 1);
|
|
- this.$emit("input", this.fileList);
|
|
|
|
|
|
+ this.$emit("input", this.listToString(this.fileList));
|
|
}
|
|
}
|
|
},
|
|
},
|
|
// 上传成功回调
|
|
// 上传成功回调
|
|
@@ -136,7 +138,7 @@ export default {
|
|
this.fileList = this.fileList.concat(this.uploadList);
|
|
this.fileList = this.fileList.concat(this.uploadList);
|
|
this.uploadList = [];
|
|
this.uploadList = [];
|
|
this.number = 0;
|
|
this.number = 0;
|
|
- this.$emit("input", this.fileList);
|
|
|
|
|
|
+ this.$emit("input", this.listToString(this.fileList));
|
|
this.$modal.closeLoading();
|
|
this.$modal.closeLoading();
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
@@ -189,6 +191,15 @@ export default {
|
|
this.dialogImageUrl = file.url;
|
|
this.dialogImageUrl = file.url;
|
|
this.dialogVisible = true;
|
|
this.dialogVisible = true;
|
|
},
|
|
},
|
|
|
|
+ // 对象转成指定字符串分隔
|
|
|
|
+ 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>
|
|
</script>
|