datalist.html 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. {extend name="../../base/view/common/base" /}
  2. <!-- 主体 -->
  3. {block name="body"}
  4. <div class="p-page">
  5. <form class="layui-form gg-form-bar border-t border-x" lay-filter="barsearchform">
  6. <div class="layui-input-inline" style="width:100px">
  7. <select name="status">
  8. <option value="">合同状态</option>
  9. {volist name="$status" id="vo"}
  10. {gt name="$key" value="0"}
  11. <option value="{$key}">{$vo}</option>
  12. {/gt}
  13. {/volist}
  14. </select>
  15. </div>
  16. <div class="layui-input-inline" style="width:100px">
  17. <select name="cate">
  18. <option value="">合同类别</option>
  19. {volist name="$cate" id="vo"}
  20. <option value="{$vo.id}">{$vo.title}</option>
  21. {/volist}
  22. </select>
  23. </div>
  24. <div class="layui-input-inline" style="width:100px">
  25. <select name="types">
  26. <option value="">合同类型</option>
  27. {volist name="$types" id="vo"}
  28. {gt name="$key" value="0"}
  29. <option value="{$key}">{$vo}</option>
  30. {/gt}
  31. {/volist}
  32. </select>
  33. </div>
  34. <div class="layui-input-inline" style="width:100px">
  35. <select name="properties">
  36. <option value="">合同属性</option>
  37. {volist name="$properties" id="vo"}
  38. {gt name="$key" value="0"}
  39. <option value="{$key}">{$vo}</option>
  40. {/gt}
  41. {/volist}
  42. </select>
  43. </div>
  44. <div class="layui-input-inline" style="width:80px">
  45. <input type="text" name="uname" placeholder="签订员工" class="layui-input picker-admin" value="" readonly>
  46. <input type="text" name="uid" value="" style="display:none;">
  47. </div>
  48. <div class="layui-input-inline" style="width:292px;">
  49. <input type="text" class="layui-input" id="diff_time" placeholder="签订日期" readonly name="diff_time">
  50. </div>
  51. <div class="layui-input-inline" style="width:150px;">
  52. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
  53. <button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
  54. </div>
  55. </form>
  56. <table class="layui-hide" id="table_laborcontract" lay-filter="table_laborcontract"></table>
  57. </div>
  58. <script type="text/html" id="toolbarDemo">
  59. <div class="layui-btn-container">
  60. <button class="layui-btn layui-btn-sm" lay-event="add">
  61. <span>+ 添加合同</span>
  62. <i class="layui-icon layui-icon-down layui-font-12"></i>
  63. </button>
  64. </div>
  65. </script>
  66. {/block}
  67. <!-- /主体 -->
  68. <!-- 脚本 -->
  69. {block name="script"}
  70. <script>
  71. const contract_cate = {:json_encode($cate,JSON_UNESCAPED_UNICODE)};
  72. const moduleInit = ['tool','oaPicker','tablePlus','laydatePlus'];
  73. function gouguInit() {
  74. var table = layui.tablePlus, tool = layui.tool, laydatePlus = layui.laydatePlus,dropdown = layui.dropdown;
  75. var diff_time = new laydatePlus({'target':'diff_time'});
  76. layui.pageTable = table.render({
  77. elem: "#table_laborcontract"
  78. , toolbar: "#toolbarDemo"
  79. ,url: "/user/laborcontract/datalist"
  80. ,page: true
  81. ,limit: 20
  82. ,cellMinWidth: 80
  83. ,height: 'full-114'
  84. ,cols: [[
  85. {field:'id',width:80, title: 'ID号', align:'center'}
  86. ,{field:'status',title: '合同状态',width:90, align:'center',templet: function(d){
  87. if(d.status==1){
  88. return '<span class="green">『'+d.status_str+'』</span>';
  89. }
  90. else if(d.status==2){
  91. return '<span class="yellow">『'+d.status_str+'』</span>';
  92. }
  93. else if(d.status==3){
  94. return '<span class="red">『'+d.status_str+'』</span>';
  95. }
  96. else{
  97. return '-';
  98. }
  99. }}
  100. ,{field:'user_name',title: '员工',width:90, align:'center'}
  101. ,{field:'title',title: '合同名称',minWidth:240}
  102. ,{field:'cate_str',title: '合同类型',width:90, align:'center'}
  103. ,{field:'types_str',title: '合同属性',width:90, align:'center'}
  104. ,{field:'enterprise',title: '签约主体公司',width:200}
  105. ,{field:'sign_time',title: '签订日期',width:90, align:'center'}
  106. ,{field:'diff_time',title: '合同有效期间',width:200, align:'center'}
  107. ,{field:'renewal',title: '续签状态',width:80, align:'center',templet: function(d){
  108. if(d.renewal>0){
  109. return '<span class="red">已续签</span>';
  110. }
  111. else{
  112. return '<span class="green">未续签</span>';
  113. }
  114. }}
  115. ,{field:'change',title: '变更状态',width:80, align:'center',templet: function(d){
  116. if(d.change>0){
  117. return '<span class="red">已变更</span>';
  118. }
  119. else{
  120. return '<span class="green">未变更</span>';
  121. }
  122. }}
  123. ,{field:'admin_name',title: '创建人',width:90,align:'center'}
  124. ,{field:'create_time', title: '创建时间',width:150,align:'center'}
  125. ,{width:120,fixed:'right',title: '操作', align:'center',templet: function(d){
  126. var html='';
  127. var btn1='<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详细</a>';
  128. var btn2='<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>';
  129. var btn3='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
  130. html = '<div class="layui-btn-group">'+btn1+btn2+btn3+'</div>';
  131. return html;
  132. }}
  133. ]]
  134. });
  135. //表头工具栏事件
  136. table.on('toolbar(table_laborcontract)', function(obj){
  137. var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
  138. var data = checkStatus.data;
  139. var that = this;
  140. if (obj.event === 'add'){
  141. dropdown.render({
  142. elem: that,
  143. show: true, // 外部事件触发即显示
  144. data: contract_cate,
  145. click: function(obj){
  146. tool.side("/user/laborcontract/add?cate_id="+obj.id);
  147. }
  148. });
  149. return;
  150. }
  151. });
  152. table.on('tool(table_laborcontract)',function (obj) {
  153. let data=obj.data
  154. if (obj.event === 'view') {
  155. tool.side("/user/laborcontract/view?id="+data.id);
  156. return;
  157. }
  158. if (obj.event === 'edit') {
  159. if(data.renewal>0 || data.change>0){
  160. layer.msg('已续签或者已变更的合同不支持编辑,如需[编辑]请先删除续签或者变更的合同');
  161. return false;
  162. }
  163. tool.side("/user/laborcontract/add?id="+data.id);
  164. return;
  165. }
  166. if (obj.event === 'del') {
  167. if(data.renewal>0 || data.change>0){
  168. layer.msg('已续签或者已变更的合同不支持删除,如需[删除]请先删除续签或者变更的合同');
  169. return false;
  170. }
  171. layer.confirm('确定要删除该员工合同吗?', { icon: 3, title: '提示' }, function (index) {
  172. let callback = function (e) {
  173. layer.msg(e.msg);
  174. if (e.code == 0) {
  175. layui.pageTable.reload();
  176. }
  177. }
  178. tool.delete("/user/laborcontract/del", { id: data.id }, callback);
  179. layer.close(index);
  180. });
  181. }
  182. });
  183. }
  184. </script>
  185. {/block}
  186. <!-- /脚本 -->