From 2e1246dadb5d900407db485752520390cca3299b Mon Sep 17 00:00:00 2001 From: doublekou <951513186@qq.com> Date: Tue, 10 Oct 2023 10:00:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=AA=E4=BA=BA=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.production | 2 +- src/api/personCenter/index.ts | 2 +- src/api/personCenter/types.ts | 2 +- .../RightContent/AvatarDropdown.vue | 19 +- .../geopoliticalCustomersModal.vue | 704 +++++++++--------- src/views/login/components/LoginContent.vue | 1 + .../system/userCenter/center/updatePass.vue | 18 +- src/views/system/userCenter/personCenter.vue | 563 ++------------ 8 files changed, 454 insertions(+), 857 deletions(-) diff --git a/.env.production b/.env.production index f608eb6..c21c66d 100644 --- a/.env.production +++ b/.env.production @@ -3,4 +3,4 @@ VITE_API_TIME_OUT=10000 VITE_PASSWORD_SECRET_KEY===ad-distribute= VITE_IMAGE_DOMAIN=https://hccake-img.oss-cn-shanghai.aliyuncs.com # 用来回显图片 -VITE_SERVERURL=http://39.100.77.21:8000 \ No newline at end of file +VITE_SERVERURL=http://39.100.77.21:8001 \ No newline at end of file diff --git a/src/api/personCenter/index.ts b/src/api/personCenter/index.ts index 14ef00a..cefbd6a 100644 --- a/src/api/personCenter/index.ts +++ b/src/api/personCenter/index.ts @@ -22,7 +22,7 @@ export function saveConfiguration(saveConfigurationDto: SysConfigurationDTO) { gender: saveConfigurationDto.gender, userId: saveConfigurationDto.userId, nickname: saveConfigurationDto.nickname, - phone: saveConfigurationDto.phone, + phoneNumber: saveConfigurationDto.phoneNumber, username: saveConfigurationDto.username }) } diff --git a/src/api/personCenter/types.ts b/src/api/personCenter/types.ts index 92922c4..0fde16f 100644 --- a/src/api/personCenter/types.ts +++ b/src/api/personCenter/types.ts @@ -12,6 +12,6 @@ export interface SysConfigurationDTO { userId: number | undefined // jobNumber: number nickname: string | undefined - phone: string | undefined + phoneNumber: string | undefined username: string | undefined } diff --git a/src/layouts/components/RightContent/AvatarDropdown.vue b/src/layouts/components/RightContent/AvatarDropdown.vue index 20dfb47..b5f59ae 100644 --- a/src/layouts/components/RightContent/AvatarDropdown.vue +++ b/src/layouts/components/RightContent/AvatarDropdown.vue @@ -5,7 +5,17 @@ - + + {{ currentUser.nickname }} @@ -41,8 +51,9 @@ import { Modal } from 'ant-design-vue' import { logout } from '@/api/auth' import { useUserStore } from '@/stores/user-store' import { loginPath } from '@/config' -import { fileAbsoluteUrl } from '@/utils/file-utils' +// import { fileAbsoluteUrl } from '@/utils/file-utils' import { useMultiTabStore } from '@/stores/multitab-store' +import Avatar from '@/assets/images/avatar.png' const multiTabStore = useMultiTabStore() @@ -56,13 +67,15 @@ const props = withDefaults(defineProps(), { }) const loading = ref(false) +const envs = import.meta.env + const userStore = useUserStore() const currentUser = computed(() => { const userInfo = userStore.userInfo return { nickname: userInfo?.nickname, - avatar: userInfo?.avatar ? fileAbsoluteUrl(userInfo?.avatar) : '' + avatar: userInfo?.avatar ? userInfo?.avatar : '' } }) diff --git a/src/views/geopoliticalCustomers/geopoliticalCustomersModal.vue b/src/views/geopoliticalCustomers/geopoliticalCustomersModal.vue index 94f5240..1d3f798 100644 --- a/src/views/geopoliticalCustomers/geopoliticalCustomersModal.vue +++ b/src/views/geopoliticalCustomers/geopoliticalCustomersModal.vue @@ -113,22 +113,6 @@ :rules="[{ required: true, message: '请输入小区名称', trigger: 'change' }]" name="detailAddress" > - - - { + //省市区下拉框列表数据 + provincesAndCitiesAndAutonomousOptions.value = window.globalProvincesAndCitiesAndAutonomousRegions + // if (provincesAndCitiesAndAutonomousRegions) { + // const addressArray = JSON.parse(JSON.stringify(provincesAndCitiesAndAutonomousRegions)) + // const arr: any[] = [] + // addressArray.forEach((item: any) => { + // item.children.forEach((it: any) => { + // if (it.children) { + // delete it.children + // } + // }) + // arr.push(item) + // }) + // provincesAndCitiesAndAutonomousOptions.value = arr + // } +}) + +//省市区、半径动态生成只读/禁用样式 +const isDisabled = ref(false) +const isReadOnly = ref(false) +const dynamicClass = computed(() => ({ + 'custom-disabled-style': isDisabled.value, + 'custom-readonly-style': isReadOnly.value +})) +//预约日期、预约时间动态生成只读/禁用样式 +const reservationTimeisReadOnly = ref(false) +const reservationTimeClass = computed(() => ({ + 'custom-readonly-style': reservationTimeisReadOnly.value +})) +//小区动态生成只读/禁用样式 +const isDetailAddressDisabled = ref(false) +const isDetailAddressReadOnly = ref(false) + +const isDetailAddressReadOnlyDynamicClass = computed(() => ({ + 'custom-disabled-style': isDetailAddressDisabled.value, + 'custom-readonly-style': + isDetailAddressReadOnly.value || + (formModel.address && formModel.address.length < 2) || + !formModel.address +})) + +const formRef = ref() + +// const city = ref('') +// const cityAnddistinguish = ref('') + +//省市区下拉框列表数据 +const provincesAndCitiesAndAutonomousOptions: any = ref([]) +//省市区change +const addressChange = async (value: any) => { + // console.log(value, 'value') + formModel.detailAddress = '' + + if (value) { + formModel.economize = value[0] + formModel.market = value[1] + formModel.distinguish = value[2] + // console.log(value.length, 'value.length') + // if (value.length === 2) { + // formModel.detailAddress = value[0] + value[1] + // } else if (value.length === 3) { + // formModel.detailAddress = value[0] + value[1] + value[2] + // } + console.log('formModel.detailAddress', formModel.detailAddress) + + // city.value = value[1].slice(0, -1) + // cityAnddistinguish.value = value[1] + value[2] + // await auto(value[1]) + } +} + +//区域半径下拉框列表数据(不需要改变的数据不要绑定ref) +const radiusOptions = ref([ + { + id: '3000', + name: '3km' + }, + { + id: '5000', + name: '5km' + }, + { + id: '10000', + name: '10km' + } +]) +//区域半径change +const radiusChange = (value: SelectValue) => { + formModel.radius = value +} + +//根据地址搜索出来的门店数据 +const listData: any = ref([]) + +//预约时间下拉框列表数据(根据后端返回的营业时间生成) +const generateTimeSlots = (tradeStartTime: string, tradeEndTime: string) => { + const startHour = Number(tradeStartTime.split(':')[0]) + const startMinute = Number(tradeStartTime.split(':')[1]) + const endHour = Number(tradeEndTime.split(':')[0]) + const endMinute = Number(tradeEndTime.split(':')[1]) + + const timeSlots = [] + for (let hour = startHour; hour <= endHour; hour++) { + for (let minute = 0; minute < 60; minute += 30) { + if (hour === startHour && minute < startMinute) { + continue + } + if (hour === endHour && minute >= endMinute) { + break + } + + const startTime = `${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}` + const endTime = `${(hour + Math.floor(minute / 30)).toString().padStart(2, '0')}:${( + (minute + 30) % + 60 + ) + .toString() + .padStart(2, '0')}` + const timeSlot = { + label: `${startTime}~${endTime}`, + value: `${startTime}~${endTime}` + } + timeSlots.push(timeSlot) + } + } + + return timeSlots +} + +//创建 AMap.Geocoder 实例,AMap.Geocoder 是高德地图 JavaScript API 中的一个类,用于将地理描述转换为经纬度坐标或将经纬度坐标转换为地理描述 +const newAmapGeocoder = () => { + AMap.plugin('AMap.Geocoder', function () { + geocoder.value = new AMap.Geocoder({ + city: '全国' // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode + }) + }) +} + +//通过接口获取小区下拉框提示列表数据 const key = ref('435631c2ed6e33af778b42b46b2260ee') //web服务 高德api const searchData = (city: string, keywords: string, callback: any) => { axios @@ -468,7 +600,7 @@ const searchData = (city: string, keywords: string, callback: any) => { //小区下拉框提示列表数据 const searchDataList = ref([]) -//获取小区下拉框提示列表数据防抖节流 +//获取小区下拉框提示列表数据 let timeout: any function fetch(val: string, callback: any) { const dist: string = formModel.distinguish ? formModel.distinguish : formModel.market || '' @@ -496,20 +628,11 @@ function fetch(val: string, callback: any) { }) } } - + //节流控制 timeout = setTimeout(fake, 300) } -//创建 AMap.Geocoder 实例,AMap.Geocoder 是高德地图 JavaScript API 中的一个类,用于将地理描述转换为经纬度坐标或将经纬度坐标转换为地理描述 -const newAmapGeocoder = () => { - AMap.plugin('AMap.Geocoder', function () { - geocoder.value = new AMap.Geocoder({ - city: '全国' // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode - }) - }) -} - -//小区a-select鼠标移入/移出触发事件 +//小区a-select鼠标移入/移出触发事件(文本框值变化时回调) const handleSearch = (val: string) => { if (val) { formModel.detailAddress = val @@ -522,24 +645,23 @@ const handleSearch = (val: string) => { //小区a-select select事件 const handleSelect = (val: string) => { - console.log(val, 'val') formModel.detailAddress = val - // getLocation('') newAmapGeocoder() getCenterMarkerAddress() } -//根据门店名称去获取中心点 +//小区a-select的select事件时根据门店名称去获取中心点 const accordingStorenameGetCenter = (pois: any) => { isName.value = false getCenterMarker('select', pois[0].location.lng, pois[0].location.lat) } -//根据详细地址区获取中心点 +//小区a-select的select事件时根据详细地址区获取中心点 const accordingAddressGetCenter = () => { isName.value = true newAmapGeocoder() getLocation('select') } -//标记中心点封装的方法 + +//输入详细地址去获取经纬度从而标记中心点封装的方法 const getLocation = (type: string) => { // console.log(address, '标记中心点address') const addressValue = @@ -585,6 +707,42 @@ const getLocation = (type: string) => { }) } //标记中心点封装的方法 +const getCenterMarker = (type: string, lng: number, lat: number) => { + formModel.otherAddressesInfo = `${lng},${lat}` + console.log(lng, lat, 'lng') + // 设置地图中心点 + map.value.setCenter([lng, lat]) // 将经度和纬度作为参数传入 + if (type === 'match' || type === 'select') { + //修改地图的缩放级别 + map.value.setZoom(12) // 设置新的缩放级别,例如12 + } + + if (previousMarker.value && type === 'select') { + map.value.remove(markerCenter.value) // 从地图上移除之前的中心点标记物 + } + // 创建标记并添加到地图上 + markerCenter.value = new AMap.Marker({ + position: [lng, lat], // 设定标记的位置为地图中心点 + zIndex: 100 // 设置标记点的 z-index 值为 100 + }) + + // 设置标记点的样式 + markerCenter.value.setIcon( + new AMap.Icon({ + image: 'https://webapi.amap.com/theme/v1.3/markers/n/mark_r.png', // 使用红色标记点的图标 URL + size: new AMap.Size(18, 30), // 图标尺寸 + imageSize: new AMap.Size(18, 30) // 图片尺寸 + }) + ) + + markerCenter.value.setMap(map.value) // 将标记添加到地图上 + previousMarker.value = marker // 将新的中心点标记物赋值给 previousMarker + + if (type === 'match') { + pagingQuery(lng, lat) + } +} +//标记中心点封装的方法 const getCenterMarkerAddress = () => { createSearchService() const addressValue = formModel.address?.toString().split(',').join('') + formModel.detailAddress @@ -659,145 +817,6 @@ const getCenterMarkerAddress = () => { }) } -//省市区二级 -// import { provincesAndCitiesAndAutonomousRegions } from '@/utils/geopolitical-customers' - -//dom中可以写成:rules = 'rulesData' -// const rulesData = { -// required: true, -// trigger: 'change' -// } - -onMounted(() => { - //省市区下拉框列表数据 - provincesAndCitiesAndAutonomousOptions.value = window.globalProvincesAndCitiesAndAutonomousRegions - // if (provincesAndCitiesAndAutonomousRegions) { - // const addressArray = JSON.parse(JSON.stringify(provincesAndCitiesAndAutonomousRegions)) - // const arr: any[] = [] - // addressArray.forEach((item: any) => { - // item.children.forEach((it: any) => { - // if (it.children) { - // delete it.children - // } - // }) - // arr.push(item) - // }) - // provincesAndCitiesAndAutonomousOptions.value = arr - // } -}) - -//省市区、半径动态生成只读/禁用样式 -const isDisabled = ref(false) -const isReadOnly = ref(false) -const dynamicClass = computed(() => ({ - 'custom-disabled-style': isDisabled.value, - 'custom-readonly-style': isReadOnly.value -})) -//预约日期、预约时间动态生成只读/禁用样式 -const reservationTimeisReadOnly = ref(false) -const reservationTimeClass = computed(() => ({ - 'custom-readonly-style': reservationTimeisReadOnly.value -})) -//小区动态生成只读/禁用样式 -const isDetailAddressDisabled = ref(false) -const isDetailAddressReadOnly = ref(false) - -const isDetailAddressReadOnlyDynamicClass = computed(() => ({ - 'custom-disabled-style': isDetailAddressDisabled.value, - 'custom-readonly-style': - isDetailAddressReadOnly.value || - (formModel.address && formModel.address.length < 2) || - !formModel.address -})) - -const formRef = ref() - -// const city = ref('') -// const cityAnddistinguish = ref('') - -//省市区下拉框列表数据 -const provincesAndCitiesAndAutonomousOptions: any = ref([]) -//省市区change -const addressChange = async (value: any) => { - // console.log(value, 'value') - formModel.detailAddress = '' - - if (value) { - formModel.economize = value[0] - formModel.market = value[1] - formModel.distinguish = value[2] - // console.log(value.length, 'value.length') - // if (value.length === 2) { - // formModel.detailAddress = value[0] + value[1] - // } else if (value.length === 3) { - // formModel.detailAddress = value[0] + value[1] + value[2] - // } - console.log('formModel.detailAddress', formModel.detailAddress) - - // city.value = value[1].slice(0, -1) - // cityAnddistinguish.value = value[1] + value[2] - // await auto(value[1]) - } -} - -//区域半径下拉框列表数据(不需要改变的数据不要绑定ref) -const radiusOptions = ref([ - { - id: '3000', - name: '3km' - }, - { - id: '5000', - name: '5km' - }, - { - id: '10000', - name: '10km' - } -]) -//区域半径change -const radiusChange = (value: SelectValue) => { - formModel.radius = value -} - -//根据地址搜索出来的门店数据 -const listData: any = ref([]) - -//预约时间下拉框列表数据(根据后端返回的营业时间生成) -const generateTimeSlots = (tradeStartTime: string, tradeEndTime: string) => { - const startHour = Number(tradeStartTime.split(':')[0]) - const startMinute = Number(tradeStartTime.split(':')[1]) - const endHour = Number(tradeEndTime.split(':')[0]) - const endMinute = Number(tradeEndTime.split(':')[1]) - - const timeSlots = [] - for (let hour = startHour; hour <= endHour; hour++) { - for (let minute = 0; minute < 60; minute += 30) { - if (hour === startHour && minute < startMinute) { - continue - } - if (hour === endHour && minute >= endMinute) { - break - } - - const startTime = `${hour.toString().padStart(2, '0')}:${minute.toString().padStart(2, '0')}` - const endTime = `${(hour + Math.floor(minute / 30)).toString().padStart(2, '0')}:${( - (minute + 30) % - 60 - ) - .toString() - .padStart(2, '0')}` - const timeSlot = { - label: `${startTime}~${endTime}`, - value: `${startTime}~${endTime}` - } - timeSlots.push(timeSlot) - } - } - - return timeSlots -} - //经纬度 const lng = ref() const lat = ref() @@ -910,6 +929,11 @@ const pagingQuery = (lng: number | undefined, lat: number | undefined) => { const accordingStorenameMatch = (pois: any) => { isName.value = false getCenterMarker('match', pois[0].location.lng, pois[0].location.lat) + console.log( + pois[0].location.lng, + pois[0].location.lat, + 'pois[0].location.lng, pois[0].location.lat' + ) } //匹配时根据详细地址区获取中心点 const accordingAddressMatch = () => { @@ -1107,9 +1131,9 @@ interface customStoreEntitiesItem { //预约时间 reservationTime: string } -//是否发送请求了,发送了就要就行表格刷新 +//是否发送请求了,发送了就要执行表格刷新 const isSubmit = ref(false) -//提交请求操作 +//报名、暂存提交请求操作 const submitOperate = () => { //移除address属性 const filteredObj = Object.fromEntries( @@ -1392,41 +1416,6 @@ const map = ref({}) //逆向地理编码:将 地理坐标(经纬度) 转换成 地址描述信息,对应为AMap.Geocoder的getAddress方法 const geocoder = ref({}) -//标记中心点封装的方法 -const getCenterMarker = (type: string, lng: number, lat: number) => { - // 设置地图中心点 - map.value.setCenter([lng, lat]) // 将经度和纬度作为参数传入 - if (type === 'match' || type === 'select') { - //修改地图的缩放级别 - map.value.setZoom(12) // 设置新的缩放级别,例如12 - } - - if (previousMarker.value && type === 'select') { - map.value.remove(markerCenter.value) // 从地图上移除之前的中心点标记物 - } - // 创建标记并添加到地图上 - markerCenter.value = new AMap.Marker({ - position: [lng, lat], // 设定标记的位置为地图中心点 - zIndex: 100 // 设置标记点的 z-index 值为 100 - }) - - // 设置标记点的样式 - markerCenter.value.setIcon( - new AMap.Icon({ - image: 'https://webapi.amap.com/theme/v1.3/markers/n/mark_r.png', // 使用红色标记点的图标 URL - size: new AMap.Size(18, 30), // 图标尺寸 - imageSize: new AMap.Size(18, 30) // 图片尺寸 - }) - ) - - markerCenter.value.setMap(map.value) // 将标记添加到地图上 - previousMarker.value = marker // 将新的中心点标记物赋值给 previousMarker - - if (type === 'match') { - console.log(type, 'type') - pagingQuery(lng, lat) - } -} const searchService = ref({}) // 创建地点搜索服务实例 const createSearchService = () => { @@ -1443,155 +1432,152 @@ const createSearchService = () => { // getCenterMarkerAddress('select') // } const isName = ref(false) -const selectedTipCurrent = ref() -// 当用户选择输入提示结果后进行查询操作 -const performQuery = (selectedTip: any, detailAddress: string) => { - console.log('performQuery') - - selectedTipCurrent.value = selectedTip - //标记中心点 - // 创建地点搜索服务实例 - const searchService = new AMap.PlaceSearch({ - // 在这里填写您的高德地图 API Key - key: '1d3839a0fe4ad113f7d88ec3775107b7', - // 指定地点搜索服务的版本号 - version: '2.0' - }) - const addressValue = formModel.address?.toString().split(',').join('') + selectedTip.name - // 执行地点搜索 - searchService.search(addressValue, (status: any, result: any) => { - if (status === 'complete' && result.info === 'OK') { - // 处理搜索结果 - const pois = result.poiList.pois - console.log(pois, 'pois') - console.log(formModel.detailAddress, 'formModel.detailAddress') - // 对获取到的兴趣点列表进行处理 - // console.log(pois, 'pois') - // console.log(pois[0].location.lng, pois[0].location.lat, 'pois经纬度') - if (pois[0].name === formModel.detailAddress) { - isName.value = false - getCenterMarker('select', pois[0].location.lng, pois[0].location.lat) - formModel.otherAddressesInfo = `${pois[0].location.lng},${pois[0].location.lat}` - } else { - isName.value = true - console.log(selectedTipCurrent.value, 'selectedTipCurrent.value') - // getLocation(selectedTipCurrent.value) - } - } else { - // 地点搜索失败的处理逻辑 - console.log('地点搜索失败') - } - }) - // if (isName.value) { - // console.log(isName.value, 'isName.value') - - // } - // const geocoder = new AMap.Geocoder() - // const location = selectedTip.location - // if (location) { - // // 使用地理编码查询 - // geocoder.getAddress(location, function (status: any, result: any) { - // if (status === 'complete' && result.info === 'OK') { - // // 处理查询结果 - // const address = result.regeocode.formattedAddress - // console.log('查询结果:', address) - // console.log(detailAddress, 'detailAddress') - - // // 进行其他操作... - // match() - - // // detailAddress = detailAddress.substring(0, 14) - // // if (detailAddress === '浙江省杭州市上城区九和路8号华侨国际·新侨创智中心') { - // // detailAddress = detailAddress.substring(0, detailAddress.indexOf('号') + 1) - // // console.log(detailAddress, 'detailAddress1111') - // // //标记中心点 - // // getCenterMarker('select', detailAddress) - // // formModel.otherAddressesInfo = detailAddress - // // } else { - // // //标记中心点 - // // getCenterMarker('select', detailAddress) - // // formModel.otherAddressesInfo = detailAddress - // // } - // } - // }) - // } else { - // message.info('地址错误,请重新进行选择') - // } -} - -const detailAddress = ref('') -const detailAddressRef = ref() -const auto = async (value: string) => { - await AMap.plugin('AMap.AutoComplete', function () { - console.log(autoComplete.value, 'value') - //AutoComplete实例已存在,赋值失败;想变成动态的,就得动态赋值;死就没有发生变化,不需要重新赋值 - // if (autoComplete.value) { - // autoComplete.value.setCity(value) - // } else { - // 实例化Autocomplete - const autoOptions = { - // city: value, // 限定城市,默认全国 - // city: '330000', // 限定城市,默认全国 - input: 'tipinput' - // keywords: formModel.address?.toString().split(',').join('') + formModel.detailAddress, - // citylimit: true, // 设置要限制的省市区 - // noLocation: true // 禁用定位功能 - } - - // 创建新的 AMap.AutoComplete 实例 - autoComplete.value = new AMap.AutoComplete(autoOptions) - // } - setTimeout(() => { - autoComplete.value?.on('select', (e: any) => { - // detailAddressRef.value.stateValue.getValue() - // detailAddressRef.value.stateValue = 123 - console.log( - detailAddressRef.value.stateValue, - 'detailAddressRef.value.stateValue.getValue()' - ) - console.log(detailAddressRef.value, 'detailAddressRef.value.value') - console.log(e.poi, 'e.poi') - const selectedTip = e.poi // 获取用户选择的提示结果对象 - console.log( - formModel.economize, - formModel.market, - formModel.distinguish, - 'formModel.economize && formModel.market && formModel.distinguish' - ) - if (formModel.distinguish) { - if (formModel.economize && formModel.market) { - const result = selectedTip.name.replace( - formModel.economize + formModel.market + formModel.distinguish, - '' - ) - const address = formModel.economize + formModel.market + formModel.distinguish + result // 将选中的提示项名称赋值给输入框的值(使用 v-model 来绑定) - // formModel.detailAddress = address - const tipInput = document.querySelector('#tipinput') as HTMLElement - - tipInput.innerHTML = address - // setTimeout(() => { - // detailAddressRef.value.stateValue = address - // }) - console.log(result, 'result') - console.log(formModel.detailAddress, 'formModel.detailAddress') - } - } else { - if (formModel.economize && formModel.market) { - const result = selectedTip.name.replace(formModel.economize + formModel.market, '') - const address = formModel.economize + formModel.market + result // 将选中的提示项名称赋值给输入框的值(使用 v-model 来绑定) - formModel.detailAddress = address - detailAddressRef.value.stateValue = address - - console.log(formModel.detailAddress, 'formModel.detailAddress') - } - } +// const selectedTipCurrent = ref() +// // 当用户选择输入提示结果后进行查询操作 +// const performQuery = (selectedTip: any, detailAddress: string) => { +// selectedTipCurrent.value = selectedTip +// //标记中心点 +// // 创建地点搜索服务实例 +// const searchService = new AMap.PlaceSearch({ +// // 在这里填写您的高德地图 API Key +// key: '1d3839a0fe4ad113f7d88ec3775107b7', +// // 指定地点搜索服务的版本号 +// version: '2.0' +// }) +// const addressValue = formModel.address?.toString().split(',').join('') + selectedTip.name +// // 执行地点搜索 +// searchService.search(addressValue, (status: any, result: any) => { +// if (status === 'complete' && result.info === 'OK') { +// // 处理搜索结果 +// const pois = result.poiList.pois +// console.log(pois, 'pois') +// console.log(formModel.detailAddress, 'formModel.detailAddress') +// // 对获取到的兴趣点列表进行处理 +// // console.log(pois, 'pois') +// // console.log(pois[0].location.lng, pois[0].location.lat, 'pois经纬度') +// if (pois[0].name === formModel.detailAddress) { +// isName.value = false +// getCenterMarker('select', pois[0].location.lng, pois[0].location.lat) +// formModel.otherAddressesInfo = `${pois[0].location.lng},${pois[0].location.lat}` +// } else { +// isName.value = true +// console.log(selectedTipCurrent.value, 'selectedTipCurrent.value') +// // getLocation(selectedTipCurrent.value) +// } +// } else { +// // 地点搜索失败的处理逻辑 +// console.log('地点搜索失败') +// } +// }) +// // if (isName.value) { +// // console.log(isName.value, 'isName.value') + +// // } +// // const geocoder = new AMap.Geocoder() +// // const location = selectedTip.location +// // if (location) { +// // // 使用地理编码查询 +// // geocoder.getAddress(location, function (status: any, result: any) { +// // if (status === 'complete' && result.info === 'OK') { +// // // 处理查询结果 +// // const address = result.regeocode.formattedAddress +// // console.log('查询结果:', address) +// // console.log(detailAddress, 'detailAddress') + +// // // 进行其他操作... +// // match() + +// // // detailAddress = detailAddress.substring(0, 14) +// // // if (detailAddress === '浙江省杭州市上城区九和路8号华侨国际·新侨创智中心') { +// // // detailAddress = detailAddress.substring(0, detailAddress.indexOf('号') + 1) +// // // console.log(detailAddress, 'detailAddress1111') +// // // //标记中心点 +// // // getCenterMarker('select', detailAddress) +// // // formModel.otherAddressesInfo = detailAddress +// // // } else { +// // // //标记中心点 +// // // getCenterMarker('select', detailAddress) +// // // formModel.otherAddressesInfo = detailAddress +// // // } +// // } +// // }) +// // } else { +// // message.info('地址错误,请重新进行选择') +// // } +// } - detailAddress.value = selectedTip.district + selectedTip.address - performQuery(selectedTip, detailAddress.value) // 执行查询操作 - }) - }, 300) - }) -} +// const detailAddress = ref('') +// const detailAddressRef = ref() +// const auto = async (value: string) => { +// await AMap.plugin('AMap.AutoComplete', function () { +// //AutoComplete实例已存在,赋值失败;想变成动态的,就得动态赋值;死就没有发生变化,不需要重新赋值 +// // if (autoComplete.value) { +// // autoComplete.value.setCity(value) +// // } else { +// // 实例化Autocomplete +// const autoOptions = { +// // city: value, // 限定城市,默认全国 +// // city: '330000', // 限定城市,默认全国 +// input: 'tipinput' +// // keywords: formModel.address?.toString().split(',').join('') + formModel.detailAddress, +// // citylimit: true, // 设置要限制的省市区 +// // noLocation: true // 禁用定位功能 +// } + +// // 创建新的 AMap.AutoComplete 实例 +// autoComplete.value = new AMap.AutoComplete(autoOptions) +// // } +// setTimeout(() => { +// autoComplete.value?.on('select', (e: any) => { +// // detailAddressRef.value.stateValue.getValue() +// // detailAddressRef.value.stateValue = 123 +// console.log( +// detailAddressRef.value.stateValue, +// 'detailAddressRef.value.stateValue.getValue()' +// ) +// console.log(detailAddressRef.value, 'detailAddressRef.value.value') +// console.log(e.poi, 'e.poi') +// const selectedTip = e.poi // 获取用户选择的提示结果对象 +// console.log( +// formModel.economize, +// formModel.market, +// formModel.distinguish, +// 'formModel.economize && formModel.market && formModel.distinguish' +// ) +// if (formModel.distinguish) { +// if (formModel.economize && formModel.market) { +// const result = selectedTip.name.replace( +// formModel.economize + formModel.market + formModel.distinguish, +// '' +// ) +// const address = formModel.economize + formModel.market + formModel.distinguish + result // 将选中的提示项名称赋值给输入框的值(使用 v-model 来绑定) +// // formModel.detailAddress = address +// const tipInput = document.querySelector('#tipinput') as HTMLElement + +// tipInput.innerHTML = address +// // setTimeout(() => { +// // detailAddressRef.value.stateValue = address +// // }) +// console.log(result, 'result') +// console.log(formModel.detailAddress, 'formModel.detailAddress') +// } +// } else { +// if (formModel.economize && formModel.market) { +// const result = selectedTip.name.replace(formModel.economize + formModel.market, '') +// const address = formModel.economize + formModel.market + result // 将选中的提示项名称赋值给输入框的值(使用 v-model 来绑定) +// formModel.detailAddress = address +// detailAddressRef.value.stateValue = address + +// console.log(formModel.detailAddress, 'formModel.detailAddress') +// } +// } + +// detailAddress.value = selectedTip.district + selectedTip.address +// performQuery(selectedTip, detailAddress.value) // 执行查询操作 +// }) +// }, 300) +// }) +// } //创建地图 const initMap = async () => { @@ -1599,7 +1585,7 @@ const initMap = async () => { // center: [120.1551, 30.2741], // 地图中心点经纬度 zoom: 18 // 缩放级别 }) - await auto('全国') + // await auto('全国') if (title.value === '编辑预约' || title.value === '编辑') { //标记中心点 getCenterMarker( diff --git a/src/views/login/components/LoginContent.vue b/src/views/login/components/LoginContent.vue index b89c741..3a61ecc 100644 --- a/src/views/login/components/LoginContent.vue +++ b/src/views/login/components/LoginContent.vue @@ -127,6 +127,7 @@ function store(res: LoginResult) { // 存储用户信息 const info = res.info + console.log(info, 'info') const roleCodes = res.attributes?.roleCodes || [] const permissions = res.attributes?.permissions || [] userStore.userInfo = { diff --git a/src/views/system/userCenter/center/updatePass.vue b/src/views/system/userCenter/center/updatePass.vue index 581a27b..af97906 100644 --- a/src/views/system/userCenter/center/updatePass.vue +++ b/src/views/system/userCenter/center/updatePass.vue @@ -63,16 +63,18 @@ interface formRuleItem { pass: Array confirmPass: Array } -const confirmPass = (rule: any, value: any, callback: any) => { - if (value) { - if (formModel.pass !== value) { - callback(new Error('两次输入的密码不一致')) +const confirmPass = (rule: any, value: any) => { + return new Promise((resolve, reject) => { + if (value) { + if (formModel.pass !== value) { + reject('两次输入的密码不一致') + } else { + resolve() + } } else { - callback() + reject('请再次输入密码') } - } else { - callback(new Error('请再次输入密码')) - } + }) } // 表单校验规则 const formRule = ref({ diff --git a/src/views/system/userCenter/personCenter.vue b/src/views/system/userCenter/personCenter.vue index 2a6fbb4..d8e636e 100644 --- a/src/views/system/userCenter/personCenter.vue +++ b/src/views/system/userCenter/personCenter.vue @@ -3,26 +3,19 @@ -
- - - -
登录账号 - -
{{ currentUser.username || '' }}
+
{{ userStore.userInfo?.username || '' }}
  • 用户昵称 - -
    {{ currentUser.nickname }}
    +
    {{ userStore.userInfo?.nickname }}
  • 用户角色
    {{ userRole }}
    - -
  • -
  • 手机号码 - -
    {{ currentUser.phoneNumber }}
    +
    {{ userStore.userInfo?.phoneNumber }}
  • -
  • 安全设置 -
  • @@ -92,12 +68,9 @@ :label-col="{ sm: { span: 24 }, md: { span: 3 } }" :wrapper-col="{ sm: { span: 24 }, md: { span: 20 } }" > - @@ -119,10 +93,6 @@ - 保存配置 - - - - - - - - - - - +