diff --git a/frontend/components/IpInfos.vue b/frontend/components/IpInfos.vue index e19f0214..91c240c7 100644 --- a/frontend/components/IpInfos.vue +++ b/frontend/components/IpInfos.vue @@ -7,185 +7,192 @@

{{ t('ipInfos.Notes') }}

-
-
+
-
-
- -   - {{ t('ipInfos.Source') }}: {{ card.source }} - -
-
+ +   + {{ t('ipInfos.Source') }}: {{ card.source }} + +
+
- -   - - - {{ card.ip }}  - - - -
+ +   + + + {{ card.ip }}  + + + +
-
-
    - - Map - -
  • - - {{ t('ipInfos.Country') }} :  - - - {{ card.country_name }} - +
      + + Map + +
    • + + {{ t('ipInfos.Country') }} :  + + + {{ card.country_name }} + + +
    • + +
    • + + + {{ t('ipInfos.Region') }} :  + + + {{ card.region }} + +
    • + +
    • + + + {{ t('ipInfos.City') }} :  + + + {{ card.city }} + +
    • + +
    • + + + {{ t('ipInfos.ISP') }} :  + + + {{ card.isp }} + +
    • + +
    • + + + {{ t('ipInfos.type') }} :  + + + {{ card.type }} + + ( {{ card.proxyOperator }} ) -
    • - -
    • - - - {{ t('ipInfos.Region') }} :  + +
    • + +
    • + + + {{ t('ipInfos.isProxy') }} :  + + + {{ card.isProxy }} + + ( {{ card.proxyProtocol }} ) - - {{ card.region }} - -
    • - -
    • - - - {{ t('ipInfos.City') }} :  - - - {{ card.city }} + +
    • + +
    • + + + {{ t('ipInfos.ASN') }} :  + + + {{ card.asn }} + +
    • + +
      + + + +
      + + {{ t('ipInfos.ASNInfo.note') + }} +
      +
      - -
    • - - - {{ t('ipInfos.ISP') }} :  - - - {{ card.isp }} - -
    • - -
    • - - - {{ t('ipInfos.type') }} :  - - - {{ card.type }} - - ( {{ card.proxyOperator }} ) - - -
    • - -
    • - - - {{ t('ipInfos.isProxy') }} :  - - - {{ card.isProxy }} - - ( {{ card.proxyProtocol }} ) + + + -
    • - -
    • - - - {{ t('ipInfos.ASN') }} :  - - - {{ card.asn }} - -
    • - -
      - - - -
      - - {{ t('ipInfos.ASNInfo.note') - }} -
      - -
      - - - - - - -
      -
    -
+
+ +
-
- +
+
+
+
+
+
    +
  • + +
  • +
+
+ @@ -201,6 +208,9 @@ import { getIPFromIPIP, getIPFromCloudflare_V4, getIPFromCloudflare_V6, getIPFro const { t } = useI18n(); +// 导入 IP 错误图标 +import IPErrorIcon from './svgicons/IPError.vue'; + // Store const store = useMainStore(); const isDarkMode = computed(() => store.isDarkMode); @@ -470,7 +480,7 @@ const refreshCard = (card, index) => { break; case 3: fetchIP(3, getIPFromIPChecking64); - break; + break; case 4: fetchIP(4, getIPFromIPChecking4); break; @@ -577,6 +587,13 @@ defineExpose({ z-index: 1; } +.jn-ip-error { + display: flex; + justify-content: space-evenly; + align-items: center; + flex-direction: column; +} + .dropdown-item.disabled, .dropdown-item:disabled { text-decoration: line-through; diff --git a/frontend/components/Nav.vue b/frontend/components/Nav.vue index e18663be..ef6fb869 100644 --- a/frontend/components/Nav.vue +++ b/frontend/components/Nav.vue @@ -7,13 +7,7 @@ - - - + IP Check. + + + + + \ No newline at end of file diff --git a/frontend/components/svgicons/IPError.vue b/frontend/components/svgicons/IPError.vue new file mode 100644 index 00000000..1847ca0d --- /dev/null +++ b/frontend/components/svgicons/IPError.vue @@ -0,0 +1,17 @@ + + + \ No newline at end of file diff --git a/frontend/style/style.css b/frontend/style/style.css index aadc0acb..817c5b8c 100644 --- a/frontend/style/style.css +++ b/frontend/style/style.css @@ -228,10 +228,6 @@ footer { display: none !important; } -.jn-loading { - margin-top: 50vh; -} - .jn-dark-mode-help-border { border-color: #a8a8a863 !important; } diff --git a/index.html b/index.html index f2aecae2..70e0bdc5 100644 --- a/index.html +++ b/index.html @@ -24,6 +24,7 @@ border-radius: 50%; border-left-color: transparent; animation: spin 1s linear infinite; + margin-top: 10px; } .jn-loading { @@ -57,11 +58,20 @@
-
+
+ + + +
-

首次加载的时间可能会较长,请等待...

It may take a while for the first time, please wait...

+

首次加载的时间可能会较长,请等待...

+