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): def get_items(self,obj):
queryset = EFormItems.objects.filter(equipment_check_form=obj).all() 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) $('#checkform').form('load',res)
let html = '' let html = ''
for(var i=0;i<res.items.length;i++){ 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) $('#itemsbodydetail').html(html)
})} })}

View File

@ -42,15 +42,20 @@
</div> </div>
</div> </div>
<script> <script>
var typeData
$.get('getdickey?dicclass=57&a=combobox',function(res){
typeData = res
})
function delitem(o){ function delitem(o){
$(o).parent().parent().remove() $(o).parent().parent().remove()
} }
function additems(){ function additems(){
var index =$("#itemsbody>tr").length; var index =$("#itemsbody>tr").length;
var tr=$('<tr class="items" id="item'+index+'"></tr>'); 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); $("#itemsbody").append(tr);
$.parser.parse(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>') //$("#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() //$("#xxi").combobox()
@ -60,7 +65,8 @@
$(".items").each(function () { $(".items").each(function () {
let name = $(this).find("input.name").val() let name = $(this).find("input.name").val()
let content = $(this).find("input.content").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(); var data = $('#jcbff').serializeJSON();
data['items']=items data['items']=items

View File

@ -17,10 +17,13 @@
<th> <th>
</th> </th>
<th width=40%> <th width="35%">
检查项目 检查项目
</th> </th>
<th width=60%> <th width="15%">
检查类型
</th>
<th width="60%">
检查具体内容 检查具体内容
</th> </th>
</tr> </tr>
@ -39,19 +42,38 @@
</div> </div>
</div> </div>
<script> <script>
var typeData
$.get('api/equipmentcheckform/'+{{pk}},function(res){ $.get('api/equipmentcheckform/'+{{pk}},function(res){
$('#jcbff').form('load',res) $('#jcbff').form('load',res)
let html = '' $.get('getdickey?dicclass=57&a=combobox',function(res1){
for(var i=0;i<res.items.length;i++){ typeData = res1
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>' 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){ function delitem(o){
$(o).parent().parent().remove() $(o).parent().parent().remove()
} }
function additems(){ 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(){ function jcbsubmitForm(){
@ -60,7 +82,8 @@
let id = $(this).attr('pk') let id = $(this).attr('pk')
let name = $(this).find(".name").val() let name = $(this).find(".name").val()
let content = $(this).find(".content").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) //console.log(items)
var data = $('#jcbff').serializeJSON(); var data = $('#jcbff').serializeJSON();

View File

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