update 优化 文件与图片上传组件 使用id存储回显

2.X
疯狂的狮子li 3 years ago
parent 48dcc2e1eb
commit 8033fff523

@ -32,6 +32,7 @@ import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -58,6 +59,19 @@ public class SysOssController extends BaseController {
return iSysOssService.queryPageList(bo, pageQuery); return iSysOssService.queryPageList(bo, pageQuery);
} }
/**
* OSSid
*/
@ApiOperation("查询OSS对象基于ID")
@SaCheckPermission("system:oss:list")
@GetMapping("/listByIds/{ossIds}")
public R<List<SysOssVo>> listByIds(@ApiParam("OSS对象ID串")
@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ossIds) {
List<SysOssVo> list = iSysOssService.listByIds(Arrays.asList(ossIds));
return R.ok(list);
}
/** /**
* OSS * OSS
*/ */

@ -8,6 +8,7 @@ import com.ruoyi.resource.domain.vo.SysOssVo;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.Collection; import java.util.Collection;
import java.util.List;
/** /**
* *
@ -18,6 +19,8 @@ public interface ISysOssService {
TableDataInfo<SysOssVo> queryPageList(SysOssBo sysOss, PageQuery pageQuery); TableDataInfo<SysOssVo> queryPageList(SysOssBo sysOss, PageQuery pageQuery);
List<SysOssVo> listByIds(Collection<Long> ossIds);
SysOss getById(Long ossId); SysOss getById(Long ossId);
SysOss upload(MultipartFile file); SysOss upload(MultipartFile file);

@ -42,6 +42,11 @@ public class SysOssServiceImpl implements ISysOssService {
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
@Override
public List<SysOssVo> listByIds(Collection<Long> ossIds) {
return baseMapper.selectVoById(ossIds);
}
private LambdaQueryWrapper<SysOss> buildQueryWrapper(SysOssBo bo) { private LambdaQueryWrapper<SysOss> buildQueryWrapper(SysOssBo bo) {
Map<String, Object> params = bo.getParams(); Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOss> lqw = Wrappers.lambdaQuery(); LambdaQueryWrapper<SysOss> lqw = Wrappers.lambdaQuery();

@ -9,6 +9,14 @@ export function listOss(query) {
}) })
} }
// 查询OSS对象基于id串
export function listByIds(ossId) {
return request({
url: '/system/oss/listByIds/' + ossId,
method: 'get'
})
}
// 删除OSS对象存储 // 删除OSS对象存储
export function delOss(ossId) { export function delOss(ossId) {
return request({ return request({

@ -82,19 +82,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 => {
// url id item = { name: item.name, url: item.url, ossId: item.ossId };
if (typeof item === "string") {
item = { name: item, url: item };
} else {
item = { name: item.name, url: item.url, ossId: item.ossId };
}
item.uid = item.uid || new Date().getTime() + temp++; item.uid = item.uid || new Date().getTime() + temp++;
return item; return item;
}); });
@ -161,7 +166,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 {
@ -174,7 +179,7 @@ export default {
let ossId = this.fileList[index].ossId; let ossId = this.fileList[index].ossId;
delOss(ossId); delOss(ossId);
this.fileList.splice(index, 1); this.fileList.splice(index, 1);
this.$emit("input", this.fileList); this.$emit("input", this.listToString(this.fileList));
}, },
// //
getFileName(name) { getFileName(name) {
@ -184,6 +189,15 @@ export default {
return name; 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> </script>

@ -86,19 +86,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 // name使ossId
if (typeof item === "string") { item = { name: item.ossId, url: item.url, ossId: item.ossId };
item = { name: item, url: item };
} else {
// name使ossId
item = { name: item.ossId, url: item.url, ossId: item.ossId };
}
return item; return item;
}); });
} else { } else {
@ -124,7 +126,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));
} }
}, },
// //
@ -135,7 +137,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 {
@ -188,6 +190,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>

Loading…
Cancel
Save