|
@@ -276,6 +276,9 @@
|
|
|
<form class="search-wrap" id="mproc-search-form" method="get" action="{:url('index/index/index')}">
|
|
<form class="search-wrap" id="mproc-search-form" method="get" action="{:url('index/index/index')}">
|
|
|
<input type="hidden" name="main_tab" value="orders" id="mproc-search-main-tab">
|
|
<input type="hidden" name="main_tab" value="orders" id="mproc-search-main-tab">
|
|
|
<input type="hidden" name="tab" id="mproc-search-tab" value="{$mprocTab|default='draft'|htmlentities}">
|
|
<input type="hidden" name="tab" id="mproc-search-tab" value="{$mprocTab|default='draft'|htmlentities}">
|
|
|
|
|
+ {if $mprocFocusEid}
|
|
|
|
|
+ <input type="hidden" name="focus_eid" value="{$mprocFocusEid}">
|
|
|
|
|
+ {/if}
|
|
|
<div class="search-form">
|
|
<div class="search-form">
|
|
|
<input type="search" name="q" id="mproc-input-q" value="{$mprocSearchQ|htmlentities}" placeholder="请输入搜索内容" maxlength="120" enterkeyhint="search">
|
|
<input type="search" name="q" id="mproc-input-q" value="{$mprocSearchQ|htmlentities}" placeholder="请输入搜索内容" maxlength="120" enterkeyhint="search">
|
|
|
<button type="submit">搜索</button>
|
|
<button type="submit">搜索</button>
|
|
@@ -494,6 +497,24 @@
|
|
|
var currentMain = boot.main_tab === 'me' ? 'me' : 'orders';
|
|
var currentMain = boot.main_tab === 'me' ? 'me' : 'orders';
|
|
|
var currentListTab = boot.tab && ['draft', 'submitted', 'done'].indexOf(boot.tab) !== -1 ? boot.tab : 'draft';
|
|
var currentListTab = boot.tab && ['draft', 'submitted', 'done'].indexOf(boot.tab) !== -1 ? boot.tab : 'draft';
|
|
|
|
|
|
|
|
|
|
+ /** 短信/邮件链接中的 focus_eid:优先 boot,其次当前 URL */
|
|
|
|
|
+ function mprocGetFocusEid() {
|
|
|
|
|
+ var fromBoot = parseInt(boot.focus_eid, 10) || 0;
|
|
|
|
|
+ if (fromBoot > 0) {
|
|
|
|
|
+ return fromBoot;
|
|
|
|
|
+ }
|
|
|
|
|
+ try {
|
|
|
|
|
+ var sp = new URLSearchParams(window.location.search);
|
|
|
|
|
+ var fe = parseInt(sp.get('focus_eid'), 10) || 0;
|
|
|
|
|
+ if (fe > 0) {
|
|
|
|
|
+ boot.focus_eid = fe;
|
|
|
|
|
+ return fe;
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (ignoreUrl) {
|
|
|
|
|
+ }
|
|
|
|
|
+ return 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
var tabbar = document.getElementById('mproc-tabbar');
|
|
var tabbar = document.getElementById('mproc-tabbar');
|
|
|
var paneOrders = document.getElementById('mproc-pane-orders');
|
|
var paneOrders = document.getElementById('mproc-pane-orders');
|
|
|
var paneMe = document.getElementById('mproc-pane-me');
|
|
var paneMe = document.getElementById('mproc-pane-me');
|
|
@@ -667,7 +688,7 @@
|
|
|
var canEdit = parseInt(r.mproc_can_edit, 10) === 1;
|
|
var canEdit = parseInt(r.mproc_can_edit, 10) === 1;
|
|
|
var ccydh = pick(r, ['CCYDH', 'ccydh']);
|
|
var ccydh = pick(r, ['CCYDH', 'ccydh']);
|
|
|
var cname = pick(r, ['company_name', 'Company_name']);
|
|
var cname = pick(r, ['company_name', 'Company_name']);
|
|
|
- var focusEid = parseInt(boot.focus_eid, 10) || 0;
|
|
|
|
|
|
|
+ var focusEid = mprocGetFocusEid();
|
|
|
var hl = focusEid > 0 && eid === focusEid ? ' mproc-card-highlight' : '';
|
|
var hl = focusEid > 0 && eid === focusEid ? ' mproc-card-highlight' : '';
|
|
|
return '<div class="card js-card' + hl + '" data-id="' + eid + '" data-ccydh="' + mprocEscAttr(ccydh) + '" data-amount="' + mprocEscAttr(amtRaw) + '" data-delivery="' + mprocEscAttr(delRaw) + '" data-title="' + mprocEscAttr(tit) + '" data-ceiling-price="' + mprocEscAttr(ceilP) + '" data-this-quantity="' + mprocEscAttr(thisQty) + '">'
|
|
return '<div class="card js-card' + hl + '" data-id="' + eid + '" data-ccydh="' + mprocEscAttr(ccydh) + '" data-amount="' + mprocEscAttr(amtRaw) + '" data-delivery="' + mprocEscAttr(delRaw) + '" data-title="' + mprocEscAttr(tit) + '" data-ceiling-price="' + mprocEscAttr(ceilP) + '" data-this-quantity="' + mprocEscAttr(thisQty) + '">'
|
|
|
+ '<p class="title">' + mprocEsc(tit) + '</p>'
|
|
+ '<p class="title">' + mprocEsc(tit) + '</p>'
|
|
@@ -718,6 +739,12 @@
|
|
|
} else {
|
|
} else {
|
|
|
u.searchParams.delete('q');
|
|
u.searchParams.delete('q');
|
|
|
}
|
|
}
|
|
|
|
|
+ var focusEid = mprocGetFocusEid();
|
|
|
|
|
+ if (focusEid > 0 && !q) {
|
|
|
|
|
+ u.searchParams.set('focus_eid', String(focusEid));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ u.searchParams.delete('focus_eid');
|
|
|
|
|
+ }
|
|
|
var fetchOpts = {
|
|
var fetchOpts = {
|
|
|
method: 'GET',
|
|
method: 'GET',
|
|
|
credentials: 'same-origin',
|
|
credentials: 'same-origin',
|
|
@@ -745,8 +772,10 @@
|
|
|
if (listInner) {
|
|
if (listInner) {
|
|
|
listInner.innerHTML = renderListHtml(rows, dns);
|
|
listInner.innerHTML = renderListHtml(rows, dns);
|
|
|
}
|
|
}
|
|
|
- setTimeout(mprocTryScrollToFocusCard, 80);
|
|
|
|
|
- setTimeout(mprocTryScrollToFocusCard, 400);
|
|
|
|
|
|
|
+ if (d.focus_eid) {
|
|
|
|
|
+ boot.focus_eid = parseInt(d.focus_eid, 10) || boot.focus_eid;
|
|
|
|
|
+ }
|
|
|
|
|
+ mprocScheduleFocusScroll();
|
|
|
}).catch(function (e) {
|
|
}).catch(function (e) {
|
|
|
if (myAbort && mprocListAbort !== myAbort) {
|
|
if (myAbort && mprocListAbort !== myAbort) {
|
|
|
return;
|
|
return;
|
|
@@ -1158,31 +1187,54 @@
|
|
|
|
|
|
|
|
/** 邮件/短信直达链接:高亮并滚动到对应明细卡片 */
|
|
/** 邮件/短信直达链接:高亮并滚动到对应明细卡片 */
|
|
|
function mprocTryScrollToFocusCard() {
|
|
function mprocTryScrollToFocusCard() {
|
|
|
- var eid = parseInt(boot.focus_eid, 10) || 0;
|
|
|
|
|
|
|
+ var eid = mprocGetFocusEid();
|
|
|
if (!eid || !listInner) {
|
|
if (!eid || !listInner) {
|
|
|
- return;
|
|
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (currentMain !== 'orders' && paneOrders) {
|
|
|
|
|
+ showMain('orders');
|
|
|
}
|
|
}
|
|
|
var card = listInner.querySelector('.js-card[data-id="' + eid + '"]');
|
|
var card = listInner.querySelector('.js-card[data-id="' + eid + '"]');
|
|
|
if (!card) {
|
|
if (!card) {
|
|
|
- return;
|
|
|
|
|
|
|
+ return false;
|
|
|
}
|
|
}
|
|
|
card.classList.add('mproc-card-highlight');
|
|
card.classList.add('mproc-card-highlight');
|
|
|
var pane = document.querySelector('.mproc-order-main');
|
|
var pane = document.querySelector('.mproc-order-main');
|
|
|
if (!pane) {
|
|
if (!pane) {
|
|
|
- return;
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ card.scrollIntoView({ block: 'center' });
|
|
|
|
|
+ } catch (ignoreScroll) {
|
|
|
|
|
+ }
|
|
|
|
|
+ return true;
|
|
|
}
|
|
}
|
|
|
|
|
+ var top = card.getBoundingClientRect().top - pane.getBoundingClientRect().top + pane.scrollTop - 16;
|
|
|
|
|
+ top = Math.max(0, top);
|
|
|
try {
|
|
try {
|
|
|
- var top = card.getBoundingClientRect().top - pane.getBoundingClientRect().top + pane.scrollTop - 20;
|
|
|
|
|
- pane.scrollTo({ top: Math.max(0, top), behavior: 'smooth' });
|
|
|
|
|
- } catch (e1) {
|
|
|
|
|
- try {
|
|
|
|
|
- card.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
|
|
|
|
- } catch (e2) {}
|
|
|
|
|
|
|
+ pane.scrollTop = top;
|
|
|
|
|
+ } catch (ignoreTop) {
|
|
|
|
|
+ }
|
|
|
|
|
+ try {
|
|
|
|
|
+ pane.scrollTo({ top: top, behavior: 'auto' });
|
|
|
|
|
+ } catch (ignoreTo) {
|
|
|
|
|
+ }
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ function mprocScheduleFocusScroll() {
|
|
|
|
|
+ if (!mprocGetFocusEid()) {
|
|
|
|
|
+ return;
|
|
|
}
|
|
}
|
|
|
|
|
+ [0, 120, 350, 700, 1200, 2000].forEach(function (ms) {
|
|
|
|
|
+ setTimeout(mprocTryScrollToFocusCard, ms);
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
mprocTryRestoreLoginFromStorage();
|
|
mprocTryRestoreLoginFromStorage();
|
|
|
- setTimeout(mprocTryScrollToFocusCard, 200);
|
|
|
|
|
- setTimeout(mprocTryScrollToFocusCard, 650);
|
|
|
|
|
|
|
+ mprocScheduleFocusScroll();
|
|
|
|
|
+ window.addEventListener('load', mprocScheduleFocusScroll);
|
|
|
|
|
+ window.addEventListener('orientationchange', function () {
|
|
|
|
|
+ setTimeout(mprocScheduleFocusScroll, 300);
|
|
|
|
|
+ });
|
|
|
|
|
|
|
|
if (boot.can_change_pwd) {
|
|
if (boot.can_change_pwd) {
|
|
|
var pwdMask = document.getElementById('pwd-mask');
|
|
var pwdMask = document.getElementById('pwd-mask');
|