| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465 |
- <style>
- html.procuremen-details-dialog,
- html.procuremen-details-dialog body.procuremen-details-dialog {
- height: auto !important;
- min-height: 0 !important;
- margin: 0;
- overflow-x: hidden;
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
- background: #fff;
- }
- body.is-dialog .procuremen-details-wrap {
- margin: 0;
- padding: 12px 14px 28px;
- }
- .procuremen-details-wrap .section-title {
- font-size: 14px;
- font-weight: 600;
- margin: 18px 0 10px;
- color: #333;
- padding-bottom: 6px;
- border-bottom: 1px solid #eee;
- }
- .proc-steps-wrap {
- display: flex;
- flex-wrap: nowrap;
- justify-content: space-between;
- align-items: flex-start;
- padding: 8px 4px 4px;
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- }
- .proc-step-item {
- flex: 1 1 0;
- min-width: 100px;
- text-align: center;
- position: relative;
- padding: 0 4px;
- }
- .proc-step-item:not(:last-child)::after {
- content: '';
- position: absolute;
- top: 14px;
- left: 50%;
- width: 100%;
- height: 2px;
- background: #e0e0e0;
- z-index: 0;
- }
- .proc-step-item.is-done:not(:last-child)::after {
- background: #1890ff;
- }
- .proc-step-circle {
- width: 28px;
- height: 28px;
- line-height: 28px;
- border-radius: 50%;
- margin: 0 auto 6px;
- font-size: 13px;
- font-weight: 600;
- position: relative;
- z-index: 1;
- background: #f5f5f5;
- color: #999;
- border: 2px solid #ddd;
- }
- .proc-step-item.is-done .proc-step-circle {
- background: #1890ff;
- border-color: #1890ff;
- color: #fff;
- }
- .proc-step-item.is-current .proc-step-circle {
- background: #1890ff;
- border-color: #1890ff;
- color: #fff;
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.25);
- }
- .proc-step-item.is-done .proc-step-circle .fa {
- line-height: 24px;
- }
- .proc-step-title {
- font-size: 12px;
- color: #333;
- line-height: 1.35;
- margin-bottom: 2px;
- }
- .proc-step-sub {
- font-size: 11px;
- color: #888;
- line-height: 1.3;
- min-height: 2.6em;
- }
- .proc-step-time {
- font-size: 11px;
- color: #aaa;
- margin-top: 4px;
- white-space: nowrap;
- }
- .procuremen-details-wrap .procuremen-order-info-block {
- border: 1px solid #ddd;
- margin-top: 18px;
- margin-bottom: 0;
- }
- .procuremen-details-wrap .procuremen-order-info-head {
- background: #f0f0f0;
- border-bottom: 1px solid #ddd;
- padding: 10px 12px;
- font-size: 14px;
- font-weight: 700;
- color: #222;
- margin: 0;
- }
- .procuremen-details-wrap .procuremen-order-grid {
- width: 100%;
- border-collapse: collapse;
- table-layout: fixed;
- font-size: 13px;
- margin: 0;
- background: #fff;
- border: none;
- }
- .procuremen-details-wrap .procuremen-order-grid td {
- border: 1px solid #ddd;
- padding: 10px 12px;
- vertical-align: middle;
- }
- .procuremen-details-wrap .procuremen-order-grid .og-label {
- width: 14%;
- background: #f5f5f5;
- color: #333;
- text-align: right;
- font-weight: normal;
- }
- .procuremen-details-wrap .procuremen-order-grid .og-value {
- width: 36%;
- background: #fff;
- color: #000;
- text-align: left;
- font-weight: 700;
- word-break: break-word;
- }
- .procuremen-details-wrap .details-process-table-wrap {
- overflow-x: auto;
- -webkit-overflow-scrolling: touch;
- }
- .procuremen-details-wrap .details-process-table {
- margin: 0;
- font-size: 12px;
- table-layout: fixed;
- width: 100%;
- min-width: 820px;
- border-collapse: collapse;
- }
- .procuremen-details-wrap .details-process-table th {
- background: #f5f5f5;
- white-space: nowrap;
- font-weight: 600;
- padding: 8px 10px;
- vertical-align: middle;
- border: 1px solid #ddd;
- }
- .procuremen-details-wrap .details-process-table td {
- padding: 8px 10px;
- vertical-align: middle;
- word-wrap: break-word;
- border: 1px solid #ddd;
- }
- .procuremen-details-wrap .details-process-table th.text-center,
- .procuremen-details-wrap .details-process-table td.text-center {
- text-align: center;
- }
- .procuremen-details-wrap .procuremen-oper-log {
- list-style: none;
- margin: 0 0 8px;
- padding: 0;
- font-size: 13px;
- line-height: 1.65;
- border: 1px solid #e8e8e8;
- border-radius: 4px;
- background: #fafafa;
- max-height: 280px;
- overflow-y: auto;
- }
- .procuremen-details-wrap .procuremen-oper-log li {
- padding: 8px 12px;
- border-bottom: 1px solid #eee;
- word-break: break-word;
- }
- .procuremen-details-wrap .procuremen-oper-log li:last-child {
- border-bottom: none;
- }
- .procuremen-details-wrap .procuremen-oper-log .op-user {
- font-weight: 700;
- color: #000;
- }
- .procuremen-details-wrap .procuremen-oper-log .op-time {
- color: #666;
- margin: 0 6px;
- }
- .procuremen-details-wrap .procuremen-oper-log .op-text {
- color: #333;
- }
- .procuremen-details-wrap .procuremen-oper-log-empty {
- font-size: 13px;
- color: #999;
- padding: 10px 12px;
- border: 1px dashed #ddd;
- border-radius: 4px;
- margin-bottom: 8px;
- }
- .procuremen-details-wrap .detail-mini {
- font-size: 12px;
- }
- .procuremen-details-wrap .detail-mini th,
- .procuremen-details-wrap .detail-mini td {
- padding: 6px 8px;
- vertical-align: middle;
- }
- .procuremen-details-wrap .detail-supplier-table {
- min-width: 1180px;
- }
- .procuremen-details-wrap .details-supplier-table-wrap {
- overflow-x: auto;
- overflow-y: visible;
- -webkit-overflow-scrolling: touch;
- margin-bottom: 4px;
- }
- .procuremen-details-wrap .detail-supplier-table td.detail-quote-empty {
- color: #e67e22;
- }
- html.procuremen-details-dialog .procuremen-details-wrap .proc-step-item .proc-step-time:empty {
- display: none;
- margin: 0;
- min-height: 0;
- }
- </style>
- <div class="panel panel-default panel-intro procuremen-details-wrap{if !empty($pdf_export)} procuremen-pdf-inner{/if}" style="border:0;box-shadow:none;">
- {notempty name="pdf_export"}
- <div class="page-head">
- {notempty name="ccydh"}
- <table class="proc-pdf-order-no" cellpadding="0" cellspacing="0" style="border-collapse:collapse;margin:0;padding:0;">
- <tr>
- <td style="font-size:15px;font-weight:700;color:#000;padding:0 8px 0 0;vertical-align:baseline;white-space:nowrap;">订单号</td>
- <td style="font-size:15px;font-weight:700;color:#000;vertical-align:baseline;word-break:break-all;">{$ccydh|htmlentities}</td>
- </tr>
- </table>
- {/notempty}
- </div>
- {/notempty}
- <div class="section-title"{if !empty($pdf_export)} style="margin:16px 0 10px;font-size:14px;font-weight:600;color:#333;padding-bottom:6px;border-bottom:1px solid #eee;"{/if}>状态进度</div>
- {notempty name="pdf_export"}
- <div class="proc-pdf-steps-outer" style="overflow:hidden;margin:0;padding:0;">
- <table class="proc-steps-table-pdf" width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse;table-layout:fixed;width:100%;margin:0 0 18px;">
- <tr>
- {volist name="steps" id="st"}
- <td style="vertical-align:top;text-align:center;padding:4px 1px 0;border:0 !important;width:16.666%;">
- <table width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse;height:152px;margin:0 auto;">
- <tr>
- <td style="vertical-align:top;padding:0;border:0 !important;">
- <table width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse;margin:0 auto 4px;">
- <tr style="height:28px;">
- <td style="width:50%;padding:0;border:0 !important;vertical-align:middle;height:28px;">
- {if $st.pdf_left_bg}
- <table width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse;"><tr><td style="padding:0;border:0 !important;height:0;line-height:0;font-size:0;border-top:2px solid {$st.pdf_left_bg};"> </td></tr></table>
- {/if}
- </td>
- <td style="width:28px;padding:0;border:0 !important;vertical-align:middle;text-align:center;height:28px;">
- {if $st.done}
- <span style="display:inline-block;width:28px;height:28px;line-height:26px;text-align:center;border-radius:14px;border:2px solid #1890ff;background-color:#1890ff;color:#ffffff;font-size:11px;font-weight:bold;">✓</span>
- {elseif $st.current /}
- <span style="display:inline-block;width:28px;height:28px;line-height:26px;text-align:center;border-radius:14px;border:2px solid #1890ff;background-color:#1890ff;color:#ffffff;font-size:11px;font-weight:bold;">{$i}</span>
- {else /}
- <span style="display:inline-block;width:28px;height:28px;line-height:26px;text-align:center;border-radius:14px;border:2px solid #dddddd;background-color:#f5f5f5;color:#999999;font-size:11px;font-weight:bold;">{$i}</span>
- {/if}
- </td>
- <td style="width:50%;padding:0;border:0 !important;vertical-align:middle;height:28px;">
- {if $st.pdf_right_bg}
- <table width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse;"><tr><td style="padding:0;border:0 !important;height:0;line-height:0;font-size:0;border-top:2px solid {$st.pdf_right_bg};"> </td></tr></table>
- {/if}
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td style="vertical-align:top;padding:2px 2px 0;border:0 !important;font-size:12px;color:#333;line-height:1.35;font-weight:600;text-align:center;">{$st.title|htmlentities}</td>
- </tr>
- <tr>
- <td style="vertical-align:top;padding:2px 2px 0;height:44px;border:0 !important;font-size:11px;color:#888;line-height:1.3;text-align:center;overflow:hidden;">{$st.subtitle|default=''|htmlentities}</td>
- </tr>
- <tr>
- <td style="vertical-align:bottom;padding:2px 2px 0;border:0 !important;font-size:11px;color:#aaa;text-align:center;white-space:nowrap;">{$st.time|default=''|htmlentities}</td>
- </tr>
- </table>
- </td>
- {/volist}
- </tr>
- </table>
- </div>
- {else /}
- <div class="proc-steps-wrap">
- {volist name="steps" id="st"}
- <div class="proc-step-item{if $st.done} is-done{/if}{if $st.current} is-current{/if}">
- <div class="proc-step-circle">
- {if $st.done}
- <i class="fa fa-check"></i>
- {else /}
- <span>{$i}</span>
- {/if}
- </div>
- <div class="proc-step-title">{$st.title|htmlentities}</div>
- <div class="proc-step-sub">{$st.subtitle|default=''|htmlentities}</div>
- <div class="proc-step-time">{$st.time|default=''|htmlentities}</div>
- </div>
- {/volist}
- </div>
- {/notempty}
- <div class="section-title">操作记录</div>
- {notempty name="operLogs"}
- <ul class="procuremen-oper-log">
- {volist name="operLogs" id="lg"}
- <li>
- <span class="op-user">{$lg.admin_name|default=''|htmlentities}</span>
- <span class="op-time">{$lg.createtime_text|default=''|htmlentities}</span>
- <span class="op-text">{$lg.content|default=''|htmlentities}</span>
- </li>
- {/volist}
- </ul>
- {else /}
- <p class="procuremen-oper-log-empty text-muted">暂无操作记录</p>
- {/notempty}
- <div class="procuremen-order-info-block">
- <div class="procuremen-order-info-head">本单工序({$processCount|default='1'} 项)</div>
- <div class="details-process-table-wrap">
- <table class="table table-bordered table-condensed details-process-table">
- <thead>
- <tr>
- <th class="text-center" style="width:100px;">订单号</th>
- <th style="min-width:160px;">印件名称</th>
- <th>工序名称</th>
- <th class="text-center" style="width:56px;">单位</th>
- <th class="text-center" style="width:88px;">本次数量</th>
- <th class="text-center" style="width:72px;">最高限价</th>
- <th class="text-center" style="width:80px;">订法</th>
- <th style="min-width:120px;">备注</th>
- </tr>
- </thead>
- <tbody>
- {notempty name="processDisplayRows"}
- {volist name="processDisplayRows" id="pr"}
- <tr>
- {if $pr.show_order_cells}
- <td class="text-center"{if condition="$pr.order_rowspan gt 1"} rowspan="{$pr.order_rowspan}"{/if}>{$pr.CCYDH|default=''|htmlentities}</td>
- <td{if condition="$pr.order_rowspan gt 1"} rowspan="{$pr.order_rowspan}"{/if}>{$pr.CYJMC|default=''|htmlentities}</td>
- {/if}
- <td>{$pr.CGYMC|default=''|htmlentities}</td>
- <td class="text-center">{$pr.CDW|default=''|htmlentities}</td>
- <td class="text-center">{$pr.This_quantity|default=''|htmlentities}</td>
- <td class="text-center">{$pr.ceilingPrice|default=''|htmlentities}</td>
- <td class="text-center">{$pr.CDF|default=''|htmlentities}</td>
- <td>{$pr.MBZ|default=''|htmlentities}</td>
- </tr>
- {/volist}
- {else /}
- <tr>
- <td colspan="8" class="text-center text-muted" style="padding:14px;">暂无工序数据</td>
- </tr>
- {/notempty}
- </tbody>
- </table>
- </div>
- </div>
- <div class="section-title">供应商</div>
- <div class="details-supplier-table-wrap table-responsive">
- <table class="table table-bordered table-condensed detail-mini detail-supplier-table">
- <thead>
- <tr>
- <th style="min-width:140px;">供应商名称</th>
- <th style="width:88px;">姓名</th>
- <th style="min-width:160px;">邮箱</th>
- <th style="width:120px;">手机号</th>
- <th style="min-width:120px;">工序名称</th>
- <th class="text-center" style="width:88px;">单价</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>
- <th style="width:140px;">操作时间</th>
- </tr>
- </thead>
- <tbody>
- {notempty name="supplierQuoteGroups"}
- {volist name="supplierQuoteGroups" id="sg"}
- {volist name="sg.lines" id="ln" key="lk"}
- <tr{if !empty($sg.is_void)} class="text-muted"{/if}>
- {if $lk == 1}
- <td{if condition="$sg.display_rowspan gt 1"} rowspan="{$sg.display_rowspan}"{/if} style="vertical-align:middle;">
- {$sg.company_name|default=''|htmlentities}
- </td>
- <td{if condition="$sg.display_rowspan gt 1"} rowspan="{$sg.display_rowspan}"{/if} style="vertical-align:middle;">{$sg.username|default=''|htmlentities}</td>
- <td{if condition="$sg.display_rowspan gt 1"} rowspan="{$sg.display_rowspan}"{/if} style="vertical-align:middle;">{:htmlentities(mask_email(isset($sg['email']) ? $sg['email'] : ''))}</td>
- <td{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">
- {if !empty($ln.is_void)}
- <span class="label label-default">历史</span>
- {elseif !empty($ln.is_picked) /}
- <span class="label label-success">已选</span>
- {else /}
- <span class="text-muted"> </span>
- {/if}
- </td>
- <td>{$ln.oper_time_text|default=''|htmlentities}</td>
- </tr>
- {/volist}
- {if !empty($sg.has_total)}
- <tr class="active">
- <td colspan="3" class="text-right"><strong>总计</strong></td>
- <td class="text-center"><strong>{$sg.total_text|default=''|htmlentities}</strong></td>
- <td colspan="2"></td>
- </tr>
- {/if}
- {/volist}
- {else /}
- {notempty name="detailRows"}
- {volist name="detailRows" id="dr"}
- <tr>
- <td>{$dr.company_name|default=''|htmlentities}</td>
- <td>{$dr.username|default=''|htmlentities}</td>
- <td>{:htmlentities(mask_email(isset($dr['email']) ? $dr['email'] : ''))}</td>
- <td>{: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"></td>
- <td class="text-center">
- {if isset($dr.is_void) && $dr.is_void}
- <span class="label label-default">历史下发</span>
- {elseif !empty($dr.is_picked) /}
- <span class="label label-success">已选</span>
- {else /}
- <span class="text-muted"> </span>
- {/if}
- </td>
- <td>{$dr.oper_time_text|default=''|htmlentities}</td>
- </tr>
- {/volist}
- {else /}
- <tr>
- <td colspan="10" class="text-center text-muted">暂无下发明细</td>
- </tr>
- {/notempty}
- {/notempty}
- </tbody>
- </table>
- </div>
- </div>
|