2025-06-25 10:53:11 +08:00

209 lines
5.9 KiB
JavaScript

layui.define(['tool'], function (exports) {
const layer = layui.layer;
const form = layui.form;
const tool = layui.tool;
const laydate = layui.laydate;
const obj = {
load: function (tid) {
let callback = function (res) {
if (res.code == 0 && res.data.length > 0) {
let itemSchedule = '';
$.each(res.data, function (index, item) {
let createTime = new Date(item.create_time * 1000).toLocaleString();
let lineClass = item.is_new == 1 ? 'unread' : 'isread';
let readStatus = item.is_new == 1 ? '未读' : '已读';
itemSchedule +=
`
<div class="work-record py-1">
<div>
<p><strong>阅读状态:</strong><button class="${lineClass}" data-id="${item.id}" data-status="${item.is_new}">${readStatus}</button></p>
</div>
<p class="font-gray" style="margin-top:10px;">
<strong>${item.name}</strong>&nbsp;&nbsp;在&nbsp;&nbsp;<strong>${createTime}</strong>&nbsp;&nbsp;发布
</p>
<p><strong>内容为:</strong>${item.title}</p>
<p><strong>补充描述:</strong>${item.remark}</p>
<span class="line"></span>
</div>
`;
});
$("#schedule_" + tid).html(itemSchedule);
layer.closeAll();
// 添加点击事件以更改读取状态
$(".unread, .isread").on("click", function () {
let id = $(this).data("id");
let status = $(this).data("status");
let newStatus = status == 1 ? 0 : 1;
let newClass = newStatus == 1 ? 'unread' : 'isread';
let newStatusText = newStatus == 1 ? '未读' : '已读';
$(this).removeClass().addClass(newClass).text(newStatusText);
$.ajax({
url: "/api/schedule/update_status",
method: "POST",
data: {
id: id,
is_new: newStatus
},
success: function (res) {
if (res.code == 0) {
layer.msg("更新成功");
location.reload();
} else {
layer.msg(res.msg);
}
},
error: function () {
layer.msg("更新失败");
}
});
});
}
};
tool.post("/api/schedule/get_list", { tid: tid }, callback);
},
//保存
save: function (postData) {
let callback = function (e) {
if (e.code == 0) {
layer.closeAll();
layer.msg(e.msg);
if (postData.id > 0) {
layui.pageTable.reload();
}
else {
tool.load('/task/index/view?id=' + postData.tid);
}
} else {
layer.msg(e.msg);
}
}
tool.post("/schedule/index/add", postData, callback);
},
//查看
view: function (detail) {
var content = `<div style="width:776px">
<table class="layui-table" style="margin:12px 12px 0;">
<tr>
<td class="layui-td-gray">执行员工</td>
<td>${detail.name}</td>
<td class="layui-td-gray">所在部门</td>
<td>${detail.department}</td>
<td class="layui-td-gray">工作类型</td>\
<td>${detail.work_cate}</td>
</tr>
<tr>
<td class="layui-td-gray">工作内容</td>
<td colspan="5">${detail.title}</td>
</tr>
<tr>
<td class="layui-td-gray">补充描述</td>
<td colspan="5">${detail.remark}</td>
</tr>
</table>
<table class="layui-table" style="margin:12px 12px 0;">
<tr>
<td class="layui-td-gray">关联项目</td>
<td>${detail.project}</td>
</tr>
<tr>
<td class="layui-td-gray">关联任务</td>
<td>${detail.task}</td>
</tr>
</table>
</div>`;
layer.open({
type: 1,
title: '工作记录详情',
area: ['800px', '432px'],
content: content,
success: function () {
},
btn: ['关闭'],
btnAlign: 'c',
yes: function (idx) {
layer.close(idx);
}
})
},
//新增
add: function (tid, schedule) {
let that = this, detail = {}, title = '添加工作记录';
if (tid == 0) {
if(schedule['admin_id'] != GOUGU_DEV.uid){
layer.msg('不能编辑他人的工作记录');
return false;
}
title = '编辑工作记录';
detail['id'] = schedule['id'];
detail['tid'] = schedule['tid'];
detail['title'] = schedule['title'];
detail['remark'] = schedule['remark'];
} else {
detail['id'] = 0;
detail['tid'] = tid;
detail['title'] = '';
detail['remark'] = '';
}
var content = `<form class="layui-form" style="width:700px">
<table class="layui-table" style="margin:12px 12px 0;">
<tr>
<td class="layui-td-gray">工作内容 <span style="color: red">*</span></td>
<td><input name="title" class="layui-input" value="${detail.title}" lay-verify="required" lay-reqText="请完成工作内容"></td>
</tr>
<tr>
<td class="layui-td-gray">补充描述</td>
<td>
<textarea name="remark" form-input="remark" class="layui-textarea" style="min-height:120px;">${detail.remark}</textarea>
</td>
</tr>
</table>
</form>`;
layer.open({
type: 1,
title: title,
area: ['724px', '396px'],
content: content,
success: function () {
form.render();
$('[name="title"]').on('input', function () {
var _val = $(this).val();
detail.title = _val;
});
$('[form-input="remark"]').on('input', function () {
var _val = $(this).val();
detail.remark = _val;
});
},
btn: ['确定提交'],
btnAlign: 'c',
yes: function (idx) {
if (detail.title == '') {
layer.msg('请填写工作内容');
return;
}
that.save(detail);
// 发送数据到钉钉机器人
$.ajax({
url: "/api/dingdingrobot/sendto",
method: "POST",
data: {
message: "工作记录添加成功!"
},
success: function (res) {
console.log(res);
},
error: function () {
console.log("工作记录添加失败!");
}
});
}
})
}
};
exports('gouguSchedule', obj);
});