Commit 6f6ec5d9 authored by wangqinghua's avatar wangqinghua

bug

parent 0a44c8e0
<!--选择意向-->
<!--选择列席-->
<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">
......
......@@ -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
}
)
......
......@@ -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="300">
width="100">
<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(){
......
<!--选择特俗议程-->
<template>
<div class="select-intention">
<el-dialog title="选择特议程" :visible.sync="dialogFormVisible">
<el-dialog title="选择特议程" :visible.sync="dialogFormVisible">
<el-table
:data="tableData"
tooltip-effect="dark"
......
......@@ -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.reportDep" autocomplete="off"></el-input>
<el-input v-model="form.remark" 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 = {
......
......@@ -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,
});
......
......@@ -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',
......
......@@ -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="备注">
......
<!--预览文件-->
<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
......@@ -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>
......@@ -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:{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment