Commit af3e1ed6 authored by 罗超's avatar 罗超
parents d57d3d47 32565b73
...@@ -256,10 +256,11 @@ export interface ResetPasswordResponseDto { ...@@ -256,10 +256,11 @@ export interface ResetPasswordResponseDto {
* 通用响应 * 通用响应
*/ */
export interface GeneralResponseDto { export interface GeneralResponseDto {
/** 是否成功 */ /** 错误码 */
success: boolean code?: number
/** 消息 */ /** 消息 */
message?: string message?: string
success?: boolean
} }
/** /**
...@@ -1107,7 +1108,7 @@ class UserService { ...@@ -1107,7 +1108,7 @@ class UserService {
static async updateMemberGuest( static async updateMemberGuest(
tenantId: string, tenantId: string,
data: MemberGuestInputDto data: MemberGuestInputDto
): Promise<MemberGuestInputDto> { ): Promise<GeneralResponseDto> {
const response = await OtaRequest.post( const response = await OtaRequest.post(
'/member-guest/or-update', '/member-guest/or-update',
data, data,
...@@ -1117,7 +1118,7 @@ class UserService { ...@@ -1117,7 +1118,7 @@ class UserService {
} : {} } : {}
} }
) )
return response as unknown as MemberGuestInputDto return response as unknown as GeneralResponseDto
} }
/** /**
...@@ -1166,7 +1167,7 @@ class UserService { ...@@ -1166,7 +1167,7 @@ class UserService {
static async updateMemberMailingAddress( static async updateMemberMailingAddress(
tenantId: string, tenantId: string,
data: MemberMailingAddressInputDto data: MemberMailingAddressInputDto
): Promise<MemberMailingAddressInputDto> { ): Promise<GeneralResponseDto> {
const response = await OtaRequest.post( const response = await OtaRequest.post(
'/member-mailing-address/or-update', '/member-mailing-address/or-update',
data, data,
...@@ -1176,7 +1177,7 @@ class UserService { ...@@ -1176,7 +1177,7 @@ class UserService {
} : {} } : {}
} }
) )
return response as unknown as MemberMailingAddressInputDto return response as unknown as GeneralResponseDto
} }
/** /**
......
<template> <template>
<div class="w-[977px] h-full flex flex-col flex-shrink-0" <div class="w-[977px] flex flex-col pt-[25px] h-full overflow-hidden"
:class="[current<3?'overflow-hidden':'']"> :class="[current<3?'':'']">
<a-spin :loading="loading">
<div class="flex pl-[13px]"> <div class="flex pl-[13px]">
<div v-for="(item,index) in TitleBars" <div v-for="(item,index) in TitleBars"
class="myOrder-status mr-[42px] py-[22px] cursor-pointer relative" class="myOrder-status mr-[42px] py-[22px] cursor-pointer relative"
...@@ -13,10 +12,10 @@ ...@@ -13,10 +12,10 @@
</div> </div>
</div> </div>
<a-divider class="!m-[0]"/> <a-divider class="!m-[0]"/>
<main class="max-h-[735px] mt-[20px] overflow-hidden"> <!-- max-h-[735px] -->
<main class="flex-1 mt-[20px] overflow-hidden">
<router-view /> <router-view />
</main> </main>
</a-spin>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
......
<template> <template>
<div class="h-full overflow-auto"> <div class="w-full h-full overflow-hidden" >
<a-scrollbar class="overflow-auto h-[100%]">
<div class="accountCenter rounded-[14px] border-[1px] mb-[28px] flex items-center py-[30px] pl-[43px] pr-[35px]"> <div class="accountCenter rounded-[14px] border-[1px] mb-[28px] flex items-center py-[30px] pl-[43px] pr-[35px]">
<div class="w-[102px] mr-[43px]"> <div class="w-[102px] mr-[43px]">
<div class="customPrimary-bg-7 rounded-full w-[50px] h-[50px] flex justify-center items-center"> <div class="customPrimary-bg-7 rounded-full w-[50px] h-[50px] flex justify-center items-center">
...@@ -131,6 +132,7 @@ ...@@ -131,6 +132,7 @@
</a-button> </a-button>
</div> </div>
</div> </div>
</a-scrollbar>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
...@@ -453,4 +455,8 @@ inData() ...@@ -453,4 +455,8 @@ inData()
background: url('../../../../assets/images/personal/sc_1.png')no-repeat; background: url('../../../../assets/images/personal/sc_1.png')no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
:deep(.arco-scrollbar){
height: 100%;
overflow: hidden;
}
</style> </style>
\ No newline at end of file
<template> <template>
<div class="w-full h-full overflow-auto"> <div class="w-full h-full overflow-hidden">
<a-scrollbar class="overflow-auto h-[100%]">
<a-spin :loading="loading" class="w-full">
<a-space direction="vertical" class="w-full"> <a-space direction="vertical" class="w-full">
<!-- horizonta --> <!-- horizonta -->
<a-form :model="formData" :rules="rules" layout="vertical" class="w-full" <a-form :model="formData" :rules="rules" layout="vertical" class="w-full"
...@@ -181,12 +183,14 @@ ...@@ -181,12 +183,14 @@
</a-form> </a-form>
</a-space> </a-space>
</a-spin>
<!-- 图片预览 --> <!-- 图片预览 -->
<a-image-preview <a-image-preview
v-model:visible="previewVisible" v-model:visible="previewVisible"
:src="previewUrl" :src="previewUrl"
:actions-layout="['rotateLeft', 'rotateRight', 'zoomIn', 'zoomOut', 'originalSize']" :actions-layout="['rotateLeft', 'rotateRight', 'zoomIn', 'zoomOut', 'originalSize']"
/> />
</a-scrollbar>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
...@@ -196,7 +200,6 @@ import { useRouter } from 'vue-router' ...@@ -196,7 +200,6 @@ import { useRouter } from 'vue-router'
import { Message } from '@arco-design/web-vue' import { Message } from '@arco-design/web-vue'
import { useSystemConfigStore } from '@/stores/index' import { useSystemConfigStore } from '@/stores/index'
import UserService from '@/services/UserService' import UserService from '@/services/UserService'
import type { setRegisterDto } from '@/services/UserService'
import CountryService from '@/services/CountryService' import CountryService from '@/services/CountryService'
import { useUserStore } from '@/stores/user' import { useUserStore } from '@/stores/user'
import UploadService from '@/services/UploadService' import UploadService from '@/services/UploadService'
...@@ -255,11 +258,7 @@ const rules = computed(() => ({ ...@@ -255,11 +258,7 @@ const rules = computed(() => ({
], ],
})) }))
const loading = ref(false) const loading = ref(true)
const codeValidateStatus = ref<'' | 'success' | 'error'>('')
const emailVerified = ref(false)
const maxSize = 2 // 2MB const maxSize = 2 // 2MB
// 预览相关 // 预览相关
...@@ -422,6 +421,8 @@ const getUserDetail = async () => { ...@@ -422,6 +421,8 @@ const getUserDetail = async () => {
} }
} catch (error) { } catch (error) {
} finally {
loading.value = false
} }
} }
...@@ -480,4 +481,8 @@ initData() ...@@ -480,4 +481,8 @@ initData()
background-color: rgb(var(--arcoblue-6)); background-color: rgb(var(--arcoblue-6));
color: rgb(var(--arcoblue-10)); color: rgb(var(--arcoblue-10));
} }
:deep(.arco-scrollbar){
height: 100%;
overflow: hidden;
}
</style> </style>
\ No newline at end of file
<template> <template>
<a-spin :loading="loading" class="w-full"> <div class="w-full h-full overflow-hidden">
<div v-show="!showType"> <div v-show="!showType" class="flex flex-col h-full overflow-hidden">
<a-scrollbar class="max-h-[692px] overflow-auto" <a-scrollbar class="overflow-auto h-full"
@scroll="handleDivScroll" @scroll="handleDivScroll"
ref="scrollContainer"> ref="scrollContainer">
<a-spin :loading="loading" class="w-full">
<div class="accountCenter rounded-[14px] <div class="accountCenter rounded-[14px]
border-[1px] mb-[18px] flex items-center border-[1px] mb-[18px] flex items-center
justify-between py-[15px] pl-[36px] pr-[22px]" justify-between py-[15px] pl-[36px] pr-[22px]"
...@@ -12,10 +13,10 @@ ...@@ -12,10 +13,10 @@
{{ item.name }} {{ item.name }}
</div> </div>
<div class="flex-1 mr-[20px]"> <div class="flex-1 mr-[20px]">
{{ item.cityName }}{{ item.address }} {{ item.cityName }} {{ item?.address || '-' }}
</div> </div>
<div class="w-[200px] mr-[20px]"> <div class="w-[200px] mr-[20px]">
{{item.phoneCode}} {{ item.phone }} {{item.phoneCode}} {{ item?.phone ||'-' }}
</div> </div>
<div class="w-[100px]" <div class="w-[100px]"
:class="[item.isDefault?'customColor-text-5':'']"> :class="[item.isDefault?'customColor-text-5':'']">
...@@ -27,6 +28,7 @@ ...@@ -27,6 +28,7 @@
<div class="w-[14px] h-[16px] deleteIcon ml-[17px] cursor-pointer" @click="clickItem(item,0)">&nbsp;</div> <div class="w-[14px] h-[16px] deleteIcon ml-[17px] cursor-pointer" @click="clickItem(item,0)">&nbsp;</div>
</div> </div>
</div> </div>
</a-spin>
</a-scrollbar> </a-scrollbar>
<div class="rounded-[8px] addGuestButton py-[10px] text-center text-base cursor-pointer" @click="showType = 1">{{ t('personal.addPostAddress') }}</div> <div class="rounded-[8px] addGuestButton py-[10px] text-center text-base cursor-pointer" @click="showType = 1">{{ t('personal.addPostAddress') }}</div>
</div> </div>
...@@ -145,12 +147,10 @@ ...@@ -145,12 +147,10 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-row> </a-row>
</a-form> </a-form>
</a-space> </a-space>
</div> </div>
</a-spin> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref,reactive, computed } from 'vue' import { ref,reactive, computed } from 'vue'
...@@ -450,4 +450,9 @@ initData() ...@@ -450,4 +450,9 @@ initData()
:deep(.arco-scrollbar-track-direction-vertical){ :deep(.arco-scrollbar-track-direction-vertical){
display: none; display: none;
} }
:deep(.arco-scrollbar){
max-height: calc(100vh - 106px);
padding-bottom: 15px;
overflow: hidden;
}
</style> </style>
\ No newline at end of file
<template> <template>
<a-spin :loading="loading" class="w-full"> <div class="w-full h-full overflow-hidden">
<div v-show="!showType"> <div v-show="!showType" class="flex flex-col h-full overflow-hidden">
<a-scrollbar class="max-h-[692px]" <a-scrollbar class="overflow-auto h-full"
@scroll="handleDivScroll" @scroll="handleDivScroll"
ref="scrollContainer"> ref="scrollContainer">
<a-spin :loading="loading" class="w-full">
<div class="accountCenter rounded-[14px] <div class="accountCenter rounded-[14px]
border-[1px] mb-[18px] flex items-center border-[1px] mb-[18px] flex items-center
justify-between py-[15px] pl-[36px] pr-[22px]" justify-between py-[15px] pl-[36px] pr-[22px]"
...@@ -18,19 +19,21 @@ ...@@ -18,19 +19,21 @@
{{ item.sex === 1 ? t('ORDER.GENDER_MALE') : t('ORDER.GENDER_FEMALE') }} {{ item.sex === 1 ? t('ORDER.GENDER_MALE') : t('ORDER.GENDER_FEMALE') }}
</div> </div>
<div class="w-[200px]"> <div class="w-[200px]">
{{ item.email }} {{ item?.email||'-' }}
</div> </div>
<div class="w-[150px]"> <div class="w-[150px]">
{{item.phoneCode}} {{ item.phone }} {{ item.phoneCode }} {{ item?.phone || '-' }}
</div> </div>
<div class="flex items-center justify-between"> <div class="flex items-center justify-between">
<div class="w-[16px] h-[16px] editIcon cursor-pointer" @click="clickItem(item,1)">&nbsp;</div> <div class="w-[16px] h-[16px] editIcon cursor-pointer" @click="clickItem(item,1)">&nbsp;</div>
<div class="w-[14px] h-[16px] deleteIcon ml-[17px] cursor-pointer" @click="clickItem(item,0)">&nbsp;</div> <div class="w-[14px] h-[16px] deleteIcon ml-[17px] cursor-pointer" @click="clickItem(item,0)">&nbsp;</div>
</div> </div>
</div> </div>
</a-spin>
</a-scrollbar> </a-scrollbar>
<div class="rounded-[8px] addGuestButton py-[10px] text-center text-base cursor-pointer" @click="showType = 1">{{ t('personal.addPassenger') }}</div> <div class="rounded-[8px] addGuestButton py-[10px] text-center text-base cursor-pointer" @click="showType = 1">{{ t('personal.addPassenger') }}</div>
</div> </div>
<div v-if="showType" class="addPassenger h-[581px] bg-[#FFFFFF] rounded-b-[12px] shadow-lg shadow-[#E3E6DA]"> <div v-if="showType" class="addPassenger h-[581px] bg-[#FFFFFF] rounded-b-[12px] shadow-lg shadow-[#E3E6DA]">
<div class="addPassengerHeader py-[20px] px-[31px] rounded-t-[12px] text-base">{{ showType === 1 ? t('personal.addPassenger') : t('personal.editPassenger') }}</div> <div class="addPassengerHeader py-[20px] px-[31px] rounded-t-[12px] text-base">{{ showType === 1 ? t('personal.addPassenger') : t('personal.editPassenger') }}</div>
<a-space direction="vertical" class="w-full p-[40px]"> <a-space direction="vertical" class="w-full p-[40px]">
...@@ -169,7 +172,7 @@ ...@@ -169,7 +172,7 @@
</a-form> </a-form>
</a-space> </a-space>
</div> </div>
</a-spin> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref,reactive, computed } from 'vue' import { ref,reactive, computed } from 'vue'
...@@ -295,7 +298,7 @@ const loadData = async () => { ...@@ -295,7 +298,7 @@ const loadData = async () => {
totalCount.value = response.totalCount || 0 totalCount.value = response.totalCount || 0
pageCount.value = Math.ceil(totalCount.value/queryParams.MaxResultCount) || 0 pageCount.value = Math.ceil(totalCount.value/queryParams.MaxResultCount) || 0
} }
noMoreData.value = pageCount.value >= queryParams.SkipCount noMoreData.value = pageCount.value <= queryParams.SkipCount
} }
} catch (error: any) { } catch (error: any) {
console.error('加载失败:', error) console.error('加载失败:', error)
...@@ -319,6 +322,7 @@ const clickItem = (item: any,type: number) => { ...@@ -319,6 +322,7 @@ const clickItem = (item: any,type: number) => {
formData.countryId = item.countryId || null formData.countryId = item.countryId || null
formData.sex = item.sex || null formData.sex = item.sex || null
formData.idCard = item.idCard || null formData.idCard = item.idCard || null
formData.email = item.email || null
}else{ }else{
deleteItem(item) deleteItem(item)
} }
...@@ -375,9 +379,9 @@ const handleSubmit = async () => { ...@@ -375,9 +379,9 @@ const handleSubmit = async () => {
try { try {
const registerData = formData const registerData = formData
const response = await UserService.updateMemberGuest(systemConfig.tenantId || 'default',registerData) const response = await UserService.updateMemberGuest(systemConfig.tenantId || 'default',registerData)
console.log('提交成功:', response)
showType.value = null showType.value = null
resetQuery() resetQuery()
cancel()
} catch (error: any) { } catch (error: any) {
console.error('提交失败:', error) console.error('提交失败:', error)
Message.error(error.message) Message.error(error.message)
...@@ -479,4 +483,9 @@ initData() ...@@ -479,4 +483,9 @@ initData()
:deep(.arco-scrollbar-track-direction-vertical){ :deep(.arco-scrollbar-track-direction-vertical){
display: none; display: none;
} }
:deep(.arco-scrollbar){
max-height: calc(100vh - 106px);
padding-bottom: 15px;
overflow: hidden;
}
</style> </style>
\ No newline at end of file
<template> <template>
<div class="h-screen flex justify-center pt-[25px] pb-[12px]"> <div class="h-screen flex justify-center pb-[12px] h-[797px]">
<div class="h-full flex justify-between w-[1200px]"> <div class="h-full flex justify-between w-[1200px]">
<!-- 左侧导航栏 --> <!-- 左侧导航栏 -->
<LeftView <LeftView class="pt-[25px]"
:menu-list="menuList" :menu-list="menuList"
:active-menu="activeMenu"/> :active-menu="activeMenu"/>
<!-- 右侧页面内容 --> <!-- 右侧页面内容 -->
<main class="h-full flex-1 ml-[24px]"> <main class="flex-1 ml-[24px] overflow-hidden">
<router-view /> <router-view />
</main> </main>
</div> </div>
......
<template> <template>
<div class="w-[977px] h-full flex flex-col flex-shrink-0"> <div class="w-[977px] h-full flex flex-col flex-shrink-0 mt-[25px]">
<a-spin :loading="loading"> <a-spin :loading="loading">
<div class="myOrderData rounded-[14px] flex justify-between pt-[22px] pb-[19px] pl-[16px] relative"> <div class="myOrderData rounded-[14px] flex justify-between pt-[22px] pb-[19px] pl-[16px] relative">
<div class="flex items-center p-[20px]"> <div class="flex items-center p-[20px]">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment