parent
							
								
									7f503e27b7
								
							
						
					
					
						commit
						c18b06193e
					
				| 
						 | 
				
			
			@ -15,12 +15,24 @@ from dvadmin.utils.validator import CustomUniqueValidator
 | 
			
		|||
from dvadmin.utils.viewset import CustomModelViewSet
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def recursion(instance,parent,result):
 | 
			
		||||
    new_instance = getattr(instance,parent,None)
 | 
			
		||||
    res = []
 | 
			
		||||
    data = getattr(instance, result, None)
 | 
			
		||||
    if data:
 | 
			
		||||
        res.append(data)
 | 
			
		||||
    if new_instance:
 | 
			
		||||
        array = recursion(new_instance,parent,result)
 | 
			
		||||
        res+=(array)
 | 
			
		||||
    return res
 | 
			
		||||
 | 
			
		||||
class UserSerializer(CustomModelSerializer):
 | 
			
		||||
    """
 | 
			
		||||
    用户管理-序列化器
 | 
			
		||||
    """
 | 
			
		||||
    dept_name = serializers.CharField(source='dept.name', read_only=True)
 | 
			
		||||
    role_info = DynamicSerializerMethodField()
 | 
			
		||||
    dept_name_all = serializers.SerializerMethodField()
 | 
			
		||||
 | 
			
		||||
    class Meta:
 | 
			
		||||
        model = Users
 | 
			
		||||
| 
						 | 
				
			
			@ -30,6 +42,11 @@ class UserSerializer(CustomModelSerializer):
 | 
			
		|||
            "post": {"required": False},
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    def get_dept_name_all(self, instance):
 | 
			
		||||
        dept_name_all = recursion(instance.dept, "parent", "name")
 | 
			
		||||
        dept_name_all.reverse()
 | 
			
		||||
        return "/".join(dept_name_all)
 | 
			
		||||
 | 
			
		||||
    def get_role_info(self, instance, parsed_query):
 | 
			
		||||
        roles = instance.role.all()
 | 
			
		||||
        # You can do what ever you want in here
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -224,7 +224,7 @@ export const downloadFile = function ({ url, params, method, filename }) {
 | 
			
		|||
    responseType: 'blob'
 | 
			
		||||
    // headers: {Accept: 'application/vnd.openxmlformats-officedocument'}
 | 
			
		||||
  }).then(res => {
 | 
			
		||||
    const fileName = window.decodeURI(res.headers['content-disposition'].split('=')[1]) || filename + '.xls' || '文件导出.xls'
 | 
			
		||||
    const fileName = window.decodeURI(filename + '.xls' || res.headers['content-disposition'].split('=')[1]) ||  '文件导出.xls'
 | 
			
		||||
    if (res) {
 | 
			
		||||
      const blob = new Blob([res.data], { type: 'charset=utf-8' })
 | 
			
		||||
      const elink = document.createElement('a')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,7 @@ import { urlPrefix as deptPrefix } from '../dept/api'
 | 
			
		|||
import util from '@/libs/util'
 | 
			
		||||
 | 
			
		||||
export const crudOptions = (vm) => {
 | 
			
		||||
  util.filterParams(vm, ['dept_name', 'role_info{name}'])
 | 
			
		||||
  util.filterParams(vm, ['dept_name', 'role_info{name}','dept_name_all'])
 | 
			
		||||
  return {
 | 
			
		||||
    pageOptions: {
 | 
			
		||||
      compact: true
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue