mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-03 01:40:21 +08:00
fix(frontend): 修复用户表单密码框无法输入及编辑模式额度框不显示
- 密码框: masked 属性改为始终开启,避免聚焦时 DOM 重建导致焦点丢失 - 额度框: 编辑模式下 unlimited=false 时显示"按钱包余额限制"而非空白
This commit is contained in:
@@ -83,16 +83,17 @@
|
|||||||
:id="`pwd-${formNonce}`"
|
:id="`pwd-${formNonce}`"
|
||||||
v-model="form.password"
|
v-model="form.password"
|
||||||
type="text"
|
type="text"
|
||||||
:masked="passwordFocused || form.password.length > 0"
|
masked
|
||||||
autocomplete="new-password"
|
autocomplete="new-password"
|
||||||
disable-autofill
|
disable-autofill
|
||||||
:name="`field-${formNonce}`"
|
:name="`field-${formNonce}`"
|
||||||
:required="!isEditMode"
|
:required="!isEditMode"
|
||||||
minlength="6"
|
minlength="6"
|
||||||
:placeholder="isEditMode ? '留空保持原密码' : getPasswordPolicyPlaceholder(passwordPolicyLevel)"
|
:placeholder="isEditMode ? '留空保持原密码' : getPasswordPolicyPlaceholder(passwordPolicyLevel)"
|
||||||
:class="`h-10${!passwordFocused && form.password.length === 0 ? ' text-transparent' : ''}${passwordError ? ' border-destructive' : ''}`"
|
:class="[
|
||||||
@focus="passwordFocused = true"
|
'h-10',
|
||||||
@blur="passwordFocused = form.password.length > 0"
|
passwordError ? 'border-destructive' : '',
|
||||||
|
]"
|
||||||
/>
|
/>
|
||||||
<p
|
<p
|
||||||
v-if="passwordError"
|
v-if="passwordError"
|
||||||
@@ -272,9 +273,9 @@
|
|||||||
@update:model-value="(v) => form.initial_gift_usd = parseNumberInput(v, { allowFloat: true, min: 0.01 })"
|
@update:model-value="(v) => form.initial_gift_usd = parseNumberInput(v, { allowFloat: true, min: 0.01 })"
|
||||||
/>
|
/>
|
||||||
<span
|
<span
|
||||||
v-else-if="form.unlimited"
|
v-else
|
||||||
class="flex h-10 w-full items-center rounded-lg border bg-background px-3 text-sm text-muted-foreground opacity-60"
|
class="flex h-10 w-full items-center rounded-lg border bg-background px-3 text-sm text-muted-foreground opacity-60"
|
||||||
>无限制</span>
|
>{{ form.unlimited ? '无限制' : '按钱包余额限制' }}</span>
|
||||||
</div>
|
</div>
|
||||||
<Switch
|
<Switch
|
||||||
v-model="form.unlimited"
|
v-model="form.unlimited"
|
||||||
@@ -366,7 +367,6 @@ const emit = defineEmits<{
|
|||||||
const isOpen = computed(() => props.open)
|
const isOpen = computed(() => props.open)
|
||||||
const saving = ref(false)
|
const saving = ref(false)
|
||||||
const formNonce = ref(createFieldNonce())
|
const formNonce = ref(createFieldNonce())
|
||||||
const passwordFocused = ref(false)
|
|
||||||
const passwordPolicyLevel = ref<PasswordPolicyLevel>('weak')
|
const passwordPolicyLevel = ref<PasswordPolicyLevel>('weak')
|
||||||
|
|
||||||
// 选项数据
|
// 选项数据
|
||||||
@@ -417,7 +417,6 @@ function createFieldNonce(): string {
|
|||||||
|
|
||||||
function resetForm() {
|
function resetForm() {
|
||||||
formNonce.value = createFieldNonce()
|
formNonce.value = createFieldNonce()
|
||||||
passwordFocused.value = false
|
|
||||||
form.value = {
|
form.value = {
|
||||||
username: '',
|
username: '',
|
||||||
password: '',
|
password: '',
|
||||||
@@ -439,7 +438,6 @@ function resetForm() {
|
|||||||
function loadUserData() {
|
function loadUserData() {
|
||||||
if (!props.user) return
|
if (!props.user) return
|
||||||
formNonce.value = createFieldNonce()
|
formNonce.value = createFieldNonce()
|
||||||
passwordFocused.value = false
|
|
||||||
// 创建数组副本,避免与 props 数据共享引用
|
// 创建数组副本,避免与 props 数据共享引用
|
||||||
form.value = {
|
form.value = {
|
||||||
username: props.user.username,
|
username: props.user.username,
|
||||||
|
|||||||
Reference in New Issue
Block a user