This commit is contained in:
ddrwode
2026-01-15 16:55:35 +08:00
parent b11d5cfceb
commit 7a2adecca9
2 changed files with 68 additions and 2 deletions

View File

@@ -1,7 +1,7 @@
from django.urls import path
from .models import Schedule
from .views import registration,registrationDetail,Project,Projectquerytype,ProjectDetail,EditProject,BidRegistration,BidDetail,registrationList,caseManagement,caseManagementDetail,CaseAttachmentUpload,CaseAttachmentUpdate,Uploadinvoice,InvoiceDetail,Log,LogDetail,accumulate,preFilingLinkedCases,Application,ApplicationDetail,WarehousingRegistration,WarehousingDetail,PlatformRegistration,PlatformDetail,EditPlatformDetail,DeletePlatformDetail,bulletin,BulletinDetail,EditBulletin,deleteBulletin,Lawyersdocuments,LawyersdocumentsDetail,LwaDetail,CreateSchedule,DeleteSchedule,ScheduleDetail,handleSchedule,AddRermission,DisplayRermission,DeleteRermission,EditRermission,addRole,DeleteRole,EditRole,displayRole,modifypermissions,getRolePermissions,DeleteRegistration,EditRegistration,DeleteProject,EditBid,DeleteBid,EditCase,DeleteCase,EditApplication,DeleteApplication,EditWarehousing,DeleteWarehousing,EditLawyerFlie,EditSchedule,TransferCase,CaseChangeRequestCreate,CaseChangeRequestList,CaseChangeRequestDetail,ProjectDropdownList
from .views import registration,registrationDetail,Project,Projectquerytype,ProjectDetail,EditProject,BidRegistration,BidDetail,registrationList,caseManagement,caseManagementDetail,CaseAttachmentUpload,CaseAttachmentUpdate,Uploadinvoice,InvoiceDetail,Log,LogDetail,accumulate,preFilingLinkedCases,Application,ApplicationDetail,WarehousingRegistration,WarehousingDetail,PlatformRegistration,PlatformDetail,EditPlatformDetail,DeletePlatformDetail,bulletin,BulletinDetail,EditBulletin,deleteBulletin,Lawyersdocuments,LawyersdocumentsDetail,LwaDetail,CreateSchedule,DeleteSchedule,ScheduleDetail,handleSchedule,AddRermission,DisplayRermission,DeleteRermission,EditRermission,addRole,DeleteRole,EditRole,displayRole,modifypermissions,getRolePermissions,DeleteRegistration,EditRegistration,DeleteProject,EditBid,DeleteBid,EditCase,DeleteCase,EditApplication,DeleteApplication,EditWarehousing,DeleteWarehousing,EditLawyerFlie,EditSchedule,TransferCase,CaseChangeRequestCreate,CaseChangeRequestList,CaseChangeRequestDetail,ProjectDropdownList,CaseDropdownList
urlpatterns = [
path('register',registration.as_view(),name='register'),
@@ -69,5 +69,6 @@ urlpatterns = [
path('transferCase',TransferCase.as_view(),name='transferCase'),
path('case-change-request-create',CaseChangeRequestCreate.as_view(),name='case-change-request-create'),
path('case-change-request-list',CaseChangeRequestList.as_view(),name='case-change-request-list'),
path('case-change-request-detail',CaseChangeRequestDetail.as_view(),name='case-change-request-detail')
path('case-change-request-detail',CaseChangeRequestDetail.as_view(),name='case-change-request-detail'),
path('case-dropdown-list',CaseDropdownList.as_view(),name='case-dropdown-list')
]

View File

@@ -1703,6 +1703,71 @@ class ProjectDropdownList(APIView):
}, status=status.HTTP_200_OK)
class CaseDropdownList(APIView):
"""获取案件的下拉列表接口"""
def post(self, request, *args, **kwargs):
"""
获取案件列表(用于下拉选择)
返回案件数据,格式简洁,适合下拉列表使用
:param request:
:param args:
:param kwargs:
:return:
"""
# 可选参数:状态过滤
state_filter = request.data.get('state', None) # 可以按状态过滤,如"已通过"
# 查询未删除的案件
Q_obj = Q(is_deleted=False)
# 如果指定了状态过滤
if state_filter:
Q_obj &= Q(state=state_filter)
cases = Case.objects.filter(Q_obj).order_by('-id')
data = []
for case in cases:
# 解析负责人信息,获取负责人姓名
responsible_person = ""
try:
responsiblefor_dict = json.loads(case.responsiblefor) if case.responsiblefor else {}
if isinstance(responsiblefor_dict, dict):
responsible_person = responsiblefor_dict.get('responsible_person', '')
except (json.JSONDecodeError, TypeError):
pass
# 构建显示文本(用于下拉列表显示)
display_text = case.contract_no or f"案件#{case.id}"
if case.project_type:
display_text += f" - {case.project_type}"
if case.client_name:
display_text += f" ({case.client_name})"
elif responsible_person:
display_text += f" ({responsible_person})"
data.append({
"id": case.id,
"value": case.id, # 下拉列表的值
"label": display_text, # 下拉列表的显示文本
"contract_no": case.contract_no or "", # 合同编号
"project_type": case.project_type or "", # 项目类型
"client_name": case.client_name or "", # 客户名称
"party_name": case.party_name or "", # 相对方名称
"project_description": case.project_description or "", # 项目简述
"responsible_person": responsible_person, # 负责人
"times": case.times, # 立案时间
"state": case.state, # 状态
})
return Response({
'message': '查询成功',
'data': data,
'total': len(data),
'code': 0
}, status=status.HTTP_200_OK)
class Application(APIView):
def post(self, request, *args, **kwargs):
"""