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
5ca35fda
Commit
5ca35fda
authored
Mar 31, 2023
by
李少勇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
配合联调报文面函的word文件预览问题
parent
95137887
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
56 additions
and
127 deletions
+56
-127
package-lock.json
package-lock.json
+0
-0
index.vue
src/components/business/docpan/views/index.vue
+22
-82
Show.vue
src/views/Docpan/Show.vue
+34
-45
No files found.
package-lock.json
View file @
5ca35fda
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/components/business/docpan/views/index.vue
View file @
5ca35fda
...
...
@@ -387,15 +387,8 @@
<c-col>
</c-col>
<c-col
:span=
"12"
v-if=
"title != 'MT799'"
>
<el-form-item
label=
"地址修改"
label-width=
"120px"
>
<el-input
type=
"textarea"
v-model=
"dialog.adrblk"
:rows=
"4"
/>
<el-form-item
label=
"地址修改"
label-width=
"120px"
>
<el-input
type=
"textarea"
v-model=
"dialog.adrblk"
:rows=
"4"
/>
</el-form-item>
</c-col>
<c-col
:span=
"12"
v-else
>
...
...
@@ -419,38 +412,28 @@
empty-text=
" "
max-height=
"430px"
>
<el-table-column
label=
"报文类型"
sortable
>
</el-table-column>
<el-table-column
label=
"地址"
sortable
>
</el-table-column>
<el-table-column
label=
"Authentication"
sortable
>
<el-table-column
label=
"报文类型"
sortable
>
</el-table-column>
<el-table-column
label=
"地址"
sortable
>
</el-table-column>
<el-table-column
label=
"Authentication"
sortable
>
</el-table-column>
</el-table>
</el-form-item>
</c-col>
<c-col
v-if=
"title != 'MT799'"
><el-form-item
label=
"面函日期"
>
<el-date-picker
type=
"date"
v-model=
"dialog.docdat"
>
<el-date-picker
type=
"date"
v-model=
"dialog.docdat"
>
</el-date-picker
></el-form-item>
</c-col>
<c-col
v-if=
"this.suppress!=
true"
<c-col
v-if=
"this.suppress !=
true"
><el-form-item
label=
"Contact"
><el-input
v-model=
"dialog.ptcnam"
/></el-form-item>
</c-col>
<c-col
:span=
"22"
v-if=
"this.suppress!=
true"
<c-col
:span=
"22"
v-if=
"this.suppress !=
true"
><el-form-item
:label=
"
title == 'MT799'
? 'Sender to Rec. information'
: 'Remark'
title == 'MT799' ? 'Sender to Rec. information' : 'Remark'
"
>
<div
v-if=
"title == 'MT799'"
>
...
...
@@ -470,41 +453,39 @@
</div>
</el-form-item>
</c-col>
<c-col
:span=
"2"
v-if=
"this.suppress!=
true"
>
<c-col
:span=
"2"
v-if=
"this.suppress !=
true"
>
<c-button
size=
"mini"
icon=
"el-icon-more"
>
</c-button>
</c-col>
</c-row>
</el-form>
<
template
#
footer
>
<span
class=
"dialog-footer"
>
<c-button
type=
"primary"
@
click=
"saveDialog"
>
确 定
</c-button
>
<c-button
type=
"primary"
@
click=
"activateDialog"
v-if=
"dialog.delflg=='D'"
<c-button
type=
"primary"
@
click=
"saveDialog"
>
确 定
</c-button>
<c-button
type=
"primary"
@
click=
"activateDialog"
v-if=
"dialog.delflg == 'D'"
>
应用
</c-button
>
<c-button
type=
"primary"
@
click=
"suppressDialog"
v-else-if=
"dialog.lev=='1'||dialog.mliflg!=''"
<c-button
type=
"primary"
@
click=
"suppressDialog"
v-else-if=
"dialog.lev == '1' || dialog.mliflg != ''"
>
禁用
</c-button
>
<c-button
type=
"primary"
@
click=
"activateDialog"
v-else
>
删除
</c-button
>
<c-button
@
click=
"centerDialogVisible = false"
>
取 消
</c-button
>
<c-button
@
click=
"centerDialogVisible = false"
>
取 消
</c-button>
</span>
</
template
>
</el-dialog>
</template>
<div
ref=
"file"
></div>
</div>
</template>
<
script
>
import
commonProcess
from
"~/mixin/commonProcess"
;
import
Api
from
"~/service/Api"
;
import
Utils
from
"~/utils/index"
;
import
DocUtils
from
"~/utils/DocUtils"
;
let
docx
=
require
(
"docx-preview"
);
import
commonProcess
from
'~/mixin/commonProcess'
;
import
Api
from
'~/service/Api'
;
export
default
{
inject
:
[
'root'
],
props
:
[
'model'
,
'codes'
],
...
...
@@ -645,49 +626,8 @@ export default {
width: 1000,
});
} else {
// let url = rtnmsg.data.trnmod_trndoc_smh_docpth;
this.title = '
面函
';
let viewurl = '
/
#
/
docpan
/
show
';
let XMLdata;
let base64Str = rtnmsg.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]);
docx.renderAsync(blob, this.$refs.file);
let hrefUrl = window.URL.createObjectURL(blob);
let a = document.createElement('
a
');
a.href = hrefUrl;
a.download = '
fileName
.
docx
'; // 下载后文件名
document.body.appendChild(a);
a.click(); // 点击下载
document.body.removeChild(a); // 下载完成移除元素
if (row.pandsc.startsWith('
elcs
.
')) {
window.sessionStorage.docXML = '';
window.sessionStorage.docTXT = '';
rtnmsg.data.trnmod_trndoc_doceot[row.idx].doctxt.rows.forEach(
(element) => {
window.sessionStorage.docTXT += element + '
\
r
\
n
';
}
);
} else if (row.pandsc == '
MT799
') {
window.sessionStorage.docTXT = '';
XMLdata = rtnmsg.data.litbenl1blk;
} else {
//参考后台Doceot.butshw order=1000
let execution = '
P
',
structure = '
l
';
let attr = DocUtils.getDocAttribute(docnam, structure, execution);
console.log(attr);
window.sessionStorage.docTXT = '';
window.sessionStorage.docXML = rtnmsg.data[attr];
window.sessionStorage.docuil = doceot.docuil;
}
// console.log( window.sessionStorage.docTXT);
// console.log( window.sessionStorage.docXML);
window.open(
viewurl,
'
newwindow
',
...
...
src/views/Docpan/Show.vue
View file @
5ca35fda
<
template
>
<div>
<div
style=
"height: 800px; overflow: auto"
>
<embed
v-if=
"this.model.docXML && pdf"
:src=
"pdf"
type=
"application/pdf"
height=
"100%"
width=
"100%"
/>
<c-row
v-if=
"!this.model.docXML"
>
<c-col
v-for=
"(item, index) in model.docTXT"
:key=
"index"
>
<c-col
:offset=
"4"
:span=
"8"
>
{{
item
[
0
]
}}
</c-col>
<c-col
:span=
"12"
>
{{
item
[
1
]
}}
</c-col>
</c-col>
</c-row>
</div>
</div>
<div
class=
"width: 100%;height: 100vh;overflow: auto;"
ref=
"file"
></div>
</
template
>
<
script
>
import
{
getPdf
}
from
"~/service/business/file"
;
import
{
renderAsync
}
from
'docx-preview'
;
import
Api
from
'~/service/Api'
;
import
commonProcess
from
'~/mixin/commonProcess'
;
export
default
{
data
()
{
return
{
model
:
{
docXML
:
""
},
pdf
:
""
,
model
:
{
docXML
:
''
},
pdf
:
''
,
};
},
created
()
{
let
doclang
=
window
.
sessionStorage
.
doclang
||
""
;
this
.
model
.
docXML
=
window
.
sessionStorage
.
docXML
;
this
.
model
.
docTXT
=
window
.
sessionStorage
.
docTXT
.
split
(
"
\
r
\
n"
)
.
filter
((
item
)
=>
item
)
.
map
((
item
)
=>
{
let
idx
=
item
.
indexOf
(
":"
);
return
[
item
.
substring
(
0
,
idx
).
trim
(),
item
.
substring
(
idx
+
1
).
trim
(),
];
});
if
(
this
.
model
.
docXML
!=
""
)
getPdf
({
xml
:
this
.
model
.
docXML
,
doclang
:
window
.
sessionStorage
.
docuil
}).
then
((
res
)
=>
{
mixins
:
[
commonProcess
],
mounted
()
{
this
.
loadWordBlob
()
},
methods
:
{
async
loadWordBlob
()
{
let
routeQuery
=
this
.
$route
.
query
const
params
=
{
index
:
routeQuery
.
idx
,
};
let
res
=
await
Api
.
post
(
'/service/gitopn/executeDocpan'
,
this
.
wrapper
(
params
));
if
(
res
.
respCode
==
SUCCESS
)
{
this
.
pdf
=
"data:application/pdf;base64,"
+
res
.
data
;
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
]);
renderAsync
(
blob
,
this
.
$refs
.
file
)
}
}
}
});
},
};
</
script
>
<
style
scoped
>
::v-deep
.docx-wrapper
{
width
:
100%
;
height
:
100vh
;
padding
:
0
;
overflow
:
auto
;
}
</
style
>
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