diff --git a/src/components/home/Content/Admin/Communities/Communities.vue b/src/components/home/Content/Admin/Communities/Communities.vue index aa30125..398427c 100644 --- a/src/components/home/Content/Admin/Communities/Communities.vue +++ b/src/components/home/Content/Admin/Communities/Communities.vue @@ -12,13 +12,17 @@ import { } from "naive-ui"; import { h, ref, onMounted, type Ref, reactive } from "vue"; import { useI18n } from "vue-i18n"; -import { listCommunities } from "@/api/v1/management/communities"; +import { + deleteCommunity, + listCommunities, +} from "@/api/v1/management/communities"; import { Icon } from "@vicons/utils"; import { Edit, Trash, Refresh, Plus } from "@vicons/tabler"; import CommunityEditModal from "./CommunityEditModal.vue"; const { t } = useI18n(); +const dialog = useDialog(); const communities: Ref = ref([]); const showEditModal = ref(false); @@ -136,7 +140,17 @@ async function getCommunities() { function handleEdit(community: Community) {} -function handleRemove(community: Community) {} +function handleRemove(community: Community) { + dialog.warning({ + title: t("message.admin.community.remove.confirm"), + content: t("message.admin.community.remove.confirmTip"), + positiveText: t("message.common.confirm"), + negativeText: t("message.common.cancel"), + onPositiveClick() { + deleteCommunity(community.id).then(getCommunities); + }, + }); +} function handleAdd() { editIsNew.value = true; diff --git a/src/components/home/Content/Devices/DeviceCard.vue b/src/components/home/Content/Devices/DeviceCard.vue index aebeef4..283278f 100644 --- a/src/components/home/Content/Devices/DeviceCard.vue +++ b/src/components/home/Content/Devices/DeviceCard.vue @@ -40,14 +40,6 @@ function removeThisDevice() { diff --git a/src/components/home/Content/Devices/Index.vue b/src/components/home/Content/Devices/Index.vue index bd236df..b0cf17c 100644 --- a/src/components/home/Content/Devices/Index.vue +++ b/src/components/home/Content/Devices/Index.vue @@ -12,26 +12,31 @@ import { NModal, useLoadingBar, } from "naive-ui"; -import { Crown, Plus, Refresh } from "@vicons/tabler"; +import { Crown, Plus, Refresh, AccessPoint } from "@vicons/tabler"; import { Icon } from "@vicons/utils"; import DeviceCard from "./DeviceCard.vue"; import NewDeviceModal from "./NewDeviceModal.vue"; import NewDeviceResult from "./NewDeviceResult.vue"; +import PublicCommunityJoin from "./PublicCommunityJoin.vue"; import { Community } from "@/api/v1/dtos/community"; import { listCommunities } from "@/api/v1/business/community"; import { NewDeviceDto } from "@/api/v1/dtos/devices"; +import { Supernode } from "@/api/v1/dtos/supernode"; +import { getServerInfo } from "@/api/v1/common/supernode"; const loadingBar = useLoadingBar(); const firstLoading = ref(true); const showNewDeviceModal = ref(false); const showNewDeviceResult = ref(false); +const showPublicCommunityJoinModal = ref(false); const allCommunities: Ref = ref([]); const newDevicePresetCommunity: Ref = ref(); const newDevice: Ref = ref(); +const serverInfo: Ref = ref(); async function getCommunities() { let page = 1; @@ -78,7 +83,16 @@ function addedDevice(device: NewDeviceDto) { getCommunities(); } -onMounted(getCommunities); +function joinPublicCommunity(community: Community) { + newDevicePresetCommunity.value = community; + showPublicCommunityJoinModal.value = true; +} + +onMounted(async () => { + const response = await getServerInfo(); + serverInfo.value = response.data.data; + await getCommunities(); +});