소스 검색

init

newStyle
lancer 3 년 전
부모
커밋
7e6dfce7e2
9개의 변경된 파일395개의 추가작업 그리고 90개의 파일을 삭제
  1. +8
    -0
      src/api/modules/api.js
  2. +3
    -3
      src/page/check/chose.vue
  3. +41
    -1
      src/views/Customer/AgentManagement.vue
  4. +33
    -1
      src/views/Customer/CompanyRecord.vue
  5. +34
    -2
      src/views/Customer/Companymanagement.vue
  6. +55
    -4
      src/views/Equipment/record.vue
  7. +174
    -71
      src/views/Statistics/dataScreeSys.vue
  8. +45
    -6
      src/views/building/index.vue
  9. +2
    -2
      vue.config.js

+ 8
- 0
src/api/modules/api.js 파일 보기

@@ -1024,3 +1024,11 @@ export function templategetMarketingTree(query) {
params:query
})
}
//导出文件
export function exportFile(data) {
return request({
url: 'autoSR/equipReceive/findByPage',
method:'post',
data
})
}

+ 3
- 3
src/page/check/chose.vue 파일 보기

@@ -113,7 +113,7 @@
</div>
<div class="content" v-if="flag == 3">
<div class="search">
<span style="line-height: 32px; margin-right: 20px">区:</span>
<span style="line-height: 32px; margin-right: 20px">区:</span>
<el-cascader
:props="props"
v-if="info.selectHouseType == 1"
@@ -136,7 +136,7 @@
v-for="item in options"
:key="item.id"
:label="item.areaName"
:value="item.provinceItem"
:value="item.id"
>
</el-option>
</el-select>
@@ -342,7 +342,7 @@ export default {
if (this.info.selectHouseType == 2) {
this.$api.api
.findHouseByArea({
provinceItem: this.area,
id: this.area,
...obj
})
.then((res) => {


+ 41
- 1
src/views/Customer/AgentManagement.vue 파일 보기

@@ -53,7 +53,22 @@
</div>
<div class="label">运营人员:</div>
<div >
<el-input maxlength="10" class="div-inp" clearable v-model="operationalName"></el-input>
<!-- <el-input maxlength="10" class="div-inp" clearable v-model="operationalName"></el-input> -->
<el-select
v-model="operationalId"
placeholder="请选择"
class="div-inp"
filterable
clearable
>
<el-option
v-for="item in operaList"
:key="item.accountId"
:label="item.name"
:value="item.accountId"
>
</el-option>
</el-select>
</div>
</div>

@@ -553,6 +568,8 @@ export default {
provinceId:'',
cityId:'',
areaList:[],
operaList:[],
operationalId:'',
timelist:'',
tableData: [],
addressOptions: [],
@@ -704,11 +721,32 @@ export default {
this.contractEndDate=this.timelist[1];
this.serviceStatus=this.$route.query.serviceStatus;
}
// 获取运营人员
this.getOperaList()
// 获取地区列表
// this.getCityList()
this.getAgentList()
},
methods: {
getOperaList(){
if (this.orgType == 1) {
this.$api.http
.getAllOperationsStaffByAgent({
agentId: localStorage.getItem('agentId'),
})
.then((res) => {
// console.log(1);
this.operaList = res.data;
// this.operaVisible = true;
});
} else {
this.$api.http.getAllOperationsStaff().then((res) => {
this.operaList = res.data;
// this.operaVisible = true;
// console.log(2);
});
}
},
getCityList(){
this.$api.api.getAreaList({parentId:0})
.then(res=>{
@@ -1022,6 +1060,7 @@ export default {
this.operationalName='';
this.provinceId=''
this.cityId=''
this.operationalId=''
this.pageNum=1
this.area=[]
this.getAgentList()
@@ -1040,6 +1079,7 @@ export default {
contractEndDate:this.contractEndDate,
serviceStatus:this.serviceStatus,
agentName:this.agentName,
operationalId:this.operationalId,
provinceId:this.provinceId,
cityId:this.cityId,
operationalName:this.operationalName,


+ 33
- 1
src/views/Customer/CompanyRecord.vue 파일 보기

@@ -11,13 +11,32 @@
<div>
<el-input maxlength="30" clearable v-model="name"></el-input>
</div>
<div v-if="orgType == 0" class="label">运营人员:</div>
<!-- <div v-if="orgType == 0" class="label">运营人员:</div>
<div v-if="orgType == 0">
<el-input
maxlength="10"
clearable
v-model="operationStaffName"
></el-input>
</div> -->
<div class="label">运营人员:</div>
<div >
<!-- <el-input maxlength="10" class="div-inp" clearable v-model="operationalName"></el-input> -->
<el-select
v-model="operationStaffId"
placeholder="请选择"
class="div-inp"
filterable
clearable
>
<el-option
v-for="item in operaList"
:key="item.accountId"
:label="item.name"
:value="item.accountId"
>
</el-option>
</el-select>
</div>
<div class="label" style="line-height: 30px; min-width: 80px">
地区:
@@ -685,6 +704,8 @@ export default {
pageSize: 10,
provinceId: "",
areaList: [],
operaList:[],
operationStaffId:'',
orgType: "",
sysFlag: "0",
replaceagentobj: {
@@ -782,9 +803,18 @@ export default {
this.orgType = localStorage.getItem("orgType");
// 获取地区列表
// this.getCityList();
this.getOperaList()
this.getcompanyList();
},
methods: {
getOperaList(){
this.$api.http.getAllOperationsStaff().then((res) => {
this.operaList = res.data;
// this.operaVisible = true;
// console.log(2);
});

},
getCityList() {
this.$api.api.getAreaList({ parentId: 0 }).then((res) => {
// console.log(res,'地区列表');
@@ -1184,6 +1214,7 @@ export default {
this.pageNum = 1;
this.provinceId = "";
this.cityId = "";
this.operationStaffId = "";
this.area=[]
this.getcompanyList();
},
@@ -1201,6 +1232,7 @@ export default {
cityId: this.cityId,
operatorName: this.operatorName,
operationStaffName: this.operationStaffName,
operationStaffId: this.operationStaffId,
name: this.name,
operationType: 1,
agentId: localStorage.getItem("agentId"),


+ 34
- 2
src/views/Customer/Companymanagement.vue 파일 보기

@@ -11,15 +11,33 @@
<div>
<el-input maxlength="30" clearable v-model="name"></el-input>
</div>
<div v-if="orgType == 0" class="label">运营人员:</div>
<!-- <div v-if="orgType == 0" class="label">运营人员:</div>
<div v-if="orgType == 0">
<el-input
maxlength="10"
clearable
v-model="operationStaffName"
></el-input>
</div> -->
<div class="label">运营人员:</div>
<div >
<!-- <el-input maxlength="10" class="div-inp" clearable v-model="operationalName"></el-input> -->
<el-select
v-model="operationStaffId"
placeholder="请选择"
class="div-inp"
filterable
clearable
>
<el-option
v-for="item in operaList"
:key="item.accountId"
:label="item.name"
:value="item.accountId"
>
</el-option>
</el-select>
</div>

<div class="label" style="line-height: 30px;min-width: 80px;">地区:</div>
<!-- <el-select
v-model="provinceId"
@@ -496,6 +514,8 @@ export default {
provinceId: "",
cityId:'',
areaList: [],
operaList:[],
operationStaffId:'',
dialogVisible3: false,
resetFlag: false,
operaVisible: false,
@@ -594,9 +614,19 @@ export default {
this.orgType = localStorage.getItem("orgType");
// 获取地区列表
// this.getCityList();
this.getOperaList()
this.getcompanyList();
},
methods: {
getOperaList(){
this.$api.http
.getAllOperationsStaffByAgent({
agentId: localStorage.getItem('agentId'),
})
.then((res) => {
this.operaList = res.data;
});
},
getCityList() {
this.$api.api.getAreaList({ parentId: 0 }).then((res) => {
// console.log(res,'地区列表');
@@ -925,6 +955,7 @@ export default {
this.name = "";
this.provinceId = "";
this.cityId = "";
this.operationStaffId = "";
this.pageNum = 1;
this.area=[]
this.getcompanyList();
@@ -942,6 +973,7 @@ export default {
provinceId: this.provinceId,
cityId: this.cityId,
operatorName: this.operatorName,
operationStaffId: this.operationStaffId,
operationStaffName: this.operationStaffName,
name: this.name,
operationType: 2,


+ 55
- 4
src/views/Equipment/record.vue 파일 보기

@@ -45,13 +45,14 @@
</el-select>
</div>
<div style="margin-left: 20px">
<el-button type="primary" @click="screen"
>筛选</el-button
>
<el-button type="primary" @click="screen">筛选</el-button>
</div>
<div style="margin-left: 20px">
<el-button @click="clascreen">清空筛选条件</el-button>
</div>
<div style="margin-left: 20px">
<el-button @click="exportFile">导出</el-button>
</div>
</div>
</div>

@@ -71,8 +72,20 @@
align="center"
>
</el-table-column>
<el-table-column
prop="receiveOperationName"
label="领用操作人"
align="center"
>
</el-table-column>
<el-table-column prop="receiveEndTime" label="归还时间" align="center">
</el-table-column>
<el-table-column
prop="backOperationName"
label="归还操作人"
align="center"
>
</el-table-column>
<el-table-column prop="receiveType" label="领用状态" align="center">
<template slot-scope="{ row }">
{{
@@ -182,6 +195,44 @@ export default {
this.currentPage = 1;
this.equipReceiveFindByPage();
},
exportFile() {
this.exportMethodPost("autoSR/equipReceive/findByPage", "领用记录");
},
// 导出.Excel公用方法
exportMethodPost(url, name, data = {}) {
axios({
method: "post",
url: url,
data,
responseType: "blob",
})
.then((res) => {
let blob = new Blob([res], { type: "application/vnd.ms-excel" });
let date = new Date();
let time = date.toLocaleDateString();
// console.log(time, "时间");
if ("download" in document.createElement("a")) {
const link = document.createElement("a");
link.style.display = "none";
link.href = URL.createObjectURL(blob);
// link.download = res.headers['content-disposition'] //下载后文件名
link.download = (name || "导出文件") + time + ".xlsx"; //下载的文件名
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
} else {
// console.log("--------------------jingla")
let fileName = (name || "导出文件") + time + ".xlsx"; //下载的文件名
navigator.msSaveBlob(blob, fileName);
}
})
.catch((error) => {
// Message.error({
// message: '网络连接错误'
// })
console.log(error);
});
},
clascreen() {
this.currentPage = 1;
this.searchForm.equipImei = "";
@@ -197,7 +248,7 @@ export default {
...this.searchForm,
};
this.$api.api.equipReceiveFindByPage(obj).then((res) => {
console.log(res);
// console.log(res);
this.tableData = res.data.records;
this.total = res.data.total;
});


+ 174
- 71
src/views/Statistics/dataScreeSys.vue 파일 보기

@@ -57,7 +57,6 @@
<!-- 二 -->
<div class="app-box-er">
<div class="container">

<div v-if="agentissow" class="grid-content">
<div class="text1">代理商数</div>
<div class="text2">{{ firstTab.agentQuantity || 0 }}</div>
@@ -115,7 +114,6 @@
<div class="text2">{{ firstTab.normalequipmentQuantity || 0 }}</div>
</div> -->


<div class="grid-content">
<div class="text1">用户数</div>
<div class="text2">{{ firstTab.userQuantity || 0 }}</div>
@@ -149,15 +147,55 @@
</div>

<div class="app-box-er">
<div style="line-height: 40px; font-weight: bold">今日实时状况</div>
<div class="app_titile" style="margin-bottom: 10px">
<div style="line-height: 40px; font-weight: bold">今日实时状况</div>
<div>
<div class="app-titel">
<div class="toptimeqhuan">
<div :class="{ tophove: dateType1 == 4 }" @click="tabtimetap1(4)">
近7天
</div>
<div :class="{ tophove: dateType1 == 5 }" @click="tabtimetap1(5)">
近15天
</div>
<div :class="{ tophove: dateType1 == 6 }" @click="tabtimetap1(6)">
近30天
</div>
</div>
<div style="margin-left: 26px">
<el-date-picker
@change="confirmtime1()"
v-model="customtime1"
type="daterange"
range-separator="-"
:default-time="['00:00:00', '23:59:59']"
value-format="yyyy-MM-dd"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="pickerOptions"
>
</el-date-picker>
</div>
</div>
</div>
</div>

<div class="container">
<div class="grid-content" style="cursor: pointer;" @click="secondChange('1')">
<div
class="grid-content"
style="cursor: pointer"
@click="secondChange('1')"
>
<div class="text1" :class="{ tophovese: secindex == 1 }">接待量</div>
<div class="text2" :class="{ tophovese: secindex == 1 }">
{{ secondTab.receptionQuantityInToday || 0 }}
</div>
</div>
<div class="grid-content" style="cursor: pointer;" @click="secondChange('2')">
<div
class="grid-content"
style="cursor: pointer"
@click="secondChange('2')"
>
<div class="text1" :class="{ tophovese: secindex == 2 }">
活跃用户
</div>
@@ -165,7 +203,11 @@
{{ secondTab.activeUserQuantity || 0 }}
</div>
</div>
<div class="grid-content" style="cursor: pointer;" @click="secondChange('3')">
<div
class="grid-content"
style="cursor: pointer"
@click="secondChange('3')"
>
<div class="text1" :class="{ tophovese: secindex == 3 }">
活跃设备
</div>
@@ -207,15 +249,36 @@
>
</el-date-picker>
</div>
<el-select
v-model="echarValue"
style="width: 100px;margin-left:10px;"
placeholder="请选择"
>
<el-option
v-for="item in options1"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div>
</div>
</div>
<div class="container">
<div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('1')">
<div class="container" v-if="echarValue==0">
<div
class="grid-content"
style="cursor: pointer"
@click="Overviewxlick('1')"
>
<div class="text1" :class="{ tophovese: cardindex == 1 }">
购买服务楼盘数
</div>
<div class="text2" style="cursor: pointer;" :class="{ tophovese: cardindex == 1 }">
<div
class="text2"
style="cursor: pointer"
:class="{ tophovese: cardindex == 1 }"
>
{{ thirdTab.houseQuantity || 0 }}
</div>
</div>
@@ -235,7 +298,11 @@
{{ thirdTab.avgDuration || 0 }}
</div>
</div> -->
<div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('4')">
<div
class="grid-content"
style="cursor: pointer"
@click="Overviewxlick('4')"
>
<div class="text1" :class="{ tophovese: cardindex == 4 }">
活跃用户数
</div>
@@ -243,7 +310,11 @@
{{ thirdTab.activeUserQuantity || 0 }}
</div>
</div>
<div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('5')">
<div
class="grid-content"
style="cursor: pointer"
@click="Overviewxlick('5')"
>
<div class="text1" :class="{ tophovese: cardindex == 5 }">
新增用户数
</div>
@@ -251,13 +322,21 @@
{{ thirdTab.userCountWithNewJoin || 0 }}
</div>
</div>
<div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('6')">
<div
class="grid-content"
style="cursor: pointer"
@click="Overviewxlick('6')"
>
<div class="text1" :class="{ tophovese: cardindex == 6 }">接待量</div>
<div class="text2" :class="{ tophovese: cardindex == 6 }">
{{ thirdTab.receptionQuantity || 0 }}
</div>
</div>
<div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('7')">
<div
class="grid-content"
style="cursor: pointer"
@click="Overviewxlick('7')"
>
<div class="text1" :class="{ tophovese: cardindex == 7 }">
平均接待时长
</div>
@@ -265,7 +344,11 @@
{{ thirdTab.receptionTimeWithAvg || 0 }}
</div>
</div>
<div class="grid-content" style="cursor: pointer;" @click="Overviewxlick('8')">
<div
class="grid-content"
style="cursor: pointer"
@click="Overviewxlick('8')"
>
<div class="text1" :class="{ tophovese: cardindex == 8 }">
活跃设备数
</div>
@@ -275,7 +358,7 @@
</div>
</div>

<div id="echar2"></div>
<div v-if="echarValue==0" id="echar2"></div>
</div>
</div>
</template>
@@ -295,7 +378,8 @@ export default {
secondTab: {},
thirdTab: {},
selValue: "0",
choicValue: "",
echarValue:'0',
choicValue:"",
houseList: [],
secindex: "1",
dateType: 4,
@@ -311,29 +395,40 @@ export default {
value: "1",
},
],
agentissow:true
options1: [
{
label: "趋势图",
value: "0",
},
{
label: "表格",
value: "1",
},
],
agentissow: true,
dateType1: 4,
customtime1: [],
};
},
mounted() {
this.getList();
this.tabtimetap(4);
// this.tabtimetap(4);
},
methods: {
valuechange() {
this.dateType = 4;
this.cardindex=1;
this.secindex=1;
if(this.choicValue==''){

}
if(this.selValue==1){
this.agentissow=false;
}else{
if(this.choicValue==''){
this.agentissow=true;
}else{
this.agentissow=false;
}
this.cardindex = 1;
this.secindex = 1;
if (this.choicValue == "") {
}
if (this.selValue == 1) {
this.agentissow = false;
} else {
if (this.choicValue == "") {
this.agentissow = true;
} else {
this.agentissow = false;
}
}
this.dataOverViewWithSystem();
this.dataOverviewWithSystemWithDay();
@@ -343,17 +438,17 @@ export default {
selChange() {
this.choicValue = "";
this.dateType = 4;
this.cardindex=1
this.secindex=1
this.cardindex = 1;
this.secindex = 1;
this.getList();
if(this.selValue==1){
this.agentissow=false;
}else{
if(this.choicValue==''){
this.agentissow=true;
}else{
this.agentissow=false;
}
if (this.selValue == 1) {
this.agentissow = false;
} else {
if (this.choicValue == "") {
this.agentissow = true;
} else {
this.agentissow = false;
}
}
},
// 获取下拉框数据
@@ -390,6 +485,9 @@ export default {
agentId: this.selValue == 0 ? this.choicValue : null,
orgCode: this.selValue == 1 ? this.choicValue : null,
orgType: localStorage.getItem("orgType"),
startDate: this.dateType1 ? "" : this.customtime1[0],
endDate: this.dateType1 ? "" : this.customtime1[1],
dateType: this.dateType1,
})
.then((res) => {
this.secondTab = res.data;
@@ -424,7 +522,7 @@ export default {
let arr1 = [];
let arr2 = [];
// console.log(timeDate);
if (idx == 1 ) {
if (idx == 1) {
// 接待量
this.secondTab.todayReceptionList.map((item) => {
timeDate.push(item.time.substring(11, 16));
@@ -527,7 +625,7 @@ export default {
data: arr1,
type: "line",
smooth: true,
}
},
];
this.SwitchCARDS(arr, "echar2", timeDate, Strname);
},
@@ -551,17 +649,23 @@ export default {
this.secindex = i;
this.getChars1(i);
},
confirmtime1(e) {
this.dateType1 = null;
this.dataOverviewWithSystemWithDay();
},
tabtimetap1(i) {
this.dateType1 = i;
this.customtime1 = [];
this.dataOverviewWithSystemWithDay();
},
confirmtime(e) {
this.dateType = null;
this.dataOverviewWithSystemWithLook();
},
tabtimetap(i) {
this.dateType = i;
this.selectTime = "";
this.selectTime1 = "";
this.customtime=[]
this.customtime = [];
this.dataOverviewWithSystemWithLook();

},
//卡片下折线图
SwitchCARDS(arr, str, timeDate, Strname) {
@@ -570,29 +674,29 @@ export default {
var option;

option = {
color: [
"#6F8EDC",
"#EE6666",
"#F98120",
"#1CC99E",
"#9474FB",
"#66AFF5",
"#FABD2B",
"#FFCF8F",
"#657292",
"#7A6A99",
"#BF5D52",
"#77B7E4",
"#E6A065",
"#9D5139",
"#C1AA88",
"#F87F7A",
"#F6CF74",
"#7F5506",
"#88BB9B",
"#6E99AA",
"#5789D0",
],
color: [
"#6F8EDC",
"#EE6666",
"#F98120",
"#1CC99E",
"#9474FB",
"#66AFF5",
"#FABD2B",
"#FFCF8F",
"#657292",
"#7A6A99",
"#BF5D52",
"#77B7E4",
"#E6A065",
"#9D5139",
"#C1AA88",
"#F87F7A",
"#F6CF74",
"#7F5506",
"#88BB9B",
"#6E99AA",
"#5789D0",
],
tooltip: {
trigger: "axis",
},
@@ -891,5 +995,4 @@ export default {
display: flex;
justify-content: space-between;
}

</style>

+ 45
- 6
src/views/building/index.vue 파일 보기

@@ -139,16 +139,31 @@
clearable
></el-cascader>
</div>
<!-- <div v-if="orgType == 0" class="div-lab">
<div v-if="orgType == 0||orgType == 1" class="div-lab">
<div class="label">运营人员:</div>
<el-input
<!-- <el-input
v-model="searchForm.operationalPeople"
maxlength="8"
clearable
class="div-inp"
placeholder="请输入内容"
></el-input>
</div> -->
></el-input> -->
<el-select
v-model="searchForm.operationStaffId"
placeholder="请选择"
class="div-inp"
filterable
clearable
>
<el-option
v-for="item in operaList"
:key="item.accountId"
:label="item.name"
:value="item.accountId"
>
</el-option>
</el-select>
</div>
<div v-if="orgType == 0" class="div-lab">
<div class="label">代理商名称:</div>

@@ -257,8 +272,8 @@
{{ row.linkman + "-" + row.linkmanPhone || "-" }}
</template>
</el-table-column>
<!-- <el-table-column prop='linkmanPhone' label="联系人手机号" align="center">
</el-table-column> -->
<el-table-column prop='operationStaffName' label="运营人员" align="center">
</el-table-column>

<el-table-column prop="managerPhone" label="管理员账号" align="center">
<template slot-scope="{ row }">
@@ -784,8 +799,10 @@ export default {
endWorking: "",
agentName: "",
operationalPeople: "",
operationStaffId:'',
},
areaList: [],
operaList:[],
options1: [
{
value: "0",
@@ -947,6 +964,7 @@ export default {
// 获取公司列表数据
this.getOrgList();
// 获取运营人员
this.getOperaList()
// this.getAllOperationsStaff();
// 获取地区列表
// this.getCityList();
@@ -954,6 +972,25 @@ export default {
this.zkhousePage();
},
methods: {
getOperaList(){
if (this.orgType == 1) {
this.$api.http
.getAllOperationsStaffByAgent({
agentId: localStorage.getItem('agentId'),
})
.then((res) => {
// console.log(1);
this.operaList = res.data;
// this.operaVisible = true;
});
} else {
this.$api.http.getAllOperationsStaff().then((res) => {
this.operaList = res.data;
// this.operaVisible = true;
// console.log(2);
});
}
},
getCityList() {
this.$api.api.getAreaList({ parentId: 0 }).then((res) => {
// console.log(res,'地区列表');
@@ -1272,6 +1309,7 @@ export default {
orgType: localStorage.getItem("orgType"),
agentId: localStorage.getItem("agentId"),
orgCode: localStorage.getItem("orgCode"),
operationType:localStorage.getItem("orgType")==0?'1':localStorage.getItem("orgType")==1?'2':'',
...this.searchForm,
};
if (this.orgType == 0) {
@@ -1353,6 +1391,7 @@ export default {
endWorking: "",
agentName: "",
operationalPeople: "",
operationStaffId:''
};
this.area=[]
this.currentPage = 1;


+ 2
- 2
vue.config.js 파일 보기

@@ -3,9 +3,9 @@
* https://cli.vuejs.org/zh/config/
*/
// const url = 'http://pigx-gateway'
const url = 'http://39.97.167.65:9999' //测试
// const url = 'http://39.97.167.65:9999' //测试
// const url = 'http://192.168.31.169:9999' //长龙
// const url = 'http://192.168.31.134:9999' //嘉豪
const url = 'http://192.168.31.134:9999' //嘉豪
// const url = 'http://192.168.31.100:9999' //王笑
// const url = 'http://nitu5e.natappfree.cc' //王笑



불러오는 중...
취소
저장