fix 后台添加学生权限,解决其它bug

This commit is contained in:
Dai 2024-10-21 22:19:11 +08:00
parent 3146efae1e
commit 30f1a12ec8
6 changed files with 90 additions and 21 deletions

View File

@ -159,16 +159,18 @@ class StudentHomeworkService
//未提交作业的课程
$model = StudentSchedule::order('id desc')->where('id', 'not in', function ($query) use ($student) {
$query->table('wa_student_homework')->where('student_id', $student->id)->field('teacher_schedule_time_id');
});
})->where('student_id', $student->id);
$total = $model->count();
$list = $model->with(['student', 'subject', 'teacher'])->page($page, $limit)
->select();
} else {
$model = StudentSchedule::order('ss.id desc')->alias('ss')
->leftJoin('student_homework sh', 'ss.teacher_schedule_time_id = sh.teacher_schedule_time_id')
->where(['ss.student_id' => $student->id]);
$model = StudentSchedule::order('id desc')
->where(['student_id' => $student->id])
->where('id', 'in', function ($query) use ($student) {
$query->table('wa_student_homework')->where('student_id', $student->id)->field('teacher_schedule_time_id');
});
$total = $model->count();
$list = $model->with(['student', 'subject', 'teacher'])
->page($page, $limit)

View File

@ -143,7 +143,7 @@ class StudentService
throw new Exception('请登陆后再查看');
}
if (!empty((array)$request->student)) {
$student = Student::where(['id' => $request->student->id])->with(['parentArr'])->field('id,student_name,account,openid,avatar,nickname,parent_id')->findOrEmpty();
$student = Student::where(['id' => $request->student->id])->with(['parentArr'])->field('id,student_name,account,openid,avatar,nickname,parent_id,show_schedule,show_homework,show_feedback')->findOrEmpty();
if ($student->isEmpty()) {
throw new Exception('未找到学生信息');
}

View File

@ -147,6 +147,9 @@ class StudentController extends Crud
'account' => $request_data['account'],
'avatar' => $request_data['avatar'],
'parent_id' => $request_data['parent_id'],
'show_schedule' => isset($request_data['show_schedule']) ? $request_data['show_schedule'] : 0,
'show_homework' => isset($request_data['show_homework']) ? $request_data['show_homework'] : 0,
'show_feedback' => isset($request_data['show_feedback']) ? $request_data['show_feedback'] : 0,
];
} else {
$salt = random_str(16);
@ -158,6 +161,9 @@ class StudentController extends Crud
'salt' => $salt,
'avatar' => $request_data['avatar'],
'parent_id' => $request_data['parent_id'],
'show_schedule' => isset($request_data['show_schedule']) ? $request_data['show_schedule'] : 0,
'show_homework' => isset($request_data['show_homework']) ? $request_data['show_homework'] : 0,
'show_feedback' => isset($request_data['show_feedback']) ? $request_data['show_feedback'] : 0,
];
}

View File

