m0_70156489 1 dienu atpakaļ
vecāks
revīzija
12b5faeb6a
1 mainītis faili ar 28 papildinājumiem un 23 dzēšanām
  1. 28 23
      application/index/view/index/index.html

+ 28 - 23
application/index/view/index/index.html

@@ -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;
         }