@@ -192,3 +192,14 @@ export function insertupdate(data) { | |||
data | |||
}) | |||
} | |||
//用户洞察 | |||
export function findmatchdata(query) { | |||
return request({ | |||
url: '/autoSR/matchKeywords/findmatchdata', | |||
method:'get', | |||
params:query | |||
}) | |||
} | |||
@@ -10,12 +10,15 @@ export default [{ | |||
component: () => | |||
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', | |||
@@ -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="titel-text"> | |||
楼盘选择: | |||
<el-select v-model="value" placeholder="请选择"> | |||
<el-select v-model="houseId" placeholder="请选择"> | |||
<el-option | |||
v-for="item in options" | |||
v-for="item in buildingoptions" | |||
:key="item.value" | |||
:label="item.label" | |||
:value="item.value"> | |||
:label="item.propertyName" | |||
:value="item.id"> | |||
</el-option> | |||
</el-select> | |||
</div> | |||
@@ -26,10 +26,12 @@ | |||
</div> | |||
<div style="margin-left: 26px"> | |||
<el-date-picker | |||
@change="confirmtime()" | |||
v-model="customtime" | |||
@change="confirmtime()" | |||
type="daterange" | |||
range-separator="至" | |||
range-separator="-" | |||
:default-time="['00:00:00', '23:59:59']" | |||
value-format="yyyy-MM-dd" | |||
start-placeholder="开始日期" | |||
end-placeholder="结束日期" | |||
> | |||
@@ -152,26 +154,7 @@ import * as echarts from "echarts"; | |||
export default { | |||
data() { | |||
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: [], | |||
numlist: [], | |||
objlist: [ | |||
@@ -229,9 +212,16 @@ export default { | |||
unit: "", | |||
}, | |||
], | |||
value:'', | |||
houseId: "", | |||
options:{}, | |||
value:'' | |||
buildingoptions:[], | |||
TimetoAhoose: 2, | |||
customtime: [], | |||
fromobj: { | |||
starttime: "", | |||
endoftime: "", | |||
}, | |||
}; | |||
}, | |||
mounted() { | |||
@@ -239,6 +229,10 @@ export default { | |||
// this.zkhousePage() | |||
}, | |||
methods: { | |||
Toview(){ | |||
this.$router.push({ path: "/Statistics/Insightintothedetails", query: { flag: 1 } }); | |||
}, | |||
//获取楼盘 | |||
zkhousePage() { | |||
let obj = { | |||
current: 1, | |||
@@ -246,30 +240,62 @@ export default { | |||
}; | |||
this.$api.api.zkhousePage(obj).then((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) { | |||
this.TimetoAhoose = index; | |||
this.fromobj.starttime = ""; | |||
this.fromobj.endoftime = ""; | |||
this.customtime = ""; | |||
this.customtime = []; | |||
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() { | |||
this.objlist.forEach((item, index) => { | |||
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> |