webguicomp/cards/MQTT1Card.vue

92 lines
3.5 KiB
Vue

<template>
<q-card flat class="card">
<q-card-section>
<div class="text-h6">MQTT</div>
</q-card-section>
<q-card-section class="q-pt-none">
<q-expansion-item :label="list_header(1)">
<q-card flat bordered>
<q-card-section class="q-pt-sm">
<q-toggle v-model="data.mqtt_1_enab" label="Eanble MQTT" />
<div class="row">
<div class="col-8"><q-input v-model="data.mqtt_1_serv" label="MQTT broker URL" /></div>
<div class="col-4 q-pl-sm"><q-input type="number" v-model="data.mqtt_1_port" label="Port" /></div>
</div>
<div><q-input v-model="data.mqtt_1_syst" label="Global system name" /></div>
<div><q-input v-model="data.mqtt_1_group" label="Group name" /></div>
<div><q-input v-model="data.mqtt_1_clid" label="Device ID" /></div>
<div class="row">
<div class="col-6"><q-input v-model="data.mqtt_1_uname" label="Login" /></div>
<div class="col-6 q-pl-sm"><q-input type="password" v-model="data.mqtt_1_pass" label="Password" />
</div>
</div>
<div class="q-pa-md">
<q-btn flat class="btn" label="Test message" @click="PostData({ mqtt_1_test: '' }, 1, 0)"></q-btn>
</div>
</q-card-section>
</q-card>
</q-expansion-item>
<q-expansion-item :label="list_header(2)">
<q-card flat bordered>
<q-card-section class="q-pt-sm">
<q-toggle v-model="data.mqtt_2_enab" label="Eanble MQTT" />
<div class="row">
<div class="col-8"><q-input v-model="data.mqtt_2_serv" label="MQTT broker URL" /></div>
<div class="col-4 q-pl-sm"><q-input type="number" v-model="data.mqtt_2_port" label="Port" /></div>
</div>
<div><q-input v-model="data.mqtt_2_syst" label="Global system name" /></div>
<div><q-input v-model="data.mqtt_2_group" label="Group name" /></div>
<div><q-input v-model="data.mqtt_2_clid" label="Device ID" /></div>
<div class="row">
<div class="col-6"><q-input v-model="data.mqtt_2_uname" label="Login" /></div>
<div class="col-6 q-pl-sm"><q-input type="password" v-model="data.mqtt_2_pass" label="Password" />
</div>
</div>
<div class="q-pa-md">
<q-btn flat class="btn" label="Test message" @click="PostData({ mqtt_2_test: '' }, 1, 0)"></q-btn>
</div>
</q-card-section>
</q-card>
</q-expansion-item>
</q-card-section>
<CardActions :senddata="data"></CardActions>
</q-card>
</template>
<script setup>
import { reactive } from "vue";
import { PostData } from "components/webguicomp//network";
import CardActions from "components/webguicomp/CardActions.vue"
function list_header(rec) {
var string = (rec == 1) ? data.mqtt_1_serv : data.mqtt_2_serv;
var length = 20;
var trimmedString = string.length > length ?
string.substring(0, length - 3) + "..." :
string;
return `MQTT ${rec} [${trimmedString}]`;
}
const init = {
mqtt_1_enab: false,
mqtt_1_serv: "",
mqtt_1_port: 1000,
mqtt_1_syst: "",
mqtt_1_group: "",
mqtt_1_clid: "",
mqtt_1_uname: "",
mqtt_1_pass: "",
mqtt_2_enab: false,
mqtt_2_serv: "",
mqtt_2_port: 1000,
mqtt_2_syst: "",
mqtt_2_group: "",
mqtt_2_clid: "",
mqtt_2_uname: "",
mqtt_2_pass: ""
}
const data = reactive(init);
PostData(data, 2, 0, null);
</script>