|
|
|
@ -21,13 +21,13 @@ export const simple_encrypt = text => {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 获取图片列表
|
|
|
|
|
const getImageList = async (key, overlist = false) => {
|
|
|
|
|
const getImageList = async (key, overlist = false, ignore_case = true) => {
|
|
|
|
|
try {
|
|
|
|
|
let url;
|
|
|
|
|
if (overlist) {
|
|
|
|
|
url = `${HT3_HOST}/oss/list_over_unique_key?key=${key}`;
|
|
|
|
|
url = `${HT3_HOST}/oss/list_over_unique_key?key=${key}&ignore_case=${ignore_case}`;
|
|
|
|
|
} else {
|
|
|
|
|
url = `${HT3_HOST}/oss/list_unique_key?key=${key}`;
|
|
|
|
|
url = `${HT3_HOST}/oss/list_unique_key?key=${key}&ignore_case=${ignore_case}`;
|
|
|
|
|
}
|
|
|
|
|
const { errcode, result } = await fetchJSON(url);
|
|
|
|
|
if (errcode === 0) {
|
|
|
|
@ -53,9 +53,9 @@ const getImageList = async (key, overlist = false) => {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 删除图片
|
|
|
|
|
const deleteImage = async key => {
|
|
|
|
|
const deleteImage = async (key, ignore_case =true) => {
|
|
|
|
|
try {
|
|
|
|
|
const { errcode } = await fetchJSON(`${HT3_HOST}/oss/delete_unique_key?key=${key}`, {
|
|
|
|
|
const { errcode } = await fetchJSON(`${HT3_HOST}/oss/delete_unique_key?key=${key}&ignore_case=${ignore_case}`, {
|
|
|
|
|
method: "GET",
|
|
|
|
|
});
|
|
|
|
|
return errcode === 0;
|
|
|
|
@ -66,9 +66,9 @@ const deleteImage = async key => {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// 获取上传签名
|
|
|
|
|
const getSignature = async (file, key, onSuccess, onError) => {
|
|
|
|
|
const getSignature = async (file, key, onSuccess, onError, ignore_case = true) => {
|
|
|
|
|
try {
|
|
|
|
|
const { errcode, result } = await fetchJSON(`${HT3_HOST}/oss/signature_unique_key?key=${key}&filename=${file.name}`);
|
|
|
|
|
const { errcode, result } = await fetchJSON(`${HT3_HOST}/oss/signature_unique_key?key=${key}&filename=${file.name}&ignore_case=${ignore_case}`);
|
|
|
|
|
if (errcode === 0) {
|
|
|
|
|
const { method, host, signed_headers } = result;
|
|
|
|
|
const response = await fetch(host, {
|
|
|
|
@ -94,12 +94,13 @@ export const ImageUploader = props => {
|
|
|
|
|
const [previewOpen, setPreviewOpen] = useState(false);
|
|
|
|
|
const [previewImage, setPreviewImage] = useState("");
|
|
|
|
|
const key = simple_encrypt(props.osskey);
|
|
|
|
|
const ignore_case = props.ignore_case || true;
|
|
|
|
|
|
|
|
|
|
// 组件挂载时获取图片列表
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
const loadImages = async () => {
|
|
|
|
|
setIsLoading(true);
|
|
|
|
|
const images = await getImageList(key);
|
|
|
|
|
const images = await getImageList(key, false, ignore_case);
|
|
|
|
|
setFileList(images);
|
|
|
|
|
if (props.onChange) {
|
|
|
|
|
//作用是回调函数,给外面的组件传递数据
|
|
|
|
@ -115,7 +116,7 @@ export const ImageUploader = props => {
|
|
|
|
|
|
|
|
|
|
// 处理删除操作
|
|
|
|
|
const handleDelete = async file => {
|
|
|
|
|
const success = await deleteImage(file.encrypt_key);
|
|
|
|
|
const success = await deleteImage(file.encrypt_key, ignore_case);
|
|
|
|
|
if (success) {
|
|
|
|
|
const newImages = fileList.filter(item => item.encrypt_key !== file.encrypt_key);
|
|
|
|
|
if (props.onChange) {
|
|
|
|
@ -138,7 +139,7 @@ export const ImageUploader = props => {
|
|
|
|
|
file,
|
|
|
|
|
key,
|
|
|
|
|
(response, file) => {
|
|
|
|
|
getImageList(key).then(newImages => {
|
|
|
|
|
getImageList(key, false, ignore_case).then(newImages => {
|
|
|
|
|
if (props.onChange) {
|
|
|
|
|
props.onChange(newImages);
|
|
|
|
|
}
|
|
|
|
@ -158,7 +159,8 @@ export const ImageUploader = props => {
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
onError
|
|
|
|
|
onError,
|
|
|
|
|
ignore_case
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@ -228,11 +230,12 @@ export const ImageViewer = props => {
|
|
|
|
|
const [fileList, setFileList] = useState([]);
|
|
|
|
|
const key = props.osskey;
|
|
|
|
|
const overlist = props.overlist || false;
|
|
|
|
|
const ignore_case = props.ignore_case || true;
|
|
|
|
|
|
|
|
|
|
// 组件挂载时获取图片列表
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
const loadImages = async () => {
|
|
|
|
|
const images = await getImageList(key, overlist);
|
|
|
|
|
const images = await getImageList(key, overlist,ignore_case);
|
|
|
|
|
|
|
|
|
|
setFileList(images);
|
|
|
|
|
if (props.onChange) {
|
|
|
|
|