功能变化:

优化用户管理及导出
pull/71/MERGE
猿小天 2022-11-02 17:17:41 +08:00
parent 7f503e27b7
commit c18b06193e
3 changed files with 19 additions and 2 deletions

View File

@ -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

View File

@ -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')

View File

@ -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