@7365admin1/layer-common 3.0.8 → 3.0.10

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.
Files changed (32) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/components/DashboardMain.vue +1864 -803
  3. package/components/EntryPassInformation.vue +60 -0
  4. package/components/HidAccessLogDashboard.vue +1691 -0
  5. package/components/HidEnabledGate.vue +51 -0
  6. package/components/HidIdentityMapping.vue +975 -0
  7. package/components/HidQrCodeConfiguration.vue +618 -0
  8. package/components/HidReaderForm.vue +246 -0
  9. package/components/HidReaderManagement.vue +1233 -0
  10. package/components/HidServiceSettingsPanel.vue +150 -0
  11. package/components/HidUserEnrollment.vue +1274 -0
  12. package/components/Layout/NavigationDrawer.vue +31 -1
  13. package/components/MemberInformation.vue +1 -1
  14. package/components/NavigationItem.vue +11 -4
  15. package/components/SiteSettings.vue +24 -1
  16. package/components/VisitorForm.vue +195 -4
  17. package/components/VisitorFormSelection.vue +12 -2
  18. package/composables/useDashboard.ts +31 -4
  19. package/composables/useHidAmico.ts +152 -0
  20. package/composables/useHidNavigation.ts +106 -0
  21. package/composables/useMember.ts +8 -3
  22. package/composables/useOptionalServices.ts +118 -0
  23. package/composables/useSiteSettings.ts +1 -1
  24. package/composables/useUser.ts +1 -2
  25. package/nuxt.config.ts +1 -1
  26. package/package.json +2 -1
  27. package/pages/[org]/[site]/access-mgmt/access-logs/index.vue +21 -0
  28. package/pages/[org]/[site]/access-mgmt/administrator/index.vue +21 -0
  29. package/pages/[org]/[site]/access-mgmt/hid-readers/index.vue +21 -0
  30. package/pages/[org]/[site]/access-mgmt/hid-users/index.vue +21 -0
  31. package/pages/[org]/[site]/access-mgmt/identity-mapping/index.vue +21 -0
  32. package/types/local.d.ts +2 -1
@@ -31,6 +31,19 @@
31
31
  <span class="text-subtitle-2 font-weight-bold">NFC</span>
32
32
  </v-card>
33
33
  </v-col>
34
+ <v-col v-if="hidQrCodeEnabled">
35
+ <v-card
36
+ :variant="passType === 'HID_QR' ? 'tonal' : 'outlined'"
37
+ :color="passType === 'HID_QR' ? 'primary' : undefined"
38
+ class="pa-3 d-flex flex-column align-center ga-2 cursor-pointer position-relative"
39
+ rounded="lg"
40
+ @click="passType = passType === 'HID_QR' ? null : 'HID_QR'"
41
+ >
42
+ <v-icon v-if="passType === 'HID_QR'" size="18" color="primary" class="selected-check">mdi-check-circle</v-icon>
43
+ <v-icon size="32">mdi-qrcode-scan</v-icon>
44
+ <span class="text-subtitle-2 font-weight-bold">HID QR Code</span>
45
+ </v-card>
46
+ </v-col>
34
47
  </v-row>
35
48
 
36
49
  <!-- QR Pass section -->
@@ -133,6 +146,29 @@
133
146
  Ready to scan NFC cards. Please scan a card with your barcode scanner.
134
147
  </v-alert>
135
148
  </template>
149
+
150
+ <template v-if="passType === 'HID_QR'">
151
+ <v-alert
152
+ v-if="!hidQrPrinterConfigured"
153
+ type="warning"
154
+ variant="tonal"
155
+ density="compact"
156
+ class="mt-3"
157
+ icon="mdi-printer-alert"
158
+ >
159
+ No printer is configured on HID settings. QR Pass may not print.
160
+ </v-alert>
161
+ <v-alert
162
+ v-else
163
+ type="info"
164
+ variant="tonal"
165
+ density="compact"
166
+ class="mt-3"
167
+ icon="mdi-qrcode-scan"
168
+ >
169
+ HID QR Code will be generated and printed when you continue.
170
+ </v-alert>
171
+ </template>
136
172
  </template>
137
173
  <v-divider class="mt-6" />
138
174
 
@@ -217,6 +253,18 @@ const props = defineProps({
217
253
  type: String as PropType<string | null>,
218
254
  default: null,
219
255
  },
256
+ visitorType: {
257
+ type: String as PropType<TVisitorType | null>,
258
+ default: null,
259
+ },
260
+ hidQrCodeEnabled: {
261
+ type: Boolean,
262
+ default: false,
263
+ },
264
+ hidQrPrinterConfigured: {
265
+ type: Boolean,
266
+ default: false,
267
+ },
220
268
  });
221
269
 
222
270
  const emit = defineEmits(["update:modelValue", "update:quantity", "update:cards"]);
@@ -224,6 +272,9 @@ const emit = defineEmits(["update:modelValue", "update:quantity", "update:cards"
224
272
  const { getAvailableContractorCards, generateQrVms } = useAccessManagement();
225
273
 
226
274
  const nfcEnabled = computed(() => props.settings?.data?.settings?.nfcPass ?? false);
275
+ const hidQrCodeEnabled = computed(() => {
276
+ return props.hidQrCodeEnabled && ["guest", "contractor", "walk-in"].includes(String(props.visitorType || ""));
277
+ });
227
278
  const printer = computed(() => props.settings?.data?.settings?.printer ?? { vendorId: null, productId: null });
228
279
  const hasPrinter = computed(() => !!printer.value.vendorId && !!printer.value.productId);
229
280
 
@@ -457,6 +508,15 @@ watch(
457
508
  }
458
509
  );
459
510
 
511
+ watch(
512
+ () => props.hidQrCodeEnabled,
513
+ (enabled) => {
514
+ if (!enabled && passType.value === "HID_QR") {
515
+ passType.value = null;
516
+ }
517
+ },
518
+ );
519
+
460
520
  onUnmounted(() => {
461
521
  window.removeEventListener("keydown", handleBarcodeInput);
462
522
  if (barcodeTimeout.value) clearTimeout(barcodeTimeout.value);