Commit cb137e85 authored by 华国豪's avatar 华国豪 🙄

新增高级查询

parent c1ca7d40
......@@ -30,7 +30,7 @@ export default {
@import './assets/css/tablevoerride.css';
@import './assets/global/font.css';
@import '//at.alicdn.com/t/font_1627123_vi053ljm2xd.css';
@import '//at.alicdn.com/t/font_1627123_udqp6oxn9ki.css';
@import url('//at.alicdn.com/t/font_1627123_grz80mbm3sv.css');
/* @import './assets/css/common.css'; */
@import './assets/css/init.css';
......
......@@ -25,19 +25,45 @@
</el-dropdown>
</div>
</div>
<div class="query-box">
<div class="query-box" :style="{'padding-bottom': sceneList.length > 0 ? '0px' : '10px'}">
<div v-if="!multipleSelection.length">
<div>
<el-row :gutter="30">
<el-col :span="4">
<span class="font-size-12" style="padding-right: 10px">场景</span>
<el-select size="mini" v-model="msg.WhereType" placeholder="请选择" @change="getList">
<el-popover
placement="bottom"
width="180"
popper-class="popover-class"
v-model="visible"
trigger="click">
<div data-v-16d669bb="" class="scene-container">
<div class="scene-list">
<div class="scene-list-item" :class="{'scene-list-item-select': sceneID === item.ID}" v-for="(item, index) in SceneEmployeeList" :key="index" @click="changeWhere(item)">{{item.SceneName}}</div>
</div>
<div class="handle-interval">
<div class="vux-flexbox handle-button vux-flex-row" @click="MsgBus.$emit('sceneBoxShow', 3, 1)">
<i class="el-icon-circle-plus-outline handle-button-icon"></i>
<div class="handle-button-name">新建场景</div></div>
<!-- <div class="vux-flexbox handle-button vux-flex-row">
<i class="el-icon-setting handle-button-icon"></i>
<div class="handle-button-name">管理</div></div> -->
</div>
</div>
<el-select size="mini" popper-class="select-no" slot="reference" v-model="msg.ID" placeholder="请选择">
<el-option
v-for="item in WhereTypeList"
:key="item.id"
:label="item.name"
:value="item.id">
v-for="item in SceneEmployeeList"
:key="item.ID"
:label="item.SceneName"
:value="item.ID">
</el-option>
</el-select>
</div>
</el-popover>
</el-col>
<el-col :span="4">
<el-button icon="iconfont iconshaixuan" class="crm-btn query-btn crm-btn-mini margin-right0" @click="MsgBus.$emit('sceneBoxShow', 3)">高级筛选</el-button>
</el-col>
</el-row>
</div>
<div v-else class="flex-center">
<p class="font-size-12">已选 <span class="font-color-link">{{multipleSelection.length}}</span></p>
......@@ -45,6 +71,15 @@
<el-button v-for="(item, index) in selectionList" :key="index" @click="item.myFun"><i :class="item.class"></i>{{item.name}}</el-button>
</div>
</div>
<div class="scene-wrapper" v-if="sceneList.length > 0">
<ul class="list">
<li class="list-item" v-for="(item, index) in sceneList" :key="index">
<span v-if="item.formType !== 'datetime'">{{item.str}}&nbsp;{{item.regionStr}}{{item.nameFC ? item.nameFC : item.value}}</span>
<span v-else>{{item.str}}&nbsp;{{item.start}}-{{item.end}}</span>
<i class="el-icon-close icon" @click="deleteScene(index)"></i>
</li>
</ul>
</div>
</div>
<div class="page-content">
<el-table
......@@ -62,7 +97,7 @@
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
height="660"
:height="sceneList.length > 0 ? '600' : '660'"
border
row-class-name="font-size-12"
@selection-change="handleSelectionChange">
......@@ -378,7 +413,8 @@ export default {
pageSize: 30,
ContactNumber: '',
WhereType: -1,
OrderBy: ''
OrderBy: '',
ID: 24
},
total: 0,
WhereTypeList: [
......@@ -413,7 +449,11 @@ export default {
class:'iconfont icontianjia',
myFun: this.addCust
}
]
],
sceneList: [],
SceneEmployeeList: [],
sceneID: 24,
visible: false,
};
},
mounted() {
......@@ -430,8 +470,45 @@ export default {
this.MsgBus.$on('closeaddTeamman', function (){
$this.addBusinessShow = false
})
this.GetSceneEmployeeList()
this.MsgBus.$on('sceneSave', function (msg){
$this.sceneList = [...msg]
$this.GetSceneEmployeeList()
let obj = {}
msg.forEach(element => {
obj[element.name] = element
});
$this.msg.Data = obj
$this.getList()
})
},beforeDestroy() {
this.MsgBus.$off('sceneSave');
},
methods: {
changeWhere(item){
this.msg.ID = item.ID
this.sceneID = item.ID
this.msg.Data = item.WhereData ? JSON.parse(item.WhereData) : {}
this.msg.WhereType = item.WhereType
this.visible = false
this.getList()
},
GetSceneEmployeeList(){
this.apipost('/api/Scene/GetSceneEmployeeList', {LableType: 3}, res=>{
if (res.data.resultCode == 1) {
this.SceneEmployeeList = res.data.data
}
})
},
deleteScene(index){
this.sceneList.splice(index, 1)
let obj = {}
this.sceneList.forEach(element => {
obj[element.name] = element
});
this.msg.Data = obj
this.getList()
},
checkboxT(row,index){
if(row.IsRead===0){
return 1;
......
......@@ -57,18 +57,38 @@
</el-dropdown>
</div>
</div>
<div class="query-box">
<div class="query-box" :style="{'padding-bottom': sceneList.length > 0 ? '0px' : '10px'}">
<el-row v-if="!multipleSelection.length" :gutter="30">
<el-col :span="4">
<span class="font-size-12" style="padding-right: 10px">场景</span>
<el-select size="mini" v-model="msg.WhereType" placeholder="请选择" @change="getList">
<el-popover
placement="bottom"
width="180"
popper-class="popover-class"
v-model="visible"
trigger="click">
<div data-v-16d669bb="" class="scene-container">
<div class="scene-list">
<div class="scene-list-item" :class="{'scene-list-item-select': sceneID === item.ID}" v-for="(item, index) in SceneEmployeeList" :key="index" @click="changeWhere(item)">{{item.SceneName}}</div>
</div>
<div class="handle-interval">
<div class="vux-flexbox handle-button vux-flex-row" @click="MsgBus.$emit('sceneBoxShow', 4, 1)">
<i class="el-icon-circle-plus-outline handle-button-icon"></i>
<div class="handle-button-name">新建场景</div></div>
<!-- <div class="vux-flexbox handle-button vux-flex-row">
<i class="el-icon-setting handle-button-icon"></i>
<div class="handle-button-name">管理</div></div> -->
</div>
</div>
<el-select size="mini" popper-class="select-no" slot="reference" v-model="msg.ID" placeholder="请选择">
<el-option
v-for="item in WhereTypeList"
:key="item.id"
:label="item.name"
:value="item.id">
v-for="item in SceneEmployeeList"
:key="item.ID"
:label="item.SceneName"
:value="item.ID">
</el-option>
</el-select>
</el-popover>
</el-col>
<el-col :span="4">
<span class="font-size-12" style="padding-right: 10px">客户类型</span>
......@@ -77,6 +97,9 @@
<el-option key="1" label="直客" :value="1"></el-option>
</el-select>
</el-col>
<el-col :span="4">
<el-button icon="iconfont iconshaixuan" class="crm-btn query-btn crm-btn-mini margin-right0" @click="MsgBus.$emit('sceneBoxShow', 4)">高级筛选</el-button>
</el-col>
</el-row>
<div v-else class="flex-center">
<p class="font-size-12">已选 <span class="font-color-link">{{multipleSelection.length}}</span></p>
......@@ -84,6 +107,15 @@
<el-button v-for="(item, index) in selectionList" :key="index" @click="item.myFun"><i :class="item.class"></i>{{item.name}}</el-button>
</div>
</div>
<div class="scene-wrapper" v-if="sceneList.length > 0">
<ul class="list">
<li class="list-item" v-for="(item, index) in sceneList" :key="index">
<span v-if="item.formType !== 'datetime'">{{item.str}}&nbsp;{{item.regionStr}}{{item.nameFC ? item.nameFC : item.value}}</span>
<span v-else>{{item.str}}&nbsp;{{item.start}}-{{item.end}}</span>
<i class="el-icon-close icon" @click="deleteScene(index)"></i>
</li>
</ul>
</div>
</div>
<div class="page-content">
<el-table
......@@ -101,7 +133,7 @@
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
height="660"
:height="sceneList.length > 0 ? '600' : '660'"
border
row-class-name="font-size-12"
@selection-change="handleSelectionChange">
......@@ -382,6 +414,7 @@ export default {
WhereType: -1,
OrderBy: '',
CustomerType: 0,
ID: 29,
},
total: 0,
WhereTypeList: [
......@@ -416,7 +449,11 @@ export default {
class:'iconfont icondelete',
myFun: this.deleteClue
}
]
],
sceneList: [],
SceneEmployeeList: [],
sceneID: 29,
visible: false,
};
},
mounted() {
......@@ -428,8 +465,45 @@ export default {
$this.dialogTableVisible = false
$this.guestDialogBoxShow = false
})
this.GetSceneEmployeeList()
this.MsgBus.$on('sceneSave', function (msg){
$this.sceneList = [...msg]
$this.GetSceneEmployeeList()
let obj = {}
msg.forEach(element => {
obj[element.name] = element
});
$this.msg.Data = obj
$this.getList()
})
},beforeDestroy() {
this.MsgBus.$off('sceneSave');
},
methods: {
changeWhere(item){
this.msg.ID = item.ID
this.sceneID = item.ID
this.msg.Data = item.WhereData ? JSON.parse(item.WhereData) : {}
this.msg.WhereType = item.WhereType
this.visible = false
this.getList()
},
GetSceneEmployeeList(){
this.apipost('/api/Scene/GetSceneEmployeeList', {LableType: 4}, res=>{
if (res.data.resultCode == 1) {
this.SceneEmployeeList = res.data.data
}
})
},
deleteScene(index){
this.sceneList.splice(index, 1)
let obj = {}
this.sceneList.forEach(element => {
obj[element.name] = element
});
this.msg.Data = obj
this.getList()
},
handleCommand(command){
this.CustomerId = 0
if (command === '1') {
......
......@@ -25,19 +25,45 @@
</el-dropdown>
</div>
</div>
<div class="query-box">
<div class="query-box" :style="{'padding-bottom': sceneList.length > 0 ? '0px' : '10px'}">
<div v-if="!multipleSelection.length">
<div>
<el-row :gutter="30">
<el-col :span="4">
<span class="font-size-12" style="padding-right: 10px">场景</span>
<el-select size="mini" v-model="msg.WhereType" placeholder="请选择" @change="getList">
<el-popover
placement="bottom"
width="180"
popper-class="popover-class"
v-model="visible"
trigger="click">
<div data-v-16d669bb="" class="scene-container">
<div class="scene-list">
<div class="scene-list-item" :class="{'scene-list-item-select': sceneID === item.ID}" v-for="(item, index) in SceneEmployeeList" :key="index" @click="changeWhere(item)">{{item.SceneName}}</div>
</div>
<div class="handle-interval">
<div class="vux-flexbox handle-button vux-flex-row" @click="MsgBus.$emit('sceneBoxShow', 2, 1)">
<i class="el-icon-circle-plus-outline handle-button-icon"></i>
<div class="handle-button-name">新建场景</div></div>
<!-- <div class="vux-flexbox handle-button vux-flex-row">
<i class="el-icon-setting handle-button-icon"></i>
<div class="handle-button-name">管理</div></div> -->
</div>
</div>
<el-select size="mini" popper-class="select-no" slot="reference" v-model="msg.ID" placeholder="请选择">
<el-option
v-for="item in WhereTypeList"
:key="item.id"
:label="item.name"
:value="item.id">
v-for="item in SceneEmployeeList"
:key="item.ID"
:label="item.SceneName"
:value="item.ID">
</el-option>
</el-select>
</div>
</el-popover>
</el-col>
<el-col :span="4">
<el-button icon="iconfont iconshaixuan" class="crm-btn query-btn crm-btn-mini margin-right0" @click="MsgBus.$emit('sceneBoxShow', 2)">高级筛选</el-button>
</el-col>
</el-row>
</div>
<div v-else class="flex-center">
<p class="font-size-12">已选 <span class="font-color-link">{{multipleSelection.length}}</span></p>
......@@ -45,6 +71,15 @@
<el-button v-for="(item, index) in selectionList" :key="index" @click="item.myFun"><i :class="item.class"></i>{{item.name}}</el-button>
</div>
</div>
<div class="scene-wrapper" v-if="sceneList.length > 0">
<ul class="list">
<li class="list-item" v-for="(item, index) in sceneList" :key="index">
<span v-if="item.formType !== 'datetime'">{{item.str}}&nbsp;{{item.regionStr}}{{item.nameFC ? item.nameFC : item.value}}</span>
<span v-else>{{item.str}}&nbsp;{{item.start}}-{{item.end}}</span>
<i class="el-icon-close icon" @click="deleteScene(index)"></i>
</li>
</ul>
</div>
</div>
<div class="page-content">
<el-table
......@@ -62,7 +97,7 @@
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
height="660"
:height="sceneList.length > 0 ? '600' : '660'"
border
row-class-name="font-size-12"
@selection-change="handleSelectionChange">
......@@ -87,6 +122,12 @@
<p @click="openDetails(scope)" class="font-color-link cp">{{scope.row.CustomerName}}</p>
</template>
</el-table-column>
<el-table-column
prop="SexStr"
label="性别"
v-if="queryType[9].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="ContactPhone"
label="联系人电话"
......@@ -278,6 +319,9 @@ export default {
},{
label: '创建时间',
show: true,
},{
label: '性别',
show: true,
}
],
queryType: [
......@@ -308,6 +352,9 @@ export default {
},{
label: '创建时间',
show: true,
},{
label: '性别',
show: true,
}
],
BusinessId: 0,
......@@ -338,7 +385,8 @@ export default {
pageSize: 30,
ContactNumber: '',
WhereType: -1,
OrderBy: ''
OrderBy: '',
ID: 18,
},
total: 0,
WhereTypeList: [
......@@ -369,13 +417,18 @@ export default {
class:'iconfont icondelete',
myFun: this.delete
}
]
],
sceneList: [],
SceneEmployeeList: [],
sceneID: 18,
visible: false,
};
},
mounted() {
this.userInfo = this.getLocalStorage();
this.getList()
this.Employee()
this.GetSceneEmployeeList()
let $this = this
this.MsgBus.$on('closeCustomerDialogBox', function (){
$this.dialogCustomerVisible = false
......@@ -383,8 +436,44 @@ export default {
this.MsgBus.$on('closeaddContacts', function (){
$this.dialogBusinessVisible = false
})
this.MsgBus.$on('sceneSave', function (msg){
$this.sceneList = [...msg]
$this.GetSceneEmployeeList()
let obj = {}
msg.forEach(element => {
obj[element.name] = element
});
$this.msg.Data = obj
$this.getList()
})
},beforeDestroy() {
this.MsgBus.$off('sceneSave');
},
methods: {
changeWhere(item){
this.msg.ID = item.ID
this.sceneID = item.ID
this.msg.Data = item.WhereData ? JSON.parse(item.WhereData) : {}
this.msg.WhereType = item.WhereType
this.visible = false
this.getList()
},
GetSceneEmployeeList(){
this.apipost('/api/Scene/GetSceneEmployeeList', {LableType: 2}, res=>{
if (res.data.resultCode == 1) {
this.SceneEmployeeList = res.data.data
}
})
},
deleteScene(index){
this.sceneList.splice(index, 1)
let obj = {}
this.sceneList.forEach(element => {
obj[element.name] = element
});
this.msg.Data = obj
this.getList()
},
Employee(){
let msg = {
RB_Group_id: this.userInfo.RB_Group_id,
......
......@@ -4,10 +4,10 @@
display: flex;
align-items: center;
}
.query-box .el-col-4>span{
flex: 1
.query-box .el-col-4>span.font-size-12{
flex: 1 !important;
}
.query-box .el-col-4>div{
.query-box .el-col-4>div, .query-box .el-col-4>span{
flex: 4
}
.el-table__fixed-body-wrapper table{
......
<style>
@import '../../assets/css/customerManage.css';
.vux-flexbox{
width: 100%;
text-align: left;
display: flex;
box-align: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.vux-flex-row {
box-direction: row;
box-orient: horizontal;
-webkit-box-orient: horizontal;
-ms-flex-direction: row;
flex-direction: row;
}
.el-table__fixed-body-wrapper table{
padding-bottom: 8px!important;
}
.scene-container {
position: relative;
width: 180px;
}
.scene-list{
max-height: 240px;
overflow-y: auto;
font-size: 12px;
margin-bottom: 10px;
}
.scene-list .scene-list-item{
color: #333;
padding: 10px 15px;
cursor: pointer;
background-color: #fff;
}
.scene-list .scene-list-item-select, .scene-list .scene-list-item::before {
background-color: #f7f8fa;
color: #2362fb;
}
.handle-interval{
border-top: 1px solid #efefef;
}
.handle-button{
padding: 6px 20px;
font-size: 12px;
cursor: pointer;
color: #2362fb;
}
.handle-button .handle-button-icon{
margin-right: 8px;
margin-top: 3px;
}
.handle-button .handle-button-name{
font-size: 12px;
}
.popover-class{
padding: 0 !important;
}
.select-no{
display: none;
}
.scene-wrapper{
min-height: 50px;
background: #fff;
border-top: 1px solid #e1e1e1;
font-size: 13px;
overflow-x: scroll;
color: #aaa;
margin-top: 20px;
}
.scene-wrapper .list, .scene-wrapper{
width: 100%;
display: flex;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
}
.scene-wrapper .list{
-ms-flex-negative: 0;
flex-shrink: 0;
}
.scene-wrapper .list .list-item{
height: 30px;
padding: 0 10px;
margin: 10px 15px 0 0;
border: 1px solid #e1e1e1;
border-radius: 3px;
-ms-flex-negative: 0;
flex-shrink: 0;
display: flex;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.scene-wrapper .list .list-item .icon{
margin-left: 20px;
cursor: pointer;
}
</style>
<template>
<div class="customerManage">
......@@ -27,19 +125,45 @@
</el-dropdown>
</div>
</div>
<div class="query-box">
<div class="query-box" :style="{'padding-bottom': sceneList.length > 0 ? '0px' : '10px'}">
<div v-if="!multipleSelection.length">
<div>
<el-row :gutter="30">
<el-col :span="4">
<span class="font-size-12" style="padding-right: 10px">场景</span>
<el-select size="mini" v-model="msg.WhereType" placeholder="请选择" @change="getList">
<el-popover
placement="bottom"
width="180"
popper-class="popover-class"
v-model="visible"
trigger="click">
<div data-v-16d669bb="" class="scene-container">
<div class="scene-list">
<div class="scene-list-item" :class="{'scene-list-item-select': sceneID === item.ID}" v-for="(item, index) in SceneEmployeeList" :key="index" @click="changeWhere(item)">{{item.SceneName}}</div>
</div>
<div class="handle-interval">
<div class="vux-flexbox handle-button vux-flex-row" @click="MsgBus.$emit('sceneBoxShow', 1, 1)">
<i class="el-icon-circle-plus-outline handle-button-icon"></i>
<div class="handle-button-name">新建场景</div></div>
<!-- <div class="vux-flexbox handle-button vux-flex-row">
<i class="el-icon-setting handle-button-icon"></i>
<div class="handle-button-name">管理</div></div> -->
</div>
</div>
<el-select size="mini" popper-class="select-no" slot="reference" v-model="msg.ID" placeholder="请选择">
<el-option
v-for="item in WhereTypeList"
:key="item.id"
:label="item.name"
:value="item.id">
v-for="item in SceneEmployeeList"
:key="item.ID"
:label="item.SceneName"
:value="item.ID">
</el-option>
</el-select>
</div>
</el-popover>
</el-col>
<el-col :span="4">
<el-button icon="iconfont iconshaixuan" class="crm-btn query-btn crm-btn-mini margin-right0" @click="MsgBus.$emit('sceneBoxShow', 1)">高级筛选</el-button>
</el-col>
</el-row>
</div>
<div v-else class="flex-center">
<p class="font-size-12">已选 <span class="font-color-link">{{multipleSelection.length}}</span></p>
......@@ -47,6 +171,15 @@
<el-button v-for="(item, index) in selectionList" :key="index" @click="item.myFun"><i :class="item.class"></i>{{item.name}}</el-button>
</div>
</div>
<div class="scene-wrapper" v-if="sceneList.length > 0">
<ul class="list">
<li class="list-item" v-for="(item, index) in sceneList" :key="index">
<span v-if="item.formType !== 'datetime'">{{item.str}}&nbsp;{{item.regionStr}}{{item.nameFC ? item.nameFC : item.value}}</span>
<span v-else>{{item.str}}&nbsp;{{item.start}}-{{item.end}}</span>
<i class="el-icon-close icon" @click="deleteScene(index)"></i>
</li>
</ul>
</div>
</div>
<div class="page-content">
<el-table
......@@ -64,7 +197,7 @@
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
height="660"
:height="sceneList.length > 0 ? '600' : '660'"
border
row-class-name="font-size-12"
@selection-change="handleSelectionChange">
......@@ -80,7 +213,7 @@
</template>
</el-table-column>
<el-table-column
prop="MainSourceStr"
prop="CustomerSourceTypeStr"
label="客户来源"
v-if="queryType[1].show"
show-overflow-tooltip>
......@@ -336,6 +469,7 @@ export default {
},
data() {
return {
visible: false,
queryType2: [
{
label: '客户名称',
......@@ -483,8 +617,10 @@ export default {
pageIndex: 1,
pageSize: 30,
ContactNumber: '',
WhereType: -1,
OrderBy: ''
WhereType: 1,
OrderBy: '',
Data: {},
ID: 1,
},
total: 0,
WhereTypeList: [
......@@ -545,13 +681,17 @@ export default {
// class:'iconfont iconjian',
// myFun: this.delCust,
// },
]
],
sceneList: [],
SceneEmployeeList: [],
sceneID: 1,
};
},
mounted() {
this.userInfo = this.getLocalStorage();
this.getList()
this.Employee()
this.GetSceneEmployeeList()
let $this = this
this.MsgBus.$on('closeCustomerDialogBox', function (){
$this.dialogTableVisible = false
......@@ -559,8 +699,49 @@ export default {
this.MsgBus.$on('closeaddTeamman', function (){
$this.addTeammanShow = false
})
this.MsgBus.$on('sceneSave', function (msg){
$this.sceneList = [...msg]
$this.GetSceneEmployeeList()
let obj = {}
msg.forEach(element => {
obj[element.name] = element
});
$this.msg.Data = obj
$this.getList()
})
},beforeDestroy() {
this.MsgBus.$off('sceneSave');
},
methods: {
changeWhere(item){
this.msg.ID = item.ID
this.sceneID = item.ID
this.msg.Data = item.WhereData ? JSON.parse(item.WhereData) : {}
this.msg.WhereType = item.WhereType
this.visible = false
this.getList()
},
GetSceneEmployeeList(){
this.apipost('/api/Scene/GetSceneEmployeeList', {LableType: 1}, res=>{
if (res.data.resultCode == 1) {
this.SceneEmployeeList = res.data.data
}
})
},
deleteScene(index){
this.sceneList.splice(index, 1)
let obj = {}
this.sceneList.forEach(element => {
obj[element.name] = element
});
this.msg.Data = obj
this.getList()
},
changeItem(item){
this.msg.WhereType = item.id
this.visible = false
this.getList()
},
Employee(){
let msg = {
RB_Group_id: this.userInfo.RB_Group_id,
......
......@@ -234,7 +234,7 @@
</div>
</el-col>
</el-row>
<el-row>
<el-row :gutter="30">
<el-col :span="8">
<div class="MyEditForm-item label-pad-left">
<el-form-item label="下次联系时间">
......
<style>
.sceneBox .el-form{
padding: 20px;
padding-top: 0;
}
.sceneBox .el-form--label-top .el-form-item__label{
padding: 0;
}
.sceneBox .el-form-item{
margin: 0;
}
.sceneBox .delete-btn{
margin-left: 15px;
}
.add-tj{
padding: 0 20px 20px;
}
.sceneBox .dialog-footer{
text-align: center;
}
</style>
<template>
<div class="sceneBox">
<el-form label-position="top" label-width="80px" :model="sceneMsg">
<el-form-item label="场景名称" v-if="checked || sceneType === 1">
<el-input v-model="sceneMsg.SceneName" placeholder="请输入场景名称,最多10个字符"></el-input>
</el-form-item>
<el-form-item label="筛选条件">
<el-row v-for="(item, index) in dataList" :key="index" style="margin-bottom: 15px;">
<el-col :span="8">
<el-select v-model="item.SceneIndex" placeholder="请选择要筛选的字段名" style="width: 100%;" @change="changeScene(item, index)">
<el-option v-for="(scene, sIndex) in item.sceneList" :label="scene.Name" :value="sIndex" :key="sIndex"></el-option>
</el-select>
</el-col>
<el-col :span="1">
&nbsp;
</el-col>
<!-- regionShow -->
<template v-if="item.regionS && item.regionS.length">
<el-col :span="5">
<el-select v-model="item.region" placeholder="请选择" @change="changeRegion(item, index)">
<el-option v-for="(r, rx) in item.regionS" :key="rx" :label="r.c" :value="r.n"></el-option>
</el-select>
</el-col>
<el-col :span="1">
&nbsp;
</el-col>
<el-col :span="8">
<el-input v-if="!item.Setting.length && item.nameStr !== '负责人' && item.nameStr !== '创建人'" v-model="item.SceneName" placeholder="请输入筛选条件"></el-input>
<el-select v-else-if="item.nameStr === '负责人' || item.nameStr === '创建人'" v-model="item.id" @change="changeFC(index)" placeholder="请选择" style="width: 100%;" >
<el-option
filterable
v-for="item in EmployeeList"
:label='item.EmName'
:value='item.EmployeeId'
:key='item.EmployeeId'>
</el-option>
</el-select>
<el-select v-else v-model="item.SceneName" placeholder="请选择" style="width: 100%;" >
<el-option v-for="(select, sIndex) in item.Setting" :label="select" :value="select" :key="sIndex"></el-option>
</el-select>
</el-col>
</template>
<template v-else>
<el-col :span="14">
<el-date-picker
style="width: 100%;"
v-model="item.time"
value-format="yyyy-MM-dd hh:mm:ss"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-col>
</template>
<el-col :span="1">
<i @click="deleteRow(index)" class="el-icon-error delete-btn cp"></i>
</el-col>
</el-row>
</el-form-item>
</el-form>
<div class="add-tj">
<p> <span class="font-color-link cp" @click="addRow"><i class="el-icon-circle-plus-outline"></i> 添加筛选条件</span></p>
</div>
<div class="add-tj">
<el-checkbox v-model="checked" v-if="sceneType!==1 && LableType!==6">保存为场景</el-checkbox>
</div>
<div class="add-tj" v-if="checked || sceneType === 1">
<el-checkbox v-model="sceneMsg.IsDefault" :true-label="1" :false-label="0">设为默认</el-checkbox>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" class="add-box-btn" @click="sceneAdd()">确 定</el-button>
<el-button class="add-box-btn add-box-cancel" @click="MsgBus.$emit('sceneBoxClose')">取 消</el-button>
</div>
</div>
</template>
<script>
export default {
props: ['LableType', 'sceneType'],
data(){
return{
checked: false,
sceneMsg: {
SceneName: '',
IsDefault: 0,
},
WhereDataStr: {
NextContactTime: {
start: '',
end: '',
formType: '',
name: ''
},
CustomerName: {
condition: '',
value: '',
formType: '',
name: '',
},
ContactPhone: {
condition: '',
value: '',
formType: '',
name: '',
},
Remark: {
condition: '',
value: '',
formType: '',
name: '',
},
PersonChargeId: {
condition: '',
value: '',
formType: '',
name: '',
},
CreateBy: {
condition: '',
value: '',
formType: '',
name: '',
},
ContactName: {
condition: '',
value: '',
formType: '',
name: '',
},
ContactDuty: {
condition: '',
value: '',
formType: '',
name: '',
},
IsMain: {
condition: '',
value: '',
formType: '',
name: '',
},
Sex: {
condition: '',
value: '',
formType: '',
name: '',
},
CreateTime: {
start: '',
end: '',
formType: '',
name: '',
},
UpdateTime: {
start: '',
end: '',
formType: '',
name: '',
},
LableType: 1
},
dataList: [
{
SceneName: '',
IsDefault: '',
region: '',
regionS: [],
sceneList: [],
SceneIndex: '',
Setting: [],
time: [],
WhereDataStr: {},
formType: ''
}
],
region: [],
optionsNames: [
{
c: "等于",
n: 'is',
t: "t",
},
{
c: "不等于",
n: 'isnot',
t: "t",
},
{
c: "包含",
n: "contains"
},
{
c: "不包含",
n: "not_contain"
},
{
c: '开始于',
n: 'start_with'
},
{
c: '结束于',
n: 'end_with'
},
{
c: '为空',
n: 'is_empty'
},
{
c: '不为空',
n: 'is_not_empty'
},
{
c: '等于',
n: 'eq'
},
{
c: '不等于',
n: 'neq'
},
{
c: '大于',
n: 'gt'
},
{
c: '大于等于',
n: 'egt'
},
{
c: '小于',
n: 'lt'
},
{
c: '小于等于',
n: 'elt'
},
],
sceneList: [],
regionShow: true,
userInfo: {},
EmployeeList: [],
}
},
watch: {
LableType:{
handler(val, oldVal){
this.GetSceneList()
this.dataList = [
{
SceneName: '',
IsDefault: '',
region: '',
regionS: [],
sceneList: [],
SceneIndex: '',
Setting: [],
time: [],
WhereDataStr: {},
formType: ''
}
]
},
deep:true
}
},
mounted(){
this.userInfo = this.getLocalStorage();
this.GetSceneList()
this.Employee()
},
methods:{
changeFC(index){
for(let i = 0; i < this.EmployeeList.length; i++){
if (this.EmployeeList[i].EmployeeId === this.dataList[index].id){
this.dataList[index].SceneName = this.EmployeeList[i].EmployeeId
this.dataList[index].nameFC = this.EmployeeList[i].EmName
break;
}
}
},
sceneAdd(){
let msg = {}, list = [], ok = true;
this.dataList.forEach( item =>{
if(item.formType === 'datetime') {
if(!item.time.length){
ok = false
this.$message.error('筛选内容不能为空!')
return
}
msg[item.FieldName] = {
start: item.time[0],
end: item.time[1],
formType: item.formType,
name: item.FieldName,
str: item.nameStr,
regionStr: item.regionStr
}
list.push({
start: item.time[0],
end: item.time[1],
formType: item.formType,
name: item.FieldName,
str: item.nameStr,
regionStr: item.regionStr,
nameFC: item.nameFC
})
} else {
if(!item.SceneName){
ok = false
this.$message.error('筛选内容不能为空!')
return
}
msg[item.FieldName] = {
condition: item.region,
value: item.SceneName,
formType: item.formType,
name: item.FieldName,
str: item.nameStr,
regionStr: item.regionStr
}
list.push({
condition: item.region,
value: item.SceneName,
formType: item.formType,
name: item.FieldName,
str: item.nameStr,
regionStr: item.regionStr,
nameFC: item.nameFC
})
}
})
if(ok && (this.checked || this.sceneType === 1)) {
if(this.sceneMsg.SceneName === '') {
return this.$message.error('场景名称不能为空!')
}
this.sceneMsg.WhereDataStr = msg
this.sceneMsg.LableType = this.LableType
this.apipost('/api/Scene/AddSceneEmployee', this.sceneMsg, res=>{
if (res.data.resultCode == 1) {
}
})
}
setTimeout(()=>{
this.MsgBus.$emit('sceneBoxClose')
this.MsgBus.$emit('sceneSave', list)
}, 500)
},
changeRegion(i, index){
this.optionsNames.map(x=>{
if(x.n === i.region) {
this.dataList[index].regionStr = x.c
}
})
},
changeScene(item, pIndex){
this.dataList[pIndex].regionS = this.dataList[pIndex].sceneList[item.SceneIndex].region
this.dataList[pIndex].nameStr = this.dataList[pIndex].sceneList[item.SceneIndex].Name
this.dataList[pIndex].formType = this.dataList[pIndex].sceneList[item.SceneIndex].FormType
this.dataList[pIndex].region = ''
this.dataList[pIndex].FieldName = this.dataList[pIndex].sceneList[item.SceneIndex].FieldName
this.dataList[pIndex].SceneName = ''
this.dataList[pIndex].time = []
this.region = this.sceneList[item.SceneIndex].region
if(this.dataList[pIndex].sceneList[item.SceneIndex].FormType === 'select') {
this.dataList[pIndex].Setting = this.dataList[pIndex].sceneList[item.SceneIndex].Setting
} else {
this.dataList[pIndex].Setting = []
}
this.$forceUpdate()
},
GetSceneList(){
this.apipost('/api/Scene/GetSceneList', {LableType: this.LableType}, res=>{
if (res.data.resultCode == 1) {
let arr = res.data.data
arr.map(x=>{
if (x.Name === '客户名称' || x.Name === '备注' || x.Name === '商机名称' || x.Name === '详细地址' || x.Name === '姓名' || x.Name === '地址' || x.Name === '线索名称') {
x.region = [
{
c: "等于",
n: 'is',
t: 't'
},
{
c: "不等于",
n: 'isnot',
t: 't'
},
{
c: "包含",
n: "contains"
},
{
c: "不包含",
n: "not_contain"
},
]
} else if (x.Name === '手机' || x.Name === '详细地址') {
x.region = this.optionsNames.filter(item=>{
return !item.t
})
} else if (x.Name === '负责人' || x.Name === '创建人' || x.Name === '线索来源' || x.Name === '客户来源' || x.Name === '客人级别' || x.Name === '经营场所' || x.Name === '性别' || x.Name === '是否关键决策人' || x.Name === '职务' || x.Name === '商机状态组') {
x.region = this.optionsNames.filter(item=>{
return (item.c === '等于' || item.c === '不等于') && item.t
})
} else if ( x.Name === '商机金额') {
x.region = this.optionsNames.filter(item=>{
return !item.t || item.c !== '开始于' || item.c !== '结束于'
})
}
})
this.sceneList = arr
this.dataList[0].sceneList = arr
}
})
},
addRow(){
this.dataList.push(
{
SceneName: '',
IsDefault: '',
region: '',
regionS: [],
sceneList: this.sceneList,
SceneIndex: '',
Setting: [],
time: [],
WhereDataStr: {},
formType: ''
}
)
},
deleteRow(index){
this.$confirm('您确定要删除这一条数据吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.dataList.splice(index, 1)
this.$message({
type: 'success',
message: '删除成功!'
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
Employee(){
let msg = {
RB_Group_id: this.userInfo.RB_Group_id,
BranchId:-1,
DepartmentId:0,
PostId:0,
IsLeave:0,
}
this.apipost2(
"admin_get_EmployeeGetList",
this.msg,
res => {
if (res.data.resultCode == 1) {
this.EmployeeList = res.data.data;
} else {
}
},
err => {}
);
},
}
}
</script>
\ No newline at end of file
......@@ -28,26 +28,65 @@
</el-dropdown>
</div>
</div>
<div class="query-box">
<div v-if="!multipleSelection.length">
<div>
<div class="query-box" :style="{'padding-bottom': sceneList.length > 0 ? '0px' : '10px'}">
<el-row v-if="!multipleSelection.length" :gutter="30">
<el-col :span="4">
<span class="font-size-12" style="padding-right: 10px">场景</span>
<el-select size="mini" v-model="msg.WhereType" placeholder="请选择" @change="getList">
<el-popover
placement="bottom"
width="180"
popper-class="popover-class"
v-model="visible"
trigger="click">
<div data-v-16d669bb="" class="scene-container">
<div class="scene-list">
<div class="scene-list-item" :class="{'scene-list-item-select': sceneID === item.ID}" v-for="(item, index) in SceneEmployeeList" :key="index" @click="changeWhere(item)">{{item.SceneName}}</div>
</div>
<div class="handle-interval">
<div class="vux-flexbox handle-button vux-flex-row" @click="MsgBus.$emit('sceneBoxShow', 5, 1)">
<i class="el-icon-circle-plus-outline handle-button-icon"></i>
<div class="handle-button-name">新建场景</div></div>
<!-- <div class="vux-flexbox handle-button vux-flex-row">
<i class="el-icon-setting handle-button-icon"></i>
<div class="handle-button-name">管理</div></div> -->
</div>
</div>
<el-select size="mini" popper-class="select-no" slot="reference" v-model="msg.ID" placeholder="请选择">
<el-option
v-for="item in WhereTypeList"
:key="item.id"
:label="item.name"
:value="item.id">
v-for="item in SceneEmployeeList"
:key="item.ID"
:label="item.SceneName"
:value="item.ID">
</el-option>
</el-select>
</div>
</div>
</el-popover>
</el-col>
<el-col :span="4">
<span class="font-size-12" style="padding-right: 10px">客户类型</span>
<el-select size="mini" v-model="msg.CustomerType" placeholder="请选择" @change="getList">
<el-option key="0" label="客户" :value="0"></el-option>
<el-option key="1" label="直客" :value="1"></el-option>
</el-select>
</el-col>
<el-col :span="4">
<el-button icon="iconfont iconshaixuan" class="crm-btn query-btn crm-btn-mini margin-right0" @click="MsgBus.$emit('sceneBoxShow', 5)">高级筛选</el-button>
</el-col>
</el-row>
<div v-else class="flex-center">
<p class="font-size-12">已选 <span class="font-color-link">{{multipleSelection.length}}</span></p>
<div class="selection-box">
<el-button v-for="(item, index) in selectionList" :key="index" @click="item.myFun"><i :class="item.class"></i>{{item.name}}</el-button>
</div>
</div>
<div class="scene-wrapper" v-if="sceneList.length > 0">
<ul class="list">
<li class="list-item" v-for="(item, index) in sceneList" :key="index">
<span v-if="item.formType !== 'datetime'">{{item.str}}&nbsp;{{item.regionStr}}{{item.nameFC ? item.nameFC : item.value}}</span>
<span v-else>{{item.str}}&nbsp;{{item.start}}-{{item.end}}</span>
<i class="el-icon-close icon" @click="deleteScene(index)"></i>
</li>
</ul>
</div>
</div>
<div class="page-content">
<el-table
......@@ -65,7 +104,7 @@
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
height="660"
:height="sceneList.length > 0 ? '600' : '660'"
border
row-class-name="font-size-12"
@selection-change="handleSelectionChange">
......@@ -100,6 +139,13 @@
v-if="queryType[3].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CustomerLevelStr"
label="客户级别"
width="120"
v-if="queryType[24].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="TraveNum"
label="参团数"
......@@ -128,6 +174,98 @@
v-if="queryType[8].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Birthday"
label="生日"
width="120"
sortable
v-if="queryType[13].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="MarriageStr"
label="是否结婚"
sortable
v-if="queryType[14].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop=" Duty"
label="职务"
sortable
v-if="queryType[15].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="IsHightSchool"
label="是否高中生"
sortable
width="120"
v-if="queryType[16].show"
show-overflow-tooltip>
<template slot-scope="scope">
<p>{{scope.row.IsHightSchool === 1 ? '是': '否'}}</p>
</template>
</el-table-column>
<el-table-column
prop=" IdCard"
label="身份证"
sortable
v-if="queryType[17].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="PassportNo"
label="护照号"
sortable
v-if="queryType[18].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="PassportAddress"
label="护照签发地"
width="120"
sortable
v-if="queryType[19].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="PassportIssuedStr"
label="护照签发日期"
width="120"
sortable
v-if="queryType[20].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="PassportExpiryStr"
label="护照过期时间"
width="120"
sortable
v-if="queryType[21].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="IssuingAuthority"
label="签发机关"
sortable
v-if="queryType[22].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Birthday"
label="余额"
sortable
v-if="queryType[13].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Birthday"
label="余额"
sortable
v-if="queryType[13].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CustomerLevelStr"
label="客户等级"
......@@ -135,6 +273,13 @@
v-if="queryType[7].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Remarks"
label="备注"
sortable
v-if="queryType[23].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="UpdateDate"
label="最后更新时间"
......@@ -271,7 +416,8 @@ export default {
},{
label: '参团数',
show: true,
},{
}
,{
label: '商机数',
show: true,
},{
......@@ -295,6 +441,51 @@ export default {
},{
label: '创建人',
show: true,
},{
label: '生日',
show: true,
},{
label: '是否结婚',
show: true,
}
,{
label: '职务',
show: true,
}
,{
label: '是否高中生',
show: true,
}
,{
label: '身份证',
show: true,
}
,{
label: '护照号',
show: true,
}
,{
label: '护照签发地',
show: true,
}
,{
label: '护照签发日期',
show: true,
}
,{
label: '护照过期时间',
show: true,
}
,{
label: '签发机关',
show: true,
}
,{
label: '备注',
show: true,
},{
label: '客户等级',
show: true,
}
],
queryType: [
......@@ -337,6 +528,51 @@ export default {
},{
label: '创建人',
show: true,
},{
label: '生日',
show: true,
},{
label: '是否结婚',
show: true,
}
,{
label: '职务',
show: true,
}
,{
label: '是否高中生',
show: true,
}
,{
label: '身份证',
show: true,
}
,{
label: '护照号',
show: true,
}
,{
label: '护照签发地',
show: true,
}
,{
label: '护照签发日期',
show: true,
}
,{
label: '护照过期时间',
show: true,
}
,{
label: '签发机关',
show: true,
}
,{
label: '备注',
show: true,
},{
label: '客户等级',
show: true,
}
],
CustomerId: 0,
......@@ -362,7 +598,8 @@ export default {
pageSize: 30,
ContactNumber: '',
WhereType: -1,
OrderBy: ''
OrderBy: '',
ID: 36
},
total: 0,
WhereTypeList: [
......@@ -390,7 +627,11 @@ export default {
class:'iconfont icondelete',
myFun: this.delete
},
]
],
sceneList: [],
SceneEmployeeList: [],
sceneID: 36,
visible: false,
};
},
mounted() {
......@@ -401,8 +642,53 @@ export default {
this.MsgBus.$on('closeCustomerDialogBox', function (){
$this.dialogTableVisible = false
})
this.GetSceneEmployeeList()
this.MsgBus.$on('sceneSave', function (msg){
$this.sceneList = [...msg]
$this.GetSceneEmployeeList()
let obj = {}
msg.forEach(element => {
obj[element.name] = element
});
$this.msg.Data = obj
$this.getList()
})
},beforeDestroy() {
this.MsgBus.$off('sceneSave');
},
methods: {
changeWhere(item){
this.msg.ID = item.ID
this.sceneID = item.ID
this.msg.Data = item.WhereData ? JSON.parse(item.WhereData) : {}
this.msg.WhereType = item.WhereType
this.visible = false
this.getList()
},
GetSceneEmployeeList(){
this.apipost('/api/Scene/GetSceneEmployeeList', {LableType: 5}, res=>{
if (res.data.resultCode == 1) {
this.SceneEmployeeList = res.data.data
}
})
},
deleteScene(index){
this.sceneList.splice(index, 1)
let obj = {}
this.sceneList.forEach(element => {
obj[element.name] = element
});
this.msg.Data = obj
this.getList()
},
getMarriageStr(type){
if (type === 5) return '其他'
if (type === 4) return '丧偶'
if (type === 3) return '未婚'
if (type === 2) return '离婚'
if (type === 1) return '已婚'
if (type === 0) return '无'
},
Employee(){
let msg = {
RB_Group_id: this.userInfo.RB_Group_id,
......
......@@ -7,7 +7,7 @@
<div class="content" style="margin-top:0;">
<el-card class="blue">
<div slot="header" class="clearfix">
<span>报名统计</span>
<span>订单统计</span>
</div>
<orders v-if="isLoaded" :scaleData="scaleData" />
</el-card>
......@@ -56,17 +56,17 @@
<el-col :span="12" size="30">
推荐解答
</el-col>
<el-col :span="12" class="right-title">
<!-- <el-col :span="12" class="right-title">
<i class="iconfont icondianzan1"></i> 点赞
</el-col>
</el-col> -->
</el-row>
</div>
<div class="situ">
<div class="c">根据对客户年龄段的统计可以,更好的了解不同年龄段客人的喜好,消费能力的判读,从而快速的推荐团队给客人等等等</div>
<div class="bot" @click="drawer = true">
<!-- <div class="bot" @click="drawer = true">
查看更多,参与讨论(19)
<i class="el-icon-d-arrow-right"></i>
</div>
</div> -->
</div>
</el-card>
</div>
......
......@@ -89,7 +89,7 @@
<el-col :span="10" class="left">
<el-card class="blue">
<div slot="header" class="clearfix">
<span>报名统计</span>
<span style="color: #303133">报名统计</span>
</div>
<el-row :gutter="80" style="height: 100%;">
<el-col :span="24" style="height: 100%;">
......
......@@ -139,17 +139,17 @@
<el-col :span="12" size="30">
推荐解答
</el-col>
<el-col :span="12" class="right-title">
<!-- <el-col :span="12" class="right-title">
<i class="iconfont icondianzan1"></i> 点赞
</el-col>
</el-col> -->
</el-row>
</div>
<div class="situ">
<div class="c">根据对客户年龄段的统计可以,更好的了解不同年龄段客人的喜好,消费能力的判读,从而快速的推荐团队给客人等等等</div>
<div class="bot" @click="drawer = true">
<!-- <div class="bot" @click="drawer = true">
查看更多,参与讨论(19)
<i class="el-icon-d-arrow-right"></i>
</div>
</div> -->
</div>
</el-card>
</div>
......
......@@ -86,7 +86,7 @@
<el-col :span="16" class="left">
<el-card class="blue">
<div slot="header" class="clearfix">
<span>性别统计</span>
<span>订单统计</span>
</div>
<el-row :gutter="80" style="height: 100%;">
<el-col :span="10" class="img">
......@@ -146,17 +146,17 @@
<el-col :span="12" size="30">
推荐解答
</el-col>
<el-col :span="12" class="right-title">
<!-- <el-col :span="12" class="right-title">
<i class="iconfont icondianzan1"></i> 点赞
</el-col>
</el-col> -->
</el-row>
</div>
<div class="situ">
<div class="c">根据对客户年龄段的统计可以,更好的了解不同年龄段客人的喜好,消费能力的判读,从而快速的推荐团队给客人等等等</div>
<div class="bot" @click="drawer = true">
<!-- <div class="bot" @click="drawer = true">
查看更多,参与讨论(19)
<i class="el-icon-d-arrow-right"></i>
</div>
</div> -->
</div>
</el-card>
</el-col>
......
......@@ -89,7 +89,7 @@
<el-col :span="16" class="left">
<el-card class="blue">
<div slot="header" class="clearfix">
<span>出游类型统计</span>
<span>订单统计</span>
</div>
<el-row :gutter="80" style="height: 100%;">
<el-col :span="10" class="img">
......
......@@ -24,11 +24,22 @@
</el-dropdown>
</div>
</div>
<div class="query-box">
<div v-if="!multipleSelection.length">
<div>
<div class="query-box" :style="{'padding-bottom': sceneList.length > 0 ? '0px' : '10px'}">
<el-row v-if="!multipleSelection.length" :gutter="30">
<el-col :span="4">
<span class="font-size-12" style="padding-right: 10px">场景</span>
<el-select size="mini" v-model="msg.WhereType" placeholder="请选择">
<el-popover
placement="bottom"
width="180"
popper-class="popover-class"
v-model="visible"
trigger="click">
<div data-v-16d669bb="" class="scene-container">
<div class="scene-list">
<div class="scene-list-item" :class="{'scene-list-item-select': sceneID === item.id}" v-for="(item, index) in WhereTypeList" :key="index" @click="changeWhere(item)">{{item.name}}</div>
</div>
</div>
<el-select size="mini" popper-class="select-no" slot="reference" v-model="msg.WhereType" placeholder="请选择">
<el-option
v-for="item in WhereTypeList"
:key="item.id"
......@@ -36,14 +47,34 @@
:value="item.id">
</el-option>
</el-select>
</div>
</div>
</el-popover>
</el-col>
<el-col :span="4">
<span class="font-size-12" style="padding-right: 10px">客户类型</span>
<el-select size="mini" v-model="msg.CustomerType" placeholder="请选择" @change="getList">
<el-option key="0" label="客户" :value="0"></el-option>
<el-option key="1" label="直客" :value="1"></el-option>
</el-select>
</el-col>
<el-col :span="4">
<el-button icon="iconfont iconshaixuan" class="crm-btn query-btn crm-btn-mini margin-right0" @click="MsgBus.$emit('sceneBoxShow', 6)">高级筛选</el-button>
</el-col>
</el-row>
<div v-else class="flex-center">
<p class="font-size-12">已选 <span class="font-color-link">{{multipleSelection.length}}</span></p>
<div class="selection-box">
<el-button v-for="(item, index) in selectionList" :key="index" @click="item.myFun"><i :class="item.class"></i>{{item.name}}</el-button>
</div>
</div>
<div class="scene-wrapper" v-if="sceneList.length > 0">
<ul class="list">
<li class="list-item" v-for="(item, index) in sceneList" :key="index">
<span v-if="item.formType !== 'datetime'">{{item.str}}&nbsp;{{item.regionStr}}{{item.nameFC ? item.nameFC : item.value}}</span>
<span v-else>{{item.str}}&nbsp;{{item.start}}-{{item.end}}</span>
<i class="el-icon-close icon" @click="deleteScene(index)"></i>
</li>
</ul>
</div>
</div>
<div class="page-content">
<el-table
......@@ -77,7 +108,7 @@
</template>
</el-table-column>
<el-table-column
prop="MainSourceStr"
prop="CustomerSourceTypeStr"
label="客户来源"
v-if="queryType[1].show"
show-overflow-tooltip>
......@@ -179,13 +210,13 @@
width="120"
show-overflow-tooltip>
</el-table-column>
<el-table-column
<!-- <el-table-column
prop="NowSellName"
label="负责人"
width="120"
v-if="queryType[15].show"
show-overflow-tooltip>
</el-table-column>
</el-table-column> -->
<el-table-column
prop="Visit"
label="近期约访"
......@@ -430,7 +461,7 @@ export default {
pageSize: 30,
ContactNumber: '',
WhereType: -1,
OrderBy: ''
OrderBy: '',
},
total: 0,
WhereTypeList: [
......@@ -465,7 +496,11 @@ export default {
class:'iconfont icondelete',
myFun: this.delete
}
]
],
sceneList: [],
SceneEmployeeList: [],
sceneID: -1,
visible: false,
};
},
mounted() {
......@@ -476,8 +511,45 @@ export default {
this.MsgBus.$on('closeaddTeamman', function (){
$this.addTeammanShow = false
})
this.GetSceneEmployeeList()
this.MsgBus.$on('sceneSave', function (msg){
$this.sceneList = [...msg]
$this.GetSceneEmployeeList()
let obj = {}
msg.forEach(element => {
obj[element.name] = element
});
$this.msg.Data = obj
$this.getList()
})
},beforeDestroy() {
this.MsgBus.$off('sceneSave');
},
methods: {
changeWhere(item){
this.msg.ID = item.ID
this.sceneID = item.ID
this.msg.Data = item.WhereData ? JSON.parse(item.WhereData) : {}
this.msg.WhereType = item.WhereType
this.visible = false
this.getList()
},
GetSceneEmployeeList(){
this.apipost('/api/Scene/GetSceneEmployeeList', {LableType: 6}, res=>{
if (res.data.resultCode == 1) {
this.SceneEmployeeList = res.data.data
}
})
},
deleteScene(index){
this.sceneList.splice(index, 1)
let obj = {}
this.sceneList.forEach(element => {
obj[element.name] = element
});
this.msg.Data = obj
this.getList()
},
Employee(){
let msg = {
RB_Group_id: this.userInfo.RB_Group_id,
......
......@@ -13,16 +13,23 @@ export default {
Vue.prototype.domainManager = function () {
let domainUrl = "http://crm.oytour.com"
let locationName = window.location.hostname;
let domainPostUrl = "http://testapi.oytour.com"
if (this.isOnline()) {
if (window.location.host.indexOf('testb2b.oytour.com') != -1)
if (window.location.host.indexOf('crmyx.oytour.com') != -1)
{
domainUrl = "http://crm.oytour.com"
else if (window.location.host.indexOf('oytour.com') != -1)
domainPostUrl = "http://reborn.oytour.com"
}
else
{
domainUrl = "http://crm.oytour.com"
domainPostUrl = "http://testapi.oytour.com"
}
}
var obj = {
//主地址
DomainUrl: domainUrl,
DownLoadContractUrl: "http://testapi.oytour.com" ,
DownLoadContractUrl: domainPostUrl ,
//阿里服务器地址
AliUrl: "https://reborndev.oss-cn-hangzhou.aliyuncs.com",
//本站文件流下载地址
......@@ -35,7 +42,7 @@ export default {
GoogleMapImageUrl: "http://imgfile.oytour.com",
//常用提交数据URL
PostUrl: domainUrl,
PostUrl2: "http://testapi.oytour.com/api/common/post",
PostUrl2: domainPostUrl + "/api/common/post",
javaUrl: locationName.indexOf('testb2b') == -1 ? "http://efficient.oytour.com" : locationName.indexOf('testb2b.oytour.com') !== -1 ? "http://47.96.12.235:9001" : "http://192.168.2.215:9000",
ViittoFileUrl: locationName.indexOf('oytour') !== -1 || locationName.indexOf('testb2b.oytour.com') !== -1 ? "http://staticfile.oytour.com" : 'http://192.168.2.214:8130',
UploadUrl: locationName.indexOf('oytour') !== -1 || locationName.indexOf('testb2b.oytour.com') !== -1 ? "http://uploadfile.oytour.com" : "http://192.168.2.214:8130",
......
......@@ -65,6 +65,9 @@
.el-image-viewer__wrapper{
z-index: 10086 !important;
}
.add-scene .el-dialog__body{
padding-top: 20px;
}
</style>
<template>
<div class="main">
......@@ -167,6 +170,14 @@
:before-close="handleClose">
<businessInfoBox :BusinessId="BusinessId" :BusinessIdCustomerId="BusinessIdCustomerId" @transferS="busTransfer" @watersS="busWaters" @editCustbusiness="editCustbusiness"/>
</el-drawer>
<!-- 高级筛选 -->
<el-dialog :visible.sync="sceneShow" :close-on-click-modal="false" width="800px" custom-class="transfer-box add-box add-box2 add-scene">
<div class="add-tit" slot="title">
<p><span></span>新建场景</p>
<span icon="el-icon-close"></span>
</div>
<sceneBox :LableType="LableType" :sceneType="sceneType"/>
</el-dialog>
</div>
</template>
<script>
......@@ -184,10 +195,14 @@ import singleContract from '../components/contractManagement/singleContract'
import TravelContractView from '../components/contractManagement/TravelContractView'
import contractInfoBox from '../components/contractManagement/contractInfoBox'
import businessInfoBox from "../components/businessManagement/businessInfoBox";
import sceneBox from "../components/dialogModel/sceneBox"
export default {
components: {HomeNavLeft, HomeNavTop, addBusinessBox, customerDialogBox, customerInfoBox, clueBox, clueDialogBox, ElImageViewer, domesticTravelcontract, onedayTripContract, singleContract, TravelContractView, contractInfoBox, businessInfoBox},
components: {HomeNavLeft, HomeNavTop, addBusinessBox, customerDialogBox, customerInfoBox, clueBox, clueDialogBox, ElImageViewer, domesticTravelcontract, onedayTripContract, singleContract, TravelContractView, contractInfoBox, businessInfoBox, sceneBox},
data () {
return {
sceneType: 0,
LableType: 1,
sceneShow: false,
dialogBusinessVisibleName: '新建商机',
BusinessId: 0,
BusinessIdCustomerId: 0,
......@@ -297,8 +312,19 @@ export default {
$this.BusinessId = ID
$this.BusinessIdCustomerId = BusinessIdCustomerId
})
this.MsgBus.$on('sceneBoxShow', function (type, sceneType){
$this.LableType = type
$this.sceneType = sceneType
$this.sceneShow = true
})
this.MsgBus.$on('sceneBoxClose', function (){
$this.sceneShow = false
})
},
methods: {
sceneAdd(){
},
editCustbusiness(){
this.dialogBusinessVisibleName = '修改商机'
this.dialogBusinessVisible = true
......
......@@ -128,7 +128,7 @@ export default {
var msg = {
EmAccount: this.account,
EmPassword: this.pwd,
Domain: 'crmtesterp.oytour.com'
Domain: 'fcrmyx.oytour.com'
};
this.apipost('/api/Login/UserLogin', msg, res=>{
var jsonData = res.data;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment