Browse Source

init

newStyle
wangxiaohua 3 years ago
parent
commit
27f955c1df
10 changed files with 478 additions and 18 deletions
  1. +8
    -0
      src/api/modules/api.js
  2. +441
    -6
      src/page/wel.vue
  3. +1
    -0
      src/views/Customer/AgentManagement.vue
  4. +2
    -0
      src/views/Customer/CompanyRecord.vue
  5. +4
    -2
      src/views/Customer/Companymanagement.vue
  6. +1
    -1
      src/views/admin/dept/index.vue
  7. +4
    -3
      src/views/admin/role/index.vue
  8. +15
    -5
      src/views/admin/user/index.vue
  9. +1
    -0
      src/views/building/index.vue
  10. +1
    -1
      vue.config.js

+ 8
- 0
src/api/modules/api.js View File

@@ -976,3 +976,11 @@ export function apiTree(query) {
params:query
})
}
// 后台首页获取第一个数据
export function waitingForOperation(data) {
return request({
url: 'autoSR/cusStageStatistics/waitingForOperation',
method:'post',
data
})
}

+ 441
- 6
src/page/wel.vue View File

@@ -336,14 +336,362 @@



<div v-if="role==1" style=" width: 100%; text-align: center;line-height: 400px;font-size: 30px;">
<!-- <div v-if="role==1" style=" width: 100%; text-align: center;line-height: 400px;font-size: 30px;">
代理商后台
</div>
<div v-if="role==2" style=" width: 100%; text-align: center;line-height: 400px;font-size: 30px;">
公司后台
</div>
<div v-if="role==0" style=" width: 100%; text-align: center;line-height: 400px;font-size: 30px;">
系统后台
</div> -->
<div v-if="role!=3">
<!-- 系统后台 -->
<div style="margin-bottom:10px;" v-if="role!=2">
<span style="font-weight:bold;font-size: 18px;">待处理</span>
<div class="page-container">
<div class="pagechen" v-if="role==0">
<div class="pageboxtitle1">30天到期的代理商</div>
<div class="pageboxtitle3">
{{sysTop.matuityOfAgent||0}}
</div>
</div>
<div class="pagechen">
<div class="pageboxtitle1">30天到期的楼盘</div>
<div class="pageboxtitle3">
{{sysTop.matuityOfHouse||0}}
</div>
</div>
<div class="pagechen">
<div class="pageboxtitle1">离线设备</div>
<div class="pageboxtitle3">
{{sysTop.offlineEquipmentQUantity||0}}
</div>
</div>
<div class="pagechen">
<div class="pageboxtitle1">低电量设备</div>
<div class="pageboxtitle3">
{{sysTop.lowElectricityEquipmentQuantity||0}}
</div>
</div>
<!-- <div class="pagechen">
<div class="pageboxtitle1">维修更换设备</div>
<div class="pageboxtitle3">
{{sysTop.lowElectricityEquipmentQuantity||0}}
</div>
</div> -->
<div class="pagechen" style="background: none;box-shadow: none;}" v-if="role!=0">
</div>
</div>
</div>
<div style="font-weight:bold;font-size: 18px; margin:10px 0 ;">数据简报</div>
<div class="app-titel">
<div class="titel-text">时间</div>
<div class="toptimeqhuan">
<div :class="{ tophove: TimetoAhoose == 0 }" @click="tabtimetap(0)">今天</div>
<div :class="{ tophove: TimetoAhoose == 1 }" @click="tabtimetap(1)"> 近7天 </div>
<div :class="{ tophove: TimetoAhoose == 2 }" @click="tabtimetap(2)"> 近30天 </div>
</div>
<div style="margin-left: 26px">
<el-date-picker
@change="confirmtime()"
v-model="customtime"
:clearable='false'
type="daterange"
range-separator="-"
:default-time="['00:00:00', '23:59:59']"
value-format="yyyy-MM-dd"
start-placeholder="开始日期"
end-placeholder="结束日期"
>
</el-date-picker>
</div>
</div>
<!-- 卡片部分 -->
<div class="page-container">
<div class="pagechen">
<div class="pageboxtitle1">新增楼盘数</div>
<div class="pageboxtitle2">
<div class="span1">{{sysSec.newAddHouseQuantity || 0}}</div>
<div class="span2">
<span class="span2-1"> 环比:{{sysCompare.newAddHouseQuantity || 0}}</span>
<span class="span2-2" v-if="orderBy.newAddHouseQuantity>0">
<i class="el-icon-top" style="color: red;"></i>
{{orderBy.newAddHouseQuantity || 0}}%
</span>
<span class="span2-3" v-if="orderBy.newAddHouseQuantity<0">
<i class="el-icon-bottom" style="color: #25CEBA;"></i>
{{orderBy.newAddHouseQuantity || 0}}%
</span>
</div>
</div>
</div>
<div class="pagechen">
<div class="pageboxtitle1">活跃楼盘数</div>
<div class="pageboxtitle2">
<div class="span1">{{sysSec.activeHouseQuantity || 0}}</div>
<div class="span2">
<span class="span2-1"> 环比:{{sysCompare.activeHouseQuantity || 0}}</span>
<!-- <span class="span2-2">{{cardlist.liftlist.activeCustomer || 0}}%</span> -->
<span class="span2-2" v-if="orderBy.activeHouseQuantity>0">
<i class="el-icon-top" style="color: red;"></i>
{{orderBy.activeHouseQuantity || 0}}%
</span>
<span class="span2-3" v-if="orderBy.activeHouseQuantity<0">
<i class="el-icon-bottom" style="color: #25CEBA;"></i>
{{orderBy.activeHouseQuantity || 0}}%
</span>
</div>
</div>
</div>
<div class="pagechen">
<div class="pageboxtitle1">销售设备数</div>
<div class="pageboxtitle2">
<div class="span1">{{sysSec.equipmentQuantityWithSold || 0}}</div>
<div class="span2">
<span class="span2-1"> 环比:{{sysCompare.equipmentQuantityWithSold || 0}}</span>
<!-- <span class="span2-2">{{cardlist.liftlist.avgDuration || 0}}%</span> -->
<span class="span2-2" v-if="orderBy.equipmentQuantityWithSold>0">
<i class="el-icon-top" style="color: red;"></i>
{{orderBy.equipmentQuantityWithSold || 0}}%
</span>
<span class="span2-3" v-if="orderBy.equipmentQuantityWithSold<0">
<i class="el-icon-bottom" style="color: #25CEBA;"></i>
{{orderBy.equipmentQuantityWithSold || 0}}%
</span>
</div>
</div>
</div>
<div class="pagechen">
<div class="pageboxtitle1">活跃设备数</div>
<div class="pageboxtitle2">
<div class="span1">{{sysSec.activeEquipmentQuantity || 0}}</div>
<div class="span2">
<span class="span2-1"> 环比:{{sysCompare.activeEquipmentQuantity || 0}}</span>
<!-- <span class="span2-2">{{cardlist.liftlist.fraction || 0}}%</span> -->
<span class="span2-2" v-if="orderBy.activeEquipmentQuantity>0">
<i class="el-icon-top" style="color: red;"></i>
{{orderBy.activeEquipmentQuantity || 0}}%
</span>
<span class="span2-3" v-if="orderBy.activeEquipmentQuantity<0">
<i class="el-icon-bottom" style="color: #25CEBA;"></i>
{{orderBy.activeEquipmentQuantity || 0}}%
</span>
</div>
</div>
</div>

<div class="pagechen">
<div class="pageboxtitle1">活跃用户数</div>
<div class="pageboxtitle2">
<div class="span1">{{sysSec.activeUserQuantity || 0}}</div>
<div class="span2">
<span class="span2-1"> 环比:{{sysCompare.activeUserQuantity || 0}}</span>
<!-- <span class="span2-2">{{cardlist.liftlist.prohibitedCustomer || 0}}%</span> -->
<span class="span2-2" v-if="orderBy.activeUserQuantity>0">
<i class="el-icon-top" style="color: red;"></i>
{{orderBy.activeUserQuantity || 0}}%
</span>
<span class="span2-3" v-if="orderBy.activeUserQuantity<0">
<i class="el-icon-bottom" style="color: #25CEBA;"></i>
{{orderBy.activeUserQuantity || 0}}%
</span>
</div>
</div>
</div>
</div>
<div style=" margin-top: 20px;" class="page-container">
<div class="pagechen">
<div class="pageboxtitle1">接待量</div>
<div class="pageboxtitle2">
<div class="span1">{{sysSec.receptionQuantity || 0}}</div>
<div class="span2">
<span class="span2-1"> 环比:{{sysCompare.receptionQuantity || 0}}</span>
<!-- <span class="span2-2">{{cardlist.liftlist.prohibitedZb || 0}}%</span> -->
<span class="span2-2" v-if="orderBy.receptionQuantity>0">
<i class="el-icon-top" style="color: red;"></i>
{{orderBy.receptionQuantity || 0}}%
</span>
<span class="span2-3" v-if="orderBy.receptionQuantity<0">
<i class="el-icon-bottom" style="color: #25CEBA;"></i>
{{orderBy.receptionQuantity || 0}}%
</span>
</div>
</div>
</div>
<div class="pagechen">
<div class="pageboxtitle1">有效接待</div>
<div class="pageboxtitle2">
<div class="span1">{{sysSec.customerQuantity || 0}}</div>
<div class="span2">
<span class="span2-1"> 环比:{{sysCompare.customerQuantity || 0}}</span>
<!-- <span class="span2-2">{{cardlist.liftlist.accountNum || 0}}%</span> -->
<span class="span2-2" v-if="orderBy.customerQuantity>0">
<i class="el-icon-top" style="color: red;"></i>
{{orderBy.customerQuantity || 0}}%
</span>
<span class="span2-3" v-if="orderBy.customerQuantity<0">
<i class="el-icon-bottom" style="color: #25CEBA;"></i>
{{orderBy.customerQuantity || 0}}%
</span>
</div>
</div>
</div>
<div class="pagechen">
<div class="pageboxtitle1">违禁次数</div>
<div class="pageboxtitle2">
<div class="span1">{{sysSec.prohibitedCount || 0}}</div>
<div class="span2">
<span class="span2-1"> 环比:{{sysCompare.prohibitedCount || 0}}</span>
<!-- <span class="span2-2">{{cardlist.liftlist.accountNum || 0}}%</span> -->
<span class="span2-2" v-if="orderBy.prohibitedCount>0">
<i class="el-icon-top" style="color: red;"></i>
{{orderBy.prohibitedCount || 0}}%
</span>
<span class="span2-3" v-if="orderBy.prohibitedCount<0">
<i class="el-icon-bottom" style="color: #25CEBA;"></i>
{{orderBy.prohibitedCount || 0}}%
</span>
</div>
</div>
</div>
<div class="pagechen">
<div class="pageboxtitle1">平均接待时长(分钟)</div>
<div class="pageboxtitle2">
<div class="span1">{{sysSec.receptionTimeWithAvg || 0}}</div>
<div class="span2">
<span class="span2-1"> 环比:{{sysCompare.receptionTimeWithAvg || 0}}</span>
<!-- <span class="span2-2">{{cardlist.liftlist.accountNum || 0}}%</span> -->
<span class="span2-2" v-if="orderBy.receptionTimeWithAvg>0">
<i class="el-icon-top" style="color: red;"></i>
{{orderBy.receptionTimeWithAvg || 0}}%
</span>
<span class="span2-3" v-if="orderBy.receptionTimeWithAvg<0">
<i class="el-icon-bottom" style="color: #25CEBA;"></i>
{{orderBy.receptionTimeWithAvg || 0}}%
</span>
</div>
</div>
</div>
<div class="pagechen">
<div class="pageboxtitle1">录音总时长(小时)</div>
<div class="pageboxtitle2">
<div class="span1">{{sysSec.receptionTimeCount || 0}}</div>
<div class="span2">
<span class="span2-1"> 环比:{{sysCompare.receptionTimeCount || 0}}</span>
<!-- <span class="span2-2">{{cardlist.liftlist.accountNum || 0}}%</span> -->
<span class="span2-2" v-if="orderBy.receptionTimeCount>0">
<i class="el-icon-top" style="color: red;"></i>
{{orderBy.receptionTimeCount || 0}}%
</span>
<span class="span2-3" v-if="orderBy.receptionTimeCount<0">
<i class="el-icon-bottom" style="color: #25CEBA;"></i>
{{orderBy.receptionTimeCount || 0}}%
</span>
</div>
</div>
</div>
<!-- <div class="pagechen1"></div>
<div class="pagechen1" ></div> -->
</div>

<div class="app-box-san">
<div class="zuo">
<div class="title1">
<div>{{role==2?'楼盘排名(top10)':'公司排名(top10)'}}</div>
<div style="display:flex;">
<div class="text1" style="margin-right:10px;" @click="classatec1=0" :class="{ colostyle: classatec1 == 0 }">接待量</div>
<div class="text1" @click="classatec1=1" :class="{ colostyle: classatec1 == 1 }">平均执行率</div>
</div>
</div>
<div class="tabbox">
<el-table
:header-cell-style="{background:'#F2F4F5'}"
:data="companyRank"
height="320"
style="width: 100%">
<el-table-column
prop="companyName"
label="公司名称"
align="center">
<template slot-scope="{row}">
{{role!=2?row.companyName:row.houseName}}
</template>
</el-table-column>

<el-table-column
v-if="classatec1==0"
prop="receptionCount"
label="接待量"
align="center">
</el-table-column>
<el-table-column
v-if="classatec1==0"
prop="receptionTime"
label="接待时长(小时)"
align="center">

</el-table-column>
<el-table-column
v-if="classatec1==1"
prop="avgFration"
label="平均执行率"
align="center">
<template slot-scope="{row}">
{{row.avgFration||0}}%
</template>
</el-table-column>
</el-table>
</div>

