fix: constrain address management modal width (#1002)

* fix: constrain address management modal width

* fix: enable address table horizontal scroll
This commit is contained in:
Dream Hunter
2026-04-25 16:33:18 +08:00
committed by GitHub
parent eb62c37e02
commit 7e7f824f88
8 changed files with 49 additions and 8 deletions
+1
View File
@@ -17,6 +17,7 @@
### Bug Fixes ### Bug Fixes
- fix: |Frontend| 收窄地址管理相关弹窗宽度,并让地址表格在弹窗内部横向滚动,避免多地址场景撑宽弹窗
- fix: |Frontend| 修复 `/open_api/settings` 未返回 `domains` 数组时前端设置初始化直接调用 `map()``undefined` 错误的问题,统一按空数组兜底处理 - fix: |Frontend| 修复 `/open_api/settings` 未返回 `domains` 数组时前端设置初始化直接调用 `map()``undefined` 错误的问题,统一按空数组兜底处理
### Improvements ### Improvements
+1
View File
@@ -17,6 +17,7 @@
### Bug Fixes ### Bug Fixes
- fix: |Frontend| Narrow address-management modal widths and keep address tables horizontally scrollable inside the modal to prevent multi-address lists from stretching the dialog
- fix: |Frontend| Fix the frontend settings bootstrap throwing an `undefined` error when `/open_api/settings` does not return a `domains` array by normalizing the field to an empty array before mapping it - fix: |Frontend| Fix the frontend settings bootstrap throwing an `undefined` error when `/open_api/settings` does not return a `domains` array by normalizing the field to an empty array before mapping it
### Improvements ### Improvements
@@ -67,13 +67,18 @@ onMounted(async () => {
</script> </script>
<template> <template>
<div style="overflow: auto;"> <div class="address-table-scroll">
<n-data-table :columns="columns" :data="data" :bordered="false" embedded /> <n-data-table :columns="columns" :data="data" :bordered="false" embedded />
</div> </div>
</template> </template>
<style scoped> <style scoped>
.n-data-table { .n-data-table {
min-width: 700px; min-width: 640px;
}
.address-table-scroll {
max-width: 100%;
overflow-x: auto;
} }
</style> </style>
+2 -1
View File
@@ -344,7 +344,8 @@ onMounted(async () => {
</n-button> </n-button>
</template> </template>
</n-modal> </n-modal>
<n-modal v-model:show="showUserAddressManagement" preset="card" :title="t('userAddressManagement')"> <n-modal v-model:show="showUserAddressManagement" preset="card" :title="t('userAddressManagement')"
style="width: 720px;">
<UserAddressManagement :user_id="curUserId" /> <UserAddressManagement :user_id="curUserId" />
</n-modal> </n-modal>
<n-input-group> <n-input-group>
+3 -1
View File
@@ -99,7 +99,8 @@ onMounted(async () => {
</n-collapse> </n-collapse>
</n-card> </n-card>
</n-modal> </n-modal>
<n-modal v-model:show="showAddressManage" preset="card" :title="t('addressManage')"> <n-modal v-model:show="showAddressManage" preset="card" :title="t('addressManage')"
style="width: 720px;">
<TelegramAddress v-if="isTelegram" /> <TelegramAddress v-if="isTelegram" />
<AddressManagement v-else-if="userJwt" /> <AddressManagement v-else-if="userJwt" />
<LocalAddress v-else /> <LocalAddress v-else />
@@ -130,4 +131,5 @@ onMounted(async () => {
flex: 0 0 auto; flex: 0 0 auto;
white-space: nowrap; white-space: nowrap;
} }
</style> </style>
+14 -1
View File
@@ -126,7 +126,9 @@ const columns = [
</n-alert> </n-alert>
<n-tabs type="segment" v-model:value="tabValue"> <n-tabs type="segment" v-model:value="tabValue">
<n-tab-pane name="address" :tab="t('address')"> <n-tab-pane name="address" :tab="t('address')">
<n-data-table :columns="columns" :data="data" :bordered="false" embedded /> <div class="address-table-scroll">
<n-data-table :columns="columns" :data="data" :bordered="false" embedded />
</div>
</n-tab-pane> </n-tab-pane>
<n-tab-pane name="create_or_bind" :tab="t('create_or_bind')"> <n-tab-pane name="create_or_bind" :tab="t('create_or_bind')">
<Login :bindUserAddress="bindAddress" /> <Login :bindUserAddress="bindAddress" />
@@ -134,3 +136,14 @@ const columns = [
</n-tabs> </n-tabs>
</div> </div>
</template> </template>
<style scoped>
.n-data-table {
min-width: 640px;
}
.address-table-scroll {
max-width: 100%;
overflow-x: auto;
}
</style>
+14 -1
View File
@@ -133,7 +133,9 @@ onMounted(async () => {
<div> <div>
<n-tabs type="segment"> <n-tabs type="segment">
<n-tab-pane name="address" :tab="t('address')"> <n-tab-pane name="address" :tab="t('address')">
<n-data-table :columns="columns" :data="data" :bordered="false" embedded /> <div class="address-table-scroll">
<n-data-table :columns="columns" :data="data" :bordered="false" embedded />
</div>
</n-tab-pane> </n-tab-pane>
<n-tab-pane name="bind" :tab="t('bind')"> <n-tab-pane name="bind" :tab="t('bind')">
<Login :newAddressPath="newAddressPath" :bindUserAddress="bindAddress" /> <Login :newAddressPath="newAddressPath" :bindUserAddress="bindAddress" />
@@ -141,3 +143,14 @@ onMounted(async () => {
</n-tabs> </n-tabs>
</div> </div>
</template> </template>
<style scoped>
.n-data-table {
min-width: 640px;
}
.address-table-scroll {
max-width: 100%;
overflow-x: auto;
}
</style>
@@ -196,7 +196,7 @@ onMounted(async () => {
</n-modal> </n-modal>
<n-tabs type="segment"> <n-tabs type="segment">
<n-tab-pane name="address" :tab="t('address')"> <n-tab-pane name="address" :tab="t('address')">
<div style="overflow: auto;"> <div class="address-table-scroll">
<n-data-table :columns="columns" :data="data" :bordered="false" embedded /> <n-data-table :columns="columns" :data="data" :bordered="false" embedded />
</div> </div>
</n-tab-pane> </n-tab-pane>
@@ -209,6 +209,11 @@ onMounted(async () => {
<style scoped> <style scoped>
.n-data-table { .n-data-table {
min-width: 700px; min-width: 640px;
}
.address-table-scroll {
max-width: 100%;
overflow-x: auto;
} }
</style> </style>