| | |
| | | <template> |
| | | <div> |
| | | <avue-form ref="form" v-model="form" :option="option" @submit="getMenuList"></avue-form> |
| | | <avue-form ref="form" v-model="form" :option="option" @submit="connect"></avue-form> |
| | | <div class="menu-btn-group"> |
| | | <el-button size="small" v-for="data in menuList" :index="data.id" :key="data.id" @click="menuChange(data)"> |
| | | {{ data.name }} |
| | |
| | | <script> |
| | | import {getAll} from "@/api/modules/function"; |
| | | import io from "socket.io-client"; |
| | | import {getAllEq} from "@/api/equipment/equipment"; |
| | | |
| | | export default { |
| | | name: "funcController", |
| | | data() { |
| | | //设备编码校验 |
| | | var equipmentList = [] |
| | | getAllEq().then(res=>{ |
| | | equipmentList = res.data.data |
| | | }) |
| | | let validateEquipment = (rule, value, callback) => { |
| | | if (value) { |
| | | let filterArray = equipmentList.filter(e=>{ |
| | | return e.code == value && e.type == 1 |
| | | }) |
| | | if (filterArray.length>0){ |
| | | callback() |
| | | }else { |
| | | callback(new Error("请输入正确的控制器设备码")) |
| | | } |
| | | } else { |
| | | callback(new Error('请输入设备码')); |
| | | } |
| | | }; |
| | | return { |
| | | form:{}, |
| | | option:{ |
| | | emptyBtn:false, |
| | | submitText: "连接", |
| | | menuSpan: 6, |
| | | menuSpan: 1, |
| | | column:[ |
| | | { |
| | | label:"当前设备", |
| | | prop:"currentDevice", |
| | | label:"控制器设备编码", |
| | | labelWidth:150, |
| | | prop:"controllerEquipmentCode", |
| | | span:6, |
| | | rules: [{ |
| | | required: true, |
| | | trigger: "blur", |
| | | validator:validateEquipment, |
| | | }], |
| | | }, |
| | | { |
| | | label:"控制模块", |
| | | prop:"modulesId", |
| | | label:"显示器设备编码", |
| | | labelWidth:150, |
| | | prop:"viewEquipmentCode", |
| | | span:6, |
| | | type: "select", |
| | | dicUrl: `/api/equipment/equipment/all?type=2`, |
| | | props: { |
| | | label: "code", |
| | | value: "code" |
| | | }, |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择显示器", |
| | | trigger: "blur", |
| | | }], |
| | | }, |
| | | ] |
| | | }, |
| | |
| | | mounted() { |
| | | }, |
| | | created() { |
| | | this.connect() |
| | | }, |
| | | methods: { |
| | | getMenuList(form,done){ |
| | | this.sendMsg("putInClientMap",null) |
| | | done() |
| | | }, |
| | | menuChange(data){ |
| | | this.currentClick = data |
| | | this.sendMsg("menuChange",data.id) |
| | | }, |
| | | sendMsg(msgName,data) { |
| | | let msg = { |
| | | current:this.form.currentDevice, |
| | | target:this.form.modulesId, |
| | | current:this.form.controllerEquipmentCode, |
| | | target:this.form.viewEquipmentCode, |
| | | msg :data |
| | | } |
| | | this.socketIoClient.emit(msgName,JSON.stringify(msg)) |
| | | }, |
| | | connect(){ |
| | | |
| | | // if (this.socketIoClient != null){ |
| | | //连接 |
| | | connect(form,done){ |
| | | // if (this.socketIoClient !=null ){ |
| | | // this.socketIoClient.disconnect() |
| | | // this.socketIoClient = null |
| | | // } |
| | | |
| | | let serveUri = 'http://192.168.0.200:10246' |
| | | // let params={ |
| | | // modulesId:form.modulesId, |
| | | // controllerId : form.currentDevice, |
| | | // isView:false |
| | | // } |
| | | |
| | | let params = { |
| | | current :form.controllerEquipmentCode |
| | | } |
| | | this.socketIoClient = io.connect(serveUri, { |
| | | // 'force new connection': true, |
| | | // 'query': 'connectInfo=' + JSON.stringify(params) |
| | | 'force new connection': true, |
| | | 'query': 'connectInfo=' + JSON.stringify(params) |
| | | }); |
| | | |
| | | //监听与服务器的连接状态 |
| | | this.socketIoClient.on("connect",()=>{ |
| | | // done() |
| | | done() |
| | | }) |
| | | |
| | | //监听服务器发回的消息 |
| | | //连接成功 |
| | | this.socketIoClient.on("connectOk", (res) => { |
| | | this.menuList = res.data |
| | | this.$notify.success({ |
| | | title: '连接成功', |
| | | }); |
| | | if (res.code == 200){ |
| | | let params = { |
| | | equipmentCode :form.viewEquipmentCode |
| | | } |
| | | getAll(params).then(res=>{ |
| | | if (res.data.code == 200){ |
| | | this.menuList = res.data.data |
| | | } |
| | | }) |
| | | } |
| | | }); |
| | | |
| | | //连接失败 |
| | | this.socketIoClient.on("connectError", (res) => { |
| | | this.$notify.error({ |
| | | title: res.msg, |
| | | }); |
| | | }); |
| | | |
| | | }, |
| | | } |
| | | } |