优化字典数据列表,表单
This commit is contained in:
@@ -1,6 +1,11 @@
|
|||||||
from rest_framework import serializers, viewsets
|
from rest_framework import serializers, viewsets
|
||||||
from system.models import DictData
|
from system.models import DictData
|
||||||
from utils.custom_model_viewSet import CustomModelViewSet
|
from utils.custom_model_viewSet import CustomModelViewSet
|
||||||
|
from rest_framework.decorators import action
|
||||||
|
from rest_framework.response import Response
|
||||||
|
from django_filters import rest_framework as filters
|
||||||
|
|
||||||
|
from utils.models import CommonStatus
|
||||||
|
|
||||||
|
|
||||||
class DictDataSerializer(serializers.ModelSerializer):
|
class DictDataSerializer(serializers.ModelSerializer):
|
||||||
@@ -10,7 +15,28 @@ class DictDataSerializer(serializers.ModelSerializer):
|
|||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
|
|
||||||
|
class DictDataFilter(filters.FilterSet):
|
||||||
|
class Meta:
|
||||||
|
model = DictData
|
||||||
|
fields = ['dict_type']
|
||||||
|
|
||||||
|
|
||||||
|
class DictDataLabelValueSerializer(serializers.ModelSerializer):
|
||||||
|
dict_type_value = serializers.CharField(source='dict_type.value')
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = DictData
|
||||||
|
fields = ['label', 'value', 'dict_type']
|
||||||
|
|
||||||
|
|
||||||
class DictDataViewSet(CustomModelViewSet):
|
class DictDataViewSet(CustomModelViewSet):
|
||||||
queryset = DictData.objects.filter(is_deleted=False)
|
queryset = DictData.objects.filter(is_deleted=False)
|
||||||
serializer_class = DictDataSerializer
|
serializer_class = DictDataSerializer
|
||||||
filterset_fields = ['dict_type']
|
filterset_class = DictDataFilter
|
||||||
|
|
||||||
|
@action(detail=False, methods=['get'])
|
||||||
|
def simple(self, request):
|
||||||
|
# 复用filterset_class过滤DictData
|
||||||
|
queryset = self.get_queryset().filter(status=CommonStatus.ENABLED)
|
||||||
|
serializer = DictDataLabelValueSerializer(queryset, many=True)
|
||||||
|
return Response(serializer.data)
|
||||||
@@ -44,6 +44,14 @@ async function updateDictData(
|
|||||||
) {
|
) {
|
||||||
return requestClient.put(`/system/dict_data/${id}/`, data);
|
return requestClient.put(`/system/dict_data/${id}/`, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取字典数据select用
|
||||||
|
*/
|
||||||
|
async function getDictDataSimple() {
|
||||||
|
return requestClient.get(`/system/dict_data/simple/`);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新字典数据
|
* 更新字典数据
|
||||||
*
|
*
|
||||||
@@ -69,6 +77,7 @@ export {
|
|||||||
createDictData,
|
createDictData,
|
||||||
deleteDictData,
|
deleteDictData,
|
||||||
getDictDataList,
|
getDictDataList,
|
||||||
|
getDictDataSimple,
|
||||||
patchDictData,
|
patchDictData,
|
||||||
updateDictData,
|
updateDictData,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -128,15 +128,17 @@ export function useColumns(
|
|||||||
fixed: 'left',
|
fixed: 'left',
|
||||||
title: 'id',
|
title: 'id',
|
||||||
treeNode: true,
|
treeNode: true,
|
||||||
width: 150,
|
width: 50,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'label',
|
field: 'label',
|
||||||
title: '字典标签',
|
title: '字典标签',
|
||||||
|
width: 100,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'value',
|
field: 'value',
|
||||||
title: '字典键值',
|
title: '字典键值',
|
||||||
|
width: 100,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'sort',
|
field: 'sort',
|
||||||
@@ -187,7 +189,7 @@ export function useColumns(
|
|||||||
headerAlign: 'center',
|
headerAlign: 'center',
|
||||||
showOverflow: false,
|
showOverflow: false,
|
||||||
title: '操作',
|
title: '操作',
|
||||||
width: 200,
|
width: 100,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ const [FormModal, formModalApi] = useVbenModal({
|
|||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑套餐
|
* 编辑字典数据
|
||||||
* @param row
|
* @param row
|
||||||
*/
|
*/
|
||||||
function onEdit(row: SystemDictDataApi.SystemDictData) {
|
function onEdit(row: SystemDictDataApi.SystemDictData) {
|
||||||
@@ -37,14 +37,18 @@ function onEdit(row: SystemDictDataApi.SystemDictData) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建新套餐
|
* 创建字典数据
|
||||||
*/
|
*/
|
||||||
function onCreate() {
|
function onCreate() {
|
||||||
formModalApi.setData(null).open();
|
formModalApi
|
||||||
|
.setData({
|
||||||
|
dict_type: Number(route.query.dict_type),
|
||||||
|
})
|
||||||
|
.open();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除套餐
|
* 删除字典数据
|
||||||
* @param row
|
* @param row
|
||||||
*/
|
*/
|
||||||
function onDelete(row: SystemDictDataApi.SystemDictData) {
|
function onDelete(row: SystemDictDataApi.SystemDictData) {
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ export function useColumns(): VxeTableGridOptions<SystemLoginLogApi.SystemLoginL
|
|||||||
{
|
{
|
||||||
field: 'user_ip',
|
field: 'user_ip',
|
||||||
title: '登录地址',
|
title: '登录地址',
|
||||||
|
width: 150,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
field: 'user_agent',
|
field: 'user_agent',
|
||||||
|
|||||||
Reference in New Issue
Block a user