fix(org): validate compress URL; register org_homepage in hty_resources
Made-with: Cursor
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
<div class="main">
|
<div class="main">
|
||||||
<van-cell-group inset>
|
<van-cell-group inset>
|
||||||
<div class="editor-toolbar">
|
<div class="editor-toolbar">
|
||||||
<span class="toolbar-hint">图片与头像相同,经压缩任务处理</span>
|
<span class="toolbar-hint">图片经服务端压缩后上传,并记入资源库便于排查</span>
|
||||||
<van-uploader
|
<van-uploader
|
||||||
:max-count="1"
|
:max-count="1"
|
||||||
:max-size="orgHomepageImageMaxBytes"
|
:max-size="orgHomepageImageMaxBytes"
|
||||||
@@ -128,6 +128,13 @@ export default defineComponent({
|
|||||||
const urlRaw = await ImageHelper.compress_by_form(file);
|
const urlRaw = await ImageHelper.compress_by_form(file);
|
||||||
if (!urlRaw) return;
|
if (!urlRaw) return;
|
||||||
const url = urlRaw.split("?")[0];
|
const url = urlRaw.split("?")[0];
|
||||||
|
const rid = await ImageHelper.create_resource(url, file.name || "image.jpg", {
|
||||||
|
res_type: "org_homepage",
|
||||||
|
});
|
||||||
|
if (!rid) {
|
||||||
|
showFailToast("资源登记失败,图片可能已上传但未绑定账号");
|
||||||
|
return;
|
||||||
|
}
|
||||||
await insertMarkdownAtCaret(`\n\n`);
|
await insertMarkdownAtCaret(`\n\n`);
|
||||||
showSuccessToast("已插入图片");
|
showSuccessToast("已插入图片");
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
+12
-3
@@ -129,7 +129,12 @@ const ImageHelper = {
|
|||||||
headers: {'Content-Type': 'multipart/form-data'},
|
headers: {'Content-Type': 'multipart/form-data'},
|
||||||
})
|
})
|
||||||
if (r) {
|
if (r) {
|
||||||
return d;
|
const raw = typeof d === 'string' ? d.trim() : '';
|
||||||
|
if (raw && /^https?:\/\//i.test(raw) && !/\s/.test(raw)) {
|
||||||
|
return raw;
|
||||||
|
}
|
||||||
|
showFailToast('图片上传返回异常,请重试');
|
||||||
|
return undefined;
|
||||||
}
|
}
|
||||||
showFailToast(e);
|
showFailToast(e);
|
||||||
},
|
},
|
||||||
@@ -165,10 +170,14 @@ const ImageHelper = {
|
|||||||
image.src = src;
|
image.src = src;
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
create_resource: async (url: string, filename?: string) => {
|
create_resource: async (
|
||||||
|
url: string,
|
||||||
|
filename?: string,
|
||||||
|
extra?: { res_type?: string },
|
||||||
|
) => {
|
||||||
const {r, d, e} = await request({
|
const {r, d, e} = await request({
|
||||||
url: '/api/v1/uc/create_hty_resource', method: 'POST',
|
url: '/api/v1/uc/create_hty_resource', method: 'POST',
|
||||||
data: { filename, url }
|
data: { filename, url, ...extra }
|
||||||
});
|
});
|
||||||
if(r) {
|
if(r) {
|
||||||
return d
|
return d
|
||||||
|
|||||||
Reference in New Issue
Block a user