Browse Source

init

newStyle
wangxiaohua 3 years ago
parent
commit
b44ab6f7c3
6 changed files with 628 additions and 49 deletions
  1. +11
    -0
      src/api/modules/http.js
  2. +9
    -6
      src/router/views/index.js
  3. +319
    -0
      src/views/Statistics/Insightintothedetails.vue
  4. +69
    -43
      src/views/Statistics/index.vue
  5. +0
    -0
      src/views/Template/taboo,vue
  6. +220
    -0
      src/views/Template/taboo.vue

+ 11
- 0
src/api/modules/http.js View File

@@ -192,3 +192,14 @@ export function insertupdate(data) {
data
})
}


//用户洞察
export function findmatchdata(query) {
return request({
url: '/autoSR/matchKeywords/findmatchdata',
method:'get',
params:query
})
}


+ 9
- 6
src/router/views/index.js View File

@@ -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',


+ 319
- 0
src/views/Statistics/Insightintothedetails.vue View File

@@ -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>

+ 69
- 43
src/views/Statistics/index.vue View File

@@ -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
src/views/Template/taboo,vue View File


+ 220
- 0
src/views/Template/taboo.vue View File

@@ -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>

Loading…
Cancel
Save