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
c21d6d89
Commit
c21d6d89
authored
Oct 17, 2019
by
zhangderong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
地址方式展示PDF
parent
d9d2233a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
101 additions
and
87 deletions
+101
-87
resume.server.js
src/api/resume.server.js
+5
-0
home.vue
src/components/home.vue
+4
-4
resumeDetail.vue
src/page/resume/resumeDetail.vue
+92
-83
No files found.
src/api/resume.server.js
View file @
c21d6d89
...
@@ -145,4 +145,9 @@ export function isShowPDF(parmars) {
...
@@ -145,4 +145,9 @@ export function isShowPDF(parmars) {
'
Content-Type
'
:
'
application/json
'
'
Content-Type
'
:
'
application/json
'
}})
}})
}
}
export
function
getpdfUrl
(
parmars
)
{
return
axios
.
get
(
`
${
sapi
}
/api/resume/getResumePdfUrl/
${
parmars
.
uid
}
`
,
{
headers
:
{
'
Content-Type
'
:
'
application/json
'
}})
}
src/components/home.vue
View file @
c21d6d89
...
@@ -15,8 +15,8 @@
...
@@ -15,8 +15,8 @@
</template>
</template>
</Menu>
</Menu>
</Col>
</Col>
<Col
span=
"21"
class=
"content"
style=
"width:83%;height:100%"
>
<Col
span=
"21"
class=
"content"
style=
"width:83%;height:100%
;
"
>
<Row
class=
"header"
style=
"height:50px"
>
<Row
class=
"header"
style=
"height:50px
;
"
>
<Col
span=
"20"
>
<Col
span=
"20"
>
<Menu
mode=
"horizontal"
:active-name=
"levelOneName"
@
on-select=
"selectMenu"
>
<Menu
mode=
"horizontal"
:active-name=
"levelOneName"
@
on-select=
"selectMenu"
>
<MenuItem
v-for=
"menu in menuList"
:name=
"menu.name"
:key=
"menu.name"
>
<MenuItem
v-for=
"menu in menuList"
:name=
"menu.name"
:key=
"menu.name"
>
...
@@ -27,8 +27,8 @@
...
@@ -27,8 +27,8 @@
<Col
span=
"2"
class=
"account"
style=
"text-align:right;"
>
<Col
span=
"2"
class=
"account"
style=
"text-align:right;"
>
<span
style=
"display:inline-block;line-height:6%;margin-left:30%;"
>
{{massage}}
</span>
<span
style=
"display:inline-block;line-height:6%;margin-left:30%;"
>
{{massage}}
</span>
</Col>
</Col>
<Col
span=
"1"
class=
"sign-out"
>
<Col
span=
"1"
class=
"sign-out"
>
<a
@
click=
"loginOut"
style=
"
margin-left:38%
"
>
退出
</a>
<a
@
click=
"loginOut"
style=
"
float:right
"
>
退出
</a>
</Col>
</Col>
</Row>
</Row>
<Row
style=
"height:94%"
>
<Row
style=
"height:94%"
>
...
...
src/page/resume/resumeDetail.vue
View file @
c21d6d89
<
template
>
<
template
>
<div
class=
"resumeDetail"
>
<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
id=
"container"
style=
"width:100%;height:100%;"
v-if=
"isShowPdf==true"
></div>
-->
<embed
:src=
"pdfUrl"
type=
"application/pdf"
width=
"900px"
:height=
"px"
v-if=
"isShowPdf==true"
>
</div>
</div>
<div
class=
"resumeDetail-left"
v-if=
"isShowPdf==false"
>
<div
class=
"resumeDetail-left"
v-if=
"isShowPdf==false"
>
<div
class=
"personalInformation"
v-show=
"JSON.stringify(resume)!=='
{}'">
<div
class=
"personalInformation"
v-show=
"JSON.stringify(resume)!=='
{}'">
...
@@ -11,7 +11,6 @@
...
@@ -11,7 +11,6 @@
<img
src=
"https://o7oe0d6qz.qnssl.com/image/icon_%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF_23_16px.png"
style=
"height:16px;width:23px; vertical-align: middle;margin-top:-4px"
>
<img
src=
"https://o7oe0d6qz.qnssl.com/image/icon_%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF_23_16px.png"
style=
"height:16px;width:23px; vertical-align: middle;margin-top:-4px"
>
</span>
</span>
<span
style=
"margin-left:7px;font-size:16px;color:#0092FF"
>
基本信息
</span>
<span
style=
"margin-left:7px;font-size:16px;color:#0092FF"
>
基本信息
</span>
<!--
<span
style=
"float:right;width:50px;height:24px;margin-right:5px"
><Button
type=
"primary"
size=
'small'
style=
"width:50px;height:24px"
@
click=
"downloadONE(detialID)"
v-show=
"this.showBtn!=1"
>
下载
</Button></span>
-->
</p>
</p>
<div
class=
"massageTitle"
>
<div
class=
"massageTitle"
>
<p>
<p>
...
@@ -321,10 +320,11 @@
...
@@ -321,10 +320,11 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
moment
from
'
moment
'
import
moment
from
'
moment
'
import
pdf
from
'
vue-pdf
'
// import moment from '../../../static/1.pdf'
// import moment from '../../../static/1.pdf'
require
(
'
../../../static/pdf/pdf.js
'
)
require
(
'
../../../static/pdf/pdf.js
'
)
let
mammoth
=
require
(
"
mammoth
"
);
let
mammoth
=
require
(
"
mammoth
"
);
import
{
seedetail
,
updatastatus
,
TODORes
,
sendEmail
,
getEmailMoo
,
getEmailContent
,
uploadimage
,
findCompanyEmailByKey
,
forwardResume
,
getPdf
,
isShowPDF
}
from
'
../../api/resume.server
'
import
{
seedetail
,
updatastatus
,
TODORes
,
sendEmail
,
getEmailMoo
,
getEmailContent
,
uploadimage
,
findCompanyEmailByKey
,
forwardResume
,
getPdf
,
isShowPDF
,
getpdfUrl
}
from
'
../../api/resume.server
'
import
localStorage
from
'
../../service/localstorage.service.js
'
import
localStorage
from
'
../../service/localstorage.service.js
'
import
{
import
{
sapi
sapi
...
@@ -341,6 +341,7 @@ export default {
...
@@ -341,6 +341,7 @@ export default {
reList
:[],
reList
:[],
name
:
''
,
name
:
''
,
detailSta
:
''
,
detailSta
:
''
,
pdfUrl
:
''
,
emailMOdal
:
false
,
emailMOdal
:
false
,
tip
:
false
,
tip
:
false
,
loading1
:
false
,
loading1
:
false
,
...
@@ -352,6 +353,8 @@ export default {
...
@@ -352,6 +353,8 @@ export default {
boxIsShow
:
false
,
boxIsShow
:
false
,
resumeBTn
:
false
,
resumeBTn
:
false
,
isShowPdf
:
true
,
isShowPdf
:
true
,
px
:
1200
,
// src:'/api/http://172.21.10.43/group1/M00/00/58/oYYBAF2nzwqAY4fcAAHyoHPb1Ic418.pdf',
showOriginalDisabled
:
true
,
showOriginalDisabled
:
true
,
OriginalContent
:
''
,
OriginalContent
:
''
,
StandardContent
:
''
,
StandardContent
:
''
,
...
@@ -433,7 +436,8 @@ export default {
...
@@ -433,7 +436,8 @@ export default {
}
}
},
},
components
:{
components
:{
ckeditor
ckeditor
,
pdf
},
},
methods
:
{
methods
:
{
getDETAIL
(){
getDETAIL
(){
...
@@ -455,73 +459,73 @@ export default {
...
@@ -455,73 +459,73 @@ export default {
this
.
name
=
res
.
data
.
body
.
resume
.
ownerName
this
.
name
=
res
.
data
.
body
.
resume
.
ownerName
})
})
},
},
clearPDF
:
function
(
OriginalContent
)
{
//
clearPDF: function (OriginalContent) {
if
(
this
.
OriginalContent
!==
''
){
//
if(this.OriginalContent!==''){
document
.
getElementById
(
"
container
"
).
innerHTML
=
""
;
//
document.getElementById("container").innerHTML = "";
}
//
}
},
//
},
// 渲染合同
//
//
渲染合同
renderPDF
:
function
(
pdf
,
pageNumber
,
OriginalContent
)
{
//
renderPDF: function (pdf, pageNumber,OriginalContent) {
if
(
this
.
OriginalContent
!==
''
){}
//
if(this.OriginalContent!==''){}
pdf
.
getPage
(
pageNumber
).
then
(
function
(
page
)
{
//
pdf.getPage(pageNumber).then(function (page) {
var
scale
=
1.5
;
//随意设置的
//
var scale = 1.5; //随意设置的
var
viewport
=
page
.
getViewport
(
scale
);
//
var viewport = page.getViewport(scale);
// Prepare canvas using PDF page dimensions
//
// Prepare canvas using PDF page dimensions
// var canvas = document.getElementById('the-canvas');
//
// var canvas = document.getElementById('the-canvas');
var
canvas
=
document
.
createElement
(
'
canvas
'
);
//
var canvas = document.createElement('canvas');
canvas
.
setAttribute
(
"
id
"
,
"
the-canvas-
"
+
pageNumber
);
//
canvas.setAttribute("id", "the-canvas-" + pageNumber);
var
element
=
document
.
getElementById
(
"
container
"
);
//
var element = document.getElementById("container");
element
.
appendChild
(
canvas
);
//
element.appendChild(canvas);
var
context
=
canvas
.
getContext
(
'
2d
'
);
//
var context = canvas.getContext('2d');
canvas
.
height
=
viewport
.
height
;
//
canvas.height = viewport.height;
canvas
.
width
=
viewport
.
width
;
//
canvas.width = viewport.width;
// Render PDF page into canvas context
//
// Render PDF page into canvas context
var
renderContext
=
{
//
var renderContext = {
canvasContext
:
context
,
//
canvasContext: context,
viewport
:
viewport
//
viewport: viewport
};
//
};
var
renderTask
=
page
.
render
(
renderContext
);
//
var renderTask = page.render(renderContext);
renderTask
.
then
(
function
()
{
//
renderTask.then(function () {
});
//
});
});
//
});
},
//
},
// 展示合同
//
//
展示合同
showPDF
:
function
(
OriginalContent
)
{
//
showPDF : function ( OriginalContent) {
let
vm
=
this
//
let vm = this
if
(
this
.
OriginalContent
)
{
//
if ( this.OriginalContent) {
var
obj
=
{
//
var obj = {
// url: '../../static/test.pdf', // 得到的是数据时使用data属性
//
// url: '../../static/test.pdf', // 得到的是数据时使用data属性
data
:
this
.
OriginalContent
,
//
data: this.OriginalContent,
cMapUrl
:
'
https://cdn.jsdelivr.net/npm/pdfjs-dist@2.0.943/cmaps/
'
,
//
cMapUrl: 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.0.943/cmaps/',
cMapPacked
:
true
//
cMapPacked: true
};
//
};
PDFJS
.
workerSrc
=
'
../../static/pdf/pdf.worker.js
'
//
PDFJS.workerSrc = '../../static/pdf/pdf.worker.js'
var
loadingTask
=
PDFJS
.
getDocument
(
obj
);
//
var loadingTask = PDFJS.getDocument(obj);
loadingTask
.
promise
.
then
(
function
(
pdf
)
{
//
loadingTask.promise.then(function(pdf) {
var
total
=
pdf
.
numPages
;
//
var total = pdf.numPages;
for
(
var
i
=
0
;
i
<
total
;
i
++
)
{
//
for (var i = 0; i
<
total
;
i
++
)
{
var
pageNumber
=
i
+
1
;
//
var pageNumber = i + 1;
// 如果你有node(vue ag...)环境,那么请用async/await替换掉
//
// 如果你有node(vue ag...)环境,那么请用async/await替换掉
setTimeout
(
vm
.
renderPDF
(
pdf
,
pageNumber
),
10
);
//
setTimeout(vm.renderPDF(pdf, pageNumber), 10);
}
//
}
},
function
(
reason
)
{
//
}, function (reason) {
// PDF loading error
//
// PDF loading error
console
.
error
(
reason
);
//
console.error(reason);
});
//
});
}
//
}
},
//
},
getData
(){
//
getData(){
let
params
=
{
//
let params = {
uid
:
this
.
$route
.
query
.
id
//
uid:this.$route.query.id
}
//
}
getPdf
(
params
).
then
(
data
=>
{
// 调接口获取数据(二进制流数据)
//
getPdf(params).then(data => { // 调接口获取数据(二进制流数据)
this
.
clearPDF
();
//
this.clearPDF();
let
vm
=
this
//
let vm =this
var
array
=
new
Uint8Array
(
data
.
data
);
// 将二进制流数据转换成 Uint8Array (pdf支持的数据格式)
//
var array = new Uint8Array(data.data);// 将二进制流数据转换成 Uint8Array (pdf支持的数据格式)
this
.
OriginalContent
=
new
Uint8Array
(
data
.
data
);
//
this.OriginalContent=new Uint8Array(data.data);
vm
.
showPDF
(
this
.
OriginalContent
)
//
vm.showPDF(this.OriginalContent)
})
//
})
},
//
},
// 下载简历
// 下载简历
downloadONE
(
doid
){
downloadONE
(
doid
){
window
.
location
.
href
=
`
${
sapi
}
/api/resume/download/formatted/one?resumeId=
${
doid
}
`
window
.
location
.
href
=
`
${
sapi
}
/api/resume/download/formatted/one?resumeId=
${
doid
}
`
...
@@ -679,8 +683,6 @@ export default {
...
@@ -679,8 +683,6 @@ export default {
this
.
isShowTwo
=
false
this
.
isShowTwo
=
false
this
.
isLimitSize
=
false
this
.
isLimitSize
=
false
this
.
uploadFileList
=
[]
this
.
uploadFileList
=
[]
// this.clearInterviewee()
// this.SouSuo(this.pageT,'init')
},
},
submit
()
{
submit
()
{
let
flag
=
false
let
flag
=
false
...
@@ -755,19 +757,14 @@ export default {
...
@@ -755,19 +757,14 @@ export default {
this
.
contentName
=
''
this
.
contentName
=
''
},
},
showOriginal
(){
showOriginal
(){
// this.addCss()
// this.showPDF()
// this.remove()
// document.querySelector('#app').style['overflow-x']='hidden'
this
.
showPDF
()
this
.
isShowPdf
=
true
this
.
isShowPdf
=
true
this
.
showOriginalDisabled
=
true
this
.
showOriginalDisabled
=
true
this
.
showStandardDisabled
=
false
this
.
showStandardDisabled
=
false
},
},
showStandard
(){
showStandard
(){
this
.
isShowPdf
=
false
this
.
isShowPdf
=
false
// this.addCss()
// this.clearPDF()
// document.querySelector('#app').style['overflow-x']='hidden'
this
.
clearPDF
()
this
.
showStandardDisabled
=
true
this
.
showStandardDisabled
=
true
this
.
showOriginalDisabled
=
false
this
.
showOriginalDisabled
=
false
},
},
...
@@ -785,6 +782,14 @@ export default {
...
@@ -785,6 +782,14 @@ export default {
}
}
})
})
},
},
getPdfUrl
(){
let
parmars
=
{
uid
:
this
.
$route
.
query
.
id
}
getpdfUrl
(
parmars
).
then
(
res
=>
{
this
.
pdfUrl
=
res
.
data
})
},
// 确认发送邮件
// 确认发送邮件
confireSendEmail
:
_debounce
(
function
(){
confireSendEmail
:
_debounce
(
function
(){
this
.
sad
=
this
.
getEditorValue
()
this
.
sad
=
this
.
getEditorValue
()
...
@@ -983,13 +988,17 @@ export default {
...
@@ -983,13 +988,17 @@ export default {
document
.
querySelector
(
'
#app
'
).
style
.
removeProperty
(
'
overflow-x
'
)
document
.
querySelector
(
'
#app
'
).
style
.
removeProperty
(
'
overflow-x
'
)
},
},
},
},
// created(){
// this.src = pdf.createLoadingTask(this.src)
// },
async
mounted
(){
async
mounted
(){
this
.
getPdfUrl
()
this
.
getDETAIL
()
this
.
getDETAIL
()
this
.
boxIsShow
=
true
this
.
boxIsShow
=
true
this
.
judeBtn
()
this
.
judeBtn
()
this
.
addCss
()
this
.
addCss
()
await
this
.
getData
()
//
await this.getData()
this
.
clearPDF
()
//
this.clearPDF()
await
this
.
judeShowPdf
()
await
this
.
judeShowPdf
()
},
},
beforeDestroy
(){
beforeDestroy
(){
...
...
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