app/adm/view/flow/catelist.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/base/view/common/base.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/home/view/index/index.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/home/view/index/layout_action.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/home/view/index/layout_note.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/home/view/index/layout_system.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/home/view/login/index.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/home/view/role/add.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/user/controller/Attendance.php | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
app/user/view/attendance/index.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
public/favicon.ico | 补丁 | 查看 | 原始文档 | blame | 历史 | |
public/static/home/images/syslogo.png | 补丁 | 查看 | 原始文档 | blame | 历史 |
app/adm/view/flow/catelist.html
@@ -4,11 +4,11 @@ <div class="p-page"> <table class="layui-hide" id="test" lay-filter="test"></table> </div> <script type="text/html" id="toolbarDemo"> <!-- <script type="text/html" id="toolbarDemo"> <div class="layui-btn-container"> <button class="layui-btn layui-btn-sm side-a" type="button" data-href="/adm/flow/cate_add">+ 添加审批类型</button> </div> </script> </script> --> {/block} <!-- /主体 --> app/base/view/common/base.html
@@ -49,9 +49,9 @@ 勾股工作室 <hdm58@qq.com> +------------------------------------------------------------------------------------------ --> {block name="copyright"} <!-- {block name="copyright"} <div class="copyright">Copyright © 2022-2024 勾股OA - {:CMS_VERSION} ,Powered by GouguOPEN<a href="https://www.gougucms.com" target="_blank">官网</a><a href="https://blog.gougucms.com" target="_blank">社区</a><a href="https://blog.gougucms.com/home/book/detail/bid/3/id/7.html" target="_blank">文档</a></div></div> {/block} {/block} --> <!-- /版权标识 --> </body> </html> app/home/view/index/index.html
@@ -16,12 +16,12 @@ <span class="gg-head-item gg-head-cache"> <a href="javascript:;" gg-event="cache" data-href="/api/index/cache_clear" title="清空缓存"><i class="layui-icon layui-icon-fonts-clear"></i></a> </span> <span class="gg-head-item gg-head-home"> <!-- <span class="gg-head-item gg-head-home"> <a href="https://www.gougucms.com/home/pages/detail/s/gouguoa.html" target="_blank" title="前台首页"><i class="layui-icon layui-icon-website"></i></a> </span> <span class="gg-head-item gg-head-home"> <a class="tab-a" data-href="/crud/crud/index" data-title="简单CRUD" title="简单CRUD"><i class="layui-icon layui-icon-template"></i></a> </span> </span> --> </div> <div class="layui-layout-right"> app/home/view/index/layout_action.html
@@ -1,3 +1,9 @@ <style> .layui-timeline { height: 100%; overflow: auto; } </style> <div class="layui-row layui-col-space16"> <div class="layui-col-md12"> <div class="layui-card"> app/home/view/index/layout_note.html
@@ -11,15 +11,15 @@ <script> //公告 function layoutNote(table){ table.render({ elem: '#Note' , url: "/home/api/get_note_list" //数据接口 , page: false //开启分页 , cols: [[ //表头 { field: 'cate_title', title: '公告分类', align: 'center','width': 90}, { field: 'title', title: '公告标题',templet: '<div><a data-href="/oa/note/view/id/{{d.id}}.html" class="side-a">{{d.title}}</a></div>'}, { field: 'create_time', title: '发布时间', align: 'center','width': 150} ]] }); // table.render({ // elem: '#Note' // , url: "/home/api/get_note_list" //数据接口 // , page: false //开启分页 // , cols: [[ //表头 // { field: 'cate_title', title: '公告分类', align: 'center','width': 90}, // { field: 'title', title: '公告标题',templet: '<div><a data-href="/oa/note/view/id/{{d.id}}.html" class="side-a">{{d.title}}</a></div>'}, // { field: 'create_time', title: '发布时间', align: 'center','width': 150} // ]] // }); } </script> app/home/view/index/layout_system.html
@@ -130,5 +130,6 @@ dom.addEventListener("click", () => { layer.msg("打卡成功"); }); } </script> app/home/view/login/index.html
@@ -61,20 +61,7 @@ </div> </div> </div> <div class="foot"> <!-- 版权标识 --> <!-- +------------------------------------------------------------------------------------------ 勾股OA系统开源且可免费使用,但并不是自由软件,未经授权许可不能去除勾股OA的相关版权信息 +------------------------------------------------------------------------------------------ 如需去除版权标识使用的,请微信(hdm588)联系作者去除,开源不易,请多支持! +------------------------------------------------------------------------------------------ 勾股工作室 <hdm58@qq.com> +------------------------------------------------------------------------------------------ --> Copyright © 2022-2024 勾股OA - {:CMS_VERSION} ,Powered by GouguOPEN,<a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow" style="color:#458BF3">{:get_system_config('web','icp')}</a><a target="_blank" rel="nofollow" style="margin-left: 15px;color:#458BF3" href="http://www.beian.gov.cn/portal/registerSystemInfo"> {:get_system_config('web','beian')}</a> <!-- /版权标识 --> </div> </div> <script src="{__GOUGU__}/layui/layui.js?v={:get_system_config('system','version')}"></script> <script type="text/javascript"> app/home/view/role/add.html
@@ -93,7 +93,7 @@ {/volist} </td> </tr> <tr> <!-- <tr> <td class="layui-td-gray-3" style="vertical-align: top;">手机工作台展示模块</td> <td colspan="3"> {volist name="mobile_menu" id="v"} @@ -120,7 +120,7 @@ </div> {/volist} </td> </tr> </tr> --> <tr> <td class="layui-td-gray" style="vertical-align: top;">备注内容</td> <td colspan="3"> app/user/controller/Attendance.php
@@ -93,20 +93,38 @@ // 启动事务 Db::startTrans(); try { Db::name('AttendanceGroup')->where(['id' => $param['id']])->strict(false)->field(true)->update($param); // Db::name('PositionGroup')->where(['pid' => $param['id']])->delete(); // foreach ($param['group_id'] as $k => $v) { // $data[$k] = [ // 'pid' => $param['id'], // 'group_id' => $v, // 'create_time' => time(), // ]; // } // Db::name('PositionGroup')->strict(false)->field(true)->insertAll($data); $setData = [ 'name' => $param['name'], 'type' => $param['type'], 'is_del' => 0, 'create_time' => time(), 'mon_work_plan_id' => isset($param['work1']) && $param['work1'] == "on" && isset($param['mon_work_plan_id']) ? intval($param['mon_work_plan_id']) : 0, 'tue_work_plan_id' => isset($param['work2']) && $param['work2'] == "on" && isset($param['tue_work_plan_id']) ? intval($param['tue_work_plan_id']) : 0, 'wed_work_plan_id' => isset($param['work3']) && $param['work3'] == "on" && isset($param['wed_work_plan_id']) ? intval($param['wed_work_plan_id']) : 0, 'thur_work_plan_id' => isset($param['work4']) && $param['work4'] == "on" && isset($param['thur_work_plan_id']) ? intval($param['thur_work_plan_id']) : 0, 'fri_work_plan_id' => isset($param['work5']) && $param['work5'] == "on" && isset($param['fri_work_plan_id']) ? intval($param['fri_work_plan_id']) : 0, 'sat_work_plan_id' => isset($param['work6']) && $param['work6'] == "on" && isset($param['sat_work_plan_id']) ? intval($param['sat_work_plan_id']) : 0, 'sun_work_plan_id' => isset($param['work7']) && $param['work7'] == "on" && isset($param['sun_work_plan_id']) ? intval($param['sun_work_plan_id']) : 0, ]; Db::name('AttendanceGroup')->where(['id' => $param['id']])->strict(false)->field(true)->update($setData); // 删除用户关联 Db::name('AttendanceUserLink')->where(['group_id' => $param['id']])->delete(); // 删除时间 $specialDateIds = Db::name('AttendanceGroupSpecialDateLink')->where(['group_id' => $param['id']])->column('special_date_id'); Db::name('AttendanceSpecialDate')->where('id', 'in', $specialDateIds)->delete(); Db::name('AttendanceGroupSpecialDateLink')->where(['group_id' => $param['id']])->delete(); // 插入用户关联表 $this->model->insertUserLinks(intval($param['id']), $param['attendance_participants_id'], 1); $this->model->insertUserLinks(intval($param['id']), $param['attendance_not_participants_id'], 2); // 插入时间表 if (isset($param['necessaryTime'])) { $this->model->insertSpecialDates(intval($param['id']), $param['necessaryTime'], 1); } if (isset($param['unNecessaryTime'])) { $this->model->insertSpecialDates(intval($param['id']), $param['unNecessaryTime'], 2); } add_log('edit', $param['id'], $param); //清除菜单\权限缓存 // clear_cache('adminMenu'); // clear_cache('adminRules'); // 提交事务 Db::commit(); } catch (\Exception $e) { @@ -207,8 +225,8 @@ $userName1[] = $value['userInfo']['name']; $userId1[] = $value['userInfo']['id']; } $detail['attendance_participants'] = implode(",",$userName1); $detail['attendance_participants_id'] = implode(",",$userId1); $detail['attendance_participants'] = implode(",", $userName1); $detail['attendance_participants_id'] = implode(",", $userId1); $user2 = array_values(array_filter($mappingUsers, function ($item) { return $item['type'] == 2; })); @@ -219,8 +237,8 @@ $userName2[] = $value['userInfo']['name']; $userName2[] = $value['userInfo']['id']; } $detail['attendance_not_participants'] = implode(",",$userName2); $detail['attendance_not_participants_id'] = implode(",",$userId2); $detail['attendance_not_participants'] = implode(",", $userName2); $detail['attendance_not_participants_id'] = implode(",", $userId2); // 获取关联的班次 $detail['mon_work_plan'] = Db::name('AttendanceWorkPlan')->where(['id' => $detail['mon_work_plan_id']])->find(); $mappingTimes = Db::name('AttendanceWorkPlanWorkTimeLink')->where(['work_plan_id' => $detail['mon_work_plan_id']])->column('work_time_id'); @@ -255,4 +273,16 @@ return view(); } } // 删除 public function delete() { $id = get_params("id"); if (Db::name('AttendanceGroup')->where('id', $id)->update(['is_del' => 1]) !== false) { add_log('delete', $id, [], '考勤组'); return to_assign(0, "删除成功"); } else { return to_assign(1, "删除失败"); } } } app/user/view/attendance/index.html
@@ -75,53 +75,76 @@ Object.keys(d.work_plan).forEach((key) => { var item = d.work_plan[key]; var showTxt = ""; var index = 0; if (key.indexOf("mon_") > -1) { showTxt = "周一"; index = 1; } if (key.indexOf("tue_") > -1) { showTxt = "周二"; index = 2; } if (key.indexOf("wed_") > -1) { showTxt = "周三"; index = 3; } if (key.indexOf("thur_") > -1) { showTxt = "周四"; index = 4; } if (key.indexOf("fri_") > -1) { showTxt = "周五"; index = 5; } if (key.indexOf("sat_") > -1) { showTxt = "周六"; index = 6; } if (key.indexOf("sun_") > -1) { showTxt = "周日"; index = 7; } if (item.id) { if (!planMap[item.id]) planMap[item.id] = { showTxt: [] }; if (!planMap[item.id]) planMap[item.id] = { showTxt: [], index: null }; planMap[item.id].times = item.times; planMap[item.id].showTxt.push(showTxt); if (planMap[item.id].index) { if (planMap[item.id].index > index) planMap[item.id].index = index; } else { planMap[item.id].index = index; } } else { if (!planMap["null"]) planMap["null"] = { showTxt: [] }; if (!planMap["null"]) planMap["null"] = { showTxt: [], index: 999 }; planMap.null.showTxt.push(showTxt); } }); console.log(planMap, "planMap"); // 根据班次分类显示时间 var html_ = ""; // 根据班次分类显示时间,并且根据周一到周日排序,休息放在最后 var infoList = []; Object.keys(planMap).forEach((key) => { infoList.push(planMap[key]) }); infoList.sort((a, b) => a.index - b.index); console.log(infoList, "infoList"); var html_ = ""; for (let i = 0; i < infoList.length; i++) { const infoItem = infoList[i]; html_ += "<p>" + planMap[key].showTxt.join("、") + infoItem.showTxt.join("、") + ":" + (planMap[key].times && planMap[key].times.length > 0 ? planMap[key].times.map( (infoItem.times && infoItem.times.length > 0 ? infoItem.times.map( (item) => item.begin_time + " - " + item.end_time ) : "休息") + "</p>"; }); console.log(html_); } console.log(html_); return html_; } }, public/favicon.icopublic/static/home/images/syslogo.png