|
|
@@ -251,10 +251,6 @@
|
|
|
.mproc-pick-expired { background: #fafafa; color: #888; border: 1px solid #e8e8e8; }
|
|
|
.mproc-pick-quoted { background: #e6f7ff; color: #1890ff; border: 1px solid #91d5ff; }
|
|
|
.mproc-pick-unquoted { background: #fff7e6; color: #d46b08; border: 1px solid #ffd591; }
|
|
|
- .js-line.mproc-card-highlight,
|
|
|
- .js-card.mproc-card-highlight {
|
|
|
- box-shadow: 0 0 0 2px #1890ff, 0 1px 6px rgba(24, 144, 255, .22);
|
|
|
- }
|
|
|
.js-order-group.mproc-card-highlight {
|
|
|
box-shadow: 0 0 0 2px #1890ff, 0 1px 6px rgba(24, 144, 255, .22);
|
|
|
}
|
|
|
@@ -498,7 +494,7 @@
|
|
|
{empty name="groups"}
|
|
|
{notempty name="rows"}
|
|
|
{volist name="rows" id="r"}
|
|
|
- <div class="card order-group-card js-order-group"{notempty name="r.mproc_remark"} data-remark="{$r.mproc_remark|htmlentities}"{/notempty}>
|
|
|
+ <div class="card order-group-card js-order-group{if $mprocFocusEid && $mprocFocusEid == $r.eid && ($mprocFocusTab == '' || $mprocFocusTab == $mprocTab)} mproc-card-highlight{/if}"{notempty name="r.mproc_remark"} data-remark="{$r.mproc_remark|htmlentities}"{/notempty}>
|
|
|
<div class="order-group-head">
|
|
|
<p class="title">{$r.CYJMC|default=''}{eq name="mprocTab" value="draft"}<em class="mproc-pick-badge mproc-pick-unquoted">未报价</em>{/eq}{eq name="mprocTab" value="submitted"}<em class="mproc-pick-badge mproc-pick-quoted">已报价</em>{/eq}{notempty name="r.mproc_done_label"}{eq name="mprocTab" value="done"}<em class="mproc-pick-badge {eq name='r.mproc_pick_result' value='中标'}mproc-pick-win{else /}{eq name='r.mproc_pick_result' value='未中标'}mproc-pick-lose{else /}mproc-pick-expired{/eq}{/eq}">{$r.mproc_done_label|htmlentities}</em>{/eq}{/notempty}</p>
|
|
|
<div class="kv">{$r.company_name|default=''|htmlentities}</div>
|
|
|
@@ -507,7 +503,7 @@
|
|
|
<div class="kv order-group-remark"><span>备注</span>{$r.mproc_remark|htmlentities}</div>
|
|
|
{/notempty}
|
|
|
</div>
|
|
|
- <div class="order-line js-line {if $mprocFocusEid && $mprocFocusEid == $r.eid && ($mprocFocusTab == '' || $mprocFocusTab == $mprocTab)}mproc-card-highlight{/if}"
|
|
|
+ <div class="order-line js-line"
|
|
|
data-id="{$r.eid|default=0}"
|
|
|
data-ccydh="{$r.CCYDH|default=''|htmlentities}"
|
|
|
data-amount="{$r.amount|default=''|htmlentities}"
|
|
|
@@ -539,7 +535,7 @@
|
|
|
{/notempty}
|
|
|
{else /}
|
|
|
{volist name="groups" id="g"}
|
|
|
- <div class="card order-group-card js-order-group"{notempty name="g.remark"} data-remark="{$g.remark|htmlentities}"{/notempty}>
|
|
|
+ <div class="card order-group-card js-order-group{volist name='g.lines' id='_fe'}{if $mprocFocusEid && $mprocFocusEid == $_fe.eid && ($mprocFocusTab == '' || $mprocFocusTab == $mprocTab)} mproc-card-highlight{/if}{/volist}"{notempty name="g.remark"} data-remark="{$g.remark|htmlentities}"{/notempty}>
|
|
|
<div class="order-group-head">
|
|
|
<p class="title">{$g.CYJMC|default=''}{eq name="mprocTab" value="draft"}<em class="mproc-pick-badge mproc-pick-unquoted">未报价</em>{/eq}{eq name="mprocTab" value="submitted"}<em class="mproc-pick-badge mproc-pick-quoted">已报价</em>{/eq}{notempty name="g.mproc_done_label"}{eq name="mprocTab" value="done"}<em class="mproc-pick-badge {eq name='g.mproc_pick_result' value='中标'}mproc-pick-win{else /}{eq name='g.mproc_pick_result' value='未中标'}mproc-pick-lose{else /}mproc-pick-expired{/eq}{/eq}">{$g.mproc_done_label|htmlentities}</em>{/eq}{/notempty}</p>
|
|
|
<div class="kv">{$g.company_name|default=''|htmlentities}</div>
|
|
|
@@ -549,7 +545,7 @@
|
|
|
{/notempty}
|
|
|
</div>
|
|
|
{volist name="g.lines" id="r"}
|
|
|
- <div class="order-line js-line {if $mprocFocusEid && $mprocFocusEid == $r.eid && ($mprocFocusTab == '' || $mprocFocusTab == $mprocTab)}mproc-card-highlight{/if}"
|
|
|
+ <div class="order-line js-line"
|
|
|
data-id="{$r.eid|default=0}"
|
|
|
data-ccydh="{$r.CCYDH|default=''|htmlentities}"
|
|
|
data-amount="{$r.amount|default=''|htmlentities}"
|
|
|
@@ -1119,7 +1115,7 @@
|
|
|
return '';
|
|
|
}
|
|
|
|
|
|
- function renderOrderLineHtml(r, focusEid, focusTab) {
|
|
|
+ function renderOrderLineHtml(r) {
|
|
|
var eid = parseInt(r.eid, 10) || 0;
|
|
|
var tit = pick(r, ['CYJMC', 'cyjmc']);
|
|
|
var amtRaw = r.amount != null ? String(r.amount) : '';
|
|
|
@@ -1129,9 +1125,7 @@
|
|
|
var canEdit = parseInt(r.mproc_can_edit, 10) === 1 ? 1 : 0;
|
|
|
var ccydh = pick(r, ['CCYDH', 'ccydh']);
|
|
|
var gymc = pick(r, ['CGYMC', 'cgymc']);
|
|
|
- var shouldFocus = focusEid > 0 && (focusTab === '' || focusTab === currentListTab);
|
|
|
- var hl = shouldFocus && eid === focusEid ? ' mproc-card-highlight' : '';
|
|
|
- return '<div class="order-line js-line' + hl + '" data-id="' + eid + '" data-ccydh="' + mprocEscAttr(ccydh) + '" data-amount="' + mprocEscAttr(amtRaw) + '" data-delivery="' + mprocEscAttr(delRaw) + '" data-title="' + mprocEscAttr(tit) + '" data-cgymc="' + mprocEscAttr(gymc) + '" data-ceiling-price="' + mprocEscAttr(ceilP) + '" data-this-quantity="' + mprocEscAttr(thisQty) + '" data-can-edit="' + canEdit + '">'
|
|
|
+ return '<div class="order-line js-line" data-id="' + eid + '" data-ccydh="' + mprocEscAttr(ccydh) + '" data-amount="' + mprocEscAttr(amtRaw) + '" data-delivery="' + mprocEscAttr(delRaw) + '" data-title="' + mprocEscAttr(tit) + '" data-cgymc="' + mprocEscAttr(gymc) + '" data-ceiling-price="' + mprocEscAttr(ceilP) + '" data-this-quantity="' + mprocEscAttr(thisQty) + '" data-can-edit="' + canEdit + '">'
|
|
|
+ '<p class="order-line-title"><span>' + mprocEsc(gymc) + '</span></p>'
|
|
|
+ '<div class="kv-row">'
|
|
|
+ '<div class="kv"><span>本次数量</span>' + mprocEsc(thisQty) + '</div>'
|
|
|
@@ -1170,10 +1164,14 @@
|
|
|
? ('<div class="kv order-group-remark"><span>备注</span>' + mprocEsc(remark) + '</div>')
|
|
|
: '';
|
|
|
var badgeHtml = mprocResolveGroupStatusBadge(g, lines);
|
|
|
+ var shouldFocus = focusEid > 0 && (focusTab === '' || focusTab === currentListTab);
|
|
|
+ var groupHl = shouldFocus && lines.some(function (r) {
|
|
|
+ return (parseInt(r.eid, 10) || 0) === focusEid;
|
|
|
+ }) ? ' mproc-card-highlight' : '';
|
|
|
var linesHtml = lines.map(function (r) {
|
|
|
- return renderOrderLineHtml(r, focusEid, focusTab);
|
|
|
+ return renderOrderLineHtml(r);
|
|
|
}).join('');
|
|
|
- return '<div class="card order-group-card js-order-group"' + remarkAttr + '>'
|
|
|
+ return '<div class="card order-group-card js-order-group' + groupHl + '"' + remarkAttr + '>'
|
|
|
+ '<div class="order-group-head">'
|
|
|
+ '<p class="title">' + mprocEsc(tit) + badgeHtml + '</p>'
|
|
|
+ '<div class="kv">' + mprocEsc(cname) + '</div>'
|
|
|
@@ -1780,21 +1778,27 @@
|
|
|
});
|
|
|
});
|
|
|
|
|
|
- /** 邮件/短信直达链接:仅在当前 Tab 与定位订单状态一致时高亮并滚动 */
|
|
|
+ /** 邮件/短信直达链接:仅在当前 Tab 与定位订单状态一致时高亮整卡并滚动 */
|
|
|
function mprocApplyFocusToList() {
|
|
|
var eid = mprocGetFocusEid();
|
|
|
if (!listInner) {
|
|
|
return;
|
|
|
}
|
|
|
- var lines = listInner.querySelectorAll('.js-line[data-id], .js-card[data-id]');
|
|
|
- if (!lines.length) {
|
|
|
- return;
|
|
|
- }
|
|
|
+ var groups = listInner.querySelectorAll('.js-order-group');
|
|
|
var focusTab = boot.focus_tab || '';
|
|
|
var shouldFocus = eid > 0 && (focusTab === '' || focusTab === currentListTab);
|
|
|
- lines.forEach(function (line) {
|
|
|
- var cid = parseInt(line.getAttribute('data-id'), 10) || 0;
|
|
|
- line.classList.toggle('mproc-card-highlight', shouldFocus && cid === eid);
|
|
|
+ groups.forEach(function (group) {
|
|
|
+ var hit = false;
|
|
|
+ if (shouldFocus) {
|
|
|
+ var lines = group.querySelectorAll('.js-line[data-id], .js-card[data-id]');
|
|
|
+ for (var i = 0; i < lines.length; i++) {
|
|
|
+ if ((parseInt(lines[i].getAttribute('data-id'), 10) || 0) === eid) {
|
|
|
+ hit = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ group.classList.toggle('mproc-card-highlight', hit);
|
|
|
});
|
|
|
if (shouldFocus) {
|
|
|
mprocTryScrollToFocusCard();
|
|
|
@@ -1809,7 +1813,8 @@
|
|
|
if (currentMain !== 'orders' && paneOrders) {
|
|
|
showMain('orders');
|
|
|
}
|
|
|
- var card = listInner.querySelector('.js-line[data-id="' + eid + '"], .js-card[data-id="' + eid + '"]');
|
|
|
+ var line = listInner.querySelector('.js-line[data-id="' + eid + '"], .js-card[data-id="' + eid + '"]');
|
|
|
+ var card = line ? (line.closest('.js-order-group') || line) : null;
|
|
|
if (!card) {
|
|
|
return false;
|
|
|
}
|