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