</div>
<div class="you">
<div class="title1">
<div>{{role==2?'顾问排名(top10)':'楼盘排名(top10)'}}</div>
<div style="display:flex;">
<div class="text1" style="margin-right:10px;" @click="classatec2=0" :class="{ colostyle: classatec2 == 0 }">接待量</div>
<div class="text1" @click="classatec2=1" :class="{ colostyle: classatec2 == 1 }">平均执行率</div>
</div>
</div>

<div class="tabbox">
<el-table
:header-cell-style="{background:'#F2F4F5'}"
:data="houseRank"
height="320"
style="width: 100%">
<el-table-column
prop="houseName"
label="楼盘名称"
align="center">
<template slot-scope="{row}">
{{role!=2?row.houseName:row.accountName}}
</template>
</el-table-column>

<el-table-column
prop="receptionCount"
v-if="classatec2==0"
label="接待量"
align="center">
</el-table-column>

<el-table-column
v-if="classatec2==0"
prop="receptionTime"
label="接待时长(小时)"
align="center">
</el-table-column>
<el-table-column
v-if="classatec2==1"
prop="avgFration"
label="平均执行率"
align="center">
<template slot-scope="{row}">
{{row.avgFration||0}}%
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
</div>

</div>
@@ -357,7 +705,11 @@ export default {
role:'',
houseId:"",
houseList:[],
houseRank:[],
companyRank:[],
classatec:0,
classatec1:0,
classatec2:0,
customtime:[],
statDateStart:'',
statDateEnd:'',
@@ -367,6 +719,11 @@ export default {
liftlist:{},
sequential:{},
},
sysData:{},
orderBy:{},
sysCompare:{},
sysTop:{},
sysSec:{},
tableData: [],
equipmentList:[],
prohibitedlist:[],
@@ -383,13 +740,29 @@ export default {
this.role=localStorage.getItem("orgType");
if(this.role==3){
this.houseId = localStorage.getItem("houseId");

this.getgicd();
// 获取维度占比
this.getindexZxllist()
// 员工执行率
this.getemployeeExecutionRatelist()
// 违禁提醒列表
this.findProhibitedRecord()
// 获取设备
this.findAllZkEquipment()
}else{
// this.zkhousePage()
}
// else if(this.role==0){
// // 系统
// // this.zkhousePage()
// this.waitingForOperation()
// }
// else if(this.role==1){
// // 代理商
// // this.zkhousePage()
// }
else{
// 公司
this.waitingForOperation()
}

},
@@ -402,6 +775,39 @@ export default {
this.getgicd()
this.findProhibitedRecord()
},
// 系统获取第一个数据
waitingForOperation(){
let obj={
dateType: this.TimetoAhoose==5?null:this.TimetoAhoose,
// dateType: 1,
orderBy:1,
startDate: this.statDateStart,
endDate:this.statDateEnd
}
if(this.role==1){
obj.agentId=localStorage.getItem('agentId')/1
}
if(this.role==2){
obj.orgCode=localStorage.getItem('orgCode')
}
this.$api.api.waitingForOperation(obj)
.then(res=>{
// console.log(res);
// this.sysData=res.data
this.sysTop=res.data.top
this.sysSec=res.data.midA
this.sysCompare=res.data.midB
this.orderBy=res.data.midC
if(this.role==2){
this.houseRank=res.data.accountRank
this.companyRank=res.data.houseRank
}else{
this.houseRank=res.data.houseRank
this.companyRank=res.data.companyRank
}

})
},
//获取楼盘
zkhousePage() {
this.$api.api
@@ -514,25 +920,40 @@ export default {
this.classatec=i;
this.findAllZkEquipment()
},
tabclick2(e){
console.log(e);
},
tabclick1(e){
console.log(e);
},
tabtimetap(i){
this.statDateStart='';
this.statDateEnd='';
this.customtime=[];
this.TimetoAhoose=i;
if(this.role==3){
this.getgicd()
this.getindexZxllist()
this.getemployeeExecutionRatelist()
this.findProhibitedRecord()
}else{
this.waitingForOperation()
}

},
//切换时间
confirmtime() {
this.statDateStart=this.customtime[0];
this.statDateEnd=this.customtime[1];
this.TimetoAhoose=5;
if(this.role==3){
this.getgicd()
this.getindexZxllist()
this.getemployeeExecutionRatelist()
this.findProhibitedRecord()
}else{
this.waitingForOperation()
}
},
}
}
@@ -605,6 +1026,11 @@ export default {
}
}
}
.pageboxtitle3{
text-align: center;
font-size: 30px;
line-height: 44px;
}
}
}
.colostyle{
@@ -769,4 +1195,13 @@ export default {
margin-top: 10px;
}
}
.title1{
width: 100%;
height: 55px;
display: flex;
align-content: center;
justify-content: space-between;
padding: 0 20px;
line-height: 55px;
}
</style>

