|
@@ -27,6 +27,20 @@
|
|
<div class="mt-5 font-normal text-white text-md dark:text-gray-500 -enter-x">
|
|
<div class="mt-5 font-normal text-white text-md dark:text-gray-500 -enter-x">
|
|
{{ t('sys.login.signInDesc') }}
|
|
{{ t('sys.login.signInDesc') }}
|
|
</div>
|
|
</div>
|
|
|
|
+ <div class="appcode">
|
|
|
|
+ <div v-for="item in getAppList" :key="item.name">
|
|
|
|
+ <QrCode
|
|
|
|
+ :value="item.url"
|
|
|
|
+ :options="{ margin: 2 }"
|
|
|
|
+ class="enter-x flex justify-center xl:justify-start"
|
|
|
|
+ :width="150"
|
|
|
|
+ />
|
|
|
|
+ <div class="title">
|
|
|
|
+ <Icon :icon="item.icon" :size="20" />
|
|
|
|
+ {{ item.name }}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="flex w-full h-full py-5 xl:h-auto xl:py-0 xl:my-0 xl:w-6/12">
|
|
<div class="flex w-full h-full py-5 xl:h-auto xl:py-0 xl:my-0 xl:w-6/12">
|
|
@@ -70,6 +84,7 @@
|
|
import RegisterForm from './RegisterForm.vue';
|
|
import RegisterForm from './RegisterForm.vue';
|
|
import MobileForm from './MobileForm.vue';
|
|
import MobileForm from './MobileForm.vue';
|
|
import QrCodeForm from './QrCodeForm.vue';
|
|
import QrCodeForm from './QrCodeForm.vue';
|
|
|
|
+ import { QrCode } from '/@/components/Qrcode/index';
|
|
import { useGlobSetting } from '/@/hooks/setting';
|
|
import { useGlobSetting } from '/@/hooks/setting';
|
|
import { useI18n } from '/@/hooks/web/useI18n';
|
|
import { useI18n } from '/@/hooks/web/useI18n';
|
|
import { useDesign } from '/@/hooks/web/useDesign';
|
|
import { useDesign } from '/@/hooks/web/useDesign';
|
|
@@ -86,7 +101,11 @@
|
|
const { t } = useI18n();
|
|
const { t } = useI18n();
|
|
const localeStore = useLocaleStore();
|
|
const localeStore = useLocaleStore();
|
|
const showLocale = localeStore.getShowPicker;
|
|
const showLocale = localeStore.getShowPicker;
|
|
|
|
+ const { getAppList } = localeStore;
|
|
const title = computed(() => globSetting?.title ?? '');
|
|
const title = computed(() => globSetting?.title ?? '');
|
|
|
|
+ defineExpose({
|
|
|
|
+ getAppList,
|
|
|
|
+ });
|
|
</script>
|
|
</script>
|
|
<style lang="less">
|
|
<style lang="less">
|
|
@prefix-cls: ~'@{namespace}-login';
|
|
@prefix-cls: ~'@{namespace}-login';
|
|
@@ -171,6 +190,28 @@
|
|
}
|
|
}
|
|
|
|
|
|
.container {
|
|
.container {
|
|
|
|
+ .my-auto {
|
|
|
|
+ .appcode {
|
|
|
|
+ margin-top: 1.25rem;
|
|
|
|
+ width: 340px;
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ img {
|
|
|
|
+ width: 150px;
|
|
|
|
+ padding: 2px;
|
|
|
|
+ background: #fff;
|
|
|
|
+ }
|
|
|
|
+ .title {
|
|
|
|
+ text-align: center;
|
|
|
|
+ margin-top: 10px;
|
|
|
|
+ background: rgb(130, 166, 230);
|
|
|
|
+ padding: 5px;
|
|
|
|
+ border-radius: 3px;
|
|
|
|
+ color: #fff;
|
|
|
|
+ font-size: 20px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
.@{logo-prefix-cls} {
|
|
.@{logo-prefix-cls} {
|
|
display: flex;
|
|
display: flex;
|
|
width: 60%;
|
|
width: 60%;
|