标注坐标位置修改
This commit is contained in:
parent
1850d0b23a
commit
43efaab8cd
|
@ -1,6 +1,8 @@
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from apps.am.models import Area
|
from apps.am.models import Area
|
||||||
|
from apps.third.models import TDevice
|
||||||
|
from apps.utils.serializers import CustomModelSerializer
|
||||||
|
|
||||||
|
|
||||||
class RequestCommonSerializer(serializers.Serializer):
|
class RequestCommonSerializer(serializers.Serializer):
|
||||||
|
@ -23,12 +25,14 @@ class BindAreaSerializer(serializers.Serializer):
|
||||||
label="区域ID")
|
label="区域ID")
|
||||||
|
|
||||||
|
|
||||||
class LabelLocationSerializer(serializers.Serializer):
|
class LabelLocationSerializer(CustomModelSerializer):
|
||||||
code = serializers.CharField(label='设备唯一标识')
|
class Meta:
|
||||||
location = serializers.JSONField(label='坐标信息')
|
model = TDevice
|
||||||
|
fields = ['type', 'location', 'area', 'areas']
|
||||||
|
|
||||||
|
|
||||||
class BindAreasSerializer(serializers.Serializer):
|
class BindAreasSerializer(serializers.Serializer):
|
||||||
|
type = serializers.CharField(label='设备类型')
|
||||||
codes = serializers.ListField(child=serializers.CharField(), label='标识列表')
|
codes = serializers.ListField(child=serializers.CharField(), label='标识列表')
|
||||||
areas = serializers.PrimaryKeyRelatedField(queryset=Area.objects.all(),
|
areas = serializers.PrimaryKeyRelatedField(queryset=Area.objects.all(),
|
||||||
label="区域ID列表",
|
label="区域ID列表",
|
||||||
|
|
|
@ -50,29 +50,14 @@ class TDeviceViewSet(CustomGenericViewSet):
|
||||||
_, res = dhClient.request(**dhapis['channel_list'], json=request.data)
|
_, res = dhClient.request(**dhapis['channel_list'], json=request.data)
|
||||||
return Response(res)
|
return Response(res)
|
||||||
|
|
||||||
@action(methods=['post'], detail=False, perms_map={'post': 'tdevice:label_location'},
|
@action(methods=['post'], detail=True, perms_map={'post': 'tdevice:label_location'},
|
||||||
serializer_class=LabelLocationSerializer)
|
serializer_class=LabelLocationSerializer, lookup_field='code')
|
||||||
def label_location(self, request):
|
def label_location(self, request):
|
||||||
"""
|
"""
|
||||||
标注坐标位置
|
标注坐标位置
|
||||||
|
|
||||||
标注坐标位置
|
标注坐标位置
|
||||||
"""
|
"""
|
||||||
serializer = self.get_serializer(data=request.data)
|
|
||||||
serializer.is_valid(raise_exception=True)
|
|
||||||
vdata = serializer.vdata
|
|
||||||
td = TDevice.objects.filter(code=vdata['code']).first()
|
|
||||||
if td:
|
|
||||||
td.location = vdata['location']
|
|
||||||
td.update_by = request.user
|
|
||||||
td.save()
|
|
||||||
else:
|
|
||||||
td = TDevice()
|
|
||||||
td.type = TDevice.DEVICE_VCHANNEL
|
|
||||||
td.code = vdata['code']
|
|
||||||
td.location = vdata['location']
|
|
||||||
td.create_by = request.user
|
|
||||||
td.save()
|
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
@action(methods=['post'], detail=False, perms_map={'post': 'tdevice:bind_area'},
|
@action(methods=['post'], detail=False, perms_map={'post': 'tdevice:bind_area'},
|
||||||
|
|
Loading…
Reference in New Issue