同步操作将从 空荧地图开发组/原神地图V3 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
本项目基于quasar-vite构建
yarn
# or
npm install
quasar dev
quasar build
在页面登录前,鉴定是否有gitee的oauth2相关的token,若没有的话,则以游客方式登录
游客登录请求是本项目的接口,并非gitee api
鉴权实现在 router/index.js文件内
Router.beforeEach((to, from, next) => {
//鉴定是否存在token,若否,默认以游客身份登录
if (get_user_token() == null) {
quest_request().then(res => {
set_user_token(res.data.access_token, res.data.expires_in)
next();
})
}
else {
next();
}
})
地图构建相关函数在api/map.js文件内
地图相关参数及构建方法已经封装,无须了解其具体功能
生成地图时,首先在页面上生成其容器dom
<!-- id为map的div为容器,其余两个为地图的背景蒙层 -->
<div class="map_containor">
<div class="stars"></div>
<div class="twinkling"></div>
<div id="map"></div>
</div>
然后在mounted时,生成地图
import { init_map } from "../api/map";
......
mounted() {
//生成地图
this.map = init_map();
},
地图容器需要定义其高度和宽度,地图蒙层容器需要样式,可直接引用旧版样式文件
@import url("https://yuanshen.site/css/background.css");/* 地图蒙层样式 */
#map {
width: 100vw;
height: 100vh;
background: transparent;
z-index: 1000;
background: radial-gradient(transparent 70%, rgba(0, 0, 0, 0.5));
}
在本项目中,点位筛选逻辑分为四级
地区(area)_→点位类型(type)→点位集合(item)→单个点位(layer)
注意
在地区筛选等级中,由于每个地区划分为多个子地区,因此规定,后续筛选等级于子地区为基准
点位类型的相关数据在每个地区‘基本’一致,因此在页面构建时点位类型便已被请求并渲染至物品选择器中
本项目的点位请求逻辑如下:
首先渲染所有父级地区
选择父级地区之后,请求其子级地区的数据后,用户可以选择子地区
(上述即是页面上方地区选择器的功能)
选择完毕后,用户可以在右侧类型选择器选择点位类型
选择后,即查询该子地区下所选类型的所有点位集合,并渲染至类型的下拉列表之中
选择某一或某多个点位集合后,请求这些点位集合下所有单个点位的数据
点位生成的相关函数在api/layer.js下
具体的渲染过程和存储过程较为复杂,可参考 pages/IndexPage.vue 文件中的具体实现
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。