@@ -192,3 +192,14 @@ export function insertupdate(data) { | |||||
data | data | ||||
}) | }) | ||||
} | } | ||||
//用户洞察 | |||||
export function findmatchdata(query) { | |||||
return request({ | |||||
url: '/autoSR/matchKeywords/findmatchdata', | |||||
method:'get', | |||||
params:query | |||||
}) | |||||
} | |||||
@@ -10,12 +10,15 @@ export default [{ | |||||
component: () => | component: () => | ||||
import(/* webpackChunkName: "page" */ '@/views/admin/user/info') | import(/* webpackChunkName: "page" */ '@/views/admin/user/info') | ||||
}, | }, | ||||
// { | |||||
// path: '/building/chose', | |||||
// component: () => | |||||
// import(/* webpackChunkName: "page" */ '@/views/building/chose'), | |||||
// name: '楼盘选择', | |||||
// }, | |||||
{ | |||||
path: '/Statistics/Insightintothedetails', | |||||
component: () => | |||||
import(/* webpackChunkName: "page" */ '@/views/Statistics/Insightintothedetails'), | |||||
name: '洞察详情', | |||||
}, | |||||
] | ] | ||||
}, { | }, { | ||||
path: '/activti', | path: '/activti', | ||||
@@ -0,0 +1,319 @@ | |||||
<template> | |||||
<div class="box-center"> | |||||
<!-- 头 --> | |||||
<div class="app-top"> | |||||
<div class="app-titel" style="margin-top: 15px"> | |||||
<div class="label">时间:</div> | |||||
<div class="toptimeqhuan"> | |||||
<div :class="{ tophove: TimetoAhoose == 0 }" @click="tabtimetap(0)"> | |||||
全部 | |||||
</div> | |||||
<div :class="{ tophove: TimetoAhoose == 1 }" @click="tabtimetap(1)"> | |||||
15天内 | |||||
</div> | |||||
<div :class="{ tophove: TimetoAhoose == 2 }" @click="tabtimetap(2)"> | |||||
30天内 | |||||
</div> | |||||
</div> | |||||
<div> | |||||
<el-date-picker | |||||
v-model="value1" | |||||
type="daterange" | |||||
range-separator="至" | |||||
start-placeholder="开始日期" | |||||
end-placeholder="结束日期"> | |||||
</el-date-picker> | |||||
</div> | |||||
</div> | |||||
<div class="app-titel" style="margin-top: 15px"> | |||||
<div class="label">客户名称:</div> | |||||
<div> | |||||
<el-input v-model="value"></el-input> | |||||
</div> | |||||
<div class="label">置业顾问:</div> | |||||
<div> | |||||
<el-input v-model="value"></el-input> | |||||
</div> | |||||
</div> | |||||
<div class="app-titel" style="margin-top: 15px"> | |||||
<div class="label">客户意向:</div> | |||||
<div > | |||||
<el-select v-model="value" placeholder="请选择"> | |||||
<el-option | |||||
v-for="item in options5" | |||||
:key="item.value" | |||||
:label="item.label" | |||||
:value="item.value" | |||||
> | |||||
</el-option> | |||||
</el-select> | |||||
</div> | |||||
<div style="margin-left: 20px"> | |||||
<el-button style="background: #2671e2; color: #ffffff" | |||||
>筛选</el-button | |||||
> | |||||
</div> | |||||
<div style="margin-left: 20px"> | |||||
<el-button>清空筛选条件</el-button> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<!-- 表格 --> | |||||
<div class="cen-tab"> | |||||
<el-table | |||||
:data="tableData" | |||||
stripe | |||||
height="400" | |||||
style="width: 100%"> | |||||
<el-table-column | |||||
prop="date" | |||||
label="接待开始时间" | |||||
align="center" | |||||
> | |||||
</el-table-column> | |||||
<el-table-column | |||||
prop="name" | |||||
label="置业顾问" | |||||
align="center" | |||||
> | |||||
</el-table-column> | |||||
<el-table-column | |||||
prop="address" | |||||
label="客户姓名" | |||||
align="center"> | |||||
</el-table-column> | |||||
<el-table-column | |||||
prop="date" | |||||
label="录音时长" | |||||
align="center" | |||||
> | |||||
</el-table-column> | |||||
<el-table-column | |||||
prop="name" | |||||
label="画像语义词触达次数" | |||||
align="center" | |||||
> | |||||
</el-table-column> | |||||
<el-table-column | |||||
prop="address" | |||||
label="接访得分" | |||||
align="center"> | |||||
</el-table-column> | |||||
<!-- scope --> | |||||
<el-table-column label="操作" align="center"> | |||||
<template slot-scope=""> | |||||
<div style="color: #2671E2;">查看详情</div> | |||||
</template> | |||||
</el-table-column> | |||||
</el-table> | |||||
<div style="display: flex;justify-content:flex-end;margin-top: 10px;"> | |||||
<el-pagination | |||||
@size-change="handleSizeChange" | |||||
@current-change="handleCurrentChange" | |||||
:current-page="currentPage4" | |||||
:page-sizes="[100, 200, 300, 400]" | |||||
:page-size="100" | |||||
layout="total, sizes, prev, pager, next, jumper" | |||||
:total="400"> | |||||
</el-pagination> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
export default { | |||||
data() { | |||||
return { | |||||
TimetoAhoose: 2, | |||||
options: [ | |||||
{ | |||||
value: "1", | |||||
label: "全部", | |||||
}, | |||||
{ | |||||
value: "2", | |||||
label: "服务器内", | |||||
}, | |||||
{ | |||||
value: "3", | |||||
label: "已失效", | |||||
}, | |||||
], | |||||
options2: [ | |||||
{ | |||||
value: "1", | |||||
label: "有效录音", | |||||
}, | |||||
{ | |||||
value: "2", | |||||
label: "无效录音", | |||||
}, | |||||
], | |||||
options3: [ | |||||
{ | |||||
value: "1", | |||||
label: "0-15分钟", | |||||
}, | |||||
{ | |||||
value: "2", | |||||
label: "16-30分钟", | |||||
}, | |||||
{ | |||||
value: "3", | |||||
label: "31-60分钟", | |||||
}, | |||||
{ | |||||
value: "4", | |||||
label: "61-90分钟", | |||||
}, | |||||
{ | |||||
value: "5", | |||||
label: "90分钟以上", | |||||
}, | |||||
], | |||||
options4: [ | |||||
{ | |||||
value: "1", | |||||
label: "首次到访", | |||||
}, | |||||
{ | |||||
value: "2", | |||||
label: "2次到访", | |||||
}, | |||||
{ | |||||
value: "3", | |||||
label: "3次到访", | |||||
}, | |||||
{ | |||||
value: "4", | |||||
label: "三次以上", | |||||
}, | |||||
], | |||||
options5: [ | |||||
{ | |||||
value: "1", | |||||
label: "已标注", | |||||
}, | |||||
{ | |||||
value: "2", | |||||
label: "未标注", | |||||
}, | |||||
{ | |||||
value: "3", | |||||
label: "全部", | |||||
}, | |||||
], | |||||
currentPage4:4, | |||||
value: "", | |||||
input: "", | |||||
tableData: [ | |||||
{ | |||||
date: "2016-05-03", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
{ | |||||
date: "2016-05-02", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
{ | |||||
date: "2016-05-04", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
{ | |||||
date: "2016-05-01", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
{ | |||||
date: "2016-05-08", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
{ | |||||
date: "2016-05-06", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
{ | |||||
date: "2016-05-07", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
], | |||||
}; | |||||
}, | |||||
mounted() {}, | |||||
methods: { | |||||
handleSizeChange(val) { | |||||
console.log(`每页 ${val} 条`); | |||||
}, | |||||
handleCurrentChange(val) { | |||||
console.log(`当前页: ${val}`); | |||||
} | |||||
}, | |||||
}; | |||||
</script> | |||||
<style scoped="scoped" lang="scss" > | |||||
.box-center { | |||||
width: 100%; | |||||
padding: 15px; | |||||
min-width: 1200px; | |||||
padding-bottom: 100px; | |||||
} | |||||
.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; | |||||
.label { | |||||
font-size: 14px; | |||||
font-weight: 400; | |||||
color: #32363d; | |||||
line-height: 14px; | |||||
margin-left: 15px; | |||||
} | |||||
.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; | |||||
} | |||||
} | |||||
} | |||||
</style> |
@@ -4,12 +4,12 @@ | |||||
<div class="app-titel"> | <div class="app-titel"> | ||||
<div class="titel-text"> | <div class="titel-text"> | ||||
楼盘选择: | 楼盘选择: | ||||
<el-select v-model="value" placeholder="请选择"> | |||||
<el-select v-model="houseId" placeholder="请选择"> | |||||
<el-option | <el-option | ||||
v-for="item in options" | |||||
v-for="item in buildingoptions" | |||||
:key="item.value" | :key="item.value" | ||||
:label="item.label" | |||||
:value="item.value"> | |||||
:label="item.propertyName" | |||||
:value="item.id"> | |||||
</el-option> | </el-option> | ||||
</el-select> | </el-select> | ||||
</div> | </div> | ||||
@@ -26,10 +26,12 @@ | |||||
</div> | </div> | ||||
<div style="margin-left: 26px"> | <div style="margin-left: 26px"> | ||||
<el-date-picker | <el-date-picker | ||||
@change="confirmtime()" | |||||
v-model="customtime" | v-model="customtime" | ||||
@change="confirmtime()" | |||||
type="daterange" | type="daterange" | ||||
range-separator="至" | |||||
range-separator="-" | |||||
:default-time="['00:00:00', '23:59:59']" | |||||
value-format="yyyy-MM-dd" | |||||
start-placeholder="开始日期" | start-placeholder="开始日期" | ||||
end-placeholder="结束日期" | end-placeholder="结束日期" | ||||
> | > | ||||
@@ -152,26 +154,7 @@ import * as echarts from "echarts"; | |||||
export default { | export default { | ||||
data() { | data() { | ||||
return { | return { | ||||
alllist: [ | |||||
{ name: "阿达", num: "5" }, | |||||
{ name: "阿达", num: "5" }, | |||||
{ name: "阿达", num: "5" }, | |||||
{ name: "阿达", num: "5" }, | |||||
{ name: "阿达", num: "5" }, | |||||
{ name: "阿达", num: "5" }, | |||||
{ name: "阿达", num: "5" }, | |||||
{ name: "阿达", num: "5" }, | |||||
{ name: "阿达", num: "5" }, | |||||
{ name: "阿达", num: "5" }, | |||||
{ name: "阿达", num: "5" }, | |||||
{ name: "阿达", num: "5" }, | |||||
], | |||||
customtime: "", | |||||
TimetoAhoose: 2, | |||||
fromobj: { | |||||
starttime: "", | |||||
endoftime: "", | |||||
}, | |||||
alllist: [], | |||||
namelist: [], | namelist: [], | ||||
numlist: [], | numlist: [], | ||||
objlist: [ | objlist: [ | ||||
@@ -229,9 +212,16 @@ export default { | |||||
unit: "", | unit: "", | ||||
}, | }, | ||||
], | ], | ||||
value:'', | |||||
houseId: "", | houseId: "", | ||||
options:{}, | |||||
value:'' | |||||
buildingoptions:[], | |||||
TimetoAhoose: 2, | |||||
customtime: [], | |||||
fromobj: { | |||||
starttime: "", | |||||
endoftime: "", | |||||
}, | |||||
}; | }; | ||||
}, | }, | ||||
mounted() { | mounted() { | ||||
@@ -239,6 +229,10 @@ export default { | |||||
// this.zkhousePage() | // this.zkhousePage() | ||||
}, | }, | ||||
methods: { | methods: { | ||||
Toview(){ | |||||
this.$router.push({ path: "/Statistics/Insightintothedetails", query: { flag: 1 } }); | |||||
}, | |||||
//获取楼盘 | |||||
zkhousePage() { | zkhousePage() { | ||||
let obj = { | let obj = { | ||||
current: 1, | current: 1, | ||||
@@ -246,30 +240,62 @@ export default { | |||||
}; | }; | ||||
this.$api.api.zkhousePage(obj).then((res) => { | this.$api.api.zkhousePage(obj).then((res) => { | ||||
console.log(res) | console.log(res) | ||||
// this.tableData = res.data.records; | |||||
// this.total = res.data.total; | |||||
this.houseId=res.data.records[0].id; | |||||
this.buildingoptions= res.data.records; | |||||
this.getorgCode(); | |||||
}); | }); | ||||
}, | }, | ||||
//自定义时间 | |||||
confirmtime() { | |||||
this.TimetoAhoose = 6; | |||||
this.fromobj.starttime = this.customtime[0]; | |||||
this.fromobj.endoftime = this.customtime[1]; | |||||
}, | |||||
//切换时间 | |||||
tabtimetap(index) { | tabtimetap(index) { | ||||
this.TimetoAhoose = index; | this.TimetoAhoose = index; | ||||
this.fromobj.starttime = ""; | this.fromobj.starttime = ""; | ||||
this.fromobj.endoftime = ""; | this.fromobj.endoftime = ""; | ||||
this.customtime = ""; | |||||
this.customtime = []; | |||||
this.getorgCode(); | this.getorgCode(); | ||||
}, | }, | ||||
confirmtime() { | |||||
if (this.customtime == "") { | |||||
//初始化 | |||||
getorgCode(){ | |||||
this.namelist=[]; | |||||
this.numlist=[]; | |||||
this.objlist=[]; | |||||
var dateType=''; | |||||
if(this.TimetoAhoose==6){ | |||||
dateType=''; | |||||
}else { | |||||
dateType=this.TimetoAhoose; | |||||
} | |||||
this.$api.http.findmatchdata({ | |||||
dateType:dateType, | |||||
houseId:this.houseId, | |||||
statDateStart:this.fromobj.starttime, | |||||
statDateEnd:this.fromobj.endoftime | |||||
}).then((res) => { | |||||
if(data.data.res==1){ | |||||
this.objlist=data.data.obj.list; | |||||
this.alllist=[{"name":'客户数量',"num":data.data.obj.total}] | |||||
data.data.obj.list.forEach((item,index)=>{ | |||||
this.alllist.push({ | |||||
name:item.name, | |||||
num:item.total | |||||
}) | |||||
}) | |||||
// this.$nextTick(() => { | |||||
// this.myChartinit() | |||||
// }) | |||||
} | |||||
}); | |||||
}, | |||||
} else { | |||||
this.TimetoAhoose = 6; | |||||
const d = new Date(this.customtime[0]); | |||||
this.fromobj.starttime = d.getFullYear() + "-" + this.Zeropadding(d.getMonth() + 1) + "-" + this.Zeropadding(d.getDate()); | |||||
const c = new Date(this.customtime[1]); | |||||
this.fromobj.endoftime = c.getFullYear() + "-" + this.Zeropadding(c.getMonth() + 1) + "-" + this.Zeropadding(c.getDate()); | |||||
} | |||||
}, | |||||
myChartinit() { | myChartinit() { | ||||
this.objlist.forEach((item, index) => { | this.objlist.forEach((item, index) => { | ||||
if (item.total != 0) { | if (item.total != 0) { | ||||
@@ -0,0 +1,220 @@ | |||||
<template> | |||||
<div class="box-center"> | |||||
<!-- 头 --> | |||||
<div class="app-top"> | |||||
<div class="app-titel" style="margin-top: 5px"> | |||||
<div class="label">销讲词:</div> | |||||
<div> | |||||
<el-input v-model="value"></el-input> | |||||
</div> | |||||
<div style="margin-left: 20px"> | |||||
<el-button style="background: #2671e2; color: #ffffff" | |||||
>筛选</el-button | |||||
> | |||||
</div> | |||||
<div style="margin-left: 20px"> | |||||
<el-button @click="editorinfo()" style="background: #2671e2; color: #ffffff" | |||||
>新增</el-button | |||||
> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<!-- 表格 --> | |||||
<div class="cen-tab"> | |||||
<el-table | |||||
:data="tableData" | |||||
stripe | |||||
height="400" | |||||
style="width: 100%"> | |||||
<el-table-column | |||||
prop="date" | |||||
label="敏感词" | |||||
align="center" | |||||
> | |||||
</el-table-column> | |||||
<el-table-column | |||||
prop="name" | |||||
label="楼盘名称" | |||||
align="center" | |||||
> | |||||
</el-table-column> | |||||
<el-table-column | |||||
prop="address" | |||||
label="创建时间" | |||||
align="center"> | |||||
</el-table-column> | |||||
<el-table-column | |||||
prop="date" | |||||
label="修改时间" | |||||
align="center" | |||||
> | |||||
</el-table-column> | |||||
<!-- scope --> | |||||
<el-table-column label="操作" align="center"> | |||||
<template slot-scope="" style=""> | |||||
<span style="color: #2671E2;">编辑</span> | |||||
<span style="color: #2671E2;margin-left: 10px;">删除</span> | |||||
</template> | |||||
</el-table-column> | |||||
</el-table> | |||||
<div style="display: flex;justify-content:flex-end;margin-top: 10px;"> | |||||
<el-pagination | |||||
@size-change="handleSizeChange" | |||||
@current-change="handleCurrentChange" | |||||
:current-page="currentPage4" | |||||
:page-sizes="[100, 200, 300, 400]" | |||||
:page-size="100" | |||||
layout="total, sizes, prev, pager, next, jumper" | |||||
:total="400"> | |||||
</el-pagination> | |||||
</div> | |||||
</div> | |||||
<el-dialog title="新增" :visible.sync="dialogVisible" > | |||||
<el-form :model="ruleForm" label-position="labelPosition" ref="ruleForm" label-width="140px" style="width:60%; margin: 0 auto;"> | |||||
<el-form-item label="禁忌词" prop="areaName"> | |||||
<el-input v-model="ruleForm.areaName"></el-input> | |||||
</el-form-item> | |||||
<el-form-item label="楼盘名称" prop="areaName"> | |||||
<el-input v-model="ruleForm.areaName"></el-input> | |||||
</el-form-item> | |||||
</el-form> | |||||
<div slot="footer" class="dialog-footer"> | |||||
<el-button @click="dialogVisible = false">取 消</el-button> | |||||
<el-button type="primary" @click="editor()">保存</el-button> | |||||
</div> | |||||
</el-dialog> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
export default { | |||||
data() { | |||||
return { | |||||
currentPage4:4, | |||||
value: "", | |||||
input: "", | |||||
tableData: [ | |||||
{ | |||||
date: "2016-05-03", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
{ | |||||
date: "2016-05-02", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
{ | |||||
date: "2016-05-04", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
{ | |||||
date: "2016-05-01", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
{ | |||||
date: "2016-05-08", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
{ | |||||
date: "2016-05-06", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
{ | |||||
date: "2016-05-07", | |||||
name: "王小虎", | |||||
address: " 1518 弄", | |||||
}, | |||||
], | |||||
multipleSelection:[], | |||||
dialogVisible:false, | |||||
ruleForm:{ | |||||
areaName:'', | |||||
provinceItem:[], | |||||
}, | |||||
}; | |||||
}, | |||||
mounted() {}, | |||||
methods: { | |||||
editorinfo(){ | |||||
this.dialogVisible=true; | |||||
}, | |||||
editor(){ | |||||
this.dialogVisible=false; | |||||
}, | |||||
handleSelectionChange(val) { | |||||
this.multipleSelection = val; | |||||
}, | |||||
handleSizeChange(val) { | |||||
console.log(`每页 ${val} 条`); | |||||
}, | |||||
handleCurrentChange(val) { | |||||
console.log(`当前页: ${val}`); | |||||
} | |||||
}, | |||||
}; | |||||
</script> | |||||
<style scoped="scoped" lang="scss" > | |||||
.box-center { | |||||
width: 100%; | |||||
padding: 15px; | |||||
min-width: 1200px; | |||||
padding-bottom: 100px; | |||||
} | |||||
.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; | |||||
.label { | |||||
font-size: 14px; | |||||
font-weight: 400; | |||||
color: #32363d; | |||||
line-height: 14px; | |||||
margin-left: 15px; | |||||
} | |||||
.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; | |||||
} | |||||
} | |||||
} | |||||
</style> |