| | |
| | | <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="getMenuList"> |
| | | <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"; |
| | | import {getDetail} from "@/api/modules/modules"; |
| | | |
| | | export default { |
| | | name: "funcView", |
| | |
| | | ] |
| | | }, |
| | | defaultActive: "", |
| | | //菜单列表 |
| | | menuList: [], |
| | | //iframe路径 |
| | | path: "", |
| | | imgPages: [], |
| | | viewType: "", |
| | | |
| | | //所选菜单 |
| | | menu: "", |
| | | //图册翻页配置 |
| | | flipConfig: { |
| | | pages: [], |
| | | pagesHiRes: [], |
| | | hasMouse: true, |
| | | pageNum: null, |
| | | } |
| | | }, |
| | | socketIoClient: null, |
| | | } |
| | | }, |
| | | created() { |
| | | this.connect() |
| | | }, |
| | | mounted() { |
| | | }, |
| | | methods: { |
| | | handleSubmit(form, done) { |
| | | getAll(form).then(res => { |
| | | if (res.data.code == 200) { |
| | | let data = res.data.data |
| | | this.menuList = data |
| | | done() |
| | | } |
| | | }) |
| | | }, |
| | | handleSelect(index) { |
| | | let selectData = this.menuList.filter(e => { |
| | | return e.id == index |
| | |
| | | }, |
| | | //文件预览 |
| | | 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 = [] |
| | | if (fileArray.length>0 && fileArray){ |
| | | fileArray.forEach(e => { |
| | | this.flipConfig.pages.push(e.value) |
| | | }) |
| | | } |
| | | } else if (data.type == 3) { |
| | | if (data.fileUrl&&data.fileUrl.length>0){ |
| | | url = data.fileUrl[0].value |
| | | this.path = 'http://192.168.0.200:8012/onlinePreview?url=' + encodeURIComponent(Base64.encode(url)) |
| | | } |
| | | } else if (data.type == 1) { |
| | | if (data.fileUrl&&data.fileUrl.length>0){ |
| | | 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() { |
| | | |
| | | // if (this.socketIoClient != null){ |
| | | // this.socketIoClient.disconnect() |
| | | // this.socketIoClient = null |
| | | // } |
| | | |
| | | |
| | | 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) => { |
| | | console.log(res) |
| | | this.handleSelect(res) |
| | | }); |
| | | |
| | | //上一页 |
| | | this.socketIoClient.on("previousPage", (res) => { |
| | | console.log(res) |
| | | this.left() |
| | | }); |
| | | |
| | | //下一页 |
| | | this.socketIoClient.on("nextPage", (res) => { |
| | | console.log(res) |
| | | this.right() |
| | | }); |
| | | |
| | | }, |
| | | getMenuList(form,done){ |
| | | this.sendMsg("putInClientMap",null) |
| | | done() |
| | | }, |
| | | sendMsg(msgName,data){ |
| | | let msg = { |
| | | current:this.form.modulesId, |
| | | msg :data |
| | | } |
| | | this.socketIoClient.emit(msgName,JSON.stringify(msg)) |
| | | }, |
| | | 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; |
| | | } |
| | | |