From 8a6f93ed1fa04f97abd6f3f6e849b853afb8b6c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=8A=E9=92=8A?= <13512071256@163.com> Date: Mon, 16 Dec 2024 15:38:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=85=BE=E8=AE=AF=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=E7=BB=84=E4=BB=B6=E5=8F=8A=E4=BC=98=E5=8C=96=E6=99=AF?= =?UTF-8?q?=E7=82=B9=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 + src/api/manage/article/index.ts | 7 + src/api/manage/article/types.ts | 36 ++- src/main.ts | 4 +- src/utils/debounce.js | 13 + src/views/manage/scenic/index.vue | 493 ++++++++++++++++++++++-------- 6 files changed, 420 insertions(+), 135 deletions(-) create mode 100644 src/utils/debounce.js diff --git a/package.json b/package.json index 1b4a63a..c221ebd 100644 --- a/package.json +++ b/package.json @@ -40,9 +40,11 @@ "nprogress": "0.2.0", "pinia": "2.1.7", "screenfull": "6.0.2", + "tlbs-map-vue": "^1.2.1", "vue": "3.4.34", "vue-cropper": "1.1.1", "vue-i18n": "9.10.2", + "vue-jsonp": "^2.0.0", "vue-router": "4.3.2", "vue-types": "5.1.1", "vxe-table": "4.5.22" diff --git a/src/api/manage/article/index.ts b/src/api/manage/article/index.ts index 2c7a4ed..f0cb23f 100644 --- a/src/api/manage/article/index.ts +++ b/src/api/manage/article/index.ts @@ -61,3 +61,10 @@ export const delArticle = (id: string | number | Array) => { method: 'delete' }); }; + +export const geocoder = (address: string) => { + return request({ + url: 'https://apis.map.qq.com/ws/geocoder/v1/?address=' + address + '&key=6XFBZ-SAVLT-JGIX2-VOLMK-6S2H3-XUBGO', + method: 'get' + }); +}; diff --git a/src/api/manage/article/types.ts b/src/api/manage/article/types.ts index 7ac7c62..ba83047 100644 --- a/src/api/manage/article/types.ts +++ b/src/api/manage/article/types.ts @@ -1,3 +1,5 @@ +import { number } from 'vue-types'; + export interface ArticleVO { /** * 景点ID/租赁ID/游艇ID @@ -5,7 +7,7 @@ export interface ArticleVO { id: string | number; /** - * + * */ type: string; @@ -88,17 +90,24 @@ export interface ArticleVO { * 景区等级 */ level: number; - } export interface ArticleForm extends BaseEntity { + /** + * 景点名称 商家名称 + */ + name: string; + /** + * 联系电话 + */ + number?: number | string; /** * 景点ID/租赁ID/游艇ID */ id?: string | number; /** - * + * */ type?: string; @@ -181,16 +190,18 @@ export interface ArticleForm extends BaseEntity { * 景区等级 */ level?: number; - + /** + * 景区/商家图像 + */ + mediaBoList?: any[]; } export interface ArticleQuery extends PageQuery { - /** - * + * */ type?: string; - + name?: string; /** * 二级类别(未定) */ @@ -266,11 +277,8 @@ export interface ArticleQuery extends PageQuery { */ level?: number; - /** - * 日期范围参数 - */ - params?: any; + /** + * 日期范围参数 + */ + params?: any; } - - - diff --git a/src/main.ts b/src/main.ts index 592de58..381a7ba 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,7 +8,8 @@ import 'element-plus/theme-chalk/dark/css-vars.css'; import App from './App.vue'; import store from './store'; import router from './router'; - +// 腾讯地图 +import TlbsMap from 'tlbs-map-vue'; // 自定义指令 import directive from './directive'; @@ -51,6 +52,7 @@ app.use(store); app.use(i18n); app.use(VXETable); app.use(plugins); +app.use(TlbsMap); // 自定义指令 directive(app); diff --git a/src/utils/debounce.js b/src/utils/debounce.js new file mode 100644 index 0000000..1e09fb7 --- /dev/null +++ b/src/utils/debounce.js @@ -0,0 +1,13 @@ +// debounce.js +export function debounce(func, delay) { + let timer; + return function (...args) { + if (timer) { + clearTimeout(timer); + } + timer = setTimeout(() => { + func.apply(this, args); + timer = null; + }, delay); + }; +} diff --git a/src/views/manage/scenic/index.vue b/src/views/manage/scenic/index.vue index b3bcf45..b81dece 100644 --- a/src/views/manage/scenic/index.vue +++ b/src/views/manage/scenic/index.vue @@ -5,63 +5,36 @@
- - + + - - + + - + + + + - + - + + + + - - + + + + + - - + + - - - - - 搜索 重置 @@ -80,23 +53,57 @@ - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + + + + +