details_fragment.html 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455
  1. <style>
  2. html.procuremen-details-dialog,
  3. html.procuremen-details-dialog body.procuremen-details-dialog {
  4. height: auto !important;
  5. min-height: 0 !important;
  6. overflow-x: hidden;
  7. }
  8. body.is-dialog .procuremen-details-wrap {
  9. margin: 0;
  10. padding: 12px 14px 16px;
  11. }
  12. .procuremen-details-wrap .section-title {
  13. font-size: 14px;
  14. font-weight: 600;
  15. margin: 18px 0 10px;
  16. color: #333;
  17. padding-bottom: 6px;
  18. border-bottom: 1px solid #eee;
  19. }
  20. .proc-steps-wrap {
  21. display: flex;
  22. flex-wrap: nowrap;
  23. justify-content: space-between;
  24. align-items: flex-start;
  25. padding: 8px 4px 4px;
  26. overflow-x: auto;
  27. -webkit-overflow-scrolling: touch;
  28. }
  29. .proc-step-item {
  30. flex: 1 1 0;
  31. min-width: 100px;
  32. text-align: center;
  33. position: relative;
  34. padding: 0 4px;
  35. }
  36. .proc-step-item:not(:last-child)::after {
  37. content: '';
  38. position: absolute;
  39. top: 14px;
  40. left: 50%;
  41. width: 100%;
  42. height: 2px;
  43. background: #e0e0e0;
  44. z-index: 0;
  45. }
  46. .proc-step-item.is-done:not(:last-child)::after {
  47. background: #1890ff;
  48. }
  49. .proc-step-circle {
  50. width: 28px;
  51. height: 28px;
  52. line-height: 28px;
  53. border-radius: 50%;
  54. margin: 0 auto 6px;
  55. font-size: 13px;
  56. font-weight: 600;
  57. position: relative;
  58. z-index: 1;
  59. background: #f5f5f5;
  60. color: #999;
  61. border: 2px solid #ddd;
  62. }
  63. .proc-step-item.is-done .proc-step-circle {
  64. background: #1890ff;
  65. border-color: #1890ff;
  66. color: #fff;
  67. }
  68. .proc-step-item.is-current .proc-step-circle {
  69. background: #1890ff;
  70. border-color: #1890ff;
  71. color: #fff;
  72. box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.25);
  73. }
  74. .proc-step-item.is-done .proc-step-circle .fa {
  75. line-height: 24px;
  76. }
  77. .proc-step-title {
  78. font-size: 12px;
  79. color: #333;
  80. line-height: 1.35;
  81. margin-bottom: 2px;
  82. }
  83. .proc-step-sub {
  84. font-size: 11px;
  85. color: #888;
  86. line-height: 1.3;
  87. min-height: 2.6em;
  88. }
  89. .proc-step-time {
  90. font-size: 11px;
  91. color: #aaa;
  92. margin-top: 4px;
  93. white-space: nowrap;
  94. }
  95. .procuremen-details-wrap .procuremen-order-info-block {
  96. border: 1px solid #ddd;
  97. margin-top: 18px;
  98. margin-bottom: 0;
  99. }
  100. .procuremen-details-wrap .procuremen-order-info-head {
  101. background: #f0f0f0;
  102. border-bottom: 1px solid #ddd;
  103. padding: 10px 12px;
  104. font-size: 14px;
  105. font-weight: 700;
  106. color: #222;
  107. margin: 0;
  108. }
  109. .procuremen-details-wrap .procuremen-order-grid {
  110. width: 100%;
  111. border-collapse: collapse;
  112. table-layout: fixed;
  113. font-size: 13px;
  114. margin: 0;
  115. background: #fff;
  116. border: none;
  117. }
  118. .procuremen-details-wrap .procuremen-order-grid td {
  119. border: 1px solid #ddd;
  120. padding: 10px 12px;
  121. vertical-align: middle;
  122. }
  123. .procuremen-details-wrap .procuremen-order-grid .og-label {
  124. width: 14%;
  125. background: #f5f5f5;
  126. color: #333;
  127. text-align: right;
  128. font-weight: normal;
  129. }
  130. .procuremen-details-wrap .procuremen-order-grid .og-value {
  131. width: 36%;
  132. background: #fff;
  133. color: #000;
  134. text-align: left;
  135. font-weight: 700;
  136. word-break: break-word;
  137. }
  138. .procuremen-details-wrap .details-process-table-wrap {
  139. overflow-x: auto;
  140. -webkit-overflow-scrolling: touch;
  141. }
  142. .procuremen-details-wrap .details-process-table {
  143. margin: 0;
  144. font-size: 12px;
  145. table-layout: fixed;
  146. width: 100%;
  147. min-width: 820px;
  148. border-collapse: collapse;
  149. }
  150. .procuremen-details-wrap .details-process-table th {
  151. background: #f5f5f5;
  152. white-space: nowrap;
  153. font-weight: 600;
  154. padding: 8px 10px;
  155. vertical-align: middle;
  156. border: 1px solid #ddd;
  157. }
  158. .procuremen-details-wrap .details-process-table td {
  159. padding: 8px 10px;
  160. vertical-align: middle;
  161. word-wrap: break-word;
  162. border: 1px solid #ddd;
  163. }
  164. .procuremen-details-wrap .details-process-table th.text-center,
  165. .procuremen-details-wrap .details-process-table td.text-center {
  166. text-align: center;
  167. }
  168. .procuremen-details-wrap .procuremen-oper-log {
  169. list-style: none;
  170. margin: 0 0 8px;
  171. padding: 0;
  172. font-size: 13px;
  173. line-height: 1.65;
  174. border: 1px solid #e8e8e8;
  175. border-radius: 4px;
  176. background: #fafafa;
  177. max-height: 280px;
  178. overflow-y: auto;
  179. }
  180. .procuremen-details-wrap .procuremen-oper-log li {
  181. padding: 8px 12px;
  182. border-bottom: 1px solid #eee;
  183. word-break: break-word;
  184. }
  185. .procuremen-details-wrap .procuremen-oper-log li:last-child {
  186. border-bottom: none;
  187. }
  188. .procuremen-details-wrap .procuremen-oper-log .op-user {
  189. font-weight: 700;
  190. color: #000;
  191. }
  192. .procuremen-details-wrap .procuremen-oper-log .op-time {
  193. color: #666;
  194. margin: 0 6px;
  195. }
  196. .procuremen-details-wrap .procuremen-oper-log .op-text {
  197. color: #333;
  198. }
  199. .procuremen-details-wrap .procuremen-oper-log-empty {
  200. font-size: 13px;
  201. color: #999;
  202. padding: 10px 12px;
  203. border: 1px dashed #ddd;
  204. border-radius: 4px;
  205. margin-bottom: 8px;
  206. }
  207. .procuremen-details-wrap .detail-mini {
  208. font-size: 12px;
  209. }
  210. .procuremen-details-wrap .detail-mini th,
  211. .procuremen-details-wrap .detail-mini td {
  212. padding: 6px 8px;
  213. vertical-align: middle;
  214. }
  215. .procuremen-details-wrap .detail-supplier-table {
  216. min-width: 1180px;
  217. }
  218. .procuremen-details-wrap .detail-supplier-table td.detail-quote-empty {
  219. color: #e67e22;
  220. }
  221. html.procuremen-details-dialog .procuremen-details-wrap .proc-step-item .proc-step-time:empty {
  222. display: none;
  223. margin: 0;
  224. min-height: 0;
  225. }
  226. </style>
  227. <div class="panel panel-default panel-intro procuremen-details-wrap{if !empty($pdf_export)} procuremen-pdf-inner{/if}" style="border:0;box-shadow:none;">
  228. {notempty name="pdf_export"}
  229. <div class="page-head">
  230. {notempty name="ccydh"}
  231. <table class="proc-pdf-order-no" cellpadding="0" cellspacing="0" style="border-collapse:collapse;margin:0;padding:0;">
  232. <tr>
  233. <td style="font-size:15px;font-weight:700;color:#000;padding:0 8px 0 0;vertical-align:baseline;white-space:nowrap;">订单号</td>
  234. <td style="font-size:15px;font-weight:700;color:#000;vertical-align:baseline;word-break:break-all;">{$ccydh|htmlentities}</td>
  235. </tr>
  236. </table>
  237. {/notempty}
  238. </div>
  239. {/notempty}
  240. <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>
  241. {notempty name="pdf_export"}
  242. <div class="proc-pdf-steps-outer" style="overflow:hidden;margin:0;padding:0;">
  243. <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;">
  244. <tr>
  245. {volist name="steps" id="st"}
  246. <td style="vertical-align:top;text-align:center;padding:4px 1px 0;border:0 !important;width:16.666%;">
  247. <table width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse;height:152px;margin:0 auto;">
  248. <tr>
  249. <td style="vertical-align:top;padding:0;border:0 !important;">
  250. <table width="100%" cellpadding="0" cellspacing="0" style="border-collapse:collapse;margin:0 auto 4px;">
  251. <tr style="height:28px;">
  252. <td style="width:50%;padding:0;border:0 !important;vertical-align:middle;height:28px;">
  253. {if $st.pdf_left_bg}
  254. <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};">&#160;</td></tr></table>
  255. {/if}
  256. </td>
  257. <td style="width:28px;padding:0;border:0 !important;vertical-align:middle;text-align:center;height:28px;">
  258. {if $st.done}
  259. <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;">&#10003;</span>
  260. {elseif $st.current /}
  261. <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>
  262. {else /}
  263. <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>
  264. {/if}
  265. </td>
  266. <td style="width:50%;padding:0;border:0 !important;vertical-align:middle;height:28px;">
  267. {if $st.pdf_right_bg}
  268. <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};">&#160;</td></tr></table>
  269. {/if}
  270. </td>
  271. </tr>
  272. </table>
  273. </td>
  274. </tr>
  275. <tr>
  276. <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>
  277. </tr>
  278. <tr>
  279. <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>
  280. </tr>
  281. <tr>
  282. <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>
  283. </tr>
  284. </table>
  285. </td>
  286. {/volist}
  287. </tr>
  288. </table>
  289. </div>
  290. {else /}
  291. <div class="proc-steps-wrap">
  292. {volist name="steps" id="st"}
  293. <div class="proc-step-item{if $st.done} is-done{/if}{if $st.current} is-current{/if}">
  294. <div class="proc-step-circle">
  295. {if $st.done}
  296. <i class="fa fa-check"></i>
  297. {else /}
  298. <span>{$i}</span>
  299. {/if}
  300. </div>
  301. <div class="proc-step-title">{$st.title|htmlentities}</div>
  302. <div class="proc-step-sub">{$st.subtitle|default=''|htmlentities}</div>
  303. <div class="proc-step-time">{$st.time|default=''|htmlentities}</div>
  304. </div>
  305. {/volist}
  306. </div>
  307. {/notempty}
  308. <div class="section-title">操作记录</div>
  309. {notempty name="operLogs"}
  310. <ul class="procuremen-oper-log">
  311. {volist name="operLogs" id="lg"}
  312. <li>
  313. <span class="op-user">{$lg.admin_name|default=''|htmlentities}</span>
  314. <span class="op-time">{$lg.createtime_text|default=''|htmlentities}</span>
  315. <span class="op-text">{$lg.content|default=''|htmlentities}</span>
  316. </li>
  317. {/volist}
  318. </ul>
  319. {else /}
  320. <p class="procuremen-oper-log-empty text-muted">暂无操作记录</p>
  321. {/notempty}
  322. <div class="procuremen-order-info-block">
  323. <div class="procuremen-order-info-head">本单工序({$processCount|default='1'} 项)</div>
  324. <div class="details-process-table-wrap">
  325. <table class="table table-bordered table-condensed details-process-table">
  326. <thead>
  327. <tr>
  328. <th class="text-center" style="width:100px;">订单号</th>
  329. <th style="min-width:160px;">印件名称</th>
  330. <th>工序名称</th>
  331. <th class="text-center" style="width:56px;">单位</th>
  332. <th class="text-center" style="width:88px;">本次数量</th>
  333. <th class="text-center" style="width:72px;">最高限价</th>
  334. <th class="text-center" style="width:80px;">订法</th>
  335. <th style="min-width:120px;">备注</th>
  336. </tr>
  337. </thead>
  338. <tbody>
  339. {notempty name="processDisplayRows"}
  340. {volist name="processDisplayRows" id="pr"}
  341. <tr>
  342. {if $pr.show_order_cells}
  343. <td class="text-center"{if condition="$pr.order_rowspan gt 1"} rowspan="{$pr.order_rowspan}"{/if}>{$pr.CCYDH|default=''|htmlentities}</td>
  344. <td{if condition="$pr.order_rowspan gt 1"} rowspan="{$pr.order_rowspan}"{/if}>{$pr.CYJMC|default=''|htmlentities}</td>
  345. {/if}
  346. <td>{$pr.CGYMC|default=''|htmlentities}</td>
  347. <td class="text-center">{$pr.CDW|default=''|htmlentities}</td>
  348. <td class="text-center">{$pr.This_quantity|default=''|htmlentities}</td>
  349. <td class="text-center">{$pr.ceilingPrice|default=''|htmlentities}</td>
  350. <td class="text-center">{$pr.CDF|default=''|htmlentities}</td>
  351. <td>{$pr.MBZ|default=''|htmlentities}</td>
  352. </tr>
  353. {/volist}
  354. {else /}
  355. <tr>
  356. <td colspan="8" class="text-center text-muted" style="padding:14px;">暂无工序数据</td>
  357. </tr>
  358. {/notempty}
  359. </tbody>
  360. </table>
  361. </div>
  362. </div>
  363. <div class="section-title">供应商</div>
  364. <div class="table-responsive">
  365. <table class="table table-bordered table-condensed detail-mini detail-supplier-table">
  366. <thead>
  367. <tr>
  368. <th style="min-width:140px;">供应商名称</th>
  369. <th style="width:88px;">姓名</th>
  370. <th style="min-width:160px;">邮箱</th>
  371. <th style="width:120px;">手机号</th>
  372. <th style="min-width:120px;">工序名称</th>
  373. <th class="text-center" style="width:88px;">单价</th>
  374. <th class="text-center" style="width:100px;">交货日期</th>
  375. <th class="text-center" style="width:88px;">小计</th>
  376. <th class="text-center" style="width:88px;">采购确认</th>
  377. <th style="width:140px;">操作时间</th>
  378. </tr>
  379. </thead>
  380. <tbody>
  381. {notempty name="supplierQuoteGroups"}
  382. {volist name="supplierQuoteGroups" id="sg"}
  383. {volist name="sg.lines" id="ln" key="lk"}
  384. <tr{if !empty($sg.is_void)} class="text-muted"{/if}>
  385. {if $lk == 1}
  386. <td{if condition="$sg.display_rowspan gt 1"} rowspan="{$sg.display_rowspan}"{/if} style="vertical-align:middle;">
  387. {$sg.company_name|default=''|htmlentities}
  388. </td>
  389. <td{if condition="$sg.display_rowspan gt 1"} rowspan="{$sg.display_rowspan}"{/if} style="vertical-align:middle;">{$sg.username|default=''|htmlentities}</td>
  390. <td{if condition="$sg.display_rowspan gt 1"} rowspan="{$sg.display_rowspan}"{/if} style="vertical-align:middle;">{$sg.email|default=''|htmlentities}</td>
  391. <td{if condition="$sg.display_rowspan gt 1"} rowspan="{$sg.display_rowspan}"{/if} style="vertical-align:middle;">{$sg.phone|default=''|htmlentities}</td>
  392. {/if}
  393. <td>{$ln.cgymc|default=''|htmlentities}</td>
  394. <td class="text-center">{$ln.unit_price_text|default=''|htmlentities}</td>
  395. <td class="text-center">{$ln.delivery_ymd|default=''|htmlentities}</td>
  396. <td class="text-center">{$ln.subtotal_text|default=''|htmlentities}</td>
  397. <td class="text-center">
  398. {if !empty($ln.is_void)}
  399. <span class="label label-default">历史</span>
  400. {elseif !empty($ln.is_picked) /}
  401. <span class="label label-success">已选</span>
  402. {else /}
  403. <span class="text-muted"> </span>
  404. {/if}
  405. </td>
  406. <td>{$ln.oper_time_text|default=''|htmlentities}</td>
  407. </tr>
  408. {/volist}
  409. {if !empty($sg.has_total)}
  410. <tr class="active">
  411. <td colspan="3" class="text-right"><strong>总计</strong></td>
  412. <td class="text-center"><strong>{$sg.total_text|default=''|htmlentities}</strong></td>
  413. <td colspan="2"></td>
  414. </tr>
  415. {/if}
  416. {/volist}
  417. {else /}
  418. {notempty name="detailRows"}
  419. {volist name="detailRows" id="dr"}
  420. <tr>
  421. <td>{$dr.company_name|default=''|htmlentities}</td>
  422. <td>{$dr.username|default=''|htmlentities}</td>
  423. <td>{$dr.email|default=''|htmlentities}</td>
  424. <td>{$dr.phone|default=''|htmlentities}</td>
  425. <td></td>
  426. <td class="text-center">{$dr.amount|default=''|htmlentities}</td>
  427. <td class="text-center">{$dr.delivery_ymd|default=''|htmlentities}</td>
  428. <td class="text-center"></td>
  429. <td class="text-center">
  430. {if isset($dr.is_void) && $dr.is_void}
  431. <span class="label label-default">历史下发</span>
  432. {elseif !empty($dr.is_picked) /}
  433. <span class="label label-success">已选</span>
  434. {else /}
  435. <span class="text-muted"> </span>
  436. {/if}
  437. </td>
  438. <td>{$dr.oper_time_text|default=''|htmlentities}</td>
  439. </tr>
  440. {/volist}
  441. {else /}
  442. <tr>
  443. <td colspan="10" class="text-center text-muted">暂无下发明细</td>
  444. </tr>
  445. {/notempty}
  446. {/notempty}
  447. </tbody>
  448. </table>
  449. </div>
  450. </div>