Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-resource
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-resource
Commits
ff0087a3
提交
ff0087a3
authored
1月 08, 2024
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: add local
上级
c25d7120
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
49 行增加
和
50 行删除
+49
-50
package.json
package.json
+1
-1
base.ts
src/api/base.ts
+19
-0
AppUpload.vue
src/components/base/AppUpload.vue
+9
-15
Index.vue
src/components/tinymce/Index.vue
+9
-17
UploadImg.vue
src/modules/resource/video/components/UploadImg.vue
+9
-15
vite.config.ts
vite.config.ts
+2
-2
没有找到文件。
package.json
浏览文件 @
ff0087a3
...
...
@@ -4,7 +4,7 @@
"type"
:
"module"
,
"scripts"
:
{
"dev"
:
"vite --mode dev"
,
"build"
:
"vue-tsc --noEmit && vite build --mode prod
&& npm run deploy
"
,
"build"
:
"vue-tsc --noEmit && vite build --mode prod"
,
"build:test"
:
"vue-tsc --noEmit && vite build --mode test"
,
"build:pre"
:
"vue-tsc --noEmit && vite build --mode pre"
,
"preview"
:
"vite preview --port 4173"
,
...
...
src/api/base.ts
浏览文件 @
ff0087a3
...
...
@@ -62,3 +62,22 @@ export function getProjectList(params: { organization_id?: string; project_id?:
export
function
getQuestionCategory
(
params
:
{
project_tag
:
string
})
{
return
httpRequest
.
get
(
`/api/qbs/admin/v2/question-category/tree/
${
params
.
project_tag
}
`
,
{
params
})
}
// 获取分片大小和唯一文件名
export
function
getLocalFileChunk
(
params
:
{
file_size
:
number
;
file_name
:
string
})
{
return
httpRequest
.
get
(
'/api/lab/v1/common/file/chunk'
,
{
params
})
}
// 上传每个分片前请求接口来获取当前文件是否超时,之前的分片是否被清理,如果被请求则拒绝处理。返回客户端错误码,让客户端户端不再续传剩余分片
// 1文件被清理 0文件未被清理
export
function
checkLocalFile
(
params
:
{
file_name
:
string
})
{
return
httpRequest
.
get
(
'/api/lab/v1/common/file/check'
,
{
params
})
}
// 上传文件
export
function
uploadLocalFile
(
data
:
{
file
:
File
;
file_name
:
string
;
is_continuingly
?:
number
;
now_package_num
:
number
;
total_package_num
:
number
})
{
return
httpRequest
.
post
(
'/api/lab/v1/common/file/upload'
,
data
,
{
withCredentials
:
false
,
headers
:
{
'Content-Type'
:
'multipart/form-data'
}
})
}
src/components/base/AppUpload.vue
浏览文件 @
ff0087a3
...
...
@@ -2,8 +2,8 @@
import
{
ElMessage
}
from
'element-plus'
import
{
Plus
}
from
'@element-plus/icons-vue'
import
type
{
UploadProps
,
UploadUserFile
}
from
'element-plus'
import
md5
from
'blueimp-md5'
import
{
get
Signature
}
from
'@/api/base'
//
import md5 from 'blueimp-md5'
import
{
get
LocalFileChunk
}
from
'@/api/base'
const
props
=
withDefaults
(
defineProps
<
{
...
...
@@ -37,19 +37,12 @@ const showFileList = computed(() => {
// 上传之前
const
handleBeforeUpload
=
async
(
file
:
any
)
=>
{
const
fileName
=
file
.
name
const
key
=
props
.
prefix
+
md5
(
fileName
+
new
Date
().
getTime
())
+
'/'
+
fileName
const
response
:
Record
<
string
,
any
>
=
await
getSignature
()
const
response
:
Record
<
string
,
any
>
=
await
getLocalFileChunk
({
file_name
:
file
.
name
,
file_size
:
file
.
size
})
uploadData
.
value
=
{
key
,
host
:
response
.
host
,
OSSAccessKeyId
:
response
.
accessid
,
policy
:
response
.
policy
,
signature
:
response
.
signature
,
success_action_status
:
'200'
,
url
:
`
${
response
.
host
}
/
${
key
}
`
file_name
:
response
.
data
.
detail
.
file_name
,
now_package_num
:
1
,
total_package_num
:
1
}
file
.
url
=
`
${
response
.
host
}
/
${
key
}
`
if
(
props
.
beforeUploadFiles
)
{
return
props
.
beforeUploadFiles
(
file
)
}
...
...
@@ -57,6 +50,7 @@ const handleBeforeUpload = async (file: any) => {
// 上传成功
const
handleSuccess
:
UploadProps
[
'onSuccess'
]
=
(
response
,
file
:
any
,
files
:
any
)
=>
{
file
.
url
=
response
.
data
.
detail
.
uri
if
(
!
files
.
every
((
item
:
any
)
=>
item
.
status
===
'success'
))
return
if
(
showFileList
.
value
)
{
emit
(
...
...
@@ -71,7 +65,7 @@ const handleSuccess: UploadProps['onSuccess'] = (response, file: any, files: any
})
)
}
else
{
emit
(
'update:modelValue'
,
file
.
raw
.
url
)
emit
(
'update:modelValue'
,
response
.
data
.
detail
.
uri
)
}
}
...
...
@@ -102,7 +96,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => {
<
template
>
<el-upload
:action=
"uploadData?.host
"
action=
"/api/lab/v1/common/file/upload
"
:data=
"uploadData"
:show-file-list=
"showFileList"
:before-upload=
"handleBeforeUpload"
...
...
src/components/tinymce/Index.vue
浏览文件 @
ff0087a3
<
script
setup
lang=
"ts"
>
import
Editor
from
'@tinymce/tinymce-vue'
import
md5
from
'blueimp-md5'
import
{
getSignature
,
uploadFile
}
from
'@/api/base'
import
{
getLocalFileChunk
,
uploadLocalFile
}
from
'@/api/base'
const
props
=
defineProps
({
height
:
{
type
:
Number
,
default
:
6
00
default
:
4
00
}
})
const
ImageUploadHandler
=
(
blobInfo
:
any
)
=>
new
Promise
((
resolve
,
reject
)
=>
{
const
file
=
blobInfo
.
blob
()
get
Signature
(
)
get
LocalFileChunk
({
file_name
:
file
.
name
,
file_size
:
file
.
size
}
)
.
then
((
response
:
any
)
=>
{
const
prefix
=
'upload/admin/'
const
key
=
prefix
+
md5
(
file
.
name
+
new
Date
().
getTime
())
+
file
.
name
.
substr
(
file
.
name
.
lastIndexOf
(
'.'
))
const
{
accessid
,
policy
,
signature
,
host
}
=
response
const
params
=
{
key
,
host
,
OSSAccessKeyId
:
accessid
,
policy
,
signature
,
success_action_status
:
'200'
,
file
,
url
:
`
${
host
}
/
${
key
}
`
file_name
:
response
.
data
.
detail
.
file_name
,
now_package_num
:
1
,
total_package_num
:
1
}
uploadFile
(
params
)
upload
Local
File
(
params
)
.
then
((
res
:
any
)
=>
{
resolve
(
res
.
url
)
resolve
(
res
.
data
.
detail
.
uri
)
})
.
catch
(()
=>
{
reject
(
'上传失败'
)
})
})
.
catch
(()
=>
{
reject
(
'
获取Signature
失败'
)
reject
(
'
上传
失败'
)
})
})
...
...
src/modules/resource/video/components/UploadImg.vue
浏览文件 @
ff0087a3
...
...
@@ -2,8 +2,8 @@
import
{
ElMessage
}
from
'element-plus'
// import { Plus } from '@element-plus/icons-vue'
import
type
{
UploadProps
,
UploadUserFile
}
from
'element-plus'
import
md5
from
'blueimp-md5'
import
{
get
Signature
}
from
'@/api/base'
//
import md5 from 'blueimp-md5'
import
{
get
LocalFileChunk
}
from
'@/api/base'
const
props
=
withDefaults
(
defineProps
<
{
modelValue
:
string
|
[];
prefix
?:
string
}
>
(),
{
prefix
:
'upload/admin/'
...
...
@@ -27,23 +27,17 @@ const showFileList = computed(() => {
// 上传之前
const
handleBeforeUpload
=
async
(
file
:
any
)
=>
{
const
fileName
=
file
.
name
const
key
=
props
.
prefix
+
md5
(
fileName
+
new
Date
().
getTime
())
+
fileName
.
substr
(
fileName
.
lastIndexOf
(
'.'
))
const
response
:
Record
<
string
,
any
>
=
await
getSignature
()
const
response
:
Record
<
string
,
any
>
=
await
getLocalFileChunk
({
file_name
:
file
.
name
,
file_size
:
file
.
size
})
uploadData
.
value
=
{
key
,
host
:
response
.
host
,
OSSAccessKeyId
:
response
.
accessid
,
policy
:
response
.
policy
,
signature
:
response
.
signature
,
success_action_status
:
'200'
,
url
:
`
${
response
.
host
}
/
${
key
}
`
file_name
:
response
.
data
.
detail
.
file_name
,
now_package_num
:
1
,
total_package_num
:
1
}
file
.
url
=
`
${
response
.
host
}
/
${
key
}
`
}
// 上传成功
const
handleSuccess
=
(
response
:
any
,
file
:
any
,
files
:
any
)
=>
{
file
.
url
=
response
.
data
.
detail
.
uri
if
(
!
files
.
every
((
item
:
any
)
=>
item
.
status
===
'success'
))
return
if
(
showFileList
.
value
)
{
emit
(
...
...
@@ -53,7 +47,7 @@ const handleSuccess = (response: any, file: any, files: any) => {
})
)
}
else
{
emit
(
'update:modelValue'
,
file
.
raw
.
url
)
emit
(
'update:modelValue'
,
response
.
data
.
detail
.
uri
)
}
}
...
...
@@ -80,7 +74,7 @@ const handlePreview: UploadProps['onPreview'] = uploadFile => {
<
template
>
<el-upload
:action=
"uploadData?.host
"
action=
"/api/lab/v1/common/file/upload
"
:data=
"uploadData"
:show-file-list=
"false"
:before-upload=
"handleBeforeUpload"
...
...
vite.config.ts
浏览文件 @
ff0087a3
...
...
@@ -7,8 +7,8 @@ import vue from '@vitejs/plugin-vue'
// import checker from 'vite-plugin-checker'
import
AutoImport
from
'unplugin-auto-import/vite'
export
default
defineConfig
((
{
mode
}
)
=>
({
base
:
mode
===
'prod'
?
'https://webapp-pub.ezijing.com/website/prod/center-resource/'
:
'/'
,
export
default
defineConfig
(()
=>
({
//
base: mode === 'prod' ? 'https://webapp-pub.ezijing.com/website/prod/center-resource/' : '/',
plugins
:
[
vue
({
reactivityTransform
:
true
}),
AutoImport
({
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论