From e1b028d486713eaf55aaf35fbf334aa568059c0d Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期二, 14 四月 2026 15:46:54 +0800
Subject: [PATCH] 项目复制
---
src/views/components/SearchAddress.vue | 130 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 130 insertions(+), 0 deletions(-)
diff --git a/src/views/components/SearchAddress.vue b/src/views/components/SearchAddress.vue
new file mode 100644
index 0000000..251e1d4
--- /dev/null
+++ b/src/views/components/SearchAddress.vue
@@ -0,0 +1,130 @@
+<template>
+ <el-dialog
+ v-model="dialogFlag"
+ width="600"
+ title="閫夋嫨鍦板潃"
+ align-center
+ :show-close="false"
+ :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ >
+ <el-divider class="m-0"></el-divider>
+ <div class="py-2 mt-3">
+ <el-form-item label="鎼滅储鍦板潃">
+ <el-select
+ v-model="selected"
+ :debounce="800"
+ filterable
+ value-key="uid"
+ remote
+ reserve-keyword
+ placeholder="璇疯緭鍏ュ叧閿瓧"
+ :remote-method="getAddressOptions"
+ :loading="loading"
+ loading-text="鏁版嵁鍔犺浇涓�"
+ >
+ <template #label>
+ <el-row>
+ <el-text>{{ selected.address }}</el-text>
+ </el-row>
+ </template>
+ <el-option
+ v-for="item in addressOptions"
+ :key="item.uid"
+ :label="item.label"
+ :value="item"
+ >
+ <template #default>
+ <el-row>
+ <el-text :style="{ color: selected.uid == item.uid ? 'var(--el-color-primary)' : '' }">
+ {{ item.name }}
+ </el-text>
+ <el-text class="text-sm ml-2" style="color: #999999;">锛坽{ item.address }}锛�</el-text>
+ </el-row>
+ </template>
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </div>
+ <el-divider class="m-0"></el-divider>
+ <template #footer>
+ <div>
+ <el-button plain @click="dialogFlag=false">鍙栨秷</el-button>
+ <el-button type="primary" @click="confirm">
+ 纭畾
+ </el-button>
+ </div>
+ </template>
+ </el-dialog>
+</template>
+<script>
+export default {
+ components: {
+ },
+ data() {
+ return {
+ dialogFlag: false,
+ selected: {},
+ loading: false,
+ addressOptions: []
+ }
+ },
+ props: {
+ modelValue: {
+ type: Boolean,
+ default: false
+ },
+ selectedAddress: {
+ type: Object,
+ default: () => {
+ return {}
+ }
+ }
+ },
+ watch: {
+ modelValue(val) {
+ this.dialogFlag = val
+ if (this.dialogFlag) {
+ this.selected = this.selectedAddress
+ }
+ },
+ dialogFlag(val) {
+ this.$emit('update:modelValue', val)
+ }
+ },
+ created() {
+
+ },
+ methods: {
+ getAddressOptions(query) {
+ if (!query) { return [] }
+ const params = {
+ ak: '1gBZhNmy47PFUB3iS2XVJySCO7mXLf01', // 璇锋浛鎹负鎮ㄧ殑瀹為檯AK
+ query: query,
+ region: '骞夸笢',
+ type: '',
+ }
+ this.loading = true
+ this.$axios.get('/exam/baidu-map/region-search', { params }).then(res => {
+ if (res.data.status == 0) {
+ let list = res.data.results || []
+ list.forEach(ele => {
+ if (!ele.address) {
+ ele.address = ele.province + ele.city + ele.district + ele.town
+ }
+ })
+ this.addressOptions = list
+ } else {
+ this.$message.error(res.data.msg || '鑾峰彇鍦板潃妫�绱㈠垪琛ㄥけ璐�')
+ }
+ }).finally(() => {
+ this.loading = false
+ })
+ },
+ confirm() {
+ this.$emit('handlerSelectedAddress', this.selected)
+ this.dialogFlag = false
+ }
+ }
+}
+</script>
--
Gitblit v1.8.0