m0_70156489 vor 2 Tagen
Ursprung
Commit
f06f2c8378

+ 10 - 16
application/admin/controller/Procuremen.php

@@ -2062,20 +2062,19 @@ class Procuremen extends Backend
     }
 
     /**
-     * 未开标验证时掩码供应商备注(与单价/交货日期一致
+     * 未开标验证时隐藏供应商备注(留空,避免与单价列错位
      *
      * @param array<string, mixed> $group
      */
     protected function maskSupplierRemarkBeforeBidOpen(array &$group, bool $quoteVisible): void
     {
-        $remarkRaw = trim((string)($group['remark'] ?? ''));
-        if ($quoteVisible || $remarkRaw === '') {
+        if ($quoteVisible) {
             $group['remark_quote_pending'] = 0;
 
             return;
         }
-        $group['remark'] = '开标验证后查看';
-        $group['remark_quote_pending'] = 1;
+        $group['remark'] = '';
+        $group['remark_quote_pending'] = 0;
     }
 
     /**
@@ -4704,16 +4703,9 @@ class Procuremen extends Backend
         $this->view->assign('orderQuoteTotalText', $quoteView['order_total_text']);
         $this->view->assign('orderQuoteTotalHas', $quoteView['order_total_has']);
         $this->view->assign('selectedQuoteCompany', $quoteView['selected_company']);
-        $showSupplierBidResult = (trim((string)($quoteView['selected_company'] ?? '')) !== '')
-            || ProcuremenStatus::isPoCompleted($main['status'] ?? '');
-        if (!$showSupplierBidResult) {
-            foreach ($details as $dr) {
-                if (is_array($dr) && !empty($dr['is_picked'])) {
-                    $showSupplierBidResult = true;
-                    break;
-                }
-            }
-        }
+        // 未完结前不展示中标/未中标(选定供应商后、审批通过前状态列留空)
+        $showSupplierBidResult = ProcuremenStatus::isPoCompleted($main['status'] ?? '')
+            || ProcuremenStatus::isWflowApproved($main['wflow_status'] ?? '');
         $this->view->assign('showSupplierBidResult', $showSupplierBidResult ? 1 : 0);
         $this->view->assign('operLogs', $operLogs);
 
@@ -5558,7 +5550,9 @@ class Procuremen extends Backend
                 $ct = $this->resolveDetailSupplierOperTime($d);
                 $line = [
                     'cgymc'           => $gymcBySid[$sid] ?? trim((string)($d['CGYMC'] ?? '')),
-                    'unit_price_text' => $amountNum !== null ? $this->formatProcuremenMoneyDisplay($amountNum) : $am,
+                    'unit_price_text' => $amountFilled
+                        ? ($amountNum !== null ? $this->formatProcuremenMoneyDisplay($amountNum) : $am)
+                        : '未填写',
                     'subtotal_text'   => $sub !== null ? $this->formatProcuremenMoneyDisplay($sub) : '',
                     'delivery_ymd'    => $deliveryYmd,
                     'amount_filled'   => $amountFilled,

+ 32 - 11
application/admin/view/procuremen/details_fragment.html

@@ -249,6 +249,11 @@
         width: 120px;
         word-break: break-all;
     }
+    .procuremen-details-wrap .detail-supplier-table th.col-unit-price,
+    .procuremen-details-wrap .detail-supplier-table td.col-unit-price {
+        width: 112px;
+        white-space: nowrap;
+    }
     .procuremen-details-wrap .detail-supplier-table th.col-op-time,
     .procuremen-details-wrap .detail-supplier-table td.col-op-time {
         width: 148px;
@@ -264,8 +269,9 @@
         -webkit-overflow-scrolling: touch;
         margin-bottom: 4px;
     }
-    .procuremen-details-wrap .detail-supplier-table td.detail-quote-empty {
-        color: #e67e22;
+    .procuremen-details-wrap .detail-supplier-table td.detail-quote-empty,
+    .procuremen-details-wrap .detail-supplier-table td.detail-quote-pending {
+        color: #e67e22 !important;
     }
     .procuremen-details-wrap .detail-supplier-remark-row td {
         background: #f5f5f5;
@@ -282,6 +288,9 @@
         word-break: break-all;
         line-height: 1.45;
     }
+    .procuremen-details-wrap .detail-supplier-remark-row .detail-remark-text.detail-quote-pending {
+        color: #e67e22 !important;
+    }
     html.procuremen-details-dialog .procuremen-details-wrap .proc-step-item .proc-step-time:empty {
         display: none;
         margin: 0;
@@ -439,7 +448,7 @@
                 <th class="col-supplier-email" style="width:110px;">邮箱</th>
                 <th class="col-supplier-phone" style="width:120px;">手机号</th>
                 <th style="width:120px;">工序名称</th>
-                <th class="text-center" style="width:84px;">单价</th>
+                <th class="text-center col-unit-price" style="width:112px;">单价</th>
                 <th class="text-center" style="width:100px;">交货日期</th>
                 <th class="text-center" style="width:88px;">小计</th>
                 <th class="text-center" style="width:88px;">状态</th>
@@ -460,13 +469,13 @@
                 <td class="col-supplier-phone"{if condition="$sg.display_rowspan gt 1"} rowspan="{$sg.display_rowspan}"{/if} style="vertical-align:middle;">{:htmlentities(mask_phone(isset($sg['phone']) ? $sg['phone'] : ''))}</td>
                 {/if}
                 <td>{$ln.cgymc|default=''|htmlentities}</td>
-                <td class="text-center">{$ln.unit_price_text|default=''|htmlentities}</td>
-                <td class="text-center">{$ln.delivery_ymd|default=''|htmlentities}</td>
-                <td class="text-center">{$ln.subtotal_text|default=''|htmlentities}</td>
+                <td class="text-center col-unit-price{if condition="!empty($ln.amount_quote_pending)"} detail-quote-pending{elseif condition="empty($ln.amount_filled) || $ln.amount_filled neq 1"} detail-quote-empty{/if}">{$ln.unit_price_text|default='未填写'|htmlentities}</td>
+                <td class="text-center{if condition="!empty($ln.delivery_quote_pending)"} detail-quote-pending{elseif condition="isset($ln.delivery_filled) && $ln.delivery_filled neq 1"} detail-quote-empty{/if}">{$ln.delivery_show|default=''|htmlentities}</td>
+                <td class="text-center{if condition="!empty($ln.amount_quote_pending)"} detail-quote-pending{/if}">{$ln.subtotal_text|default=''|htmlentities}</td>
                 <td class="text-center">
                     {if !empty($ln.is_void)}
                     <span class="label label-default">历史</span>
-                    {elseif !empty($ln.is_picked) /}
+                    {elseif !empty($showSupplierBidResult) && !empty($ln.is_picked) /}
                     <span class="label label-success">中标</span>
                     {elseif !empty($showSupplierBidResult) /}
                     <span class="label label-danger">未中标</span>
@@ -480,7 +489,7 @@
             {if !empty($sg.has_remark)}
             <tr class="detail-supplier-remark-row{if !empty($sg.is_void)} text-muted{/if}">
                 <td class="detail-remark-label"><strong>备注</strong></td>
-                <td class="detail-remark-text{if !empty($sg.remark_quote_pending)} detail-quote-empty{/if}" colspan="5">{$sg.remark|default=''|htmlentities}</td>
+                <td class="detail-remark-text{if !empty($sg.remark_quote_pending)} detail-quote-pending{/if}" colspan="5">{$sg.remark|default=''|htmlentities}</td>
             </tr>
             {/if}
             {if !empty($sg.has_total)}
@@ -502,13 +511,25 @@
                 <td class="col-supplier-email">{:htmlentities(mask_email(isset($dr['email']) ? $dr['email'] : ''))}</td>
                 <td class="col-supplier-phone">{:htmlentities(mask_phone(isset($dr['phone']) ? $dr['phone'] : ''))}</td>
                 <td></td>
-                <td class="text-center">{$dr.amount|default=''|htmlentities}</td>
-                <td class="text-center">{$dr.delivery_ymd|default=''|htmlentities}</td>
+                <td class="text-center col-unit-price">
+                    {if condition="$dr.amount !== '' && $dr.amount !== null && $dr.amount !== '0' && $dr.amount !== '0.00'"}
+                    {$dr.amount|htmlentities}
+                    {else /}
+                    <span class="detail-quote-empty">未填写</span>
+                    {/if}
+                </td>
+                <td class="text-center">
+                    {if condition="$dr.delivery_ymd !== '' && $dr.delivery_ymd !== null"}
+                    {$dr.delivery_ymd|htmlentities}
+                    {else /}
+                    <span class="detail-quote-empty">未填写</span>
+                    {/if}
+                </td>
                 <td class="text-center"></td>
                 <td class="text-center">
                     {if isset($dr.is_void) && $dr.is_void}
                     <span class="label label-default">历史下发</span>
-                    {elseif !empty($dr.is_picked) /}
+                    {elseif !empty($showSupplierBidResult) && !empty($dr.is_picked) /}
                     <span class="label label-success">中标</span>
                     {elseif !empty($showSupplierBidResult) /}
                     <span class="label label-danger">未中标</span>

+ 6 - 5
application/admin/view/procuremen/outward_detail.html

@@ -14,23 +14,24 @@
     }
     .outward-detail-table-wrap,
     .outward-confirm-process-wrap {
+        /* 不在表格区域内部纵向滚动,由弹窗页面整体滚动 */
         overflow-x: auto;
-        overflow-y: auto;
-        max-height: min(200px, 32vh);
+        overflow-y: visible;
+        max-height: none;
         -webkit-overflow-scrolling: touch;
         margin-bottom: 10px;
         border: 1px solid #e5e5e5;
     }
     .outward-confirm-company-wrap {
         overflow-x: auto;
-        overflow-y: auto;
-        max-height: min(560px, 62vh);
+        overflow-y: visible;
+        max-height: none;
         -webkit-overflow-scrolling: touch;
         margin-bottom: 10px;
         border: 1px solid #e5e5e5;
     }
     .outward-detail-table-wrap {
-        max-height: min(520px, 68vh);
+        max-height: none;
         border: 0;
     }
     .outward-detail-table {