+ 1
- 0
src/views/Customer/AgentManagement.vue View File

@@ -570,6 +570,7 @@ export default {
.then(res=>{
console.log(res);
this.$message.success('操作成功')
this.getAgentList()
this.operaVisible=false
})
}


+ 2
- 0
src/views/Customer/CompanyRecord.vue View File

@@ -529,6 +529,7 @@ export default {
.then(res=>{
this.$message.success('操作成功')
this.agentVisible=false
this.Screeningofempty()
})
}
})
@@ -547,6 +548,7 @@ export default {
console.log(res);
this.$message.success('操作成功')
this.operaVisible=false
this.Screeningofempty()
})
}
})


+ 4
- 2
src/views/Customer/Companymanagement.vue View File

@@ -4,10 +4,10 @@
<!-- 头 -->
<div class="app-top">
<div class="app-titel" style="margin-top: 5px">
<div v-if="orgType==0" class="label">代理商名称:</div>
<!-- <div v-if="orgType==0" class="label">代理商名称:</div>
<div v-if="orgType==0">
<el-input v-model="operatorName"></el-input>
</div>
</div> -->
<div class="label">公司名称:</div>
<div>
<el-input v-model="name"></el-input>
@@ -458,6 +458,7 @@ export default {
.then(res=>{
this.$message.success('操作成功')
this.agentVisible=false
this.Screeningofempty()
})
}
})
@@ -477,6 +478,7 @@ export default {
console.log(res);
this.$message.success('操作成功')
this.operaVisible=false
this.Screeningofempty()
})
}
})


