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] 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')), ]