8852edfa07f1e4baea36575e81b549fb.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414
  1. <?php /*a:2:{s:68:"D:\phpstudy_pro\WWW\caiping\app\admin\view\contract\index\index.html";i:1723541257;s:59:"D:\phpstudy_pro\WWW\caiping\app\admin\view\common\base.html";i:1723541257;}*/ ?>
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="360-site-verification" content="a7c876fae8b6e3175a52ea9f19543f51" />
  9. <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=0">
  10. <script src="/static/dist/xm-select.js"></script>
  11. <link rel="mobile-prefetch" href=""/>
  12. <title><?php echo get_system_config('web','admin_title'); ?></title>
  13. <meta name="keywords" content="<?php echo get_system_config('web','keywords'); ?>"/>
  14. <meta name="description" content="<?php echo get_system_config('web','desc'); ?>"/>
  15. <link rel="stylesheet" href="/static/assets/gougu/css/gougu.css?v=<?php echo get_system_config('web','version'); ?>" media="all">
  16. <style>
  17. .footer{
  18. width: 100%;
  19. height: 25px;
  20. text-align: center;
  21. position: fixed;
  22. bottom: 0;
  23. }
  24. </style>
  25. </head>
  26. <body class="main-body">
  27. <!-- 主体 -->
  28. <div class="p-3">
  29. <form class="layui-form gg-form-bar border-x border-t" lay-filter="barsearchform">
  30. <div class="layui-input-inline" style="width:150px;">
  31. <select name="cate_id">
  32. <option value="">请选择合同类别</option>
  33. <?php if(is_array($cate) || $cate instanceof \think\Collection || $cate instanceof \think\Paginator): $i = 0; $__LIST__ = $cate;if( count($__LIST__)==0 ) : echo "" ;else: foreach($__LIST__ as $key=>$v): $mod = ($i % 2 );++$i;?>
  34. <option value="<?php echo htmlentities($v['id']); ?>"><?php echo htmlentities($v['title']); ?></option>
  35. <?php endforeach; endif; else: echo "" ;endif; ?>
  36. </select>
  37. </div>
  38. <div class="layui-input-inline" style="width:150px;">
  39. <select name="type">
  40. <option value="">请选择合同性质</option>
  41. <option value="1">普通合同</option>
  42. <option value="2">框架合同</option>
  43. <option value="3">补充协议</option>
  44. <option value="4">其他合同</option>
  45. </select>
  46. </div>
  47. <div class="layui-input-inline" style="width:150px;">
  48. <select name="check_status">
  49. <option value="">请选择合同状态</option>
  50. <option value="0">待审核</option>
  51. <option value="1">审核中</option>
  52. <option value="2">审核通过</option>
  53. <option value="3">审核拒绝</option>
  54. <option value="4">已撤销</option>
  55. <option value="5">已中止</option>
  56. <option value="6">已作废</option>
  57. </select>
  58. </div>
  59. <div class="layui-input-inline" style="width:240px;">
  60. <input type="text" name="keywords" placeholder="输入关键字" class="layui-input" autocomplete="off" />
  61. </div>
  62. <div class="layui-input-inline" style="width:150px;">
  63. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
  64. <button type="reset" class="layui-btn layui-btn-reset" lay-filter="reset">清空</button>
  65. </div>
  66. </form>
  67. <table class="layui-hide" id="test" lay-filter="test"></table>
  68. </div>
  69. <script type="text/html" id="toolbarDemo">
  70. <div class="layui-btn-container">
  71. <span class="layui-btn layui-btn-sm" title="添加合同" lay-event="add">+ 添加合同</span>
  72. </div>
  73. </script>
  74. <!-- /主体 -->
  75. <!-- 底部 -->
  76. <div class="footer">
  77. 逸管工程项目管理系统 © www.yiguanfep.com
  78. <img src="/static/home/images/police.png" alt="" style="width:14.5px;height:16px;">
  79. <a href="https://beian.mps.gov.cn/#/query/websearch?code=45030202000160 " rel="\&quot;noreferrer'target=\”blank\&quot;" onclick="window.open(this.href); return false;">桂公网安备45030202000160号</a>
  80. <a href="https://beian.miit.gov.cn/#/Integrated/index" onclick="window.open(this.href); return false;">桂ICP备17000971号</a>
  81. </div>
  82. <!-- /底部 -->
  83. <!-- 脚本 -->
  84. <script>
  85. const moduleInit = ['tool'];
  86. function gouguInit() {
  87. var table = layui.table, tool = layui.tool ,form = layui.form;
  88. var dataLength = 0;//定义一个被减去的长度,0
  89. layui.pageTable = table.render({
  90. elem: '#test',
  91. id:"demo",
  92. title: '合同列表',
  93. toolbar: '#toolbarDemo',
  94. defaultToolbar:['filter', {title:'导出EXCEL',layEvent: 'LAYTABLE_EXCEL',icon: 'layui-icon-export'}],
  95. url: "/admin/contract.index/index", //数据接口
  96. cellMinWidth: 80,
  97. page: true, //开启分页
  98. limit: 20,
  99. cols: [
  100. [ //表头
  101. {
  102. field: 'numbers',
  103. title: '编号',
  104. align: 'center',
  105. width: 80,
  106. // type:"numbers",
  107. templet: function(d){
  108. //获取当前数据的长度,减去dataLength
  109. const ccc = table.cache['demo'].length - dataLength;
  110. //减去dataLength加1
  111. dataLength++
  112. return ccc;
  113. }
  114. },{ field: 'check_status', title: '状态', align: 'center', width: 80, templet: function (d) {
  115. var html = '<span class="layui-btn layui-btn-xs layui-bg-' + d.check_status + '">' + d.status_name + '</span>';
  116. return html;
  117. }
  118. },{
  119. field: 'code',
  120. title: '合同编号',
  121. width: 160
  122. },{
  123. field: 'name',
  124. title: '合同名称',
  125. minWidth:240,
  126. templet: '<div><a data-href="/admin/contract.index/view?id={{d.id}}" class="side-a">{{d.name}}</a></div>'
  127. }, {
  128. field: 'cate_title',
  129. title: '合同类别',
  130. align: 'center',
  131. width: 100
  132. }, {
  133. field: 'type_name',
  134. title: '合同性质',
  135. align: 'center',
  136. width: 80,
  137. templet: function (d) {
  138. var html = '<span class="layui-color-' + d.type_a + '">' + d.type_name + '</span>';
  139. return html;
  140. }
  141. },{
  142. field: 'interval_time',
  143. title: '合同有效时间',
  144. align: 'center',
  145. width: 248,
  146. templet: function (d) {
  147. var html = d.interval_time;
  148. if (d.delay > 0 && d.delay < 30) {
  149. html += '<span class="red ml-1" style="font-size:12px;">' + d.delay + '天后到期</span>';
  150. }
  151. if (d.delay == 0) {
  152. html += '<span class="red ml-1" style="font-size:12px;">已过期</span>';
  153. }
  154. return html;
  155. }
  156. },{
  157. field: 'cost',
  158. title: '合同金额(元)',
  159. align: 'right',
  160. align: 'center',
  161. width: 200
  162. }, {
  163. field: 'sign_name',
  164. title: '签定人',
  165. align: 'center',
  166. width: 200
  167. },{
  168. field: 'keeper_name',
  169. title: '保管人',
  170. align: 'center',
  171. width: 200
  172. }, {
  173. field: 'sign_time',
  174. title: '签订时间',
  175. align: 'center',
  176. width: 200
  177. }, {
  178. field: 'right',
  179. fixed:'right',
  180. title: '操作',
  181. width: 100,
  182. align: 'center',
  183. templet: function (d) {
  184. var html = '<div class="layui-btn-group">';
  185. var btn0='<span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</span>';
  186. var btn1='<span class="layui-btn layui-btn-xs" lay-event="edit">编辑</span>';
  187. var btn2='<span class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</span>';
  188. if(d.check_status==0 || d.check_status==4){
  189. return html+btn1+btn2+'</div>';
  190. }
  191. else{
  192. return btn0;
  193. }
  194. }
  195. }
  196. ]
  197. ],
  198. done:function () {
  199. dataLength = 0;
  200. }
  201. });
  202. //表头工具栏事件
  203. table.on('toolbar(test)', function(obj){
  204. if (obj.event === 'add') {
  205. selectType();
  206. return;
  207. }
  208. if(obj.event === 'LAYTABLE_EXCEL'){
  209. var formSelect = form.val('barsearchform');
  210. formSelect.limit=99999;
  211. $.ajax({
  212. url: '/admin/contract.index/index',
  213. data: formSelect,
  214. success:function(res){
  215. table.exportFile('test', res.data,'xls');
  216. }
  217. });
  218. return;
  219. }
  220. });
  221. //监听行工具事件
  222. table.on('tool(test)', function(obj) {
  223. var data = obj.data;
  224. if(obj.event === 'view'){
  225. tool.side('/admin/contract.index/view?id='+data.id);
  226. return;
  227. }
  228. if(obj.event === 'edit'){
  229. tool.side('/admin/contract.index/edit?id='+data.id);
  230. return;
  231. }
  232. if (obj.event === 'del') {
  233. layer.confirm('确定要删除吗?', {
  234. icon: 3,
  235. title: '提示'
  236. }, function(index) {
  237. let callback = function (e) {
  238. layer.msg(e.msg);
  239. if (e.code == 0) {
  240. obj.del();
  241. }
  242. }
  243. tool.delete("/admin/contract.index/delete", {id: data.id}, callback);
  244. layer.close(index);
  245. });
  246. }
  247. });
  248. //选择合同性质
  249. var table_a;
  250. function selectType() {
  251. layer.open({
  252. title: '选择合同性质',
  253. type:1,
  254. area: ['480px', '336px'],
  255. content: '<div class="picker-table"><div id="boxselect"></div></div>',
  256. success: function() {
  257. table_a = table.render({
  258. elem: '#boxselect',
  259. cols: [
  260. [{
  261. type: 'radio',
  262. title: '选择',
  263. width: 100
  264. }, {
  265. field: 'title',
  266. title: '名称'
  267. }]
  268. ],
  269. data: [{
  270. "type": "1",
  271. "title": "普通合同"
  272. },{
  273. "type": "2",
  274. "title": "框架合同"
  275. }, {
  276. "type": "3",
  277. "title": "补充协议"
  278. }, {
  279. "type": "4",
  280. "title": "其他合同"
  281. }]
  282. });
  283. },
  284. btn:['确定'],
  285. yes: function(index) {
  286. var checkStatus = table.checkStatus(table_a.config.id);
  287. var data = checkStatus.data;
  288. console.log(checkStatus,data);
  289. if (data.length > 0) {
  290. if(data[0].type == 3){
  291. selectCharge(data[0].type);
  292. }
  293. else{
  294. tool.side("/admin/contract.index/add?type="+data[0].type);
  295. }
  296. layer.close(index);
  297. }
  298. else{
  299. layer.msg('选择合同性质');
  300. }
  301. }
  302. })
  303. }
  304. //选择母合同
  305. var table_b;
  306. function selectCharge(type){
  307. layer.open({
  308. title:'选择母合同',
  309. area:['680px','580px'],
  310. type:1,
  311. content:'<div class="picker-table">\
  312. <form class="layui-form pb-2">\
  313. <div class="layui-input-inline" style="width:500px;">\
  314. <input type="text" name="keywords" placeholder="合同名称" class="layui-input" autocomplete="off" />\
  315. </div>\
  316. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="search_form">提交搜索</button>\
  317. </form>\
  318. <div id="boxcontract"></div></div>',
  319. success:function(){
  320. table_b=table.render({
  321. elem: '#boxcontract'
  322. ,url:'/admin/contract.api/get_contract'
  323. ,page: true //开启分页
  324. ,limit: 10
  325. ,cols: [[
  326. {type:'radio',title: '选择'}
  327. ,{field:'name', title: '合同名称'}
  328. ,{field:'sign_name', width:90, title: '签约人',align:'center'}
  329. ,{field:'sign_time', width:110, title: '签约日期',align:'center'}
  330. ]]
  331. });
  332. //搜索提交
  333. form.on('submit(search_form)', function(data){
  334. table_b.reload({where:{keywords:data.field.keywords},page:{curr:1}});
  335. return false;
  336. });
  337. },
  338. btn: ['确定'],
  339. yes: function(index){
  340. var checkStatus = table.checkStatus(table_b.config.id);
  341. var data = checkStatus.data;
  342. if(data.length>0){
  343. tool.side("/admin/contract.index/add?type="+type+"&pid="+data[0].id);
  344. layer.close(index);
  345. }else{
  346. layer.msg('请先选择合同');
  347. return false;
  348. }
  349. }
  350. })
  351. }
  352. //监听搜索提交
  353. form.on('submit(webform)', function(data) {
  354. layui.pageTable.reload({
  355. where: {
  356. keywords: data.field.keywords,
  357. cate_id: data.field.cate_id,
  358. type: data.field.type,
  359. check_status: data.field.check_status
  360. },
  361. page: {
  362. curr: 1
  363. }
  364. });
  365. return false;
  366. });
  367. }
  368. </script>
  369. <!-- /脚本 -->
  370. <!-- <script src="/static/assets/layui/layui.js"></script> -->
  371. <script src="/static/assets/layui/layui.js"></script>
  372. <script src="/static/assets/third_party/echart/echarts.min.js"></script>
  373. <script src="/static/assets/gougu/gouguInit.js"></script>
  374. <script src="https://unpkg.com/pinyin-pro"></script>
  375. <script>
  376. var { pinyin } = pinyinPro;
  377. </script>
  378. <!-- 统计代码 -->
  379. <!-- /统计代码 -->
  380. </body>
  381. </html>