| | |
| | | <el-row> |
| | | <el-col :span="4"> |
| | | <div class="search"> |
| | | <avue-form :option="option" v-model="form" @submit="handleSubmit"> |
| | | <avue-form :option="option" v-model="form" @submit="connect"> |
| | | <template slot-scope="{}" slot="modulesIdLabel"> |
| | | <span></span> |
| | | </template> |
| | |
| | | </el-col> |
| | | <el-col :span="20"> |
| | | <div class="show"> |
| | | <Flipbook v-if="viewType == 2" class="flipbook" |
| | | :pages="flipConfig.pages" |
| | | :startPage="flipConfig.pageNum" |
| | | v-slot="flipbook" |
| | | ref="flipbook"> |
| | | <div class="action-bar"> |
| | | <left-icon |
| | | class="btn left" |
| | | :class="{ disabled: !flipbook.canFlipLeft }" |
| | | @click="flipbook.flipLeft" |
| | | /> |
| | | <plus-icon |
| | | class="btn plus" |
| | | :class="{ disabled: !flipbook.canZoomIn }" |
| | | @click="flipbook.zoomIn" |
| | | /> |
| | | <span class="page-num"> |
| | | |
| | | <div v-if="menu.property == 1"> |
| | | <img :src="menu.fileUrl[0].value"/> |
| | | </div> |
| | | |
| | | <div v-if="menu.property == 2"> |
| | | <Flipbook v-if="menu.type == 2" class="flipbook" |
| | | :pages="flipConfig.pages" |
| | | :startPage="flipConfig.pageNum" |
| | | v-slot="flipbook" |
| | | ref="flipbook"> |
| | | <div class="action-bar"> |
| | | <left-icon |
| | | class="btn left" |
| | | :class="{ disabled: !flipbook.canFlipLeft }" |
| | | @click="left" |
| | | /> |
| | | <plus-icon |
| | | class="btn plus" |
| | | :class="{ disabled: !flipbook.canZoomIn }" |
| | | @click="flipbook.zoomIn" |
| | | /> |
| | | <span class="page-num"> |
| | | Page {{ flipbook.page }} of {{ flipbook.numPages }} |
| | | </span> |
| | | <minus-icon |
| | | class="btn minus" |
| | | :class="{ disabled: !flipbook.canZoomOut }" |
| | | @click="flipbook.zoomOut" |
| | | /> |
| | | <right-icon |
| | | class="btn right" |
| | | :class="{ disabled: !flipbook.canFlipRight }" |
| | | @click="flipbook.flipRight" |
| | | /> |
| | | </div> |
| | | </Flipbook> |
| | | <iframe v-if="viewType == 3" class="view-iframe" :src="path"/> |
| | | <minus-icon |
| | | class="btn minus" |
| | | :class="{ disabled: !flipbook.canZoomOut }" |
| | | @click="flipbook.zoomOut" |
| | | /> |
| | | <right-icon |
| | | class="btn right" |
| | | :class="{ disabled: !flipbook.canFlipRight }" |
| | | @click="right" |
| | | /> |
| | | </div> |
| | | </Flipbook> |
| | | <iframe v-if="menu.type == 3" class="view-iframe" :src="path"/> |
| | | </div> |
| | | |
| | | <div v-if="menu.property == 3"> |
| | | <img :src="menu.fileUrl[0].value"/> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | </el-col> |
| | |
| | | import RightIcon from 'vue-material-design-icons/ChevronRightCircle' |
| | | import PlusIcon from 'vue-material-design-icons/PlusCircle' |
| | | import MinusIcon from 'vue-material-design-icons/MinusCircle' |
| | | import io from "socket.io-client"; |
| | | |
| | | export default { |
| | | name: "funcView", |
| | |
| | | ] |
| | | }, |
| | | defaultActive: "", |
| | | //菜单列表 |
| | | menuList: [], |
| | | //iframe路径 |
| | | path: "", |
| | | imgPages: [], |
| | | viewType: "", |
| | | |
| | | //所选菜单 |
| | | menu: "", |
| | | //图册翻页配置 |
| | | flipConfig: { |
| | | pages: [], |
| | | pagesHiRes: [], |
| | | hasMouse: true, |
| | | pageNum: null, |
| | | } |
| | | }, |
| | | socketIoClient: null, |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | }, |
| | | //文件预览 |
| | | viewFile(data) { |
| | | this.viewType = data.type |
| | | this.menu = data |
| | | let url |
| | | if (data.type == 2) { |
| | | let fileArray = data.fileUrl |
| | | fileArray.forEach(e => { |
| | | this.flipConfig.pages.push(e.value) |
| | | }) |
| | | } else if (data.type == 3) { |
| | | url = data.fileUrl[0].value |
| | | this.path = 'http://192.168.0.200:8012/onlinePreview?url=' + encodeURIComponent(Base64.encode(url)) |
| | | }else if (data.type == 1){ |
| | | url = data.fileUrl[0].value |
| | | this.path = 'http://192.168.0.200:8012/onlinePreview?url=' + encodeURIComponent(Base64.encode(url)) |
| | | if (data.property == 1) { |
| | | |
| | | } else if (data.property == 2) { |
| | | if (data.type == 2) { |
| | | let fileArray = data.fileUrl |
| | | this.flipConfig.pages = [] |
| | | fileArray.forEach(e => { |
| | | this.flipConfig.pages.push(e.value) |
| | | }) |
| | | } else if (data.type == 3) { |
| | | url = data.fileUrl[0].value |
| | | this.path = 'http://192.168.0.200:8012/onlinePreview?url=' + encodeURIComponent(Base64.encode(url)) |
| | | } else if (data.type == 1) { |
| | | url = data.fileUrl[0].value |
| | | this.path = 'http://192.168.0.200:8012/onlinePreview?url=' + encodeURIComponent(Base64.encode(url)) |
| | | } |
| | | } else if (data.property == 3) { |
| | | |
| | | } |
| | | |
| | | |
| | | }, |
| | | |
| | | connect(form, done) { |
| | | let serveUri = 'http://192.168.0.200:10246' |
| | | let params = { |
| | | modulesId: form.modulesId, |
| | | isView: true |
| | | } |
| | | |
| | | this.socketIoClient = io.connect(serveUri, { |
| | | 'force new connection': true, |
| | | 'query': 'connectInfo=' + JSON.stringify(params) |
| | | }); |
| | | |
| | | //监听与服务器的连接状态 |
| | | this.socketIoClient.on("connect", () => { |
| | | done() |
| | | }) |
| | | |
| | | //监听服务器发回的消息 |
| | | //连接成功 |
| | | this.socketIoClient.on("connectOk", (res) => { |
| | | this.menuList = res.data |
| | | this.$notify.success({ |
| | | title: '连接成功', |
| | | }); |
| | | }); |
| | | |
| | | //连接失败 |
| | | this.socketIoClient.on("connectError", (res) => { |
| | | this.$notify.error({ |
| | | title: res.msg, |
| | | }); |
| | | }); |
| | | |
| | | this.socketIoClient.on("menuChange", (res) => { |
| | | this.handleSelect(res) |
| | | }); |
| | | |
| | | //上一页 |
| | | this.socketIoClient.on("previousPage", (res) => { |
| | | this.left() |
| | | }); |
| | | |
| | | //下一页 |
| | | this.socketIoClient.on("nextPage", (res) => { |
| | | this.right() |
| | | }); |
| | | |
| | | }, |
| | | left() { |
| | | this.$refs.flipbook.flipLeft() |
| | | }, |
| | | right() { |
| | | this.$refs.flipbook.flipRight() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .show{ |
| | | .show { |
| | | background: #404040; |
| | | width: 100%; |
| | | height: 100vh; |
| | | } |
| | | |
| | | .show > div { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | img { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .el-select { |
| | |
| | | height: 100vh; |
| | | } |
| | | |
| | | .page-num{ |
| | | .page-num { |
| | | color: white; |
| | | } |
| | | |