You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
1.7 KiB
Vue
92 lines
1.7 KiB
Vue
<template>
|
|
<v-layout fluid fill-height>
|
|
<template v-if="isLoading">
|
|
<v-overlay :absolute="true" :value="true">
|
|
<v-progress-circular indeterminate size="64"></v-progress-circular>
|
|
</v-overlay>
|
|
</template>
|
|
|
|
<template v-if="true">
|
|
<v-container>
|
|
|
|
<v-snackbar
|
|
v-model="isSnackbar"
|
|
:timeout="3000"
|
|
color="success"
|
|
>
|
|
i8n:saved
|
|
</v-snackbar>
|
|
|
|
<v-card
|
|
class="mx-auto"
|
|
width="400"
|
|
>
|
|
<v-card-text>
|
|
<v-select
|
|
:items="deviceMode"
|
|
v-model="settings.device_mode"
|
|
label="i8n:Device mode"
|
|
placeholder=""
|
|
></v-select>
|
|
|
|
<v-text-field
|
|
label="i8n:Cloud server"
|
|
v-model="settings.cloud_server"
|
|
placeholder="i8n:https://"
|
|
></v-text-field>
|
|
|
|
<v-btn class="mr-4 primary" @click="onSave">i8n:save</v-btn>
|
|
</v-card-text>
|
|
</v-card>
|
|
|
|
</v-container>
|
|
|
|
</template>
|
|
</v-layout>
|
|
</template>
|
|
|
|
<script>
|
|
import apiDevice from '../api/device'
|
|
|
|
export default {
|
|
name: "Settings",
|
|
data: () => ({
|
|
isLoading: true,
|
|
isSnackbar: false,
|
|
|
|
settings: {
|
|
device_mode: null,
|
|
cloud_server: null
|
|
},
|
|
|
|
deviceMode: [
|
|
{text: 'Active', value: 'active'},
|
|
{text: 'Passive', value: 'passive'}
|
|
]
|
|
}),
|
|
created () {
|
|
apiDevice.getSettings(settings => {
|
|
this.settings = settings
|
|
|
|
this.isLoading = false
|
|
})
|
|
},
|
|
methods: {
|
|
onSave () {
|
|
this.isLoading = true
|
|
|
|
apiDevice.putSettings(this.settings, (data) => {
|
|
console.log(data)
|
|
this.isLoading = false
|
|
this.isSnackbar = true
|
|
})
|
|
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
|
|
</style>
|