mirror of
https://gitee.com/beecue/fastbee.git
synced 2025-12-17 16:36:03 +08:00
设备编号校验,只能为字母和数字
This commit is contained in:
@@ -230,7 +230,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div style="display:table;">
|
<div style="display:table;">
|
||||||
<div style="width:70px;font-weight: bold;display:table-cell;">赞助用户:</div>
|
<div style="width:70px;font-weight: bold;display:table-cell;">赞助用户:</div>
|
||||||
<div style="display:table-cell;line-height:22px;"><b style="color:#F56C6C">可用于商业用途,并提供移动端源码,包含一年的更新。</b>但是不能低价或批量转售源码,不能随意分发源码。目前赞助费为3000元,项目不断完善后会对应增加费用。</div>
|
<div style="display:table-cell;line-height:22px;"><b style="color:#F56C6C">可用于商业用途,并提供移动端源码,包含一年的更新。</b>但是不能低价或批量转售源码,不能随意分发源码。目前赞助费为3500元,项目不断完善后会对应增加费用。</div>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-card shadow="hover" style="padding:20px 0;margin-bottom:40px;font-size:14px;">
|
<el-card shadow="hover" style="padding:20px 0;margin-bottom:40px;font-size:14px;">
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<template slot="label">
|
<template slot="label">
|
||||||
<span style="color:red;">* </span>设备编号
|
<span style="color:red;">* </span>设备编号
|
||||||
</template>
|
</template>
|
||||||
<el-input v-model="form.serialNumber" placeholder="请输入设备编号" :disabled="form.status!=1">
|
<el-input v-model="form.serialNumber" placeholder="请输入设备编号" :disabled="form.status!=1" maxlength="32">
|
||||||
<el-button slot="append" @click="generateNum" :loading="genDisabled" :disabled="form.status!=1">生成</el-button>
|
<el-button slot="append" @click="generateNum" :loading="genDisabled" :disabled="form.status!=1">生成</el-button>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="10">
|
<el-col :span="10">
|
||||||
<div style="border:1px solid #ccc;width:200px;text-align: center;margin-left:20px;margin-top:-10px;">
|
<div style="border:1px solid #ccc;width:200px;text-align: center;margin-left:20px;margin-top:-10px;">
|
||||||
<vue-qr :text="qrText" :size="200" ></vue-qr>
|
<vue-qr :text="qrText" :size="200"></vue-qr>
|
||||||
<div style="padding-bottom:10px;">设备二维码</div>
|
<div style="padding-bottom:10px;">设备二维码</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -232,7 +232,7 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 二维码内容
|
// 二维码内容
|
||||||
qrText:'wumei-smart',
|
qrText: 'wumei-smart',
|
||||||
// 打开设备配置对话框
|
// 打开设备配置对话框
|
||||||
openSummary: false,
|
openSummary: false,
|
||||||
// 是否加载完成
|
// 是否加载完成
|
||||||
@@ -271,6 +271,11 @@ export default {
|
|||||||
required: true,
|
required: true,
|
||||||
message: "设备名称不能为空",
|
message: "设备名称不能为空",
|
||||||
trigger: "blur"
|
trigger: "blur"
|
||||||
|
}, {
|
||||||
|
min: 2,
|
||||||
|
max: 5,
|
||||||
|
message: '设备名称长度在 2 到 5 个字符',
|
||||||
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
firmwareVersion: [{
|
firmwareVersion: [{
|
||||||
required: true,
|
required: true,
|
||||||
@@ -294,61 +299,61 @@ export default {
|
|||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
// 取消订阅主题
|
// 取消订阅主题
|
||||||
this.mqttUnSubscribe(this.form);
|
this.mqttUnSubscribe(this.form);
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/* 连接Mqtt消息服务器 */
|
/* 连接Mqtt消息服务器 */
|
||||||
async connectMqtt() {
|
async connectMqtt() {
|
||||||
if (this.$mqttTool.client == null) {
|
if (this.$mqttTool.client == null) {
|
||||||
await this.$mqttTool.connect(this.vuex_token);
|
await this.$mqttTool.connect(this.vuex_token);
|
||||||
}
|
}
|
||||||
this.mqttCallback();
|
this.mqttCallback();
|
||||||
},
|
},
|
||||||
/* Mqtt回调处理 */
|
/* Mqtt回调处理 */
|
||||||
mqttCallback() {
|
mqttCallback() {
|
||||||
this.$mqttTool.client.on('message', (topic, message, buffer) => {
|
this.$mqttTool.client.on('message', (topic, message, buffer) => {
|
||||||
let topics = topic.split('/');
|
let topics = topic.split('/');
|
||||||
let productId = topics[1];
|
let productId = topics[1];
|
||||||
let deviceNum = topics[2];
|
let deviceNum = topics[2];
|
||||||
message = JSON.parse(message.toString());
|
message = JSON.parse(message.toString());
|
||||||
if (topics[3] == 'status') {
|
if (topics[3] == 'status') {
|
||||||
console.log('接收到【设备状态-详情】主题:', topic);
|
console.log('接收到【设备状态-详情】主题:', topic);
|
||||||
console.log('接收到【设备状态-详情】内容:', message);
|
console.log('接收到【设备状态-详情】内容:', message);
|
||||||
// 更新列表中设备的状态
|
// 更新列表中设备的状态
|
||||||
if (this.form.serialNumber == deviceNum) {
|
if (this.form.serialNumber == deviceNum) {
|
||||||
this.oldDeviceStatus = message.status;
|
this.oldDeviceStatus = message.status;
|
||||||
this.form.status = message.status;
|
this.form.status = message.status;
|
||||||
this.form.isShadow = message.isShadow;
|
this.form.isShadow = message.isShadow;
|
||||||
this.form.rssid = message.rssid;
|
this.form.rssid = message.rssid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
/** Mqtt订阅主题 */
|
/** Mqtt订阅主题 */
|
||||||
mqttSubscribe(device) {
|
mqttSubscribe(device) {
|
||||||
// 订阅当前设备状态和实时监测
|
// 订阅当前设备状态和实时监测
|
||||||
let topicStatus = '/' + device.productId + '/' + device.serialNumber + '/status/post';
|
let topicStatus = '/' + device.productId + '/' + device.serialNumber + '/status/post';
|
||||||
let topicProperty = '/' + device.productId + '/' + device.serialNumber + '/property/post';
|
let topicProperty = '/' + device.productId + '/' + device.serialNumber + '/property/post';
|
||||||
let topicFunction = '/' + device.productId + '/' + device.serialNumber + '/function/post';
|
let topicFunction = '/' + device.productId + '/' + device.serialNumber + '/function/post';
|
||||||
let topics = [];
|
let topics = [];
|
||||||
topics.push(topicStatus);
|
topics.push(topicStatus);
|
||||||
topics.push(topicProperty);
|
topics.push(topicProperty);
|
||||||
topics.push(topicFunction);
|
topics.push(topicFunction);
|
||||||
this.$mqttTool.subscribe(topics);
|
this.$mqttTool.subscribe(topics);
|
||||||
},
|
},
|
||||||
/** Mqtt取消订阅主题 */
|
/** Mqtt取消订阅主题 */
|
||||||
mqttUnSubscribe(device) {
|
mqttUnSubscribe(device) {
|
||||||
// 订阅当前设备状态和实时监测
|
// 订阅当前设备状态和实时监测
|
||||||
let topicStatus = '/' + device.productId + '/' + device.serialNumber + '/status/post';
|
let topicStatus = '/' + device.productId + '/' + device.serialNumber + '/status/post';
|
||||||
let topicProperty = '/' + device.productId + '/' + device.serialNumber + '/property/post';
|
let topicProperty = '/' + device.productId + '/' + device.serialNumber + '/property/post';
|
||||||
let topicFunction = '/' + device.productId + '/' + device.serialNumber + '/function/post';
|
let topicFunction = '/' + device.productId + '/' + device.serialNumber + '/function/post';
|
||||||
let topics = [];
|
let topics = [];
|
||||||
topics.push(topicStatus);
|
topics.push(topicStatus);
|
||||||
topics.push(topicProperty);
|
topics.push(topicProperty);
|
||||||
topics.push(topicFunction);
|
topics.push(topicFunction);
|
||||||
console.log('取消订阅', topics);
|
console.log('取消订阅', topics);
|
||||||
this.$mqttTool.unsubscribe(topics);
|
this.$mqttTool.unsubscribe(topics);
|
||||||
},
|
},
|
||||||
|
|
||||||
// 获取子组件订阅的设备状态
|
// 获取子组件订阅的设备状态
|
||||||
getDeviceStatus(status) {
|
getDeviceStatus(status) {
|
||||||
@@ -374,7 +379,7 @@ export default {
|
|||||||
this.oldDeviceStatus = this.form.status;
|
this.oldDeviceStatus = this.form.status;
|
||||||
this.loadMap();
|
this.loadMap();
|
||||||
//Mqtt订阅
|
//Mqtt订阅
|
||||||
this.mqttSubscribe(this.form);
|
this.mqttSubscribe(this.form);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
/**加载地图*/
|
/**加载地图*/
|
||||||
@@ -429,6 +434,20 @@ export default {
|
|||||||
},
|
},
|
||||||
/** 提交按钮 */
|
/** 提交按钮 */
|
||||||
submitForm() {
|
submitForm() {
|
||||||
|
if (this.form.serialNumber == null || this.form.serialNumber == 0) {
|
||||||
|
this.$modal.alertError("设备编号不能为空");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let reg = /^[0-9a-zA-Z]+$/;
|
||||||
|
if (!reg.test(this.form.serialNumber)) {
|
||||||
|
this.$modal.alertError("设备编号只能是字母和数字");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this.form.productId == null || this.form.productId == 0) {
|
||||||
|
this.$modal.alertError("所属产品不能为空");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
this.$refs["form"].validate(valid => {
|
this.$refs["form"].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (this.form.deviceId != 0) {
|
if (this.form.deviceId != 0) {
|
||||||
@@ -476,13 +495,13 @@ export default {
|
|||||||
},
|
},
|
||||||
/**关闭物模型 */
|
/**关闭物模型 */
|
||||||
openSummaryDialog() {
|
openSummaryDialog() {
|
||||||
let json={
|
let json = {
|
||||||
type:1,// 1=扫码关联设备
|
type: 1, // 1=扫码关联设备
|
||||||
deviceNumber:this.form.serialNumber,
|
deviceNumber: this.form.serialNumber,
|
||||||
productId:this.form.productId,
|
productId: this.form.productId,
|
||||||
productName:this.form.productName,
|
productName: this.form.productName,
|
||||||
};
|
};
|
||||||
this.qrText=JSON.stringify(json);
|
this.qrText = JSON.stringify(json);
|
||||||
this.openSummary = true;
|
this.openSummary = true;
|
||||||
},
|
},
|
||||||
/**关闭物模型 */
|
/**关闭物模型 */
|
||||||
|
|||||||
Reference in New Issue
Block a user