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