MqttConfigForm.vue 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <template>
  2. <el-form-item label="服务地址" prop="config.url">
  3. <el-input v-model="config.url" placeholder="请输入MQTT服务地址,如:mqtt://localhost:1883" />
  4. </el-form-item>
  5. <el-form-item label="用户名" prop="config.username">
  6. <el-input v-model="config.username" placeholder="请输入用户名" />
  7. </el-form-item>
  8. <el-form-item label="密码" prop="config.password">
  9. <el-input v-model="config.password" placeholder="请输入密码" show-password type="password" />
  10. </el-form-item>
  11. <el-form-item label="客户端ID" prop="config.clientId">
  12. <el-input v-model="config.clientId" placeholder="请输入客户端ID" />
  13. </el-form-item>
  14. <el-form-item label="主题" prop="config.topic">
  15. <el-input v-model="config.topic" placeholder="请输入主题" />
  16. </el-form-item>
  17. </template>
  18. <script lang="ts" setup>
  19. import { IoTDataBridgeConfigType, MqttConfig } from '@/api/iot/rule/databridge'
  20. import { useVModel } from '@vueuse/core'
  21. import { isEmpty } from '@/utils/is'
  22. defineOptions({ name: 'MqttConfigForm' })
  23. const props = defineProps<{
  24. modelValue: any
  25. }>()
  26. const emit = defineEmits(['update:modelValue'])
  27. const config = useVModel(props, 'modelValue', emit) as Ref<MqttConfig>
  28. /** 组件初始化 */
  29. onMounted(() => {
  30. if (!isEmpty(config.value)) {
  31. return
  32. }
  33. config.value = {
  34. type: IoTDataBridgeConfigType.MQTT,
  35. url: '',
  36. username: '',
  37. password: '',
  38. clientId: '',
  39. topic: ''
  40. }
  41. })
  42. </script>