<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>华付旅游</title>
<link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css"/>
<link rel="stylesheet" href="./css/index.css"/>
<link rel="stylesheet" href="./css/banner.css"/>
</head>
<body>
<div id="app" @click="showOps=false">
<div style="width: 70%;text-align: center;margin: auto;">
<div class="banner">
<div class="logo">
<img src="./img/hf-logo.png" alt="1"/>
<span>
<div class="logo-ch">华付旅游</div>
<div class="logo-en">www.huafu.com</div>
</span>
</div>
<div >
<input type="checkbox" id="toggle-button" v-model="isTest">
<!--label中的for跟input的id绑定。作用是在点击label时选中input或者取消选中input-->
<label for="toggle-button" class="button-label">
<span class="circle"></span>
<span class="text on">测试</span>
<span class="text off">正式</span>
</label>
</div>
</div>
<!--关键字搜索-->
<div class="search-bar">
<div class="input-box">
<input title="输入关键字搜索酒店" v-model="params.key" type="text" @click.stop="" @focus="showOps=true"
@keyup="handleKeyUp($event)">
<button @click="handleSearch">搜索</button>
</div>
<div id="complete-box" v-show="showOps && ops.length > 0">
<div v-for="(item, i) in ops" :key="i" @click="handleSearch" @mouseover="opsIndex = i"
:style='{"background-color": opsIndex===i ? "#EEE" : "#fff"}'>{{item}}
</div>
</div>
</div>
<!-- 已选择过滤项 -->
<div class="selected-ops">
<div class="open">全部结果:</div>
<div class="selected-op" v-for="(v, k) in params.filters" :key="k" @click="deleteFilter(k)">
{{filterNames[k]}}:<span>{{v}} <span class='close'>×</span></span>
</div>
</div>
<!--过滤项-->
<div class="filter-list">
<div v-for="(v, k) in remainFilter" :key="k">
<div class="filter-box">
<div class="f-key"><strong>{{filterNames[k]}}</strong></div>
<div class="column-divider"></div>
<div class="f-items">
<div class="f-item" @click="clickFilter(k, o)" v-for="(o, j) in v" :key="j"><a href="javascript:void(0)">
{{o}}</a></div>
</div>
</div>
<div class="row-divider"></div>
</div>
<div class="filter-box">
<div class="f-key"><strong>价格</strong></div>
<div class="column-divider"></div>
<div class="f-items">
<div class="f-item" @click="clickFilter('price','0-100')"><a href="javascript:void(0)">100元以下</a></div>
<div class="f-item" @click="clickFilter('price','100-300')"><a href="javascript:void(0)">100-300元</a></div>
<div class="f-item" @click="clickFilter('price','300-600')"><a href="javascript:void(0)">300-600元</a></div>
<div class="f-item" @click="clickFilter('price','600-1500')"><a href="javascript:void(0)">600-1500元</a></div>
<div class="f-item" @click="clickFilter('price','1500-0')"><a href="javascript:void(0)">1500元以上</a></div>
</div>
</div>
</div>
<!-- 排序 -->
<div class="top-ban">
<!--排序条件-->
<div class="sort-items">
<div class="sort-item" v-for="(item, i) in sortItems" :key="i">
<a :class="{selected: params.sortBy===item.key}" @click="params.sortBy=item.key"
href="javascript:void(0)">{{item.text}}</a>
|
</div>
</div>
<!--分页条-->
<div class="top-pagination">
<span>共 <i style="color: #222;">{{total}}</i> 家酒店</span>
<span><i style="color: red;">{{params.page}}</i>/{{totalPage}}</span>
<a class="btn-arrow" href="#" style="display: inline-block" @click="prePage"><</a>
<a class="btn-arrow" href="#" style="display: inline-block" @click="nextPage">></a>
</div>
</div>
<div class="row-divider" style="margin-bottom: 5px; width: 100%"></div>
<!--酒店列表-->
<div style="display: flex; justify-content: space-between;">
<div class="hotel-list">
<div class="hotel-box" v-for="(hotel,i) in hotels" :key="i"
style="display: flex;justify-content: space-between;" @mouseover="handleMarkerFocus(hotel)">
<div class="ad-mark" v-if="hotel.isAD">
<img src="./img/ad.png" width="40"/>
</div>
<div style="width: 0;"></div>
<div style="width: 25%"><img width="100%" :src="hotel.pic"></div>
<div class="hotel-info">
<div class="hotel-name" v-html="hotel.name">
</div>
<div class="star-name"> {{hotel.starName}}</div>
<div class="address">
位于 <span style="color: #BC8516;">{{hotel.business}}</span> 周边,{{hotel.address}}
</div>
<div class="order"> 1分钟前有人预订了该酒店</div>
<div v-if="hotel.distance" class="address">距离您 {{hotel.distance.toFixed(2)}} km</div>
</div>
<div style="text-align: left; width: 15%;">
<div>
<b style="color: #f60;">¥</b> <span id='hotel-price'>{{hotel.price}}</span> <span
style="font-size: 0.2em; color: #999;">起</span>
</div>
<div class='btn'>立即预定</div>
<div>
<span class="hotel-score">{{hotel.score / 10}}分</span> /<span>5分</span>
</div>
</div>
</div>
</div>
<div :class='{"map-box": true, "fixed-map": isFixed}' :style="{left: ml + 'px'}">
<div class="map-head">地图预览</div>
<div class="amap" id="container"></div>
<div class="map-geo" @click="getGeoLoc">
<img src="https://a.amap.com/jsapi/static/image/plugin/waite.png" v-show="loading">
</div>
</div>
</div>
</div>
</div>
<script src="./js/vue.js"></script>
<script src="./js/axios.min.js"></script>
<script src="./js/amap.min.js"></script>
<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=ddd292c88aa1bad9c04891a47724f40a"></script>
<script>
// 设置后台服务地址
axios.defaults.baseURL = "http://localhost:8089";
axios.defaults.timeout = 3000;
let app = new Vue({
el: "#app",
data: {
isTest: false,
filterNames: {
brand: "品牌",
city: "城市",
starName: "星级",
price: "价格",
},
filterList: {},// 过滤项的假数据
sortItems: [
{
key: "default",
text: "默认",
},
{
key: "score",
text: "评价",
},
{
key: "price",
text: "价格",
}
],// 排序字段的假数据
hotels: [],// 酒店数据
total: 0, // 总条数
totalPage: 0, // 总页数
params: {
key: "", // 搜索关键字
page: 1, // 当前页码
size: 5, // 每页大小
sortBy: "default",// 排序字段
filters: {}, // 过滤字段
},
map: {},// 地图对象
loc: "", // 地图标记
ml: 0, // 控制地图位置
geolocation:{}, // 定位系统
loading: false, // 是否在定位
currentHotel: {},
ops: [],
showOps: false,
opsIndex: -1,
isFixed: false,
testFilterData: {
"city": ["上海", "北京", "深圳", "杭州"],
"starName": ["四星","五星","二钻","三钻","四钻","五钻"],
"brand": ["7天酒店", "如家","速8", "皇冠假日","华美达","万怡","喜来�
没有合适的资源?快使用搜索试试~ 我知道了~
vue 结合ES 使用demo
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共9个文件
png:3个
js:3个
css:2个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
需积分: 5 0 下载量 141 浏览量
2023-07-12
21:14:12
上传
评论
收藏 121KB ZIP 举报
温馨提示
vue 结合ES 使用demo
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/HTML.png)
共 9 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/b02b12ffbfc545feafc4dc34d0f01c4b_panyongjie2577.jpg!1)
過客
- 粉丝: 59
- 资源: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)