XH_Digital_Management/application/mkt_mgnt/views.py

225 lines
10 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from django.http import JsonResponse
from django.shortcuts import render
from django.urls import reverse
from application.mkt_mgnt.models import *
from common.utils.page_helper import paginate_query_and_assign_numbers
def proj_res_list_view(request):
# 声明查询集
query_set = ProjectResources.objects.filter().order_by('-resource_id')
# 获取查询参数
name = request.GET.get('name', '')
unit = request.GET.get('unit', '')
resource_manager = request.GET.get('resource_manager', '')
# 根据提供的参数进行筛选
if name:
query_set = query_set.filter(name__icontains=name)
if unit:
query_set = query_set.filter(unit__icontains=unit)
if resource_manager:
query_set = query_set.filter(resource_manager__name__icontains=resource_manager)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&name={}&unit={}&resource_manager={}'.format(name, unit, resource_manager)
fields = [
{"label": "项目资源ID", "field": "resource_id", "type": "text", "is_show": 1, "is_add": 0},
{"label": "姓名", "field": "name", "type": "text", "is_show": 1, "is_add": 1},
{"label": "单位", "field": "unit", "type": "text", "is_show": 1, "is_add": 1},
{"label": "职务", "field": "position", "type": "text", "is_show": 1, "is_add": 1},
{"label": "联系电话", "field": "contact_phone", "type": "text", "is_show": 1, "is_add": 1},
{"label": "联系地址", "field": "contact_address", "type": "text", "is_show": 1, "is_add": 1},
{"label": "资源维护人", "field": "resource_manager", "type": "text", "is_show": 1, "is_add": 1},
{"label": "操作", "field": "actions", "type": "actions", "is_show": 1, "is_add": 0},
]
# 准备上下文
context = {
'items': items,
'id_name': 'resource_id',
'query_params': query_params,
'model_config': {"app_label": "mkt_mgnt", "model_name": "ProjectResources", "html_name": "proj_res_list"},
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "营销管理", "name": "index"},
{"title": "项目资源表", "name": "proj_res_list"}],
'filters': [{"type": "text", "id": "name", "name": "name", "label": "姓名", "placeholder": "请输入姓名"},
{"type": "text", "id": "unit", "name": "unit", "label": "单位", "placeholder": "请输入单位"},
{"type": "text", "id": "resource_manager", "name": "resource_manager", "label": "资源维护人",
"placeholder": "请输入资源维护人"}],
'table_columns': fields,
'show_button': {"add": True, "modify": True, "download": True, "upload": True},
'url': {
"modify": reverse("proj_res_list_modify"),
"add": reverse("proj_res_list_add"),
"delete": reverse("proj_res_list_delete"),
"download": reverse("download_excel_template",
kwargs={"template_name": "营销管理-项目资源表-Excel上传模板.xlsx",
"fields": fields}),
"parse": reverse("common_excel_parse"),
"save": reverse("save_excel_table_data"),
}
}
return render(request, 'mkt_mgnt/proj_res_list.html', context)
def proj_res_list_add(request):
if request.method == 'POST':
data = {
'name': request.POST.get('name'),
'unit': request.POST.get('unit'),
'position': request.POST.get('position'),
'contact_phone': request.POST.get('contact_phone'),
'contact_address': request.POST.get('contact_address'),
'resource_manager_id': request.POST.get('resource_manager')
}
ProjectResources.objects.create(**data)
return JsonResponse({"message": "添加成功"})
return JsonResponse({"message": "无效的请求方法"}, status=405)
def proj_res_list_modify(request):
if request.method == 'POST':
resource_id = request.POST.get('resource_id')
data = {
'name': request.POST.get('name'),
'unit': request.POST.get('unit'),
'position': request.POST.get('position'),
'contact_phone': request.POST.get('contact_phone'),
'contact_address': request.POST.get('contact_address'),
'resource_manager_id': request.POST.get('resource_manager')
}
ProjectResources.objects.filter(resource_id=resource_id).update(**data)
return JsonResponse({"message": "修改成功"})
return JsonResponse({"message": "无效的请求方法"}, status=405)
def proj_res_list_delete(request):
if request.method == 'GET':
resource_id = request.GET.get('resource_id')
ProjectResources.objects.filter(resource_id=resource_id).delete()
return JsonResponse({"message": "删除成功"})
return JsonResponse({"message": "无效的请求方法"}, status=405)
def cust_list_view(request):
# 声明查询集
query_set = Customer.objects.filter().order_by('-customer_id')
# 获取查询参数
name = request.GET.get('name', '')
unit = request.GET.get('unit', '')
# 根据提供的参数进行筛选
if name:
query_set = query_set.filter(name__icontains=name)
if unit:
query_set = query_set.filter(unit__icontains=unit)
# 对查询结果进行分页每页10条记录
items = paginate_query_and_assign_numbers(
request=request,
queryset=query_set,
per_page=10
)
# 构建上下文查询参数字符串
query_params = '&name={}&unit={}'.format(name, unit)
fields = [
{"label": "客户ID", "field": "customer_id", "type": "text", "is_show": 1, "is_add": 0},
{"label": "关系类型", "field": "relationship_type", "type": "text", "is_show": 1, "is_add": 1},
{"label": "详细说明", "field": "detailed_description", "type": "text", "is_show": 1, "is_add": 1},
{"label": "姓名", "field": "name", "type": "text", "is_show": 1, "is_add": 1},
{"label": "单位", "field": "unit", "type": "text", "is_show": 1, "is_add": 1},
{"label": "职务", "field": "position", "type": "text", "is_show": 1, "is_add": 1},
{"label": "常住地", "field": "residence", "type": "text", "is_show": 1, "is_add": 1},
{"label": "是否合作", "field": "cooperation", "type": "text", "is_show": 1, "is_add": 1},
{"label": "主办人", "field": "main_organizer", "type": "text", "is_show": 1, "is_add": 1},
{"label": "辅助人", "field": "assistant", "type": "text", "is_show": 1, "is_add": 1},
{"label": "操作", "field": "actions", "type": "actions", "is_show": 1, "is_add": 0},
]
# 准备上下文
context = {
'items': items,
'id_name': 'customer_id',
'query_params': query_params,
'model_config': {"app_label": "mkt_mgnt", "model_name": "Customer", "html_name": "cust_list"},
'breadcrumb_list': [{"title": "首页", "name": "index"}, {"title": "营销管理", "name": "index"},
{"title": "客户", "name": "cust_list"}],
'filters': [{"type": "text", "id": "name", "name": "name", "label": "姓名", "placeholder": "请输入姓名"},
{"type": "text", "id": "unit", "name": "unit", "label": "单位", "placeholder": "请输入单位"}],
'table_columns': fields,
'show_button': {"add": True, "modify": True, "download": True, "upload": True},
'url': {
"modify": reverse("cust_list_modify"),
"add": reverse("cust_list_add"),
"delete": reverse("cust_list_delete"),
"download": reverse("download_excel_template",
kwargs={"template_name": "营销管理-客户-Excel上传模板.xlsx",
"fields": fields}),
"parse": reverse("common_excel_parse"),
"save": reverse("save_excel_table_data"),
}
}
return render(request, 'mkt_mgnt/cust_list.html', context)
def cust_list_add(request):
if request.method == 'POST':
data = {
'relationship_type': request.POST.get('relationship_type'),
'detailed_description': request.POST.get('detailed_description'),
'name': request.POST.get('name'),
'unit': request.POST.get('unit'),
'position': request.POST.get('position'),
'residence': request.POST.get('residence'),
'cooperation': request.POST.get('cooperation'),
'main_organizer_id': request.POST.get('main_organizer'),
'assistant_id': request.POST.get('assistant')
}
Customer.objects.create(**data)
return JsonResponse({"message": "添加成功"})
return JsonResponse({"message": "无效的请求方法"}, status=405)
def cust_list_modify(request):
if request.method == 'POST':
customer_id = request.POST.get('customer_id')
data = {
'relationship_type': request.POST.get('relationship_type'),
'detailed_description': request.POST.get('detailed_description'),
'name': request.POST.get('name'),
'unit': request.POST.get('unit'),
'position': request.POST.get('position'),
'residence': request.POST.get('residence'),
'cooperation': request.POST.get('cooperation'),
'main_organizer_id': request.POST.get('main_organizer'),
'assistant_id': request.POST.get('assistant')
}
Customer.objects.filter(customer_id=customer_id).update(**data)
return JsonResponse({"message": "修改成功"})
return JsonResponse({"message": "无效的请求方法"}, status=405)
def cust_list_delete(request):
if request.method == 'GET':
customer_id = request.GET.get('customer_id')
Customer.objects.filter(customer_id=customer_id).delete()
return JsonResponse({"message": "删除成功"})
return JsonResponse({"message": "无效的请求方法"}, status=405)