style: format web apps with prettier and sort imports
Apply repo-wide Prettier/lint normalization across admin-web, desktop-client and ops-web: single quotes, no semicolons, trailing commas, consistent line wrapping, and import ordering. Also drop an unused brand-logo import in DesktopShell.vue. No behavior changes — formatting only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
<script setup lang="ts">
|
||||
import { computed, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue'
|
||||
import brandLogo from '@brand-logo'
|
||||
import { computed, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue'
|
||||
import { DEFAULT_API_BASE_URL, useDesktopSession } from '../composables/useDesktopSession'
|
||||
|
||||
const { apiBaseURL, error, pending, setApiBaseURL, login } = useDesktopSession()
|
||||
@@ -125,18 +125,22 @@ function clearCountdown() {
|
||||
}
|
||||
}
|
||||
|
||||
watch(error, (msg) => {
|
||||
clearCountdown()
|
||||
lockCountdown.value = 0
|
||||
if (!msg) return
|
||||
const match = msg.match(/请\s*(\d+)\s*秒后重试/)
|
||||
if (!match) return
|
||||
lockCountdown.value = parseInt(match[1], 10)
|
||||
countdownTimer = setInterval(() => {
|
||||
lockCountdown.value--
|
||||
if (lockCountdown.value <= 0) clearCountdown()
|
||||
}, 1000)
|
||||
}, { flush: 'sync' })
|
||||
watch(
|
||||
error,
|
||||
(msg) => {
|
||||
clearCountdown()
|
||||
lockCountdown.value = 0
|
||||
if (!msg) return
|
||||
const match = msg.match(/请\s*(\d+)\s*秒后重试/)
|
||||
if (!match) return
|
||||
lockCountdown.value = parseInt(match[1], 10)
|
||||
countdownTimer = setInterval(() => {
|
||||
lockCountdown.value--
|
||||
if (lockCountdown.value <= 0) clearCountdown()
|
||||
}, 1000)
|
||||
},
|
||||
{ flush: 'sync' },
|
||||
)
|
||||
|
||||
const displayError = computed(() => {
|
||||
if (!error.value) return null
|
||||
@@ -210,15 +214,40 @@ onBeforeUnmount(() => {
|
||||
placeholder="密码"
|
||||
required
|
||||
/>
|
||||
<button type="button" class="eye-toggle" tabindex="-1" @click="showPassword = !showPassword">
|
||||
<svg v-if="showPassword" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/>
|
||||
<circle cx="12" cy="12" r="3"/>
|
||||
<button
|
||||
type="button"
|
||||
class="eye-toggle"
|
||||
tabindex="-1"
|
||||
@click="showPassword = !showPassword"
|
||||
>
|
||||
<svg
|
||||
v-if="showPassword"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" />
|
||||
<circle cx="12" cy="12" r="3" />
|
||||
</svg>
|
||||
<svg v-else xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"/>
|
||||
<path d="M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19"/>
|
||||
<line x1="1" y1="1" x2="23" y2="23"/>
|
||||
<svg
|
||||
v-else
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
stroke="currentColor"
|
||||
stroke-width="2"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
>
|
||||
<path
|
||||
d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94"
|
||||
/>
|
||||
<path d="M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19" />
|
||||
<line x1="1" y1="1" x2="23" y2="23" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user