Commit addb0f2d authored by lvshibao's avatar lvshibao

数据分析-违规坐席分析

parent 23d0d818
...@@ -179,12 +179,14 @@ class TasksApi(viewsets.ViewSet): ...@@ -179,12 +179,14 @@ class TasksApi(viewsets.ViewSet):
return Response({'code': 0, 'msg': 'success', 'data': data_max_return}) return Response({'code': 0, 'msg': 'success', 'data': data_max_return})
@action(['post'], detail=False) @action(['post'], detail=False)
@get_account_info
def seat_rule(self, req: Request): def seat_rule(self, req: Request):
""" """
坐席违规分析-按照得分 坐席违规分析-按照得分
:param req: :param req:
:return: :return:
""" """
username = req.data.get('username', '')
task_id = req.data.get('task', '') task_id = req.data.get('task', '')
agent_name = req.data.get('agentName', '') agent_name = req.data.get('agentName', '')
sort = req.data.get('sort', 'des') sort = req.data.get('sort', 'des')
...@@ -197,6 +199,8 @@ class TasksApi(viewsets.ViewSet): ...@@ -197,6 +199,8 @@ class TasksApi(viewsets.ViewSet):
task_condition = {'create_date__gte': q_start_date, 'create_date__lt': q_end_date} task_condition = {'create_date__gte': q_start_date, 'create_date__lt': q_end_date}
if task_id: if task_id:
task_condition['task'] = task_id task_condition['task'] = task_id
if username in name_list:
task_condition['task'] = username
if agent_name: if agent_name:
task_condition['agentName'] = agent_name task_condition['agentName'] = agent_name
if sort == 'des': if sort == 'des':
...@@ -232,7 +236,7 @@ class TasksApi(viewsets.ViewSet): ...@@ -232,7 +236,7 @@ class TasksApi(viewsets.ViewSet):
for i in range(len(data_sort)): for i in range(len(data_sort)):
data_sort[i]['ranking'] = (int(page)-1)*int(page_size) + i + 1 data_sort[i]['ranking'] = (int(page)-1)*int(page_size) + i + 1
data_sort[i]['ratio'] = '{0}%'.format(int(data_sort[i]['ratio'] * 100)) data_sort[i]['ratio'] = '{0}%'.format(int(data_sort[i]['ratio'] * 100))
return Response({'code': 0, 'msg': 'success', 'count': total_count, 'data': data_sort}) return Response({'code': 0, 'msg': 'success', 'count': total_count, 'data': data_sort, 'username': username})
@action(['post'], detail=False) @action(['post'], detail=False)
@get_account_info @get_account_info
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
end-placeholder="结束日期" end-placeholder="结束日期"
:default-time="['00:00:00', '23:59:59']"> :default-time="['00:00:00', '23:59:59']">
</el-date-picker> </el-date-picker>
<el-select v-model="taskvalue" filterable placeholder="请选择" @change="changeTask"> <el-select v-if="sel_is_show == true" v-model="taskvalue" filterable placeholder="请选择" @change="changeTask">
<el-option <el-option
v-for="item in taskList" v-for="item in taskList"
:key="item.id" :key="item.id"
......
new Vue({ new Vue({
el: '#childApp', el: '#childApp',
data:function(){ data: function () {
return { return {
ss:'sas', ss: 'sas',
dateRange:[new Date(), new Date()], dateRange: [new Date(), new Date()],
taskList:[], taskList: [],
taskvalue: '', taskvalue: '',
start_date: '', start_date: '',
end_date:'', end_date: '',
takeList:[], takeList: [],
takevalue: '', takevalue: '',
loading: true, loading: true,
tableData: [], tableData: [],
sortObj:{ sortObj: {
name:'', name: '',
sort:'des', sort: 'des',
}, },
sel_is_show: true,
BASEURL: window_url, BASEURL: window_url,
currentPage:1, currentPage: 1,
pagesize: 15, pagesize: 15,
total: 10, total: 10,
isHidePage: true, isHidePage: true,
} }
}, },
methods: { methods: {
loadData(){ loadData() {
this.$refs.loadModal.submit(); this.$refs.loadModal.submit();
this.$message('文件下载中请稍后...'); this.$message('文件下载中请稍后...');
}, },
changeRange(dateRange){ changeRange(dateRange) {
console.log(dateRange); console.log(dateRange);
this.start_date = dateRange[0]; this.start_date = dateRange[0];
this.end_date = dateRange[1]; this.end_date = dateRange[1];
this.currentPage = 1; this.currentPage = 1;
this.getRule(this.taskvalue,this.start_date,this.end_date,this.takevalue); // 获取统计数据 this.getRule(this.taskvalue, this.start_date, this.end_date, this.takevalue); // 获取统计数据
}, },
changeTask(msg){ changeTask(msg) {
console.log(msg); console.log(msg);
this.currentPage = 1; this.currentPage = 1;
this.taskvalue = msg; this.taskvalue = msg;
this.getTake() this.getTake()
this.getRule(this.taskvalue,this.start_date,this.end_date,this.takevalue); // 获取统计数据 this.getRule(this.taskvalue, this.start_date, this.end_date, this.takevalue); // 获取统计数据
}, },
changeTake(msg){ changeTake(msg) {
this.currentPage = 1; this.currentPage = 1;
this.takevalue = msg; this.takevalue = msg;
this.getRule(this.taskvalue,this.start_date,this.end_date,this.takevalue); // 获取统计数据 this.getRule(this.taskvalue, this.start_date, this.end_date, this.takevalue); // 获取统计数据
console.log(msg); console.log(msg);
}, },
getTask(){ getTask() {
let that = this; let that = this;
that.taskList = [ that.taskList = [
{id:'',name:'全省'}, {id: '', name: '全省'},
{id:'合肥',name:'合肥'}, {id: '合肥', name: '合肥'},
{id:'芜湖',name:'芜湖'}, {id: '芜湖', name: '芜湖'},
{id:'蚌埠',name:'蚌埠'}, {id: '蚌埠', name: '蚌埠'},
{id:'淮南',name:'淮南'}, {id: '淮南', name: '淮南'},
{id:'马鞍山',name:'马鞍山'}, {id: '马鞍山', name: '马鞍山'},
{id:'淮北',name:'淮北'}, {id: '淮北', name: '淮北'},
{id:'铜陵',name:'铜陵'}, {id: '铜陵', name: '铜陵'},
{id:'安庆',name:'安庆'}, {id: '安庆', name: '安庆'},
{id:'黄山',name:'黄山'}, {id: '黄山', name: '黄山'},
{id:'滁州',name:'滁州'}, {id: '滁州', name: '滁州'},
{id:'阜阳',name:'阜阳'}, {id: '阜阳', name: '阜阳'},
{id:'亳州',name:'亳州'}, {id: '亳州', name: '亳州'},
{id:'宿州',name:'宿州'}, {id: '宿州', name: '宿州'},
{id:'六安',name:'六安'}, {id: '六安', name: '六安'},
{id:'宣城',name:'宣城'}, {id: '宣城', name: '宣城'},
{id:'巢湖',name:'巢湖'}, {id: '巢湖', name: '巢湖'},
{id:'池州',name:'池州'}, {id: '池州', name: '池州'},
{id:'安徽省营业部',name:'安徽省营业部'}, {id: '安徽省营业部', name: '安徽省营业部'},
]; ];
//RquestsGet('api/v1/tasks/obtain/').then(data => { //RquestsGet('api/v1/tasks/obtain/').then(data => {
// //console.log(data); // //console.log(data);
...@@ -81,54 +82,60 @@ new Vue({ ...@@ -81,54 +82,60 @@ new Vue({
// } // }
//}) //})
}, },
getTake(){ getTake() {
let that = this; let that = this;
RquestsGet('api/v1/tasks/seat/?task=' + that.taskvalue).then(data => { RquestsGet('api/v1/tasks/seat/?task=' + that.taskvalue).then(data => {
//console.log(data); //console.log(data);
if(data.code != 0){ if (data.code != 0) {
//that.takeList = [{agentName:'全部坐席'}] //that.takeList = [{agentName:'全部坐席'}]
}else{ } else {
that.takeList = data.data; that.takeList = data.data;
} }
}) })
}, },
sortChange(item){ sortChange(item) {
console.log(item); console.log(item);
let order; let order;
if(item.order == 'descending'){ if (item.order == 'descending') {
order = 'des'; order = 'des';
}else if(item.order == 'ascending'){ } else if (item.order == 'ascending') {
order = 'asc'; order = 'asc';
}else{ } else {
order = null; order = null;
} }
this.sortObj = { this.sortObj = {
name: item.prop, name: item.prop,
sort: order sort: order
} }
this.getRule(this.taskvalue,this.start_date,this.end_date,this.takevalue); // 获取统计数据 this.getRule(this.taskvalue, this.start_date, this.end_date, this.takevalue); // 获取统计数据
}, },
getRule(task,start_date,end_date,agentName){ getRule(task, start_date, end_date, agentName) {
let that = this; let that = this;
let page = this.currentPage; let page = this.currentPage;
let arr = []; let arr = [];
this.$loading({text:'数据加载中...'}); this.$loading({text: '数据加载中...'});
let sort = this.sortObj.sort; let sort = this.sortObj.sort;
RquestsPost('api/v1/tasks/seat_rule/',{task,start_date,end_date,agentName,page,sort}).then(data => { RquestsPost('api/v1/tasks/seat_rule/', {task, start_date, end_date, agentName, page, sort}).then(data => {
console.log(data.data); console.log(data.data);
if(data.code != 0){ if (data.code != 0) {
that.$message(data.msg); that.$message(data.msg);
if(data.msg){ if (data.msg) {
that.$message(data.msg); that.$message(data.msg);
}else{ } else {
that.$message('服务器错误') that.$message('服务器错误')
} }
} }
if (['合肥', '芜湖', '淮北', '安庆', '黄山', '滁州', '阜阳', '亳州', '宿州', '六安', '宣城', '巢湖', '池州', '淮南', '安徽省营业部', '蚌埠', '马鞍山', '铜陵'].indexOf(data.username) !== -1) {
that.sel_is_show = false;
that.taskvalue = data.username;
} else {
that.sel_is_show = true;
}
this.tableData = data.data; this.tableData = data.data;
this.total = data.count; this.total = data.count;
this.isHidePage = !(data.data.length > 0); this.isHidePage = !(data.data.length > 0);
if(!data.data){ if (!data.data) {
this.$loading().close(); this.$loading().close();
return false; return false;
...@@ -140,28 +147,28 @@ new Vue({ ...@@ -140,28 +147,28 @@ new Vue({
this.$loading().close(); this.$loading().close();
}) })
}, },
CurrentChange(page){ CurrentChange(page) {
this.currentPage = page; this.currentPage = page;
//this.tableData = this.basearr.concat(this.allData.slice((page-1)*this.pagesize,page*this.pagesize)); //this.tableData = this.basearr.concat(this.allData.slice((page-1)*this.pagesize,page*this.pagesize));
this.getRule(this.taskvalue,this.start_date,this.end_date,this.takevalue); // 获取统计数据 this.getRule(this.taskvalue, this.start_date, this.end_date, this.takevalue); // 获取统计数据
//that.allData = data.data; //that.allData = data.data;
}, },
dateFormat(date){ dateFormat(date) {
return date.getFullYear() + "-" + (date.getMonth()+1) + "-" + date.getDate(); return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
}, },
init(){ init() {
this.dateRange = [new Date(new Date()-24*60*60*1000), new Date()]; this.dateRange = [new Date(new Date() - 24 * 60 * 60 * 1000), new Date()];
this.start_date = this.dateFormat(new Date(new Date()-24*60*60*1000)); this.start_date = this.dateFormat(new Date(new Date() - 24 * 60 * 60 * 1000));
this.end_date = this.dateFormat(new Date()); this.end_date = this.dateFormat(new Date());
this.getTask(); // 获取任务 this.getTask(); // 获取任务
//this.getTake(); // 获取坐席 //this.getTake(); // 获取坐席
console.log(this.dateRange); console.log(this.dateRange);
this.getRule(this.taskvalue,this.start_date,this.end_date,this.takevalue); // 获取统计数据 this.getRule(this.taskvalue, this.start_date, this.end_date, this.takevalue); // 获取统计数据
} }
}, },
created(){ created() {
this.init() this.init()
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment