Commit 5e1efea0 authored by 华国豪's avatar 华国豪 🙄

新增很多页面

parent 726d4d10
......@@ -229,3 +229,7 @@ textarea{
color: rgba(13, 36, 129, 1);
background-color: white;
}
.MyEditForm-item .el-input.is-disabled .el-input__inner{
background-color: white;
border-color: white;
}
\ No newline at end of file
......@@ -91,7 +91,8 @@ export default {
},
{
class: "iconfont icondaiban",
name: "待办事项"
name: "待办事项",
path: '/waitMatter'
},
{
class: "iconfont iconxiansuo",
......@@ -110,7 +111,8 @@ export default {
},
{
class: "iconfont icongonghaiguanli",
name: "公海"
name: "公海",
path: '/watersManagement'
},
{
class: "iconfont iconshangji",
......
......@@ -390,7 +390,7 @@
<div class="content-item font-color-info" :key="subIndex" v-if="!subItem.CustomerFollowUpModel">
<i class="iconfont iconcompany"></i>
<div class="content">
<p class="content-ea"><span>{{subItem.UpdateDate.replace('T', ' ')}}</span> <span> {{subItem.LogInfo}}</span></p>
<p class="content-ea"><span>{{subItem.UpdateDate}}</span> <span> {{subItem.LogInfo}}</span></p>
</div>
</div>
<div class="content-item" v-else :key="subIndex" >
......@@ -402,7 +402,7 @@
</div>
<div>
<p>{{subItem.CustomerFollowUpModel.CreateByStr}}</p>
<p class="font-color-info">{{subItem.UpdateDate.replace('T', ' ')}}</p>
<p class="font-color-info">{{subItem.UpdateDate}}</p>
</div>
<div class="tag">
<span>{{subItem.CustomerFollowUpModel.FollowUpTypeStr}}</span>
......@@ -424,7 +424,7 @@
</p>
</div>
</div>
<p> <span class="font-color-info">下次联系时间:</span> <span>{{subItem.CustomerFollowUpModel.NextContactDate.replace('T', ' ')}}</span></p>
<p> <span class="font-color-info">下次联系时间:</span> <span>{{subItem.CustomerFollowUpModel.NextContactDate}}</span></p>
</div>
</div>
</div>
......
......@@ -3,26 +3,76 @@
</style>
<template>
<div class="Business">
Business
<div class="add-Enclosure">
<el-button icon="el-icon-plus" class="crm-btn query-btn crm-btn-mini margin-right0" @click="addBusiness">新建商机</el-button>
</div>
<el-table
v-loading="loading"
stripe
ref="multipleTable"
:data="dataList"
tooltip-effect="dark"
style="width: 100%"
row-class-name="font-size-12">
<el-table-column
prop="BusinessName"
label="商机名称"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="BudgetPrice"
label="商机金额"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CustomerName"
label="客户名称"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="BusinessStatusStr"
label="商机阶段"
show-overflow-tooltip>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
props:{
},
props: ['ID', 'BusinessType'],
data() {
return {
dataList: [],
loading: false
};
},watch:{
},
mounted() {
this.GetBusinessList()
},
methods: {
GetBusinessList(){
this.apipost('/api/Customer/GetBusinessList', {CustomerId: this.ID}, res=>{
if (res.data.resultCode == 1) {
console.log(res.data.data)
this.dataList = res.data.data
} else {
this.$message.error(res.data.message);
}
})
},
addBusiness(){
let $this= this
this.MsgBus.$emit('addBusinessBoxOpen', $this.ID, 0)
},
guanlian(){
},
jiechuguanlian(){
},
}
}
</script>
\ No newline at end of file
......@@ -126,7 +126,7 @@
更新时间:
</el-col>
<el-col :span="14">
{{detailsData.UpdateTime ? detailsData.UpdateTime.replace('T', ' ') : detailsData.UpdateTime}}
{{detailsData.UpdateTime ? detailsData.UpdateTime : detailsData.UpdateTime}}
</el-col>
</el-row>
</el-col>
......@@ -149,7 +149,7 @@
创建时间:
</el-col>
<el-col :span="14">
{{detailsData.CreateTime ? detailsData.CreateTime.replace('T', ' ') : detailsData.CreateTime }}
{{detailsData.CreateTime ? detailsData.CreateTime : detailsData.CreateTime }}
</el-col>
</el-row>
</el-col>
......
......@@ -70,7 +70,7 @@
<div class="Record" id="Record">
<div class="ha-cont" style="justify-content: flex-start; align-items: stretch;" v-for="(item, index) in logList" :key="index">
<div class="ha-circle"></div>
<div class="ha-time">{{item.UpdateDate.replace('T', ' ')}}</div>
<div class="ha-time">{{item.UpdateDate}}</div>
<!-- <div class="ha-name">admin</div> -->
<div class="ha-content">
<p data-v-0d9b8f7a="">{{item.LogInfo}}</p>
......
......@@ -100,7 +100,7 @@
<span class="info-lable">负责人:</span><span>{{detailsData.Contact}}</span>
</el-col>
<el-col :span="12">
<span class="info-lable">更新时间:</span><span>{{detailsData.UpdateTime ? detailsData.UpdateTime.replace('T', ' ') : ''}}</span>
<span class="info-lable">更新时间:</span><span>{{detailsData.UpdateTime ? detailsData.UpdateTime : ''}}</span>
</el-col>
</el-row>
</div>
......@@ -119,7 +119,7 @@
<TeamMembers v-if="activeName === '4'" :CustomerId="CustomerId"/>
</el-tab-pane>
<el-tab-pane label="商机" name="5">
<Business />
<Business v-if="activeName === '5'" :ID="CustomerId"/>
</el-tab-pane>
<el-tab-pane label="合同" name="6">
<Agreement />
......
......@@ -387,7 +387,7 @@
<div class="content-item font-color-info" :key="subIndex" v-if="!subItem.CustomerFollowUpModel">
<i class="iconfont iconcompany"></i>
<div class="content">
<p class="content-ea"><span>{{subItem.UpdateDate.replace('T', ' ')}}</span> <span> {{subItem.LogInfo}}</span></p>
<p class="content-ea"><span>{{subItem.UpdateDate}}</span> <span> {{subItem.LogInfo}}</span></p>
</div>
</div>
<div class="content-item" v-else :key="subIndex" >
......@@ -399,7 +399,7 @@
</div>
<div>
<p>{{subItem.CustomerFollowUpModel.CreateByStr}}</p>
<p class="font-color-info">{{subItem.UpdateDate.replace('T', ' ')}}</p>
<p class="font-color-info">{{subItem.UpdateDate}}</p>
</div>
<div class="tag">
<span>{{subItem.CustomerFollowUpModel.FollowUpTypeStr}}</span>
......@@ -420,7 +420,7 @@
</p>
</div>
</div>
<p> <span class="font-color-info">下次联系时间:</span> <span>{{subItem.CustomerFollowUpModel.NextContactDate.replace('T', ' ')}}</span></p>
<p> <span class="font-color-info">下次联系时间:</span> <span>{{subItem.CustomerFollowUpModel.NextContactDate}}</span></p>
</div>
</div>
</div>
......
......@@ -206,6 +206,7 @@ export default {
},
addContactsOk(){
this.GetContactByBusinessID()
this.getGLcustomerList()
},
SetFirstContact(scope){
this.apipost('/api/Customer/SetBusinessFirstContact', {BusinessID: this.BusinessId, ID: scope.row.ID}, res=>{
......
......@@ -63,7 +63,7 @@
<div class="Record" id="Record">
<div class="ha-cont" style="justify-content: flex-start; align-items: stretch;" v-for="(item, index) in logList" :key="index">
<div class="ha-circle"></div>
<div class="ha-time">{{item.UpdateDate.replace('T', ' ')}}</div>
<div class="ha-time">{{item.UpdateDate}}</div>
<div class="ha-content">
<p>{{item.LogInfo}}</p>
</div>
......
......@@ -151,7 +151,7 @@
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="客户名称" prop="CustomerId">
<el-select v-model="form.CustomerId" filterable placeholder="请选择客户">
<el-select v-model="form.CustomerId" :disabled="type==='1' ? true : false" placeholder="请选择客户">
<el-option
v-for="item in CustomerList"
:key="item.CustomerId"
......@@ -249,16 +249,7 @@
</template>
<script>
export default {
props:{
ID: {
type: Number,
default: 0
},
name: {
type: String,
default: '新建商机'
}
},
props:['ID', 'name', 'CustomerId', 'ContactId', 'type'],
data() {
return {
CustomerList: [],
......@@ -315,6 +306,12 @@ export default {
console.log(val)
},
deep:true
},
CustomerId: {
handler(val, oldVal){
console.log(val)
},
deep:true
}
},
mounted() {
......@@ -322,6 +319,9 @@ export default {
this.getLineList()
this.GetBusinessStatusEnum()
let $this = this
if (this.CustomerId!==0) {
this.form.CustomerId = this.CustomerId
}
setTimeout(()=>{
$this.dialogTableVisible = true
},50)
......@@ -382,12 +382,13 @@ export default {
this.dialogTableVisible = false;
// 有id 发送更新抽屉消息
if(this.CustomerId !== 0) {
this.$message.success('修改商机成功');
this.$message.success('操作成功');
this.MsgBus.$emit('RefreshInfoBox')
} else {
this.$message.success('新建商机成功');
this.$message.success('操作成功');
}
this.$emit('getList')
this.MsgBus.$emit('RefreshbusSelect')
this.resetForm("form");
} else {
this.$message.error(res.data.message);
......
......@@ -114,7 +114,7 @@
创建时间:
</el-col>
<el-col :span="14">
{{detailsData.CreateTime ? detailsData.CreateTime.replace('T', ' ') : detailsData.CreateTime}}
{{detailsData.CreateTime ? detailsData.CreateTime : detailsData.CreateTime}}
</el-col>
</el-row>
</el-col>
......@@ -126,7 +126,7 @@
更新时间:
</el-col>
<el-col :span="14">
{{detailsData.UpdateTime ? detailsData.UpdateTime.replace('T', ' ') : detailsData.UpdateTime}}
{{detailsData.UpdateTime ? detailsData.UpdateTime : detailsData.UpdateTime}}
</el-col>
</el-row>
</el-col>
......
......@@ -363,7 +363,7 @@
<div class="content-item font-color-info" :key="subIndex" v-if="!subItem.CustomerFollowUpModel">
<i class="iconfont iconcompany"></i>
<div class="content">
<p class="content-ea"><span>{{subItem.UpdateDate.replace('T', ' ')}}</span> <span> {{subItem.LogInfo}}</span></p>
<p class="content-ea"><span>{{subItem.UpdateDate}}</span> <span> {{subItem.LogInfo}}</span></p>
</div>
</div>
<div class="content-item" v-else :key="subIndex" >
......@@ -375,7 +375,7 @@
</div>
<div>
<p>{{subItem.CustomerFollowUpModel.CreateByStr}}</p>
<p class="font-color-info">{{subItem.UpdateDate.replace('T', ' ')}}</p>
<p class="font-color-info">{{subItem.UpdateDate}}</p>
</div>
<div class="tag">
<span>{{subItem.CustomerFollowUpModel.FollowUpTypeStr}}</span>
......@@ -396,7 +396,7 @@
</p>
</div>
</div>
<p> <span class="font-color-info">下次联系时间:</span> <span>{{subItem.CustomerFollowUpModel.NextContactDate.replace('T', ' ')}}</span></p>
<p> <span class="font-color-info">下次联系时间:</span> <span>{{subItem.CustomerFollowUpModel.NextContactDate}}</span></p>
</div>
</div>
</div>
......
......@@ -126,7 +126,7 @@
更新时间:
</el-col>
<el-col :span="14">
{{detailsData.UpdateTime ? detailsData.UpdateTime.replace('T', ' ') : detailsData.UpdateTime}}
{{detailsData.UpdateTime ? detailsData.UpdateTime : detailsData.UpdateTime}}
</el-col>
</el-row>
</el-col>
......@@ -149,7 +149,7 @@
创建时间:
</el-col>
<el-col :span="14">
{{detailsData.CreateTime ? detailsData.CreateTime.replace('T', ' ') : detailsData.CreateTime }}
{{detailsData.CreateTime ? detailsData.CreateTime : detailsData.CreateTime }}
</el-col>
</el-row>
</el-col>
......
......@@ -37,7 +37,7 @@
label="上传时间"
show-overflow-tooltip>
<template slot-scope="scope">
<span class="cfont-color-info">{{scope.row.CreateTime.replace('T', ' ')}}</span>
<span class="cfont-color-info">{{scope.row.CreateTime}}</span>
</template>
</el-table-column>
<el-table-column
......
......@@ -70,7 +70,7 @@
<div class="Record" id="Record">
<div class="ha-cont" style="justify-content: flex-start; align-items: stretch;" v-for="(item, index) in logList" :key="index">
<div class="ha-circle"></div>
<div class="ha-time">{{item.UpdateDate.replace('T', ' ')}}</div>
<div class="ha-time">{{item.UpdateDate}}</div>
<!-- <div class="ha-name">admin</div> -->
<div class="ha-content">
<p data-v-0d9b8f7a="">{{item.LogInfo}}</p>
......
......@@ -129,7 +129,7 @@
v-if="queryType[7].show"
show-overflow-tooltip>
<template slot-scope="scope">
<span>{{scope.row.UpdateTime.replace('T', ' ')}}</span>
<span>{{scope.row.UpdateTime}}</span>
</template>
</el-table-column>
<el-table-column
......
......@@ -97,7 +97,7 @@
<span class="info-lable">负责人:</span><span>{{detailsData.Contact}}</span>
</el-col>
<el-col :span="12">
<span class="info-lable">更新时间:</span><span>{{detailsData.UpdateTime.replace('T', ' ')}}</span>
<span class="info-lable">更新时间:</span><span>{{detailsData.UpdateTime}}</span>
</el-col>
</el-row>
</div>
......
......@@ -370,7 +370,7 @@
<div class="content-item font-color-info" :key="subIndex" v-if="!subItem.CustomerFollowUpModel">
<i class="iconfont iconcompany"></i>
<div class="content">
<p class="content-ea"><span>{{subItem.UpdateDate.replace('T', ' ')}}</span> <span> {{subItem.LogInfo}}</span></p>
<p class="content-ea"><span>{{subItem.UpdateDate}}</span> <span> {{subItem.LogInfo}}</span></p>
</div>
</div>
<div class="content-item" v-else :key="subIndex" >
......@@ -382,7 +382,7 @@
</div>
<div>
<p>{{subItem.CustomerFollowUpModel.CreateByStr}}</p>
<p class="font-color-info">{{subItem.UpdateDate.replace('T', ' ')}}</p>
<p class="font-color-info">{{subItem.UpdateDate}}</p>
</div>
<div class="tag">
<span>{{subItem.CustomerFollowUpModel.FollowUpTypeStr}}</span>
......@@ -404,7 +404,7 @@
</p>
</div>
</div>
<p> <span class="font-color-info">下次联系时间:</span> <span>{{subItem.CustomerFollowUpModel.NextContactDate.replace('T', ' ')}}</span></p>
<p> <span class="font-color-info">下次联系时间:</span> <span>{{subItem.CustomerFollowUpModel.NextContactDate}}</span></p>
</div>
</div>
</div>
......@@ -419,6 +419,10 @@
<script>
export default {
props:{
ContactId: {
type: Number,
default: 0
},
CustomerId: {
type: Number,
default: 0
......@@ -451,7 +455,7 @@ export default {
type: 1,
FollowUpMsg: {
ID: 0,
CustomerId: '',
CustomerId: 0,
ContactId: 0,
ContactName: '',
BusinessId: 0,
......@@ -485,14 +489,14 @@ export default {
fjList: [],
logList: [],
logMsg: {
Type: 1,
Type: 5,
pageIndex: 1,
pageSize: 3,
CustomerId: 0
}
};
},watch:{
CustomerId: {
ContactId: {
handler(val, oldVal){
this.GetLogPageList()
},
......@@ -541,6 +545,7 @@ export default {
})
},
CreateContactFollowUp(){
this.FollowUpMsg.ContactId = this.ContactId
this.FollowUpMsg.CustomerId = this.CustomerId
if (this.gjImgList.length){
this.gjImgList.map(x=>{
......@@ -565,7 +570,7 @@ export default {
this.gjImgList = []
this.FollowUpMsg = {
ID: 0,
CustomerId: '',
CustomerId: 0,
ContactId: 0,
ContactName: '',
BusinessId: 0,
......@@ -576,6 +581,7 @@ export default {
NextContactDate: '',
ContactContent: ''
}
this.GetLogPageList()
}
})
},
......
......@@ -3,26 +3,182 @@
</style>
<template>
<div class="Business">
Business
<div class="add-Enclosure">
<el-button class="crm-btn query-btn crm-btn-mini easy-btn" @click="guanlianBox = true">关联</el-button>
<el-button class="crm-btn query-btn crm-btn-mini easy-btn" @click="jiechuguanlian">解除关联</el-button>
<el-button icon="el-icon-plus" class="crm-btn query-btn crm-btn-mini margin-right0" @click="addBusiness">新建商机</el-button>
</div>
<el-table
v-loading="loading"
stripe
ref="multipleTable"
:data="dataList"
tooltip-effect="dark"
style="width: 100%"
row-class-name="font-size-12"
@selection-change="handleSelectionChange">
<el-table-column fixed type="selection" width="40"></el-table-column>
<el-table-column
prop="BusinessName"
label="商机名称"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="BudgetPrice"
label="商机金额"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CustomerName"
label="客户名称"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="BusinessStatusStr"
label="商机阶段"
show-overflow-tooltip>
</el-table-column>
</el-table>
<el-dialog :visible.sync="guanlianBox" :modal="false" :close-on-click-modal="false" width="450px" custom-class="transfer-box add-box add-box2">
<div class="add-tit" slot="title">
<p><span></span>关联商机</p>
<span icon="el-icon-close"></span>
</div>
<el-form :model="msg" ref="form" class="MyEditForm" >
<div class="MyEditForm-item">
<el-form-item label="商机" class="label-pad-left">
<el-select
filterable
multiple
v-model="BusinessIDs" placeholder="请选择">
<el-option
v-for="item in selectList"
:label='item.BusinessName'
:value='item.ID'
:key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" class="add-box-btn" @click="guanlian()">确 定</el-button>
<el-button class="add-box-btn add-box-cancel" @click="guanlianBox = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
props:{
},
props: ['ID', 'CustomerId'],
data() {
return {
dataList: [],
loading: false,
guanlianBox: false,
BusinessIDs: [],
selectList: [],
selectID: [],
msg: {
BusinessIDs: '',
ContactIDs: ''
}
};
},watch:{
},
mounted() {
this.GetBusinessByContactID()
this.GetBusinessList()
let $this = this
this.MsgBus.$on('RefreshbusSelect', function (){
$this.GetBusinessList()
})
},
methods: {
handleSelectionChange(val) {
this.selectID = val.map(x=>
x.ID
)
},
GetBusinessList(){
this.apipost('/api/Customer/GetBusinessList', {CustomerId: this.CustomerId}, res=>{
if (res.data.resultCode == 1) {
this.selectList = res.data.data
} else {
this.$message.error(res.data.message);
}
})
},
GetBusinessByContactID(){
this.loading = true
this.apipost('/api/Customer/GetBusinessByContactID', {ContactID: this.ID}, res=>{
if (res.data.resultCode == 1) {
this.dataList = res.data.data
this.loading = false
} else {
this.loading = false
this.$message.error(res.data.message);
}
})
},
addBusiness(){
let $this= this
this.MsgBus.$emit('addBusinessBoxOpen', $this.CustomerId, $this.ID)
},
guanlian(){
if (this.BusinessIDs.length < 1) {
return this.$message.error('青选择需要关联的商机!')
}
let str = ''
this.BusinessIDs.map((x, i)=>{
str = str + x + ','
})
this.msg.ContactIDs = this.ID
this.msg.BusinessIDs = str.substring(0, str.length - 1)
this.apipost('/api/Customer/SetBusinessContacts', this.msg, res=>{
if (res.data.resultCode == 1) {
this.guanlianBox = false
this.GetBusinessByContactID()
this.$message.success('操作成功');
} else {
this.$message.error(res.data.message);
}
})
},
jiechuguanlian(){
if(this.selectID.length < 1) {
return this.$message.error('请选择数据')
}
this.$confirm('确定解除关联?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let str = ''
this.selectID.map((x, i)=>{
str = str + x + ','
})
let msg = {
BusinessIDs: str.substring(0, str.length - 1),
ContactID: this.ID
}
this.apipost('/api/Customer/DelBusinessContacts', msg, res=>{
if (res.data.resultCode == 1) {
this.selectID = []
this.GetBusinessByContactID()
this.$message.success('操作成功');
} else {
this.$message.error(res.data.message);
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消'
});
});
},
}
}
</script>
\ No newline at end of file
......@@ -83,18 +83,6 @@
</el-col>
</el-row>
</el-col>
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
手机:
</el-col>
<el-col :span="14">
{{detailsData.ContactNumber}}
</el-col>
</el-row>
</el-col>
</el-row>
<el-row :gutter="40" class="Details_box_row">
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
......@@ -106,6 +94,9 @@
</el-row>
</el-col>
</el-row>
<el-row :gutter="40" class="Details_box_row">
</el-row>
</div>
<div class="Details_box">
<p class="tit" style="margin-top: 30px;">系统信息</p>
......@@ -113,48 +104,35 @@
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
获取客户时间
创建人
</el-col>
<el-col :span="14">
{{detailsData.PersonChargeTime}}
{{detailsData.CreateByStr}}
</el-col>
</el-row>
</el-col>
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
更新时间:
创建时间:
</el-col>
<el-col :span="14">
{{detailsData.UpdateTime ? detailsData.UpdateTime.replace('T', ' ') : detailsData.UpdateTime}}
{{detailsData.CreateTime ? detailsData.CreateTime : detailsData.CreateTime }}
</el-col>
</el-row>
</el-col>
</el-row>
<el-row :gutter="40" class="Details_box_row">
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
创建人:
</el-col>
<el-col :span="14">
{{detailsData.CreateByStr}}
</el-col>
</el-row>
</el-col>
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
创建时间:
更新时间:
</el-col>
<el-col :span="14">
{{detailsData.CreateTime ? detailsData.CreateTime.replace('T', ' ') : detailsData.CreateTime }}
{{detailsData.UpdateTime ? detailsData.UpdateTime : detailsData.UpdateTime}}
</el-col>
</el-row>
</el-col>
</el-row>
<el-row :gutter="40" class="Details_box_row">
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
......@@ -165,6 +143,8 @@
</el-col>
</el-row>
</el-col>
</el-row>
<el-row :gutter="40" class="Details_box_row">
<el-col :span="12">
<el-row>
<el-col :span="6" class="Details_box_lable">
......
......@@ -70,7 +70,7 @@
<div class="Record" id="Record">
<div class="ha-cont" style="justify-content: flex-start; align-items: stretch;" v-for="(item, index) in logList" :key="index">
<div class="ha-circle"></div>
<div class="ha-time">{{item.UpdateDate.replace('T', ' ')}}</div>
<div class="ha-time">{{item.UpdateDate}}</div>
<!-- <div class="ha-name">admin</div> -->
<div class="ha-content">
<p data-v-0d9b8f7a="">{{item.LogInfo}}</p>
......@@ -82,7 +82,6 @@
</div>
</div>
</template>
</template>
<script>
export default {
props: ['CustomerId'],
......@@ -90,7 +89,7 @@ export default {
return {
logList: [],
msg: {
Type: 1,
Type: 3,
pageIndex: 1,
pageSize: 10,
SourceId: 0
......
......@@ -85,10 +85,10 @@
<div class="top-info">
<el-row class="margin-bottom-25">
<el-col :span="12">
<span class="info-lable">客户级别:</span><span>{{detailsData.CustomerIdLevelStr}}</span>
<span class="info-lable">职务:</span><span>{{detailsData.ContactDutyStr}}</span>
</el-col>
<el-col :span="12">
<span class="info-lable">成交状态:</span><span >已成交</span>
<span class="info-lable">联系电话:</span><span >{{detailsData.ContactPhone}}</span>
</el-col>
</el-row>
<el-row>
......@@ -96,26 +96,26 @@
<span class="info-lable">负责人:</span><span>{{detailsData.PersonChargeStr}}</span>
</el-col>
<el-col :span="12">
<span class="info-lable">更新时间:</span><span>{{detailsData.UpdateTime ? detailsData.UpdateTime.replace('T', ' ') : ''}}</span>
<span class="info-lable">更新时间:</span><span>{{detailsData.UpdateTime ? detailsData.UpdateTime : ''}}</span>
</el-col>
</el-row>
</div>
<div class="content">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="活动" name="1">
<Activity v-if="activeName === '1'" :CustomerId="CustomerId" />
<Activity v-if="activeName === '1'" :ContactId="ContactId" :CustomerId="CustomerId" />
</el-tab-pane>
<el-tab-pane label="详细资料" name="2">
<Details v-if="activeName === '2'" :detailsData="detailsData"/>
</el-tab-pane>
<el-tab-pane label="商机" name="5">
<Business />
<Business v-if="activeName === '5'" :ID="ContactId" :CustomerId="CustomerId"/>
</el-tab-pane>
<el-tab-pane label="附件" name="8">
<Enclosure :ID='CustomerId' :type='3'/>
<Enclosure :ID='ContactId' :type='3'/>
</el-tab-pane>
<el-tab-pane label="操作记录" name="9">
<Record v-if="activeName === '9'" :CustomerId="CustomerId"/>
<Record v-if="activeName === '9'" :CustomerId="ContactId"/>
</el-tab-pane>
</el-tabs>
</div>
......@@ -137,6 +137,10 @@ export default {
Record
},
props:{
ContactId: {
type: Number,
default: 0
},
CustomerId: {
type: Number,
default: 0
......@@ -149,12 +153,17 @@ export default {
loading: false,
};
},watch:{
CustomerId: {
ContactId: {
handler(val, oldVal){
this.init()
this.activeName = '1'
},
deep:true
},
CustomerId: {
handler(val, oldVal){
},
deep:true
}
},
mounted() {
......@@ -167,7 +176,7 @@ export default {
},
methods: {
init(){
this.apipost('/api/Customer/GetAllContactModel', {Id: this.CustomerId}, res=>{
this.apipost('/api/Customer/GetAllContactModel', {Id: this.ContactId}, res=>{
if (res.data.resultCode == 1) {
let data = res.data.data
this.detailsData = data
......
......@@ -217,7 +217,7 @@
:visible.sync="drawer2"
direction="rtl"
:before-close="handleClose">
<ContactsInfoBox :CustomerId="BusinessId" @transferS="transfer" @watersS="waters" @editCustbusiness="editCustbusiness"/>
<ContactsInfoBox :ContactId="BusinessId" :CustomerId="BusinessIdCustomerId" @transferS="transfer" @watersS="waters" @editCustbusiness="editCustbusiness"/>
</el-drawer>
<!-- 编辑客户 -->
<div v-if="dialogCustomerVisible">
......@@ -510,7 +510,6 @@ export default {
this.dialogCustomerVisible = true
},
openDetails2(scope){
console.log(scope.row)
this.BusinessId = scope.row.ID
this.BusinessIdCustomerId = scope.row.CustomerId
this.drawer2 = true
......
<style>
.customerManage .tools{
display: flex;
justify-content: space-between;
padding-bottom: 25px;
border-bottom: 1px solid rgba(226,228,235,1);
}
.customerManage .tools h1{
font-weight: bold;
font-size: 18px;
}
.customerManage .tools .rightmenu{
display: flex;
align-items: center;
}
.customerManage .tools .gaoji{
font-size:12px;
font-weight:400;
color:rgba(13,36,129,1);
margin-right: 35px;
cursor: pointer;
}
.customerManage .tools .gaoji:hover{
color:rgba(13,36,129,.8);
}
.customerManage .tools .gaoji .iconfont{
font-size: 12px;
padding-left: 5px;
}
.customerManage .query-box{
padding: 25px 0;
}
.customerManage .table-btn{
display: inline-block;
width: 24px;
height: 24px;
line-height: 24px;
text-align: center;
cursor: pointer;
margin-right: 10px;
}
.customerManage .table-btn.blue{
color: rgba(13, 36, 129, 1);
background-color: rgba(13, 36, 129, .3);
}
.customerManage .table-btn.org{
color: #FFA475;
background-color: rgba(255, 164, 117, .3);
}
.customerManage .table-btn.green{
color: rgba(148, 184, 119, 1);
background-color: rgba(148, 184, 119, .3);
}
.customerManage .table-btn.blue:hover{
background-color: rgba(13, 36, 129, .5);
}
.customerManage .table-btn.org:hover{
background-color: rgba(255, 164, 117, .5);
}
.customerManage .table-btn.green:hover{
background-color: rgba(148, 184, 119, .5);
}
.customerManage .add-box .add-tit{
display: flex;
justify-content: space-between;
align-items: center;
height: 20px;
}
.customerManage .add-box .add-tit p{
display: flex;
align-items: center;
font-weight: bold;
color:rgba(17,17,17,1);
font-size:14px;
}
.customerManage .add-box .add-tit p span{
display: inline-block;
width:6px;
height:6px;
background:rgba(13,36,129,1);
border-radius:50%;
margin-right: 10px;
}
.customerManage .add-box .el-dialog__header{
padding: 15px 20px;
background:rgba(255,255,255,1);
}
.customerManage .add-box .dialog-footer{
text-align: center;
background-color: rgba(248,250,251,1);
padding-bottom: 20px;
}
.customerManage .add-box .el-dialog__footer{
padding: 0;
}
.customerManage .add-box .el-dialog__body{
background-color: rgba(248,250,251,1);
padding-top: 20px;
max-height: 600px;
}
.customerManage .add-box-btn.el-button{
border-radius: 0;
background-color: rgba(13, 36, 129, .8);
border-color: rgba(13, 36, 129, .8);
color: white;
padding: 12px 43px;
}
.customerManage .add-box-btn.el-button:hover{
background-color: rgba(13, 36, 129, 1);
border-color: rgba(13, 36, 129, 1);
color: white;
}
.customerManage .add-box-btn.el-button.add-box-cancel{
color: rgba(13, 36, 129, .8);
background-color: white;
}
.customerManage .add-box-btn.el-button.add-box-cancel:hover{
color: rgba(13, 36, 129, 1);
background-color: white;
}
.customerManage .form-box .form-box-tit{
display: flex;
align-items: center;
margin-bottom: 20px;
}
.customerManage .form-box .radius{
display: flex;
width:4px;
height:4px;
background:rgba(255,164,117,1);
border-radius:50%;
margin-right: 10px;
}
.customerManage .drawer-header{
height: 83px;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 30px;
}
.customerManage .drawer-header .left{
display: flex;
align-items: center;
}
.customerManage .drawer-header .left img{
display: inline-block;
margin-right: 10px;
}
</style>
<template>
<div class="customerManage">
<div class="tools">
<h1>客户管理</h1>
<div class="rightmenu">
<div class="gaoji">高级查询 <i class="iconfont iconjiantou_xia"></i></div>
<el-button class="crm-btn query-btn" @click="getList">查询</el-button>
<el-button icon="el-icon-plus" class="crm-btn easy-btn" @click="dialogTableVisible=true">新增</el-button>
<el-button class="crm-btn easy-btn">导入</el-button>
<el-button class="crm-btn org-btn">导出</el-button>
</div>
</div>
<div class="query-box">
<el-row :gutter="20">
<el-col :span="4">
<el-select v-model="value" placeholder="请选择客户来源">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-col>
<el-col :span="4">
<el-select v-model="value" placeholder="请选择客户来源">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-col>
<el-col :span="4">
<el-select v-model="value" placeholder="请选择客户来源">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-col>
<el-col :span="4">
<el-select v-model="value" placeholder="请选择客户来源">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-col>
<el-col :span="4">
<el-select v-model="value" placeholder="请选择客户来源">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-col>
<el-col :span="4">
<el-select v-model="value" placeholder="请选择客户来源">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-col>
</el-row>
</div>
<el-table
v-loading="loading"
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
height="548"
border
row-class-name="font-size-12"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column v-for="(item, index) in queryType" :key="index"
:ixed="index===0"
:prop="item.name"
:label="item.label"
v-if="item.show"
show-overflow-tooltip>
<template slot-scope="scope">
<p @click="openDetails(scope)" class="font-color-link cp">{{scope.row.CustomerName}}</p>
</template>
</el-table-column>
<el-table-column
prop="MainSourceStr"
label="客户来源"
v-if="queryType[1].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Contact"
label="联系人"
v-if="queryType[2].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="ContactNumber"
label="联系电话"
v-if="queryType[3].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Address"
label="地址"
v-if="queryType[4].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="BusinessCount"
label="商机数"
v-if="queryType[5].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="OrderCount"
label="交易订单数"
width="100"
v-if="queryType[6].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="OrderMoney"
label="交易金额"
v-if="queryType[7].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CouponCount"
label="优惠券"
v-if="queryType[8].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Client_Balance"
label="幸福存折"
v-if="queryType[9].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CustomerLevelStr"
label="客户级别"
v-if="queryType[10].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CustomerStatus"
label="审核状态"
v-if="queryType[11].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="RealNameAuthentication"
label="实名认证状态"
v-if="queryType[12].show"
width="120"
show-overflow-tooltip>
<template slot-scope="scope">
<p v-if="scope.row.RealNameAuthentication === 1" class="font-color-success">已认证</p>
<p v-else class="font-color-warning">未认证</p>
</template>
</el-table-column>
<el-table-column
prop="IsAppLogin"
label="APP激活状态"
v-if="queryType[13].show"
width="120"
show-overflow-tooltip>
<template slot-scope="scope">
<p v-if="scope.row.IsAppLogin === 0" class="font-color-warning">未激活</p>
<p v-else class="font-color-success">已激活</p>
</template>
</el-table-column>
<el-table-column
prop="CustomerPublic"
label="距进入公海天数"
v-if="queryType[14].show"
width="120"
show-overflow-tooltip>
</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
prop="Visit"
label="近期约访"
v-if="queryType[16].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="UpdateTime"
label="更新时间"
v-if="queryType[17].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CreateTimestr"
label="创建时间"
v-if="queryType[18].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="IsCarefor"
fixed="right"
width="50"
label="关注">
<template slot-scope="scope">
<p>
<el-tooltip class="item" effect="dark" content="关注" placement="top">
<i v-if="scope.row.IsCarefor === 0" class="el-icon-star-off cp"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="取消关注" placement="top">
<i v-if="scope.row.IsCarefor === 1" class="el-icon-star-on cp"></i>
</el-tooltip>
</p>
</template>
</el-table-column>
<el-table-column
width="40"
fixed="right">
<template slot="header" slot-scope="scope">
<el-popover
placement="bottom"
width="240"
:value="mySelectCtrl">
<mySelect :queryType="queryType" @listenTochildEvent="showMessageFromChild"/>
<i class="el-icon-s-operation cp" @click="showMessageFromChild()" slot="reference"></i>
</el-popover>
</template>
</el-table-column>
<!-- <el-table-column label="操作" fixed="right" width="150">
<template slot-scope="scope">
<el-tooltip class="item" effect="dark" content="提醒" placement="top">
<i class="table-btn blue iconfont icontishi"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="联系客户" placement="top">
<i class="table-btn org iconfont icondianhua"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="客户详情" placement="top">
<i class="table-btn green iconfont iconsuosou" @click="drawer = true"></i>
</el-tooltip>
</template>
</el-table-column> -->
</el-table>
<div>
<el-pagination
class="Mypagination"
background
@current-change="handleCurrentChange"
:page-sizes="[10, 20, 50, 100]"
:page-size="msg.pageSize"
layout="sizes, prev, pager, next"
@size-change="handleSizeChange"
:total="total">
</el-pagination>
</div>
<el-drawer
title="我是标题"
:with-header="false"
size='70%'
:visible.sync="drawer"
direction="rtl"
:before-close="handleClose">
<div class="drawer-header">
<div class="left">
<img src="../../assets/img/cust/kehu2.png" alt="">
<p>上海云上互联网信息技术有限公司</p>
</div>
<div class="right">
<el-button class="crm-btn query-btn">转移</el-button>
<el-button class="crm-btn easy-btn">编辑</el-button>
<el-button class="crm-btn org-btn">更多</el-button>
</div>
</div>
<div class="drawer-body">
</div>
</el-drawer>
<el-dialog :visible.sync="dialogTableVisible" custom-class="add-box">
<div class="add-tit" slot="title">
<p><span></span>新建客户</p>
<span icon="el-icon-close"></span>
</div>
<div class="form-box">
<el-form :model="form" class="MyEditForm" :rules="rules">
<p class="form-box-tit"><span class="radius"></span> 基本信息</p>
<el-row :gutter="30">
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="客户名称" prop="CustomerName">
<el-input placeholder="请输入客户姓名" v-model="form.CustomerName"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="客户级别" prop="CustomerLevel">
<el-select v-model="form.CustomerLevel" placeholder="请选择客户级别">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="客户来源" prop="CustomerSourceType">
<el-select v-model="form.CustomerSourceType" placeholder="请选择客户来源">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="联系人" prop="Contact">
<el-input placeholder="请输入联系人" v-model="form.Contact"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="电话" prop="ContactNumber">
<el-input placeholder="请输入联系电话" v-model="form.ContactNumber"></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="客户来源" prop="CustomerSourceType">
<el-select v-model="form.CustomerSourceType" placeholder="请选择客户来源">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="经营场所" prop="Premises">
<el-select v-model="form.Premises" placeholder="请选择客户来源">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="MyEditForm-item label-pad-left">
<el-form-item label="所属品牌">
<el-select v-model="form.BrandIds" placeholder="请选择所属品牌">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="MyEditForm-item label-pad-left">
<el-form-item label="备注">
<el-input type="textarea" placeholder="客户的特殊喜好" v-model="form.Remark"></el-input>
</el-form-item>
</div>
</el-col>
</el-row>
<p class="form-box-tit"><span class="radius"></span> 位置信息</p>
<el-row :gutter="30">
<el-col :span="6">
<div class="MyEditForm-item label-pad-left">
<el-form-item label="国/省/市/区">
<el-select v-model="form.Country" placeholder="国家">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="6">
<div class="MyEditForm-item label-pad-left">
<el-form-item label="国/省/市/区">
<el-select v-model="form.Province" placeholder="省份">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="6">
<div class="MyEditForm-item label-pad-left">
<el-form-item label="国/省/市/区">
<el-select v-model="form.City" placeholder="城市">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
<el-col :span="6">
<div class="MyEditForm-item label-pad-left">
<el-form-item label="国/省/市/区">
<el-select v-model="form.District" placeholder="地区">
<el-option
v-for="item in SourceEnum"
:key="item.ID"
:label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div class="MyEditForm-item label-pad-left">
<el-form-item label="定位">
<el-input type="textarea" placeholder="请输入详情地址" v-model="form.Remark"></el-input>
</el-form-item>
</div>
</el-col>
</el-row>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" class="add-box-btn" @click="dialogFormVisible = false">确 定</el-button>
<el-button class="add-box-btn add-box-cancel" @click="dialogFormVisible = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import mySelect from "../select/select";
export default {
components: {
mySelect
},
data() {
return {
queryType: [
{
name: 'CustomerName',
label: '客户名称',
show: true,
},{
name: 'MainSourceStr',
label: '客户来源',
show: true,
},{
name: 'Contact',
label: '联系人',
show: true,
},{
name: 'ContactNumber',
label: '联系电话',
show: true,
},{
name: 'Address',
label: '地址',
show: true,
},{
name: 'BusinessCount',
label: '商机数',
show: true,
},{
name: 'OrderCount',
label: '交易订单数',
show: true,
},{
name: 'OrderMoney',
label: '交易金额',
show: true,
},{
name: 'CouponCount',
label: '优惠券',
show: true,
},{
name: 'Client_Balance',
label: '幸福存折',
show: true,
},{
name: 'CustomerLevelStr',
label: '客户级别',
show: true,
},{
name: 'CustomerStatus',
label: '审核状态',
show: true,
},{
name: 'RealNameAuthentication',
label: '实名认证状态',
show: true,
},{
name: 'IsAppLogin',
label: 'APP激活状态',
show: true,
},{
name: 'CustomerPublic',
label: '距进入公海天数',
show: true,
},{
name: 'NowSellName',
label: '负责人',
show: true,
},{
name: 'Visit',
label: '近期约访',
show: true,
},{
name: 'UpdateTime',
label: '更新时间',
show: true,
},{
name: 'CreateTimestr',
label: '创建时间',
show: true,
},
],
rules:{
CustomerName: [
{ required: true, message: '请输入客户名称', trigger: 'blur' }
],
CustomerLevel: [
{ required: true, message: '请选择客户级别', trigger: 'change' }
],
CustomerSourceType: [
{ required: true, message: '请选择客户来源', trigger: 'change' }
],
Contact: [
{ required: true, message: '请输入联系人', trigger: 'blur' }
],
ContactNumber: [
{ required: true, message: '请输入联系电话', trigger: 'blur' }
],
Premises: [
{ required: true, message: '请选择经营场所', trigger: 'change'}
]
},
mySelectCtrl: false,
drawer: false,
loading: true,
dialogTableVisible: false,
tableData: [],
multipleSelection: [],
value: '',
SourceEnum: [],
msg: {
CustomerName: '',
Contact: '',
pageIndex: 1,
pageSize: 10,
ContactNumber: '',
WhereType: -1,
OrderBy: ''
},
total: 0,
form: {
CustomerId: 0,
CustomerName: '',
CustomerLevel: '',
Contact: '',
ContactNumber: '',
Address: '',
Remark: '',
Premises: '',
CustomerStatus: '',
CustomerSourceType: '',
CustomerSource: '',
Country: '',
Province: '',
City: '',
District: '',
BrandIds: '',
Images: '',
BusinessCardPhotos: '',
HousePhotos: ''
},
WhereTypeList: [
{
id: -1,
name: '全部'
},{
id: 1,
name: '我负责的'
},{
id: 2,
name: '下属的'
},{
id: 3,
name: '我参与的'
},{
id: 4,
name: '我关注的'
},
]
};
},
mounted() {
this.getList()
this.GetCustomerSourceEnum()
},
methods: {
showMessageFromChild(list){
this.mySelectCtrl=!this.mySelectCtrl
if (list) {
this.queryType = list
this.tableData = []
this.getList()
}
},
openDetails(scope){
console.log(scope.row)
this.drawer = true
},
handleSizeChange(val) {
this.msg.pageSize = val
this.getList();
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
done();
})
.catch(_ => {});
},
getList: function (){
this.loading = true
this.apipost('/api/Customer/GetCustomerPage', this.msg, res=>{
if (res.data.resultCode == 1) {
this.tableData = res.data.data.pageData;
this.total = res.data.data.count;
this.loading = false;
}
})
},
GetCustomerSourceEnum(){
this.apipost('/api/Customer/GetCustomerSourceEnum', {}, res=>{
if (res.data.resultCode == 1) {
this.SourceEnum = res.data.data
}
})
},
handleEdit(index, row) {
console.log(index, row);
},
handleDelete(index, row) {
console.log(index, row);
},
toggleSelection(rows) {
if (rows) {
rows.forEach(row => {
this.$refs.multipleTable.toggleRowSelection(row);
});
} else {
this.$refs.multipleTable.clearSelection();
}
},
handleSelectionChange(val) {
this.multipleSelection = val;
}
}
};
</script>
......@@ -713,7 +713,6 @@ export default {
this.drawer = true
this.CustomerId = scope.row.CustomerId
this.CustomerName = scope.row.CustomerName
this.drawer = true
},
handleSizeChange(val) {
this.msg.pageSize = val
......
<style>
.myClue{
height: 100%;
}
.myClue .title{
padding: 10px 20px;
font-size: 14px;
color: #333;
}
.title .iconfont{
display: inline-block;
font-size: 12px;
padding: 6px;
color: #fff;
margin-right: 10px;
}
.myClue .query-box{
padding: 15px 20px;
}
.myClue .title .tips{
cursor: pointer;
font-size: 12px;
color: white;
background-color: #cbcbcb;
display: inline-block;
width: 13px;
height: 13px;
border-radius: 50%;
text-align: center;
line-height: 13px;
margin-left: 5px;
}
</style>
<template>
<div class="myClue">
<div class="title">
<i class="iconfont iconxiansuo" style="background-color: rgb(112, 74, 253)"></i>
<span>分配给我的线索</span>
<el-tooltip class="item" effect="dark" content="转移之后未跟进的线索" placement="top">
<span class="tips">?</span>
</el-tooltip>
</div>
<div class="query-box">
<el-select size="mini" v-model="msg.ToDayContactType" @change="getList">
<el-option :key="1" label="待跟进" :value="1"> </el-option>
<el-option :key="2" label="已跟进" :value="2"> </el-option>
</el-select>
</div>
<div>
<el-table
v-loading="loading"
stripe
ref="multipleTable"
:data="dataList"
tooltip-effect="dark"
style="width: 100%"
row-class-name="font-size-12"
@selection-change="handleSelectionChange">
<el-table-column fixed type="selection" width="40"></el-table-column>
<el-table-column
prop="CustomerName"
label="线索名称"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CustomerName"
label="线索来源"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CustomerLevelStr"
label="客户级别"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CustomerSourceTypeStr"
label="客户来源"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Contact"
label="联系人"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="ContactNumber"
label="联系电话"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="NextContantTime"
label="下次联系时间"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Remark"
label="备注"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CreateTimestr"
label="创建时间"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="PersonChargeStr"
label="创建人"
show-overflow-tooltip>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
export default {
data(){
return {
msg: {
ToDayContactType: 1,
pageIndex: 1,
pageSize: 15
},
dataList: [],
loading: false,
selectID: []
}
},
mounted() {
this.getList()
},
methods: {
handleSelectionChange(val) {
this.selectID = val.map(x=>
x.ID
)
},
getList(){
this.loading = true
this.apipost('/api/CustomerAgency/GetFollowUpCluePageList', this.msg, res=>{
if (res.data.resultCode == 1) {
this.loading = false
this.dataList = res.data.data.pageData
} else {
this.loading = false
}
})
}
}
}
</script>
\ No newline at end of file
<style>
.myCustomer{
height: 100%;
}
.myCustomer .title{
padding: 10px 20px;
font-size: 14px;
color: #333;
}
.myCustomer .title .iconfont{
display: inline-block;
font-size: 12px;
padding: 6px;
color: #fff;
margin-right: 10px;
}
.myCustomer .query-box{
padding: 15px 20px;
}
.myCustomer .title .tips{
cursor: pointer;
font-size: 12px;
color: white;
background-color: #cbcbcb;
display: inline-block;
width: 13px;
height: 13px;
border-radius: 50%;
text-align: center;
line-height: 13px;
margin-left: 5px;
}
</style>
<template>
<div class="myCustomer">
<div class="title">
<i class="iconfont iconkehu" style="background-color: rgb(25, 181, 246)"></i>
<span>分配给我的客户</span>
<el-tooltip class="item" effect="dark" content="转移、领取、分配之后未跟进的客户,默认显示自己负责的客户" placement="top">
<span class="tips">?</span>
</el-tooltip>
</div>
<div class="query-box">
<el-select size="mini" v-model="msg.ToDayContactType" @change="getList">
<el-option :key="1" label="待跟进" :value="1"> </el-option>
<el-option :key="2" label="已跟进" :value="2"> </el-option>
</el-select>
</div>
<div>
<el-table
v-loading="loading"
stripe
ref="multipleTable"
:data="dataList"
tooltip-effect="dark"
style="width: 100%"
row-class-name="font-size-12"
@selection-change="handleSelectionChange">
<el-table-column fixed type="selection" width="40"></el-table-column>
<el-table-column
prop="CustomerName"
label="客户名称"
show-overflow-tooltip>
<template slot-scope="scope">
<p @click="openDetails(scope)" class="font-color-link cp">{{scope.row.CustomerName}}</p>
</template>
</el-table-column>
<el-table-column
prop="CustomerLevelStr"
label="客户级别"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CustomerSourceTypeStr"
label="客户来源"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Contact"
label="联系人"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="ContactNumber"
label="联系电话"
show-overflow-tooltip>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
export default {
data(){
return {
msg: {
ToDayContactType: 1,
pageIndex: 1,
pageSize: 15
},
dataList: [],
loading: false,
selectID: []
}
},
mounted() {
this.getList()
},
methods: {
openDetails(scope){
this.MsgBus.$emit('openCustomerWin', scope.row)
},
handleSelectionChange(val) {
this.selectID = val.map(x=>
x.ID
)
},
getList(){
this.loading = true
this.apipost('/api/CustomerAgency/GetFollowUpPageList', this.msg, res=>{
if (res.data.resultCode == 1) {
this.loading = false
this.dataList = res.data.data.pageData
} else {
this.loading = false
}
})
}
}
}
</script>
\ No newline at end of file
<style>
.todayCustomer{
height: 100%;
}
.todayCustomer .title{
padding: 10px 20px;
font-size: 14px;
color: #333;
}
.title .iconfont{
display: inline-block;
font-size: 12px;
padding: 6px;
color: #fff;
margin-right: 10px;
}
.todayCustomer .query-box{
padding: 15px 20px;
}
.todayCustomer .title .tips{
cursor: pointer;
font-size: 12px;
color: white;
background-color: #cbcbcb;
display: inline-block;
width: 13px;
height: 13px;
border-radius: 50%;
text-align: center;
line-height: 13px;
margin-left: 5px;
}
</style>
<template>
<div class="todayCustomer">
<div class="title">
<i class="iconfont iconcompany" style="background-color: rgb(35, 98, 251)"></i>
<span>今日需联系客户</span>
<el-tooltip class="item" effect="dark" content="下次跟进时间为今日的客户" placement="top">
<span class="tips">?</span>
</el-tooltip>
</div>
<div class="query-box">
<el-select size="mini" v-model="msg.ToDayContactType" @change="getList">
<el-option :key="1" label="今日需联系的" :value="1"> </el-option>
<el-option :key="2" label="已逾期" :value="2"> </el-option>
<el-option :key="3" label="已联系" :value="3"> </el-option>
</el-select>
<el-select size="mini" v-model="msg.WhereType" style="width: 120px;margin-left: 10px;" @change="getList">
<el-option :key="1" label="我的" :value="1"> </el-option>
<el-option :key="2" label="下属的" :value="2"> </el-option>
</el-select>
</div>
<div>
<el-table
v-loading="loading"
stripe
ref="multipleTable"
:data="dataList"
tooltip-effect="dark"
style="width: 100%"
row-class-name="font-size-12">
<el-table-column
prop="CustomerName"
label="客户名称"
show-overflow-tooltip>
<template slot-scope="scope">
<p @click="openDetails(scope)" class="font-color-link cp">{{scope.row.CustomerName}}</p>
</template>
</el-table-column>
<el-table-column
prop="CustomerLevelStr"
label="客户级别"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CustomerSourceTypeStr"
label="客户来源"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Contact"
label="联系人"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="ContactNumber"
label="联系电话"
show-overflow-tooltip>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
export default {
data(){
return {
msg: {
ToDayContactType: 1,
WhereType: 1,
pageIndex: 1,
pageSize: 15
},
dataList: [],
loading: false
}
},
mounted() {
this.getList()
},
methods: {
openDetails(scope){
this.MsgBus.$emit('openCustomerWin', scope.row)
},
getList(){
this.loading = true
this.apipost('/api/CustomerAgency/GetToDayContactPageList', this.msg, res=>{
if (res.data.resultCode == 1) {
this.loading = false
this.dataList = res.data.data.pageData
} else {
this.loading = false
}
})
}
}
}
</script>
\ No newline at end of file
<style>
.waitMatter{
height: 100%;
}
.waitMatter h1{
font-weight: bold;
font-size: 18px;
padding-bottom: 10px;
}
.waitMatter .waitMatter-main{
position: relative;
height: calc(100% - 50px);
}
.waitMatter .waitMatter-main .left{
padding: 20px 0;
width: 200px;
font-size: 14px;
background-color: #fff;
position: absolute;
top: 0;
left: 0;
bottom: 0;
z-index: 1;
border: 1px solid #e6e6e6;
overflow-y: auto;
}
.waitMatter .waitMatter-main .right{
margin-left: 210px;
height: 100%;
overflow: hidden;
background-color: #fff;
border: 1px solid #e6e6e6;
}
.waitMatter .waitMatter-main .left .item{
padding: 12px 20px;
position: relative;
cursor: pointer;
}
.waitMatter .waitMatter-main .left .item.active, .waitMatter .waitMatter-main .left .item:hover{
background-color: #f6f8fa;
}
.waitMatter .waitMatter-main .left .item::before{
content: " ";
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 2px;
background-color: #2362fb;
opacity: 0;
}
.waitMatter .waitMatter-main .left .item.active::before{
opacity: 1;
}
.waitMatter .waitMatter-main .left .iconfont{
display: inline-block;
font-size: 12px;
padding: 6px;
color: #fff;
}
.waitMatter .waitMatter-main .left .lable{
color: #333;
font-size: 13px;
margin-left: 10px;
}
</style>
<template>
<div class="waitMatter">
<h1>待办事项</h1>
<div class="waitMatter-main">
<div class="left">
<div v-for="(item, index) in menuList" :key="index" @click="changeMenuList(item, index)" class="item" :class="[index === activeIndex ? 'active' : '']"><i :class="item.class" :style="item.style"></i><span class="lable">{{item.text}}</span></div>
</div>
<div class="right">
<todayCustomer v-if="activeIndex === 0" />
<myClue v-if="activeIndex === 1" />
<myCustomer v-if="activeIndex === 2" />
</div>
</div>
</div>
</template>
<script>
import todayCustomer from "./todayCustomer";
import myClue from "./myClue";
import myCustomer from "./myCustomer";
export default {
components: {
todayCustomer,
myClue,
myCustomer
},
data(){
return {
activeIndex: 0,
menuList: [
{
text: '今日需联系客户',
class: 'iconfont iconcompany',
style: 'background-color: rgb(35, 98, 251);'
},{
text: '分配给我的线索',
class: 'iconfont iconxiansuo',
style: 'background-color: rgb(112, 74, 253);'
},{
text: '分配给我的客户',
class: 'iconfont iconkehu',
style: 'background-color: rgb(25, 181, 246);'
},{
text: '待审核合同',
class: 'iconfont iconcompany',
style: 'background-color: rgb(253, 91, 74);'
},{
text: '待审核回款',
class: 'iconfont iconcompany',
style: 'background-color: rgb(255, 185, 64);'
},{
text: '待回款提醒',
class: 'iconfont iconcompany',
style: 'background-color: rgb(255, 122, 56);'
},{
text: '即将到期的合同',
class: 'iconfont iconcompany',
style: 'background-color: rgb(35, 98, 251);'
},
]
}
},
mounted() {
},
methods: {
changeMenuList(item, index){
this.activeIndex = index
},
}
}
</script>
\ No newline at end of file
<style>
@import '../../assets/css/customerManage.css';
</style>
<template>
<div class="customerManage">
<div class="tools">
<h1>公海管理</h1>
<div>
<el-input placeholder="请输入客户名称/手机" v-model="msg.CustomerName" class="input-with-select">
<el-button slot="append" icon="el-icon-search" @click="getList"></el-button>
</el-input>
</div>
<div class="rightmenu">
<el-button class="crm-btn query-btn" @click="getList">查询</el-button>
<el-button icon="el-icon-plus" class="crm-btn org-btn" @click="CustomerId = 0, dialogTableVisibleName = '新增客户', dialogTableVisible=true">新增</el-button>
<el-dropdown>
<el-button class="crm-btn crm-btn-more easy-btn margin-right0">
<i class="iconfont icongengduo"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item><i class="iconfont icondaoru"></i> 导入</el-dropdown-item>
<el-dropdown-item><i class="iconfont icondaochu"></i> 导出</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<div class="query-box">
<div v-if="!multipleSelection.length">
<div>
<span class="font-size-12" style="padding-right: 10px">场景</span>
<el-select size="mini" v-model="msg.WhereType" placeholder="请选择">
<el-option
v-for="item in WhereTypeList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
<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>
<div class="page-content">
<el-table
v-if="loading"
v-loading="true"
:data="[]">
<el-table-column
v-for="(item, index) in queryType2" :key="index"
:label="item.label">
</el-table-column>
</el-table>
<el-table
v-if="!loading"
ref="multipleTable"
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
height="730"
border
row-class-name="font-size-12"
@selection-change="handleSelectionChange">
<el-table-column fixed type="selection" width="40"></el-table-column>
<el-table-column
fixed
prop="CustomerName"
label="客户名称"
width="120"
show-overflow-tooltip>
<template slot-scope="scope">
<p @click="openDetails(scope)" class="font-color-link cp">{{scope.row.CustomerName}}</p>
</template>
</el-table-column>
<el-table-column
prop="MainSourceStr"
label="客户来源"
v-if="queryType[1].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Contact"
label="联系人"
v-if="queryType[2].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="ContactNumber"
label="联系电话"
sortable
v-if="queryType[3].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Address"
label="地址"
v-if="queryType[4].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="BusinessCount"
label="商机数"
v-if="queryType[5].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="OrderCount"
label="交易订单数"
sortable
width="100"
v-if="queryType[6].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="OrderMoney"
label="交易金额"
sortable
v-if="queryType[7].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CouponCount"
label="优惠券"
sortable
v-if="queryType[8].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="Client_Balance"
label="幸福存折"
sortable
v-if="queryType[9].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CustomerLevelStr"
label="客户级别"
sortable
v-if="queryType[10].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CustomerStatus"
label="审核状态"
v-if="queryType[11].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="RealNameAuthentication"
label="实名认证状态"
v-if="queryType[12].show"
width="120"
show-overflow-tooltip>
<template slot-scope="scope">
<p v-if="scope.row.RealNameAuthentication === 1" class="font-color-success">已认证</p>
<p v-else class="font-color-warning">未认证</p>
</template>
</el-table-column>
<el-table-column
prop="IsAppLogin"
label="APP激活状态"
v-if="queryType[13].show"
width="120"
show-overflow-tooltip>
<template slot-scope="scope">
<p v-if="scope.row.IsAppLogin === 0" class="font-color-warning">未激活</p>
<p v-else class="font-color-success">已激活</p>
</template>
</el-table-column>
<el-table-column
prop="CustomerPublic"
label="距进入公海天数"
sortable
v-if="queryType[14].show"
width="120"
show-overflow-tooltip>
</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
prop="Visit"
label="近期约访"
sortable
v-if="queryType[16].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="UpdateTime"
label="更新时间"
sortable
v-if="queryType[17].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="CreateTimestr"
label="创建时间"
sortable
v-if="queryType[18].show"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="IsCarefor"
fixed="right"
width="50"
label="关注">
<template slot-scope="scope">
<p>
<el-tooltip class="item" effect="dark" content="关注" placement="top">
<i v-if="scope.row.IsCarefor === 0" @click="CareforCustomer(scope)" class="iconfont iconwujiaoxing cp"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="取消关注" placement="top">
<i v-if="scope.row.IsCarefor === 1" @click="CareforCustomer(scope)" class="iconfont iconstar_full cp"></i>
</el-tooltip>
</p>
</template>
</el-table-column>
<el-table-column
width="40"
fixed="right">
<template slot="header" slot-scope="scope">
<el-popover
placement="bottom"
width="240">
<mySelect :queryType="queryType" @listenTochildEvent="showMessageFromChild"/>
<i class="el-icon-s-operation cp" slot="reference"></i>
</el-popover>
</template>
</el-table-column>
</el-table>
</div>
<div>
<!-- <el-pagination
class="Mypagination"
background
@current-change="handleCurrentChange"
:page-sizes="[30, 60, 90, 100]"
:page-size="msg.pageSize"
layout="sizes, prev, pager, next"
@size-change="handleSizeChange"
:total="total">
</el-pagination> -->
</div>
<el-drawer
:with-header="false"
size='70%'
:visible.sync="drawer"
direction="rtl"
:before-close="handleClose">
<customerInfoBox :CustomerId="CustomerId" @transferS="transfer" @watersS="waters" @editCustS="editCust"/>
</el-drawer>
<el-dialog :visible.sync="transferVisible" :close-on-click-modal="false" width="450px" custom-class="transfer-box add-box add-box2">
<div class="add-tit" slot="title">
<p><span></span>客户转移</p>
<span icon="el-icon-close"></span>
</div>
<el-form :model="transferMsg" ref="form" class="MyEditForm" >
<div class="MyEditForm-item">
<el-form-item label="变更负责人为" class="label-pad-left">
<el-select
filterable
v-model="transferMsg.EmpId" placeholder="请选择">
<el-option
v-for="item in EmployeeList"
:label='item.EmName'
:value='item.EmployeeId'
:key='item.EmployeeId'>
</el-option>
</el-select>
</el-form-item>
</div>
<div class="MyEditForm-item">
<el-form-item label="将原负责人" class="label-pad-left form-check">
<div class="pad-left-10">
<el-radio v-model="transferMsg.TransferType" :label="1">移出</el-radio>
<el-radio v-model="transferMsg.TransferType" :label="2">转为团队成员</el-radio>
</div>
</el-form-item>
</div>
<div class="MyEditForm-item" v-if="transferMsg.TransferType === 2">
<el-form-item label="权限" class="label-pad-left form-check">
<div class="pad-left-10">
<el-radio v-model="transferMsg.IsRead" :label="0">只读</el-radio>
<el-radio v-model="transferMsg.IsRead" :label="1">读写</el-radio>
</div>
</el-form-item>
</div>
<div class="MyEditForm-item">
<el-form-item label="同时变更负责人至" class="label-pad-left form-check">
<div class="pad-left-10">
<el-checkbox-group v-model="transferMsg.TransferOther">
<el-checkbox :value="1" :label="1">联系人</el-checkbox>
<el-checkbox :value="2" :label="2">商机</el-checkbox>
<el-checkbox :value="3" :label="3">合同</el-checkbox>
</el-checkbox-group>
</div>
</el-form-item>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" class="add-box-btn" @click="transfer(2)">确 定</el-button>
<el-button class="add-box-btn add-box-cancel" @click="transferVisible = false">取 消</el-button>
</div>
</el-dialog>
<!-- 添加团队成员弹窗 -->
<div v-if="addTeammanShow">
<addTeamman :ID="CustomerIdStr" @addTeammanOk="addTeammanOk"/>
</div>
</div>
</template>
<script>
import mySelect from "../dialogModel/select";
import customerInfoBox from "../assembly/customerInfoBox";
import addTeamman from "../dialogModel/addTeamman";
export default {
components: {
mySelect,
customerInfoBox,
addTeamman
},
data() {
return {
queryType2: [
{
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,
},{
label: 'APP激活状态',
show: true,
},{
label: '距进入公海天数',
show: true,
},{
label: '负责人',
show: true,
},{
label: '近期约访',
show: true,
},{
label: '更新时间',
show: true,
},{
label: '创建时间',
show: true,
},
],
queryType: [
{
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,
},{
label: 'APP激活状态',
show: true,
},{
label: '距进入公海天数',
show: true,
},{
label: '负责人',
show: true,
},{
label: '近期约访',
show: true,
},{
label: '更新时间',
show: true,
},{
label: '创建时间',
show: true,
},
],
CustomerId: 0,
CustomerIdStr: '',
addTeammanShow: false,
transferVisible: false,
mySelectCtrl: false,
drawer: false,
loading: true,
dialogTableVisible: false,
dialogTableVisibleName: '新增客户',
tableData: [],
multipleSelection: [],
EmployeeList: [],
value: '',
userInfo: {},
transferMsg: {
CustomerIds: [],
TransferType: 1, //类型,1-移除,2-转为团员
IsRead: 0, //0-读写,1-只读
EmpId: '',
TransferOther: [] //1-联系人,2-商机,3-合同
},
msg: {
CustomerName: '',
Contact: '',
pageIndex: 1,
pageSize: 30,
ContactNumber: '',
WhereType: -1,
OrderBy: ''
},
total: 0,
WhereTypeList: [
{
id: -1,
name: '全部'
},{
id: 1,
name: '我负责的'
},{
id: 2,
name: '下属的'
},{
id: 3,
name: '我参与的'
},{
id: 4,
name: '我关注的'
},
],
selectionList: [
{
name: '转移',
class:'iconfont iconplus-transfer',
myFun: this.transfer
},{
name: '放入公海',
class:'iconfont icongonghaiguanli',
myFun: this.waters
},{
name: '更改成交状态',
class:'iconfont iconwancheng',
myFun: this.changeState
},{
name: '导出选中',
class:'iconfont icondaochu',
myFun: this.export
},{
name: '删除',
class:'iconfont icondelete',
myFun: this.delete
},{
name: '锁定',
class:'iconfont iconsuoguan',
myFun: this.locking
},{
name: '解锁',
class:'iconfont iconsuokai',
myFun: this.Unlock
},{
name: '添加团队成员',
class:'iconfont icontianjia',
myFun: this.addCust
},
// {
// name: '删除团队成员',
// class:'iconfont iconjian',
// myFun: this.delCust,
// },
]
};
},
mounted() {
this.userInfo = this.getLocalStorage();
this.getList()
this.Employee()
let $this = this
this.MsgBus.$on('closeaddTeamman', function (){
$this.addTeammanShow = false
})
},
methods: {
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 => {}
);
},
//锁定
locking(){
console.log('锁定')
},
//解锁
Unlock(){
console.log('解锁')
},
addTeammanOk(){
this.addTeammanShow = false
},
//添加团队成员
addCust(){
let str = ''
this.multipleSelection.map((x, i)=>{
str = str + x + ','
})
this.CustomerIdStr = str.substring(0, str.length - 1)
this.addTeammanShow = true
},
//删除团队成员
delCust(){
console.log('删除团队成员')
},
//删除
delete(){
console.log('删除')
},
//导出
export(){
console.log('导出')
},
// 更改状态
changeState(){
console.log('更改状态')
},
// 放入公海
waters(type){
let tips = '是否放入公海?'
if(type === 1) {
tips = '是否把客户“'+ this.CustomerName + '”放入公海?'
this.multipleSelection.push(this.CustomerId)
}
this.$confirm(tips, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let str = ''
this.multipleSelection.map((x, i)=>{
str = str + x + ','
})
this.apipost('/api/Customer/RemoveMyCustomer', {CustomerIds: str.substring(0, str.length - 1)}, res=>{
if (res.data.resultCode == 1) {
if (type === 1) {} {
this.drawer = false
}
this.multipleSelection = []
this.$message.success(res.data.message);
this.getList()
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消'
});
});
},
// 关注
CareforCustomer(scope){
this.apipost('/api/Customer/CareforCustomer', {CustomerCreateId: scope.row.CustomerCreateId}, res=>{
if (res.data.resultCode == 1) {
this.$message.success('操作成功');
this.getList()
}
})
},
// 转移
transfer(type){
if (type !== 2) {
if (type === 3) {
this.multipleSelection.push(this.CustomerId)
}
this.transferVisible = true
} else {
if (this.transferMsg.EmpId === '') {
return this.$message.error('请选择变更负责人!')
}
let str = ''
this.multipleSelection.map((x, i)=>{
str = str + x + ','
})
let str2 = ''
this.transferMsg.TransferOther.map((x, i)=>{
str2 = str2 + x + ','
})
this.transferMsg.CustomerIds = str.substring(0, str.length - 1)
this.transferMsg.TransferOther = str2.substring(0, str.length - 1)
this.apipost('/api/Customer/TransferCustomer', this.transferMsg, res=>{
if (res.data.resultCode == 1) {
this.multipleSelection = []
this.transferVisible = false
if (type === 3) {} {
this.drawer = false
}
this.$message.success(res.data.message);
this.getList()
this.transferMsg = {
CustomerIds: [],
TransferType: 1,
IsRead: 0,
EmpId: '',
TransferOther: []
}
}
})
}
console.log('转移')
},
showMessageFromChild(list){
this.mySelectCtrl=!this.mySelectCtrl
if (list) {
this.queryType = list
this.getList()
}
},
editCust(){
this.dialogTableVisibleName = '修改客户'
this.dialogTableVisible = true
},
openDetails(scope){
this.drawer = true
this.CustomerId = scope.row.CustomerId
this.CustomerName = scope.row.CustomerName
this.drawer = true
},
handleSizeChange(val) {
this.msg.pageSize = val
this.getList();
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
handleClose(done) {
done();
},
getList: function (){
this.tableData = []
this.loading = true
this.apipost('/api/Customer/GetCustomerPage', this.msg, res=>{
if (res.data.resultCode == 1) {
this.tableData = res.data.data.pageData;
this.total = res.data.data.count;
this.loading = false;
}
})
},
handleSelectionChange(val) {
this.multipleSelection = val.map(x=>
x.CustomerId
)
}
}
};
</script>
......@@ -8,6 +8,8 @@ import customerManageDemo from "./components/customerManage/customerManageDemo"
import businessManagement from "./components/businessManagement/businessManagement"
import clueManagement from "./components/clueManagement/clueManagement"
import contactsManagement from "./components/contactsManagement/contactsManagement"
import watersManagement from "./components/watersManagement/watersManagement"
import waitMatter from "./components/waitMatter/waitMatter"
Vue.use(Router);
export default new Router({
......@@ -91,6 +93,22 @@ export default new Router({
meta: {
title: "联系人管理"
}
},
{
path: "/watersManagement",
name: "watersManagement",
component: watersManagement,
meta: {
title: "公海管理"
}
},
{
path: "/waitMatter",
name: "waitMatter",
component: waitMatter,
meta: {
title: "待办事项"
}
}
]
},
......
......@@ -35,7 +35,7 @@
}
.template-div{
position: absolute;
top: 90px;
top: 80px;
left: 0;
right: 0;
bottom: 0;
......@@ -54,6 +54,14 @@
box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
background: #555;
}
.main .el-tag.el-tag--info{
background-color: rgba(0,0,0,0);
border-color: rgba(0,0,0,0);
display: inline-block;
white-space: nowrap;
overflow: hidden;
text-overflow:ellipsis;
}
</style>
<template>
<div class="main">
......@@ -68,23 +76,194 @@
<router-view/>
</div>
</div>
<!-- 添加商机弹窗 -->
<div v-if="dialogBusinessVisible">
<addBusinessBox name="新建商机" :ID="0" :CustomerId="CustomerId" :ContactId="ContactId" type="1"/>
</div>
<!-- 客户信息抽屉 -->
<el-drawer
:with-header="false"
size='70%'
:visible.sync="drawer"
direction="rtl"
:before-close="handleClose">
<customerInfoBox :CustomerId="CustomerId" @transferS="transfer" @watersS="waters" @editCustS="editCust"/>
</el-drawer>
<el-dialog :visible.sync="transferVisible" :close-on-click-modal="false" width="450px" custom-class="transfer-box add-box add-box2">
<div class="add-tit" slot="title">
<p><span></span>移交联系人</p>
<span icon="el-icon-close"></span>
</div>
<el-form :model="transferMsg" ref="form" class="MyEditForm" >
<div class="MyEditForm-item">
<el-form-item label="变更负责人为" class="label-pad-left">
<el-select
filterable
v-model="transferMsg.EmpId" placeholder="请选择">
<el-option
v-for="item in EmployeeList"
:label='item.EmName'
:value='item.EmployeeId'
:key='item.EmployeeId'>
</el-option>
</el-select>
</el-form-item>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" class="add-box-btn" @click="transfer(2)">确 定</el-button>
<el-button class="add-box-btn add-box-cancel" @click="transferVisible = false">取 消</el-button>
</div>
</el-dialog>
<!-- 编辑客户 -->
<div v-if="dialogCustomerVisible">
<customerDialogBox :name="dialogTableVisibleName" :CustomerId="CustomerId"/>
</div>
</div>
</template>
<script>
import HomeNavLeft from '../components/HomeNav/HomeNavLeft'
import HomeNavTop from '../components/HomeNav/HomeNavTop'
import addBusinessBox from "../components/businessManagement/addBusinessBox";
import customerDialogBox from "../components/dialogModel/customerDialogBox";
import customerInfoBox from "../components/assembly/customerInfoBox";
export default {
components: {HomeNavLeft, HomeNavTop},
components: {HomeNavLeft, HomeNavTop, addBusinessBox, customerDialogBox, customerInfoBox},
data () {
return {
dialogBusinessVisible: false,
CustomerId: 0,
ContactId: 0,
drawer: false,
CustomerId: 0,
CustomerName: '',
transferVisible: false,
EmployeeList: [],
dialogCustomerVisible: false,
dialogTableVisibleName: '新增客户',
transferMsg: {
ContactIds: [],
EmpId: '',
},
businessIdsArr: [],
multipleSelection: []
}
},
mounted () {
this.userInfo = this.getLocalStorage();
this.Employee()
let $this= this
this.MsgBus.$on('openCustomerWin', function (row) {
$this.CustomerId = row.CustomerId
$this.CustomerName = row.CustomerName
$this.drawer = true
})
this.MsgBus.$on('addBusinessBoxOpen', function(CustomerId, ContactId){
$this.CustomerId = CustomerId
$this.ContactId = ContactId
$this.dialogBusinessVisible = true
})
this.MsgBus.$on('closeBusinessDialogBox', function (){
$this.dialogBusinessVisible = false
})
this.MsgBus.$on('closeCustomerDialogBox', function (){
$this.dialogCustomerVisible = false
})
},
methods: {
editCust(){
this.dialogTableVisibleName = '修改客户'
this.dialogCustomerVisible = true
},
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 => {}
);
},
handleClose(done) {
done();
},
// 放入公海
waters(type){
let tips = '是否放入公海?'
if(type === 1) {
tips = '是否把客户“'+ this.CustomerName + '”放入公海?'
this.multipleSelection.push(this.CustomerId)
}
this.$confirm(tips, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let str = ''
this.multipleSelection.map((x, i)=>{
str = str + x + ','
})
this.apipost('/api/Customer/RemoveMyCustomer', {CustomerIds: str.substring(0, str.length - 1)}, res=>{
if (res.data.resultCode == 1) {
if (type === 1) {} {
this.drawer = false
}
this.multipleSelection = []
this.$message.success(res.data.message);
this.getList()
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消'
});
});
},
// 转移
transfer(type){
if (type !== 2) {
if (type === 3) {
this.businessIdsArr.push(this.CustomerId)
}
this.transferVisible = true
} else {
if (this.transferMsg.EmpId === '') {
return this.$message.error('请选择变更负责人!')
}
let str = ''
this.businessIdsArr.map((x, i)=>{
str = str + x + ','
})
this.transferMsg.ContactIds = str.substring(0, str.length - 1)
this.apipost('/api/Customer/TransferCustomerContact', this.transferMsg, res=>{
if (res.data.resultCode == 1) {
this.businessIdsArr = []
this.transferVisible = false
if (type === 3) {} {
this.drawer = false
}
this.$message.success(res.data.message);
this.getList()
this.transferMsg = {
ContactIds: [],
EmpId: '',
}
}
})
}
},
}
}
......
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