+ 1
- 1
src/views/admin/dept/index.vue View File

@@ -25,7 +25,7 @@
<template slot-scope="scope" style="">
<span v-if="sys_dept_edit" style="color: #2671e2" @click="bianji(scope.row)">编辑</span>
<span
v-if="sys_dept_del"
v-if="sys_dept_del&&(tableData.length-1==scope.$index)"
style="color: #2671e2; margin-left: 10px"
@click="del(scope.row)"
>移除</span


+ 4
- 3
src/views/admin/role/index.vue View File

@@ -102,8 +102,8 @@
</el-form-item>
<el-form-item label="状态" prop="lockFlag">
<el-select v-model="searchMsg.lockFlag" placeholder="请选择">
<el-option label="有效" :value="0"></el-option>
<el-option label="无效" :value="1"></el-option>
<el-option label="启用" :value="0"></el-option>
<el-option label="禁用" :value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item>
@@ -500,6 +500,7 @@ export default {
let obj = {
current: this.page.currentPage,
size: this.page.pageSize,
...this.searchMsg
};
if (this.tabselect == 0 || this.tabselect == 1) {
obj.orgCode = this.orgCode;
@@ -549,7 +550,7 @@ export default {
},
search() {
console.log(this.searchMsg, "搜索内容");
this.getList(this.searchMsg);
this.getList();
},
refreshChange() {
this.getList();


+ 15
- 5
src/views/admin/user/index.vue View File

@@ -119,14 +119,15 @@
</el-select>
</el-input>
</el-form-item>
<el-form-item label="组织类型" prop="queryOrgType">
<el-form-item label="组织类型" v-if="losorgType==2" prop="queryOrgType">
<el-select
v-model="searchMsg1.queryOrgType"
@change="queryOrgTypeChange"
clearable
placeholder="请选择"
>
<el-option label="平台用户" value="0"></el-option>
<el-option label="代理商用户" value="1"></el-option>
<!-- <el-option label="平台用户" value="0"></el-option> -->
<!-- <el-option label="代理商用户" value="1"></el-option> -->
<el-option label="公司用户" value="2"></el-option>
<el-option label="楼盘用户" value="3"></el-option>
</el-select>
@@ -1253,9 +1254,9 @@ export default {
// this.userDeptTree()// 获取部门树
this.deptGetOrgList(); //获取公司列表
this.getAgentList(); //获取代理商列表
this.userDict(
this.userDict(
{
dictKey: localStorage.getItem("orgType"),
dictKey: localStorage.getItem('orgType'),
dictType: 3,
},
"userRoleList"
@@ -1983,6 +1984,15 @@ export default {
this.passwordForm.userId = row.userId;
this.passwordVisible = true;
},
queryOrgTypeChange(e){
this.userDict(
{
dictKey: e,
dictType: 3,
},
"userRoleList"
);
},
editpwd() {
// console.log(this.passwordForm);
// return


+ 1
- 0
src/views/building/index.vue View File

@@ -808,6 +808,7 @@ export default {
console.log(res);
this.$message.success("操作成功");
this.operaVisible = false;
this.zkhousePage();
});
}
});


+ 1
- 1
vue.config.js View File

@@ -7,7 +7,7 @@
const url = 'http://192.168.31.169:9999' //长龙
// const url = 'http://192.168.31.134:9999' //嘉豪
// const url = 'http://192.168.31.100:9999' //王笑
// const url = 'http://yuuapd.natappfree.cc' //王笑
// const url = 'http://rymset.natappfree.cc' //王笑

const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css']


Loading…
Cancel
Save