Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
vue-gjjs
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fukai
vue-gjjs
Commits
c3ecca68
Commit
c3ecca68
authored
Apr 03, 2023
by
zhanghou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加面函下载功能
parent
5c1300c9
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
4 deletions
+34
-4
Show.vue
src/views/Docpan/Show.vue
+34
-4
No files found.
src/views/Docpan/Show.vue
View file @
c3ecca68
<
template
>
<
template
>
<div
class=
"width: 100%;height: 100vh;overflow: auto;"
ref=
"file"
></div>
<div>
<el-button
@
click=
"downLoad"
>
点击下载word文件
</el-button>
<div
class=
"docWrap"
>
<!-- 预览文件的地方(用于渲染) -->
<div
ref=
"file"
></div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
...
@@ -15,15 +21,15 @@ export default {
...
@@ -15,15 +21,15 @@ export default {
},
},
mixins
:
[
commonProcess
],
mixins
:
[
commonProcess
],
mounted
()
{
mounted
()
{
this
.
loadWordBlob
()
this
.
goPreview
()
},
},
methods
:
{
methods
:
{
async
loadWordBlob
()
{
async
goPreview
()
{
let
routeQuery
=
this
.
$route
.
query
let
routeQuery
=
this
.
$route
.
query
const
params
=
{
const
params
=
{
index
:
routeQuery
.
idx
,
index
:
routeQuery
.
idx
,
};
};
let
res
=
await
Api
.
post
(
'/service/gitopn/executeDocpan'
,
this
.
wrapper
(
params
));
let
res
=
await
Api
.
post
(
'/service/gitopn/executeDocpan
1
'
,
this
.
wrapper
(
params
));
if
(
res
.
respCode
==
SUCCESS
)
{
if
(
res
.
respCode
==
SUCCESS
)
{
let
base64Str
=
res
.
data
.
executeDocpan
;
let
base64Str
=
res
.
data
.
executeDocpan
;
let
bstr
=
window
.
atob
(
base64Str
);
// 解码 base-64 编码的字符串,base-64 编码使用方法是 btoa()
let
bstr
=
window
.
atob
(
base64Str
);
// 解码 base-64 编码的字符串,base-64 编码使用方法是 btoa()
...
@@ -35,6 +41,30 @@ export default {
...
@@ -35,6 +41,30 @@ export default {
let
blob
=
new
Blob
([
u8arr
]);
let
blob
=
new
Blob
([
u8arr
]);
renderAsync
(
blob
,
this
.
$refs
.
file
)
renderAsync
(
blob
,
this
.
$refs
.
file
)
}
}
},
async
downLoad
()
{
let
routeQuery
=
this
.
$route
.
query
const
params
=
{
index
:
routeQuery
.
idx
,
};
let
res
=
await
Api
.
post
(
'/service/gitopn/executeDocpan1'
,
this
.
wrapper
(
params
));
if
(
res
.
respCode
==
SUCCESS
)
{
let
base64Str
=
res
.
data
.
executeDocpan
;
let
bstr
=
window
.
atob
(
base64Str
);
// 解码 base-64 编码的字符串,base-64 编码使用方法是 btoa()
let
length
=
bstr
.
length
;
let
u8arr
=
new
Uint8Array
(
length
);
// 创建初始化为0的,包含length个元素的无符号整型数组
while
(
length
--
)
{
u8arr
[
length
]
=
bstr
.
charCodeAt
(
length
);
// 返回在指定的位置的字符的 Unicode 编码
}
let
blob
=
new
Blob
([
u8arr
]);
var
a
=
document
.
createElement
(
"a"
);
//创建一个
<
a
><
/a>标
签
a
.
href
=
URL
.
createObjectURL
(
blob
);
// 将流文件写入a标签的href属性值
a
.
download
=
"gitopn.docx"
;
//设置文件名
a
.
style
.
display
=
"none"
;
// 障眼法藏起来a标签
document
.
body
.
appendChild
(
a
);
// 将a标签追加到文档对象中
a
.
click
();
// 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
a
.
remove
();
// 一次性的,用完就删除a标签
}
}
}
}
}
};
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment