lancer 3 lat temu
rodzic
commit
03dc4b7f96
5 zmienionych plików z 527 dodań i 51 usunięć
  1. +12
    -1
      src/api/modules/api.js
  2. +40
    -39
      src/views/Equipment/equipmentDetailList.vue
  3. +2
    -3
      src/views/Equipment/state.vue
  4. +2
    -2
      src/views/ReceivingRecords/index.vue
  5. +471
    -6
      src/views/building/Count.vue

+ 12
- 1
src/api/modules/api.js Wyświetl plik

@@ -510,7 +510,10 @@ export function findByUserName(query) {
return request({
url: 'admin/user/findByUserName',
method:'post',
params:query
params:{
orgType:localStorage.getItem('orgType'),
...query
}
})
}
// 设备列表获取批次列表
@@ -676,3 +679,11 @@ export function equipReceiveFindByPage(query) {
params:query
})
}
// 楼盘对比列表
export function houseStatistics(query) {
return request({
url: 'autoSR/zkhouse/houseStatistics',
method:'get',
params:query
})
}

+ 40
- 39
src/views/Equipment/equipmentDetailList.vue Wyświetl plik

@@ -659,10 +659,10 @@ export default {
houseName: "",
accountName: "",
imei: "",
total:10,
total: 10,
recording: "",
},
pickerOptions: {
pickerOptions: {
disabledDate(time) {
//根据当前日期 --- 禁止选中之后的日期
return time.getTime() > Date.now();
@@ -715,7 +715,7 @@ export default {
},
pageSize: "6",
pageNum: "1",
total:10,
total: 10,
options: [
{
value: "0",
@@ -734,24 +734,24 @@ export default {
},
mounted() {
// return;
let theRequest=this.$route.query
// console.log(theRequest,'123') //此时的theRequest就是我们需要的参数;
if (theRequest.houseId) {
this.flag = true;
this.houseId = theRequest.houseId;
this.timeType = theRequest.timeType;
} else {
this.flag = false;
// console.log(1);
this.timeType = 4;
}
if (theRequest.startDate) {
this.page.openTime = theRequest.startDate;
this.page.closeTime = theRequest.endDate;
this.customtime = [theRequest.startDate, theRequest.endDate];
// console.log(this.customtime)
this.$forceUpdate();
}
let theRequest = this.$route.query;
// console.log(theRequest,'123') //此时的theRequest就是我们需要的参数;
if (theRequest.houseId) {
this.flag = true;
this.houseId = theRequest.houseId;
this.timeType = theRequest.timeType;
} else {
this.flag = false;
// console.log(1);
this.timeType = 4;
}
if (theRequest.startDate) {
this.page.openTime = theRequest.startDate;
this.page.closeTime = theRequest.endDate;
this.customtime = [theRequest.startDate, theRequest.endDate];
// console.log(this.customtime);
this.$forceUpdate();
}
this.getHouseList();
// this.customtime=[] ;
this.tableData = [];
@@ -776,15 +776,15 @@ export default {
// row.createTime +
// "&flag=" +
// idx;
this.$router.push({
path:'/Equipment/equipmentOnlineRecordList',
query:{
houseId:this.houseId,
startDate: row.createTime,
endDate:row.createTime,
flag:idx
}
})
this.$router.push({
path: "/Equipment/equipmentOnlineRecordList",
query: {
houseId: this.houseId,
startDate: row.createTime,
endDate: row.createTime,
flag: idx,
},
});
},
compareChange(idx) {
this.compareFlag = idx;
@@ -894,13 +894,15 @@ export default {
if (this.timeType == 6) {
num = 24 * 3600 * 1000 * 29;
}
if (i != -1) {
this.customtime = [
this.timestampToTime(new Date().getTime() - num),
this.timestampToTime(new Date().getTime()),
];
}

this.customtime = [
this.timestampToTime(new Date().getTime() - num),
this.timestampToTime(new Date().getTime()),
];
this.$set(this, "time", null);
console.log(this.customtime);
// console.log(this.customtime);
this.getTableList();
this.getdetail();
},
@@ -950,11 +952,11 @@ export default {
orgType: localStorage.getItem("orgType"),
})
.then((res) => {
// console.log(res.data.obj)
// console.log(res.data.obj)

this.houseList = res.data;
if (!this.flag) {
console.log(this.flag,'12')
console.log(this.flag, "12");
this.houseId = res.data[0].id;
}
// console.log(this.flag,'12')
@@ -967,8 +969,7 @@ export default {
// })
// this.tableData=res.data.obj.results;
// this.page.total = res.data.obj.totalRecord;

});
});
},
handleSizeChange(val) {
console.log("每页条" + val);


+ 2
- 3
src/views/Equipment/state.vue Wyświetl plik

@@ -107,7 +107,6 @@
<div class="label">录音状态</div>
<el-select
class="div-inp"
multiple
clearable
collapse-tags
v-model="searchForm.simAudioStatus"
@@ -127,7 +126,7 @@
<div class="label">上传状态</div>
<el-select
class="div-inp"
multiple
clearable
collapse-tags
v-model="searchForm.uploadStatus"
@@ -147,7 +146,7 @@
<div class="label">关机状态</div>
<el-select
class="div-inp"
multiple
clearable
collapse-tags
v-model="searchForm.offStatus"


+ 2
- 2
src/views/ReceivingRecords/index.vue Wyświetl plik

@@ -183,7 +183,7 @@
<div class="app-titel" style="margin-top: 15px"></div>

<div class="app-titel" style="margin-top: 15px">
<div class="label" style="color: #ffffff">筛选相关:</div>
<!-- <div class="label" style="color: #ffffff">筛选相关:</div> -->
<div style="margin-left: 20px">
<el-button style="background: #2671e2; color: #ffffff" @click="screen"
>筛选</el-button
@@ -490,7 +490,7 @@ export default {
this.timestampToTime(new Date().getTime() - num),
this.timestampToTime(new Date().getTime()),
];
},
timestampToTime(timestamp) {
var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000


+ 471
- 6
src/views/building/Count.vue Wyświetl plik

@@ -1,16 +1,481 @@
<template>
<div>
楼盘
</div>
<div class="box-center">
<div class="toptab" style="display: none">
<div
@click="tapclickyab(0)"
:class="{ activecllasscet: activeTotal == 0 }"
:style="{ background: activeTotal == 0 ? '#2671E2' : '#ffffff' }"
>
楼盘
</div>
<div
@click="tapclickyab(1)"
:class="{ activecllasscet: activeTotal == 1 }"
:style="{ background: activeTotal == 1 ? '#2671E2' : '#ffffff' }"
>
代理商
</div>
<div
@click="tapclickyab(2)"
:class="{ activecllasscet: activeTotal == 2 }"
:style="{ background: activeTotal == 2 ? '#2671E2' : '#ffffff' }"
>
公司
</div>
</div>
<!-- 头 -->
<div class="app-top">
<div class="app-titel" style="margin-top: 5px">
<div class="div-lab">
<div class="label" style="margin-left: 15px">时间:</div>
<div class="toptimeqhuan">
<div
:class="{ tophove: searchForm.timeType == 4 }"
@click="tabtimetap(4)"
>
近七天
</div>
<div
:class="{ tophove: searchForm.timeType == 5 }"
@click="tabtimetap(5)"
>
近十五天
</div>
<div
:class="{ tophove: searchForm.timeType == 6 }"
@click="tabtimetap(6)"
>
近三十天
</div>
</div>
<div>
<el-date-picker
v-model="time"
type="daterange"
class="div-inp"
range-separator="-"
start-placeholder="开始日期"
:default-time="['00:00:00', '23:59:59']"
value-format="yyyy-MM-dd"
end-placeholder="结束日期"
@change="timeChange"
>
</el-date-picker>
</div>
</div>
<div class="div-lab">
<el-input
v-model="changeValue"
clearable
placeholder="请输入"
@change="selectChange"
style="width: 363px"
>
<el-select
v-model="selflag"
slot="prepend"
class="input-with-select"
style="width: 115px"
placeholder="请选择"
@change="selChange"
>
<el-option label="公司名称" value="1"></el-option>
<el-option label="代理商名称" value="2"></el-option>
<el-option label="楼盘名称" value="3"></el-option>
</el-select>
</el-input>
</div>
</div>
<div class="app-titel" style="margin-top: 5px">
<div class="div-lab">
<div class="label">城市:</div>
<el-cascader
:props="props"
@change="locationsChange"
placeholder="省/市"
size="small"
separator="/"
v-model="provice"
clearable
></el-cascader>
</div>
<div class="div-lab">
<div class="label">运营人:</div>
<el-input class="div-inp" v-model="searchForm.userName"></el-input>
</div>
</div>
<div class="app-titel" style="margin-top: 15px">
<div style="margin-left: 20px">
<el-button style="background: #2671e2; color: #ffffff" @click="screen"
>筛选</el-button
>
</div>
<div style="margin-left: 20px">
<el-button @click="clascreen">清空筛选条件</el-button>
</div>
</div>
</div>

<!-- 表格 -->
<div class="cen-tab">
<el-table :data="tableData" stripe style="width: 100%">
<el-table-column prop="houseName" label="楼盘名称" align="center">
</el-table-column>
<el-table-column prop="orgName" label="公司名称" align="center">
</el-table-column>
<el-table-column prop="agentName" label="代理商" align="center">
</el-table-column>
<el-table-column prop="area" label="地区" align="center">
</el-table-column>
<el-table-column prop="userName" label="运营人" align="center">
</el-table-column>
<el-table-column prop="linkman" label="负责人" align="center">
</el-table-column>
<el-table-column prop="onlineQuantity" label="在线设备" align="center">
</el-table-column>
<el-table-column
prop="noOnlineQuantity"
label="离线设备"
align="center"
>
</el-table-column>
<el-table-column prop="activeQuantity" label="活跃设备" align="center">
</el-table-column>
<el-table-column prop="activeAccount" label="活跃顾问" align="center">
</el-table-column>
<el-table-column prop="sumReception" label="接待量" align="center">
</el-table-column>
<el-table-column prop="sumRecordTime" label="接待时长" align="center">
</el-table-column>
<el-table-column
prop="avgExacutiveRate"
label="平均执行率"
align="center"
>
</el-table-column>
<el-table-column
prop="sumProhibitedQuantity"
label="违禁次数"
align="center"
>
</el-table-column>
<el-table-column label="操作" align="center" fixed="right" width="200">
<template slot-scope="{ row }">
<el-button type="text" @click="goEquiment(row)"
>设备使用统计</el-button
>
</template>
</el-table-column>
<!-- <el-table-column prop="date" label="备注" align="center">
</el-table-column> -->
<!-- scope -->
</el-table>
<div style="display: flex; justify-content: flex-end; margin-top: 10px">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 30, 40]"
:page-size="size"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
</div>
</div>
</template>

<script>
import { getAreaList } from "@/api/modules/api";
export default {
data() {
return {
props: {
lazy: true,
async lazyLoad(node, resolve) {
const { level } = node;
if (level == 0) {
// console.log(23);
const { data } = await getAreaList({ parentId: 0 }); //获取省接口
var nodes = data.map((item) => {
return {
value: item.id,
label: item.name,
leaf: false,
};
});
resolve(nodes);
} else if (level == 1) {
const { data } = await getAreaList({ parentId: node.data.value }); //获取市接口
var nodes = data.map((item) => {
return {
value: item.id,
label: item.name,
leaf: true,
};
});
resolve(nodes);
}
},
},
activeTotal: "0",
provice: [],
value: "",
input: "",
tableData: [],
multipleSelection: [],
changeValue: "",
dialogVisible: false,
houseList: [],
time: [],
searchForm: {
houseName: "",
provinceId: "",
cityId: "",
orgName: "",
agentName: "",
userName: "",
timeType: "4",
staDate: "",
endDate: "",
},
currentPage: 1,
selflag: "1",
size: 10,
total: 10,
};
},
mounted() {
// 获取楼盘列表
this.tabtimetap(4);
this.houseStatistics();
},
methods: {
selectChange(e) {
this.searchForm.equipImei = "";
this.searchForm.userName = "";
if (!e) retun;
if (this.selflag == 1) {
this.searchForm.orgName = e;
}
if (this.selflag == 2) {
this.searchForm.agentName = e;
}
if (this.selflag == 3) {
this.searchForm.houseName = e;
}
},
goEquiment(row) {
console.log(row);
this.$router.push({
path: "/Equipment/equipmentDetailList",
query: {
houseId: row.id,
startDate: this.searchForm.staDate,
endDate: this.searchForm.endDate,
timeType: this.searchForm.timeType,
},
});
},
tapclickyab(i) {
this.activeTotal = i;
this.houseStatistics();
},
timeChange(e) {
this.searchForm.timeType = -1;
this.searchForm.staDate = e[0];
this.searchForm.endDate = e[1];
// this.houseChange();
},
tabtimetap(idx) {
this.searchForm.staDate = "";
this.searchForm.endDate = "";
// this.$set(this, "time", null);
this.searchForm.timeType = idx;
let num = 24 * 3600 * 1000;
// 获取当前时间戳转换为日期格式
if (idx == 4) {
num = 24 * 3600 * 1000 * 6;
}
if (idx == 5) {
num = 24 * 3600 * 1000 * 14;
}
if (idx == 6) {
num = 24 * 3600 * 1000 * 30;
}

}
</script>
this.time = [
this.timestampToTime(new Date().getTime() - num),
this.timestampToTime(new Date().getTime()),
];
},
timestampToTime(timestamp) {
var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
// var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000

var yyyy = date.getFullYear() + "-";

<style lang="" scoped >
var MM =
(date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) + "-";

// var dd = date.getDate() + ' ';
var dd =
(date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";

// var HH = date.getHours() + ':';
// var HH = (date.getHours() < 10 ? '0'+(date.getHours()) : date.getHours()) + ':';
//
// // var mm = date.getMinutes() + ':';
// var mm = (date.getMinutes() < 10 ? '0'+(date.getMinutes()) : date.getMinutes()) + ':';
//
// // var ss = date.getSeconds();
// var ss = (date.getSeconds() < 10 ? '0'+(date.getSeconds()) : date.getSeconds());

// return yyyy+MM+dd+HH+mm+ss;
return yyyy + MM + dd;
},
locationsChange(e) {
console.log(e);
if (!e) return;
this.searchForm.provinceId = e[0];
this.searchForm.cityId = e[1];
},
selChange() {
this.changeValue = "";
this.searchForm.agentName = "";
this.searchForm.userName = "";
this.searchForm.orgName = "";
},
screen() {
this.currentPage = 1;
console.log(this.searchForm);
this.houseStatistics();
},
clascreen() {
this.time = [];
this.provice = [];
this.changeValue = "";
this.searchForm = {
houseName: "",
provinceId: "",
cityId: "",
orgName: "",
agentName: "",
userName: "",
timeType: "4",
staDate: "",
endDate: "",
};
this.houseStatistics();
},
// 获取常错词列表
houseStatistics() {
let obj = {
current: this.currentPage,
size: this.size,
...this.searchForm,
};
this.$api.api.houseStatistics(obj).then((res) => {
// console.log(res);
this.tableData = res.data.records;
this.total = res.data.total;
});
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
this.size = val;
this.houseStatistics();
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.currentPage = val;
this.houseStatistics();
},
},
};
</script>

<style scoped="scoped" lang="scss" >
.box-center {
width: 100%;
padding: 15px;
min-width: 1200px;
padding-bottom: 100px;
}
.toptab {
width: 100%;
display: flex;
margin-bottom: 20px;
}
.toptab div {
padding-left: 30px;
padding-right: 30px;
padding-top: 10px;
padding-bottom: 10px;
font-size: 14px;
}
.activecllasscet {
color: #ffffff;
}
.cen-tab {
width: 100%;
padding: 15px;
background: #ffffff;
margin-top: 15px;
}
.tophove {
color: #ffffff;
background: #2671e2;
}
.app-top {
width: 100%;
background: #ffffff;
box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.04);
border-radius: 4px;
padding-top: 15px;
padding-bottom: 15px;
.app-titel {
width: 100%;
display: flex;
align-items: center;
flex-wrap: wrap;
.label {
font-size: 14px;
font-weight: 400;
color: #32363d;
line-height: 32px;
margin-left: 15px;
min-width: 100px;
}
.toptimeqhuan {
height: 30px;
background: #ffffff;
display: flex;
align-items: center;
}
.toptimeqhuan div {
padding-left: 20px;
padding-right: 20px;
text-align: center;
line-height: 30px;
font-size: 14px;
margin-right: 15px;
border-radius: 4px;
border: 1px solid #e0e0e0;
}
}
}
.div-lab {
display: flex;
margin: 5px;
}
.div-inp {
width: 250px;
}
</style>

Ładowanie…
Anuluj
Zapisz