From b2748fd560fe3070e4210db89a75e9edd9a76276 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Mon, 13 Jan 2020 09:32:03 +0800 Subject: [PATCH] easyui tree checked menu button --- .../migrations/0310_auto_20200110_1452.py | 33 +++++++++++ .../migrations/0311_auto_20200110_1604.py | 56 +++++++++++++++++++ safesite/models.py | 18 ++++++ safesite/static/safesite/mystatic/js/util.js | 8 +-- safesite/views.py | 3 +- 5 files changed, 112 insertions(+), 6 deletions(-) create mode 100644 safesite/migrations/0310_auto_20200110_1452.py create mode 100644 safesite/migrations/0311_auto_20200110_1604.py diff --git a/safesite/migrations/0310_auto_20200110_1452.py b/safesite/migrations/0310_auto_20200110_1452.py new file mode 100644 index 00000000..c7fb2856 --- /dev/null +++ b/safesite/migrations/0310_auto_20200110_1452.py @@ -0,0 +1,33 @@ +# Generated by Django 2.2.8 on 2020-01-10 14:52 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0309_auto_20200107_1704'), + ] + + operations = [ + migrations.CreateModel( + name='EquipmentCheckForm', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=200, verbose_name='名称')), + ('desc', models.CharField(max_length=400, verbose_name='描述')), + ], + ), + migrations.CreateModel( + name='EquipmentCheckFormItem', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('item', models.CharField(max_length=200, verbose_name='检查项目')), + ('content', models.CharField(max_length=400, verbose_name='检查内容')), + ], + ), + # migrations.RemoveField( + # model_name='companyinfo', + # name='liaison_fax', + # ), + ] diff --git a/safesite/migrations/0311_auto_20200110_1604.py b/safesite/migrations/0311_auto_20200110_1604.py new file mode 100644 index 00000000..29ffb9f5 --- /dev/null +++ b/safesite/migrations/0311_auto_20200110_1604.py @@ -0,0 +1,56 @@ +# Generated by Django 2.2.8 on 2020-01-10 16:04 + +import django.contrib.postgres.fields +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('safesite', '0310_auto_20200110_1452'), + ] + + operations = [ + migrations.CreateModel( + name='EFormItems', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('submittime', models.DateField(default=django.utils.timezone.now)), + ], + ), + migrations.CreateModel( + name='EquipmentCheckItem', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('item', models.CharField(max_length=200, verbose_name='检查项目')), + ('content', models.CharField(max_length=400, verbose_name='检查内容')), + ('usecomps', django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), blank=True, null=True, size=None)), + ('nousecomps', django.contrib.postgres.fields.ArrayField(base_field=models.IntegerField(), blank=True, null=True, size=None)), + ], + ), + migrations.DeleteModel( + name='EquipmentCheckFormItem', + ), + migrations.AddField( + model_name='equipmentcheckform', + name='usecomp', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='safesite.Partment'), + ), + migrations.AddField( + model_name='eformitems', + name='equipment_check_form', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.EquipmentCheckForm'), + ), + migrations.AddField( + model_name='eformitems', + name='equipment_check_item', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='safesite.EquipmentCheckItem'), + ), + migrations.AddField( + model_name='equipmentcheckform', + name='items', + field=models.ManyToManyField(related_name='checkitems', through='safesite.EFormItems', to='safesite.EquipmentCheckItem'), + ), + ] diff --git a/safesite/models.py b/safesite/models.py index f4095325..749403b3 100644 --- a/safesite/models.py +++ b/safesite/models.py @@ -863,6 +863,22 @@ class RiskAct(models.Model): # 风险点表 tasktype = models.IntegerField(default=0) tasktime = models.DateTimeField(null=True, blank=True) # 最后任务开始时间 +class EquipmentCheckItem(models.Model):# 设备检查项目 + item = models.CharField(max_length=200,verbose_name='检查项目') + content = models.CharField(max_length=400,verbose_name='检查内容') + usecomps = ArrayField(models.IntegerField(), blank=True, null=True) + nousecomps = ArrayField(models.IntegerField(), blank=True, null=True) + +class EquipmentCheckForm(models.Model):# 设备检查表 + name = models.CharField(max_length=200,verbose_name='名称') + desc = models.CharField(max_length=400,verbose_name='描述') + items = models.ManyToManyField(EquipmentCheckItem,related_name='checkitems', through='EFormItems') + usecomp = models.ForeignKey(Partment,on_delete=models.CASCADE, null=True, blank=True) + +class EFormItems(models.Model): + equipment_check_form = models.ForeignKey(EquipmentCheckForm,on_delete=models.CASCADE) + equipment_check_item = models.ForeignKey(EquipmentCheckItem,on_delete=models.CASCADE) + submittime = models.DateField(default=timezone.now) class Equipment(models.Model): # 设备表 id = models.AutoField(primary_key=True) @@ -899,6 +915,8 @@ class Equipment(models.Model): # 设备表 RiskAct, null=True, blank=True, on_delete=models.CASCADE) + + class Inspect(models.Model): # 设备巡检记录 id = models.AutoField(primary_key=True) state = models.IntegerField(default=1) # 设备状态 diff --git a/safesite/static/safesite/mystatic/js/util.js b/safesite/static/safesite/mystatic/js/util.js index 1ddb20c6..0714c6d0 100644 --- a/safesite/static/safesite/mystatic/js/util.js +++ b/safesite/static/safesite/mystatic/js/util.js @@ -146,7 +146,6 @@ function convertmenu(rows) { nodes.push({ id: row.menuid, text: row.menuname, - checked: row.checked, iconCls: row.icon, attributes: row.url }); @@ -164,14 +163,15 @@ function convertmenu(rows) { var row = rows[i]; if (row.parentid == node.id) { var child = { id: row.menuid, text: row.menuname, attributes: row.url, iconCls: row.icon, checked: row.checked }; - if (row.type!=1){ - node.state = 'closed' - } + // if (row.type!=1){ + // node.state = 'closed' + // } if (node.children) { node.children.push(child); } else { node.children = [child]; } + delete node.checked toDo.push(child); } } diff --git a/safesite/views.py b/safesite/views.py index d8fa9122..b404018c 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -819,7 +819,6 @@ def menutree(req): menus = [] user = User.objects.get(userid=userid) if user.issuper == 1: # 如果是超管 - print(user.usecomp.role.permissions.all()) menus = user.usecomp.role.permissions.filter(type=1).exclude(menuid__in=[11, 9]).order_by( 'sortnum').values('menuid', 'menucode', 'parentid', 'url', 'menuname', 'icon').distinct() else: @@ -840,7 +839,7 @@ def apirights(req): userid = req.session['userid'] user = User.objects.get(userid=userid) allrights = user.usecomp.role.permissions.all() - menus = user.usecomp.role.permissions.exclude(menuid__in=[11, 9]).order_by( + menus = allrights.exclude(menuid__in=[11, 9]).order_by( 'sortnum').values('menuid', 'menucode', 'parentid', 'url', 'menuname', 'icon').distinct() for i in menus: if i['menuid'] in haverights: