Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
recruiting-management
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ui
recruiting-management
Commits
d9d2233a
Commit
d9d2233a
authored
Oct 16, 2019
by
zhangderong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PDF原件展示测试
parent
38b36d5f
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
120 additions
and
120 deletions
+120
-120
resume.server.js
src/api/resume.server.js
+14
-14
resumeDetail.vue
src/page/resume/resumeDetail.vue
+106
-106
No files found.
src/api/resume.server.js
View file @
d9d2233a
...
...
@@ -131,18 +131,18 @@ export function forwardResume(params) {
'
Content-Type
'
:
'
application/json
'
}})
}
//
export function getPdf(parmars) {
//
return axios.get(`${sapi}/api/resume/getResumePdfByResumeId/${parmars.uid}`,{
//
responseType: 'arraybuffer',
//
headers: {
//
'Content-Type':'application/json'
//
}
//
})
//
}
//
//
是否展示原件的PDF
//
export function isShowPDF(parmars) {
//
return axios.get(`${sapi}/api/resume//isShowOriPdf/${parmars.uid}`, {headers: {
//
'Content-Type':'application/json'
//
}})
//
}
export
function
getPdf
(
parmars
)
{
return
axios
.
get
(
`
${
sapi
}
/api/resume/getResumePdfByResumeId/
${
parmars
.
uid
}
`
,{
responseType
:
'
arraybuffer
'
,
headers
:
{
'
Content-Type
'
:
'
application/json
'
}
})
}
// 是否展示原件的PDF
export
function
isShowPDF
(
parmars
)
{
return
axios
.
get
(
`
${
sapi
}
/api/resume//isShowOriPdf/
${
parmars
.
uid
}
`
,
{
headers
:
{
'
Content-Type
'
:
'
application/json
'
}})
}
src/page/resume/resumeDetail.vue
View file @
d9d2233a
<
template
>
<div
class=
"resumeDetail"
>
<!--
<a
href=
"http://172.21.10.43/group1/M00/00/08/oYYBAF1M9B6ACO58AADoAJ5PfGw173.doc"
>
dsds
</a>
-->
<
!--
<
div
class=
"pdfShow"
v-show=
"isShowPdf==true"
>
<div
class=
"pdfShow"
v-show=
"isShowPdf==true"
>
<div
id=
"container"
style=
"width:100%;height:100%;"
v-if=
"isShowPdf==true"
></div>
</div>
-->
</div>
<div
class=
"resumeDetail-left"
v-if=
"isShowPdf==false"
>
<div
class=
"personalInformation"
v-show=
"JSON.stringify(resume)!=='
{}'">
<p
class=
"detailTitel"
>
...
...
@@ -324,7 +324,7 @@ import moment from 'moment'
// import moment from '../../../static/1.pdf'
require
(
'
../../../static/pdf/pdf.js
'
)
let
mammoth
=
require
(
"
mammoth
"
);
import
{
seedetail
,
updatastatus
,
TODORes
,
sendEmail
,
getEmailMoo
,
getEmailContent
,
uploadimage
,
findCompanyEmailByKey
,
forwardResume
}
from
'
../../api/resume.server
'
import
{
seedetail
,
updatastatus
,
TODORes
,
sendEmail
,
getEmailMoo
,
getEmailContent
,
uploadimage
,
findCompanyEmailByKey
,
forwardResume
,
getPdf
,
isShowPDF
}
from
'
../../api/resume.server
'
import
localStorage
from
'
../../service/localstorage.service.js
'
import
{
sapi
...
...
@@ -351,7 +351,7 @@ export default {
modal13
:
false
,
boxIsShow
:
false
,
resumeBTn
:
false
,
isShowPdf
:
fals
e
,
isShowPdf
:
tru
e
,
showOriginalDisabled
:
true
,
OriginalContent
:
''
,
StandardContent
:
''
,
...
...
@@ -455,73 +455,73 @@ export default {
this
.
name
=
res
.
data
.
body
.
resume
.
ownerName
})
},
//
clearPDF: function (OriginalContent) {
//
if(this.OriginalContent!==''){
//
document.getElementById("container").innerHTML = "";
//
}
//
},
//
//
渲染合同
//
renderPDF: function (pdf, pageNumber,OriginalContent) {
//
if(this.OriginalContent!==''){}
//
pdf.getPage(pageNumber).then(function (page) {
//
var scale = 1.5; //随意设置的
//
var viewport = page.getViewport(scale);
//
// Prepare canvas using PDF page dimensions
//
// var canvas = document.getElementById('the-canvas');
//
var canvas = document.createElement('canvas');
//
canvas.setAttribute("id", "the-canvas-" + pageNumber);
//
var element = document.getElementById("container");
//
element.appendChild(canvas);
//
var context = canvas.getContext('2d');
//
canvas.height = viewport.height;
//
canvas.width = viewport.width;
//
// Render PDF page into canvas context
//
var renderContext = {
//
canvasContext: context,
//
viewport: viewport
//
};
//
var renderTask = page.render(renderContext);
//
renderTask.then(function () {
//
});
//
});
//
},
//
//
展示合同
//
showPDF : function ( OriginalContent) {
//
let vm = this
//
if ( this.OriginalContent) {
//
var obj = {
//
// url: '../../static/test.pdf', // 得到的是数据时使用data属性
//
data: this.OriginalContent,
//
cMapUrl: 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.0.943/cmaps/',
//
cMapPacked: true
//
};
//
PDFJS.workerSrc = '../../static/pdf/pdf.worker.js'
//
var loadingTask = PDFJS.getDocument(obj);
//
loadingTask.promise.then(function(pdf) {
//
var total = pdf.numPages;
//
for (var i = 0; i
<
total
;
i
++
)
{
//
var pageNumber = i + 1;
//
// 如果你有node(vue ag...)环境,那么请用async/await替换掉
//
setTimeout(vm.renderPDF(pdf, pageNumber), 10);
//
}
//
}, function (reason) {
//
// PDF loading error
//
console.error(reason);
//
});
//
}
//
},
//
getData(){
//
let params = {
//
uid:this.$route.query.id
//
}
//
getPdf(params).then(data => { // 调接口获取数据(二进制流数据)
//
this.clearPDF();
//
let vm =this
//
var array = new Uint8Array(data.data);// 将二进制流数据转换成 Uint8Array (pdf支持的数据格式)
//
this.OriginalContent=new Uint8Array(data.data);
//
vm.showPDF(this.OriginalContent)
//
})
//
},
clearPDF
:
function
(
OriginalContent
)
{
if
(
this
.
OriginalContent
!==
''
){
document
.
getElementById
(
"
container
"
).
innerHTML
=
""
;
}
},
// 渲染合同
renderPDF
:
function
(
pdf
,
pageNumber
,
OriginalContent
)
{
if
(
this
.
OriginalContent
!==
''
){}
pdf
.
getPage
(
pageNumber
).
then
(
function
(
page
)
{
var
scale
=
1.5
;
//随意设置的
var
viewport
=
page
.
getViewport
(
scale
);
// Prepare canvas using PDF page dimensions
// var canvas = document.getElementById('the-canvas');
var
canvas
=
document
.
createElement
(
'
canvas
'
);
canvas
.
setAttribute
(
"
id
"
,
"
the-canvas-
"
+
pageNumber
);
var
element
=
document
.
getElementById
(
"
container
"
);
element
.
appendChild
(
canvas
);
var
context
=
canvas
.
getContext
(
'
2d
'
);
canvas
.
height
=
viewport
.
height
;
canvas
.
width
=
viewport
.
width
;
// Render PDF page into canvas context
var
renderContext
=
{
canvasContext
:
context
,
viewport
:
viewport
};
var
renderTask
=
page
.
render
(
renderContext
);
renderTask
.
then
(
function
()
{
});
});
},
// 展示合同
showPDF
:
function
(
OriginalContent
)
{
let
vm
=
this
if
(
this
.
OriginalContent
)
{
var
obj
=
{
// url: '../../static/test.pdf', // 得到的是数据时使用data属性
data
:
this
.
OriginalContent
,
cMapUrl
:
'
https://cdn.jsdelivr.net/npm/pdfjs-dist@2.0.943/cmaps/
'
,
cMapPacked
:
true
};
PDFJS
.
workerSrc
=
'
../../static/pdf/pdf.worker.js
'
var
loadingTask
=
PDFJS
.
getDocument
(
obj
);
loadingTask
.
promise
.
then
(
function
(
pdf
)
{
var
total
=
pdf
.
numPages
;
for
(
var
i
=
0
;
i
<
total
;
i
++
)
{
var
pageNumber
=
i
+
1
;
// 如果你有node(vue ag...)环境,那么请用async/await替换掉
setTimeout
(
vm
.
renderPDF
(
pdf
,
pageNumber
),
10
);
}
},
function
(
reason
)
{
// PDF loading error
console
.
error
(
reason
);
});
}
},
getData
(){
let
params
=
{
uid
:
this
.
$route
.
query
.
id
}
getPdf
(
params
).
then
(
data
=>
{
// 调接口获取数据(二进制流数据)
this
.
clearPDF
();
let
vm
=
this
var
array
=
new
Uint8Array
(
data
.
data
);
// 将二进制流数据转换成 Uint8Array (pdf支持的数据格式)
this
.
OriginalContent
=
new
Uint8Array
(
data
.
data
);
vm
.
showPDF
(
this
.
OriginalContent
)
})
},
// 下载简历
downloadONE
(
doid
){
window
.
location
.
href
=
`
${
sapi
}
/api/resume/download/formatted/one?resumeId=
${
doid
}
`
...
...
@@ -754,37 +754,37 @@ export default {
delInterviewee
(
name
){
this
.
contentName
=
''
},
//
showOriginal(){
//
// this.addCss()
//
// this.remove()
//
// document.querySelector('#app').style['overflow-x']='hidden'
//
this.showPDF()
//
this.isShowPdf=true
//
this.showOriginalDisabled=true
//
this.showStandardDisabled=false
//
},
//
showStandard(){
//
this.isShowPdf=false
//
// this.addCss()
//
// document.querySelector('#app').style['overflow-x']='hidden'
//
this.clearPDF()
//
this.showStandardDisabled=true
//
this.showOriginalDisabled=false
//
},
//
judeShowPdf(){
//
let parmars={
//
uid:this.$route.query.id
//
}
//
isShowPDF(parmars).then(res=>{
//
if(res.data.body==true){
//
this.isShowPdf=true
//
this.resumeBTn=true
//
}else{
//
this.isShowPdf=false
//
this.resumeBTn=false
//
}
//
})
//
},
showOriginal
(){
// this.addCss()
// this.remove()
// document.querySelector('#app').style['overflow-x']='hidden'
this
.
showPDF
()
this
.
isShowPdf
=
true
this
.
showOriginalDisabled
=
true
this
.
showStandardDisabled
=
false
},
showStandard
(){
this
.
isShowPdf
=
false
// this.addCss()
// document.querySelector('#app').style['overflow-x']='hidden'
this
.
clearPDF
()
this
.
showStandardDisabled
=
true
this
.
showOriginalDisabled
=
false
},
judeShowPdf
(){
let
parmars
=
{
uid
:
this
.
$route
.
query
.
id
}
isShowPDF
(
parmars
).
then
(
res
=>
{
if
(
res
.
data
.
body
==
true
){
this
.
isShowPdf
=
true
this
.
resumeBTn
=
true
}
else
{
this
.
isShowPdf
=
false
this
.
resumeBTn
=
false
}
})
},
// 确认发送邮件
confireSendEmail
:
_debounce
(
function
(){
this
.
sad
=
this
.
getEditorValue
()
...
...
@@ -983,14 +983,14 @@ export default {
document
.
querySelector
(
'
#app
'
).
style
.
removeProperty
(
'
overflow-x
'
)
},
},
mounted
(){
async
mounted
(){
this
.
getDETAIL
()
this
.
boxIsShow
=
true
this
.
judeBtn
()
this
.
addCss
()
//
await this.getData()
//
this.clearPDF()
//
await this.judeShowPdf()
await
this
.
getData
()
this
.
clearPDF
()
await
this
.
judeShowPdf
()
},
beforeDestroy
(){
this
.
remove
()
...
...
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