Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-learn
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-learn
Commits
e0e05750
提交
e0e05750
authored
8月 02, 2022
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: update
上级
93dc694f
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
30 行增加
和
17 行删除
+30
-17
AppUpload.vue
src/components/base/AppUpload.vue
+17
-10
Suggestions.vue
src/modules/settings/components/Suggestions.vue
+8
-1
SuggestionsForm.vue
src/modules/settings/components/SuggestionsForm.vue
+4
-5
types.ts
src/modules/settings/types.ts
+1
-1
没有找到文件。
src/components/base/AppUpload.vue
浏览文件 @
e0e05750
...
...
@@ -5,10 +5,17 @@ import type { UploadProps, UploadUserFile } from 'element-plus'
import
md5
from
'blueimp-md5'
import
{
getSignature
}
from
'@/api/base'
const
props
=
withDefaults
(
defineProps
<
{
modelValue
:
string
|
UploadUserFile
[];
prefix
?:
string
}
>
(),
{
interface
Props
{
modelValue
:
string
|
{
name
:
string
;
url
:
string
}[]
prefix
?:
string
size
?:
number
}
const
props
=
withDefaults
(
defineProps
<
Props
>
(),
{
prefix
:
'upload/saas-learn/'
})
const
emit
=
defineEmits
([
'update:modelValue'
])
const
emit
=
defineEmits
([
'update:modelValue'
,
'success'
])
const
uploadData
=
ref
()
...
...
@@ -17,7 +24,7 @@ const fileList = ref<UploadUserFile[]>([])
watch
(
()
=>
props
.
modelValue
,
value
=>
{
fileList
.
value
=
Array
.
isArray
(
value
)
?
[...
value
]
:
[]
fileList
.
value
=
Array
.
isArray
(
value
)
?
value
.
map
(
item
=>
({
...
item
}))
:
[]
}
)
...
...
@@ -27,6 +34,10 @@ const showFileList = computed(() => {
// 上传之前
const
handleBeforeUpload
=
async
(
file
:
any
)
=>
{
if
(
props
.
size
&&
file
.
size
>
props
.
size
)
{
ElMessage
.
error
(
`文件大小不能超过
${
props
.
size
/
1024
/
1024
}
M`
)
return
false
}
const
fileName
=
file
.
name
const
key
=
props
.
prefix
+
md5
(
fileName
+
new
Date
().
getTime
())
+
fileName
.
substr
(
fileName
.
lastIndexOf
(
'.'
))
const
response
:
Record
<
string
,
any
>
=
await
getSignature
()
...
...
@@ -54,6 +65,7 @@ const handleSuccess = (response: any, file: any, files: any) => {
}
else
{
emit
(
'update:modelValue'
,
file
.
raw
.
url
)
}
emit
(
'success'
,
file
,
files
)
}
// 上传限制
...
...
@@ -77,7 +89,7 @@ const handleRemove: UploadProps['onRemove'] = (file, files) => {
// 预览
const
handlePreview
:
UploadProps
[
'onPreview'
]
=
uploadFile
=>
{
console
.
log
(
uploadFile
)
window
.
open
(
uploadFile
.
url
)
}
</
script
>
...
...
@@ -100,7 +112,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => {
<el-icon><Plus
/></el-icon>
</
template
>
<
template
v-else
>
<el-button
type=
"primary
"
round
>
点击上传
</el-button>
<el-button
size=
"default
"
round
>
点击上传
</el-button>
</
template
>
</template>
<div
class=
"avatar-uploader"
v-else
>
...
...
@@ -142,9 +154,4 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => {
height
:
100%
;
text-align
:
center
;
}
.suggestion-file
{
display
:
inline-block
;
margin-top
:
10px
;
color
:
blue
;
}
</
style
>
src/modules/settings/components/Suggestions.vue
浏览文件 @
e0e05750
...
...
@@ -45,7 +45,9 @@ function handleUpdate() {
</
template
>
<div
class=
"suggestion-main"
>
<div
class=
"suggestion-content"
v-html=
"item.content"
></div>
<a
:href=
"item.files"
target=
"_blank"
class=
"suggestion-file"
v-if=
"item.files"
>
下载附件
</a>
<a
:href=
"file.url"
target=
"_blank"
class=
"suggestion-file"
v-for=
"file in item.files"
:key=
"file.url"
>
{{ file.name }}
</a>
<p
class=
"t1"
>
发布于:{{ item.created_time }}
</p>
<
template
v-if=
"item.status === 2"
>
<h2
class=
"suggestion-title"
>
问题回复
</h2>
...
...
@@ -86,4 +88,9 @@ function handleUpdate() {
max-width
:
100%
;
}
}
.suggestion-file
{
display
:
inline-block
;
margin-top
:
10px
;
color
:
blue
;
}
</
style
>
src/modules/settings/components/SuggestionsForm.vue
浏览文件 @
e0e05750
...
...
@@ -13,7 +13,7 @@ const formRef = $ref<FormInstance>()
const
form
=
reactive
({
title
:
''
,
content
:
''
,
files
:
''
files
:
[]
})
const
rules
=
ref
<
FormRules
>
({
title
:
[{
required
:
true
,
message
:
'请输入问题描述'
,
trigger
:
'blur'
}],
...
...
@@ -25,7 +25,8 @@ function handleSubmit() {
}
// 修改
const
update
=
()
=>
{
submitSuggestion
(
form
).
then
(()
=>
{
const
params
=
Object
.
assign
({},
form
,
{
files
:
JSON
.
stringify
(
form
.
files
)
})
submitSuggestion
(
params
).
then
(()
=>
{
ElMessage
({
message
:
'提交成功'
,
type
:
'success'
})
emit
(
'update'
)
formRef
?.
resetFields
()
...
...
@@ -43,12 +44,10 @@ const update = () => {
<AppEditor
v-model=
"form.content"
/>
</el-form-item>
<el-form-item
label=
"上传附件"
prop=
"files"
>
<AppUpload
v-model=
"form.files"
>
<el-button
round
>
点击上传
</el-button>
<AppUpload
v-model=
"form.files"
:limit=
"1"
>
<template
#
tip
>
(可以上传 word、ppt、png、jpg、zip、rar等资源,多文件请先压缩打包成一个文件后,再上传)
</
template
>
<p>
{{ form.files }}
</p>
</AppUpload>
</el-form-item>
<el-form-item>
...
...
src/modules/settings/types.ts
浏览文件 @
e0e05750
export
interface
SuggestionType
{
content
:
string
created_time
:
string
files
:
string
files
:
{
name
:
string
;
url
:
string
}[]
id
:
string
reply
:
string
title
:
string
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论