筛选在列表→详情→编辑之间保留,修复编辑页翻页丢筛选,收拾移动端触控与字号
- 新增 ?back= 贯穿链路:列表页(地点库 / 时间线 / 统计 / 专题地图 / 主页)生成详情链接时 带上当前完整地址,详情页的「返回」「编辑」与编辑页的返回按钮据此回到原来那份筛选结果。 只放行站内路径(挡 //host、伪协议、控制字符),参数编码走 template.URL 避免二次转义。 - 修 EditData.PageLink 把 & 手工写成 & 又被模板转义一次的 bug(&)—— 参数名会变成 amp;vpage,表现为「带筛选时翻页没反应、筛选还丢了」(既有问题)。 - 编辑页三个筛选表单与三个「重置」带上 back(重置改走 EditData.EditLink,各清各的, 顺带修掉搜索词含 & 或空格时重置链接被拆坏)。 - 详情页「在地图中查看」的地点名改走 QueryEscape(名字含 & / # 会拆坏地址)。 - 窄屏修正:把被基础规则压掉的 .chip / .btn / .check 覆盖挪到最后; checkbox 20px、select 44px、file/color 字号 16px(iOS 聚焦不再自放大整页)、 .tag 12px、导航 logo 触摸区 44×44。 - 新增回归 internal/web/pagelink_test.go(翻页链接、返回文案、地图链接)。
This commit is contained in:
@@ -10,6 +10,11 @@
|
||||
var PI = 3.1415926535897932384626, A = 6378245.0, EE = 0.00669342162296594323;
|
||||
var DATA_CRS = 'gcj02';
|
||||
|
||||
// 地图弹窗里「查看详情」要带回的返回地址(?back=):地图页有自己的筛选,点进详情再回来时
|
||||
// 要回到那份筛选,而不是裸地点库。值是服务端编码好的参数值,直接拼,别再转义一次。
|
||||
var backQS = '';
|
||||
function backSuffix() { return backQS ? '?back=' + backQS : ''; }
|
||||
|
||||
// 交通方式图例:轨迹开启时告诉用户颜色含义
|
||||
function modeLegendControl(modes) {
|
||||
var Ctl = L.Control.extend({
|
||||
@@ -341,7 +346,7 @@
|
||||
// 备注只读直出,省得多点一次详情页
|
||||
if (p.note) parts.push('<div class="mp-note">' + esc(p.note) + '</div>');
|
||||
if (p.t) parts.push('<div class="mp-m">最近一次 ' + esc(p.t) + '</div>');
|
||||
parts.push('<div class="mp-foot"><a href="/places/' + p.id + '">查看详情 →</a></div>');
|
||||
parts.push('<div class="mp-foot"><a href="/places/' + p.id + backSuffix() + '">查看详情 →</a></div>');
|
||||
wrap.innerHTML = parts.join('');
|
||||
if (vote && p.sp) {
|
||||
// 无论如何都挂上,交给 paintVote 决定显不显示;
|
||||
@@ -530,6 +535,7 @@
|
||||
preview: function (opts) {
|
||||
var points = opts.points || [];
|
||||
var vote = opts.vote === true;
|
||||
backQS = opts.back || '';
|
||||
// 同一个容器画第二次(照片导入页反查完画一次、点「重新反查」又画一次):
|
||||
// Leaflet 不允许对已经有地图的容器再 L.map(),会抛
|
||||
// "Map container is already initialized."——那个错会被调用方的 catch 接住,
|
||||
@@ -624,6 +630,7 @@
|
||||
// 底图版权(© 高德地图 / © OpenStreetMap)必须留着——那是上游的使用条款要求。
|
||||
L.control.attribution({ prefix: false, position: 'bottomright' }).addTo(map);
|
||||
var points = opts.points || [];
|
||||
backQS = opts.back || '';
|
||||
// 窄屏筛选面板占满宽度,控件改挂右下角(该尺寸下图例已隐藏)
|
||||
var corner = window.matchMedia('(max-width: 620px)').matches ? 'bottomright' : 'topright';
|
||||
L.control.zoom({ position: corner }).addTo(map);
|
||||
|
||||
Reference in New Issue
Block a user