From 970060a2ff09f3df34cc8e53b9b5918fdc5a0bb5 Mon Sep 17 00:00:00 2001
From: shilixia <2309368887@qq.com>
Date: Fri, 20 Sep 2019 10:15:49 +0800
Subject: [PATCH 1/4] xinbiao
---
safesite/models.py | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/safesite/models.py b/safesite/models.py
index d66da860..7ceba04c 100644
--- a/safesite/models.py
+++ b/safesite/models.py
@@ -868,3 +868,14 @@ class FileManage(models.Model):
usecomp= models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True)
downnum = models.IntegerField(default=0)
deletemark = models.IntegerField(default=1)
+
+#管理制度表
+class Mgtsystem(models.Model):
+ id = models.AutoField(primary_key=True)
+ mgtname = models.CharField(max_length=50)
+ type = models.ForeignKey(Dicclass,related_name='mgttypename',on_delete=models.CASCADE)
+ usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True)
+ mgtpath = models.CharField(max_length=200,null=True,blank=True)
+ publisdate = models.DateTimeField(default = timezone.now)
+ createuser = models.ForeignKey(User,on_delete=models.CASCADE)
+ deletemark = models.IntegerField(default=1)
From a6c7571ccc77532b106064d9e8d8643ffca86f71 Mon Sep 17 00:00:00 2001
From: shilixia <2309368887@qq.com>
Date: Tue, 8 Oct 2019 09:41:00 +0800
Subject: [PATCH 2/4] shangchuan
---
safesite/mgt/__init__.py | 0
safesite/mgt/urls.py | 11 +
safesite/mgt/views.py | 92 +++++
.../migrations/0270_auto_20190923_1017.py | 29 ++
.../migrations/0271_auto_20190923_1018.py | 18 +
.../migrations/0272_auto_20190923_1026.py | 23 ++
safesite/models.py | 2 +-
.../static/safesite/easyui/themes/icon.css | 3 +
.../safesite/easyui/themes/icons/gmt.png | Bin 0 -> 859 bytes
safesite/templates/edulessonadd.html | 52 ++-
safesite/templates/edulessonaddwj.html | 57 ++--
safesite/templates/lawsadd.html | 54 +--
safesite/templates/mgtadd.html | 314 ++++++++++++++++++
safesite/templates/mgtindex.html | 78 +++++
safesite/urls.py | 1 +
15 files changed, 648 insertions(+), 86 deletions(-)
create mode 100644 safesite/mgt/__init__.py
create mode 100644 safesite/mgt/urls.py
create mode 100644 safesite/mgt/views.py
create mode 100644 safesite/migrations/0270_auto_20190923_1017.py
create mode 100644 safesite/migrations/0271_auto_20190923_1018.py
create mode 100644 safesite/migrations/0272_auto_20190923_1026.py
create mode 100644 safesite/static/safesite/easyui/themes/icons/gmt.png
create mode 100644 safesite/templates/mgtadd.html
create mode 100644 safesite/templates/mgtindex.html
diff --git a/safesite/mgt/__init__.py b/safesite/mgt/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/safesite/mgt/urls.py b/safesite/mgt/urls.py
new file mode 100644
index 00000000..eff7d666
--- /dev/null
+++ b/safesite/mgt/urls.py
@@ -0,0 +1,11 @@
+from django.urls import path
+from . import views
+
+urlpatterns = [
+ path('', views.index),
+ path('add',views.add),
+ path('api',views.api),
+ path('getdickey', views.getdickey),
+ path('upload', views.upload),
+
+]
\ No newline at end of file
diff --git a/safesite/mgt/views.py b/safesite/mgt/views.py
new file mode 100644
index 00000000..c23beb33
--- /dev/null
+++ b/safesite/mgt/views.py
@@ -0,0 +1,92 @@
+from django.shortcuts import render,redirect,render_to_response
+from django.http import HttpResponse, HttpResponseRedirect,JsonResponse
+from ..models import User,Trouble,Dickey,Partment,Dicclass,Train,Drill,TroubleAccess,Group,Yjyc,Trainuser,Drilluser,Yjsetup,Menu,Observe,Observeto,Unsafes,Miss,Socertificate,Userprofile,Suggest,Notice,Noticeto,Operation,Operzyry,Fxcs,Operationspjd,Operspxq,Question,ExamPaper,ExamTest,ExamPaperDetail,ExamTestDetail,Questioncat,Safecert,Map,Area,Missto,Suggestflow,Equipment,Inspect,Risk,RiskAct,Edulesson,EdulessonWatch,FileManage,FileReader,Regulations,Mgtsystem
+from django.template import RequestContext
+from django.views.decorators.csrf import csrf_exempt
+from django.core import serializers
+import json
+from uuid import UUID
+import os
+import time
+from datetime import datetime,date,timedelta
+from django.db.models import F,Count,Sum
+import requests
+from ..tasks import send_wechatmsgs,send_wechatmsg,yjjs,gettime,yjjs_px,yjjs_yl,updateTzzs,updateAqzs
+from ..export import exportdoc,exportxlsx,exportyjdoc,exportsimplexlsx,exportdoc2
+from ..daoru import drusers,drequipments,drrisks
+from django.forms.models import model_to_dict
+from ..safespider import getTzzs,getAqzs
+#from duibiao import calsim
+from django.db.models import Q
+from django.core.serializers.json import DjangoJSONEncoder
+from io import StringIO
+import operator
+import jwt
+from ..views import getcompany,fenye,transjson
+#法律法规
+def index(req):
+ return render(req,'mgtindex.html')
+def add(req):
+ return render(req,'mgtadd.html')
+#上传文件,返回地址和名称
+def upload(req):
+ username = User.objects.get(userid=req.session['userid']).username
+ file_name = time.strftime('%Y%m%d%H%M%S')+ '_' + req.FILES['mf'].name
+ user_upload_folder = os.path.join('media/mgt', username)
+ if not os.path.exists(user_upload_folder):
+ os.mkdir(user_upload_folder)
+ filepath = os.path.join(user_upload_folder, file_name)
+ filepath = filepath.replace('\\','/')
+ with open( filepath, 'wb') as f:
+ f.write(req.FILES['mf'].read())
+ return JsonResponse({"code":1,"filename":file_name,"filepath":filepath})
+#转换为combobox所用string
+def transstr(obj,str1,str2):
+ keylist = []
+ for i in list(obj):
+ keydictstr = '{"value":"'+ str(i[str1])+'","text":"'+i[str2]+'"}'
+ keylist.append(keydictstr)
+ keystr = '['+','.join(keylist)+']'
+ return keystr
+
+def getdickey(req):
+ dicclass=req.GET.get('dicclass')
+ a = Dickey.objects.filter(dicparent=req.GET.get('dicclass'),deletemark=1)
+ a = a.values('dickeyid','dicparent__dicname','dickeyname','dicparent__dicid','detail').order_by('dickeyid')
+ return HttpResponse(transstr(a,'dickeyid','dickeyname'),content_type="application/json")
+
+def api(req):
+ a=req.GET.get('a')
+ userid = req.session['userid']
+ companyid = getcompany(userid)
+ if a == 'add':
+ obj = Mgtsystem()
+ data = json.loads(req.body.decode('utf-8'))
+ obj.mgtname = data['mgtname']
+ obj.mgtpath = data['filepath']
+ obj.type= Dickey.objects.get(dickeyid=data['type'])
+ obj.publisdate=data['publisdate']
+ obj.usecomp=Partment.objects.get(partid=companyid)
+ obj.createuser=User.objects.get(userid=userid)
+
+ obj.save()
+ return JsonResponse({"code":1})
+
+ elif a=='listall':
+ startnum,endnum=fenye(req)
+ a = Mgtsystem.objects.filter(usecomp=Partment.objects.get(partid=companyid) ,deletemark=1).order_by('id')
+ total = a.count()
+ startnum,endnum=fenye(req)
+ a = a[startnum:endnum].values('id','mgtname','mgtpath','type__dickeyname','publisdate','createuser__name')
+ return HttpResponse(transjson(total,a),content_type="application/json")
+
+ elif a == 'del':
+ id =req.GET.get('id')
+ userid = req.session['userid']
+ a = Mgtsystem.objects.get(id=id)
+ if a.usecomp==Partment.objects.get(partid=companyid):
+ a.deletemark=0
+ a.save()
+ return JsonResponse({"code":1})
+ else:
+ return JsonResponse({"code":0})
\ No newline at end of file
diff --git a/safesite/migrations/0270_auto_20190923_1017.py b/safesite/migrations/0270_auto_20190923_1017.py
new file mode 100644
index 00000000..9663ee76
--- /dev/null
+++ b/safesite/migrations/0270_auto_20190923_1017.py
@@ -0,0 +1,29 @@
+# Generated by Django 2.1.5 on 2019-09-23 10:17
+
+from django.db import migrations, models
+import django.db.models.deletion
+import django.utils.timezone
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('safesite', '0269_auto_20190919_1423'),
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Mgtsystem',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('mgtname', models.CharField(max_length=50)),
+ ('mgtpath', models.CharField(blank=True, max_length=200, null=True)),
+ ('publisdate', models.DateTimeField(default=django.utils.timezone.now)),
+ ('deletemark', models.IntegerField(default=1)),
+ ('createuser', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.User')),
+ ('type', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='safesite.Dickey')),
+ ('usecomp', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment')),
+ ],
+ ),
+
+ ]
diff --git a/safesite/migrations/0271_auto_20190923_1018.py b/safesite/migrations/0271_auto_20190923_1018.py
new file mode 100644
index 00000000..8095f19f
--- /dev/null
+++ b/safesite/migrations/0271_auto_20190923_1018.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.1.5 on 2019-09-23 10:18
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('safesite', '0270_auto_20190923_1017'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='mgtsystem',
+ name='mgtname',
+ field=models.CharField(max_length=64),
+ ),
+ ]
diff --git a/safesite/migrations/0272_auto_20190923_1026.py b/safesite/migrations/0272_auto_20190923_1026.py
new file mode 100644
index 00000000..10d4006e
--- /dev/null
+++ b/safesite/migrations/0272_auto_20190923_1026.py
@@ -0,0 +1,23 @@
+# Generated by Django 2.1.5 on 2019-09-23 10:26
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('safesite', '0271_auto_20190923_1018'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='mgtsystem',
+ name='id',
+ field=models.AutoField(primary_key=True, serialize=False),
+ ),
+ migrations.AlterField(
+ model_name='mgtsystem',
+ name='mgtname',
+ field=models.CharField(max_length=50),
+ ),
+ ]
diff --git a/safesite/models.py b/safesite/models.py
index 2db04881..6e6d1b20 100644
--- a/safesite/models.py
+++ b/safesite/models.py
@@ -873,7 +873,7 @@ class FileManage(models.Model):
class Mgtsystem(models.Model):
id = models.AutoField(primary_key=True)
mgtname = models.CharField(max_length=50)
- type = models.ForeignKey(Dicclass,related_name='mgttypename',on_delete=models.CASCADE)
+ type = models.ForeignKey(Dickey,on_delete=models.CASCADE,null=True,blank=True)
usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True)
mgtpath = models.CharField(max_length=200,null=True,blank=True)
publisdate = models.DateTimeField(default = timezone.now)
diff --git a/safesite/static/safesite/easyui/themes/icon.css b/safesite/static/safesite/easyui/themes/icon.css
index 1cf78d04..ec677c31 100644
--- a/safesite/static/safesite/easyui/themes/icon.css
+++ b/safesite/static/safesite/easyui/themes/icon.css
@@ -148,6 +148,9 @@
.icon-edu{
background:url('icons/edu.png') no-repeat center center;
}
+.icon-gmt {
+ background: url('icons/gmt.png') no-repeat center center;
+}
.icon-regulationstype {
background: url('icons/regulationstype.png') no-repeat center center;
}
diff --git a/safesite/static/safesite/easyui/themes/icons/gmt.png b/safesite/static/safesite/easyui/themes/icons/gmt.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb4e104381ad83b7636750d0d874991e0389f7fb
GIT binary patch
literal 859
zcmV-h1ElWv?5Pf5tNNs*Zca_=@dV-Q=3kV|BtjP&VPSE58B_{|uLCFb9x3CCNh`J0tK?tN$
zcO@igB`}_9h;1APo4ABcRjT1>
ztH;$kh}cOfI0{fA3;=KNc1rg>;CLVFQ>;;QHg^YNaG8h#)5^?o0u|;0APk@X0sLDT
zkosq)?JydUvURVwt6=0QCNjOH$U%2~qwzDpyO|mSkhD008U&*kj;JC#B~FrO=@;
z%EYwR*R*wC0FR-8Q4b+dZ&8c8xnDi07KrJS^o}46G))EJL}-$`XPg6A1Gw2&Bb#=U
zax?+#x6^uYZWIXTP<J6~JI9D7BON?rNi2CQ!DW(&IwOTmYEF`xnXFw(x!PG}2nR
zHnu^MP5uc`+}+@2)&LQgWEOCh!KHA%a$^+QDZOOBfBy9_zA!Y-7<|x4<($Sfvj!9s
zC28CCMy$~0)f2TYwck$b&+PYBIVQYmB?<8}9GsXB`(5N;&jyAml#{is>-Yz#wkX=9V*})wEPM^MOtHB_~07hdL
zgIfbNlDBHV?sdIM!KU6^f)Kc`WCVO5LLQ7=5uP+5@BBA60M_Xb25O`@O?19aIGynO
lD{g6{A~Q
选择视频
-
+
@@ -220,37 +220,35 @@
$(".el-upload-list").css("display", "block");
$(".el-upload-list li").css("border", "1px solid #20a0ff");
$("#videoName").text(fileObj.name);
+ var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
+ if (fileObj == undefined || fileObj == "") {
+ alert("请选择文件");
+ return false;
+ };
+ var imagSize = document.getElementById("file").files[0].size;
+ if (imagSize > 1024 * 1024 * 10) {
+ alert("视频大小为:" + (imagSize / (1024 * 1024)).toFixed(2) + "M,超出了上传大小," + "请选择3M以内的视频!");
+ return false;
+ }
+ var url = "edu/api/upload"; // 接收上传文件的后台地址
+ var form = new FormData(); // FormData 对象
+ form.append("mf", fileObj); // 文件对象
+ xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
+ xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
+ xhr.onload = uploadComplete; //请求完成
+ xhr.onerror = uploadFailed; //请求失败
+ xhr.upload.onprogress = progressFunction; //【上传进度调用方法实现】
+ xhr.upload.onloadstart = function () { //上传开始执行方法
+ ot = new Date().getTime(); //设置上传开始时间
+ oloaded = 0; //设置上传开始时,以上传的文件大小为0
+ };
+ xhr.send(form); //开始上传,发送form数据
} else {
alert("请选择文件");
}
}
- /*点击提交*/
- function sub() {
- var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
- if (fileObj == undefined || fileObj == "") {
- alert("请选择文件");
- return false;
- };
- var imagSize = document.getElementById("file").files[0].size;
- if (imagSize > 1024 * 1024 * 10) {
- alert("视频大小为:" + (imagSize / (1024 * 1024)).toFixed(2) + "M,超出了上传大小," + "请选择3M以内的视频!");
- return false;
- }
- var url = "edu/api/upload"; // 接收上传文件的后台地址
- var form = new FormData(); // FormData 对象
- form.append("mf",fileObj); // 文件对象
- xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
- xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
- xhr.onload = uploadComplete; //请求完成
- xhr.onerror = uploadFailed; //请求失败
- xhr.upload.onprogress = progressFunction; //【上传进度调用方法实现】
- xhr.upload.onloadstart = function () { //上传开始执行方法
- ot = new Date().getTime(); //设置上传开始时间
- oloaded = 0; //设置上传开始时,以上传的文件大小为0
- };
- xhr.send(form); //开始上传,发送form数据
- }
+
//上传进度实现方法,上传过程中会频繁调用该方法
function progressFunction(evt) {
diff --git a/safesite/templates/edulessonaddwj.html b/safesite/templates/edulessonaddwj.html
index ea8b8a15..99948dcc 100644
--- a/safesite/templates/edulessonaddwj.html
+++ b/safesite/templates/edulessonaddwj.html
@@ -150,7 +150,7 @@
选择文件
-
+
上传文件名称
@@ -228,7 +228,30 @@
$(".el-upload-list").css("display", "block");
$(".el-upload-list li").css("border", "1px solid #20a0ff");
$("#fileName").text(fileObj.name);
-
+ var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
+ if (fileObj == undefined || fileObj == "") {
+ alert("请选择文件");
+ return false;
+ };
+ var imagSize = document.getElementById("file").files[0].size;
+ if (imagSize > 1024 * 1024 * 3) {
+ alert("文件大小为:" + (imagSize / (1024 * 1024)).toFixed(2) + "M,超出了上传大小," + "请选择3M以内的文件!");
+ return false;
+ }
+
+ var url = "edu/api/upload"; // 接收上传文件的后台地址
+ var form = new FormData(); // FormData 对象
+ form.append("mf", fileObj); // 文件对象
+ xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
+ xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
+ xhr.onload = uploadComplete; //请求完成
+ xhr.onerror = uploadFailed; //请求失败
+ xhr.upload.onprogress = progressFunction; //【上传进度调用方法实现】
+ xhr.upload.onloadstart = function () { //上传开始执行方法
+ ot = new Date().getTime(); //设置上传开始时间
+ oloaded = 0; //设置上传开始时,以上传的文件大小为0
+ };
+ xhr.send(form); //开始上传,发送form数据
}
else {
@@ -236,35 +259,7 @@
}
}
- /*点击提交*/
- function sub() {
- var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
- if (fileObj == undefined || fileObj == "") {
- alert("请选择文件");
- return false;
- };
- var imagSize = document.getElementById("file").files[0].size;
- if (imagSize > 1024 * 1024 * 3)
- {
- alert("文件大小为:" + (imagSize / (1024 * 1024)).toFixed(2) + "M,超出了上传大小," + "请选择3M以内的文件!");
- return false;
- }
-
- var url = "edu/api/upload"; // 接收上传文件的后台地址
- var form = new FormData(); // FormData 对象
- form.append("mf",fileObj); // 文件对象
- xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
- xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
- xhr.onload = uploadComplete; //请求完成
- xhr.onerror = uploadFailed; //请求失败
- xhr.upload.onprogress = progressFunction; //【上传进度调用方法实现】
- xhr.upload.onloadstart = function () { //上传开始执行方法
- ot = new Date().getTime(); //设置上传开始时间
- oloaded = 0; //设置上传开始时,以上传的文件大小为0
- };
- xhr.send(form); //开始上传,发送form数据
- }
-
+
//上传进度实现方法,上传过程中会频繁调用该方法
function progressFunction(evt) {
// event.total是需要传输的总字节,event.loaded是已经传输的字节。如果event.lengthComputable不为真,则event.total等于0
diff --git a/safesite/templates/lawsadd.html b/safesite/templates/lawsadd.html
index e6bbf93e..1aea27d9 100644
--- a/safesite/templates/lawsadd.html
+++ b/safesite/templates/lawsadd.html
@@ -158,7 +158,7 @@
选择文件
-
+
@@ -219,7 +219,7 @@
success: function (data) {
if (data.code == 1) {
alert("数据保存!");
- $('#edutab').datagrid('reload');
+ $('#tmtable').datagrid('reload');
$("#dd").dialog("close");
} else { $.messager.alert('提示', '失败!'); }
$('#submitb').linkbutton('enable');
@@ -241,37 +241,37 @@
//$("#maragename").text(fileObj.name);
$("#maragename").textbox('setValue', fileObj.name)
+
+ var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
+ if (fileObj == undefined || fileObj == "") {
+ alert("请选择文件");
+ return false;
+ };
+ var imagSize = document.getElementById("file").files[0].size;
+ if (imagSize > 1024 * 1024 * 10) {
+ alert("文件大小为:" + (imagSize / (1024 * 1024)).toFixed(2) + "M,超出了上传大小," + "请选择3M以内的文件!");
+ return false;
+ }
+ var url = "rlt/api/upload"; // 接收上传文件的后台地址
+ var form = new FormData(); // FormData 对象
+ form.append("mf", fileObj); // 文件对象
+ xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
+ xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
+ xhr.onload = uploadComplete; //请求完成
+ xhr.onerror = uploadFailed; //请求失败
+ xhr.upload.onprogress = progressFunction; //【上传进度调用方法实现】
+ xhr.upload.onloadstart = function () { //上传开始执行方法
+ ot = new Date().getTime(); //设置上传开始时间
+ oloaded = 0; //设置上传开始时,以上传的文件大小为0
+ };
+ xhr.send(form); //开始上传,发送form数据
} else {
alert("请选择文件");
}
}
/*点击提交*/
- function sub() {
- var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
- if (fileObj == undefined || fileObj == "") {
- alert("请选择文件");
- return false;
- };
- var imagSize = document.getElementById("file").files[0].size;
- if (imagSize > 1024 * 1024 * 10) {
- alert("文件大小为:" + (imagSize / (1024 * 1024)).toFixed(2) + "M,超出了上传大小," + "请选择3M以内的文件!");
- return false;
- }
- var url = "rlt/api/upload"; // 接收上传文件的后台地址
- var form = new FormData(); // FormData 对象
- form.append("mf",fileObj); // 文件对象
- xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
- xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
- xhr.onload = uploadComplete; //请求完成
- xhr.onerror = uploadFailed; //请求失败
- xhr.upload.onprogress = progressFunction; //【上传进度调用方法实现】
- xhr.upload.onloadstart = function () { //上传开始执行方法
- ot = new Date().getTime(); //设置上传开始时间
- oloaded = 0; //设置上传开始时,以上传的文件大小为0
- };
- xhr.send(form); //开始上传,发送form数据
- }
+
//上传进度实现方法,上传过程中会频繁调用该方法
function progressFunction(evt) {
diff --git a/safesite/templates/mgtadd.html b/safesite/templates/mgtadd.html
new file mode 100644
index 00000000..aa038f57
--- /dev/null
+++ b/safesite/templates/mgtadd.html
@@ -0,0 +1,314 @@
+
+
+
diff --git a/safesite/templates/mgtindex.html b/safesite/templates/mgtindex.html
new file mode 100644
index 00000000..09e87bae
--- /dev/null
+++ b/safesite/templates/mgtindex.html
@@ -0,0 +1,78 @@
+
+
+
+
\ No newline at end of file
diff --git a/safesite/urls.py b/safesite/urls.py
index 8d3309ca..d57b2a1c 100644
--- a/safesite/urls.py
+++ b/safesite/urls.py
@@ -172,4 +172,5 @@ urlpatterns = [
path('datashow/charthandle', views.charthandle),
path('companyinfo/', views.companyinfo),
path('rlt/',include('safesite.rlt.urls')),
+ path('mgt/',include('safesite.mgt.urls')),
]
From 08e42ae7adc62b1ba17e031443592ec5358d22eb Mon Sep 17 00:00:00 2001
From: shilixia <2309368887@qq.com>
Date: Tue, 8 Oct 2019 09:53:16 +0800
Subject: [PATCH 3/4] sc
---
safesite/templates/mgtadd.html | 52 ++++++++++++++++------------------
1 file changed, 25 insertions(+), 27 deletions(-)
diff --git a/safesite/templates/mgtadd.html b/safesite/templates/mgtadd.html
index aa038f57..6424b9b4 100644
--- a/safesite/templates/mgtadd.html
+++ b/safesite/templates/mgtadd.html
@@ -128,7 +128,7 @@
选择文件
-
+
@@ -215,37 +215,35 @@
$(".el-upload-list").css("display", "block");
$(".el-upload-list li").css("border", "1px solid #20a0ff");
$("#videoName").text(fileObj.name);
+ var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
+ if (fileObj == undefined || fileObj == "") {
+ alert("请选择文件");
+ return false;
+ };
+ var imagSize = document.getElementById("file").files[0].size;
+ if (imagSize > 1024 * 1024 * 10) {
+ alert("视频大小为:" + (imagSize / (1024 * 1024)).toFixed(2) + "M,超出了上传大小," + "请选择3M以内的视频!");
+ return false;
+ }
+ var url = "mgt/upload"; // 接收上传文件的后台地址
+ var form = new FormData(); // FormData 对象
+ form.append("mf", fileObj); // 文件对象
+ xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
+ xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
+ xhr.onload = uploadComplete; //请求完成
+ xhr.onerror = uploadFailed; //请求失败
+ xhr.upload.onprogress = progressFunction; //【上传进度调用方法实现】
+ xhr.upload.onloadstart = function () { //上传开始执行方法
+ ot = new Date().getTime(); //设置上传开始时间
+ oloaded = 0; //设置上传开始时,以上传的文件大小为0
+ };
+ xhr.send(form); //开始上传,发送form数据
} else {
alert("请选择文件");
}
}
- /*点击提交*/
- function sub() {
- var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
- if (fileObj == undefined || fileObj == "") {
- alert("请选择文件");
- return false;
- };
- var imagSize = document.getElementById("file").files[0].size;
- if (imagSize > 1024 * 1024 * 10) {
- alert("视频大小为:" + (imagSize / (1024 * 1024)).toFixed(2) + "M,超出了上传大小," + "请选择3M以内的视频!");
- return false;
- }
- var url = "mgt/upload"; // 接收上传文件的后台地址
- var form = new FormData(); // FormData 对象
- form.append("mf",fileObj); // 文件对象
- xhr = new XMLHttpRequest(); // XMLHttpRequest 对象
- xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。
- xhr.onload = uploadComplete; //请求完成
- xhr.onerror = uploadFailed; //请求失败
- xhr.upload.onprogress = progressFunction; //【上传进度调用方法实现】
- xhr.upload.onloadstart = function () { //上传开始执行方法
- ot = new Date().getTime(); //设置上传开始时间
- oloaded = 0; //设置上传开始时,以上传的文件大小为0
- };
- xhr.send(form); //开始上传,发送form数据
- }
+
//上传进度实现方法,上传过程中会频繁调用该方法
function progressFunction(evt) {
From 44fe311c69cdda8dfe80ce728b1e9d5f4882878e Mon Sep 17 00:00:00 2001
From: shilixia <2309368887@qq.com>
Date: Thu, 10 Oct 2019 15:49:45 +0800
Subject: [PATCH 4/4] kaoshixiangqing
---
safesite/templates/examhistory.html | 121 +++++++++++++++++++++++++
safesite/templates/examtestdetail.html | 18 ++--
safesite/templates/lawsadd.html | 2 +-
safesite/urls.py | 2 +-
safesite/views.py | 4 +-
5 files changed, 138 insertions(+), 9 deletions(-)
create mode 100644 safesite/templates/examhistory.html
diff --git a/safesite/templates/examhistory.html b/safesite/templates/examhistory.html
new file mode 100644
index 00000000..7bf21fd7
--- /dev/null
+++ b/safesite/templates/examhistory.html
@@ -0,0 +1,121 @@
+
+
+
+
+
+ 答题详情
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/safesite/templates/examtestdetail.html b/safesite/templates/examtestdetail.html
index 0766def4..a9c2a111 100644
--- a/safesite/templates/examtestdetail.html
+++ b/safesite/templates/examtestdetail.html
@@ -60,16 +60,16 @@
-
- 序号
- |
+
+ 序号
+ |
姓名
|
-
- 部门
- |
+ 部门
+ |
+
状态
|
@@ -78,6 +78,9 @@
|
用时
|
+
+ 答题详情
+ |
{{each cjrydetail}}
@@ -92,6 +95,7 @@
{{/if}}
{{$value.score}} |
{{$value.took}} |
+ 点击查看 |
{{/each}}
@@ -183,4 +187,6 @@
}
});
}
+
+
\ No newline at end of file
diff --git a/safesite/templates/lawsadd.html b/safesite/templates/lawsadd.html
index 1aea27d9..3e0e8e5c 100644
--- a/safesite/templates/lawsadd.html
+++ b/safesite/templates/lawsadd.html
@@ -249,7 +249,7 @@
};
var imagSize = document.getElementById("file").files[0].size;
if (imagSize > 1024 * 1024 * 10) {
- alert("文件大小为:" + (imagSize / (1024 * 1024)).toFixed(2) + "M,超出了上传大小," + "请选择3M以内的文件!");
+ alert("文件大小为:" + (imagSize / (1024 * 1024)).toFixed(2) + "M,超出了上传大小," + "请选择10M以内的文件!");
return false;
}
var url = "rlt/api/upload"; // 接收上传文件的后台地址
diff --git a/safesite/urls.py b/safesite/urls.py
index d57b2a1c..cb895384 100644
--- a/safesite/urls.py
+++ b/safesite/urls.py
@@ -148,7 +148,7 @@ urlpatterns = [
#path('api/riskactcheck',views.apiriskactcheck),
path('api/riskcheck2',views.apiriskcheck2),
path('api/report',views.apireport),
-
+ path('html/examhistory//',views.examhistory),
#path('api/rights/group/',views.rightsgroup),
diff --git a/safesite/views.py b/safesite/views.py
index fd426a0a..037a0ee5 100644
--- a/safesite/views.py
+++ b/safesite/views.py
@@ -135,6 +135,8 @@ def exampaperadd(req):
return render(req,'exampaperadd.html')
def exampaper(req):
return render(req,'exampaper.html')
+def examhistory(req,id):
+ return render(req,'examhistory.html',{'id':id})
def questionadd(req):
return render(req,'questionadd.html')
def questionadd2(req):
@@ -4756,7 +4758,7 @@ def apiexamtestdetail(req):
elif a == 'detail':
id = req.GET.get('id')
obj = ExamTestDetail.objects.filter(id=id)
- data = obj.values('id','starttime','took','score','testdetail')[0]
+ data = obj.values('id','starttime','took','score','passcode','testdetail','examtest__name','user__headimgurl','user__name')[0]
return JsonResponse(data)
def apitrain(req):