equipment update

This commit is contained in:
caoqianming 2020-08-31 14:17:58 +08:00
parent a5e9857c65
commit 5c49949d58
5 changed files with 68 additions and 29 deletions

View File

@ -38,6 +38,12 @@ class EquipmentCheckFormSerializers(serializers.Serializer):
def get_items(self,obj):
queryset = EFormItems.objects.filter(equipment_check_form=obj).all()
return [{'id':row.equipment_check_item.id,'name':row.equipment_check_item.name,'content':row.equipment_check_item.content} for row in queryset]
return [{'id':row.equipment_check_item.id,'name':row.equipment_check_item.name,'content':row.equipment_check_item.content, 'type':row.equipment_check_item.type.dickeyid if row.equipment_check_item.type else None, 'type_name':row.equipment_check_item.type.dickeyname if row.equipment_check_item.type else None} for row in queryset]
class EquipmentCheckFormSerializers2(serializers.Serializer):
id = serializers.IntegerField(read_only=True)
name = serializers.CharField()
desc = serializers.CharField()
usecomp = serializers.PrimaryKeyRelatedField(read_only=True)
createby = UserSerializer(read_only=True)

View File

@ -89,7 +89,7 @@
$('#checkform').form('load',res)
let html = ''
for(var i=0;i<res.items.length;i++){
html = html + '<tr ><th>'+res.items[i].name+'</th><th>'+res.items[i].content+'</th><tr>'
html = html + '<tr ><th>'+res.items[i].name+'</th><th>'+res.items[i].content+'</th><th>'+res.items[i].type_name+'</th><tr>'
}
$('#itemsbodydetail').html(html)
})}

View File

