Skip to content
项目
群组
代码片段
帮助
正在加载...
登录/注册
切换导航
广
广东建设用地-前端
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
广东建设用地
广东建设用地-前端
Commits
68597be4
提交
68597be4
authored
5月 11, 2026
作者:
jinrb
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
资料填报页面-边界图片增加下载功能
上级
55fe34a2
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
38 行增加
和
16 行删除
+38
-16
JImageUpload.vue
src/components/Form/src/jeecg/components/JImageUpload.vue
+38
-16
没有找到文件。
src/components/Form/src/jeecg/components/JImageUpload.vue
浏览文件 @
68597be4
...
...
@@ -13,9 +13,9 @@
@change="handleChange"
@preview="handlePreview"
@download="handleDownload"
:showUploadList="
true
"
:showUploadList="
uploadListShowConfig
"
>
<template
#
downloadIcon
>
download
</
template
>
<template
#
downloadIcon
><DownloadOutlined
/>
</
template
>
<div
v-if=
"uploadVisible && buttonVisible"
>
<div
v-if=
"listType == 'picture-card'"
>
<LoadingOutlined
v-if=
"loading"
/>
...
...
@@ -35,19 +35,19 @@
</template>
<
script
lang=
"ts"
>
import
{
defineComponent
,
PropType
,
ref
,
reactive
,
watchEffect
,
computed
,
unref
,
watch
,
onMounted
}
from
'vue'
;
import
{
LoadingOutlined
,
UploadOutlined
}
from
'@ant-design/icons-vue'
;
import
{
LoadingOutlined
,
UploadOutlined
,
DownloadOutlined
}
from
'@ant-design/icons-vue'
;
import
{
useRuleFormItem
}
from
'/@/hooks/component/useFormItem'
;
import
{
propTypes
}
from
'/@/utils/propTypes'
;
import
{
useAttrs
}
from
'/@/hooks/core/useAttrs'
;
import
{
useMessage
}
from
'/@/hooks/web/useMessage'
;
import
{
getFileAccessHttpUrl
,
getRandom
}
from
'/@/utils/common/compUtils'
;
import
{
uploadUrl
}
from
'/@/api/common/api'
;
import
{
uploadUrl
,
downloadFile
}
from
'/@/api/common/api'
;
import
{
getToken
}
from
'/@/utils/auth'
;
const
{
createMessage
,
createErrorModal
}
=
useMessage
();
export
default
defineComponent
({
name
:
'JImageUpload'
,
components
:
{
LoadingOutlined
,
UploadOutlined
},
components
:
{
LoadingOutlined
,
UploadOutlined
,
DownloadOutlined
},
inheritAttrs
:
false
,
props
:
{
//绑定值
...
...
@@ -127,6 +127,18 @@
return uploadFileList.value.length < props['
fileMax
'];
});
/** 照片墙模式显示下载图标 */
const uploadListShowConfig = computed(() => {
if (props.listType === '
picture
-
card
') {
return {
showPreviewIcon: true,
showRemoveIcon: true,
showDownloadIcon: true,
};
}
return true;
});
/**
* 监听value变化
*/
...
...
@@ -231,19 +243,28 @@
previewVisible.value = true;
}
/**
* 下载图片
* 下载图片
(走系统下载接口,支持需登录的静态资源)
*/
function handleDownload(file) {
console.log('
download
',file)
let url = file.url;
let link = document.createElement('
a
');
link.style.display = '
none
';
link.href = url;
link.setAttribute('
download
', fileName);
document.body.appendChild(link);
link.click();
document.body.removeChild(link); //下载完成移除元素
window.URL.revokeObjectURL(url); //释放掉blob对象
let relativePath = file?.response?.message;
if (!relativePath && file?.url) {
const u = String(file.url);
const marker = '
/
sys
/
common
/
static
/
';
const idx = u.indexOf(marker);
if (idx !== -1) {
relativePath = u.substring(idx + marker.length);
}
}
if (!relativePath) {
createMessage.warning('
无法下载该文件
');
return;
}
const normalized = String(relativePath).replace(/^
\
/+/, '');
const url = `/sys/common/static/${normalized}`;
const name = file?.name || getFileName(relativePath);
downloadFile(url, name).catch(() => {
createMessage.error('
下载失败
');
});
}
function getAvatarView() {
...
...
@@ -273,6 +294,7 @@
handleCancel,
handleChange,
handleDownload,
uploadListShowConfig,
getAvatarView
};
},
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论