@7365admin1/layer-common 3.0.31-staging.16 → 3.0.31-staging.17
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.
|
@@ -548,7 +548,7 @@
|
|
|
548
548
|
variant="flat"
|
|
549
549
|
class="text-none sp-invite-submit-btn"
|
|
550
550
|
height="76"
|
|
551
|
-
:disabled="!
|
|
551
|
+
:disabled="!canSubmitInvite"
|
|
552
552
|
:loading="disableServiceProvider"
|
|
553
553
|
@click="submitServiceProviderInvite()"
|
|
554
554
|
>
|
|
@@ -574,6 +574,7 @@ type ListTab = "active" | "pending" | "inactive";
|
|
|
574
574
|
|
|
575
575
|
type TableRow = {
|
|
576
576
|
_id: string;
|
|
577
|
+
userId: string;
|
|
577
578
|
serviceProviderOrgId: string;
|
|
578
579
|
companyName: string;
|
|
579
580
|
email: string;
|
|
@@ -733,11 +734,10 @@ const {
|
|
|
733
734
|
updateStatus: updateServiceProviderStatus,
|
|
734
735
|
invite,
|
|
735
736
|
} = useServiceProvider();
|
|
736
|
-
const {
|
|
737
|
+
const { getAllByUserId } = useMember();
|
|
737
738
|
|
|
738
739
|
const { getVerifications, cancelUserInvitation, getVerificationByEmail } =
|
|
739
740
|
useVerification();
|
|
740
|
-
const { getOrgsByMembership } = useMember();
|
|
741
741
|
|
|
742
742
|
const existingAccount = ref<any>(null);
|
|
743
743
|
const checkingExistingAccount = ref(false);
|
|
@@ -757,11 +757,10 @@ 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
760
|
|
|
763
761
|
async function checkExistingAccount(email: string) {
|
|
764
762
|
existingAccount.value = null;
|
|
763
|
+
messageServiceProvider.value = "";
|
|
765
764
|
|
|
766
765
|
if (!email.trim() || emailRule(email) !== true) return;
|
|
767
766
|
|
|
@@ -770,30 +769,50 @@ async function checkExistingAccount(email: string) {
|
|
|
770
769
|
try {
|
|
771
770
|
const user = await getUserByEmail(email);
|
|
772
771
|
|
|
773
|
-
|
|
772
|
+
if (!user?._id) return;
|
|
774
773
|
|
|
775
|
-
|
|
776
|
-
user: user._id,
|
|
777
|
-
});
|
|
774
|
+
const members = await getAllByUserId(user._id);
|
|
778
775
|
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
776
|
+
const appMember = (members.items ?? []).find(
|
|
777
|
+
(member: any) => member.type === serviceProviderInvite.value.app
|
|
778
|
+
);
|
|
779
|
+
|
|
780
|
+
if (!appMember) {
|
|
781
|
+
existingAccount.value = null;
|
|
782
|
+
return;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
if (
|
|
786
|
+
appMember.org === props.orgId &&
|
|
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
|
+
}
|
|
794
|
+
|
|
795
|
+
existingAccount.value = {
|
|
796
|
+
_id: appMember.org,
|
|
797
|
+
text: appMember.orgName,
|
|
798
|
+
org: appMember.org,
|
|
799
|
+
orgName: appMember.orgName,
|
|
800
|
+
siteId: appMember.siteId,
|
|
801
|
+
siteName: appMember.siteName,
|
|
802
|
+
};
|
|
782
803
|
|
|
783
|
-
if (matchedOrg) {
|
|
784
|
-
existingAccount.value = {
|
|
785
|
-
_id: matchedOrg.value,
|
|
786
|
-
text: matchedOrg.text,
|
|
787
|
-
...matchedOrg,
|
|
788
|
-
};
|
|
789
|
-
}
|
|
790
804
|
} catch (error) {
|
|
791
805
|
existingAccount.value = null;
|
|
792
806
|
} finally {
|
|
793
807
|
checkingExistingAccount.value = false;
|
|
794
808
|
}
|
|
795
809
|
}
|
|
796
|
-
|
|
810
|
+
const canSubmitInvite = computed(() => {
|
|
811
|
+
return (
|
|
812
|
+
validServiceProvider.value &&
|
|
813
|
+
!messageServiceProvider.value
|
|
814
|
+
);
|
|
815
|
+
});
|
|
797
816
|
watch(
|
|
798
817
|
() => serviceProviderInvite.value.email,
|
|
799
818
|
async (value) => {
|
|
@@ -939,6 +958,7 @@ function formatEmailCell(value: unknown): string {
|
|
|
939
958
|
function mapProviderRows(raw: Record<string, any>[]): TableRow[] {
|
|
940
959
|
return raw.map((row) => ({
|
|
941
960
|
_id: String(row._id ?? ""),
|
|
961
|
+
userId: String(row.user ?? ""),
|
|
942
962
|
serviceProviderOrgId: String(row.serviceProviderOrgId ?? ""),
|
|
943
963
|
companyName: row.name ?? "-",
|
|
944
964
|
email: formatEmailCell(row.email),
|
|
@@ -961,6 +981,7 @@ function inviteTypeLabel(t: string) {
|
|
|
961
981
|
function mapInviteRows(raw: Record<string, any>[]): TableRow[] {
|
|
962
982
|
return raw.map((row) => ({
|
|
963
983
|
_id: String(row._id ?? ""),
|
|
984
|
+
userId: String(row.user ?? ""),
|
|
964
985
|
serviceProviderOrgId: String(row.metadata?.serviceProviderOrgId ?? ""),
|
|
965
986
|
companyName: row.metadata?.name || "-",
|
|
966
987
|
email: formatEmailCell(row.email),
|
|
@@ -1029,16 +1050,12 @@ async function openView(row: TableRow) {
|
|
|
1029
1050
|
|
|
1030
1051
|
loadingMembers.value = true;
|
|
1031
1052
|
try {
|
|
1032
|
-
const data = await
|
|
1033
|
-
|
|
1034
|
-
limit: 1000,
|
|
1035
|
-
org: row.serviceProviderOrgId,
|
|
1036
|
-
status: "active",
|
|
1037
|
-
});
|
|
1053
|
+
const data = await getAllByUserId(row.userId);
|
|
1054
|
+
|
|
1038
1055
|
serviceProviderMembers.value = (data.items ?? []).map((member: any) => ({
|
|
1039
|
-
_id:
|
|
1040
|
-
name: member.name ||
|
|
1041
|
-
role: member.
|
|
1056
|
+
_id: member._id,
|
|
1057
|
+
name: member.name || "-",
|
|
1058
|
+
role: member.role || "-",
|
|
1042
1059
|
}));
|
|
1043
1060
|
} catch (error: any) {
|
|
1044
1061
|
showMessage(errorConverter(error), "error");
|