From 7a2adecca9e41003aef5961fc1858ccb8fa1fe37 Mon Sep 17 00:00:00 2001 From: ddrwode <2797r9234@ferfrfgr> Date: Thu, 15 Jan 2026 16:55:35 +0800 Subject: [PATCH] haha --- business/urls.py | 5 ++-- business/views.py | 65 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 2 deletions(-) diff --git a/business/urls.py b/business/urls.py index a478536..9ae84de 100644 --- a/business/urls.py +++ b/business/urls.py @@ -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') ] \ No newline at end of file diff --git a/business/views.py b/business/views.py index b415281..a75d87e 100644 --- a/business/views.py +++ b/business/views.py @@ -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): """