From 418034a5b6ab0863e648080814c8148c20c6f77c Mon Sep 17 00:00:00 2001 From: caoqianming Date: Sun, 31 Jan 2021 21:30:50 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9A=90=E6=82=A3=E8=B7=9F=E8=B8=AA=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E6=88=90=EF=BC=8C=E5=B7=AE=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- safesite/templates/troublefollow.html | 86 ++++++++++++++----- .../templates/troublefollowtasksetedit.html | 2 +- safesite/views.py | 29 ++++++- 3 files changed, 92 insertions(+), 25 deletions(-) diff --git a/safesite/templates/troublefollow.html b/safesite/templates/troublefollow.html index 7315aa00..3773642e 100644 --- a/safesite/templates/troublefollow.html +++ b/safesite/templates/troublefollow.html @@ -11,6 +11,10 @@ {% if request|has_permission:'b_troublefollowtaskset_edit' %} 编辑计划 + {% endif %} + {% if request|has_permission:'b_troublefollowtaskset_toggle' %} + 暂停/启用派发 {% endif %} {% if request|has_permission:'b_troublefollowtaskset_del' %}
+ {% if request|has_permission:'b_troublefollowtask_del' %} 删除任务 - 作废任务 -
+ {% endif %}
@@ -45,7 +48,6 @@ singleSelect: true, striped: true, method: 'get', - url: '', fitColumns: true, pagination: true, pageSize: 20, @@ -86,12 +88,8 @@ } }, { field: 'gridlevel__dickeyname', title: '网格层级', width: '80px' }, - { field: 'user__name', title: '跟踪人', width: '80px' }, - { field: 'myschedule__name', title: '任务策略', width: '150px' }, - { field: 'last_run_at', title: '最近派发时间', width: '100px' }, - { - field: 'periodictask__enabled', title: '派发状态', width: '60px', - formatter: function (value, row, index) { + { field: 'periodictask__enabled', title: '派发状态', width: '80px', + formatter: function (value, row, index) { switch (value) { case true: return '正常'; break; case false: return '暂停'; break; @@ -102,8 +100,11 @@ case true: return 'font-weight:bold;color:green'; break; case false: return 'color:red;font-weight:bold'; break; } - } - }, + } + }, + { field: 'user__name', title: '跟踪人', width: '80px' }, + { field: 'myschedule__name', title: '任务策略', width: '150px' }, + { field: 'last_run_at', title: '最近派发时间', width: '100px' }, { field: 'count', title: '已派发次数', width: '100px' }, { field: 'note', title: '执行备注', width: '200px' }, ]], @@ -123,20 +124,28 @@ { field: 'id', hidden: true }, { field: 'taskadd', title: '任务派发时间', width: 100 }, { field: 'taskexpire', title: '任务过期时间', width: 100 }, - { field: 'desc', title: '跟踪描述', width: 200 }, - { field: 'taskdo', title: '任务执行时间', width: 100 }, + { field: 'desc', title: '跟踪描述', width: 200, styler: function (value, row, index) { + + return 'font-weight:bold;color:green'; + + }}, + { field: 'taskdo', title: '任务执行时间', width: 100, styler: function (value, row, index) { + + return 'font-weight:bold;color:green'; + + } }, { field: 'usable', title: '任务状态', width: 80, formatter: function (value, row, index) { if(value==1){ - return '可用' - }else if (value==0&&row.taskdo==null){ - return '作废' - }else if(row.taskdo){ - return '已执行' + return '可执行' + }else if(value==0&&row.taskdo==null){ + return '未执行' } }, styler: function (value, row, index) { - switch (value) { - case 1: return 'color:white;background-color:green'; break; - }}}, + if(value==1){ + return 'color:white;background-color:green'; + }else if(value==0&&row.taskdo==null){ + return 'color:red;'; + }}} ]] }); function delyhgzrw() { @@ -223,6 +232,39 @@ $.messager.alert('提示', '请先选择一个任务配置!'); } } + function togglegyhgzrw() { + var row = $('#yhgzrwtable').datagrid('getSelected'); + if (row) { + var msg = '确定启动派发吗?' + if(row.periodictask__enabled){ + msg = '确定暂停派发吗?' + } + $.messager.confirm('提示', msg, function (r) { + if (r) { + $.ajax({ + type: "GET", + url: 'api/gridtaskset?a=toggle&id=' + row.id, + datatype: "json", + beforeSend: function () { }, + success: function (data) { + $("#yhgzrwtable").datagrid('reload'); + }, + + complete: function (XMLHttpRequest, textStatus) { + }, + + error: function () { + + } + }); + } + } + ); + } + else { + $.messager.alert('提示', '未选择数据!'); + } + } diff --git a/safesite/templates/troublefollowtasksetedit.html b/safesite/templates/troublefollowtasksetedit.html index 04376b0f..7970d28c 100644 --- a/safesite/templates/troublefollowtasksetedit.html +++ b/safesite/templates/troublefollowtasksetedit.html @@ -99,7 +99,7 @@ }, success: function (data) { if (data.code == 1) { - $("#girdtasksettable").datagrid('reload'); + $("#yhgzrwtable").datagrid('reload'); $("#dd").dialog("close"); } else { $.messager.alert('提示', '失败!'); } $('#submitb').linkbutton('enable'); diff --git a/safesite/views.py b/safesite/views.py index 5e54484a..65e42d82 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -7836,8 +7836,7 @@ def apitroublefollowtask(req): objs = objs[startnum:endnum].values('id', 'trouble__yhnum', 'trouble', 'taskadd', 'taskdo', 'taskexpire', 'desc', 'user', 'user__name', 'usable') return HttpResponse(transjson(total, objs), content_type="application/json") elif a=='del': - data = json.loads(req.body.decode('utf-8')) - TroubleFollowTask.objects.filter(id=data['id']).delete() + TroubleFollowTask.objects.filter(id=req.POST.get('id')).delete() return JsonResponse({'code': 1}) elif a=='invalid': data = json.loads(req.body.decode('utf-8')) @@ -7845,6 +7844,32 @@ def apitroublefollowtask(req): return JsonResponse({'code': 1}) elif a=='mytodonum': return JsonResponse({'code': 1, 'mytodonum':TroubleFollowTask.objects.filter(user__userid=userid,usable=1).count()}) + elif a=='listtodo': + objs = TroubleFollowTask.objects.filter(user__userid=userid,usable=1).order_by('-pk', '-taskadd') + total = objs.count() + startnum, endnum = fenye(req) + objs = objs[startnum:endnum].values('id', 'trouble__yhnum', 'trouble', 'taskadd', 'taskdo', 'taskexpire', 'desc', 'user', 'user__name', 'usable', 'gridlevel__dickeyname', 'trouble__yhms') + return HttpResponse(transjson(total, objs), content_type="application/json") + elif a=='listdone': + objs = TroubleFollowTask.objects.filter(user__userid=userid,usable=0).order_by('-pk', '-taskadd') + total = objs.count() + startnum, endnum = fenye(req) + objs = objs[startnum:endnum].values('id', 'trouble__yhnum', 'trouble', 'taskadd', 'taskdo', 'taskexpire', 'desc', 'user', 'user__name', 'usable', 'gridlevel__dickeyname', 'trouble__yhms') + return HttpResponse(transjson(total, objs), content_type="application/json") + elif a=='detail': + obj = TroubleFollowTask.objects.filter(id=req.GET.get('id')).values('id', 'trouble__yhnum', 'trouble', 'taskadd', 'taskdo', 'taskexpire', 'desc', 'user', 'user__name', 'usable', 'gridlevel__dickeyname', 'trouble__yhms', 'tasknote') + return HttpResponse(json.dumps(obj[0], cls=MyEncoder), content_type="application/json") + elif a=='handle': + data = json.loads(req.body.decode('utf-8')) + obj = TroubleFollowTask.objects.get(id=data['id']) + obj.desc = data.get('desc', None) + obj.taskdo = datetime.now() + obj.usable = 0 + obj.save() + return JsonResponse({'code': 1}) + + + def apiriskacttask(req): a = req.GET.get('a')