@7365admin1/layer-common 3.1.2-staging.36 → 3.1.2-staging.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -28,7 +28,6 @@
|
|
|
28
28
|
:items="items"
|
|
29
29
|
fixed-header
|
|
30
30
|
hide-default-footer
|
|
31
|
-
hide-default-header
|
|
32
31
|
@click:row="handleRowClick"
|
|
33
32
|
style="max-height: 300px"
|
|
34
33
|
>
|
|
@@ -281,10 +280,10 @@ const prop = defineProps({
|
|
|
281
280
|
headers: {
|
|
282
281
|
type: Array as PropType<Array<any>>,
|
|
283
282
|
default: () => [
|
|
284
|
-
{
|
|
285
|
-
{
|
|
286
|
-
{
|
|
287
|
-
{
|
|
283
|
+
{ title: "Host", key: "host" },
|
|
284
|
+
{ title: "Category", key: "category" },
|
|
285
|
+
// { title: "Guard House", key: "guardPost" },
|
|
286
|
+
// { title: "Actions", key: "action", sortable: false },
|
|
288
287
|
],
|
|
289
288
|
},
|
|
290
289
|
readOnly: {
|
|
@@ -296,7 +295,7 @@ const prop = defineProps({
|
|
|
296
295
|
const computedHeaders = computed(() => {
|
|
297
296
|
if (prop.type === "ip") {
|
|
298
297
|
const base = [...prop.headers];
|
|
299
|
-
base.splice(0, 0, {
|
|
298
|
+
base.splice(0, 0, { title: "Name", key: "name" });
|
|
300
299
|
return base;
|
|
301
300
|
}
|
|
302
301
|
return prop.headers;
|
|
@@ -734,7 +734,7 @@ const {
|
|
|
734
734
|
updateStatus: updateServiceProviderStatus,
|
|
735
735
|
invite,
|
|
736
736
|
} = useServiceProvider();
|
|
737
|
-
const { getAllByUserId } = useMember();
|
|
737
|
+
const { getAll: getAllMembers, getAllByUserId } = useMember();
|
|
738
738
|
|
|
739
739
|
const { getVerifications, cancelUserInvitation, getVerificationByEmail } =
|
|
740
740
|
useVerification();
|
|
@@ -757,6 +757,9 @@ const createInviteDialog = ref(false);
|
|
|
757
757
|
// const loadingInviteRoles = ref(false);
|
|
758
758
|
// const serviceProviderInviteRoles = ref<Array<Record<string, any>>>([]);
|
|
759
759
|
|
|
760
|
+
const { getByUserType } = useMember();
|
|
761
|
+
const { getOrgs } = useOrg();
|
|
762
|
+
const { getByEmail } = useServiceProvider();
|
|
760
763
|
|
|
761
764
|
async function checkExistingAccount(email: string) {
|
|
762
765
|
existingAccount.value = null;
|
|
@@ -767,40 +770,54 @@ async function checkExistingAccount(email: string) {
|
|
|
767
770
|
checkingExistingAccount.value = true;
|
|
768
771
|
|
|
769
772
|
try {
|
|
773
|
+
// Check if user exists
|
|
770
774
|
const user = await getUserByEmail(email);
|
|
771
775
|
|
|
772
776
|
if (!user?._id) return;
|
|
773
777
|
|
|
774
|
-
|
|
778
|
+
// Check if this service provider already exists in current org/site
|
|
779
|
+
const serviceProviders = await getByEmail({
|
|
780
|
+
email,
|
|
781
|
+
orgId: props.orgId,
|
|
782
|
+
siteId: props.siteId,
|
|
783
|
+
});
|
|
775
784
|
|
|
776
|
-
|
|
777
|
-
(member: any) => member.type === serviceProviderInvite.value.app
|
|
778
|
-
);
|
|
785
|
+
console.log("serviceProviders", serviceProviders);
|
|
779
786
|
|
|
780
|
-
if (
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
787
|
+
if (serviceProviders?.length) {
|
|
788
|
+
messageServiceProvider.value =
|
|
789
|
+
"This service provider already exists.";
|
|
790
|
+
return;
|
|
791
|
+
}
|
|
784
792
|
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
(appMember.siteId || "") === (props.siteId || "")
|
|
788
|
-
) {
|
|
789
|
-
existingAccount.value = null;
|
|
790
|
-
messageServiceProvider.value =
|
|
791
|
-
"This user is already a member of this service provider.";
|
|
792
|
-
return;
|
|
793
|
-
}
|
|
793
|
+
// Check existing memberships
|
|
794
|
+
const members = await getAllByUserId(user._id);
|
|
794
795
|
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
siteId: appMember.siteId,
|
|
801
|
-
siteName: appMember.siteName,
|
|
802
|
-
};
|
|
796
|
+
const appMember = (members.items ?? []).find(
|
|
797
|
+
(member: any) => member.type === serviceProviderInvite.value.app
|
|
798
|
+
);
|
|
799
|
+
|
|
800
|
+
if (!appMember) return;
|
|
803
801
|
|
|
802
|
+
// Already belongs to the same org/site
|
|
803
|
+
if (
|
|
804
|
+
appMember.org === props.orgId &&
|
|
805
|
+
(appMember.siteId || "") === (props.siteId || "")
|
|
806
|
+
) {
|
|
807
|
+
messageServiceProvider.value =
|
|
808
|
+
"This user is already a member of this service provider.";
|
|
809
|
+
return;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
// Existing account in another org/site
|
|
813
|
+
existingAccount.value = {
|
|
814
|
+
_id: appMember.org,
|
|
815
|
+
text: appMember.orgName,
|
|
816
|
+
org: appMember.org,
|
|
817
|
+
orgName: appMember.orgName,
|
|
818
|
+
siteId: appMember.siteId,
|
|
819
|
+
siteName: appMember.siteName,
|
|
820
|
+
};
|
|
804
821
|
} catch (error) {
|
|
805
822
|
existingAccount.value = null;
|
|
806
823
|
} finally {
|
|
@@ -236,6 +236,26 @@ export default function useServiceProvider() {
|
|
|
236
236
|
);
|
|
237
237
|
}
|
|
238
238
|
|
|
239
|
+
async function getByEmail({
|
|
240
|
+
email = "",
|
|
241
|
+
orgId = "",
|
|
242
|
+
siteId = "",
|
|
243
|
+
serviceProviderOrgId = "",
|
|
244
|
+
} = {}) {
|
|
245
|
+
return useNuxtApp().$api<Record<string, any>>(
|
|
246
|
+
"/api/service-providers/email",
|
|
247
|
+
{
|
|
248
|
+
method: "GET",
|
|
249
|
+
query: {
|
|
250
|
+
email,
|
|
251
|
+
...(orgId ? { orgId } : {}),
|
|
252
|
+
...(siteId ? { siteId } : {}),
|
|
253
|
+
...(serviceProviderOrgId ? { serviceProviderOrgId } : {}),
|
|
254
|
+
},
|
|
255
|
+
}
|
|
256
|
+
);
|
|
257
|
+
}
|
|
258
|
+
|
|
239
259
|
return {
|
|
240
260
|
serviceProviders,
|
|
241
261
|
serviceProvider,
|
|
@@ -254,5 +274,6 @@ export default function useServiceProvider() {
|
|
|
254
274
|
add,
|
|
255
275
|
addViaInvite,
|
|
256
276
|
updateStatus,
|
|
277
|
+
getByEmail,
|
|
257
278
|
};
|
|
258
279
|
}
|