Browse Source

提交修改问题

newStyle
douzhuo 2 years ago
parent
commit
2286d12d9f
5 changed files with 204 additions and 163 deletions
  1. +19
    -8
      src/views/Statistics/ConsultantBrand.vue
  2. +178
    -149
      src/views/Statistics/ReceptionStatistical.vue
  3. +2
    -2
      src/views/Statistics/TrendAnalysis.vue
  4. +3
    -3
      src/views/inspection/ProhibitedList.vue
  5. +2
    -1
      vue.config.js

+ 19
- 8
src/views/Statistics/ConsultantBrand.vue View File

@@ -98,7 +98,12 @@
</el-table-column> </el-table-column>
<el-table-column prop="deptName" label="归属团队" align="center"> <el-table-column prop="deptName" label="归属团队" align="center">
</el-table-column> </el-table-column>
<el-table-column prop="activeCustomer" label="接待量" align="center" sortable>
<el-table-column
prop="activeCustomer"
label="接待量"
align="center"
sortable
>
<template slot-scope="{ row }"> {{ row.activeCustomer }}次 </template> <template slot-scope="{ row }"> {{ row.activeCustomer }}次 </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@@ -387,7 +392,7 @@ import * as echarts from "echarts";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { exportMethodPost } from "@/util/util"; import { exportMethodPost } from "@/util/util";
export default { export default {
name:"consultantBrand",
name: "consultantBrand",
data() { data() {
return { return {
houseId: "", houseId: "",
@@ -459,6 +464,9 @@ export default {
statDateEnd: this.statDateEnd, statDateEnd: this.statDateEnd,
deptId: this.deptId, deptId: this.deptId,
dateType: this.dateType == 7 ? null : this.dateType, dateType: this.dateType == 7 ? null : this.dateType,
type: 1,
current: 1,
size: 1,
}; };
// exportMethodPost() // exportMethodPost()
exportMethodPost( exportMethodPost(
@@ -597,7 +605,7 @@ export default {
this["num" + type] = res.data.num || 0; this["num" + type] = res.data.num || 0;
this["avg" + type] = res.data.avg || 0; this["avg" + type] = res.data.avg || 0;
let arr = []; let arr = [];
let max = 0
let max = 0;
let newarr = res.data.list || []; let newarr = res.data.list || [];
if (newarr.length != 0) { if (newarr.length != 0) {
res.data.list.map((item) => { res.data.list.map((item) => {
@@ -610,7 +618,7 @@ export default {
obj.name = item.accountName; obj.name = item.accountName;
obj.zxl = Math.floor(item.sumDuration / 60); obj.zxl = Math.floor(item.sumDuration / 60);
if (max < obj.zxl) { if (max < obj.zxl) {
max = obj.zxl
max = obj.zxl;
} }
arr.push(obj); arr.push(obj);
} else if (type == 3) { } else if (type == 3) {
@@ -625,10 +633,10 @@ export default {
}); });
} }


if(type == 2) {
if (type == 2) {
arr.forEach((item) => { arr.forEach((item) => {
item.percentage = (item.zxl/max)*100
})
item.percentage = (item.zxl / max) * 100;
});
} }


if (type == 3) { if (type == 3) {
@@ -636,7 +644,10 @@ export default {
} }


if (type == 4) { if (type == 4) {
console.log(arr, 'arr4,ajdklsajkldjaskldjakslajdklsajkldjaskldjakslajdklsajkldjaskldjakslajdklsajkldjaskldjakslajdklsajkldjaskldjakslajdklsajkldjaskldjaksl')
console.log(
arr,
"arr4,ajdklsajkldjaskldjakslajdklsajkldjaskldjakslajdklsajkldjaskldjakslajdklsajkldjaskldjakslajdklsajkldjaskldjakslajdklsajkldjaskldjaksl"
);
arr = this.dealData(arr); arr = this.dealData(arr);
} }
return arr; return arr;


+ 178
- 149
src/views/Statistics/ReceptionStatistical.vue View File

@@ -1,98 +1,108 @@
<template> <template>
<div class="box-center"> <div class="box-center">
<div class="app-top"> <div class="app-top">

<div class="app-titel" v-if="role!=3" style="margin-bottom:10px;">
<div class="app-titel" v-if="role != 3" style="margin-bottom: 10px">
<div class="titel-text">项目选择:</div> <div class="titel-text">项目选择:</div>
<div style="margin-left: 26px"> <div style="margin-left: 26px">
<el-select v-model="houseId" placeholder="请选择" filterable @change="houseChange">
<el-select
v-model="houseId"
placeholder="请选择"
filterable
@change="houseChange"
>
<el-option <el-option
v-for="item in houseList" v-for="item in houseList"
:key="item.id" :key="item.id"
:label="item.propertyName" :label="item.propertyName"
:value="item.id">
:value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
</div> </div>
<div class="app-titel">
<div style="text-indent: 30px;">接待时间:</div>
<div class="toptimeqhuan">
<div :class="{ tophove: dateType == 4 }" @click="tabtimetap(4)">
近7天
<div class="app-titel">
<div style="text-indent: 30px">接待时间:</div>
<div class="toptimeqhuan">
<div :class="{ tophove: dateType == 4 }" @click="tabtimetap(4)">
近7天
</div>
<div :class="{ tophove: dateType == 5 }" @click="tabtimetap(5)">
近15天
</div>
<div :class="{ tophove: dateType == 6 }" @click="tabtimetap(6)">
近30天
</div>
</div> </div>
<div :class="{ tophove: dateType == 5 }" @click="tabtimetap(5)">
近15天
</div>
<div :class="{ tophove: dateType == 6 }" @click="tabtimetap(6)">
近30天
<div style="margin-left: 26px">
<el-date-picker
v-model="customtime"
@change="confirmtime()"
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> </div>
<div style="margin-left: 26px">
<el-date-picker
v-model="customtime"
@change="confirmtime()"
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="app-titel" style="margin-top: 15px">
<div class="div-lab">
<div style="margin-right: 20px" class="label">团队:</div>
<el-select
v-model="deptId"
filterable
@change="deptChange"
placeholder="请选择"
class="div-inp"
>
<el-option
v-for="item in options"
:key="item.deptId"
:label="item.name"
:value="item.deptId"
<div class="app-titel" style="margin-top: 15px">
<div class="div-lab">
<div style="margin-right: 20px" class="label">团队:</div>
<el-select
v-model="deptId"
filterable
@change="deptChange"
placeholder="请选择"
class="div-inp"
> >
</el-option>
</el-select>
</div>
<div style="margin-left: 26px" class="div-lab">
<div style="margin-right: 20px" class="label">置业顾问:</div>
<el-select
v-model="accountId"
filterable
@change="repChange"
placeholder="请选择"
class="div-inp"
>
<el-option
v-for="item in repList"
:key="item.accountId"
:label="item.name"
:value="item.accountId"
<el-option
v-for="item in options"
:key="item.deptId"
:label="item.name"
:value="item.deptId"
>
</el-option>
</el-select>
</div>
<div style="margin-left: 26px" class="div-lab">
<div style="margin-right: 20px" class="label">置业顾问:</div>
<el-select
v-model="accountId"
filterable
@change="repChange"
placeholder="请选择"
class="div-inp"
> >
</el-option>
</el-select>
</div>
<div style="margin-left: 20px">
<el-button type="primary" size="small" @click="screen()"
>查询</el-button
<el-option
v-for="item in repList"
:key="item.accountId"
:label="item.name"
:value="item.accountId"
>
</el-option>
</el-select>
</div>
<div style="margin-left: 20px">
<el-button type="primary" size="small" @click="screen()"
>查询</el-button
>
<el-button type="primary" size="small" @click="reset()"
>清空</el-button
>
</div>
<div
style="margin-left: auto; margin-right: 10px"
v-if="sta_rec_downLoad"
> >
<el-button type="primary" size="small" @click="reset()">清空</el-button>
</div>
<div style="margin-left: auto;margin-right:10px;" v-if="sta_rec_downLoad">
<el-button @click="downLoad">导出</el-button> <el-button @click="downLoad">导出</el-button>
</div> </div>
</div>
</div>
</div> </div>
<!-- 表格 --> <!-- 表格 -->
<div class="cen-tab"> <div class="cen-tab">
<el-table :data="tableData" style="width: 100%">
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="batchId" label="序号" align="center"> <el-table-column prop="batchId" label="序号" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ {{
@@ -102,7 +112,12 @@
}} }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width='90px' prop="accountName" label="日期" align="center">
<el-table-column
width="90px"
prop="accountName"
label="日期"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ {{
scope.$index == tableData.length - 1 scope.$index == tableData.length - 1
@@ -111,18 +126,30 @@
}} }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="receptionCount" label="接待量" align="center" sortable>
<template slot-scope="{row}">
{{row.receptionCount}}次
</template>
<el-table-column
prop="receptionCount"
label="接待量"
align="center"
sortable
>
<template slot-scope="{ row }"> {{ row.receptionCount }}次 </template>
</el-table-column> </el-table-column>
<el-table-column prop="accountNum" label="接待顾问" align="center" sortable width="100">

<el-table-column
prop="accountNum"
label="接待顾问"
align="center"
sortable
width="100"
>
</el-table-column> </el-table-column>
<el-table-column prop="activeCustomer" label="有效接待" align="center" sortable width="100">
<template slot-scope="{row}">
{{row.activeCustomer}}次
</template>
<el-table-column
prop="activeCustomer"
label="有效接待"
align="center"
sortable
width="100"
>
<template slot-scope="{ row }"> {{ row.activeCustomer }}次 </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="prohibitedCustomer" prop="prohibitedCustomer"
@@ -132,7 +159,13 @@
width="120" width="120"
> >
</el-table-column> </el-table-column>
<el-table-column prop="sumDuration" label="接待时长(分)" align="center" sortable width="120">
<el-table-column
prop="sumDuration"
label="接待时长(分)"
align="center"
sortable
width="120"
>
<template slot-scope="{ row }"> <template slot-scope="{ row }">
{{ Math.floor(row.sumDuration / 60) }}分钟 {{ Math.floor(row.sumDuration / 60) }}分钟
</template> </template>
@@ -144,14 +177,16 @@
width="150" width="150"
sortable sortable
> >
<template slot-scope="{row}">
{{row.prohibitedZb}}%
</template>
<template slot-scope="{ row }"> {{ row.prohibitedZb }}% </template>
</el-table-column> </el-table-column>
<el-table-column prop="fraction" label="平均执行率" align="center" sortable width="110">
<template slot-scope="{row}">
{{row.fraction}}%
</template>
<el-table-column
prop="fraction"
label="平均执行率"
align="center"
sortable
width="110"
>
<template slot-scope="{ row }"> {{ row.fraction }}% </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
v-for="(item, idx) in tablist" v-for="(item, idx) in tablist"
@@ -162,9 +197,7 @@
sortable sortable
width="100" width="100"
> >
<template slot-scope="{row}">
{{row[item.props]}}%
</template>
<template slot-scope="{ row }"> {{ row[item.props] }}% </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
@@ -192,12 +225,7 @@
</div> </div>
</div> </div>


<el-dialog
title="详情"
:visible.sync="dialogVisible"
width="80%"

>
<el-dialog title="详情" :visible.sync="dialogVisible" width="80%">
<div class="cen-tab"> <div class="cen-tab">
<el-table <el-table
max-height="300" max-height="300"
@@ -271,14 +299,13 @@
</el-pagination> </el-pagination>
</div> </div>
</div> </div>

</el-dialog> </el-dialog>
</div> </div>
</template> </template>


<script> <script>
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { exportMethodPost} from "@/util/util";
import { exportMethodPost } from "@/util/util";
export default { export default {
data() { data() {
return { return {
@@ -315,52 +342,54 @@ export default {
teamAllLeve2: [], teamAllLeve2: [],
statDate: "", statDate: "",
dialogVisible: false, dialogVisible: false,
houseList:[],
role:''
houseList: [],
role: "",
}; };
}, },
computed: { computed: {
...mapGetters(["permissions"]), ...mapGetters(["permissions"]),
}, },
created() { created() {

this.sta_rec_downLoad = this.permissions["sta_rec_downLoad"]; this.sta_rec_downLoad = this.permissions["sta_rec_downLoad"];
}, },
mounted() { mounted() {
this.role=localStorage.getItem("orgType");
if(this.role==3){
this.role = localStorage.getItem("orgType");
if (this.role == 3) {
this.houseId = localStorage.getItem("houseId"); this.houseId = localStorage.getItem("houseId");
this.tabtimetap(4); this.tabtimetap(4);
this.deptFindList(); this.deptFindList();
}else{
this.zkhousePage()
} else {
this.zkhousePage();
} }
}, },
methods: { methods: {
downLoad(){
downLoad() {
let obj = { let obj = {
houseId: this.houseId,
statDateStart: this.statDateStart,
statDateEnd: this.statDateEnd,
// current: this.current,
// size: this.size,
deptId: this.deptId,
accountId: this.accountId,
dateType: this.dateType == 7 ? null : this.dateType,
type:1
houseId: this.houseId,
statDateStart: this.statDateStart,
statDateEnd: this.statDateEnd,
type: 1,
current: 1,
size: 1,
deptId: this.deptId,
accountId: this.accountId,
dateType: this.dateType == 7 ? null : this.dateType,
}; };
exportMethodPost('autoSR/cusStageStatistics/receptionStatisticsExport','接待统计',obj)
exportMethodPost(
"autoSR/cusStageStatistics/receptionStatisticsExport",
"接待统计",
obj
);
}, },
houseChange(){
this.customtime=[];
this.TimetoAhoose=4;
this.statDateStart= '';
this.deptId=''
this.accountId=''
this.statDateEnd= '';
this.tabtimetap(4);
houseChange() {
this.customtime = [];
this.TimetoAhoose = 4;
this.statDateStart = "";
this.deptId = "";
this.accountId = "";
this.statDateEnd = "";
this.tabtimetap(4);
this.deptFindList(); this.deptFindList();

}, },
zkhousePage() { zkhousePage() {
this.$api.api this.$api.api
@@ -370,8 +399,8 @@ export default {
.then((res) => { .then((res) => {
this.houseList = res.data; this.houseList = res.data;
this.houseId = res.data[0].id; this.houseId = res.data[0].id;
this.tabtimetap(4);
this.deptFindList();
this.tabtimetap(4);
this.deptFindList();
}); });
}, },
toDetail(row) { toDetail(row) {
@@ -390,7 +419,7 @@ export default {
size: this.size, size: this.size,
deptId: this.deptId, deptId: this.deptId,
accountId: this.accountId, accountId: this.accountId,
type:2
type: 2,
}) })
.then((res) => { .then((res) => {
this.detailData = res.data.records; this.detailData = res.data.records;
@@ -419,27 +448,27 @@ export default {
}, },
deptFindList() { deptFindList() {
// 获取团队 // 获取团队
this.$api.http.overviewfindList({
this.$api.http
.overviewfindList({
houseId: this.houseId, houseId: this.houseId,
}) })
.then((res) => { .then((res) => {
let userinfo=JSON.parse(sessionStorage.getItem("zk-userInfo"))
if(userinfo.content.deptType==1){
this.options.push(...res.data);
this.deptId= this.options[0].deptId
}else{
this.options = [
let userinfo = JSON.parse(sessionStorage.getItem("zk-userInfo"));
if (userinfo.content.deptType == 1) {
this.options.push(...res.data);
this.deptId = this.options[0].deptId;
} else {
this.options = [
{ {
name: "全部", name: "全部",
deptId: "", deptId: "",
}, },
]; ];
this.options.push(...res.data); this.options.push(...res.data);
this.deptId=''
this.deptId = "";
} }
this.receptionStatisticsAllAccount(); this.receptionStatisticsAllAccount();
this.accountRank(); this.accountRank();

}); });
}, },
deptChange() { deptChange() {
@@ -474,7 +503,7 @@ export default {
deptId: this.deptId, deptId: this.deptId,
accountId: this.accountId, accountId: this.accountId,
dateType: this.dateType == 7 ? null : this.dateType, dateType: this.dateType == 7 ? null : this.dateType,
type:1
type: 1,
}) })
.then((res) => { .then((res) => {
this.tableData = res.data.records; this.tableData = res.data.records;
@@ -547,7 +576,7 @@ export default {
this.statDateStart = ""; this.statDateStart = "";
this.statDateEnd = ""; this.statDateEnd = "";
this.dateType = index; this.dateType = index;
this.customtime=[];
this.customtime = [];
this.init(); this.init();
}, },
dealData(arr) { dealData(arr) {
@@ -604,13 +633,13 @@ export default {
// min-width: 100px; // min-width: 100px;
text-align: right; text-align: right;
} }
.titel-text {
height: 100%;
font-size: 16px;
font-weight: 600;
color: #32363d;
text-indent: 30px;
}
.titel-text {
height: 100%;
font-size: 16px;
font-weight: 600;
color: #32363d;
text-indent: 30px;
}
.toptimeqhuan { .toptimeqhuan {
height: 30px; height: 30px;
background: #ffffff; background: #ffffff;


+ 2
- 2
src/views/Statistics/TrendAnalysis.vue View File

@@ -786,13 +786,13 @@ export default {
}; };


if (this.timeType == -1) { if (this.timeType == -1) {
pamaet.timeType = null;
pamaet.timeType = -1;
} else { } else {
pamaet.timeType = this.timeType; pamaet.timeType = this.timeType;
} }
if (this.checked == true) { if (this.checked == true) {
pamaet.showStatus = 1; pamaet.showStatus = 1;
pamaet.timeType = null;
pamaet.timeType = -1;
} else { } else {
pamaet.showStatus = 0; pamaet.showStatus = 0;
} }


+ 3
- 3
src/views/inspection/ProhibitedList.vue View File

@@ -215,15 +215,15 @@ export default {
// 违禁标识 // 违禁标识
{ {
label: "全部", label: "全部",
value: "",
value: 0,
}, },
{ {
label: "有效违禁", label: "有效违禁",
value: "1",
value: 1,
}, },
{ {
label: "无效违禁", label: "无效违禁",
value: "2",
value: 2,
}, },
], ],
processingStatusList: [ processingStatusList: [


+ 2
- 1
vue.config.js View File

@@ -11,7 +11,8 @@
// const url = 'http://81.70.55.170:9999' // 新测试服务器IP // const url = 'http://81.70.55.170:9999' // 新测试服务器IP
// const url = 'http://192.168.31.89:9999' //sh // const url = 'http://192.168.31.89:9999' //sh
// const url = 'https://zanyong.hfju.com' // 正式域名 // const url = 'https://zanyong.hfju.com' // 正式域名
const url = 'http://81.70.55.170:9999' // 新测试
// const url = 'http://81.70.55.170:9999' // 新测试
const url = 'http://82.156.35.22:9999' // 新正式ip
const CompressionWebpackPlugin = require('compression-webpack-plugin') const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css'] const productionGzipExtensions = ['js', 'css']
module.exports = { module.exports = {


Loading…
Cancel
Save