#!/bin/python #coding: utf-8 # +------------------------------------------------------------------- # | version:1.0 # +------------------------------------------------------------------- # | django-vue-lyadmin 专业版 # +------------------------------------------------------------------- # | Author: lybbn # +------------------------------------------------------------------- # | QQ: 1042594286 # +------------------------------------------------------------------- # | Date: 2023/11/05 # +------------------------------------------------------------------- # ------------------------------ # 表单构建-- index.vue 前端页面(lytable版) # ------------------------------ from django.template import Template,Context def lyGenerateIndexVue(objects,object,VueIndexName): #导出 canExport = False #外键筛选处理 ForeignKeyList = [] #日期范围过滤处理 date_range_filter_list = [] for c in object['widgetList']: field_name = c['options']['crudField']['field_name'] verbose_name = c['options']['crudField']['verbose_name'] field_type = c['options']['crudField'].get('field_type','') foreign_key = c['options']['crudField']['foreign_key'] form_type = c.get('type','') if c['options']['crudField'].get('can_search',False) and c['options']['crudField']['search_type'] == 'range' and form_type in ['date','time']: search_data = '%sTimers'%field_name search_data_beginAt = '%s_beginAt'%field_name search_data_endAt = '%s_endAt'%field_name search_data_funcion = '%sTimeChange'%field_name search_range_type = form_type if form_type == 'date': search_format = 'yyyy-MM-dd' search_item = f"""""" else: search_format = 'yyyy-MM-dd hh:mm:ss' search_item = f"""""" d_f_data = { 'search_data':search_data, 'search_data_beginAt':search_data_beginAt, 'search_data_endAt':search_data_endAt, 'search_item':search_item, 'search_range_type':search_range_type, 'search_data_funcion':search_data_funcion, 'search_format':search_format } date_range_filter_list.append(d_f_data) c['date_range_filter_list'] = d_f_data if c['options']['crudField'].get('can_export',False): canExport = True if field_type in ['ForeignKey','ManyToManyField','OneToOneField']: f_class_name = foreign_key['class_name'] f_value = foreign_key['value'] f_label = foreign_key['label'] f_api_path = foreign_key['api_path'] if f_class_name and f_value and f_label and f_api_path: const_cl = 'params' gname_data = f"{field_name}LyFormBuilderAPIList" gname_data_let = f"let {gname_data} = ref([])" gname = "%sLyFormBuilderAPI"%field_name gname_function = "%sLyFormBuilderAPIFunction"%field_name gname_params = '{url: `%s`,%s}'%(f_api_path,const_cl) import_data = f"""const {gname} = {const_cl} => ajaxGet({gname_params})""" s_data = { 'field_name':field_name, 'name':gname, 'data':gname_data, 'data_let':gname_data_let, 'import':import_data, 'function':gname_function, 'value':f_value, 'label':f_label } ForeignKeyList.append(s_data) c['ForeignKeyList'] = s_data apps_code = """ """ context = Context({'objects':objects,'object': object,'VueIndexName':VueIndexName,'ForeignKeyList':ForeignKeyList,'canExport':canExport,'date_range_filter_list':date_range_filter_list}) return Template(apps_code).render(context)