detail.html 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. <style type="text/css">
  2. .btn-list {
  3. position: fixed;
  4. right: 40px;
  5. }
  6. .div-flex {
  7. display: flex
  8. }
  9. .div-flex .form-group {
  10. margin-right: 50px;
  11. text-align: center;
  12. line-height: 25px;
  13. margin-bottom: 0;
  14. }
  15. .tab-pane {
  16. border: 1px solid #F6F6F6;
  17. }
  18. .i-color {
  19. font-size: 34px;margin-right: 10px;color: #86C3FF;
  20. }
  21. .thumbnail {
  22. display: flow-root;
  23. width: max-content;
  24. }
  25. .thumbnail img {
  26. width: 50px;
  27. float: left;
  28. padding: 5px;
  29. }
  30. .text-color{
  31. color:#777;
  32. }
  33. </style>
  34. <style type="text/css">
  35. .examine_title{
  36. font-size: 14px;
  37. color: #333;
  38. -webkit-box-flex: 1;
  39. -ms-flex: 1;
  40. flex: 1;
  41. display: block;
  42. height: 30px;
  43. }
  44. .examine_box{
  45. padding-left:20px;
  46. position: relative;
  47. }
  48. .examine_box .newicon{
  49. position: absolute;
  50. left:0;
  51. top:0;
  52. z-index: 2;
  53. }
  54. .examine_box .xian{
  55. width:1px;
  56. height:100%;
  57. background:#e6e6e6;
  58. position: absolute;
  59. left:4px;
  60. top:10px;
  61. z-index: 1;
  62. }
  63. .examine_box .examine_bg{
  64. position: relative;
  65. margin-top: 15px;
  66. border-radius: 4px;
  67. background-color: #f7f8fa;
  68. font-size: 12px;
  69. color: #929293;
  70. padding: 8px;
  71. line-height: 18px;
  72. }
  73. .rowbox{
  74. display: flex;
  75. justify-content: flex-start;
  76. align-items: center;
  77. }
  78. .stafflist{
  79. width: 70px;text-align: center;float: left;
  80. }
  81. .stafflist-right{
  82. width: 30px;text-align: center;float: left;margin: 0 20px;
  83. }
  84. .stafflist-right:last-child{
  85. display: none;
  86. }
  87. .stafflist img{
  88. width: 40px;
  89. height: 40px;
  90. margin: 10px;
  91. border-radius:50%;
  92. }
  93. </style>
  94. <div class="panel panel-default panel-intro">
  95. <input type="hidden" name="ids" id="ids" value="{$ids}"/>
  96. <div class="div-flex">
  97. <i class="fa fa-address-card i-color"></i>
  98. <div style="line-height: 35px"><b>{$row.name}</b> {switch name="row.check_status"}
  99. {case value="0"}<b class="text-success">(审核中)</b>{/case}
  100. {case value="1"}<b class="text-success">(审核中)</b>{/case}
  101. {case value="2"}<b class="text-warning">(审核通过)</b>{/case}
  102. {case value="3"}<b class="text-danger">(审核拒绝)</b>{/case}
  103. {case value="4"}<b class="text-danger">(撤销审批)</b>{/case}
  104. {default /}
  105. {/switch}</div>
  106. <div class="btn-list">
  107. {if condition="isset($flow) && $flow"}
  108. {eq name="flow.is_check" value="1"}
  109. <a class="btn btn-success btn-dialog" data-area="" data-shade="0.3"
  110. data-url="qingdong/examine/examine_record/examine?relation_type=contract&relation_id={$ids}&status=1"
  111. data-title="审核通过" >审核通过</a>
  112. <a class="btn btn-danger btn-dialog" data-area="" data-shade="0.3"
  113. data-url="qingdong/examine/examine_record/examine?relation_type=contract&relation_id={$ids}&status=2"
  114. data-title="审核拒绝" >审核拒绝</a>
  115. {/eq}
  116. {/if}
  117. {if condition="($row['check_status'] == 3) OR ($row['check_status'] == 4) "}
  118. <a class="btn btn-success" data-toggle="dropdown" id="edits">编辑</a>
  119. {/if}
  120. <a href="javascript:void(0)"
  121. class="btn btn-success btn-word" data-id="{$ids}"
  122. data-types="contract" data-title="导出word">导出word</a>
  123. </div>
  124. <input type="hidden" value="{$row.id}" id="contractId">
  125. </div>
  126. <div style="margin-top: 10px">
  127. </div>
  128. {if condition="isset($flow) && $flow"}
  129. {if condition="$flow.status == 1"}
  130. <div class="div-flex">
  131. <div class="form-group col-sm-10">
  132. <blockquote style="padding: 2px 10px;text-align: left">
  133. <p>审核信息 <span class="label label-danger">固定审批流</span></p>
  134. </blockquote>
  135. <div style="text-align: left">
  136. <a href="javascript:void(0)" data-toggle="popover"
  137. data-content="
  138. <p class='examine_title'>审批流程</p>
  139. {foreach name='$examine_record' item='examine_r'}
  140. {if condition='$examine_r.status == 0'}
  141. {elseif condition='$examine_r.status == 1'}
  142. <div class='examine_box'>
  143. <i class='fa fa-check-circle text-success newicon'></i>
  144. <div class='xian'></div>
  145. <p><span class='text-muted'>{$examine_r.check_time}</span></p>
  146. <p> {$examine_r.check_staff.name} <span class='text-muted'>通过了此申请</span></p>
  147. {if condition='$examine_r.content'}<p class='examine_bg'> {$examine_r.content}</p>{/if}
  148. </div>
  149. {elseif condition='$examine_r.status == 2'}
  150. <div class='examine_box'>
  151. <i class='fa fa-window-close text-red newicon'></i>
  152. <div class='xian'></div>
  153. <p><span class='text-muted'>{$examine_r.check_time}</span></p>
  154. <p> {$examine_r.check_staff.name} <span class='text-muted'>拒绝了此申请</span></p>
  155. {if condition='$examine_r.content'}<p class='examine_bg'> {$examine_r.content}</p>{/if}
  156. </div>
  157. {else/}
  158. <div class='examine_box'>
  159. <i class='fa fa-window-close text-red newicon'></i>
  160. <div class='xian'></div>
  161. <p><span class='text-muted'>{$examine_r.check_time}</span></p>
  162. <p> {$examine_r.check_staff.name} <span class='text-muted'>撤回了此申请</span></p>
  163. {if condition='$examine_r.content'}<p class='examine_bg'> {$examine_r.content}</p>{/if}
  164. </div>
  165. {/if}
  166. {/foreach}" data-html="true">查看审批历史</a>
  167. </div>
  168. <div class="row rowbox" style="margin-left: 20px">
  169. {foreach name="$flow.stepList" item="val"}
  170. <div class="stafflist" data-container="body" data-toggle="popover" data-placement="bottom" data-content="{foreach name='$val.stafflist' item='sf'}
  171. {if condition='$sf.examine_reord.status == 0'}
  172. <p><i class='fa fa-clock-o text-red'></i> {$sf.name} 待审核此申请</p>
  173. {elseif condition='$sf.examine_reord.status == 1'}
  174. <p><i class='fa fa-check-circle text-success'></i> {$sf.examine_reord.check_time}</p>
  175. <p>{$sf.name} 通过此申请</p>
  176. {elseif condition='$sf.examine_reord.status == 2'}
  177. <p><i class='fa fa-window-close text-red'></i> {$sf.examine_reord.check_time}</p>
  178. <p>{$sf.name} 拒绝此申请</p>
  179. {else/}
  180. <p><i class='fa fa-mail-reply text-red'></i> {$sf.name} 已撤销</p>
  181. {/if}
  182. {/foreach}" data-html="true">
  183. <img src="/assets/addons/qingdong/img/avatar.png" class="img-circle">
  184. {if condition="$val.status == 3"}
  185. <span class="text-muted">发起人主管</span>
  186. {elseif condition="$val.status == 2"/}
  187. <span class="text-muted">{:count($val.stafflist)}人并签</span>
  188. {else/}
  189. <span class="text-muted">{:count($val.stafflist)}人或签</span>
  190. {/if}
  191. {if condition="$val.order_id < $flow.order_id"}
  192. <p><span><i class="fa fa-check-circle text-success"></i> 审核通过</span></p>
  193. {else/}
  194. {if condition="$row.check_status == 3"}
  195. <p> <span><i class="fa fa-window-close text-red"></i> 审核拒绝</span></p>
  196. {else/}
  197. <p><span><i class="fa fa-clock-o text-red"></i> 待审核</span></p>
  198. {/if}
  199. {/if}
  200. </div>
  201. <div class="stafflist-right">
  202. <i class="fa fa-angle-right" style="color: #ccc;margin: 0 16px;font-size: 20px;font-weight: 600;"></i>
  203. </div>
  204. {/foreach}
  205. </div>
  206. </div>
  207. </div>
  208. {else/}
  209. <div class="div-flex">
  210. <div class="form-group col-sm-10">
  211. <blockquote style="padding: 2px 10px;text-align: left">
  212. <p>审核信息 <span class="label label-danger">发起人自选</span></p>
  213. </blockquote>
  214. <div style="text-align: left">
  215. <a href="javascript:void(0)" data-toggle="popover"
  216. data-content="
  217. <p class='examine_title'>审批流程</p>
  218. {foreach name='$examine_record' item='examine_r'}
  219. {if condition='$examine_r.status == 0'}
  220. {elseif condition='$examine_r.status == 1'}
  221. <div class='examine_box'>
  222. <i class='fa fa-check-circle text-success newicon'></i>
  223. <div class='xian'></div>
  224. <p><span class='text-muted'>{$examine_r.check_time}</span></p>
  225. <p> {$examine_r.check_staff.name} <span class='text-muted'>通过了此申请</span></p>
  226. {if condition='$examine_r.content'}<p class='examine_bg'> {$examine_r.content}</p>{/if}
  227. </div>
  228. {elseif condition='$examine_r.status == 2'}
  229. <div class='examine_box'>
  230. <i class='fa fa-window-close text-red newicon'></i>
  231. <div class='xian'></div>
  232. <p><span class='text-muted'>{$examine_r.check_time}</span></p>
  233. <p> {$examine_r.check_staff.name} <span class='text-muted'>拒绝了此申请</span></p>
  234. {if condition='$examine_r.content'}<p class='examine_bg'> {$examine_r.content}</p>{/if}
  235. </div>
  236. {else/}
  237. <div class='examine_box'>
  238. <i class='fa fa-window-close text-red newicon'></i>
  239. <div class='xian'></div>
  240. <p><span class='text-muted'>{$examine_r.check_time}</span></p>
  241. <p> {$examine_r.check_staff.name} <span class='text-muted'>撤回了此申请</span></p>
  242. {if condition='$examine_r.content'}<p class='examine_bg'> {$examine_r.content}</p>{/if}
  243. </div>
  244. {/if}
  245. {/foreach}" data-html="true">查看审批历史</a>
  246. </div>
  247. <div class="row rowbox" style="margin-left: 20px">
  248. {foreach name="$flow.stepList.0.stafflist" item="val"}
  249. <div class="stafflist">
  250. <img src="{$val.img}" class="img-circle">
  251. <span class="text-muted">{$val.name}</span>
  252. {if condition="$val.examine_reord.status == 0"}
  253. <p><span><i class="fa fa-clock-o text-red"></i> 待审核</span></p>
  254. {elseif condition="$val.examine_reord.status == 1"}
  255. <p><span><i class="fa fa-check-circle text-success"></i> 审核通过</span></p>
  256. {else/}
  257. <p> <span><i class="fa fa-window-close text-red"></i> 审核拒绝</span></p>
  258. {/if}
  259. </div>
  260. <div class="stafflist-right">
  261. <i class="fa fa-angle-right" style="color: #ccc;margin: 0 16px;font-size: 20px;font-weight: 600;"></i>
  262. </div>
  263. {/foreach}
  264. </div>
  265. </div>
  266. </div>
  267. {/if}
  268. {/if}
  269. <div class="div-flex" style="margin-top: 20px">
  270. <div class="form-group">
  271. <span class="text-muted">合同编号</span>
  272. <p>{$row.num}</p>
  273. </div>
  274. <div class="form-group">
  275. <span class="text-muted">客户名称</span>
  276. <p>{if condition="isset($row.customer.name)"}{$row.customer.name}{/if}</p>
  277. </div>
  278. {if $role == 1 || $role == 2}
  279. <div class="form-group">
  280. <span class="text-muted">合同金额(元)</span>
  281. <p>{$row.money}</p>
  282. </div>
  283. <div class="form-group">
  284. <span class="text-muted">回款金额(元)</span>
  285. <p>{$row.repayment_money}</p>
  286. </div>
  287. <div class="form-group">
  288. <span class="text-muted">未回款金额(元)</span>
  289. <p>{$row.no_money}</p>
  290. </div>
  291. {/if}
  292. <div class="form-group">
  293. <span class="text-muted">下单时间</span>
  294. <p>{$row.order_date}</p>
  295. </div>
  296. <div class="form-group">
  297. <span class="text-muted">负责人</span>
  298. <p>{if condition="isset($row.owner_staff.name)"}{$row.owner_staff.name}{/if}</p>
  299. </div>
  300. </div>
  301. <div>
  302. <ul class="nav nav-tabs" role="tablist">
  303. <li role="presentation" class="active"><a href="#record" aria-controls="home" role="tab" data-toggle="tab">跟进记录</a></li>
  304. <li role="presentation"><a href="#basic" aria-controls="profile" role="tab" data-toggle="tab">基本信息</a></li>
  305. <li role="presentation"><a href="#product" aria-controls="profile" role="tab" data-toggle="tab">产品明细</a></li>
  306. {if $role == 1 && $role == 2}
  307. <li role="presentation"><a href="#settings2" aria-controls="profile" role="tab" data-toggle="tab">回款信息</a></li>
  308. {/if}
  309. <li role="presentation"><a href="#settings4" aria-controls="settings" role="tab" data-toggle="tab">操作记录</a></li>
  310. </ul>
  311. <div class="tab-content" style="overflow-y: scroll;height:565px">
  312. <div role="tabpanel" class="tab-pane fade active in panel-body" id="record">
  313. <div id="toolbar_records" class="toolbar">
  314. {:build_toolbar('refresh')}
  315. <a class="btn btn-success btn-dialog {:$auth->check('qingdong/contract/record/add')?'':'hide'}"
  316. data-url="qingdong/contract/record/add?ids={$row.id}" data-title="新建跟进" data-refresh="true" data-area=["90%","90%"]>新建跟进</a>
  317. </div>
  318. <table id="records" class="table table-striped table-bordered table-hover table-nowrap"
  319. width="100%">
  320. </table>
  321. </div>
  322. <div role="tabpanel" class="tab-pane fade panel-body" id="product">
  323. <div id="toolbar_product" class="toolbar">
  324. {:build_toolbar('refresh')}
  325. </div>
  326. <table id="operation_product" class="table table-striped table-bordered table-hover table-nowrap"
  327. width="100%">
  328. </table>
  329. </div>
  330. <div role="tabpanel" class="tab-pane fade panel-body form-horizontal" id="basic">
  331. <div class="form-group">
  332. {include file="qingdong/common/form_detail" /}
  333. {if condition="$row.ratios neq null"}
  334. <div class="col-xs-12 col-sm-10">
  335. <div class="form-group col-sm-10">
  336. <blockquote style="padding: 2px 10px;">
  337. <div class="form-inline">
  338. <label>业绩分成:{empty name='$row.ratios'}(无){/empty}</label>
  339. </div>
  340. </blockquote>
  341. <table class="table " style="width: 300px;{empty name='$row.ratios'}display: none{/empty}">
  342. <thead>
  343. <tr>
  344. <th width="80">比例</th>
  345. <th>团队成员</th>
  346. <th>业绩</th>
  347. </tr>
  348. </thead>
  349. <tbody>
  350. {foreach name="$row.ratios" item="val"}
  351. <tr>
  352. <td>{$val.ratio}%</td>
  353. <td>{$val.staff.name}</td>
  354. <td>¥{$val.money}</td>
  355. </tr>
  356. {/foreach}
  357. </tbody>
  358. </table>
  359. </div>
  360. </div>
  361. {/if}
  362. </div>
  363. </div>
  364. <div role="tabpanel" class="tab-pane fade panel-body" id="settings2">
  365. <div class="panel panel-warning">
  366. <div class="panel-heading">回款计划</div>
  367. <div class="panel-body">
  368. <div id="toolbar_receivablesplan" class="toolbar">
  369. {:build_toolbar('refresh')}
  370. <a class="btn btn-success btn-dialog {:$auth->check('qingdong/customer/receivablesplan/add')?'':'hide'}" data-url="qingdong/customer/receivablesplan/add?customer_id={$row.customer_id}&contract_id={$row.id}" data-title="新建回款计划" data-refresh="true" >新建回款计划</a>
  371. </div>
  372. <table id="plan" class="table table-striped table-bordered table-hover table-nowrap"
  373. width="100%">
  374. </table>
  375. </div>
  376. </div>
  377. <div class="panel panel-info">
  378. <div class="panel-heading">回款记录</div>
  379. <div class="panel-body">
  380. <div id="toolbar_receivables" class="toolbar">
  381. {:build_toolbar('refresh')}
  382. <a class="btn btn-success btn-dialog {:$auth->check('qingdong/customer/receivables/add')?'':'hide'}" data-refresh="true" data-url="qingdong/customer/receivables/add?customer_id={$row.customer_id}&contract_id={$row.id}" data-area=["90%","90%"] data-title="新建回款">新建回款</a>
  383. </div>
  384. <table id="receivables" class="table table-striped table-bordered table-hover table-nowrap"
  385. width="100%">
  386. </table>
  387. </div>
  388. </div>
  389. </div>
  390. <div role="tabpanel" class="tab-pane fade panel-body" id="settings3">
  391. <div id="toolbar_files" class="toolbar">
  392. {:build_toolbar('refresh')}
  393. </div>
  394. <table id="files" class="table table-striped table-bordered table-hover table-nowrap"
  395. width="100%">
  396. </table>
  397. </div>
  398. <div role="tabpanel" class="tab-pane fade panel-body" id="settings4">
  399. <div id="toolbar_log" class="toolbar">
  400. {:build_toolbar('refresh')}
  401. </div>
  402. <table id="operation_log" class="table table-striped table-bordered table-hover table-nowrap"
  403. width="100%">
  404. </table>
  405. </div>
  406. </div>
  407. </div>
  408. </div>