|
@@ -26,10 +26,11 @@
|
|
|
</el-form>
|
|
|
|
|
|
<el-table border v-loading="loading" :data="sensorList">
|
|
|
- <el-table-column label="设备编号" align="left" prop="hardwareNum" />
|
|
|
- <el-table-column label="学院" align="center" prop="deptName" width="250"/>
|
|
|
+ <el-table-column label="设备名称" align="left" prop="deviceName" show-overflow-tooltip/>
|
|
|
+ <el-table-column label="设备编号" align="left" prop="hardwareNum" show-overflow-tooltip/>
|
|
|
+ <el-table-column label="学院" align="center" prop="deptName" width="200" show-overflow-tooltip/>
|
|
|
<el-table-column label="位置" align="center" prop="position" width="250" show-overflow-tooltip/>
|
|
|
- <el-table-column label="设备状态" align="center" prop="status">
|
|
|
+ <el-table-column label="设备状态" align="center" prop="status" width="120">
|
|
|
<template slot-scope="scope">
|
|
|
<el-switch
|
|
|
v-hasPermi="['laboratory:hardware7:changeStatus']"
|
|
@@ -44,9 +45,9 @@
|
|
|
</el-switch>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="创建时间" align="center" prop="createTime" width="250"/>
|
|
|
- <el-table-column label="创建人" align="center" prop="createBy" width="250"/>
|
|
|
- <el-table-column label="操作" align="left" class-name="small-padding fixed-width" width="220">
|
|
|
+ <el-table-column label="创建时间" align="center" prop="createTime" width="200" show-overflow-tooltip/>
|
|
|
+ <el-table-column label="创建人" align="center" prop="createBy" width="200" show-overflow-tooltip/>
|
|
|
+ <el-table-column label="操作" align="left" class-name="small-padding fixed-width" width="150">
|
|
|
<template slot-scope="scope">
|
|
|
<div class="button-box">
|
|
|
<p class="table-min-button"
|
|
@@ -72,10 +73,13 @@
|
|
|
@pagination="getList"
|
|
|
/>
|
|
|
<!-- 添加或修改传感器对话框 -->
|
|
|
- <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body class="recognizer add-hardware-dialog-box">
|
|
|
- <el-form ref="form" :model="form" :rules="rules" :inline="true">
|
|
|
+ <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body class="recognizer recognizer-manage add-hardware-dialog-box">
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" :inline="true" label-width="130px">
|
|
|
+ <el-form-item label="设备名称" prop="deviceName">
|
|
|
+ <el-input v-model="form.deviceName" maxlength="30" placeholder="请输入识别器编号" style="width: 400px"/>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="识别器编号" prop="hardwareNum">
|
|
|
- <el-input v-model="form.hardwareNum" placeholder="请输入识别器编号" style="width: 400px"/>
|
|
|
+ <el-input v-model="form.hardwareNum" maxlength="30" placeholder="请输入识别器编号" style="width: 400px"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="所属实验室" prop="subjectId">
|
|
|
<el-select v-model="form.subjectId" placeholder="请选择实验室" style="width: 400px">
|
|
@@ -87,23 +91,28 @@
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="IP地址" >
|
|
|
- <el-input v-model="form.ipAddress" placeholder="请输入IP地址" style="width: 400px"/>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="连接方式">
|
|
|
+ <div class="form-input-ip-box">
|
|
|
+ <el-form-item label="IP地址" label-width="130px" prop="ipAddress" class="form-ip">
|
|
|
+ <el-input v-model="form.ipAddress" maxlength="30" placeholder="请输入IP地址"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="端口" label-width="54px" prop="port" class="form-port">
|
|
|
+ <el-input style="width:120px;" maxlength="5" v-model="form.port" placeholder="请输入端口"/>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <el-form-item label="连接方式" prop="manufacturerType">
|
|
|
<el-select v-model="form.manufacturerType" placeholder="请选择" style="width:400px;" >
|
|
|
<el-option :label="item.dictLabel" :value="item.dictValue" v-for="(item,index) in materialTypeList" :key="index"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="推送频率" >
|
|
|
+ <el-form-item label="推送频率" prop="sessionIndex">
|
|
|
<el-select v-model="form.sessionIndex" placeholder="请选择设备推送频率" style="width:400px;">
|
|
|
<el-option label="最大" value="0"></el-option>
|
|
|
<el-option label="中等" value="1"></el-option>
|
|
|
<el-option label="最小" value="2"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="天线数量" >
|
|
|
+ <el-form-item label="天线数量" prop="channels">
|
|
|
<el-select v-model="form.channels" placeholder="请选择信道数量" @change="antennaNumFun()" style="width:400px;">
|
|
|
<el-option label="1" value="1"></el-option>
|
|
|
<el-option label="2" value="2"></el-option>
|
|
@@ -115,7 +124,7 @@
|
|
|
<el-row v-for="(item,index) in antennaNum" :key="index">
|
|
|
<el-col :span="12">
|
|
|
<el-form-item :label="(index+1)+'号天线感应距离'">
|
|
|
- <el-input-number v-model="uniformPower[index]" placeholder="请输入设备输出频率" style="width:140px;"/>
|
|
|
+ <el-input-number v-model="uniformPower[index]" maxlength="10" placeholder="请输入设备输出频率" style="width:140px;"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
@@ -162,6 +171,20 @@ export default {
|
|
|
name: "Sensor",
|
|
|
components: { Treeselect },
|
|
|
data() {
|
|
|
+ const ipVerification = (rule, value, callback) => {
|
|
|
+ if(!/^((2((5[0-5])|([0-4]\d)))|([0-1]?\d{1,2}))(\.((2((5[0-5])|([0-4]\d)))|([0-1]?\d{1,2}))){3}$/.test(value)) {
|
|
|
+ callback(new Error("IP地址错误"));
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ };
|
|
|
+ const portVerification = (rule, value, callback) => {
|
|
|
+ if(!/^[0-9]+$/.test(value)) {
|
|
|
+ callback(new Error("端口号错误"));
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ };
|
|
|
return {
|
|
|
// 遮罩层
|
|
|
loading: true,
|
|
@@ -185,14 +208,16 @@ export default {
|
|
|
// 表单参数
|
|
|
form: {
|
|
|
id:'',
|
|
|
+ deviceName:'',
|
|
|
hardwareNum:'',
|
|
|
subjectId:'',
|
|
|
deviceType:'7',
|
|
|
ipAddress:'',//ip地址
|
|
|
+ port:'',//ip地址
|
|
|
channels:4,//信道
|
|
|
sessionIndex:0,//设备推送频率
|
|
|
uniformPower:'',//设备推送频率
|
|
|
- manufacturerType:'',//供应商
|
|
|
+ manufacturerType:null,//连接方式
|
|
|
},
|
|
|
materialTypeList:[],
|
|
|
uniformPower:[20,20,20,20],
|
|
@@ -201,15 +226,32 @@ export default {
|
|
|
detectionArr:[],//检测类型数组
|
|
|
// 表单校验
|
|
|
rules: {
|
|
|
- name:[
|
|
|
- {required: true, message: '识别器名称不能为空', trigger: 'blur'}
|
|
|
+ deviceName:[
|
|
|
+ {required: true, message: '设备名称不能为空', trigger: 'blur'}
|
|
|
],
|
|
|
hardwareNum:[
|
|
|
{required: true, message: '识别器编号不能为空', trigger: 'blur'}
|
|
|
],
|
|
|
subjectId:[
|
|
|
{required: true, message: '所属实验室不能为空', trigger: 'blur'}
|
|
|
- ]
|
|
|
+ ],
|
|
|
+ ipAddress:[
|
|
|
+ {required: true, message: 'IP地址不能为空', trigger: 'blur'},
|
|
|
+ { required: true, validator: ipVerification, trigger: "blur" },
|
|
|
+ ],
|
|
|
+ port:[
|
|
|
+ {required: true, message: '端口不能为空', trigger: 'blur'},
|
|
|
+ { required: true, validator: portVerification, trigger: "blur" },
|
|
|
+ ],
|
|
|
+ manufacturerType:[
|
|
|
+ {required: true, message: '请选择连接方式', trigger: 'blur'},
|
|
|
+ ],
|
|
|
+ sessionIndex:[
|
|
|
+ {required: true, message: '请选择推送频率', trigger: 'blur'},
|
|
|
+ ],
|
|
|
+ channels:[
|
|
|
+ {required: true, message: '请选择天线数量', trigger: 'blur'},
|
|
|
+ ],
|
|
|
},
|
|
|
};
|
|
|
},
|
|
@@ -309,9 +351,12 @@ export default {
|
|
|
id: null,
|
|
|
name: null,
|
|
|
deviceType:'7',
|
|
|
+ deviceName:null,
|
|
|
hardwareNum: null,
|
|
|
subjectId: null,
|
|
|
ipAddress: null,
|
|
|
+ port: null,
|
|
|
+ manufacturerType:null,
|
|
|
channels: '4',
|
|
|
sessionIndex: '0',
|
|
|
uniformPower: '',
|
|
@@ -351,14 +396,16 @@ export default {
|
|
|
let _this=this;
|
|
|
this.open = true;
|
|
|
this.title = "修改识别器";
|
|
|
- this.form.id=row.id
|
|
|
- this.form.deviceType='7'
|
|
|
- this.form.hardwareNum=row.hardwareNum
|
|
|
- this.form.subjectId=row.subjectId
|
|
|
- this.form.ipAddress=row.ipAddress
|
|
|
- this.form.channels=row.channels+''
|
|
|
- this.form.sessionIndex=row.sessionIndex+''
|
|
|
- this.form.manufacturerType=row.manufacturerType+''
|
|
|
+ this.form.id=row.id;
|
|
|
+ this.form.deviceType='7';
|
|
|
+ this.form.deviceName=row.deviceName;
|
|
|
+ this.form.hardwareNum=row.hardwareNum;
|
|
|
+ this.form.subjectId=row.subjectId;
|
|
|
+ this.form.ipAddress=row.ipAddress;
|
|
|
+ this.form.port=row.port;
|
|
|
+ this.form.channels=row.channels+'';
|
|
|
+ this.form.sessionIndex=row.sessionIndex+'';
|
|
|
+ this.form.manufacturerType=row.manufacturerType+'';
|
|
|
//this.uniformPower=row.uniformPower.split(',')
|
|
|
this.antennaNum=[];
|
|
|
this.uniformPower=[];
|
|
@@ -373,7 +420,7 @@ export default {
|
|
|
_this.uniformPower.push(item.split(':')[0])
|
|
|
_this.detection.push(item.split(':')[1])
|
|
|
})
|
|
|
-
|
|
|
+ this.$forceUpdate();
|
|
|
},
|
|
|
/** 提交按钮 */
|
|
|
submitForm() {
|
|
@@ -481,9 +528,9 @@ export default {
|
|
|
left: 21%!important;
|
|
|
}
|
|
|
}
|
|
|
-.recognizer{
|
|
|
- .el-form-item__label{
|
|
|
- width:130px!important;
|
|
|
+.recognizer-manage{
|
|
|
+ .el-form-item__error {
|
|
|
+ left: 0 !important;
|
|
|
}
|
|
|
//.el-input--suffix{
|
|
|
// width:340px!important;
|
|
@@ -497,6 +544,27 @@ export default {
|
|
|
//.el-input-number--medium{
|
|
|
// width:240px!important;
|
|
|
//}
|
|
|
+ .form-input-ip-box{
|
|
|
+ display: flex;
|
|
|
+ width:550px;
|
|
|
+ .form-ip{
|
|
|
+ margin-right:0;
|
|
|
+ width:340px;
|
|
|
+ input{
|
|
|
+ width:200px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .form-port{
|
|
|
+ margin-right:0;
|
|
|
+ flex:1;
|
|
|
+ input{
|
|
|
+ width:136px;
|
|
|
+ }
|
|
|
+ input{
|
|
|
+ /*width:120px;*/
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|
|
|
|