优化:审批日期选择操作优化,工时计算优化。
This commit is contained in:
parent
307d2ec30a
commit
3bdfe60443
@ -35,7 +35,7 @@
|
||||
,cols: [[
|
||||
{field:'id',width:80, title: 'ID号', align:'center'}
|
||||
,{field: 'sort', title: '排序',align:'center', width:80}
|
||||
,{field:'title', edit:'text',width:240, title: '分类名称'}
|
||||
,{field:'title', width:240, title: '分类名称'}
|
||||
,{field:'pid', title: '父级ID', width:80, align:'center'}
|
||||
,{field:'desc', title: '描述', }
|
||||
,{width:160,title: '操作', align:'center',templet: function(d){
|
||||
|
@ -399,8 +399,8 @@ class Approve extends BaseController
|
||||
$detail['end_time_b'] = date('H:i',$detail['end_time']);
|
||||
$detail['detail_time'] = date('Y-m-d',$detail['detail_time']);
|
||||
|
||||
$detail['days'] = floor($detail['duration']*10/75);
|
||||
$detail['hours'] = (($detail['duration']*10)%75)/10;
|
||||
$detail['days'] = floor($detail['duration']*10/80);
|
||||
$detail['hours'] = (($detail['duration']*10)%80)/10;
|
||||
$type = $detail['type'];
|
||||
if($detail['file_ids'] !=''){
|
||||
$fileArray = Db::name('File')->where('id','in',$detail['file_ids'])->select();
|
||||
@ -446,8 +446,8 @@ class Approve extends BaseController
|
||||
$detail['detail_time'] = date('Y-m-d',$detail['detail_time']);
|
||||
}
|
||||
|
||||
$detail['days'] = floor($detail['duration']*10/75);
|
||||
$detail['hours'] = (($detail['duration']*10)%75)/10;
|
||||
$detail['days'] = floor($detail['duration']*10/80);
|
||||
$detail['hours'] = (($detail['duration']*10)%80)/10;
|
||||
|
||||
$detail['create_user'] = Db::name('Admin')->where('id',$detail['admin_id'])->value('name');
|
||||
$flows = Db::name('FlowStep')->where(['action_id'=>$detail['id'],'type'=>1,'sort'=>$detail['check_step_sort'],'delete_time'=>0])->find();
|
||||
|
@ -9,35 +9,29 @@
|
||||
{eq name="$id" value="0"}
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">开始时间<font>*</font></td>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">出差地点<font>*</font></td>
|
||||
<td colspan="5"><input type="text" name="address" value="" autocomplete="off" placeholder="请输入出差地点" lay-verify="required" lay-reqText="请输入出差地点" class="layui-input"></td>
|
||||
<td colspan="3"><input type="text" name="address" value="" autocomplete="off" placeholder="请输入出差地点" lay-verify="required" lay-reqText="请输入出差地点" class="layui-input"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">出差事由<font>*</font></td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<textarea name="content" placeholder="请输入出差事由" class="layui-textarea" lay-verify="required" lay-reqText="请输入出差事由"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="upFile"><i class="layui-icon"></i></button></div></td>
|
||||
<td colspan="5" style="line-height:inherit">
|
||||
<td colspan="3" style="line-height:inherit">
|
||||
<div class="layui-row" id="fileList">
|
||||
<input type="hidden" data-type="file" name="file_ids" value="">
|
||||
</div>
|
||||
@ -47,35 +41,29 @@
|
||||
{else/}
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">开始时间<font>*</font></td>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" readonly class="layui-input select-time" value="{$detail.start_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.start_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="{$detail.start_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" readonly class="layui-input select-time" value="{$detail.end_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="{$detail.duration}">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.end_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="{$detail.end_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">出差地点<font>*</font></td>
|
||||
<td colspan="5"><input type="text" name="address" value="{$detail.address}" autocomplete="off" placeholder="请输入出差地点" lay-verify="required" lay-reqText="请输入出差地点" class="layui-input"></td>
|
||||
<td colspan="3"><input type="text" name="address" value="{$detail.address}" autocomplete="off" placeholder="请输入出差地点" lay-verify="required" lay-reqText="请输入出差地点" class="layui-input"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">出差事由<font>*</font></td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<textarea name="content" placeholder="请输入出差事由" class="layui-textarea" lay-verify="required" lay-reqText="请输入出差事由">{$detail.content}</textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="upFile"><i class="layui-icon"></i></button></div></td>
|
||||
<td colspan="5" style="line-height:inherit">
|
||||
<td colspan="3" style="line-height:inherit">
|
||||
<div class="layui-row" id="fileList">
|
||||
<input type="hidden" name="file_ids" data-type="file" value="{$detail.file_ids}">
|
||||
{notempty name="$detail.file_ids"}
|
||||
@ -102,44 +90,20 @@ const moduleInit = ['tool','employeepicker','oaTool'];
|
||||
tool=layui.tool,
|
||||
oaTool=layui.oaTool,
|
||||
laydate = layui.laydate;
|
||||
|
||||
oaTool.addFile({
|
||||
btn: 'upFile',
|
||||
box: 'fileList'
|
||||
});
|
||||
//日期时间范围
|
||||
lay('.select-time').each(function () {
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click'
|
||||
trigger: 'click',
|
||||
fullPanel:true,
|
||||
type:'datetime'
|
||||
});
|
||||
});
|
||||
|
||||
//选择具体时间
|
||||
lay('.select-datetime').each(function () {
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click',
|
||||
type: 'time',
|
||||
format: 'HH:mm',
|
||||
btns: ['clear', 'confirm'],
|
||||
ready: function (date) {
|
||||
var dom = $(".laydate-time-list").children("li");
|
||||
for (var i = 0; i < dom.length; i++) {
|
||||
if (i == 2 || i == 5) {
|
||||
$(dom[i]).remove();
|
||||
} else if(i==1||i==4) {
|
||||
var li = $(dom[i]).children("ol").children("li")
|
||||
for (var j = 0; j < li.length; j++) {
|
||||
if ($(li[j]).text() != 00 && $(li[j]).text()!=30) {
|
||||
$(li[j]).remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
});
|
||||
oaTool.addFile({
|
||||
btn: 'upFile',
|
||||
box: 'fileList'
|
||||
});
|
||||
|
||||
if (typeof (flowStep) == "function") {
|
||||
flowStep();
|
||||
|
@ -20,23 +20,17 @@
|
||||
</td>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">备注</td>
|
||||
<td colspan="7">
|
||||
<td colspan="5">
|
||||
<textarea name="remark" placeholder="请输入备注信息" class="layui-textarea"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
@ -55,23 +49,17 @@
|
||||
</td>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" class="layui-input select-time" value="{$detail.start_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.start_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="{$detail.start_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" class="layui-input select-time" value="{$detail.end_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="{$detail.duration}">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.end_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="{$detail.end_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">备注</td>
|
||||
<td colspan="7">
|
||||
<td colspan="5">
|
||||
<textarea name="remark" placeholder="请输入备注" class="layui-textarea">{$detail.remark}</textarea>
|
||||
</td>
|
||||
</tr>
|
||||
@ -92,46 +80,14 @@ const moduleInit = ['tool','employeepicker'];
|
||||
flowStep();
|
||||
}
|
||||
//日期时间范围
|
||||
laydate.render({
|
||||
elem: '#start_time_a',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
showBottom: false
|
||||
});
|
||||
|
||||
//日期时间范围
|
||||
laydate.render({
|
||||
elem: '#end_time_a',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
showBottom: false
|
||||
});
|
||||
|
||||
//选择具体时间
|
||||
lay('.select-datetime').each(function () {
|
||||
lay('.select-time').each(function () {
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click',
|
||||
type: 'time',
|
||||
format: 'HH:mm',
|
||||
btns: ['clear', 'confirm'],
|
||||
ready: function (date) {
|
||||
var dom = $(".laydate-time-list").children("li");
|
||||
for (var i = 0; i < dom.length; i++) {
|
||||
if (i == 2 || i == 5) {
|
||||
$(dom[i]).remove();
|
||||
} else if(i==1||i==4) {
|
||||
var li = $(dom[i]).children("ol").children("li")
|
||||
for (var j = 0; j < li.length; j++) {
|
||||
if ($(li[j]).text() != 00 && $(li[j]).text()!=30) {
|
||||
$(li[j]).remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fullPanel:true,
|
||||
type:'datetime'
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
|
@ -10,42 +10,36 @@
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">活动名称<font>*</font></td>
|
||||
<td colspan="2"><input type="text" name="name" value="" autocomplete="off" placeholder="请输入活动名称" lay-verify="required" lay-reqText="请输入活动名称" class="layui-input"></td>
|
||||
<td><input type="text" name="name" value="" autocomplete="off" placeholder="请输入活动名称" lay-verify="required" lay-reqText="请输入活动名称" class="layui-input"></td>
|
||||
<td class="layui-td-gray">活动预算<font>*</font></td>
|
||||
<td colspan="2"><input type="text" name="amount" value="" autocomplete="off" placeholder="请输入活动预算金额" lay-verify="required|number" lay-reqText="请输入活动预算金额" class="layui-input"></td>
|
||||
<td><input type="text" name="amount" value="" autocomplete="off" placeholder="请输入活动预算金额" lay-verify="required|number" lay-reqText="请输入活动预算金额" class="layui-input"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">活动说明<font>*</font></td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<textarea name="content" placeholder="请输入活动说明" class="layui-textarea" lay-verify="required" lay-reqText="请输入活动说明" ></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">备注</td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<textarea name="remark" placeholder="请输入备注信息" class="layui-textarea"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="upFile"><i class="layui-icon"></i></button></div></td>
|
||||
<td colspan="5" style="line-height:inherit">
|
||||
<td colspan="3" style="line-height:inherit">
|
||||
<div class="layui-row" id="fileList">
|
||||
<input type="hidden" data-type="file" name="file_ids" value="">
|
||||
</div>
|
||||
@ -56,9 +50,9 @@
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">活动名称<font>*</font></td>
|
||||
<td colspan="2"><input type="text" name="name" value="{$detail.name}" autocomplete="off" placeholder="请输入活动名称" lay-verify="required" lay-reqText="请输入活动名称" class="layui-input"></td>
|
||||
<td><input type="text" name="name" value="{$detail.name}" autocomplete="off" placeholder="请输入活动名称" lay-verify="required" lay-reqText="请输入活动名称" class="layui-input"></td>
|
||||
<td class="layui-td-gray">活动预算<font>*</font></td>
|
||||
<td colspan="2"><input type="text" name="amount" value="{$detail.amount}" autocomplete="off" placeholder="请输入活动预算金额" lay-verify="required|number" lay-reqText="请输入活动预算金额" class="layui-input"></td>
|
||||
<td><input type="text" name="amount" value="{$detail.amount}" autocomplete="off" placeholder="请输入活动预算金额" lay-verify="required|number" lay-reqText="请输入活动预算金额" class="layui-input"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">活动说明<font>*</font></td>
|
||||
@ -69,29 +63,23 @@
|
||||
<tr>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" class="layui-input select-time" value="{$detail.start_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.start_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="{$detail.start_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" class="layui-input select-time" value="{$detail.end_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="{$detail.duration}">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.end_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="{$detail.end_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">备注</td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<textarea name="remark" placeholder="请输入备注" class="layui-textarea">{$detail.remark}</textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="upFile"><i class="layui-icon"></i></button></div></td>
|
||||
<td colspan="5" style="line-height:inherit">
|
||||
<td colspan="3" style="line-height:inherit">
|
||||
<div class="layui-row" id="fileList">
|
||||
<input type="hidden" name="file_ids" data-type="file" value="{$detail.file_ids}">
|
||||
{notempty name="$detail.file_ids"}
|
||||
@ -127,46 +115,14 @@ const moduleInit = ['tool','employeepicker','oaTool'];
|
||||
flowStep();
|
||||
}
|
||||
//日期时间范围
|
||||
laydate.render({
|
||||
elem: '#start_time_a',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
showBottom: false
|
||||
});
|
||||
|
||||
//日期时间范围
|
||||
laydate.render({
|
||||
elem: '#end_time_a',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
showBottom: false
|
||||
});
|
||||
|
||||
//选择具体时间
|
||||
lay('.select-datetime').each(function () {
|
||||
lay('.select-time').each(function () {
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click',
|
||||
type: 'time',
|
||||
format: 'HH:mm',
|
||||
btns: ['clear', 'confirm'],
|
||||
ready: function (date) {
|
||||
var dom = $(".laydate-time-list").children("li");
|
||||
for (var i = 0; i < dom.length; i++) {
|
||||
if (i == 2 || i == 5) {
|
||||
$(dom[i]).remove();
|
||||
} else if(i==1||i==4) {
|
||||
var li = $(dom[i]).children("ol").children("li")
|
||||
for (var j = 0; j < li.length; j++) {
|
||||
if ($(li[j]).text() != 00 && $(li[j]).text()!=30) {
|
||||
$(li[j]).remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fullPanel:true,
|
||||
type:'datetime'
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
|
@ -9,29 +9,23 @@
|
||||
{eq name="$id" value="0"}
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">开始时间<font>*</font></td>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">加班时长</td>
|
||||
<td colspan="5" id="duration">-</td>
|
||||
<td colspan="3" id="duration">-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">加班事由<font>*</font></td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<textarea name="content" placeholder="请输入加班事由" class="layui-textarea" lay-verify="required" lay-reqText="请输入加班事由"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
@ -39,20 +33,14 @@
|
||||
{else/}
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">开始时间<font>*</font></td>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" class="layui-input select-time" value="{$detail.start_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.start_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="{$detail.start_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" class="layui-input select-time" value="{$detail.end_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="{$detail.duration}">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.end_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="{$detail.end_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@ -79,16 +67,11 @@
|
||||
* 工时计算
|
||||
*/
|
||||
function leaveTime() {
|
||||
var data_1 = $('#start_time_a').val();
|
||||
var data_1_1 = $('#start_time_b').val();
|
||||
var data_2 = $('#end_time_a').val();
|
||||
var data_2_1 = $('#end_time_b').val();
|
||||
if(data_1=='' || data_1_1=='' || data_2=='' || data_2_1==''){
|
||||
var start_date = $('#start_time').val();
|
||||
var end_date = $('#end_time').val();
|
||||
if(start_date=='' || end_date==''){
|
||||
return 0;
|
||||
}
|
||||
|
||||
var start_date = data_1+' '+data_1_1;
|
||||
var end_date = data_2+' '+data_2_1;
|
||||
}
|
||||
var start = new Date(start_date.replace(/-/g,'/'));
|
||||
var end = new Date(end_date.replace(/-/g,'/'));
|
||||
var diff=end.getTime() - start.getTime();//时间差的毫秒数
|
||||
@ -98,7 +81,7 @@ function leaveTime() {
|
||||
//计算出小时数
|
||||
var hours=diff/(3600*1000);
|
||||
console.log(hours);
|
||||
return hours;
|
||||
return hours.toFixed(1);
|
||||
}
|
||||
|
||||
|
||||
@ -114,6 +97,8 @@ const moduleInit = ['tool','employeepicker'];
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click',
|
||||
fullPanel:true,
|
||||
type:'datetime',
|
||||
done:function(){
|
||||
var hours = leaveTime();
|
||||
if(hours == 0){
|
||||
@ -127,41 +112,6 @@ const moduleInit = ['tool','employeepicker'];
|
||||
});
|
||||
});
|
||||
|
||||
//选择具体时间
|
||||
lay('.select-datetime').each(function () {
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click',
|
||||
type: 'time',
|
||||
format: 'HH:mm',
|
||||
btns: ['clear', 'confirm'],
|
||||
ready: function (date) {
|
||||
var dom = $(".laydate-time-list").children("li");
|
||||
for (var i = 0; i < dom.length; i++) {
|
||||
if (i == 2 || i == 5) {
|
||||
$(dom[i]).remove();
|
||||
} else if(i==1||i==4) {
|
||||
var li = $(dom[i]).children("ol").children("li")
|
||||
for (var j = 0; j < li.length; j++) {
|
||||
if ($(li[j]).text() != 00 && $(li[j]).text()!=30) {
|
||||
$(li[j]).remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
done:function(){
|
||||
var hours = leaveTime();
|
||||
if(hours == 0){
|
||||
$('#duration').html('-');
|
||||
}
|
||||
else{
|
||||
$('#duration').html('共'+hours+'小时');
|
||||
}
|
||||
$('[name="duration"]').val(hours);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
|
@ -10,7 +10,7 @@
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">请假类型<font>*</font></td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<select name="detail_type" lay-verify="required" lay-reqText="请选择请假类型">
|
||||
<option value="">--请选择--</option>
|
||||
<option value="1">事假</option>
|
||||
@ -28,35 +28,29 @@
|
||||
<tr>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">请假工时</td>
|
||||
<td colspan="2" id="hours">-</td>
|
||||
<td id="hours">-</td>
|
||||
<td class="layui-td-gray">请假天数</td>
|
||||
<td colspan="2" id="days">-</td>
|
||||
<td id="days">-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">请假事由<font>*</font></td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<textarea name="content" placeholder="请输入请假事由" class="layui-textarea" lay-verify="required" lay-reqText="请输入请假事由"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="upFile"><i class="layui-icon"></i></button></div></td>
|
||||
<td colspan="5" style="line-height:inherit">
|
||||
<td colspan="3" style="line-height:inherit">
|
||||
<div class="layui-row" id="fileList">
|
||||
<input data-type="file" type="hidden" name="file_ids" value="">
|
||||
</div>
|
||||
@ -67,7 +61,7 @@
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray">请假类型<font>*</font></td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<select name="detail_type" lay-verify="required" lay-reqText="请选择请假类型">
|
||||
<option value="">--请选择--</option>
|
||||
<option value="1" {eq name="$detail.detail_type" value="1"}selected=""{/eq}>事假</option>
|
||||
@ -85,35 +79,29 @@
|
||||
<tr>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" class="layui-input select-time" value="{$detail.start_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.start_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="{$detail.start_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" class="layui-input select-time" value="{$detail.end_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="{$detail.duration}">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.end_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="{$detail.end_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">请假工时</td>
|
||||
<td colspan="2" id="hours">共{$detail.duration}工时</td>
|
||||
<td id="hours">共{$detail.duration}工时</td>
|
||||
<td class="layui-td-gray">请假天数</td>
|
||||
<td colspan="2" id="days">共{$detail.days}天,{$detail.hours}小时</td>
|
||||
<td id="days">共{$detail.days}天,{$detail.hours}小时</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">请假事由<font>*</font></td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<textarea name="content" placeholder="请输入请假事由" class="layui-textarea" lay-verify="required" lay-reqText="请输入请假事由">{$detail.content}</textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="upFile"><i class="layui-icon"></i></button></div></td>
|
||||
<td colspan="5" style="line-height:inherit">
|
||||
<td colspan="3" style="line-height:inherit">
|
||||
<div class="layui-row" id="fileList">
|
||||
<input data-type="file" type="hidden" name="file_ids" value="{$detail.file_ids}">
|
||||
{notempty name="$detail.file_ids"}
|
||||
@ -137,69 +125,49 @@
|
||||
/**
|
||||
* 工时计算
|
||||
*/
|
||||
function leaveTime() {
|
||||
var data_1 = $('#start_time_a').val();
|
||||
var data_1_1 = $('#start_time_b').val();
|
||||
var data_2 = $('#end_time_a').val();
|
||||
var data_2_1 = $('#end_time_b').val();
|
||||
if(data_1=='' || data_1_1=='' || data_2=='' || data_2_1==''){
|
||||
return 0;
|
||||
}
|
||||
const WORKDAY_HOURS = 8;
|
||||
const START_HOUR = 9;
|
||||
const END_HOUR = 18;
|
||||
const START_BREAK_HOUR = 12;
|
||||
const END_BREAK_HOUR = 13;
|
||||
const WEEKEND_DAYS = [0, 6];
|
||||
|
||||
var start_date = data_1+' '+data_1_1;
|
||||
var end_date = data_2+' '+data_2_1;
|
||||
var start = new Date(start_date.replace(/-/g,'/'));
|
||||
var end = new Date(end_date.replace(/-/g,'/'));
|
||||
var startHour = start.getHours(); //16
|
||||
var startMin = start.getMinutes();
|
||||
var endHour = end.getHours();
|
||||
var endMin = end.getMinutes();
|
||||
|
||||
var startDate = start.setHours(0, 0, 0);
|
||||
var endDate = end.setHours(0, 0, 0);
|
||||
if(endDate<startDate){
|
||||
return 0;
|
||||
}
|
||||
var dayNum = parseInt(Math.abs(endDate - startDate) / 1000 / 60 / 60 / 24);
|
||||
|
||||
var hour = 0;
|
||||
if (startDate == endDate) {
|
||||
var date = new Date(startDate);
|
||||
var week = date.getDay();
|
||||
if (week != 0 && week != 6) {
|
||||
hour= (endHour-startHour)*10-startMin/6+endMin/6;
|
||||
if (startHour <= 12 && endHour>12) {
|
||||
hour= hour-15;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i <= dayNum; i++) {
|
||||
var DateTime = startDate + 60 * 60 * 24 * 1000*i
|
||||
var date = new Date(DateTime);
|
||||
var week = date.getDay();
|
||||
if (week != 0 && week != 6) {
|
||||
if (DateTime == startDate) {
|
||||
hour+= (18-startHour)*10-(startMin/6);
|
||||
if (startHour <= 12) {
|
||||
hour= hour-15;
|
||||
}
|
||||
} else if (DateTime > startDate && DateTime < endDate) {
|
||||
hour += 75;
|
||||
} else if (DateTime == endDate){
|
||||
hour+= (endHour-9)*10+endMin/6;
|
||||
if (endHour > 12) {
|
||||
hour= hour-15;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(hour<0){
|
||||
hour=0;
|
||||
}
|
||||
return hour;
|
||||
function isWeekend(day) {
|
||||
return WEEKEND_DAYS.includes(day);
|
||||
}
|
||||
|
||||
function calculateWorkHours() {
|
||||
var startDate = new Date($('#start_time').val());
|
||||
var endDate = new Date($('#end_time').val());
|
||||
|
||||
const start = startDate.getTime();
|
||||
const end = endDate.getTime();
|
||||
const startDay = startDate.getDay();
|
||||
const endDay = endDate.getDay();
|
||||
|
||||
let totalHours = 0;
|
||||
|
||||
for (let time = start; time < end; time += 3600000 /* 1 hour in milliseconds */) {
|
||||
const date = new Date(time);
|
||||
const dayOfWeek = date.getDay();
|
||||
const hour = date.getHours();
|
||||
|
||||
if (!isWeekend(dayOfWeek)) {
|
||||
if (dayOfWeek === startDay && hour < START_HOUR) {
|
||||
continue;
|
||||
} else if (dayOfWeek === endDay && hour >= END_HOUR) {
|
||||
break;
|
||||
} else if (hour >= START_HOUR && hour < END_HOUR) {
|
||||
if (hour < START_BREAK_HOUR || hour >= END_BREAK_HOUR) {
|
||||
totalHours += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return totalHours;
|
||||
}
|
||||
|
||||
|
||||
const moduleInit = ['tool','employeepicker','oaTool'];
|
||||
function gouguInit() {
|
||||
var form = layui.form,
|
||||
@ -220,61 +188,22 @@ const moduleInit = ['tool','employeepicker','oaTool'];
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click',
|
||||
fullPanel:true,
|
||||
type:'datetime',
|
||||
done:function(){
|
||||
var hours = leaveTime();
|
||||
var hours = calculateWorkHours();
|
||||
if(hours == 0){
|
||||
$('#hours,#days').html('-');
|
||||
}
|
||||
else{
|
||||
$('#hours').html('共'+hours/10+'小时');
|
||||
$('#hours').html('共'+hours+'小时');
|
||||
var days = 0;
|
||||
if(hours>=75){
|
||||
days = parseInt(hours/75);
|
||||
if(hours>=8){
|
||||
days = parseInt(hours/8);
|
||||
}
|
||||
$('#days').html('共'+days+'天,'+(hours%75)/10+'小时');
|
||||
$('#days').html('共'+days+'天,'+(hours%8)+'小时');
|
||||
}
|
||||
$('[name="duration"]').val(hours/10);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//选择具体时间
|
||||
lay('.select-datetime').each(function () {
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click',
|
||||
type: 'time',
|
||||
format: 'HH:mm',
|
||||
btns: ['clear', 'confirm'],
|
||||
ready: function (date) {
|
||||
var dom = $(".laydate-time-list").children("li");
|
||||
for (var i = 0; i < dom.length; i++) {
|
||||
if (i == 2 || i == 5) {
|
||||
$(dom[i]).remove();
|
||||
} else if(i==1||i==4) {
|
||||
var li = $(dom[i]).children("ol").children("li")
|
||||
for (var j = 0; j < li.length; j++) {
|
||||
if ($(li[j]).text() != 00 && $(li[j]).text()!=30) {
|
||||
$(li[j]).remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
done:function(){
|
||||
var hours = leaveTime();
|
||||
if(hours == 0){
|
||||
$('#hours,#days').html('-');
|
||||
}
|
||||
else{
|
||||
$('#hours').html('共'+hours/10+'小时');
|
||||
var days = 0;
|
||||
if(hours>=75){
|
||||
days = parseInt(hours/75);
|
||||
}
|
||||
$('#days').html('共'+days+'天,'+(hours%75)/10+'小时');
|
||||
}
|
||||
$('[name="duration"]').val(hours/10);
|
||||
$('[name="duration"]').val(hours);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -5,19 +5,4 @@
|
||||
.layui-form-item .layui-btn-danger{display:none; margin-top:-8px}
|
||||
.layui-form-item:hover .layui-btn-danger{display:inline-block;}
|
||||
.select-1,.select-2{display:none;}
|
||||
/* 设置只展示时分,隐藏秒那一列 */
|
||||
.laydate-time-list {
|
||||
padding-bottom: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.laydate-time-list > li {
|
||||
width: 50% !important;
|
||||
}
|
||||
|
||||
.laydate-time-list ol li {
|
||||
width: 100% !important;
|
||||
padding-left: 0 !important;
|
||||
text-align: center !important;
|
||||
}
|
||||
</style>
|
@ -10,40 +10,34 @@
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">外出地点<font>*</font></td>
|
||||
<td colspan="5"><input type="text" name="address" value="" autocomplete="off" placeholder="请输入外出地点" lay-verify="required" lay-reqText="请输入外出地点" class="layui-input"></td>
|
||||
<td colspan="3"><input type="text" name="address" value="" autocomplete="off" placeholder="请输入外出地点" lay-verify="required" lay-reqText="请输入外出地点" class="layui-input"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">外出时长</td>
|
||||
<td colspan="2" id="hours">-</td>
|
||||
<td id="hours">-</td>
|
||||
<td class="layui-td-gray">外出天数</td>
|
||||
<td colspan="2" id="days">-</td>
|
||||
<td id="days">-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">外出事由<font>*</font></td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<textarea name="content" placeholder="请输入外出事由" class="layui-textarea" lay-verify="required" lay-reqText="请输入外出事由"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="upFile"><i class="layui-icon"></i></button></div></td>
|
||||
<td colspan="5" style="line-height:inherit">
|
||||
<td colspan="3" style="line-height:inherit">
|
||||
<div class="layui-row" id="fileList">
|
||||
<input type="hidden" data-type="file" name="file_ids" value="">
|
||||
</div>
|
||||
@ -54,40 +48,34 @@
|
||||
<table class="layui-table layui-table-form">
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">外出地点<font>*</font></td>
|
||||
<td colspan="5"><input type="text" name="address" value="{$detail.address}" autocomplete="off" placeholder="请输入外出地点" lay-verify="required" lay-reqText="请输入外出地点" class="layui-input"></td>
|
||||
<td colspan="3"><input type="text" name="address" value="{$detail.address}" autocomplete="off" placeholder="请输入外出地点" lay-verify="required" lay-reqText="请输入外出地点" class="layui-input"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" class="layui-input select-time" value="{$detail.start_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.start_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="{$detail.start_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" class="layui-input select-time" value="{$detail.end_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="{$detail.duration}">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.end_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="{$detail.end_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">外出时长</td>
|
||||
<td colspan="2" id="hours">共{$detail.duration}工时</td>
|
||||
<td id="hours">共{$detail.duration}工时</td>
|
||||
<td class="layui-td-gray">外出天数</td>
|
||||
<td colspan="2" id="days">共{$detail.days}天,{$detail.hours}小时</td>
|
||||
<td id="days">共{$detail.days}天,{$detail.hours}小时</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">外出事由<font>*</font></td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<textarea name="content" placeholder="请输入外出事由" class="layui-textarea" lay-verify="required" lay-reqText="请输入外出事由">{$detail.content}</textarea>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray"><div class="layui-input-inline">附件</div> <div class="layui-input-inline"><button type="button" class="layui-btn layui-btn-xs" id="upFile"><i class="layui-icon"></i></button></div></td>
|
||||
<td colspan="5" style="line-height:inherit">
|
||||
<td colspan="3" style="line-height:inherit">
|
||||
<div class="layui-row" id="fileList">
|
||||
<input type="hidden" name="file_ids" data-type="file" value="{$detail.file_ids}">
|
||||
{notempty name="$detail.file_ids"}
|
||||
@ -111,67 +99,46 @@
|
||||
/**
|
||||
* 工时计算
|
||||
*/
|
||||
function leaveTime() {
|
||||
var data_1 = $('#start_time_a').val();
|
||||
var data_1_1 = $('#start_time_b').val();
|
||||
var data_2 = $('#end_time_a').val();
|
||||
var data_2_1 = $('#end_time_b').val();
|
||||
if(data_1=='' || data_1_1=='' || data_2=='' || data_2_1==''){
|
||||
return 0;
|
||||
}
|
||||
const WORKDAY_HOURS = 8;
|
||||
const START_HOUR = 9;
|
||||
const END_HOUR = 18;
|
||||
const START_BREAK_HOUR = 12;
|
||||
const END_BREAK_HOUR = 13;
|
||||
const WEEKEND_DAYS = [0, 6];
|
||||
|
||||
var start_date = data_1+' '+data_1_1;
|
||||
var end_date = data_2+' '+data_2_1;
|
||||
var start = new Date(start_date.replace(/-/g,'/'));
|
||||
var end = new Date(end_date.replace(/-/g,'/'));
|
||||
var startHour = start.getHours();
|
||||
var startMin = start.getMinutes();
|
||||
var endHour = end.getHours();
|
||||
var endMin = end.getMinutes();
|
||||
|
||||
var startDate = start.setHours(0, 0, 0);
|
||||
var endDate = end.setHours(0, 0, 0);
|
||||
if(endDate<startDate){
|
||||
return 0;
|
||||
}
|
||||
var dayNum = parseInt(Math.abs(endDate - startDate) / 1000 / 60 / 60 / 24);
|
||||
|
||||
var hour = 0;
|
||||
if (startDate == endDate) {
|
||||
var date = new Date(startDate);
|
||||
var week = date.getDay();
|
||||
if (week != 0 && week != 6) {
|
||||
hour= (endHour-startHour)*10-startMin/6+endMin/6;
|
||||
if (startHour <= 12 && endHour>12) {
|
||||
hour= hour-15;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i <= dayNum; i++) {
|
||||
var DateTime = startDate + 60 * 60 * 24 * 1000*i
|
||||
var date = new Date(DateTime);
|
||||
var week = date.getDay();
|
||||
if (week != 0 && week != 6) {
|
||||
if (DateTime == startDate) {
|
||||
hour+= (18-startHour)*10-(startMin/6);
|
||||
if (startHour <= 12) {
|
||||
hour= hour-15;
|
||||
}
|
||||
} else if (DateTime > startDate && DateTime < endDate) {
|
||||
hour += 75;
|
||||
} else if (DateTime == endDate){
|
||||
hour+= (endHour-9)*10+endMin/6;
|
||||
if (endHour > 12) {
|
||||
hour= hour-15;
|
||||
}
|
||||
}
|
||||
}
|
||||
function isWeekend(day) {
|
||||
return WEEKEND_DAYS.includes(day);
|
||||
}
|
||||
|
||||
function calculateWorkHours() {
|
||||
var startDate = new Date($('#start_time').val());
|
||||
var endDate = new Date($('#end_time').val());
|
||||
|
||||
const start = startDate.getTime();
|
||||
const end = endDate.getTime();
|
||||
const startDay = startDate.getDay();
|
||||
const endDay = endDate.getDay();
|
||||
|
||||
let totalHours = 0;
|
||||
|
||||
for (let time = start; time < end; time += 3600000 /* 1 hour in milliseconds */) {
|
||||
const date = new Date(time);
|
||||
const dayOfWeek = date.getDay();
|
||||
const hour = date.getHours();
|
||||
|
||||
if (!isWeekend(dayOfWeek)) {
|
||||
if (dayOfWeek === startDay && hour < START_HOUR) {
|
||||
continue;
|
||||
} else if (dayOfWeek === endDay && hour >= END_HOUR) {
|
||||
break;
|
||||
} else if (hour >= START_HOUR && hour < END_HOUR) {
|
||||
if (hour < START_BREAK_HOUR || hour >= END_BREAK_HOUR) {
|
||||
totalHours += 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(hour<0){
|
||||
hour=0;
|
||||
}
|
||||
return hour;
|
||||
}
|
||||
return totalHours;
|
||||
}
|
||||
|
||||
const moduleInit = ['tool','employeepicker','oaTool'];
|
||||
@ -194,64 +161,25 @@ const moduleInit = ['tool','employeepicker','oaTool'];
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click',
|
||||
fullPanel:true,
|
||||
type:'datetime',
|
||||
done:function(){
|
||||
var hours = leaveTime();
|
||||
var hours = calculateWorkHours();
|
||||
if(hours == 0){
|
||||
$('#hours,#days').html('-');
|
||||
}
|
||||
else{
|
||||
$('#hours').html('共'+hours/10+'小时');
|
||||
$('#hours').html('共'+hours+'小时');
|
||||
var days = 0;
|
||||
if(hours>75){
|
||||
days = parseInt(hours/75);
|
||||
if(hours>=8){
|
||||
days = parseInt(hours/8);
|
||||
}
|
||||
$('#days').html('共'+days+'天,'+(hours%75)/10+'小时');
|
||||
$('#days').html('共'+days+'天,'+(hours%8)+'小时');
|
||||
}
|
||||
$('[name="duration"]').val(hours/10);
|
||||
$('[name="duration"]').val(hours);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//选择具体时间
|
||||
lay('.select-datetime').each(function () {
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click',
|
||||
type: 'time',
|
||||
format: 'HH:mm',
|
||||
btns: ['clear', 'confirm'],
|
||||
ready: function (date) {
|
||||
var dom = $(".laydate-time-list").children("li");
|
||||
for (var i = 0; i < dom.length; i++) {
|
||||
if (i == 2 || i == 5) {
|
||||
$(dom[i]).remove();
|
||||
} else if(i==1||i==4) {
|
||||
var li = $(dom[i]).children("ol").children("li")
|
||||
for (var j = 0; j < li.length; j++) {
|
||||
if ($(li[j]).text() != 00 && $(li[j]).text()!=30) {
|
||||
$(li[j]).remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
done:function(){
|
||||
var hours = leaveTime();
|
||||
if(hours == 0){
|
||||
$('#hours,#days').html('-');
|
||||
}
|
||||
else{
|
||||
$('#hours').html('共'+hours/10+'小时');
|
||||
var days = 0;
|
||||
if(hours>=75){
|
||||
days = parseInt(hours/75);
|
||||
}
|
||||
$('#days').html('共'+days+'天,'+(hours%75)/10+'小时');
|
||||
}
|
||||
$('[name="duration"]').val(hours/10);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
|
@ -11,29 +11,23 @@
|
||||
<tr>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">用车时长</td>
|
||||
<td colspan="5" id="duration">-</td>
|
||||
<td colspan="3" id="duration">-</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">用车目的地<font>*</font></td>
|
||||
<td colspan="2"><input type="text" name="address" value="" autocomplete="off" placeholder="请输入用车目的地" lay-verify="required" lay-reqText="请输入用车目的地" class="layui-input"></td>
|
||||
<td><input type="text" name="address" value="" autocomplete="off" placeholder="请输入用车目的地" lay-verify="required" lay-reqText="请输入用车目的地" class="layui-input"></td>
|
||||
<td class="layui-td-gray">车辆选择<font>*</font></td>
|
||||
<td colspan="2">
|
||||
<td>
|
||||
<select name="detail_type" lay-verify="required" lay-reqText="请选择">
|
||||
<option value="">--请选择--</option>
|
||||
{volist name=":oa_car_cate()" id="vo"}
|
||||
@ -44,7 +38,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">用车事由<font>*</font></td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<textarea name="content" placeholder="请输入用车事由" class="layui-textarea" lay-verify="required" lay-reqText="请输入用车事由"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
@ -54,29 +48,23 @@
|
||||
<tr>
|
||||
<td class="layui-td-gray">开始时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="start_time_a" name="start_time_a" autocomplete="off" class="layui-input select-time" value="{$detail.start_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input id="start_time_b" name="start_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.start_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input id="start_time" name="start_time" autocomplete="off" class="layui-input select-time" value="{$detail.start_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td class="layui-td-gray">结束时间<font>*</font></td>
|
||||
<td>
|
||||
<input id="end_time_a" name="end_time_a" autocomplete="off" class="layui-input select-time" value="{$detail.end_time_a}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
<td>
|
||||
<input type="hidden" name="duration" value="{$detail.duration}">
|
||||
<input id="end_time_b" name="end_time_b" autocomplete="off" class="layui-input select-datetime" value="{$detail.end_time_b}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
<input type="hidden" name="duration" value="">
|
||||
<input id="end_time" name="end_time" autocomplete="off" class="layui-input select-time" value="{$detail.end_time|date='Y-m-d H:i:s'}" readonly lay-verify="required" placeholder="请选择时间" lay-reqText="请选择时间">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">用车时长</td>
|
||||
<td colspan="5" id="duration">共{$detail.duration}小时</td>
|
||||
<td colspan="3" id="duration">共{$detail.duration}小时</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray-2">用车目的地<font>*</font></td>
|
||||
<td colspan="2"><input type="text" name="address" value="{$detail.address}" autocomplete="off" placeholder="请输入用车目的地" lay-verify="required" lay-reqText="请输入用车目的地" class="layui-input"></td>
|
||||
<td><input type="text" name="address" value="{$detail.address}" autocomplete="off" placeholder="请输入用车目的地" lay-verify="required" lay-reqText="请输入用车目的地" class="layui-input"></td>
|
||||
<td class="layui-td-gray">车辆选择<font>*</font></td>
|
||||
<td colspan="2">
|
||||
<td>
|
||||
<select name="detail_type" lay-verify="required" lay-reqText="请选择">
|
||||
<option value="">--请选择--</option>
|
||||
{volist name=":oa_car_cate()" id="vo"}
|
||||
@ -87,7 +75,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="layui-td-gray">用车事由<font>*</font></td>
|
||||
<td colspan="5">
|
||||
<td colspan="3">
|
||||
<textarea name="content" placeholder="请输入用车理由" class="layui-textarea" lay-verify="required" lay-reqText="请输入用车理由">{$detail.content}</textarea>
|
||||
</td>
|
||||
</tr>
|
||||
@ -105,16 +93,11 @@
|
||||
* 工时计算
|
||||
*/
|
||||
function leaveTime() {
|
||||
var data_1 = $('#start_time_a').val();
|
||||
var data_1_1 = $('#start_time_b').val();
|
||||
var data_2 = $('#end_time_a').val();
|
||||
var data_2_1 = $('#end_time_b').val();
|
||||
if(data_1=='' || data_1_1=='' || data_2=='' || data_2_1==''){
|
||||
var start_date = $('#start_time').val();
|
||||
var end_date = $('#end_time').val();
|
||||
if(start_date=='' || end_date==''){
|
||||
return 0;
|
||||
}
|
||||
|
||||
var start_date = data_1+' '+data_1_1;
|
||||
var end_date = data_2+' '+data_2_1;
|
||||
}
|
||||
var start = new Date(start_date.replace(/-/g,'/'));
|
||||
var end = new Date(end_date.replace(/-/g,'/'));
|
||||
var diff=end.getTime() - start.getTime();//时间差的毫秒数
|
||||
@ -133,11 +116,14 @@ const moduleInit = ['tool','employeepicker'];
|
||||
if (typeof (flowStep) == "function") {
|
||||
flowStep();
|
||||
}
|
||||
|
||||
//日期时间范围
|
||||
lay('.select-time').each(function () {
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click',
|
||||
fullPanel:true,
|
||||
type:'datetime',
|
||||
done:function(){
|
||||
var hours = leaveTime();
|
||||
if(hours == 0){
|
||||
@ -150,42 +136,6 @@ const moduleInit = ['tool','employeepicker'];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//选择具体时间
|
||||
lay('.select-datetime').each(function () {
|
||||
laydate.render({
|
||||
elem: this,
|
||||
trigger: 'click',
|
||||
type: 'time',
|
||||
format: 'HH:mm',
|
||||
btns: ['clear', 'confirm'],
|
||||
ready: function (date) {
|
||||
var dom = $(".laydate-time-list").children("li");
|
||||
for (var i = 0; i < dom.length; i++) {
|
||||
if (i == 2 || i == 5) {
|
||||
$(dom[i]).remove();
|
||||
} else if(i==1||i==4) {
|
||||
var li = $(dom[i]).children("ol").children("li")
|
||||
for (var j = 0; j < li.length; j++) {
|
||||
if ($(li[j]).text() != 00 && $(li[j]).text()!=30) {
|
||||
$(li[j]).remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
done:function(){
|
||||
var hours = leaveTime();
|
||||
if(hours == 0){
|
||||
$('#duration').html('-');
|
||||
}
|
||||
else{
|
||||
$('#duration').html('共'+hours+'小时');
|
||||
}
|
||||
$('[name="duration"]').val(hours);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
{/block}
|
||||
|
@ -311,7 +311,8 @@ layui.define([], function (exports) {
|
||||
layui.laydate.render({
|
||||
elem: that,
|
||||
show: true,
|
||||
type: type
|
||||
type: type,
|
||||
fullPanel: true
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user