| | |
| | | {extend name="../../base/view/common/base" /} |
| | | <!-- 主体 --> |
| | | {block name="body"} |
| | | <style> |
| | | #showNecessaryTimeBox, |
| | | #showUnNecessaryTimeBox { |
| | | display: flex; |
| | | } |
| | | #showNecessaryTimeBox p, |
| | | #showUnNecessaryTimeBox p { |
| | | line-height: 26px; |
| | | display: none; |
| | | } |
| | | #showNecessaryTimeList, |
| | | #showUnNecessaryTimeList { |
| | | display: flex; |
| | | gap: 20px; |
| | | } |
| | | .timeItem { |
| | | border: 1px solid #ccc; |
| | | padding: 2px 8px; |
| | | border-radius: 4px; |
| | | position: relative; |
| | | } |
| | | .closeBtn { |
| | | background: #ff5722; |
| | | color: #fff; |
| | | border-radius: 50%; |
| | | font-size: 12px; |
| | | display: inline-block; |
| | | width: 16px; |
| | | height: 16px; |
| | | line-height: 18px; |
| | | text-align: center; |
| | | position: absolute; |
| | | right: -6px; |
| | | top: -6px; |
| | | cursor: pointer; |
| | | } |
| | | </style> |
| | | <form class="layui-form p-4"> |
| | | <h3 class="pb-3">岗位职称</h3> |
| | | {if condition="$id eq 0"} |
| | | <table class="layui-table"> |
| | | <tr> |
| | | <td class="layui-td-gray">岗位名称<font>*</font></td> |
| | | <td> |
| | | <input type="text" name="title" lay-verify="required" autocomplete="off" placeholder="请输入岗位名称" lay-reqText="请输入岗位名称" class="layui-input"> |
| | | </td> |
| | | <td class="layui-td-gray-3">岗位工时单价(元)<font>*</font></td> |
| | | <td> |
| | | <input type="text" name="work_price" lay-verify="required|number" placeholder="请输入岗位工时单价" lay-reqText="请输入岗位工时单价" autocomplete="off" class="layui-input"> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="layui-td-gray">状态<font>*</font></td> |
| | | <td colspan="3"> |
| | | <input type="radio" name="status" value="1" title="正常" checked> |
| | | <input type="radio" name="status" value="0" title="禁用"> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="layui-td-gray">权限角色<font>*</font></td> |
| | | <td colspan="3"> |
| | | {volist name="$group" id="v"} |
| | | <input type="checkbox" name="group_id[]" title="{$v.title}" value="{$v.id}" lay-skin="primary"> |
| | | {/volist} |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="layui-td-gray">岗位备注</td> |
| | | <td colspan="3"> |
| | | <textarea name="remark" placeholder="请输入岗位备注" class="layui-textarea"></textarea> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | {else/} |
| | | <table class="layui-table layui-table-form"> |
| | | <tr> |
| | | <td class="layui-td-gray">岗位名称<font>*</font></td> |
| | | <td> |
| | | <input type="text" name="title" value="{$detail.title}" lay-verify="required" autocomplete="off" placeholder="请输入岗位名称" lay-reqText="请输入岗位名称" class="layui-input"> |
| | | </td> |
| | | <td class="layui-td-gray-3">岗位工时单价(元)<font>*</font></td> |
| | | <td> |
| | | <input type="text" name="work_price" value="{$detail.work_price}" lay-verify="required|number" placeholder="请输入岗位工时单价" lay-reqText="请输入岗位工时单价" autocomplete="off" class="layui-input"> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="layui-td-gray">状态<font>*</font></td> |
| | | <td colspan="3"> |
| | | <input type="radio" name="status" value="1" title="正常" {eq name="$detail.status" value="1"}checked{/eq}> |
| | | <input type="radio" name="status" value="0" title="禁止" {eq name="$detail.status" value="0"}checked{/eq}> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="layui-td-gray">权限角色<font>*</font></td> |
| | | <td colspan="3"> |
| | | {volist name="$group" id="v"} |
| | | <input type="checkbox" name="group_id[]" title="{$v.title}" value="{$v.id}" {eq name="$v.checked" value="1" }checked{/eq} lay-skin="primary"> |
| | | {/volist} |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="layui-td-gray">岗位备注</td> |
| | | <td colspan="3"> |
| | | <textarea name="remark" placeholder="请输入岗位备注" class="layui-textarea">{$detail.remark}</textarea> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | {/if} |
| | | <div class="pt-4"> |
| | | <input type="hidden" name="id" value="{$id}"> |
| | | <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button> |
| | | <button type="reset" class="layui-btn layui-btn-primary">重置</button> |
| | | </div> |
| | | <h3 class="pb-3">考勤组</h3> |
| | | {if condition="$id eq 0"} |
| | | <table class="layui-table"> |
| | | <tr> |
| | | <td class="layui-td-gray-3">考勤组名称<font>*</font></td> |
| | | <td> |
| | | <input |
| | | type="text" |
| | | name="name" |
| | | lay-verify="required" |
| | | autocomplete="off" |
| | | placeholder="请输入考勤组名称" |
| | | lay-reqText="请输入岗位名称" |
| | | class="layui-input" |
| | | /> |
| | | </td> |
| | | <td class="layui-td-gray-3">考勤类型<font>*</font></td> |
| | | <td> |
| | | <select name="type" lay-verify="required" lay-reqText="请选择"> |
| | | <option value="">请选择</option> |
| | | <option value="1">固定班制</option> |
| | | <option value="2">自由工时</option> |
| | | </select> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="layui-td-gray-3">参与考勤人员<font>*</font></td> |
| | | <td> |
| | | <input |
| | | type="text" |
| | | name="attendance_participants" |
| | | autocomplete="off" |
| | | readonly |
| | | lay-verify="required" |
| | | lay-reqText="请选择参与考勤人员" |
| | | placeholder="请选择参与考勤人员" |
| | | class="layui-input picker-diy" |
| | | /> |
| | | <input type="hidden" name="attendance_participants_id" /> |
| | | </td> |
| | | <td class="layui-td-gray-3">无需考勤人员</td> |
| | | <td> |
| | | <input |
| | | type="text" |
| | | name="attendance_not_participants" |
| | | autocomplete="off" |
| | | readonly |
| | | lay-reqText="请选择无需考勤人员" |
| | | placeholder="请选择无需考勤人员" |
| | | class="layui-input picker-diy" |
| | | /> |
| | | <input type="hidden" name="attendance_not_participants_id" /> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="layui-td-gray">工作日设置<font>*</font></td> |
| | | <td colspan="5"> |
| | | <table |
| | | id="timeBox" |
| | | class="layui-table layui-table-min" |
| | | style="margin: 0" |
| | | > |
| | | <tr> |
| | | <th width="50"></th> |
| | | <th width="100">工作日</th> |
| | | <th>班次时间段</th> |
| | | <th width="60">操作</th> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <input type="checkbox" name="work1" lay-skin="primary" title="" /> |
| | | </td> |
| | | <td>周一</td> |
| | | <td style="text-align: left"></td> |
| | | <td> |
| | | <a class="layui-btn layui-btn-xs picker-oa" data-types="workPlan" |
| | | >设置班次</a |
| | | > |
| | | <input type="hidden" name="work_plan_id1" value="" /> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <input type="checkbox" name="work2" lay-skin="primary" title="" /> |
| | | </td> |
| | | <td>周二</td> |
| | | <td style="text-align: left"></td> |
| | | <td> |
| | | <a class="layui-btn layui-btn-xs picker-oa" data-types="workPlan" |
| | | >设置班次</a |
| | | > |
| | | <input type="hidden" name="work_plan_id2" value="" /> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <input type="checkbox" name="work3" lay-skin="primary" title="" /> |
| | | </td> |
| | | <td>周三</td> |
| | | <td style="text-align: left"></td> |
| | | <td> |
| | | <a class="layui-btn layui-btn-xs picker-oa" data-types="workPlan" |
| | | >设置班次</a |
| | | > |
| | | <input type="hidden" name="work_plan_id3" value="" /> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <input type="checkbox" name="work4" lay-skin="primary" title="" /> |
| | | </td> |
| | | <td>周四</td> |
| | | <td style="text-align: left"></td> |
| | | <td> |
| | | <a class="layui-btn layui-btn-xs picker-oa" data-types="workPlan" |
| | | >设置班次</a |
| | | > |
| | | <input type="hidden" name="work_plan_id4" value="" /> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <input type="checkbox" name="work5" lay-skin="primary" title="" /> |
| | | </td> |
| | | <td>周五</td> |
| | | <td style="text-align: left"></td> |
| | | <td> |
| | | <a class="layui-btn layui-btn-xs picker-oa" data-types="workPlan" |
| | | >设置班次</a |
| | | > |
| | | <input type="hidden" name="work_plan_id5" value="" /> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <input type="checkbox" name="work6" lay-skin="primary" title="" /> |
| | | </td> |
| | | <td>周六</td> |
| | | <td style="text-align: left"></td> |
| | | <td> |
| | | <a class="layui-btn layui-btn-xs picker-oa" data-types="workPlan" |
| | | >设置班次</a |
| | | > |
| | | <input type="hidden" name="work_plan_id6" value="" /> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td> |
| | | <input type="checkbox" name="work7" lay-skin="primary" title="" /> |
| | | </td> |
| | | <td>周日</td> |
| | | <td style="text-align: left"></td> |
| | | <td> |
| | | <a class="layui-btn layui-btn-xs picker-oa" data-types="workPlan" |
| | | >设置班次</a |
| | | > |
| | | <input type="hidden" name="work_plan_id7" value="" /> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="layui-td-gray-3">特殊日期</td> |
| | | <td colspan="5"> |
| | | <div style="margin-bottom: 10px"> |
| | | <div id="showNecessaryTimeBox"> |
| | | <p>必须打卡日期:</p> |
| | | <div id="showNecessaryTimeList"></div> |
| | | </div> |
| | | </div> |
| | | <div style="margin-bottom: 10px"> |
| | | <button |
| | | class="layui-btn layui-btn-sm" |
| | | type="button" |
| | | id="addNecessaryTimeBtn" |
| | | > |
| | | + 新增必须打卡的日期 |
| | | </button> |
| | | </div> |
| | | <div style="margin-bottom: 10px"> |
| | | <div id="showUnNecessaryTimeBox"> |
| | | <p>无需打卡日期:</p> |
| | | <div id="showUnNecessaryTimeList"></div> |
| | | </div> |
| | | </div> |
| | | <div style="margin-bottom: 10px"> |
| | | <button |
| | | class="layui-btn layui-btn-sm" |
| | | type="button" |
| | | id="addUnNecessaryTimeBtn" |
| | | > |
| | | + 新增无需打卡的日期 |
| | | </button> |
| | | </div> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | {else/} |
| | | <table class="layui-table layui-table-form"> |
| | | <tr> |
| | | <td class="layui-td-gray">考勤组名称<font>*</font></td> |
| | | <td> |
| | | <input |
| | | type="text" |
| | | name="name" |
| | | value="{$detail.name}" |
| | | lay-verify="required" |
| | | autocomplete="off" |
| | | placeholder="请输入考勤组名称" |
| | | lay-reqText="请输入岗位名称" |
| | | class="layui-input" |
| | | /> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | {/if} |
| | | <div class="pt-4"> |
| | | <input type="hidden" name="id" value="{$id}" /> |
| | | <button |
| | | class="layui-btn layui-btn-normal" |
| | | lay-submit="" |
| | | lay-filter="webform" |
| | | > |
| | | 立即提交 |
| | | </button> |
| | | <button type="reset" class="layui-btn layui-btn-primary">重置</button> |
| | | </div> |
| | | </form> |
| | | {/block} |
| | | <!-- /主体 --> |
| | |
| | | <!-- 脚本 --> |
| | | {block name="script"} |
| | | <script> |
| | | const moduleInit = ['tool']; |
| | | function gouguInit() { |
| | | var form = layui.form,tool=layui.tool; |
| | | form.on('submit(webform)', function(data){ |
| | | let callback = function (e) { |
| | | layer.msg(e.msg); |
| | | if (e.code == 0) { |
| | | setTimeout(function () { |
| | | parent.location.reload(); |
| | | }, 1000); |
| | | } |
| | | } |
| | | tool.post("/user/position/add", data.field, callback); |
| | | return false; |
| | | }); |
| | | //监听提交 |
| | | form.on('submit(webform)', function(data){ |
| | | let callback = function (e) { |
| | | layer.msg(e.msg); |
| | | if (e.code == 0) { |
| | | tool.sideClose(1000); |
| | | } |
| | | } |
| | | tool.post("/user/position/add", data.field, callback); |
| | | return false; |
| | | }); |
| | | } |
| | | const moduleInit = ["tool", "oaPicker"]; |
| | | function gouguInit() { |
| | | var oaPicker = layui.oaPicker, |
| | | laydate = layui.laydate, |
| | | form = layui.form, |
| | | tool = layui.tool; |
| | | //选择员工弹窗 |
| | | $("body").on("click", ".picker-diy", function () { |
| | | let that = $(this); |
| | | let ids = that.next().val() + "", |
| | | names = that.val() + ""; |
| | | oaPicker.employeeInit({ |
| | | ids: ids, |
| | | names: names, |
| | | type: 2, //1是单选,2是多选 |
| | | callback: function (data) { |
| | | //这里是选择后的回调方法,可以根据具体需求自定义写哦 |
| | | let select_id = [], |
| | | select_name = []; |
| | | for (var a = 0; a < data.length; a++) { |
| | | select_id.push(data[a].id); |
| | | select_name.push(data[a].name); |
| | | } |
| | | that.val(select_name.join(",")); |
| | | that.next().val(select_id.join(",")); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | laydate.render({ |
| | | elem: "#addNecessaryTimeBtn", |
| | | done: function (value, date) { |
| | | $("#addNecessaryTimeBtn").html("+ 新增必须打卡的日期"); |
| | | var oldValues = $(".timeValue"); |
| | | var isE = false; |
| | | for (let i = 0; i < oldValues.length; i++) { |
| | | const oldValue = oldValues[i]; |
| | | if (oldValue.innerHTML == value) { |
| | | isE = true; |
| | | } |
| | | } |
| | | if (!isE) { |
| | | $("#showNecessaryTimeBox p").show(); |
| | | $("#showNecessaryTimeList").append( |
| | | "<div class='timeItem'><span class='timeValue'>" + |
| | | value + |
| | | "</span><input type='hidden' name='necessaryTime[]' value=" + |
| | | value + |
| | | " /><span class='closeBtn layui-icon'>ဆ</span></div>" |
| | | ); |
| | | bindCloseBtn(); |
| | | } else { |
| | | layer.msg("已有相同日期"); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | laydate.render({ |
| | | elem: "#addUnNecessaryTimeBtn", |
| | | done: function (value, date) { |
| | | $("#addUnNecessaryTimeBtn").html("+ 新增无需打卡的日期"); |
| | | var oldValues = $(".timeValue"); |
| | | var isE = false; |
| | | for (let i = 0; i < oldValues.length; i++) { |
| | | const oldValue = oldValues[i]; |
| | | if (oldValue.innerHTML == value) { |
| | | isE = true; |
| | | } |
| | | } |
| | | if (!isE) { |
| | | $("#showUnNecessaryTimeBox p").show(); |
| | | $("#showUnNecessaryTimeList").append( |
| | | "<div class='timeItem'><span class='timeValue'>" + |
| | | value + |
| | | "</span><input type='hidden' name='unNecessaryTime[]' value=" + |
| | | value + |
| | | " /><span class='closeBtn layui-icon'>ဆ</span></div>" |
| | | ); |
| | | bindCloseBtn(); |
| | | } else { |
| | | layer.msg("已有相同日期"); |
| | | } |
| | | } |
| | | }); |
| | | |
| | | //监听提交 |
| | | form.on("submit(webform)", function (data) { |
| | | let callback = function (e) { |
| | | layer.msg(e.msg); |
| | | if (e.code == 0) { |
| | | tool.sideClose(1000); |
| | | } |
| | | }; |
| | | tool.post("/user/attendance/add", data.field, callback); |
| | | return false; |
| | | }); |
| | | } |
| | | |
| | | function bindCloseBtn() { |
| | | $(".closeBtn").off("click"); |
| | | $(".closeBtn").on("click", function () { |
| | | let that = $(this); |
| | | that.parent().remove(); |
| | | if ($("#showNecessaryTimeList .timeItem").length == 0) { |
| | | $("#showNecessaryTimeBox p").hide(); |
| | | } |
| | | if ($("#showUnNecessaryTimeList .timeItem").length == 0) { |
| | | $("#showUnNecessaryTimeBox p").hide(); |
| | | } |
| | | }); |
| | | } |
| | | </script> |
| | | {/block} |
| | | <!-- /脚本 --> |
| | | <!-- /脚本 --> |