falv
This commit is contained in:
parent
af25ad4095
commit
05b1bfc14e
|
@ -0,0 +1,83 @@
|
||||||
|
# Generated by Django 2.1.5 on 2019-09-12 11:17
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
import django.utils.timezone
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('safesite', '0264_auto_20190909_0916'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='CompanyInfo',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.CharField(max_length=64, verbose_name='公司名称')),
|
||||||
|
('nature', models.SmallIntegerField(choices=[(0, '国企'), (1, '私企')], default=0, verbose_name='企业性质')),
|
||||||
|
('address', models.CharField(max_length=128, verbose_name='公司地址')),
|
||||||
|
('fixed_assets', models.IntegerField(blank=True, null=True, verbose_name='固定资产')),
|
||||||
|
('website', models.CharField(blank=True, max_length=64, null=True, verbose_name='公司网址')),
|
||||||
|
('peoplenum', models.IntegerField(blank=True, null=True, verbose_name='公司人数')),
|
||||||
|
('legalperson', models.CharField(blank=True, max_length=24, null=True, verbose_name='法人代表')),
|
||||||
|
('legalperson_phone', models.CharField(blank=True, max_length=24, null=True, verbose_name='法人电话')),
|
||||||
|
('liaison', models.CharField(max_length=24, verbose_name='联系人')),
|
||||||
|
('liaison_phone', models.CharField(max_length=24, verbose_name='联系人电话')),
|
||||||
|
('liaison_fax', models.CharField(blank=True, max_length=10, null=True, verbose_name='联系人传真')),
|
||||||
|
('introduce', models.TextField(blank=True, null=True, verbose_name='公司概况')),
|
||||||
|
('createtime', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('modifytime', models.DateTimeField(auto_now=True)),
|
||||||
|
('partment', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment', verbose_name='公司ID')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='FileManage',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
||||||
|
('maragename', models.CharField(max_length=50)),
|
||||||
|
('maragepath', models.CharField(blank=True, max_length=200, null=True)),
|
||||||
|
('readernum', models.IntegerField(default=0)),
|
||||||
|
('publisdate', models.DateTimeField(default=django.utils.timezone.now)),
|
||||||
|
('versionnum', models.CharField(max_length=50)),
|
||||||
|
('maragestate', models.IntegerField(default=1)),
|
||||||
|
('accessorytype', models.CharField(max_length=50)),
|
||||||
|
('actualizedata', models.DateTimeField(default=django.utils.timezone.now)),
|
||||||
|
('createdate', models.DateTimeField(default=django.utils.timezone.now)),
|
||||||
|
('createuser', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.User')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='FileReader',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
||||||
|
('kindnum', models.CharField(max_length=50)),
|
||||||
|
('readertime', models.DateTimeField(default=django.utils.timezone.now)),
|
||||||
|
('readeruser', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.User')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Regulations',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
||||||
|
('typename', models.CharField(max_length=50)),
|
||||||
|
('deletemark', models.IntegerField(default=1)),
|
||||||
|
('creattime', models.DateTimeField(default=django.utils.timezone.now)),
|
||||||
|
('createuser', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='rgs', to='safesite.User')),
|
||||||
|
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='safesite.Regulations')),
|
||||||
|
('usecomp', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment')),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='filemanage',
|
||||||
|
name='maragetype',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='safesite.Regulations'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='filemanage',
|
||||||
|
name='usecomp',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 2.1.5 on 2019-09-12 11:51
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('safesite', '0265_auto_20190912_1117'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='filemanage',
|
||||||
|
name='downnum',
|
||||||
|
field=models.IntegerField(default=0),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='regulations',
|
||||||
|
name='sortorder',
|
||||||
|
field=models.IntegerField(default=0),
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 2.1.5 on 2019-09-17 15:43
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('safesite', '0266_auto_20190912_1151'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='filemanage',
|
||||||
|
name='deletemark',
|
||||||
|
field=models.IntegerField(default=1),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='filereader',
|
||||||
|
name='deletemark',
|
||||||
|
field=models.IntegerField(default=1),
|
||||||
|
),
|
||||||
|
]
|
|
@ -831,4 +831,38 @@ class CompanyInfo(models.Model):
|
||||||
liaison_fax = models.CharField(max_length=10, null=True, blank=True, verbose_name='联系人传真')
|
liaison_fax = models.CharField(max_length=10, null=True, blank=True, verbose_name='联系人传真')
|
||||||
introduce = models.TextField( null=True, blank=True, verbose_name='公司概况')
|
introduce = models.TextField( null=True, blank=True, verbose_name='公司概况')
|
||||||
createtime = models.DateTimeField(auto_now_add=True)
|
createtime = models.DateTimeField(auto_now_add=True)
|
||||||
modifytime = models.DateTimeField(auto_now=True)
|
modifytime = models.DateTimeField(auto_now=True)
|
||||||
|
#法律法规分类表
|
||||||
|
class Regulations(models.Model):
|
||||||
|
id = models.AutoField(primary_key=True)
|
||||||
|
typename = models.CharField(max_length=50)
|
||||||
|
parent = models.ForeignKey('self',blank=True,null=True,on_delete=models.CASCADE)
|
||||||
|
sortorder = models.IntegerField(default=0)
|
||||||
|
deletemark = models.IntegerField(default=1)
|
||||||
|
creattime = models.DateTimeField(default = timezone.now)
|
||||||
|
createuser = models.ForeignKey(User,related_name='rgs',on_delete=models.CASCADE,null=True,blank=True)
|
||||||
|
usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True)
|
||||||
|
#法律法规阅读人员管理表
|
||||||
|
class FileReader(models.Model):
|
||||||
|
id = models.AutoField(primary_key=True)
|
||||||
|
kindnum = models.CharField(max_length=50)
|
||||||
|
readeruser = models.ForeignKey(User,on_delete=models.CASCADE)
|
||||||
|
readertime = models.DateTimeField(default = timezone.now)
|
||||||
|
deletemark = models.IntegerField(default=1)
|
||||||
|
#法律法规表
|
||||||
|
class FileManage(models.Model):
|
||||||
|
id = models.AutoField(primary_key=True)
|
||||||
|
maragename = models.CharField(max_length=50)
|
||||||
|
maragepath = models.CharField(max_length=200,null=True,blank=True)
|
||||||
|
readernum = models.IntegerField(default=0)
|
||||||
|
maragetype = models.ForeignKey(Regulations,on_delete=models.CASCADE,null=True,blank=True)
|
||||||
|
publisdate = models.DateTimeField(default = timezone.now)
|
||||||
|
versionnum = models.CharField(max_length=50)
|
||||||
|
maragestate = models.IntegerField(default=1) #0是现行,1是废止,2修改,3修订
|
||||||
|
accessorytype = models.CharField(max_length=50)
|
||||||
|
actualizedata = models.DateTimeField(default = timezone.now)
|
||||||
|
createdate = models.DateTimeField(default = timezone.now)
|
||||||
|
createuser = models.ForeignKey(User,on_delete=models.CASCADE)
|
||||||
|
usecomp= models.ForeignKey(Partment,on_delete=models.CASCADE,null=True,blank=True)
|
||||||
|
downnum = models.IntegerField(default=0)
|
||||||
|
deletemark = models.IntegerField(default=1)
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
from django.urls import path
|
||||||
|
from . import views
|
||||||
|
|
||||||
|
urlpatterns = [
|
||||||
|
path('', views.index),
|
||||||
|
path('html/laws/add', views.lawsadd),
|
||||||
|
path('api/lawstype',views.lawstype),
|
||||||
|
path('api/upload',views.upload),
|
||||||
|
path('html/lawstype/edit/<int:id>/',views.lawstypeedit),
|
||||||
|
path('html/laws/addlaws',views.addlaws),
|
||||||
|
path('html/laws/edit/<int:id>/',views.lawsdit)
|
||||||
|
|
||||||
|
]
|
|
@ -0,0 +1,177 @@
|
||||||
|
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
|
||||||
|
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,'lawsindex.html')
|
||||||
|
#添加法律法规分类
|
||||||
|
def lawsadd(req):
|
||||||
|
return render(req,'lawstypeadd.html')
|
||||||
|
#添加法律法规
|
||||||
|
def addlaws(req):
|
||||||
|
return render(req,'lawsadd.html')
|
||||||
|
def lawsdit(req,id):
|
||||||
|
return render(req,'lawsedit.html',{'id':id})
|
||||||
|
#选中一行编辑法律法规分类
|
||||||
|
def lawstypeedit(req,id):
|
||||||
|
return render(req,'lawstypeedit.html',{'id':id})
|
||||||
|
#上传文件,返回地址和名称
|
||||||
|
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/laws', 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})
|
||||||
|
def lawstype(req):
|
||||||
|
a=req.GET.get('a')
|
||||||
|
userid = req.session['userid']
|
||||||
|
companyid = getcompany(userid)
|
||||||
|
#index展示数据
|
||||||
|
if a=='listall':
|
||||||
|
x = FileManage.objects.filter(deletemark=1)
|
||||||
|
startnum,endnum=fenye(req)
|
||||||
|
a = x.filter(usecomp__partid__in= [1,Partment.objects.get(partid=companyid).partid],deletemark=1 ).order_by('id')#无deletemark
|
||||||
|
if req.GET.get('typeID'):
|
||||||
|
typeID = req.GET.get('typeID')
|
||||||
|
a = x.filter(maragetype=Regulations.objects.get(id=typeID))
|
||||||
|
|
||||||
|
total = a.count()
|
||||||
|
startnum,endnum=fenye(req)
|
||||||
|
a = a[startnum:endnum].values('id','maragename','readernum','maragetype__typename','publisdate','versionnum','maragestate','actualizedata','maragepath')
|
||||||
|
return HttpResponse(transjson(total,a),content_type="application/json")
|
||||||
|
#index展示的tree
|
||||||
|
elif a=='tree1':
|
||||||
|
list_items = (Regulations.objects.filter(usecomp__partid=1,deletemark=1)).annotate(parentId=F('parent__id'),name=F('typename')).values('id','parentId','name')
|
||||||
|
return HttpResponse(json.dumps(list(list_items)),content_type="application/json")
|
||||||
|
#编辑的时候展示的tree
|
||||||
|
elif a == 'tree2':
|
||||||
|
list_items = (Regulations.objects.filter(usecomp__partid=companyid,deletemark=1)).annotate(parentId=F('parent__id'),name=F('typename')).values('id','parentId','name')
|
||||||
|
return HttpResponse(json.dumps(list(list_items)),content_type="application/json")
|
||||||
|
elif a == 'tree':
|
||||||
|
list_items = (Regulations.objects.filter(usecomp__partid=1,deletemark=1)|Regulations.objects.filter(usecomp__partid=companyid,deletemark=1)).annotate(parentId=F('parent__id')).values('id','parentId','typename')
|
||||||
|
return HttpResponse(json.dumps(list(list_items)),content_type="application/json")
|
||||||
|
elif a == 'add':
|
||||||
|
data = json.loads(req.body.decode('utf-8'))
|
||||||
|
obj = Regulations()
|
||||||
|
name = data['name']
|
||||||
|
obj.typename = name
|
||||||
|
if 'parent' in data:
|
||||||
|
if data['parent']:
|
||||||
|
parent = data['parent']
|
||||||
|
parentobj = Regulations.objects.get(id=parent)
|
||||||
|
obj.parent = parentobj
|
||||||
|
obj.usecomp = Partment.objects.get(partid=companyid)
|
||||||
|
obj.createuser=User.objects.get(userid=userid)
|
||||||
|
obj.save()
|
||||||
|
return JsonResponse({"code":1})
|
||||||
|
#编辑法律法规分类(修改)
|
||||||
|
elif a == 'edit':
|
||||||
|
data = json.loads(req.body.decode('utf-8'))
|
||||||
|
id = data['id']
|
||||||
|
a = Regulations.objects.get(id=id)
|
||||||
|
a.typename = data['name']
|
||||||
|
if 'parent' in data:
|
||||||
|
if data['parent']:
|
||||||
|
parent = Regulations.objects.get(id=data['parent'])
|
||||||
|
a.parent = parent
|
||||||
|
|
||||||
|
a.save()
|
||||||
|
return JsonResponse({"code":1})
|
||||||
|
|
||||||
|
elif a == 'detail':
|
||||||
|
id = req.GET.get('id')
|
||||||
|
a = Regulations.objects.filter(id=id).values('id','typename','parent__id')[0]
|
||||||
|
return JsonResponse(a)
|
||||||
|
elif a == 'addlaws':
|
||||||
|
obj = FileManage()
|
||||||
|
data = json.loads(req.body.decode('utf-8'))
|
||||||
|
obj.maragename = data['maragename']
|
||||||
|
obj.versionnum = data['versionnum']
|
||||||
|
obj.maragetype= Regulations.objects.get(id=data['maragetype'])
|
||||||
|
obj.publisdate=data['publisdate']
|
||||||
|
obj.maragestate=data['maragestate']
|
||||||
|
obj.actualizedata=data['actualizedata']
|
||||||
|
obj.maragepath=data['url']
|
||||||
|
obj.usecomp=Partment.objects.get(partid=companyid)
|
||||||
|
obj.createuser=User.objects.get(userid=userid)
|
||||||
|
|
||||||
|
obj.save()
|
||||||
|
return JsonResponse({"code":1})
|
||||||
|
#删除分类
|
||||||
|
elif a == 'del':
|
||||||
|
id = req.GET.get('id')
|
||||||
|
user = User.objects.get(userid=userid)
|
||||||
|
a = Regulations.objects.get(id=id)
|
||||||
|
if user.issuper==1 or a.usecomp.partid == companyid:
|
||||||
|
Regulations.objects.filter(id = id).update(deletemark=0)
|
||||||
|
return JsonResponse({"code":1})
|
||||||
|
else:
|
||||||
|
return JsonResponse({"code":0})
|
||||||
|
return JsonResponse({"code":1})
|
||||||
|
#删除数据,判断是否是自己建的
|
||||||
|
elif a == 'canedit':
|
||||||
|
id = req.GET.get('id')
|
||||||
|
a = Regulations.objects.get(id=id)
|
||||||
|
if a.usecomp == companyid or int(companyid)==1:
|
||||||
|
return JsonResponse({'code':1})
|
||||||
|
else:
|
||||||
|
return JsonResponse({"code":0})
|
||||||
|
#编辑法律法规,显数据示
|
||||||
|
elif a == 'detaillaws':
|
||||||
|
id = req.GET.get('id')
|
||||||
|
a = FileManage.objects.filter(id=id).values('maragename','readernum','maragetype','publisdate','versionnum','maragestate','actualizedata','maragepath')
|
||||||
|
return JsonResponse(a[0])
|
||||||
|
#修改法律法规
|
||||||
|
elif a == 'editlaws':
|
||||||
|
data = json.loads(req.body.decode('utf-8'))
|
||||||
|
obj = FileManage.objects.get(id=data['id'])
|
||||||
|
obj.maragename = data['maragename']
|
||||||
|
obj.maragetype = Regulations.objects.get(id=data['maragetype'])
|
||||||
|
obj.publisdate=data['publisdate']
|
||||||
|
obj.maragestate=data['maragestate']
|
||||||
|
obj.actualizedata=data['actualizedata']
|
||||||
|
obj.maragepath=data['url']
|
||||||
|
obj.usecomp=Partment.objects.get(partid=companyid)
|
||||||
|
obj.createuser=User.objects.get(userid=userid)
|
||||||
|
|
||||||
|
obj.save()
|
||||||
|
|
||||||
|
return JsonResponse({"code":1})
|
||||||
|
#删除法律法规
|
||||||
|
elif a == 'dellaws':
|
||||||
|
id =req.GET.get('id')
|
||||||
|
userid = req.session['userid']
|
||||||
|
a = FileManage.objects.get(id=id)
|
||||||
|
if User.objects.get(userid = userid).issuper == 1:
|
||||||
|
a.deletemark=0
|
||||||
|
a.save()
|
||||||
|
return JsonResponse({"code":1})
|
||||||
|
else:
|
||||||
|
return JsonResponse({"code":0})
|
|
@ -148,8 +148,11 @@
|
||||||
.icon-edu{
|
.icon-edu{
|
||||||
background:url('icons/edu.png') no-repeat center center;
|
background:url('icons/edu.png') no-repeat center center;
|
||||||
}
|
}
|
||||||
.icon-companyinfo{
|
.icon-regulationstype {
|
||||||
background:url('icons/companyinfo.png') no-repeat center center;
|
background: url('icons/regulationstype.png') no-repeat center center;
|
||||||
|
}
|
||||||
|
.icon-companyinfo {
|
||||||
|
background: url('icons/companyinfo.png') no-repeat center center;
|
||||||
}
|
}
|
||||||
.icon-riskactcheck{
|
.icon-riskactcheck{
|
||||||
background:url('icons/riskactcheck.png') no-repeat center center;
|
background:url('icons/riskactcheck.png') no-repeat center center;
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 440 B |
|
@ -0,0 +1,340 @@
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
#content {
|
||||||
|
border: 1px solid saddlebrown;
|
||||||
|
padding: 16px;
|
||||||
|
border-radius: 2px
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
top: 15px;
|
||||||
|
width: 140px;
|
||||||
|
height: 40px;
|
||||||
|
border: 1px solid #0082E6;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 2px;
|
||||||
|
position: relative;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#file {
|
||||||
|
position: absolute;
|
||||||
|
opacity: 0;
|
||||||
|
color: white;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list span {
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
line-height: 40px;
|
||||||
|
position: absolute;
|
||||||
|
color: #0082E6;
|
||||||
|
}
|
||||||
|
|
||||||
|
video {
|
||||||
|
margin-top: 8px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
._p {
|
||||||
|
margin: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
._p input {
|
||||||
|
display: inline-block;
|
||||||
|
width: 70%;
|
||||||
|
margin-left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
._p span {
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
width: 100%;
|
||||||
|
height: 20px;
|
||||||
|
background-color: gray;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#progress {
|
||||||
|
height: 20px;
|
||||||
|
background-color: orange;
|
||||||
|
display: inline-block;
|
||||||
|
|
||||||
|
}
|
||||||
|
.btn {
|
||||||
|
text-align: center;
|
||||||
|
color: #0082E6;
|
||||||
|
width: 140px;
|
||||||
|
height: 41px;
|
||||||
|
border: 1px solid #0082E6;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 2px;
|
||||||
|
position: relative;
|
||||||
|
line-height: 40px;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
.ploadname {
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
color: #0082E6;
|
||||||
|
height: 40px;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 2px;
|
||||||
|
position: relative;
|
||||||
|
line-height: 40px;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<div class="easyui-layout" style="width:100%;height:100%;">
|
||||||
|
<form id="laws" method="post" name="laws" enctype="multipart/form-data">
|
||||||
|
<div data-options="region:'center'" style="padding:15px 15px;">
|
||||||
|
|
||||||
|
<table class="listTab">
|
||||||
|
<tr>
|
||||||
|
<td>法律法规名称:</td>
|
||||||
|
<td>
|
||||||
|
<input id="maragename" class="easyui-textbox" name="maragename" style="width:480px">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>版本号:</td>
|
||||||
|
<td>
|
||||||
|
<input id="versionnum" class="easyui-textbox" name="versionnum" style="width:480px">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>法律法规分类:</td>
|
||||||
|
<td>
|
||||||
|
<input id="maragetype" class="easyui-combotree" name="maragetype" style="width:480px" data-options="url:'rlt/api/lawstype?a=tree2',loadFilter: function (rows) {
|
||||||
|
return convert(rows);
|
||||||
|
},">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>发布时间:</td>
|
||||||
|
<td>
|
||||||
|
<input id="publisdate" editable="false" name="publisdate" class="easyui-datetimebox" style="width:480px"
|
||||||
|
data-options="currentText:'今天',closeText:'关闭',showSeconds:false" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>状态:</td>
|
||||||
|
<td>
|
||||||
|
<select name='maragestate' id='maragestate' style="width:480px;height:32px">
|
||||||
|
<option value="0" selected>现行</option>
|
||||||
|
<option value="1">废止</option>
|
||||||
|
<option value="2">修改</option>
|
||||||
|
<option value="3">修订</option>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>实施日期:</td>
|
||||||
|
<td>
|
||||||
|
<input id="actualizedata" editable="false" name="actualizedata" class="easyui-datetimebox" style="width:480px"
|
||||||
|
data-options="currentText:'今天',closeText:'关闭',showSeconds:false" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
<div id="content">
|
||||||
|
|
||||||
|
<p class="_p">
|
||||||
|
<span>选择上传文件: </span>
|
||||||
|
<!--文件选择按钮-->
|
||||||
|
<a class="list" href="javascript:;">
|
||||||
|
<input id="file" type="file" name="maragepath" onchange="UpladFile();" /><span>选择文件</span>
|
||||||
|
</a>
|
||||||
|
<button class="btn" type="button" onclick="sub();">上传</button>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
<!--显示消失-->
|
||||||
|
<ul class="el-upload-list el-upload-list--text" style="display: none;list-style-type:none">
|
||||||
|
<li tabindex="0" class="el-upload-list__item is-success">
|
||||||
|
<a class="el-upload-list__item-name">
|
||||||
|
<i class="el-icon-document"></i><span class="ploadname" id="videoName">food.jpeg</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<span id="url" style="display:none"></span>
|
||||||
|
<!--进度条-->
|
||||||
|
<div class="el-progress el-progress--line" style="display: none;">
|
||||||
|
<div class='container'>
|
||||||
|
<span id="progress"></span>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!--上传速度显示-->
|
||||||
|
<span id="time"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id='southdiv' data-options="region:'south'" style="height:50px;text-align:center;padding:5px">
|
||||||
|
<a href="javascript:void(0)" iconCls="fa-check" class="easyui-linkbutton" onclick="wssubmitForm()" id="submitb">提交</a>
|
||||||
|
<a href="javascript:void(0)" iconCls="fa-close" class="easyui-linkbutton" onclick="closeForm()">取消</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
function wssubmitForm() {
|
||||||
|
|
||||||
|
|
||||||
|
var lawsdata = $('#laws').serializeJSON();
|
||||||
|
lawsdata['url'] = document.getElementById('url').innerHTML;
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'rlt/api/lawstype?a=addlaws',
|
||||||
|
data: JSON.stringify(lawsdata),
|
||||||
|
datatype: "json",
|
||||||
|
processData: false,
|
||||||
|
contentType: "application/json;charset=utf-8",
|
||||||
|
beforeSend: function () {
|
||||||
|
var bo = $('#laws').form('validate')
|
||||||
|
if (bo == false) {
|
||||||
|
return bo
|
||||||
|
} else {
|
||||||
|
$('#submitb').linkbutton('disable');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
if (data.code == 1) {
|
||||||
|
alert("数据保存!");
|
||||||
|
$('#edutab').datagrid('reload');
|
||||||
|
$("#dd").dialog("close");
|
||||||
|
} else { $.messager.alert('提示', '失败!'); }
|
||||||
|
$('#submitb').linkbutton('enable');
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
var xhr;//异步请求对象
|
||||||
|
var ot; //时间
|
||||||
|
var oloaded;//大小
|
||||||
|
//上传文件方法
|
||||||
|
function UpladFile() {
|
||||||
|
var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
|
||||||
|
if (fileObj.name) {
|
||||||
|
$(".el-upload-list").css("display", "block");
|
||||||
|
$(".el-upload-list li").css("border", "1px solid #20a0ff");
|
||||||
|
$("#videoName").text(fileObj.name);
|
||||||
|
//$("#maragename").text(fileObj.name);
|
||||||
|
|
||||||
|
$("#maragename").textbox('setValue', fileObj.name)
|
||||||
|
} 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) {
|
||||||
|
// event.total是需要传输的总字节,event.loaded是已经传输的字节。如果event.lengthComputable不为真,则event.total等于0
|
||||||
|
if (evt.lengthComputable) {
|
||||||
|
|
||||||
|
$(".el-progress--line").css("display", "block");
|
||||||
|
var percent = Math.round(evt.loaded * 100 / evt.total);
|
||||||
|
|
||||||
|
/*进度条显示进度*/
|
||||||
|
document.getElementById('progress').innerHTML = Math.round(evt.loaded / evt.total * 100) + "%";
|
||||||
|
document.getElementById('progress').style.width = percent.toFixed(2) + '%';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
var time = document.getElementById("time");
|
||||||
|
var nt = new Date().getTime(); //获取当前时间
|
||||||
|
var pertime = (nt - ot) / 1000; //计算出上次调用该方法时到现在的时间差,单位为s
|
||||||
|
ot = new Date().getTime(); //重新赋值时间,用于下次计算
|
||||||
|
|
||||||
|
var perload = evt.loaded - oloaded; //计算该分段上传的文件大小,单位b
|
||||||
|
oloaded = evt.loaded; //重新赋值已上传文件大小,用以下次计算
|
||||||
|
|
||||||
|
//上传速度计算
|
||||||
|
var speed = perload / pertime; //单位b/s
|
||||||
|
var bspeed = speed;
|
||||||
|
var units = 'b/s'; //单位名称
|
||||||
|
if (speed / 1024 > 1) {
|
||||||
|
speed = speed / 1024;
|
||||||
|
units = 'k/s';
|
||||||
|
}
|
||||||
|
if (speed / 1024 > 1) {
|
||||||
|
speed = speed / 1024;
|
||||||
|
units = 'M/s';
|
||||||
|
}
|
||||||
|
speed = speed.toFixed(1);
|
||||||
|
//剩余时间
|
||||||
|
var resttime = ((evt.total - evt.loaded) / bspeed).toFixed(1);
|
||||||
|
time.innerHTML = '上传速度:' + speed + units + ',剩余时间:' + resttime + 's';
|
||||||
|
if (bspeed == 0)
|
||||||
|
time.innerHTML = '上传已取消';
|
||||||
|
}
|
||||||
|
//上传成功响应
|
||||||
|
function uploadComplete(evt) {
|
||||||
|
//服务断接收完文件返回的结果 注意返回的字符串要去掉双引号
|
||||||
|
|
||||||
|
if (evt.target.responseText) {
|
||||||
|
var data = JSON.parse(evt.target.responseText);
|
||||||
|
if (data.code = 1) {
|
||||||
|
|
||||||
|
var str = data.filepath;
|
||||||
|
document.getElementById('url').innerHTML = str;
|
||||||
|
alert("上传成功!");
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
alert("上传失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//上传失败
|
||||||
|
function uploadFailed(evt) {
|
||||||
|
alert("上传失败!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,357 @@
|
||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
#content {
|
||||||
|
border: 1px solid saddlebrown;
|
||||||
|
padding: 16px;
|
||||||
|
border-radius: 2px
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
top: 15px;
|
||||||
|
width: 140px;
|
||||||
|
height: 40px;
|
||||||
|
border: 1px solid #0082E6;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 2px;
|
||||||
|
position: relative;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#file {
|
||||||
|
position: absolute;
|
||||||
|
opacity: 0;
|
||||||
|
color: white;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list span {
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
line-height: 40px;
|
||||||
|
position: absolute;
|
||||||
|
color: #0082E6;
|
||||||
|
}
|
||||||
|
|
||||||
|
video {
|
||||||
|
margin-top: 8px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
._p {
|
||||||
|
margin: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
._p input {
|
||||||
|
display: inline-block;
|
||||||
|
width: 70%;
|
||||||
|
margin-left: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
._p span {
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
width: 100%;
|
||||||
|
height: 20px;
|
||||||
|
background-color: gray;
|
||||||
|
}
|
||||||
|
|
||||||
|
#progress {
|
||||||
|
height: 20px;
|
||||||
|
background-color: orange;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
text-align: center;
|
||||||
|
color: #0082E6;
|
||||||
|
width: 140px;
|
||||||
|
height: 41px;
|
||||||
|
border: 1px solid #0082E6;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 2px;
|
||||||
|
position: relative;
|
||||||
|
line-height: 40px;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ploadname {
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
color: #0082E6;
|
||||||
|
height: 40px;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 2px;
|
||||||
|
position: relative;
|
||||||
|
line-height: 40px;
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="easyui-layout" style="width:100%;height:100%;">
|
||||||
|
<form id="laws" method="post" name="laws" enctype="multipart/form-data">
|
||||||
|
<div data-options="region:'center'" style="padding:15px 15px;">
|
||||||
|
|
||||||
|
<table class="listTab">
|
||||||
|
<tr>
|
||||||
|
<td>法律法规名称:</td>
|
||||||
|
<td>
|
||||||
|
<input id="maragename" class="easyui-textbox" name="maragename" style="width:480px">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>版本号:</td>
|
||||||
|
<td>
|
||||||
|
<input id="versionnum" class="easyui-textbox" name="versionnum" style="width:480px">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>法律法规分类:</td>
|
||||||
|
<td>
|
||||||
|
<input id="maragetype" class="easyui-combotree" name="maragetype" style="width:480px" data-options="url:'rlt/api/lawstype?a=tree2',loadFilter: function (rows) {
|
||||||
|
return convert(rows);
|
||||||
|
},">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>发布时间:</td>
|
||||||
|
<td>
|
||||||
|
<input id="publisdate" editable="false" name="publisdate" class="easyui-datetimebox" style="width:480px"
|
||||||
|
data-options="currentText:'今天',closeText:'关闭',showSeconds:false" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>状态:</td>
|
||||||
|
<td>
|
||||||
|
<select name='maragestate' id='maragestate' style="width:480px;height:32px">
|
||||||
|
<option value="0">现行</option>
|
||||||
|
<option value="1">废止</option>
|
||||||
|
<option value="2">修改</option>
|
||||||
|
<option value="3">修订</option>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>实施日期:</td>
|
||||||
|
<td>
|
||||||
|
<input id="actualizedata" editable="false" name="actualizedata" class="easyui-datetimebox" style="width:480px"
|
||||||
|
data-options="currentText:'今天',closeText:'关闭',showSeconds:false" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
<div id="content">
|
||||||
|
|
||||||
|
<p class="_p">
|
||||||
|
<span>修改上传文件: </span>
|
||||||
|
<!--文件选择按钮-->
|
||||||
|
<a class="list" href="javascript:;">
|
||||||
|
<input id="file" type="file" name="maragepath" onchange="UpladFile();" /><span>选择文件</span>
|
||||||
|
</a>
|
||||||
|
<button class="btn" type="button" onclick="sub();">上传</button>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
<!--显示消失-->
|
||||||
|
<ul class="el-upload-list el-upload-list--text" style="display: none;list-style-type:none">
|
||||||
|
<li tabindex="0" class="el-upload-list__item is-success">
|
||||||
|
<a class="el-upload-list__item-name">
|
||||||
|
<i class="el-icon-document"></i><span class="ploadname" id="videoName">food.jpeg</span>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<span id="url" style="display:none"></span>
|
||||||
|
<!--进度条-->
|
||||||
|
<div class="el-progress el-progress--line" style="display: none;">
|
||||||
|
<div class='container'>
|
||||||
|
<span id="progress"></span>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!--上传速度显示-->
|
||||||
|
<span id="time"></span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id='southdiv' data-options="region:'south'" style="height:50px;text-align:center;padding:5px">
|
||||||
|
<a href="javascript:void(0)" iconCls="fa-check" class="easyui-linkbutton" onclick="wssubmitForm()" id="submitb">提交</a>
|
||||||
|
<a href="javascript:void(0)" iconCls="fa-close" class="easyui-linkbutton" onclick="closeForm()">取消</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
|
||||||
|
//初始化数据
|
||||||
|
var id = {{ id }}
|
||||||
|
|
||||||
|
$.get('rlt/api/lawstype?a=detaillaws&id=' + id, function (res) {
|
||||||
|
$('#maragename').textbox('setValue', res.maragename)
|
||||||
|
$('#versionnum').textbox('setValue', res.versionnum)
|
||||||
|
$('#actualizedata').datetimebox('setValue', res.actualizedata)
|
||||||
|
$('#publisdate').datetimebox('setValue', res.publisdate)
|
||||||
|
$('#maragetype').combotree('setValue', res.maragetype)
|
||||||
|
$("#maragestate").find("option[value=" + res.maragestate+"]").attr("selected", true);
|
||||||
|
document.getElementById('url').innerHTML = res.maragepath
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
function wssubmitForm() {
|
||||||
|
|
||||||
|
|
||||||
|
var lawsdata = $('#laws').serializeJSON();
|
||||||
|
lawsdata['id'] = {{id}}
|
||||||
|
|
||||||
|
lawsdata['url'] = document.getElementById('url').innerHTML;
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'rlt/api/lawstype?a=editlaws',
|
||||||
|
data: JSON.stringify(lawsdata),
|
||||||
|
datatype: "json",
|
||||||
|
processData: false,
|
||||||
|
contentType: "application/json;charset=utf-8",
|
||||||
|
beforeSend: function () {
|
||||||
|
var bo = $('#laws').form('validate')
|
||||||
|
if (bo == false) {
|
||||||
|
return bo
|
||||||
|
} else {
|
||||||
|
$('#submitb').linkbutton('disable');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
if (data.code == 1) {
|
||||||
|
alert("数据保存!");
|
||||||
|
$('#edutab').datagrid('reload');
|
||||||
|
$("#dd").dialog("close");
|
||||||
|
} else { $.messager.alert('提示', '修改失败!'); }
|
||||||
|
$('#submitb').linkbutton('enable');
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
var xhr;//异步请求对象
|
||||||
|
var ot; //时间
|
||||||
|
var oloaded;//大小
|
||||||
|
//上传文件方法
|
||||||
|
function UpladFile() {
|
||||||
|
var fileObj = document.getElementById("file").files[0]; // js 获取文件对象
|
||||||
|
if (fileObj.name) {
|
||||||
|
$(".el-upload-list").css("display", "block");
|
||||||
|
$(".el-upload-list li").css("border", "1px solid #20a0ff");
|
||||||
|
$("#videoName").text(fileObj.name);
|
||||||
|
//$("#maragename").text(fileObj.name);
|
||||||
|
|
||||||
|
$("#maragename").textbox('setValue', fileObj.name)
|
||||||
|
} 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) {
|
||||||
|
// event.total是需要传输的总字节,event.loaded是已经传输的字节。如果event.lengthComputable不为真,则event.total等于0
|
||||||
|
if (evt.lengthComputable) {
|
||||||
|
|
||||||
|
$(".el-progress--line").css("display", "block");
|
||||||
|
var percent = Math.round(evt.loaded * 100 / evt.total);
|
||||||
|
|
||||||
|
/*进度条显示进度*/
|
||||||
|
document.getElementById('progress').innerHTML = Math.round(evt.loaded / evt.total * 100) + "%";
|
||||||
|
document.getElementById('progress').style.width = percent.toFixed(2) + '%';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
var time = document.getElementById("time");
|
||||||
|
var nt = new Date().getTime(); //获取当前时间
|
||||||
|
var pertime = (nt - ot) / 1000; //计算出上次调用该方法时到现在的时间差,单位为s
|
||||||
|
ot = new Date().getTime(); //重新赋值时间,用于下次计算
|
||||||
|
|
||||||
|
var perload = evt.loaded - oloaded; //计算该分段上传的文件大小,单位b
|
||||||
|
oloaded = evt.loaded; //重新赋值已上传文件大小,用以下次计算
|
||||||
|
|
||||||
|
//上传速度计算
|
||||||
|
var speed = perload / pertime; //单位b/s
|
||||||
|
var bspeed = speed;
|
||||||
|
var units = 'b/s'; //单位名称
|
||||||
|
if (speed / 1024 > 1) {
|
||||||
|
speed = speed / 1024;
|
||||||
|
units = 'k/s';
|
||||||
|
}
|
||||||
|
if (speed / 1024 > 1) {
|
||||||
|
speed = speed / 1024;
|
||||||
|
units = 'M/s';
|
||||||
|
}
|
||||||
|
speed = speed.toFixed(1);
|
||||||
|
//剩余时间
|
||||||
|
var resttime = ((evt.total - evt.loaded) / bspeed).toFixed(1);
|
||||||
|
time.innerHTML = '上传速度:' + speed + units + ',剩余时间:' + resttime + 's';
|
||||||
|
if (bspeed == 0)
|
||||||
|
time.innerHTML = '上传已取消';
|
||||||
|
}
|
||||||
|
//上传成功响应
|
||||||
|
function uploadComplete(evt) {
|
||||||
|
//服务断接收完文件返回的结果 注意返回的字符串要去掉双引号
|
||||||
|
|
||||||
|
if (evt.target.responseText) {
|
||||||
|
var data = JSON.parse(evt.target.responseText);
|
||||||
|
if (data.code = 1) {
|
||||||
|
|
||||||
|
var str = data.filepath;
|
||||||
|
document.getElementById('url').innerHTML = str;
|
||||||
|
alert("上传成功!");
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
alert("上传失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//上传失败
|
||||||
|
function uploadFailed(evt) {
|
||||||
|
alert("上传失败!");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,221 @@
|
||||||
|
<div class="easyui-layout" style="width:100%;height:100%;">
|
||||||
|
<div data-options="region:'west',split:true,border:false" style="width:240px;height:100%;">
|
||||||
|
<div id="mrfl" height="40%" title="默认分类">
|
||||||
|
<ul id="mrfltree" data-options="animate:true,toolbar:'#mrflbar'"></ul>
|
||||||
|
</div>
|
||||||
|
<!-- <div id="gwfl" height="30%"></div> -->
|
||||||
|
<div id="zjfl" height="60%" title="自建分类">
|
||||||
|
<div id="zjflbar" style="padding:5px;height:auto">
|
||||||
|
<a id="addtmfl2" onclick="javascript:opendg('新建分类','rlt/html/laws/add')" class="easyui-linkbutton" data-options="iconCls:'fa-plus',plain:true">新增</a>
|
||||||
|
<a id="edittmfl2" onclick="edittmfl2()" class="easyui-linkbutton" data-options="iconCls:'fa-pencil',plain:true">编辑</a>
|
||||||
|
<a id="deltmfl2" onclick="deltmfl2()" class="easyui-linkbutton" data-options="iconCls:'fa-trash',plain:true">删除</a>
|
||||||
|
</div>
|
||||||
|
<ul id="zjfltree" data-options="animate:true,toolbar:'#zjflbar'"></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div data-options="region:'center',title:'法律法规管理',split:true,border:false" style="height:100%;">
|
||||||
|
|
||||||
|
<div id="tmbar" style="padding:5px;height:auto">
|
||||||
|
<a id="addtm" onclick="javascript:opendg('新增法律法规信息','rlt/html/laws/addlaws')" class="easyui-linkbutton" data-options="iconCls:'fa-plus',plain:true">新建</a>
|
||||||
|
<a id="edittm" onclick="edittm()" class="easyui-linkbutton"
|
||||||
|
data-options="iconCls:'fa-pencil',plain:true">编辑</a>
|
||||||
|
<a id="deltm" onclick="deltm()" class="easyui-linkbutton"
|
||||||
|
data-options="iconCls:'fa-trash',plain:true">删除</a>
|
||||||
|
<!--<a id="edittm" onclick="edittm()" class="easyui-linkbutton"
|
||||||
|
data-options="iconCls:'fa-pencil',plain:true">详情</a>-->
|
||||||
|
</div>
|
||||||
|
<table id="tmtable" style="height:100%;"></table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
$('#mrfl').panel()
|
||||||
|
$('#mrfltree').tree({
|
||||||
|
url: 'rlt/api/lawstype?a=tree1',
|
||||||
|
animate: true,
|
||||||
|
toolbar: '#mrflbar',
|
||||||
|
loadFilter: function (rows) {
|
||||||
|
return convert(rows);
|
||||||
|
},
|
||||||
|
formatter: function (node) {
|
||||||
|
var s = node.text;
|
||||||
|
if (node.children) {
|
||||||
|
s += ' <span style=\'color:blue\'>(' + node.children.length + ')</span>';
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
},
|
||||||
|
onSelect: function (row) {
|
||||||
|
$("#tmtable").datagrid({
|
||||||
|
url: 'rlt/api/lawstype?a=listall&typeID=' + row.id,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$('#zjfl').panel()
|
||||||
|
$('#zjfltree').tree({
|
||||||
|
url: 'rlt/api/lawstype?a=tree2',
|
||||||
|
animate: true,
|
||||||
|
toolbar: '#zjflbar',
|
||||||
|
loadFilter: function (rows) {
|
||||||
|
return convert(rows);
|
||||||
|
},
|
||||||
|
formatter: function (node) {
|
||||||
|
var s = node.text;
|
||||||
|
if (node.children) {
|
||||||
|
s += ' <span style=\'color:blue\'>(' + node.children.length + ')</span>';
|
||||||
|
}
|
||||||
|
return s;
|
||||||
|
},
|
||||||
|
onSelect: function (row) {
|
||||||
|
$("#tmtable").datagrid({
|
||||||
|
url: 'rlt/api/lawstype?a=listall&typeID=' + row.id,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$('#tmtable').datagrid({
|
||||||
|
url: 'rlt/api/lawstype?a=listall',
|
||||||
|
rownumbers: true,
|
||||||
|
singleSelect: true,
|
||||||
|
striped: true,
|
||||||
|
method: 'get',
|
||||||
|
toolbar: '#tmbar',
|
||||||
|
pagination: 'true',
|
||||||
|
pageSize: 20,
|
||||||
|
columns: [[
|
||||||
|
{ field: 'id', title: 'ID', hidden: true },
|
||||||
|
{ field: 'versionnum', title: '版本号', width: '14%' },
|
||||||
|
{ field: 'maragename', title: '法律法规名称', width: '16%' },
|
||||||
|
{ field: 'maragetype__typename', title: '所属分类', width: '14%' },
|
||||||
|
{ field: 'publisdate', title: '发布日期', width: '14%' },
|
||||||
|
{
|
||||||
|
|
||||||
|
field: 'maragestate', title: '状态', width: '14%', formatter: function (value, row, index) {
|
||||||
|
if (value == 0) {
|
||||||
|
return '现行';
|
||||||
|
}
|
||||||
|
else if (value == 1) {
|
||||||
|
return '废止'
|
||||||
|
}
|
||||||
|
else if (value == 2) {
|
||||||
|
return '修改'
|
||||||
|
}
|
||||||
|
else if (value == 3) {
|
||||||
|
return '修订'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ field: 'actualizedata', title: '实施日期', width: '14%' },
|
||||||
|
{
|
||||||
|
field: 'maragepath', title: '点击下载', width:'14%', formatter: function (value, row, index) {
|
||||||
|
return '<a style="color:blue" target="_blank" href="' + row.maragepath + '" id="one">点击下载</a>';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
]],
|
||||||
|
});
|
||||||
|
|
||||||
|
//法律法规分类编辑
|
||||||
|
function edittmfl2() {
|
||||||
|
var row = $('#zjfltree').tree('getSelected');
|
||||||
|
if (row) {
|
||||||
|
|
||||||
|
opendg('编辑分类', 'rlt/html/lawstype/edit/' + row.id)
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$.messager.alert('提示', '未选择数据!');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//删除法律法规某个分类
|
||||||
|
function deltmfl2() {
|
||||||
|
var row = $('#zjfltree').tree('getSelected');
|
||||||
|
if (row) {
|
||||||
|
$.messager.confirm('提示', '确定删除吗?', function (r) {
|
||||||
|
if (r) {
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: 'rlt/api/lawstype?a=del&id=' + row.id,
|
||||||
|
datatype: "json",
|
||||||
|
beforeSend: function () { },
|
||||||
|
success: function (data) {
|
||||||
|
if (data.code == 1) {
|
||||||
|
$("#zjfltree").tree('reload');
|
||||||
|
} else {
|
||||||
|
$.messager.alert('提示', '您无权删除!');
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
complete: function (XMLHttpRequest, textStatus) {
|
||||||
|
},
|
||||||
|
|
||||||
|
error: function () {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$.messager.alert('提示', '未选择数据!');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function edittm() {
|
||||||
|
var row = $('#tmtable').datagrid('getSelected');
|
||||||
|
if (row) {
|
||||||
|
$.get('rlt/api/lawstype?a=canedit&id=' + row.id, function (res) {
|
||||||
|
if (res.code == 1) {
|
||||||
|
opendg('编辑法律法规', 'rlt/html/laws/edit/' + row.id)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$.messager.alert('提示', '此条不是自建数据,不可编辑!');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$.messager.alert('提示', '请选择一条数据!');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//根据id删除法律法规数据
|
||||||
|
function deltm() {
|
||||||
|
var row = $('#tmtable').datagrid('getSelected');
|
||||||
|
if (row) {
|
||||||
|
$.messager.confirm('提示', '确定删除吗?', function (r) {
|
||||||
|
if (r) {
|
||||||
|
$.ajax({
|
||||||
|
type: "GET",
|
||||||
|
url: 'rlt/api/lawstype?a=dellaws&id=' + row.id,
|
||||||
|
datatype: "json",
|
||||||
|
beforeSend: function () { },
|
||||||
|
success: function (data) {
|
||||||
|
if (data.code == 1) {
|
||||||
|
$("#tmtable").datagrid('reload');
|
||||||
|
} else {
|
||||||
|
$.messager.alert('提示', '您无权删除!');
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
complete: function (XMLHttpRequest, textStatus) {
|
||||||
|
},
|
||||||
|
|
||||||
|
error: function () {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$.messager.alert('提示', '未选择数据!');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -0,0 +1,54 @@
|
||||||
|
<div class="easyui-layout" style="width:100%;height:100%">
|
||||||
|
<div id='southdiv' data-options="region:'south'" style="width:100%;height:50px;padding:5px">
|
||||||
|
<div style="text-align:center;padding:2px">
|
||||||
|
<a id="submitb" class="easyui-linkbutton" iconCls="fa-floppy-o" onclick="submitform()">保存</a>
|
||||||
|
<a class="easyui-linkbutton" iconCls="fa-close" onclick="javascript:$('#dd').dialog('close')">取消</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div data-options="region:'center'" style="width:100%;height:100%;padding:5px 15px;">
|
||||||
|
<form method="post" id="tmflff">
|
||||||
|
<div style="margin-bottom:10px">
|
||||||
|
<input id="name" name="name" style="width:90%;height:40px"
|
||||||
|
data-options="label:'法律法规分类名',multiline:true,required:true" class="easyui-textbox"></input>
|
||||||
|
</div>
|
||||||
|
<div style="margin-bottom:10px">
|
||||||
|
<select id="parent" name="parent" style="width:90%" data-options="label:'上级分类'"
|
||||||
|
editable="false"></select>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
$('#parent').combotree({
|
||||||
|
url: 'rlt/api/lawstype?a=tree2',
|
||||||
|
loadFilter: function (rows) {
|
||||||
|
return convert(rows);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
function submitform() {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'rlt/api/lawstype?a=add',
|
||||||
|
data: JSON.stringify($('#tmflff').serializeJSON()),
|
||||||
|
datatype: "json",
|
||||||
|
processData: false,
|
||||||
|
contentType: "application/json;charset=utf-8",
|
||||||
|
beforeSend: function () {
|
||||||
|
var bo = $('#tmflff').form('validate')
|
||||||
|
if (bo == false) {
|
||||||
|
return bo
|
||||||
|
} else {
|
||||||
|
$('#submitb').linkbutton('disable');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
if (data.code == 1) {
|
||||||
|
$("#mrfltree").tree('reload');
|
||||||
|
$("#zjfltree").tree('reload');
|
||||||
|
$("#dd").dialog("close");
|
||||||
|
} else { $.messager.alert('提示', '失败,该选项不可编辑!'); }
|
||||||
|
$('#submitb').linkbutton('enable');
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</div>
|
|
@ -0,0 +1,61 @@
|
||||||
|
<div class="easyui-layout" style="width:100%;height:100%">
|
||||||
|
<div id='southdiv' data-options="region:'south'" style="width:100%;height:50px;padding:5px">
|
||||||
|
<div style="text-align:center;padding:2px">
|
||||||
|
<a id="submitb" class="easyui-linkbutton" iconCls="fa-floppy-o" onclick="submitform()">保存</a>
|
||||||
|
<a class="easyui-linkbutton" iconCls="fa-close" onclick="javascript:$('#dd').dialog('close')">取消</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div data-options="region:'center'" style="width:100%;height:100%;padding:5px 15px;">
|
||||||
|
<form method="post" id="tmflff">
|
||||||
|
<input id="tmflid" name="id" style="display:none"></input>
|
||||||
|
<div style="margin-bottom:10px">
|
||||||
|
<input id="name" name="name" style="width:90%;height:40px"
|
||||||
|
data-options="label:'分类名',multiline:true,required:true" class="easyui-textbox"></input>
|
||||||
|
</div>
|
||||||
|
<div style="margin-bottom:10px">
|
||||||
|
<select id="parent" name="parent" style="width:90%" data-options="label:'上级分类'"
|
||||||
|
editable="false">
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
$('#parent').combotree({
|
||||||
|
url: 'rlt/api/lawstype?a=tree2',
|
||||||
|
loadFilter: function (rows) {
|
||||||
|
return convert(rows);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
$.get('rlt/api/lawstype?a=detail&id='+{{id}},function(res){
|
||||||
|
$('#name').textbox('setValue',res.typename)
|
||||||
|
$('#tmflid').val(res.id)
|
||||||
|
$('#parent').combotree('setValue',res.parent__id)
|
||||||
|
})
|
||||||
|
function submitform() {
|
||||||
|
$.ajax({
|
||||||
|
type: "POST",
|
||||||
|
url: 'rlt/api/lawstype?a=edit',
|
||||||
|
data: JSON.stringify($('#tmflff').serializeJSON()),
|
||||||
|
datatype: "json",
|
||||||
|
processData: false,
|
||||||
|
contentType: "application/json;charset=utf-8",
|
||||||
|
beforeSend: function () {
|
||||||
|
var bo = $('#tmflff').form('validate')
|
||||||
|
if (bo == false) {
|
||||||
|
return bo
|
||||||
|
} else {
|
||||||
|
$('#submitb').linkbutton('disable');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
success: function (data) {
|
||||||
|
if (data.code == 1) {
|
||||||
|
$("#mrfltree").tree('reload');
|
||||||
|
$("#zjfltree").tree('reload');
|
||||||
|
$("#dd").dialog("close");
|
||||||
|
} else { $.messager.alert('提示', '失败,该选项不可编辑!'); }
|
||||||
|
$('#submitb').linkbutton('enable');
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</div>
|
|
@ -171,4 +171,5 @@ urlpatterns = [
|
||||||
path('datashow/',datashowview.area, name='datashow'),
|
path('datashow/',datashowview.area, name='datashow'),
|
||||||
path('datashow/charthandle', views.charthandle),
|
path('datashow/charthandle', views.charthandle),
|
||||||
path('companyinfo/', views.companyinfo),
|
path('companyinfo/', views.companyinfo),
|
||||||
|
path('rlt/',include('safesite.rlt.urls')),
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue