From 84001b5d34d3344f2fa40126877c4903dd10f1f3 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 20 Mar 2023 17:10:04 +0800
Subject: [PATCH] socketio连接调整,显示页添加表单校验;控制页添加表单校验,显示设备改为下拉框
---
src/views/funcController.vue | 100 ++++++++++++++++--------
src/views/funcView.vue | 85 +++++++++++----------
2 files changed, 110 insertions(+), 75 deletions(-)
diff --git a/src/views/funcController.vue b/src/views/funcController.vue
index 540f690..e3b483b 100644
--- a/src/views/funcController.vue
+++ b/src/views/funcController.vue
@@ -1,6 +1,6 @@
<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 }}
@@ -18,26 +18,64 @@
<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",
+ }],
},
]
},
@@ -48,65 +86,57 @@
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,
});
});
-
},
}
}
diff --git a/src/views/funcView.vue b/src/views/funcView.vue
index 0a8d1a1..04749d1 100644
--- a/src/views/funcView.vue
+++ b/src/views/funcView.vue
@@ -3,8 +3,8 @@
<el-row>
<el-col :span="4">
<div class="search">
- <avue-form :option="option" v-model="form" @submit="getMenuList">
- <template slot-scope="{}" slot="modulesIdLabel">
+ <avue-form :option="option" v-model="form" @submit="connect">
+ <template slot-scope="{}" slot="equipmentCodeLabel">
<span></span>
</template>
</avue-form>
@@ -88,11 +88,31 @@
import MinusIcon from 'vue-material-design-icons/MinusCircle'
import io from "socket.io-client";
import {getDetail} from "@/api/modules/modules";
+import {getAllEq} from "@/api/equipment/equipment";
export default {
name: "funcView",
components: {Flipbook, LeftIcon, RightIcon, PlusIcon, MinusIcon},
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 == 2
+ })
+ if (filterArray.length>0){
+ callback()
+ }else {
+ callback(new Error("请输入正确的显示器设备码"))
+ }
+ } else {
+ callback(new Error('请输入设备码'));
+ }
+ };
return {
form: {},
option: {
@@ -101,16 +121,16 @@
submitText: '连接',
column: [
{
- label: "模块id",
+ label: "显示设备",
labelWidth: 15,
- prop: "modulesId",
+ prop: "equipmentCode",
type: "input",
span: 16,
labelslot: true,
rules: [{
required: true,
- message: "请输入模块id",
- trigger: "blur"
+ trigger: "blur",
+ validator:validateEquipment,
}],
},
]
@@ -133,7 +153,6 @@
}
},
created() {
- this.connect()
},
mounted() {
},
@@ -174,38 +193,38 @@
}
},
+ connect(form,done) {
- connect() {
-
- // if (this.socketIoClient != null){
+ // 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
- // }
-
+ let params = {
+ current :form.equipmentCode
+ }
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.equipmentCode
+ }
+ getAll(params).then(res=>{
+ if (res.data.code == 200){
+ this.menuList = res.data.data
+ this.$notify.success({title:"连接成功"})
+ }
+ })
+ }
});
//连接失败
@@ -216,33 +235,19 @@
});
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()
--
Gitblit v1.9.3