view.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441
  1. {extend name="../../base/view/common/base" /}
  2. {block name="style"}
  3. <style>
  4. .layui-tab-title .layui-this{background-color:#fff;}
  5. .layui-tab-card,.layui-card{box-shadow:0 0 0 0 rgb(0 0 0 / 10%); border-radius:0; border-top:none;}
  6. #checkBox .pb-2{display:none;}
  7. </style>
  8. {/block}
  9. <!-- 主体 -->
  10. {block name="body"}
  11. <div class="p-page">
  12. <h3 class="pb-2">采购合同详情</h3>
  13. <table class="layui-table layui-table-form">
  14. <tr>
  15. <td class="layui-td-gray">合同名称</td>
  16. <td colspan="3">{$detail.name}</td>
  17. <td class="layui-td-gray">合同编号</td>
  18. <td>{$detail.code}</td>
  19. </tr>
  20. <tr>
  21. <td class="layui-td-gray-3">签约主体(甲方)</td>
  22. <td colspan="3">{$detail.subject_title}</td>
  23. <td class="layui-td-gray-2">合同始止日期</td>
  24. <td>{$detail.start_time} 至 {$detail.end_time}</td>
  25. </tr>
  26. <tr>
  27. <td class="layui-td-gray-3">供应商名称(乙方)</td>
  28. <td colspan="3">{$detail.supplier}</td>
  29. <td class="layui-td-gray-3">签约供应商代表</td>
  30. <td>{$detail.contact_name}</td>
  31. </tr>
  32. <tr>
  33. <td class="layui-td-gray-3">供应商联系地址</td>
  34. <td colspan="3">{$detail.contact_address|default='-'}</td>
  35. <td class="layui-td-gray">供应商联系电话</td>
  36. <td>{$detail.contact_mobile|default='-'}</td>
  37. </tr>
  38. <tr>
  39. <td class="layui-td-gray">合同金额</td>
  40. <td>{$detail.cost}</td>
  41. <td class="layui-td-gray">合同性质</td>
  42. <td>{$detail.types_name}</td>
  43. <td class="layui-td-gray">合同类别</td>
  44. <td>{$detail.cate_title}</td>
  45. </tr>
  46. <tr>
  47. <td colspan="6"><strong>签订信息</strong></td>
  48. </tr>
  49. <tr>
  50. <td class="layui-td-gray-2">合同签订人</td>
  51. <td>{$detail.sign_name}</td>
  52. <td class="layui-td-gray-2">合同所属部门</td>
  53. <td>{$detail.sign_department}</td>
  54. <td class="layui-td-gray-2">合同签订日期</td>
  55. <td>{$detail.sign_time}</td>
  56. </tr>
  57. <tr>
  58. <td class="layui-td-gray-2">合同制定人</td>
  59. <td>{$detail.prepared_name|default='-'}</td>
  60. <td class="layui-td-gray-2">合同保管人</td>
  61. <td>{$detail.keeper_name|default='-'} <span id="keeper" data-ids="{$detail.keeper_uid}" data-names="{$detail.keeper_name}" class="layui-btn layui-btn-xs layui-btn-normal ml-1">更改</span></td>
  62. <td class="layui-td-gray">合同共享人员</td>
  63. <td colspan="3">{$detail.share_names|default='-'} <span id="shares" data-ids="{$detail.share_ids}" data-names="{$detail.share_names}" class="layui-btn layui-btn-xs layui-btn-normal ml-1">更改</span></td>
  64. </tr>
  65. {eq name="$detail.types" value="2"}{include file="/purchase/view_purchased"}{/eq}
  66. {eq name="$detail.types" value="3"}{include file="/purchase/view_service"}{/eq}
  67. {notempty name="$detail.file_ids"}
  68. <tr>
  69. <td colspan="6"><strong>相关附件</strong></td>
  70. </tr>
  71. <tr>
  72. <td colspan="6">
  73. <div class="layui-row">
  74. {volist name="$detail.file_array" id="vo"}
  75. <div class="layui-col-md4">{:file_card($vo,'view')}</div>
  76. {/volist}
  77. </div>
  78. </td>
  79. </tr>
  80. {/notempty}
  81. {notempty name="$detail.remark"}
  82. <tr>
  83. <td colspan="6"><strong>备注信息</strong></td>
  84. </tr>
  85. <tr>
  86. <td colspan="6">{$detail.remark}</td>
  87. </tr>
  88. {/notempty}
  89. {notempty name="$detail.ticket"}
  90. <tr>
  91. <td colspan="6"><strong>申请收票记录</strong>『 已申请收票金额:<strong class="green">{$detail.has_ticket}</strong> 元,未申请收票金额:<strong class="red">{$detail.no_ticket}</strong> 元 』</td>
  92. </tr>
  93. <tr>
  94. <td colspan="6">
  95. <table class="layui-table layui-table-min" style="margin:0;">
  96. <tr>
  97. <th style="width:60px;">序号</th>
  98. <th style="width:150px;">发票金额(元)</th>
  99. <th style="width:150px;">发票状态</th>
  100. <th style="width:200px;">发票号码</th>
  101. <th style="width:150px;">发票日期</th>
  102. <th style="width:100px;">付款状态</th>
  103. <th style="width:100px;">申请人</th>
  104. <th style="width:150px;">申请时间</th>
  105. <th style="width:60px;">操作</th>
  106. </tr>
  107. {volist name="$detail.ticket" id="vo"}
  108. <tr>
  109. <td>{$vo.id}</td>
  110. <td><span class="green">{$vo.amount}</span></td>
  111. {eq name="$vo.open_status" value="1"}
  112. <td><span class="green">已开具</span></td>
  113. <td>{$vo.code}</td>
  114. <td>{$vo.open_time|date='Y-m-d'}</td>
  115. {else/}
  116. <td><span class="red">未开具</span></td>
  117. <td>-</td>
  118. <td>-</td>
  119. {/eq}
  120. <td>
  121. {eq name="$vo.pay_status" value="0"}<span class="red">未付款</span>{/eq}
  122. {eq name="$vo.pay_status" value="1"}<span class="blue">部分付款</span>{/eq}
  123. {eq name="$vo.pay_status" value="2"}<span class="green">全部付款</span>{/eq}
  124. </td>
  125. <td>{$vo.admin}</td>
  126. <td>{$vo.create_time | date='Y-m-d H:i:s'}</td>
  127. <td><span class="layui-btn layui-btn-normal layui-btn-xs side-a" data-href="/finance/ticket/view?id={$vo.id}">详情</span></td>
  128. </tr>
  129. {/volist}
  130. </table>
  131. </td>
  132. </tr>
  133. {/notempty}
  134. {notempty name="$detail.payment"}
  135. <tr>
  136. <td colspan="6"><strong>付款记录</strong>『 已付款金额:<strong class="green">{$detail.has_payment}</strong> 元,未付款金额:<strong class="red">{$detail.no_payment}</strong> 元 』</</td>
  137. </tr>
  138. <tr>
  139. <td colspan="6">
  140. <table class="layui-table layui-table-min" style="margin:0;">
  141. <tr>
  142. <th style="width:60px;">序号</th>
  143. <th style="width:150px;">付款金额(元)</th>
  144. <th style="width:200px;">付款日期</th>
  145. <th style="width:100px;">付款操作人</th>
  146. <th style="width:150px;">操作时间</th>
  147. <th style="width:60px;">操作</th>
  148. </tr>
  149. {volist name="$detail.payment" id="vo"}
  150. <tr>
  151. <td>{$vo.id}</td>
  152. <td><span class="green">{$vo.amount}</span></td>
  153. <td>{$vo.pay_time | date='Y-m-d'}</td>
  154. <td>{$vo.admin}</td>
  155. <td>{$vo.create_time | date='Y-m-d H:i:s'}</td>
  156. <td><span class="layui-btn layui-btn-normal layui-btn-xs side-a" data-href="/finance/payment/view?id={$vo.ticket_id}">详情</span></td>
  157. </tr>
  158. {/volist}
  159. </table>
  160. </td>
  161. </tr>
  162. {/notempty}
  163. <tr>
  164. <td colspan="6"><strong>合同情况</strong></td>
  165. </tr>
  166. <tr>
  167. <td class="layui-td-gray">录入人</td>
  168. <td>{$detail.admin_name} </td>
  169. <td class="layui-td-gray">录入时间</td>
  170. <td colspan="3">{$detail.create_time}</td>
  171. </tr>
  172. {gt name="$detail.archive_time" value="0"}
  173. <tr>
  174. <td class="layui-td-gray">归档状态</td>
  175. <td>
  176. <span class="red">已归档</span>
  177. {if ($auth == 1) }
  178. <span class="layui-btn layui-btn-danger layui-btn-xs ml-4" data-event="archive" data-status="0">反确认归档</span>
  179. {/if}
  180. </td>
  181. <td class="layui-td-gray">归档人</td>
  182. <td>{$detail.archive_name} </td>
  183. <td class="layui-td-gray">归档时间</td>
  184. <td>{$detail.archive_time|date='Y-m-d H:i:s'}</td>
  185. {else/}
  186. <td class="layui-td-gray">归档状态</td>
  187. <td colspan="5">
  188. <span class="green">未归档</span>
  189. {if ($auth == 1) AND ($detail.check_status == 2) }
  190. <span class="layui-btn layui-btn-xs ml-4" data-event="archive" data-status="1">确认归档</span>
  191. {/if}
  192. </td>
  193. </tr>
  194. {/gt}
  195. {gt name="$detail.stop_time" value="0"}
  196. <tr>
  197. <td class="layui-td-gray">中止人</td>
  198. <td>{$detail.stop_name}</td>
  199. <td class="layui-td-gray">中止时间</td>
  200. <td>{$detail.stop_time|date='Y-m-d H:i:s'}</td>
  201. <td colspan="2"><span class="layui-btn layui-btn-danger layui-btn-xs" data-event="stop" data-status="0">反中止合同</span></td>
  202. </tr>
  203. <tr>
  204. <td class="layui-td-gray">中止备注</td>
  205. <td colspan="5">{$detail.stop_remark|default='-'}</td>
  206. </tr>
  207. {/gt}
  208. {gt name="$detail.void_time" value="0"}
  209. <tr>
  210. <td class="layui-td-gray">作废人</td>
  211. <td>{$detail.void_name}</td>
  212. <td class="layui-td-gray">作废时间</td>
  213. <td>{$detail.void_time|date='Y-m-d H:i:s'}</td>
  214. <td colspan="2"><span class="layui-btn layui-btn-danger layui-btn-xs" data-event="void" data-status="0">反作废合同</span></td>
  215. </tr>
  216. <tr>
  217. <td class="layui-td-gray-2">作废备注</td>
  218. <td colspan="5">{$detail.void_remark|default='-'}</td>
  219. </tr>
  220. {/gt}
  221. <tr>
  222. <td class="layui-td-gray">
  223. <div>盖章合同文件</div>
  224. <div><button type="button" class="layui-btn layui-btn-xs" id="uploadBtn">文件上传</button></div>
  225. </td>
  226. <td colspan="5">
  227. <div class="row" id="uploadBox">
  228. <input type="hidden" data-type="file" name="seal_ids" value="{$detail.seal_ids|default=''}">
  229. {volist name="$detail.seal_array" id="vo"}
  230. <div class="layui-col-md4" id="file_{$vo.id}">{:file_card($vo)}</div>
  231. {/volist}
  232. </div>
  233. </td>
  234. </tr>
  235. </table>
  236. <div class="layui-tab layui-tab-card" style="margin:0; background-color:#fff;" lay-filter="purchase" id="purchaseTab">
  237. <ul class="layui-tab-title">
  238. <li class="layui-this" data-load="true">审批信息</li>
  239. <li>操作记录</li>
  240. </ul>
  241. <div class="layui-tab-content" style="padding:0;">
  242. <div class="layui-tab-item layui-show" style="padding-top:12px; background-color:#fff;">
  243. {if ($detail.stop_time == 0) AND ($detail.void_time == 0) }
  244. <div id="checkBox" data-status="{$detail.check_status}" data-id="{$detail.id}" data-checkflowid="{$detail.check_flow_id}" class="px-3 pb-3"></div>
  245. {/if}
  246. </div>
  247. <div class="layui-tab-item">
  248. {include file="/purchase/view_log" /}
  249. </div>
  250. </div>
  251. </div>
  252. </div>
  253. {/block}
  254. <!-- /主体 -->
  255. <!-- 脚本 -->
  256. {block name="script"}
  257. <script>
  258. var purchase_id = {$detail.id};
  259. var auth = {$auth};
  260. var archive = {$detail.archive_time};
  261. var moduleInit = ['tool','oaCheck','oaPicker','oaEdit','uploadPlus'];
  262. let checking_btn='<span class="layui-btn layui-btn-warm" data-event="stop" data-status="1">中止合同</span><span class="layui-btn layui-btn-danger" data-event="void" data-status="1">作废合同</span>';
  263. function gouguInit() {
  264. var tool = layui.tool,element = layui.element,oaCheck=layui.oaCheck,oaPicker=layui.oaPicker,uploadPlus=layui.uploadPlus;
  265. var attachment = new uploadPlus({
  266. "attachment":{
  267. "uidDelete":true,//是否开启只有上传人自己才能删除自己的附件
  268. "ajaxSave":function(res){
  269. $.ajax({
  270. url: "/contract/api/purchase_seal_ids",
  271. type:'post',
  272. data:{
  273. 'id':purchase_id,
  274. 'seal_ids':res,
  275. },
  276. success: function (e) {
  277. layer.msg(e.msg);
  278. if (e.code == 0) {
  279. setTimeout(function(){
  280. location.reload();
  281. },1000)
  282. }
  283. }
  284. })
  285. },
  286. "ajaxDelete":function(res){
  287. $.ajax({
  288. url: "/contract/api/purchase_seal_ids",
  289. type:'post',
  290. data:{
  291. 'id':purchase_id,
  292. 'seal_ids':res,
  293. },
  294. success: function (e) {
  295. layer.msg(e.msg);
  296. if (e.code == 0) {
  297. setTimeout(function(){
  298. location.reload();
  299. },1000)
  300. }
  301. }
  302. })
  303. }
  304. }
  305. })
  306. element.on('tab(purchase)', function(data){
  307. let index = data.index;
  308. if(index == 1){
  309. log();
  310. }
  311. });
  312. oaCheck.init({
  313. check_name:'purchase',
  314. checking_btn:checking_btn,
  315. check_reversed :function(){
  316. }
  317. });
  318. let eventCallback = function (e) {
  319. layer.msg(e.msg);
  320. parent.layui.pageTable.reload();
  321. setTimeout(function(){
  322. location.reload();
  323. },1200)
  324. }
  325. //选择合同保管人弹窗
  326. $('body').on('click','#keeper',function () {
  327. let that = $(this);
  328. let ids=$(this).data('ids')+'',names = $(this).data('names')+'';
  329. oaPicker.employeeInit({
  330. ids:ids,
  331. names:names,
  332. type:1,//1是单选,2是多选
  333. callback:function(data){
  334. let select_id=[],select_name=[];
  335. for(var a=0; a<data.length;a++){
  336. select_id.push(data[a].id);
  337. select_name.push(data[a].name);
  338. }
  339. tool.post("/contract/purchase/add", {'id':purchase_id,'keeper_uid':select_id.join(','),'scene':'change'}, eventCallback);
  340. }
  341. });
  342. });
  343. //选择共享成员弹窗
  344. $('body').on('click','#shares',function () {
  345. let that = $(this);
  346. let ids=$(this).data('ids')+'',names = $(this).data('names')+'';
  347. oaPicker.employeeInit({
  348. ids:ids,
  349. names:names,
  350. type:2,//1是单选,2是多选
  351. callback:function(data){
  352. let select_id=[],select_name=[];
  353. for(var a=0; a<data.length;a++){
  354. select_id.push(data[a].id);
  355. select_name.push(data[a].name);
  356. }
  357. tool.post("/contract/purchase/add", {'id':purchase_id,'share_ids':select_id.join(','),'scene':'change'}, eventCallback);
  358. }
  359. });
  360. });
  361. //归档操作
  362. $('body').on('click','[data-event="archive"]',function(){
  363. let status = $(this).data('status');
  364. let tips = '合同归档后将不能进行任何数据操作,确定要提交归档?';
  365. if(status==0){
  366. tips = '确定要反归档操作?';
  367. }
  368. layer.confirm(tips, {
  369. icon: 3,
  370. title: '提示'
  371. }, function(index) {
  372. tool.post("/contract/api/purchase_archive", {id: purchase_id,archive_status:status}, eventCallback);
  373. layer.close(index);
  374. });
  375. })
  376. //中止操作
  377. $('body').on('click','[data-event="stop"]',function(){
  378. let status = $(this).data('status');
  379. if(status==1){
  380. layer.prompt({
  381. formType: 2,
  382. title: '请输入中止的理由',
  383. area: ['480px', '120px']
  384. }, function(value, index, elem){
  385. tool.post("/contract/api/purchase_stop", {id: purchase_id,stop_status:status,stop_remark:value}, eventCallback);
  386. layer.close(index);
  387. });
  388. }
  389. else{
  390. layer.confirm('确定要反中止该合同?', {
  391. icon: 3,
  392. title: '提示'
  393. }, function(index) {
  394. tool.post("/contract/api/purchase_stop", {id: purchase_id,stop_status:status}, eventCallback);
  395. layer.close(index);
  396. });
  397. }
  398. })
  399. //作废操作
  400. $('body').on('click','[data-event="void"]',function(){
  401. let status = $(this).data('status');
  402. if(status==1){
  403. layer.prompt({
  404. formType: 2,
  405. title: '请输入作废的理由',
  406. area: ['480px', '120px']
  407. }, function(value, index, elem){
  408. tool.post("/contract/api/purchase_tovoid", {id: purchase_id,void_status:status,void_remark:value}, eventCallback);
  409. layer.close(index);
  410. });
  411. }
  412. else{
  413. layer.confirm('确定要反作废该合同?', {
  414. icon: 3,
  415. title: '提示'
  416. }, function(index) {
  417. tool.post("/contract/api/purchase_tovoid", {id: purchase_id,void_status:status}, eventCallback);
  418. layer.close(index);
  419. });
  420. }
  421. })
  422. }
  423. </script>
  424. {/block}
  425. <!-- /脚本 -->