add.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. {extend name="../../base/view/common/base" /}
  2. <!-- 主体 -->
  3. {block name="body"}
  4. <form class="layui-form p-page" lay-filter="form-outs">
  5. <h3 class="pb-2">外出</h3>
  6. <table class="layui-table layui-table-form">
  7. <tr>
  8. <td class="layui-td-gray-2">开始时间<font>*</font></td>
  9. <td><input name="start_date" class="layui-input tool-time" value="{$detail.start_date|default=''}" readonly lay-verify="required" placeholder="请选择开始时间" lay-reqText="请选择开始时间" data-type="datetime" data-format="yyyy-MM-dd HH:mm"></td>
  10. <td class="layui-td-gray">结束时间<font>*</font></td>
  11. <td><input name="end_date" class="layui-input tool-time" value="{$detail.end_date|default=''}" readonly lay-verify="required" placeholder="请选择结束时间" lay-reqText="请选择结束时间" data-type="datetime" data-format="yyyy-MM-dd HH:mm"></td>
  12. <td class="layui-td-gray">外出天数<font>*</font></td>
  13. <td><input name="duration" class="layui-input" value="{$detail.duration|default=''}" lay-verify="required|number" placeholder="请输入外出天数" lay-reqText="请输入外出天数"></td>
  14. </tr>
  15. <tr>
  16. <td class="layui-td-gray">外出事由<font>*</font></td>
  17. <td colspan="5">
  18. <textarea name="reason" placeholder="请输入外出事由" class="layui-textarea" lay-verify="required" lay-reqText="请输入外出事由">{$detail.reason|default=''}</textarea>
  19. </td>
  20. </tr>
  21. <tr>
  22. <td class="layui-td-gray">附件 <button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button></td>
  23. <td colspan="5">
  24. <div class="layui-row" id="uploadBox">
  25. <input data-type="file" type="hidden" name="file_ids" value="{$detail.file_ids|default=''}">
  26. {notempty name="$detail.file_ids"}
  27. {volist name="$detail.file_array" id="vo"}
  28. <div class="layui-col-md4">{:file_card($vo)}</div>
  29. {/volist}
  30. {/notempty}
  31. </div>
  32. </td>
  33. </tr>
  34. </table>
  35. <div id="checkBox" data-status="{$detail.check_status|default=0}" data-id="{$detail.id|default=0}" data-checkflowid="{$detail.check_flow_id|default=0}" class="pt-3"></div>
  36. <div class="pt-4">
  37. <input type="hidden" name="id" value="{$detail.id|default=0}">
  38. <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
  39. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  40. </div>
  41. </form>
  42. {/block}
  43. <!-- /主体 -->
  44. <!-- 脚本 -->
  45. {block name="script"}
  46. <script>
  47. /*
  48. * 时长计算
  49. */
  50. function daysBetweenDates(date1, date2) {
  51. if(date1=='' || date2==''){
  52. return -1;
  53. }
  54. var startDate = new Date(date1);
  55. var endDate = new Date(date2);
  56. var millisecondsPerDay = 24 * 60 * 60 * 1000;
  57. var differenceInMilliseconds = endDate - startDate;
  58. var differenceInDays = differenceInMilliseconds / millisecondsPerDay;
  59. return Math.round(differenceInDays);
  60. }
  61. const moduleInit = ['tool','uploadPlus','oaCheck'];
  62. function gouguInit() {
  63. var form = layui.form,tool=layui.tool,uploadPlus=layui.uploadPlus,laydate = layui.laydate,oaCheck=layui.oaCheck;
  64. oaCheck.init({
  65. check_name:'outs',
  66. check_btn:0
  67. });
  68. var fileUp = new uploadPlus();
  69. //监听提交
  70. form.on('submit(webform)', function (data) {
  71. if(data.field.duration==0){
  72. layer.msg('外出时间选择有误');
  73. return false;
  74. }
  75. let callback = function (e) {
  76. layer.msg(e.msg);
  77. if (e.code == 0) {
  78. let checkCallback = function (e) {
  79. layer.msg(e.msg);
  80. if (e.code == 0) {
  81. tool.sideClose(1000);
  82. }
  83. }
  84. data.field.check_name = 'outs';
  85. data.field.action_id = e.data.return_id;
  86. oaCheck.submit(data.field,checkCallback);
  87. }
  88. }
  89. let clickbtn = $(this);
  90. tool.post("/home/outs/add", data.field, callback,clickbtn);
  91. return false;
  92. });
  93. function countDuration(){
  94. var date1 = $('#start_date').val();
  95. var date2 = $('#end_date').val();
  96. let days = daysBetweenDates(date1,date2);
  97. if(days < 0){
  98. $('#duration').val(0);
  99. $('#days').html('-');
  100. }
  101. else{
  102. let formData = form.val('form-outs');
  103. console.log(formData);
  104. if(formData.start_span==1){
  105. days=days+1;
  106. }
  107. if(formData.start_span==2){
  108. days=days+0.5;
  109. }
  110. if(formData.end_span==1){
  111. days=days-0.5;
  112. }
  113. if(days<0){
  114. days=0;
  115. }
  116. $('#duration').val(days);
  117. $('#days').html(days);
  118. }
  119. }
  120. //日期时间范围
  121. lay('.select-time').each(function () {
  122. laydate.render({
  123. elem: this,
  124. trigger: 'click',
  125. done:function(){
  126. countDuration();
  127. }
  128. });
  129. });
  130. form.on('radio(start-span)',function(data){
  131. countDuration();
  132. });
  133. form.on('radio(end-span)',function(data){
  134. countDuration();
  135. });
  136. }
  137. </script>
  138. {/block}
  139. <!-- /脚本 -->