consumer search admin

This commit is contained in:
caoqianming 2020-08-10 16:17:50 +08:00
parent ff97be9e95
commit a1fc8bd17e
3 changed files with 48 additions and 13 deletions

View File

@ -1,6 +1,22 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<div> <div>
<el-select
v-if="checkPermission(['admin'])"
v-model="listQuery.create_admin"
placeholder="创建账户"
clearable
style="width: 120px"
class="filter-item"
@change="handleFilter"
>
<el-option
v-for="item in adminOptions"
:key="item.id"
:label="item.username + '/' + item.name"
:value="item.id"
/>
</el-select>
<el-select <el-select
v-model="listQuery.company" v-model="listQuery.company"
placeholder="所属单位" placeholder="所属单位"
@ -75,12 +91,6 @@
icon="el-icon-refresh-left" icon="el-icon-refresh-left"
@click="resetFilter" @click="resetFilter"
>刷新重置</el-button> >刷新重置</el-button>
<el-checkbox
v-model="showCreate"
class="filter-item"
style="margin-left:15px;"
@change="tableKey=tableKey+1"
>创建时间</el-checkbox>
</div> </div>
<div style="margin-top:10px"> <div style="margin-top:10px">
<el-button type="primary" @click="handleAddUser" icon="el-icon-plus">新增</el-button> <el-button type="primary" @click="handleAddUser" icon="el-icon-plus">新增</el-button>
@ -111,8 +121,14 @@
</div> </div>
<el-button slot="reference" icon="el-icon-upload2">Excel导入</el-button> <el-button slot="reference" icon="el-icon-upload2">Excel导入</el-button>
</el-popover> </el-popover>
<el-button type="primary" icon="el-icon-download" @click="exportConsumer">导出Excel</el-button> <el-button type="primary" icon="el-icon-download" @click="exportConsumer" v-if="checkPermission(['consumer__export'])">导出Excel</el-button>
<el-button type="danger" icon="el-icon-delete" @click="handleDeletes">批量删除</el-button> <el-button type="danger" icon="el-icon-delete" @click="handleDeletes" v-if="checkPermission(['consumer__deletes'])">批量删除</el-button>
<el-checkbox
v-model="showCreate"
class="filter-item"
style="margin-left:15px;"
@change="tableKey=tableKey+1"
>创建信息</el-checkbox>
</div> </div>
<el-table <el-table
:data="consumerList" :data="consumerList"
@ -154,8 +170,9 @@
<el-tag v-if="scope.row.workscope_name">{{ scope.row.workscope_name }}</el-tag> <el-tag v-if="scope.row.workscope_name">{{ scope.row.workscope_name }}</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="创建日期" sortable="custom" prop="create_time" v-if="showCreate"> <el-table-column label="创建信息" sortable="custom" prop="create_time" v-if="showCreate">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.create_admin_.username }}/</span>
<span>{{ scope.row.create_time }}</span> <span>{{ scope.row.create_time }}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -285,6 +302,7 @@ import { getCompanyList } from "@/api/crm";
import { genTree, deepClone } from "@/utils"; import { genTree, deepClone } from "@/utils";
import checkPermission from "@/utils/permission"; import checkPermission from "@/utils/permission";
import { upUrl } from "@/api/file"; import { upUrl } from "@/api/file";
import { getUserList } from "@/api/user"
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import Pagination from "@/components/Pagination"; // secondary package based on el-pagination import Pagination from "@/components/Pagination"; // secondary package based on el-pagination
@ -312,7 +330,7 @@ export default {
data() { data() {
return { return {
tableKey: 0, tableKey: 0,
showCreate: false, showCreate: true,
upUrl: upUrl(), upUrl: upUrl(),
popovervisible: false, popovervisible: false,
consumer: defaultConsumer, consumer: defaultConsumer,
@ -334,11 +352,17 @@ export default {
rule1: { rule1: {
name: [{ required: true, message: "请输入姓名", trigger: "blur" }], name: [{ required: true, message: "请输入姓名", trigger: "blur" }],
username: [ username: [
{ required: true, message: "请输入手机号", trigger: "change" } { required: true, message: "请输入手机号", trigger: "change", pattern: /^1[34578]\d{9}$/, }
], ],
role: [ role: [
{ required: true, message: "请选择", trigger: "change" } { required: true, message: "请选择", trigger: "change" }
], ],
workscope: [
{ required: true, message: "请选择", trigger: "change"}
],
subjects: [
{ required: true, message: "请选择", trigger: "change"}
]
}, },
filterOrgText: "", filterOrgText: "",
treeLoding: false, treeLoding: false,
@ -383,6 +407,7 @@ export default {
}] }]
}, },
datevalue: '', datevalue: '',
adminOptions:[]
}; };
}, },
computed: {}, computed: {},
@ -395,6 +420,7 @@ export default {
this.getSubjectAll() this.getSubjectAll()
this.getWorkScopeAll() this.getWorkScopeAll()
this.getConsumerRoleAll() this.getConsumerRoleAll()
this.getAdminOptions()
}, },
methods: { methods: {
checkPermission, checkPermission,
@ -627,6 +653,13 @@ export default {
this.listQuery.max_create = this.datevalue[1], this.listQuery.max_create = this.datevalue[1],
this.getList() this.getList()
}, },
getAdminOptions(){
if(checkPermission(['admin'])){
getUserList().then(res=>{
this.adminOptions = genTree(res.data.results)
})
}
}
} }
}; };
</script> </script>

View File

@ -8,4 +8,4 @@ class ConsumerFilter(filters.FilterSet):
class Meta: class Meta:
model = Consumer model = Consumer
fields = ['company', 'role', 'min_create', 'max_create'] fields = ['company', 'role', 'min_create', 'max_create', 'create_admin']

View File

@ -2,6 +2,7 @@ from rest_framework import serializers
from .models import Company, Consumer, PaySubject, ConsumerPerm, ConsumerRole from .models import Company, Consumer, PaySubject, ConsumerPerm, ConsumerRole
from question.models import Question, Questioncat from question.models import Question, Questioncat
from .permission import get_consumerperm_list from .permission import get_consumerperm_list
from rbac.serializers.user_serializer import UserListSerializer
class ConsumerPermSerializer(serializers.ModelSerializer): class ConsumerPermSerializer(serializers.ModelSerializer):
@ -35,6 +36,7 @@ class ConsumerSerializer(serializers.ModelSerializer):
subjects_name = serializers.StringRelatedField(source='subjects', many=True, read_only=True) subjects_name = serializers.StringRelatedField(source='subjects', many=True, read_only=True)
workscope_name = serializers.StringRelatedField(source='workscope', read_only=True) workscope_name = serializers.StringRelatedField(source='workscope', read_only=True)
role_name = serializers.StringRelatedField(source='role', read_only=True) role_name = serializers.StringRelatedField(source='role', read_only=True)
create_admin_ = UserListSerializer(source='create_admin')
class Meta: class Meta:
model = Consumer model = Consumer
exclude = ('avatar','collects', 'process') exclude = ('avatar','collects', 'process')
@ -42,7 +44,7 @@ class ConsumerSerializer(serializers.ModelSerializer):
@staticmethod @staticmethod
def setup_eager_loading(queryset): def setup_eager_loading(queryset):
""" Perform necessary eager loading of data. """ """ Perform necessary eager loading of data. """
queryset = queryset.select_related('company','workscope', 'role') queryset = queryset.select_related('company','workscope', 'role', 'create_admin')
queryset = queryset.prefetch_related('subjects',) queryset = queryset.prefetch_related('subjects',)
return queryset return queryset