Skip to content

Commit

Permalink
feat(north): the group of gewu plugin supports multiple selection
Browse files Browse the repository at this point in the history
  • Loading branch information
orangegzx committed Aug 16, 2023
1 parent 6922a2e commit 0cb1274
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 25 deletions.
32 changes: 15 additions & 17 deletions src/composables/config/useSubscription.ts
Original file line number Diff line number Diff line change
Expand Up @@ -187,30 +187,37 @@ export const useAddSubscription = (props: AddSubscriptionProps) => {
}
}

// MQTT | Gewu
const batchAddSubscriptions = async () => {
try {
const data: SubscriptionsData = {
app: props.currentNode,
groups: [],
}
const { driverGroups = {}, topic } = subscriptionForm.value

const { driverGroups = {}, topic, productKey } = subscriptionForm.value
const nodeGroups = Object.entries(driverGroups)
nodeGroups.forEach(([key, value]) => {
const driver = key
const groupLen = value.length
if (groupLen) {
value.forEach((group) => {
const item = {
let item: Omit<SubscriptionData, 'app'> = {
driver,
group,
params: {
topic,
},
}
if (isMQTTPugin.value) {
item = { ...item, params: { topic } }
}
if (isGewuPugin.value) {
item = { ...item, params: { productKey } }
}

data.groups.push(item)
})
}
})

await addSubscriptions(data)
return Promise.resolve()
} catch (error) {
Expand All @@ -224,19 +231,10 @@ export const useAddSubscription = (props: AddSubscriptionProps) => {
await formCom.value.validate()
isSubmitting.value = true

const { driver, group, productKey } = subscriptionForm.value
let data: SubscriptionData = { app: props.currentNode, driver, group }

if (isGewuPugin.value) {
data = {
...data,
params: {
productKey,
},
}
}
const { driver, group } = subscriptionForm.value
const data: SubscriptionData = { app: props.currentNode, driver, group }

if (isMQTTPugin.value) {
if (isMQTTPugin.value || isGewuPugin.value) {
await batchAddSubscriptions()
} else {
await addSubscription(data)
Expand Down
4 changes: 2 additions & 2 deletions src/views/config/components/SouthGroupsCheckbox.vue
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<template>
<div class="collapse-all">
<el-radio-group v-model="isCollapseAll" size="mini" @change="switchCollapseAll">
<el-radio-button class="item" label="expand">{{ $t('common.expandAll') }}</el-radio-button>
<el-radio-button class="item" label="collapse">{{ $t('common.collapseAll') }}</el-radio-button>
<el-radio-button class="item" label="expand" border>{{ $t('common.expandAll') }}</el-radio-button>
<el-radio-button class="item" label="collapse" border>{{ $t('common.collapseAll') }}</el-radio-button>
</el-radio-group>
</div>

Expand Down
16 changes: 10 additions & 6 deletions src/views/config/northDriver/components/AddSubscriptionDialog.vue
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<el-alert v-if="topicWarning" :title="topicWarning" type="warning" show-icon :closable="false" />

<emqx-form ref="formCom" :model="subscriptionForm" :rules="rules">
<section v-if="!isMQTTPugin">
<section v-if="!(isMQTTPugin || isGewuPugin)">
<emqx-form-item prop="driver" :label="$t('config.southDevice')">
<emqx-select
v-model="subscriptionForm.driver"
Expand All @@ -32,15 +32,19 @@
<emqx-input v-model="subscriptionForm.topic" />
</emqx-form-item>

<!-- mqtt -->
<emqx-form-item v-if="isMQTTPugin" prop="driverGroups" :label="$t('config.subscribeSouthDriverData')">
<SouthGroupsCheckbox v-model="subscriptionForm.driverGroups" />
</emqx-form-item>

<!-- gewu -->
<emqx-form-item v-if="isGewuPugin" prop="productKey" label="productKey">
<emqx-input v-model="subscriptionForm.productKey" />
</emqx-form-item>

<!-- mqtt | gewu -->
<emqx-form-item
v-if="isMQTTPugin || isGewuPugin"
prop="driverGroups"
:label="$t('config.subscribeSouthDriverData')"
>
<SouthGroupsCheckbox v-model="subscriptionForm.driverGroups" />
</emqx-form-item>
</emqx-form>

<template #footer>
Expand Down

0 comments on commit 0cb1274

Please sign in to comment.