@ -42,15 +42,20 @@
</div>
</div>
<script>
var typeData
$.get('getdickey?dicclass=57&a=combobox',function(res){
typeData = res
})
function delitem(o){
$(o).parent().parent().remove()
}
function additems(){
var index =$("#itemsbody>tr").length;
var tr=$('<tr class="items" id="item'+index+'"></tr>');
tr.append($('<th><button onclick="delitem(this)"></button></th><th><input class="easyui-textbox name" style="width:100%;height:40px" data-options="multiline:true"/></th><th><input class="easyui-combobox type" ></input></th><th><input class="easyui-textbox content" style="width:100%;height:40px" data-options="multiline:true"/></th>'))
tr.append($('<th><button onclick="delitem(this)"></button></th><th><input class="easyui-textbox name" style="width:100%;height:40px" data-options="multiline:true"/></th><th><input id="typex'+index+'" class="easyui-combobox type" data-options=""></input></th><th><input class="easyui-textbox content" style="width:100%;height:40px" data-options="multiline:true"/></th>'))
$("#itemsbody").append(tr);
$.parser.parse(tr);
$('#typex'+index).combobox({data:typeData})
//$("#itemsbody").append('<tr class="items"><th><button onclick="delitem(this)"></button></th><th><input class="easyui-textbox name" style="width:90%;height:40px" data-options="multiline:true"/></th><th><input class="easyui-combobox type" ></input></th><th><input class="easyui-textbox content" style="width:100%;height:40px" data-options="multiline:true"/></th><tr>')
//$("#xxi").combobox()
@ -60,7 +65,8 @@
$(".items").each(function () {
let name = $(this).find("input.name").val()
let content = $(this).find("input.content").val()
items.push({'name':name,'content':content})
let type = $(this).find("input.type").combobox("getValue")
items.push({'name':name,'content':content, 'type':type})
});
var data = $('#jcbff').serializeJSON();
data['items']=items

View File

@ -17,10 +17,13 @@
<th>
</th>
<th width=40%>
<th width="35%">
检查项目
</th>
<th width=60%>
<th width="15%">
检查类型
</th>
<th width="60%">
检查具体内容
</th>
</tr>
@ -39,19 +42,38 @@
</div>
</div>
<script>
var typeData
$.get('api/equipmentcheckform/'+{{pk}},function(res){
$('#jcbff').form('load',res)
let html = ''
for(var i=0;i<res.items.length;i++){
html = html + '<tr class="items" pk='+res.items[i].id+'><th><button onclick="delitem(this)"></button></th><th><input class="easyui-textbox name" style="width:90%;height:40px" data-options="multiline:true" value="'+res.items[i].name+'"/></th><th><input class="easyui-textbox content" style="width:100%;height:40px" data-options="multiline:true" value="'+res.items[i].content+'"/></th><tr>'
$.get('getdickey?dicclass=57&a=combobox',function(res1){
typeData = res1
for(var i=0;i<res.items.length;i++){
//html = html + '<tr class="items" pk='+res.items[i].id+'><th><button onclick="delitem(this)"></button></th><th><input class="easyui-textbox name" style="width:90%;height:40px" data-options="multiline:true" value="'+res.items[i].name+'"/></th><th><input class="easyui-textbox content" style="width:100%;height:40px" data-options="multiline:true" value="'+res.items[i].content+'"/></th><tr>'
var index =i+1;
var tr=$('<tr class="items" id="item'+index+'" pk="'+res.items[i].id+'"></tr>');
tr.append($('<th><button onclick="delitem(this)"></button></th><th><input class="easyui-textbox name" style="width:100%;height:40px" value="'+res.items[i].name+'"data-options="multiline:true"/></th><th><input id="typex'+index+'" class="easyui-combobox type" value="'+res.items[i].type+'" data-options=""></input></th><th><input class="easyui-textbox content" style="width:100%;height:40px" value="'+res.items[i].content+'"data-options="multiline:true"/></th>'))
$("#itemsbody").append(tr);
$.parser.parse(tr);
$('#typex'+index).combobox({data:typeData})
}
$('#itemsbody').html(html)
})
})
function delitem(o){
$(o).parent().parent().remove()
}
function additems(){
$("#itemsbody").append('<tr class="items" pk=0><th><button onclick="delitem(this)"></button></th><th><input class="easyui-textbox name" style="width:90%;height:40px" data-options="multiline:true"/></th><th><input class="easyui-textbox content" style="width:100%;height:40px" data-options="multiline:true"/></th><th></th><tr>')
$.get('getdickey?dicclass=57&a=combobox',function(res){
console.log(res)
})
var index =$("#itemsbody>tr").length;
var tr=$('<tr class="items" id="item'+index+'"></tr>');
tr.append($('<th><button onclick="delitem(this)"></button></th><th><input class="easyui-textbox name" style="width:100%;height:40px" data-options="multiline:true"/></th><th><input class="easyui-combobox type" data-options="'+ "url:'getdickey?dicclass=57&a=combobox'," + '"></input></th><th><input class="easyui-textbox content" style="width:100%;height:40px" data-options="multiline:true"/></th>'))
$("#itemsbody").append(tr);
$.parser.parse(tr);
//$("#itemsbody").append('<tr class="items"><th><button onclick="delitem(this)"></button></th><th><input class="easyui-textbox name" style="width:90%;height:40px" data-options="multiline:true"/></th><th><input class="easyui-combobox type" ></input></th><th><input class="easyui-textbox content" style="width:100%;height:40px" data-options="multiline:true"/></th><tr>')
//$("#xxi").combobox()
}
function jcbsubmitForm(){
@ -60,7 +82,8 @@
let id = $(this).attr('pk')
let name = $(this).find(".name").val()
let content = $(this).find(".content").val()
items.push({'id':id,'name':name,'content':content})
let type = $(this).find("input.type").combobox("getValue")
items.push({'id':id,'name':name,'content':content, 'type':type})
});
//console.log(items)
var data = $('#jcbff').serializeJSON();

View File

@ -5,13 +5,13 @@ from rest_framework.response import Response
from rest_framework import generics
class EquipmentCheckFormAPIView(APIView):
def get(self,request):
userid = request.session['userid']
usecomp = User.objects.get(userid=userid).usecomp
queryset = EquipmentCheckForm.objects.filter(deletemark=1,usecomp=usecomp).order_by('-pk')
total = queryset.count()
serializer = EquipmentCheckFormSerializers(instance=queryset,many=True)
serializer = EquipmentCheckFormSerializers2(instance=queryset,many=True)
ret = {'total':total,'rows':serializer.data}
return Response(ret)
@ -27,14 +27,17 @@ class EquipmentCheckFormAPIView(APIView):
if instance:
serializer.update(instance,reqdata)
for i in request.data['items']:
serializerx = EquipmentCheckItemSerializer(data=i)
if serializerx.is_valid():
ins = EquipmentCheckItem.objects.filter(id=i['id'])
if ins:
serializerx.update(ins.first(),i)
if 'id' in i and i['id']:
if i['type'] and i['type']!='null':
EquipmentCheckItem.objects.filter(id=i['id']).update(name=i['name'], content=i['content'], type=Dickey.objects.get(pk=i['type']))
else:
iteminstance = serializerx.save()
EFormItems.objects.create(equipment_check_form=instance.first(),equipment_check_item=iteminstance)
EquipmentCheckItem.objects.filter(id=i['id']).update(name=i['name'], content=i['content'])
else:
if i['type'] and i['type']!='null':
iteminstance = EquipmentCheckItem.objects.create(name=i['name'], content=i['content'], type=Dickey.objects.get(pk=i['type']))
else:
iteminstance = EquipmentCheckItem.objects.create(name=i['name'], content=i['content'])
EFormItems.objects.create(equipment_check_form=instance.first(),equipment_check_item=iteminstance)
res = {'code':200,'msg':'success','data':{}}
else:
reqdata['usecomp'] = usecomp
@ -44,16 +47,17 @@ class EquipmentCheckFormAPIView(APIView):
else:
forminstance = serializer.create(reqdata)
for i in request.data['items']:
serializerx = EquipmentCheckItemSerializer(data=i)
if 'id' in i and i['id']:
ins = EquipmentCheckItem.objects.filter(id=i['id']).first()
if serializerx.is_valid():
serializerx.update(ins,i)
if i['type'] and i['type']!='null':
EquipmentCheckItem.objects.filter(id=i['id']).update(name=i['name'], content=i['content'], type=Dickey.objects.get(pk=i['type']))
else:
EquipmentCheckItem.objects.filter(id=i['id']).update(name=i['name'], content=i['content'])
else:
if serializerx.is_valid():
iteminstance = serializerx.save()
EFormItems.objects.create(equipment_check_form=forminstance,equipment_check_item=iteminstance)
if i['type'] and i['type']!='null':
iteminstance = EquipmentCheckItem.objects.create(name=i['name'], content=i['content'], type=Dickey.objects.get(pk=i['type']))
else:
iteminstance = EquipmentCheckItem.objects.create(name=i['name'], content=i['content'])
EFormItems.objects.create(equipment_check_form=instance.first(),equipment_check_item=iteminstance)
res = {'code':200,'msg':'success','data':{}}
return Response(res)
return Response({'code':404,'msg':'验证错误','data':serializer.errors}, status=404)