Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
meet
Project
Project
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
wangqinghua
meet
Commits
6f6ec5d9
Commit
6f6ec5d9
authored
Mar 29, 2019
by
wangqinghua
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug
parent
0a44c8e0
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
190 additions
and
133 deletions
+190
-133
attendList.vue
src/components/attendList.vue
+7
-24
intentionDialog.vue
src/components/intentionDialog.vue
+5
-0
selectIntentionDialog.vue
src/components/selectIntentionDialog.vue
+7
-2
selectSpecialAgenda.vue
src/components/selectSpecialAgenda.vue
+1
-1
specialDialog.vue
src/components/specialDialog.vue
+4
-3
http.js
src/http.js/http.js
+1
-0
router.js
src/router.js
+1
-0
intention.vue
src/views/intention.vue
+5
-0
preview.vue
src/views/preview.vue
+83
-0
viewFile.vue
src/views/viewFile.vue
+74
-102
vue.config.js
vue.config.js
+2
-1
No files found.
src/components/attendList.vue
View file @
6f6ec5d9
<!--选择
意向
-->
<!--选择
列席
-->
<
template
>
<div
class=
"select-intention"
>
<el-dialog
title=
"选择
意向
"
:visible
.
sync=
"dialogFormVisible"
>
<el-dialog
title=
"选择
列席
"
:visible
.
sync=
"dialogFormVisible"
>
<el-table
:data=
"tableData"
tooltip-effect=
"dark"
style=
"width: 100%"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
>
type=
"selection"
>
</el-table-column>
<el-table-column
label=
"序号"
type=
"index"
width=
"55"
>
</el-table-column>
<el-table-column
label=
"意向主题"
width=
"120"
>
<template
slot-scope=
"scope"
>
{{
scope
.
row
.
date
}}
</
template
>
label=
"代码显示顺序"
width=
"200"
type=
"index"
>
</el-table-column>
<el-table-column
prop=
"name"
label=
"汇报处室"
width=
"120"
>
</el-table-column>
<el-table-column
prop=
"address"
label=
"附件名称"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"address"
label=
"备注"
show-overflow-tooltip
>
label=
"代码显示名"
>
</el-table-column>
</el-table>
<div
slot=
"footer"
class=
"dialog-footer text-center"
>
...
...
src/components/intentionDialog.vue
View file @
6f6ec5d9
...
...
@@ -7,6 +7,9 @@
<el-form-item
label=
"意向主题"
prop=
"title"
:label-width=
"formLabelWidth"
>
<el-input
v-model=
"form.title"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
label=
"汇报处室"
prop=
"reportDep"
:label-width=
"formLabelWidth"
>
<el-input
v-model=
"form.reportDep"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"remark"
:label-width=
"formLabelWidth"
>
<el-input
v-model=
"form.remark"
autocomplete=
"off"
></el-input>
</el-form-item>
...
...
@@ -47,6 +50,7 @@
form
:{
title
:
""
,
remark
:
""
,
reportDep
:
''
,
accessories
:[]
},
rulesForm
:{
...
...
@@ -102,6 +106,7 @@
(
res
)
=>
{
this
.
form
.
title
=
res
.
data
.
title
this
.
form
.
remark
=
res
.
data
.
remark
this
.
form
.
reportDep
=
res
.
data
.
reportDep
this
.
form
.
accessories
=
res
.
data
.
accessories
}
)
...
...
src/components/selectIntentionDialog.vue
View file @
6f6ec5d9
...
...
@@ -19,11 +19,17 @@
<el-table-column
prop=
"title"
label=
"意向主题"
width=
"300"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
prop=
"reportDep"
label=
"汇报处室"
show-overflow-tooltip
>
</el-table-column>
<el-table-column
label=
"附件名称"
width=
"
3
00"
>
width=
"
1
00"
>
<template
slot-scope=
"scope"
>
<p
v-for=
"item of scope.row.accessories"
>
{{
item
.
name
}}
</p>
</
template
>
...
...
@@ -55,7 +61,6 @@
},
methods
:{
handleSelectionChange
(
val
)
{
console
.
log
(
val
)
this
.
multipleSelection
=
val
},
showDialog
(){
...
...
src/components/selectSpecialAgenda.vue
View file @
6f6ec5d9
<!--选择特俗议程-->
<
template
>
<div
class=
"select-intention"
>
<el-dialog
title=
"选择特
俗
议程"
:visible
.
sync=
"dialogFormVisible"
>
<el-dialog
title=
"选择特
殊
议程"
:visible
.
sync=
"dialogFormVisible"
>
<el-table
:data=
"tableData"
tooltip-effect=
"dark"
...
...
src/components/specialDialog.vue
View file @
6f6ec5d9
...
...
@@ -7,11 +7,11 @@
<el-form-item
label=
"议程主题"
prop=
"title"
:label-width=
"formLabelWidth"
>
<el-input
:disabled=
"disabled"
v-model=
"form.title"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
label=
"汇报处室"
prop=
"
url
"
:label-width=
"formLabelWidth"
>
<el-input
:disabled=
"disabled"
v-model=
"form.
url
"
autocomplete=
"off"
></el-input>
<el-form-item
label=
"汇报处室"
prop=
"
reportDep
"
:label-width=
"formLabelWidth"
>
<el-input
:disabled=
"disabled"
v-model=
"form.
reportDep
"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"remark"
:label-width=
"formLabelWidth"
>
<el-input
v-model=
"form.re
portDep
"
autocomplete=
"off"
></el-input>
<el-input
v-model=
"form.re
mark
"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
label=
"列席人员"
:label-width=
"formLabelWidth"
>
<el-input
:disabled=
"true"
v-model=
"attendPerson"
autocomplete=
"off"
>
...
...
@@ -96,6 +96,7 @@
initForm
()
{
this
.
disabled
=
false
this
.
linkSpecial
=
null
this
.
checked
=
false
this
.
fileList
=
[]
this
.
$refs
[
'form'
].
resetFields
();
this
.
form
=
{
...
...
src/http.js/http.js
View file @
6f6ec5d9
...
...
@@ -7,6 +7,7 @@ import {Message} from 'element-ui';
//axios配置
let
instance
=
axios
.
create
({
baseURL
:
'/api'
,
// baseURL:'http://172.19.1.232:8085',
timeout
:
20000
,
});
...
...
src/router.js
View file @
6f6ec5d9
...
...
@@ -23,6 +23,7 @@ const routes = [
{
path
:
'/agenda'
,
name
:
'agenda'
,
component
:
()
=>
import
(
'./views/agenda.vue'
)},
{
path
:
'/meetManage'
,
name
:
'meetManage'
,
component
:
()
=>
import
(
'./views/meetManage.vue'
)},
{
path
:
'/viewFile'
,
name
:
'viewFile'
,
component
:
()
=>
import
(
'./views/viewFile.vue'
)},
{
path
:
'/preview'
,
name
:
'preview'
,
component
:
()
=>
import
(
'./views/preview.vue'
)},
{
path
:
'/login'
,
name
:
'login'
,
...
...
src/views/intention.vue
View file @
6f6ec5d9
...
...
@@ -28,6 +28,11 @@
width=
"180"
>
</el-table-column>
<el-table-column
prop=
"reportDep"
label=
"汇报处室"
width=
"180"
>
</el-table-column>
<el-table-column
prop=
"remark"
cell-class-name=
"text-center"
label=
"备注"
>
...
...
src/views/preview.vue
0 → 100644
View file @
6f6ec5d9
<!--预览文件-->
<
template
>
<div
class=
"preview"
>
<canvas
v-for=
"page in pages"
:id=
"'the-canvas'+page"
:key=
"page"
></canvas>
</div>
</
template
>
<
script
>
import
PDFJS
from
'pdfjs-dist'
import
*
as
types
from
'../store/types'
export
default
{
name
:
"preview"
,
data
()
{
return
{
id
:
null
,
pdfDoc
:
null
,
loadding
:
false
,
meet
:{},
pages
:
0
,
fileName
:
''
,
list
:[],
//议程+意向列表
attendPerson
:
''
,
//列席人员
agendaInfo
:[],
}
},
methods
:{
renderPage
(
num
)
{
let
_this
=
this
this
.
pdfDoc
.
getPage
(
num
).
then
(
function
(
page
)
{
let
canvas
=
document
.
getElementById
(
'the-canvas'
+
num
)
let
ctx
=
canvas
.
getContext
(
'2d'
)
let
dpr
=
window
.
devicePixelRatio
||
1
let
bsr
=
ctx
.
webkitBackingStorePixelRatio
||
ctx
.
mozBackingStorePixelRatio
||
ctx
.
msBackingStorePixelRatio
||
ctx
.
oBackingStorePixelRatio
||
ctx
.
backingStorePixelRatio
||
1
let
ratio
=
dpr
/
bsr
let
viewport
=
page
.
getViewport
(
screen
.
availWidth
/
page
.
getViewport
(
1
).
width
)
canvas
.
width
=
(
viewport
.
width
)
*
ratio
canvas
.
height
=
(
viewport
.
height
)
*
ratio
canvas
.
style
.
width
=
viewport
.
width
+
'px'
canvas
.
style
.
height
=
viewport
.
height
+
'px'
ctx
.
setTransform
(
ratio
,
0
,
0
,
ratio
,
0
,
0
)
var
renderContext
=
{
canvasContext
:
ctx
,
viewport
:
viewport
}
page
.
render
(
renderContext
)
if
(
_this
.
pages
>
num
)
{
_this
.
renderPage
(
num
+
1
)
}
})
},
loadFile
(
url
)
{
let
_this
=
this
PDFJS
.
getDocument
(
url
).
then
(
function
(
pdf
)
{
_this
.
pdfDoc
=
pdf
_this
.
pages
=
_this
.
pdfDoc
.
numPages
_this
.
$nextTick
(()
=>
{
_this
.
renderPage
(
1
)
})
})
},
},
mounted
(){
this
.
$store
.
commit
(
types
.
SIDEWIDTH
,
0
)
//隐藏侧边栏
let
fileName
=
this
.
$route
.
query
.
fileName
let
url
=
'/api/common/file/download?fileName='
+
fileName
this
.
loadFile
(
url
)
}
}
</
script
>
<
style
scoped
>
canvas
{
display
:
block
;
border-bottom
:
1px
solid
black
;
width
:
100%
;
}
</
style
>
\ No newline at end of file
src/views/viewFile.vue
View file @
6f6ec5d9
...
...
@@ -3,64 +3,63 @@
<el-row
class=
"margin-20-0"
>
<el-col
class=
"left"
:span=
"24"
>
<div
class=
"text-center"
>
<
p
class=
"margin-10-0"
>
{{
meet
.
title
}}
</p
>
<
p
class=
"margin-10-0"
>
时间:
{{
meet
.
meetingTime
|
formatDate
}}
</p
>
<
p
class=
"margin-10-0"
>
地点:
{{
meet
.
meetingAddress
}}
</p
>
<
h1
class=
"margin-10-0"
>
{{
meet
.
title
}}
</h1
>
<
h2
class=
"margin-10-0"
>
时间:
{{
meet
.
meetingTime
|
formatDate
}}
</h2
>
<
h3
class=
"margin-10-0"
>
地点:
{{
meet
.
meetingAddress
}}
</h3
>
</div>
<p>
一
、会议主题
</p>
<p>
1
、会议主题
</p>
<div
class=
"padding-0-20"
>
<p
class=
"padding-10-0"
>
列席
</p>
<p
class=
"padding-10-0"
>
汇报
</p>
<p
class=
"padding-10-0"
>
按照****************,为分析总结***********************并对*******************做出安排,特召
***************会议
</p>
<el-row
class=
"padding-10-0"
>
<el-col
:span=
"2"
>
<p
class=
"padding-bottom-10"
>
列席:
</p>
</el-col>
<el-col
:span=
"20"
>
<p
class=
"padding-bottom-10"
>
{{
attendPerson
}}
</p>
</el-col>
</el-row>
<el-row
class=
"padding-10-0"
>
<el-col
:span=
"2"
>
<p
class=
"padding-bottom-10"
>
议程:
</p>
</el-col>
<el-col
:span=
"20"
>
<p
class=
"padding-bottom-10"
v-for=
"(item,index) in agendaInfo"
>
{{
index
+
1
}}
、
{{
item
}}
</p>
</el-col>
</el-row>
</div>
<p>
二、信息中心意向
</p>
<div
class=
"padding-0-20"
>
<p
class=
"padding-10-0"
>
汇报
</p>
</div>
<p>
二、意向主题
</p>
<div
class=
"padding-0-20"
>
<p
class=
"padding-10-0"
>
汇报
</p>
</div>
<p>
四、附件
</p>
<p>
五、信息处意向
</p>
<div
class=
"padding-0-20"
>
<p
class=
"padding-10-0"
>
汇报
</p>
</div>
</el-col>
<el-col
class=
"right margin-20-0"
:span=
"24"
>
<el-row>
<el-col
class=
"text-center"
:span=
"6"
>
<el-select
size=
"small"
placeholder=
"请选择"
@
change=
"changeFile"
v-model=
"fileName"
>
<el-option
v-for=
"item in options"
:key=
"item.id"
:label=
"item.name"
:value=
"item.name"
>
</el-option>
</el-select>
</el-col>
<el-col
class=
"text-center"
:span=
"18"
>
议程主题:
{{
meet
.
title
}}
</el-col>
</el-row>
<el-row>
<el-col
class=
"text-center margin-20-0"
:span=
"6"
>
附件名称:
{{
fileName
}}
</el-col>
</el-row>
<el-row>
<canvas
v-for=
"page in pages"
:id=
"'the-canvas'+page"
:key=
"page"
></canvas>
</el-row>
<template
v-for=
"(item,index) of list"
>
<p>
{{
index
+
2
}}
、
{{
item
.
title
}}
</p>
<el-row
class=
"padding-10-20"
>
<el-col
:span=
"2"
class=
"padding-10-0"
>
汇报处室:
</el-col>
<el-col
:span=
"20"
class=
"padding-10-0"
>
{{
item
.
reportDep
}}
</el-col>
</el-row>
<el-row
class=
"padding-0-20"
>
<el-col
:span=
"2"
class=
"padding-10-0"
>
附件:
</el-col>
<el-col
:span=
"20"
class=
"padding-10-0"
>
<p
v-for=
"file of item.accessories"
class=
"padding-10-0"
>
<a
@
click=
"selectFile(file.name)"
>
{{
file
.
name
}}
</a>
</p>
</el-col>
</el-row>
</
template
>
</el-col>
</el-row>
</div>
</template>
<
script
>
import
PDFJS
from
'pdfjs-dist'
import
{
getMeetingById
}
from
'../api/api'
import
{
formatDate
}
from
"../common/date"
;
import
*
as
types
from
'../store/types'
let
Base64
=
require
(
'js-base64'
).
Base64
export
default
{
data
()
{
...
...
@@ -71,78 +70,47 @@
meet
:{},
pages
:
0
,
fileName
:
''
,
options
:[]
list
:[],
//议程+意向列表
attendPerson
:
''
,
//列席人员
agendaInfo
:[],
}
},
methods
:
{
changeFile
(){
let
url
=
'/api/common/file/download?fileName='
+
this
.
fileName
if
(
!
this
.
fileName
.
includes
(
'pdf'
)){
console
.
log
(
'download'
)
selectFile
(
fileName
){
let
url
=
'/api/common/file/download?fileName='
+
fileName
if
(
!
fileName
.
includes
(
'pdf'
)){
let
elemIF
=
document
.
createElement
(
"iframe"
);
elemIF
.
src
=
url
;
elemIF
.
style
.
display
=
"none"
;
document
.
body
.
appendChild
(
elemIF
);
}
else
{
this
.
loadFile
(
url
)
}
},
renderPage
(
num
)
{
let
_this
=
this
this
.
pdfDoc
.
getPage
(
num
).
then
(
function
(
page
)
{
let
canvas
=
document
.
getElementById
(
'the-canvas'
+
num
)
let
ctx
=
canvas
.
getContext
(
'2d'
)
let
dpr
=
window
.
devicePixelRatio
||
1
let
bsr
=
ctx
.
webkitBackingStorePixelRatio
||
ctx
.
mozBackingStorePixelRatio
||
ctx
.
msBackingStorePixelRatio
||
ctx
.
oBackingStorePixelRatio
||
ctx
.
backingStorePixelRatio
||
1
let
ratio
=
dpr
/
bsr
let
viewport
=
page
.
getViewport
(
screen
.
availWidth
/
page
.
getViewport
(
1
).
width
)
canvas
.
width
=
(
viewport
.
width
)
*
ratio
canvas
.
height
=
(
viewport
.
height
)
*
ratio
canvas
.
style
.
width
=
viewport
.
width
+
'px'
canvas
.
style
.
height
=
viewport
.
height
+
'px'
ctx
.
setTransform
(
ratio
,
0
,
0
,
ratio
,
0
,
0
)
var
renderContext
=
{
canvasContext
:
ctx
,
viewport
:
viewport
}
page
.
render
(
renderContext
)
if
(
_this
.
pages
>
num
)
{
_this
.
renderPage
(
num
+
1
)
}
})
},
loadFile
(
url
)
{
console
.
log
(
url
)
let
_this
=
this
PDFJS
.
getDocument
(
url
).
then
(
function
(
pdf
)
{
_this
.
pdfDoc
=
pdf
_this
.
pages
=
_this
.
pdfDoc
.
numPages
_this
.
$nextTick
(()
=>
{
_this
.
renderPage
(
1
)
let
newpage
=
this
.
$router
.
resolve
({
name
:
'preview'
,
query
:{
fileName
:
fileName
}
})
})
window
.
open
(
newpage
.
href
,
'_blank'
);
}
},
},
mounted
()
{
this
.
$store
.
commit
(
types
.
SIDEWIDTH
,
0
)
this
.
$store
.
commit
(
types
.
SIDEWIDTH
,
0
)
//隐藏侧边栏
this
.
id
=
this
.
$route
.
query
.
id
getMeetingById
({
id
:
this
.
id
}).
then
(
(
res
)
=>
{
this
.
meet
=
res
.
data
res
.
data
.
intentionList
.
forEach
(
e
=>
{
e
.
accessories
.
forEach
(
f
=>
{
this
.
options
.
push
(
f
)
})
res
.
data
.
intentionList
.
forEach
(
e
=>
{
//意向
this
.
list
.
push
(
e
)
})
res
.
data
.
agendaList
.
map
(
e
=>
{
e
.
accessories
.
forEach
(
f
=>
{
this
.
options
.
push
(
f
)
res
.
data
.
agendaList
.
forEach
(
e
=>
{
//议程
this
.
list
.
push
(
e
)
this
.
agendaInfo
.
push
(
e
.
title
)
e
.
linkAttends
.
forEach
(
e
=>
{
this
.
attendPerson
+=
e
.
name
+
"、"
})
})
this
.
attendPerson
=
this
.
attendPerson
.
substr
(
0
,
this
.
attendPerson
.
length
-
1
)
}
)
},
...
...
@@ -176,9 +144,13 @@
padding
:
20px
;
border
:
1px
solid
#dddddd
;
}
canvas
{
display
:
block
;
border-bottom
:
1px
solid
black
;
width
:
100%
;
h1
{
font-size
:
30px
;
}
a
{
color
:
#071acb
;
cursor
:
pointer
;
text-decoration
:
underline
;
}
</
style
>
vue.config.js
View file @
6f6ec5d9
...
...
@@ -6,7 +6,8 @@ module.exports = {
devServer
:{
proxy
:{
'/api'
:{
target
:
"http://10.10.202.72:8080"
,
// target:"http://180.168.156.212:4085",
target
:
"http://10.10.202.37:8080"
,
changeOrigin
:
true
,
ws
:
true
,
pathRewrite
:{
...
...
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