@ -188,7 +188,7 @@ class TeacherScheduleTimeController extends Crud
if (!is_time_cross($cross_data_time)) {
throw new Exception('请确认时间是否有重叠');
}
if (isset($data['teacher_schedule_id'])) {
$teacher_schedule_id = array_filter($data['teacher_schedule_id']);

View File

@ -79,6 +79,7 @@
<!-- 表格行工具栏 -->
<script type="text/html" id="table-bar">
<button type="button" class="layui-btn layui-btn-xs" lay-event="edit" permission="app.admin.student.update">编辑</button>
<button type="button" class="layui-btn layui-btn-xs layui-bg-orange" lay-event="set_auth" permission="app.admin.student.update">权限设置</button>
<button type="button" class="layui-btn layui-btn-xs layui-bg-orange" lay-event="check_schedule" permission="app.admin.student.update">查看课表</button>
<button type="button" class="layui-btn layui-btn-xs layui-bg-blue" lay-event="reset_openid" permission="app.admin.teacher.update">解绑微信</button>
<button type="button" class="layui-btn layui-btn-xs layui-bg-blue" lay-event="rest_password" permission="app.admin.teacher.update">重置密码</button>
@ -221,6 +222,8 @@
edit(obj);
}else if (obj.event === "check_schedule") {
check_schedule(obj);
}else if (obj.event === "set_auth") {
set_auth(obj);
} else if (obj.event === "reset_openid") {
reset_openid(obj);
} else if (obj.event === "rest_password") {
@ -321,6 +324,19 @@
content: UPDATE_URL + "?" + PRIMARY_KEY + "=" + value
});
}
// 查看课表
let set_auth = function (obj) {
let value = obj.data[PRIMARY_KEY];
layer.open({
type: 2,
title: "权限设置",
shade: 0.1,
maxmin: true,
area: [common.isModile() ? "100%" : "1000px", common.isModile() ? "100%" : "750px"],
content: "/app/admin/student/checkSchedule?student_id=" + value
});
}
// 查看课表
let check_schedule = function (obj) {
let value = obj.data[PRIMARY_KEY];

View File

@ -36,19 +36,6 @@
</div>
</div>
<!-- <div class="layui-form-item">-->
<!-- <label class="layui-form-label">密码盐</label>-->
<!-- <div class="layui-input-block">-->
<!-- <input type="text" name="salt" value="" class="layui-input">-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="layui-form-item">-->
<!-- <label class="layui-form-label">昵称</label>-->
<!-- <div class="layui-input-block">-->
<!-- <input type="text" name="nickname" value="" class="layui-input">-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-form-item">
<label class="layui-form-label">头像</label>
@ -79,6 +66,27 @@
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">查看课表</label>
<div class="layui-input-block">
<input type="checkbox" name="show_schedule" value="1" title="开启|关闭" lay-filter="show_schedule" lay-skin="switch">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">作业列表</label>
<div class="layui-input-block">
<input type="checkbox" name="show_homework" value="1" title="开启|关闭" lay-filter="show_homework" lay-skin="switch">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">课程反馈</label>
<div class="layui-input-block">
<input type="checkbox" name="show_feedback" value="1" title="开启|关闭" lay-filter="show_feedback" lay-skin="switch">
</div>
</div>
</div>
</div>
@ -125,7 +133,13 @@
if (typeof obj[0] === "undefined" || !obj[0].nodeName) return;
if (obj[0].nodeName.toLowerCase() === "textarea") {
obj.val(value);
} else {
} else if (obj[0].type.toLowerCase() === "checkbox"){
console.log(11111111111, value)
if(value){
obj.attr("checked", true);
// obj[0].value = value;
}
}else {
obj.attr("value", value);
obj[0].value = value;
}
@ -165,13 +179,44 @@
if (res.code) {
layui.popup.failure(res.msg);
}
layui.form.render()
}
});
});
//提交事件
layui.use(["form", "popup"], function () {
layui.form.on('switch(show_schedule)', function (data) {
var elem = data.elem; // 获得 checkbox 原始 DOM 对象
var checked = elem.checked; // 获得 checkbox 选中状态
var value = elem.value; // 获得 checkbox 值
var othis = data.othis; // 获得 checkbox 元素被替换后的 jQuery 对象
if(!checked){
layui.form.val('show_schedule', 0);
}
});
layui.form.on('switch(show_homework)', function (data) {
var elem = data.elem; // 获得 checkbox 原始 DOM 对象
var checked = elem.checked; // 获得 checkbox 选中状态
var value = elem.value; // 获得 checkbox 值
var othis = data.othis; // 获得 checkbox 元素被替换后的 jQuery 对象
if(!checked){
layui.form.val('show_homework', 0);
}
});
layui.form.on('switch(show_feedback)', function (data) {
var elem = data.elem; // 获得 checkbox 原始 DOM 对象
var checked = elem.checked; // 获得 checkbox 选中状态
var value = elem.value; // 获得 checkbox 值
var othis = data.othis; // 获得 checkbox 元素被替换后的 jQuery 对象
if(!checked){
layui.form.val('show_feedback', 0);
}
});
// 字段验证允许为空
layui.form.verify({
phone: [/(^$)|^1\d{10}$/, "请输入正确的手机号"],