Commit c88c37b7 authored by 罗超's avatar 罗超

Merge branch 'master' of http://gitlab.oytour.com/huaguohao/crm

# Conflicts:
#	src/App.vue
#	src/router.js
parents 391ac978 896bd014
......@@ -26,6 +26,7 @@
"vue-chartjs": "^3.5.0",
"vue-echarts-v3": "^1.0.19",
"vue-lazyload": "^1.2.6",
"vue-quill-editor": "^3.0.6",
"vue-router": "^3.0.1",
"vue2.0-zoom": "^2.1.1",
"vuex": "^3.0.1",
......
.Record{
height: 100%;
overflow: auto;
background-color: white;
padding: 20px;
box-sizing: border-box;
}
.ha-cont{
display: flex;
align-items: center;
font-size: 12px;
position: relative;
line-height: 20px;
min-height: 40px;
padding-top: 3px;
}
.ha-cont .ha-week{
margin: 0 17px 0 10px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #777;
width: 80px;
}
.ha-cont .ha-circle{
-ms-flex-negative: 0;
flex-shrink: 0;
width: 10px;
height: 10px;
z-index: 2;
border-radius: 9px;
background-color: #fff;
border: 5px solid #a5ecd7;
}
.ha-cont .ha-time{
padding: 0 10px 0 24px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #aaa;
}
.ha-cont .ha-name {
padding: 0 10px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #333;
}
.ha-cont .ha-content{
padding: 0 10px 10px;
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
color: #333;
}
.ha-cont .ha-line{
position: absolute;
z-index: 1;
width: 1px;
top: 3px;
bottom: -3px;
left: 9px;
background-color: #e6e6e6;
}
.nodata{
text-align: center;
font-size: 12px;
}
\ No newline at end of file
......@@ -22,9 +22,17 @@ table { border-collapse:collapse; border-spacing:0; }
.perfectFont{
font-family: 'perfectFont';
}
.crm-btn.crm-btn-more.crm-table-btn{
padding: 3px 0 !important;
border: 0 !important;
background-color: transparent !important;
}
.crm-btn.crm-btn-more.crm-table-btn:hover{
background-color: transparent !important;
}
.crm-btn.el-button{
border-radius: 0;
padding: 8px 10px;
padding: 12px 15px;
text-align: center;
margin-right: 20px;
}
......@@ -68,12 +76,15 @@ table { border-collapse:collapse; border-spacing:0; }
color: rgba(255, 164, 117, .8) !important;
}
.crm-btn.crm-btn-more{
padding: 7px 10px;
padding: 11px 15px;
width: auto;
}
.el-input__inner{
border-radius: 0 !important;
}
.el-input-group__append{
border-radius: 0 !important;
}
.MyEditForm .el-form-item .label {
font-size: 10px;
color: #888888;
......@@ -154,7 +165,7 @@ table { border-collapse:collapse; border-spacing:0; }
/* 字体颜色 */
.font-color-link{
color: #2362fb!important;
color: #409eff !important;
}
.font-color-link:hover,.underline:hover{
text-decoration: underline;
......@@ -171,6 +182,13 @@ table { border-collapse:collapse; border-spacing:0; }
.font-color-info{
color: #909399!important;
}
.font-14-blod{
font-size: 14px;
font-weight: bold;
}
.bold{
font-weight: bold;
}
textarea{
resize:none!important;
}
......@@ -185,7 +203,11 @@ textarea{
font-size: 12px;
}
.wap1{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* flex */
.flex-center{
display: flex;
......
This diff is collapsed.
......@@ -67,12 +67,12 @@
class="home-menu-item"
v-for="(item, index) in navList"
:key="index"
:class="[index === activeIndex ? 'active' : '', activeIndex === index + 1 ? 'shang' : '']"
:class="[index === activeIndex ? 'active' : '']"
@click="changeMenu(item, index)"
>
<div>
<i :class="item.class"></i>
<span>{{item.name}}</span>
<i class="iconfont" :class="[item.MenuStyle ? JSON.parse(item.MenuStyle).icon : '']"></i>
<span>{{item.MenuName}}</span>
</div>
</li>
</ul>
......@@ -135,6 +135,9 @@ export default {
};
},
mounted() {
let userInfo = this.getLocalStorage()
this.userInfo = userInfo
this.navList = userInfo.UserMenu[0].ChildMenu[0].ChildMenu
let $this = this
this.MsgBus.$on('setLeftNav', function (val){
$this.activeIndex = val;
......@@ -144,7 +147,7 @@ export default {
changeMenu: function(item, ind) {
this.activeIndex = ind;
this.$router.push({
path: item.path
path: item.MenuUrl
});
}
}
......
......@@ -77,8 +77,8 @@
<div class="nav-right">
<div class="nav-right-menu">
<ul>
<li :class="{'active':chosenMenuId==item.id}" v-for="(item, index) in menuList" :key="index" @click="chosenFirstLeaveMenu(item)">
<i class="iconfont" :class="[item.icon]"></i>{{item.name}}
<li :class="{'active':chosenMenuId==item.MenuId}" v-for="(item, index) in menuList[0].ChildMenu" :key="index" @click="chosenFirstLeaveMenu(item, index)">
<i class="iconfont" :class="[item.MenuStyle ? JSON.parse(item.MenuStyle).icon : '']"></i>{{item.MenuName}}
</li>
</ul>
</div>
......@@ -104,38 +104,7 @@ export default {
return {
activeIndex: 0,
value: 0,
menuList: [
{
id:1,
name: "客户管理",
path: "/Home",
icon: "iconcompany"
},
{
id:2,
name: "任务/审批",
path: "/home",
icon: "icontask"
},
{
id:3,
name: "日志",
path: "/home",
icon: "iconlog"
},
{
id:4,
name: "通讯录",
path: "/home",
icon: "icontongxunlu"
},
{
id:5,
name: "智能分析",
path: "/home",
icon: "iconareachart"
}
],
menuList: [{ChildMenu: []}],
chosenMenuId: 0,
userInfo: {
EmName: '',
......@@ -146,14 +115,16 @@ export default {
mounted() {
let userInfo = this.getLocalStorage()
this.userInfo = userInfo
this.menuList = userInfo.UserMenu
this.chosenMenuId = userInfo.UserMenu[0].ChildMenu[0].MenuId
},
methods: {
chosenFirstLeaveMenu(item){
chosenFirstLeaveMenu(item, index){
this.chosenMenuId = item.id
this.MsgBus.$emit('setLeftNav', 0)
this.$router.push({
path: item.path
});
// this.$router.push({
// path: item.path
// });
},
errorHandler() {
return true;
......
......@@ -280,19 +280,19 @@ export default {
return {
newCast: [
{
name: '新客户',
name: '新客户',
num: 50
},{
name: '新联系人',
name: '新联系人',
num: 11
},{
name: '新商机',
name: '新商机',
num: 467
},{
name: '阶段变化的商机',
num: 1
},{
name: '新合同',
name: '新合同',
num: 39
}
],
......
......@@ -324,7 +324,7 @@
</el-form>
<div v-if="gjImgList.length" style="margin-bottom: 15px;">
<div class="img-box">
<div v-for="(item, index) in gjImgList" :key="index" class="img-item" :style="{'background-image': `url(${item.url})`}">
<div v-for="(item, index) in gjImgList" :key="index" class="img-item" :style="{'background-image': `url(${item.url})`}" @click="previewFile(item.url)">
<div class="img-item-del" @click="deleteImg(index)">×</div>
</div>
<el-upload
......@@ -378,65 +378,71 @@
</div>
</div>
<div class="genjin" style="margin-top: 20px">
<div class="line-item" v-for="(item, index) in logList" :key="index">
<div class="time">
<span>
<span class="raduis"></span>
<span>{{item.DateTimeStr}}</span>
</span>
</div>
<div class="content font-size-12">
<template v-for="(subItem, subIndex) in item.LogList">
<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}}</span> <span> {{subItem.LogInfo}}</span></p>
</div>
</div>
<div class="content-item" v-else :key="subIndex" >
<i class="iconfont iconcompany"></i>
<div class="content-fz">
<div class="cfz-top">
<div>
<img src="../../assets/img/cust/kehu2.png" alt="">
</div>
<div>
<p>{{subItem.CustomerFollowUpModel.CreateByStr}}</p>
<p class="font-color-info">{{subItem.UpdateDate}}</p>
</div>
<div class="tag">
<span>{{subItem.CustomerFollowUpModel.FollowUpTypeStr}}</span>
</div>
<div v-if="logList.length">
<div class="line-item" v-for="(item, index) in logList" :key="index">
<div class="time">
<span>
<span class="raduis"></span>
<span>{{item.DateTimeStr}}</span>
</span>
</div>
<div class="content font-size-12">
<template v-for="(subItem, subIndex) in item.LogList">
<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}}</span> <span> {{subItem.LogInfo}}</span></p>
</div>
<div class="cfz-bot">
<div>
<p class="mb-10">{{subItem.LogInfo}}</p>
<p class="xg-lxr"><span class="font-color-info">相关联系人:</span> <span>{{subItem.CustomerFollowUpModel.ContactName}}</span></p>
<div class="img-box mb-10" v-if="subItem.CustomerFollowUpModel.FollowUpImgList">
<div v-for="(img, imgIndex) in subItem.CustomerFollowUpModel.FollowUpImgList" :key="imgIndex" class="img-box-item" :style="`background-image:url(${img.FileUrl})`"></div>
</div>
<div class="content-item" v-else :key="subIndex" >
<i class="iconfont iconcompany"></i>
<div class="content-fz">
<div class="cfz-top">
<div>
<img src="../../assets/img/cust/kehu2.png" alt="">
</div>
<div>
<p>{{subItem.CustomerFollowUpModel.CreateByStr}}</p>
<p class="font-color-info">{{subItem.UpdateDate}}</p>
</div>
<div class="mb-10" v-if="subItem.CustomerFollowUpModel.FollowUpFileList" style="display: flex;">
<div>附件:</div>
<div>
<p v-for="(file, fileIndex) in subItem.CustomerFollowUpModel.FollowUpFileList" :key="fileIndex">
<span class="font-color-info">&nbsp;&nbsp;{{file.FileName}} </span>&nbsp;&nbsp;&nbsp;&nbsp;
<span class="font-color-link cp" @click="previewFile(file.FileUrl)"> 预览</span>
</p>
<div class="tag">
<span>{{subItem.CustomerFollowUpModel.FollowUpTypeStr}}</span>
</div>
</div>
<div class="cfz-bot">
<div>
<p class="mb-10">{{subItem.LogInfo}}</p>
<p class="xg-lxr"><span class="font-color-info">相关联系人:</span> <span>{{subItem.CustomerFollowUpModel.ContactName}}</span></p>
<div class="img-box mb-10" v-if="subItem.CustomerFollowUpModel.FollowUpImgList">
<div v-for="(img, imgIndex) in subItem.CustomerFollowUpModel.FollowUpImgList" :key="imgIndex" class="img-box-item" :style="`background-image:url(${img.FileUrl})`" @click="previewFile(img.FileUrl)"></div>
</div>
<div class="mb-10" v-if="subItem.CustomerFollowUpModel.FollowUpFileList" style="display: flex;">
<div class="font-color-info">附件:</div>
<div>
<p v-for="(file, fileIndex) in subItem.CustomerFollowUpModel.FollowUpFileList" :key="fileIndex">
<span >&nbsp;&nbsp;{{file.FileName}} </span>&nbsp;&nbsp;&nbsp;&nbsp;
<span class="font-color-link cp" @click="previewFile(file.FileUrl)"> 预览</span>
</p>
</div>
</div>
<p> <span class="font-color-info">下次联系时间:</span> <span>{{subItem.CustomerFollowUpModel.NextContactDate}}</span></p>
</div>
<p> <span class="font-color-info">下次联系时间:</span> <span>{{subItem.CustomerFollowUpModel.NextContactDate}}</span></p>
</div>
</div>
</div>
</div>
</template>
</template>
</div>
</div>
</div>
<div v-else class="nodata font-color-info">
<p>暂无数据</p>
</div>
</div>
</template>
<div v-if="addContactsShow">
<addContacts :ID="CustomerId" @addContactsOk="addContactsOk"/>
</div>
</div>
</template>
<script>
......@@ -551,7 +557,15 @@ export default {
this.GetLogPageList()
},
methods: {
addBusiness(){
let $this= this
this.MsgBus.$emit('addBusinessBoxOpen', $this.CustomerId, 0)
},
previewFile(file) {
if (file.IsPicture()) {
this.MsgBus.$emit('showImg', file)
return
}
window.open(file, "_blank");
},
GetLogPageList(t){
......@@ -714,6 +728,8 @@ export default {
this.addContactsShow = true
} else if (param.id < 3) {
this.type = param.id
} else if (param.id === 4) {
this.addBusiness()
}
}
}
......
......@@ -18,6 +18,9 @@
prop="BusinessName"
label="商机名称"
show-overflow-tooltip>
<template slot-scope="scope">
<p @click="openDetails(scope)" class="font-color-link cp">{{scope.row.BusinessName}}</p>
</template>
</el-table-column>
<el-table-column
prop="BudgetPrice"
......@@ -53,6 +56,10 @@ export default {
},
methods: {
openDetails(scope){
console.log(scope.row.ID)
this.MsgBus.$emit('busnessDrawerShow', scope.row.ID)
},
GetBusinessList(){
this.apipost('/api/Customer/GetBusinessList', {CustomerId: this.ID}, res=>{
if (res.data.resultCode == 1) {
......
......@@ -41,7 +41,7 @@
show-overflow-tooltip>
<template slot-scope="scope">
<p v-if="scope.row.IsFirstContact === 1" class="font-color-warning">首要联系人</p>
<p v-else class="font-color-link cp" @click="SetFirstContact(scope)">设为首要联系人</p>
<p v-else-if="IsRead === 0 && scope.row.IsFirstContact !== 1" class="font-color-link cp" @click="SetFirstContact(scope)">设为首要联系人</p>
</template>
</el-table-column>
</el-table>
......@@ -60,6 +60,10 @@ export default {
CustomerId: {
type: Number,
default: 0
},
IsRead: {
type: Number,
default: 0
}
},
data() {
......
<style>
.MyCoupon{
background-color: RGBA(246, 245, 248, 1);
height: 100%;
}
.MyCoupon .menu_list ul{
height: 40px;
line-height: 40px;
}
.MyCoupon .menu_list ul li{
float: left;
width: 137px;
text-align: center;
cursor: pointer;
}
.MyCoupon .menu_list ul li:last-child{
float: right;
width: 60px;
}
.MyCoupon .menu_list ul li .__cp i{
padding-left: 25px;
}
.MyCoupon .menu_list ul li span.__cp{
font-size: 14px;
}
.MyCoupon .menu_list ul li span.__cp._active{
color: rgba(13, 36, 129, 1);
border-bottom: 2px solid rgba(13, 36, 129, 1);
display: inline-block;
}
.Coupon-box{
position: relative;
max-height: calc(100vh - 45px);
overflow: auto;
padding: 20px;
box-sizing: border-box;
display: flex;
flex-flow:row wrap;
}
.Coupon-item{
position: relative;
height: 205px;
margin-bottom: 25px;
width: 218px;
margin-right: 25px;
}
.Coupon-item .top{
position: absolute;
width: calc(100%);
height: 104px;
background: url('../../assets/img/cust/bg1.png');
background-repeat: no-repeat;
background-size: 100% 100%;
padding: 10px 30px;
box-sizing: border-box;
color: white
}
.Coupon-item .top2{
background: url('../../assets/img/cust/bg2.png');
background-repeat: no-repeat;
background-size: 100% 100%;
}
.Coupon-item .top3{
background: url('../../assets/img/cust/bg3.png');
background-repeat: no-repeat;
background-size: 100% 100%;
}
.Coupon-item .top .zhe{
font-size: 30px;
}
.Coupon-item .top .zhe span{
font-size: 20px;
}
.Coupon-item .top .di{
font-size: 20px;
}
.Coupon-item .top .di span{
font-size: 30px;
}
.Coupon-item .top .man{
color: white;
font-size: 12px;
margin-bottom: 5px;
}
.Coupon-item .top .time{
font-size: 12px;
color: rgba(80, 105, 204, 1);
}
.Coupon-item .bottom{
position: absolute;
top: 104px;
background-color: white;
width: calc(100%);
padding: 10px 14px;
box-sizing: border-box;
}
.Coupon-item .bottom .bold{
margin-bottom: 4px;
}
</style>
<template>
<div class="MyCoupon">
<el-row class="menu_list">
<ul class="clearfix">
<li>
<el-dropdown trigger="click" placement="bottom-start">
<span class="el-dropdown-link">
<span class="__cp">
{{dropdownText}}
<i class="el-icon-arrow-down"></i>
</span>
</span>
<el-dropdown-menu class="changelanguage" slot="dropdown">
<el-dropdown-item @click.native="dropdownText = '不限', msg.couponsUseScope = 0, getList(), resetPageIndex()">不限</el-dropdown-item>
<el-dropdown-item @click.native="dropdownText = '通用', msg.couponsUseScope = 1, getList(), resetPageIndex()">通用</el-dropdown-item>
<el-dropdown-item @click.native="dropdownText = '跟团游', msg.couponsUseScope = 2, getList(), resetPageIndex()">跟团游</el-dropdown-item>
<el-dropdown-item @click.native="dropdownText = '当地游'">当地游</el-dropdown-item>
<el-dropdown-item @click.native="dropdownText = '定制游'">定制游</el-dropdown-item>
<el-dropdown-item @click.native="dropdownText = '签证', msg.couponsUseScope = 3, getList(), resetPageIndex()">签证</el-dropdown-item>
<el-dropdown-item @click.native="dropdownText = '机票', msg.couponsUseScope = 4, getList(), resetPageIndex()">机票</el-dropdown-item>
<el-dropdown-item @click.native="dropdownText = '酒店', msg.couponsUseScope = 10, getList(), resetPageIndex()">酒店</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</li>
<li>
<span class="__cp" :class="{_active: typeActive === 1 }" @click="typeActive = 1, msg.couponsType = 0, msg.couponEffectStatus = 1, getList(), resetPageIndex()">全部优惠券</span>
</li>
<li>
<span class="__cp" :class="{_active: typeActive === 2 }" @click="typeActive = 2, msg.couponsType = 2, msg.couponEffectStatus = 1, getList(), resetPageIndex()">折扣券</span>
</li>
<li>
<span class="__cp" :class="{_active: typeActive === 3 }" @click="typeActive = 3, msg.couponsType = 1, msg.couponEffectStatus = 1, getList(), resetPageIndex()">抵扣券</span>
</li>
<li>
<span class="__cp" :class="{_active: typeActive === 4 }" @click="typeActive = 4, msg.couponEffectStatus = 3, getList(), resetPageIndex()">已过期</span>
</li>
<li>
<img src="../../assets/img/cust/close.png" alt="" @click="$emit('handleClose')">
</li>
</ul>
</el-row>
<div class="Coupon-box" v-loading="loading">
<div class="Coupon-item" v-for="(item, index) in dataList" :key="index">
<div class="top" :class="{'top2': item.couponsType !== 1, 'top3': item.couponEffectStatus===3}">
<p class="zhe" v-if="item.couponsType !== 1">{{item.denomination}} <span></span></p>
<p class="di" v-else><span>{{item.denomination}}</span></p>
<p class="man">{{item.useCondition}}可用</p>
<p class="time" :style="{'color': item.couponsType !== 1 && tem.couponEffectStatus !== 3 ? 'rgba(197, 120, 80, 1)': item.couponEffectStatus===3 ? 'rgba(153, 153, 153, 1)' : ''}">{{item.effectDate | YMD}}-{{item.expirationDate | YMD}}</p>
</div>
<div class="bottom font-size-12">
<p class="bold">可用系列及线路</p>
<p class="font-color-info" style="margin-bottom: 5px;">{{item.lineName === '' ? '不限' : item.lineName}}-{{item.lineTeamName === '' ? '不限' : item.lineTeamName}}</p>
<p class="bold">优惠券来源</p>
<p class="font-color-info">{{item.remark}}</p>
</div>
</div>
</div>
<div v-if="dataList.length < 1" class="nodata font-color-info">
<p>暂无数据</p>
</div>
</div>
</template>
<script>
import moment from 'moment'
export default {
props: ['CustomerAccountId'],
data() {
return {
loading: false,
dropdownText: "不限",
typeActive: 1,
msg: {
pageIndex: 1,
pageSize: 999,
useState: 1,
lineId: 0,
lineteamId: 0,
couponsName: "",
couponsType: "",
couponStatus: 1,
couponEffectStatus: 1,
couponsUseScope: 0,
userId:'',
},
dataList: [],
totalCount: 0,
Count: 0,
};
},watch:{
},
mounted() {
this.getList()
},
methods: {
// 获取数据
getList() {
this.msg.userId = this.CustomerAccountId
this.loading = true;
this.apiJavaPost(
"/api/b2b/user/getUserCouponAllotList",
this.msg,
res => {
let nowTime = moment().format("YYYY-MM-DD HH:mm:ss");
if (res.data.resultCode == 1) {
let data = res.data.data.pageData;
data.forEach((x, i) => {
let cha = this.DateDiff(nowTime, x.expirationDate);
if (cha < 3) {
x.warning = true;
} else {
x.warning = false;
}
});
this.dataList = data;
this.totalCount = res.data.data.pageCount;
this.Count = res.data.data.count;
this.$forceUpdate()
} else {
this.Error(res.data.message);
}
this.loading = false;
},
null
);
},
//查询初始化页码
resetPageIndex() {
this.msg.pageIndex = 1;
},
}
}
</script>
\ No newline at end of file
<style>
.Record{
height: 100%;
overflow: auto;
background-color: white;
padding: 10px;
box-sizing: border-box;
}
.ha-cont{
display: flex;
align-items: center;
font-size: 12px;
position: relative;
line-height: 20px;
min-height: 40px;
padding-top: 3px;
}
.ha-cont .ha-week{
margin: 0 17px 0 10px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #777;
width: 80px;
}
.ha-cont .ha-circle{
-ms-flex-negative: 0;
flex-shrink: 0;
width: 10px;
height: 10px;
z-index: 2;
border-radius: 9px;
background-color: #fff;
border: 5px solid #a5ecd7;
}
.ha-cont .ha-time{
padding: 0 10px 0 24px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #aaa;
}
.ha-cont .ha-name {
padding: 0 10px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #333;
}
.ha-cont .ha-content{
padding: 0 10px 10px;
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
color: #333;
}
.ha-cont .ha-line{
position: absolute;
z-index: 1;
width: 1px;
top: 3px;
bottom: -3px;
left: 9px;
background-color: #e6e6e6;
}
.nodata{
text-align: center;
font-size: 12px;
}
@import '../../assets/css/Record.css';
</style>
<template>
<div class="Record" id="Record">
......
......@@ -7,9 +7,9 @@
<template>
<div class="addTeamman">
<div class="addTeamman-ctrl">
<el-button icon="el-icon-plus" class="crm-btn crm-btn-mini query-btn" @click="addTeammanShow=true">团队成员</el-button>
<el-button class="crm-btn query-btn crm-btn-mini easy-btn" @click="bianji">编辑</el-button>
<el-button class="crm-btn query-btn crm-btn-mini easy-btn" @click="yichu">移除</el-button>
<el-button icon="el-icon-plus" class="crm-btn crm-btn-mini query-btn" @click="addTeammanShow=true" v-if="IsRead === 0">团队成员</el-button>
<el-button class="crm-btn query-btn crm-btn-mini easy-btn" @click="bianji" v-if="IsRead === 0">编辑</el-button>
<el-button class="crm-btn query-btn crm-btn-mini easy-btn" @click="yichu" v-if="IsRead === 0">移除</el-button>
<el-button class="crm-btn query-btn crm-btn-mini org-btn margin-right0" @click="tuichu">退出团队</el-button>
</div>
<el-table
......@@ -72,6 +72,10 @@ export default {
CustomerId: {
type: Number,
default: 0
},
IsRead: {
type: Number,
default: 0
}
},
data() {
......
This diff is collapsed.
......@@ -69,9 +69,9 @@
<p>{{detailsData.CustomerName}}</p>
</div>
<div class="right">
<el-button class="crm-btn query-btn" @click="editCust">编辑</el-button>
<el-button class="crm-btn easy-btn iconfont iconwancheng">更改成交状态</el-button>
<el-dropdown @command="handleCommand" style="top: 1px;">
<el-button class="crm-btn query-btn" @click="editCust" v-if="detailsData.IsRead === 0">编辑</el-button>
<el-button class="crm-btn easy-btn iconfont iconwancheng" v-if="detailsData.IsRead === 0">更改成交状态</el-button>
<el-dropdown @command="handleCommand" style="top: 1px;" v-if="detailsData.IsRead === 0">
<el-button class="crm-btn crm-btn-more easy-btn margin-right0">
<i class="iconfont icongengduo"></i>
</el-button>
......@@ -113,15 +113,15 @@
<Details v-if="activeName === '2'" :detailsData="detailsData"/>
</el-tab-pane>
<el-tab-pane label="联系人" name="3">
<Contacts v-if="activeName === '3'" :CustomerId="CustomerId" />
<Contacts v-if="activeName === '3'" :CustomerId="CustomerId" :IsRead="detailsData.IsRead"/>
</el-tab-pane>
<el-tab-pane label="团队成员" name="4">
<TeamMembers v-if="activeName === '4'" :CustomerId="CustomerId"/>
<TeamMembers v-if="activeName === '4'" :CustomerId="CustomerId" :IsRead="detailsData.IsRead"/>
</el-tab-pane>
<el-tab-pane label="商机" name="5">
<Business v-if="activeName === '5'" :ID="CustomerId"/>
</el-tab-pane>
<el-tab-pane label="合同" name="6">
<el-tab-pane label="订单" name="6">
<Agreement />
</el-tab-pane>
<el-tab-pane label="回款" name="7">
......@@ -133,6 +133,9 @@
<el-tab-pane label="操作记录" name="9">
<Record v-if="activeName === '9'" :CustomerId="CustomerId"/>
</el-tab-pane>
<el-tab-pane label="交易信息" name="10">
<Transaction v-if="activeName === '10'" :CustomerId="CustomerId"/>
</el-tab-pane>
</el-tabs>
</div>
</div>
......@@ -148,6 +151,7 @@ import Agreement from "./Agreement";
import MoneyBack from "./MoneyBack";
import Enclosure from "../clueManagement/Enclosure";
import Record from "./Record";
import Transaction from "./Transaction"
export default {
components: {
Activity,
......@@ -158,7 +162,8 @@ export default {
Agreement,
MoneyBack,
Enclosure,
Record
Record,
Transaction
},
props:{
CustomerId: {
......
......@@ -321,7 +321,7 @@
</el-form>
<div v-if="gjImgList.length" style="margin-bottom: 15px;">
<div class="img-box">
<div v-for="(item, index) in gjImgList" :key="index" class="img-item" :style="{'background-image': `url(${item.url})`}">
<div v-for="(item, index) in gjImgList" :key="index" class="img-item" :style="{'background-image': `url(${item.url})`}" @click="previewFile(item.url)">
<div class="img-item-del" @click="deleteImg(index)">×</div>
</div>
<el-upload
......@@ -409,13 +409,13 @@
<div>
<p class="mb-10">{{subItem.LogInfo}}</p>
<div class="img-box mb-10" v-if="subItem.CustomerFollowUpModel.FollowUpImgList">
<div v-for="(img, imgIndex) in subItem.CustomerFollowUpModel.FollowUpImgList" :key="imgIndex" class="img-box-item" :style="`background-image:url(${img.FileUrl})`"></div>
<div v-for="(img, imgIndex) in subItem.CustomerFollowUpModel.FollowUpImgList" :key="imgIndex" class="img-box-item" :style="`background-image:url(${img.FileUrl})`" @click="previewFile(img.FileUrl)"></div>
</div>
<div class="mb-10" v-if="subItem.CustomerFollowUpModel.FollowUpFileList" style="display: flex;">
<div>附件:</div>
<div class="font-color-info">附件:</div>
<div>
<p v-for="(file, fileIndex) in subItem.CustomerFollowUpModel.FollowUpFileList" :key="fileIndex">
<span class="font-color-info">&nbsp;&nbsp;{{file.FileName}} </span>&nbsp;&nbsp;&nbsp;&nbsp;
<span >&nbsp;&nbsp;{{file.FileName}} </span>&nbsp;&nbsp;&nbsp;&nbsp;
<span class="font-color-link cp" @click="previewFile(file.FileUrl)"> 预览</span>
</p>
</div>
......@@ -546,6 +546,10 @@ export default {
},
methods: {
previewFile(file) {
if (file.IsPicture()) {
this.MsgBus.$emit('showImg', file)
return
}
window.open(file, "_blank");
},
GetLogPageList(t){
......@@ -605,6 +609,7 @@ export default {
NextContactDate: '',
ContactContent: ''
}
this.GetLogPageList()
}
})
},
......
......@@ -19,7 +19,7 @@
<div class="Contacts">
<div class="add-contacts">
<el-button class="crm-btn query-btn crm-btn-mini easy-btn" @click="guanlian">关联</el-button>
<el-button class="crm-btn query-btn crm-btn-mini easy-btn" @click="jiechuguanlian">解除关联</el-button>
<el-button class="crm-btn query-btn crm-btn-mini easy-btn" @click="jiechuguanlian" v-if="IsRead === 0">解除关联</el-button>
<el-button icon="el-icon-plus" class="crm-btn query-btn crm-btn-mini margin-right0" @click="addContactsShow=true">新建联系人</el-button>
</div>
<el-table
......@@ -53,7 +53,7 @@
show-overflow-tooltip>
<template slot-scope="scope">
<p v-if="scope.row.IsFirstContact === 1" class="font-color-warning">首要联系人</p>
<p v-else class="font-color-link cp" @click="SetFirstContact(scope)">设为首要联系人</p>
<p v-else-if="IsRead === 0 && scope.row.IsFirstContact !== 1" class="font-color-link cp" @click="SetFirstContact(scope)">设为首要联系人</p>
</template>
</el-table-column>
</el-table>
......@@ -105,6 +105,10 @@ export default {
BusinessIdCustomerId: {
type: Number,
default: 0
},
IsRead: {
type: Number,
default: 0
}
},
data() {
......
<style>
.Record{
height: 100%;
overflow: auto;
background-color: white;
padding: 10px;
box-sizing: border-box;
}
.ha-cont{
display: flex;
align-items: center;
font-size: 12px;
position: relative;
line-height: 20px;
min-height: 40px;
padding-top: 3px;
}
.ha-cont .ha-circle{
-ms-flex-negative: 0;
flex-shrink: 0;
width: 10px;
height: 10px;
z-index: 2;
border-radius: 9px;
background-color: #fff;
border: 5px solid #a5ecd7;
}
.ha-cont .ha-time{
padding: 0 10px 0 24px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #aaa;
}
.ha-cont .ha-name {
padding: 0 10px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #333;
}
.ha-cont .ha-content{
padding: 0 10px 10px;
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
color: #333;
}
.ha-cont .ha-line{
position: absolute;
z-index: 1;
width: 1px;
top: 3px;
bottom: -3px;
left: 9px;
background-color: #e6e6e6;
}
.nodata{
text-align: center;
font-size: 12px;
}
@import '../../assets/css/Record.css';
</style>
<template>
<div class="Record" id="Record">
......
......@@ -7,9 +7,9 @@
<template>
<div class="addTeamman">
<div class="addTeamman-ctrl">
<el-button icon="el-icon-plus" class="crm-btn crm-btn-mini query-btn" @click="addTeammanShow=true">团队成员</el-button>
<el-button class="crm-btn query-btn crm-btn-mini easy-btn" @click="bianji">编辑</el-button>
<el-button class="crm-btn query-btn crm-btn-mini easy-btn" @click="yichu">移除</el-button>
<el-button icon="el-icon-plus" class="crm-btn crm-btn-mini query-btn" @click="addTeammanShow=true" v-if="IsRead === 0">团队成员</el-button>
<el-button class="crm-btn query-btn crm-btn-mini easy-btn" @click="bianji" v-if="IsRead === 0">编辑</el-button>
<el-button class="crm-btn query-btn crm-btn-mini easy-btn" @click="yichu" v-if="IsRead === 0">移除</el-button>
<el-button class="crm-btn query-btn crm-btn-mini org-btn margin-right0" @click="tuichu">退出团队</el-button>
</div>
<el-table
......@@ -72,6 +72,10 @@ export default {
BusinessId: {
type: Number,
default: 0
},
IsRead: {
type: Number,
default: 0
}
},
data() {
......
......@@ -151,14 +151,22 @@
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="客户名称" prop="CustomerId">
<el-select v-model="form.CustomerId" :disabled="type==='1' ? true : false" placeholder="请选择客户">
<el-option
<el-select v-model="form.CustomerId" :disabled="type==='1' ? true : false" placeholder="请选择客户" v-if="!isGuest">
<el-option
v-for="item in CustomerList"
:key="item.CustomerId"
:label="item.CustomerName"
:value="item.CustomerId">
</el-option>
</el-select>
<el-select v-model="form.CustomerId" :disabled="type==='1' ? true : false" placeholder="请选择客户" v-else>
<el-option
v-for="item in CustomerList"
:key="item.ID"
:label="item.GusetName"
:value="item.ID">
</el-option>
</el-select>
</el-form-item>
</div>
</el-col>
......@@ -249,7 +257,7 @@
</template>
<script>
export default {
props:['ID', 'name', 'CustomerId', 'ContactId', 'type'],
props:['ID', 'name', 'CustomerId', 'ContactId', 'type', 'isGuest'],
data() {
return {
CustomerList: [],
......@@ -260,10 +268,10 @@ export default {
ID: 0,
CustomerId: '',
BudgetPrice: '',
LineId: '',
LineId: 10,
BusinessName: '',
BusinessStatus: '',
LineteamId: '',
LineteamId: 14,
DepartTime: '',
PeopleNumber: 1,
Remark: '',
......@@ -315,7 +323,12 @@ export default {
}
},
mounted() {
this.getCustomerList()
if (this.isGuest) {
this.form.CustomerType = 1
this.getGuestList()
} else {
this.getCustomerList()
}
this.getLineList()
this.GetBusinessStatusEnum()
let $this = this
......@@ -326,7 +339,13 @@ export default {
$this.dialogTableVisible = true
},50)
if (this.ID!==0) {
this.apipost('/api/Customer/GetAllBusinessModel', {BusinessId: this.ID}, res=>{
let msg = {
BusinessId: this.ID
}
if (this.isGuest) {
msg.CustomerType = 1
}
this.apipost('/api/Customer/GetAllBusinessModel', msg, res=>{
if (res.data.resultCode == 1) {
let data = res.data.data
if (data.LineId) {
......@@ -353,7 +372,7 @@ export default {
});
},
getLineList() {
this.apipost2("line_post_GetAllList_V2", {LineDirection: 0}, res => {
this.apipost2("line_post_GetAllList_V2", {LineDirection: 14}, res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
}
......@@ -366,6 +385,13 @@ export default {
}
})
},
getGuestList(){
this.apipost('/api/Customer/GetGuesstCustomerByCreateList', {}, res=>{
if (res.data.resultCode == 1) {
this.CustomerList = res.data.data
}
})
},
getCustomerList(){
this.apipost('/api/Customer/GetCustomerListByCreateInfo', {}, res=>{
if (res.data.resultCode == 1) {
......
......@@ -178,9 +178,9 @@
<p>{{detailsData.BusinessName}}</p>
</div>
<div class="right">
<el-button class="crm-btn query-btn" @click="editCustbusiness">编辑</el-button>
<el-button class="crm-btn easy-btn iconfont iconplus-transfer ">转移</el-button>
<el-dropdown @command="handleCommand" style="top: 1px;">
<el-button class="crm-btn query-btn" @click="editCustbusiness" v-if="detailsData.IsRead === 0">编辑</el-button>
<el-button class="crm-btn easy-btn iconfont iconplus-transfer " v-if="detailsData.IsRead === 0">转移</el-button>
<el-dropdown @command="handleCommand" style="top: 1px;" v-if="detailsData.IsRead === 0">
<el-button class="crm-btn crm-btn-more easy-btn margin-right0">
<i class="iconfont icongengduo"></i>
</el-button>
......@@ -282,19 +282,16 @@
<Details v-if="activeName === '2'" :detailsData="detailsData"/>
</el-tab-pane>
<el-tab-pane label="联系人" name="3">
<Contacts v-if="activeName === '3'" :BusinessId="BusinessId" :BusinessIdCustomerId="detailsData.CustomerId" />
<Contacts v-if="activeName === '3'" :BusinessId="BusinessId" :BusinessIdCustomerId="detailsData.CustomerId" :IsRead="detailsData.IsRead"/>
</el-tab-pane>
<el-tab-pane label="团队成员" name="4">
<TeamMembers v-if="activeName === '4'" :BusinessId="BusinessId"/>
</el-tab-pane>
<el-tab-pane label="合同" name="6">
<Agreement />
<TeamMembers v-if="activeName === '4'" :BusinessId="BusinessId" :IsRead="detailsData.IsRead"/>
</el-tab-pane>
<el-tab-pane label="回款" name="7">
<MoneyBack />
</el-tab-pane>
<el-tab-pane label="附件" name="8">
<Enclosure v-if="activeName === '8'" :ID='BusinessId' :type='2'/>
<Enclosure v-if="activeName === '8'" :ID='BusinessId' :type='2' :IsRead="detailsData.IsRead"/>
</el-tab-pane>
<el-tab-pane label="操作记录" name="9">
<Record v-if="activeName === '9'" />
......@@ -310,7 +307,6 @@ import Details from "./bsDetails";
import Contacts from "./Contacts";
import TeamMembers from "./TeamMembers";
import Business from "../assembly/Business";
import Agreement from "../assembly/Agreement";
import MoneyBack from "../assembly/MoneyBack";
import Enclosure from "../clueManagement/Enclosure";
import Record from "./Record";
......@@ -321,7 +317,6 @@ export default {
Contacts,
TeamMembers,
Business,
Agreement,
MoneyBack,
Enclosure,
Record
......
......@@ -5,8 +5,8 @@
<div class="customerManage">
<div class="tools">
<h1>商机管理</h1>
<div>
<el-input placeholder="请输入商机名" v-model="msg.BusinessName" class="input-with-select">
<div style="width: 340px;">
<el-input placeholder="请输入商机名" v-model="msg.KeyWord" class="input-with-select">
<el-button slot="append" icon="el-icon-search" @click="getList"></el-button>
</el-input>
</div>
......@@ -26,7 +26,7 @@
<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-select size="mini" v-model="msg.WhereType" placeholder="请选择" @change="getList">
<el-option
v-for="item in WhereTypeList"
:key="item.id"
......@@ -59,11 +59,11 @@
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
height="730"
height="660"
border
row-class-name="font-size-12"
@selection-change="handleSelectionChange">
<el-table-column fixed type="selection" width="40"></el-table-column>
<el-table-column :selectable='checkboxT' fixed type="selection" width="40"></el-table-column>
<el-table-column
fixed
prop="BusinessName"
......@@ -174,7 +174,7 @@
</el-table>
</div>
<div>
<!-- <el-pagination
<el-pagination
class="Mypagination"
background
@current-change="handleCurrentChange"
......@@ -183,7 +183,7 @@
layout="sizes, prev, pager, next"
@size-change="handleSizeChange"
:total="total">
</el-pagination> -->
</el-pagination>
</div>
<el-drawer
:with-header="false"
......@@ -213,6 +213,49 @@
<div v-if="addBusinessShow">
<addTeamman :ID="businessIds" @addTeammanOk="addTeammanOk"/>
</div>
<!-- 商机转移 -->
<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>
</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>
</template>
<script>
......@@ -303,7 +346,7 @@ export default {
],
BusinessId: 0,
BusinessIdCustomerId: 0,
dialogTableVisibleName: '新客户',
dialogTableVisibleName: '新客户',
dialogBusinessVisibleName: '新建商机',
CustomerId: 0,
CustomerIdStr: '',
......@@ -325,10 +368,9 @@ export default {
TransferType: 1, //类型,1-移除,2-转为团员
IsRead: 0, //0-读写,1-只读
EmpId: '',
TransferOther: [] //1-联系人,2-商机,3-合同
},
msg: {
BusinessName: '',
KeyWord: '',
pageIndex: 1,
pageSize: 30,
ContactNumber: '',
......@@ -359,10 +401,6 @@ export default {
name: '转移',
class:'iconfont iconplus-transfer',
myFun: this.transfer
},{
name: '导出选中',
class:'iconfont icondaochu',
myFun: this.export
},{
name: '删除',
class:'iconfont icondelete',
......@@ -391,6 +429,13 @@ export default {
})
},
methods: {
checkboxT(row,index){
if(row.IsRead===0){
return 1;
}else{
return 0;
}
},
addTeammanOk(){
this.addBusinessShow = false
},
......@@ -500,7 +545,7 @@ export default {
})
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=>{
this.apipost('/api/Customer/TransferCustomerBusiness', this.transferMsg, res=>{
if (res.data.resultCode == 1) {
this.multipleSelection = []
this.transferVisible = false
......@@ -513,8 +558,7 @@ export default {
CustomerIds: [],
TransferType: 1,
IsRead: 0,
EmpId: '',
TransferOther: []
EmpId: ''
}
}
})
......
......@@ -5,74 +5,13 @@
</template>
<script>
export default {
props:{
data:{
type:Array,
default:[]
}
},
props: ['MYdata'],
data() {
return {
datatwo:[]
};
},
mounted() {
this.data=[
{
dataStr:'8月',
preferPrice:12000
},
{
dataStr:'9月',
preferPrice:120000
},
{
dataStr:'10月',
preferPrice:80000
},
{
dataStr:'11月',
preferPrice:85000
},
{
dataStr:'12月',
preferPrice:7000
},
{
dataStr:'1月',
preferPrice:160000
},
{
dataStr:'2月',
preferPrice:300000
},
]
this.datatwo=[
{
dataStr:'9月',
preferPrice:480000
},
{
dataStr:'10月',
preferPrice:120000
},
{
dataStr:'11月',
preferPrice:850000
},
{
dataStr:'12月',
preferPrice:70000
},
{
dataStr:'1月',
preferPrice:320000
},
{
dataStr:'2月',
preferPrice:700000
},
]
this.init();
},
methods: {
......@@ -80,12 +19,11 @@ export default {
let myChart = this.$echarts.init(this.$refs.myLineRank);
var dataAxis = [];
var data2 = [];
this.data.forEach(x=>{
dataAxis.push(x.dataStr)
data2.push(x.preferPrice)
this.MYdata.forEach(x=>{
dataAxis.push(x.StartTime)
data2.push(x.DueInMoney)
})
let option = {
// backgroundColor: "#0abb87", //"#19133e6e",
title: {
show: false
},
......
......@@ -5,17 +5,12 @@
</template>
<script>
export default {
props: {
data: {
type: Array,
default: []
}
},
props: ['MYdata'],
data() {
return {};
},
mounted() {
this.data = [
this.MYdata = [
{
dataStr: "9月",
preferPrice: 12000
......@@ -48,7 +43,7 @@ export default {
let myChart = this.$echarts.init(this.$refs.myLineRank);
var dataAxis = [];
var data2 = [];
this.data.forEach(x => {
this.MYdata.forEach(x => {
dataAxis.push(x.dataStr);
data2.push(x.preferPrice);
});
......
......@@ -5,42 +5,11 @@
</template>
<script>
export default {
props:{
data:{
type:Array,
default:[]
}
},
props:['MYdata'],
data() {
return {};
},
mounted() {
this.data=[
{
dataStr:'9月',
preferPrice:12000
},
{
dataStr:'10月',
preferPrice:8000
},
{
dataStr:'11月',
preferPrice:8500
},
{
dataStr:'12月',
preferPrice:7000
},
{
dataStr:'1月',
preferPrice:16000
},
{
dataStr:'2月',
preferPrice:0
},
]
this.init();
},
methods: {
......@@ -48,9 +17,9 @@ export default {
let myChart = this.$echarts.init(this.$refs.myLineRank);
var dataAxis = [];
var data2 = [];
this.data.forEach(x=>{
dataAxis.push(x.dataStr)
data2.push(x.preferPrice)
this.MYdata.forEach(x=>{
dataAxis.push(x.Periods)
data2.push(x.CommissionMoney)
})
let option = {
// backgroundColor: "#0abb87", //"#19133e6e",
......
......@@ -305,7 +305,7 @@
</el-form>
<div v-if="gjImgList.length" style="margin-bottom: 15px;">
<div class="img-box">
<div v-for="(item, index) in gjImgList" :key="index" class="img-item" :style="{'background-image': `url(${item.url})`}">
<div v-for="(item, index) in gjImgList" :key="index" class="img-item" :style="{'background-image': `url(${item.url})`}" @click="previewFile(item.url)">
<div class="img-item-del" @click="deleteImg(index)">×</div>
</div>
<el-upload
......@@ -385,13 +385,13 @@
<div>
<p class="mb-10">{{subItem.LogInfo}}</p>
<div class="img-box mb-10" v-if="subItem.CustomerFollowUpModel.FollowUpImgList">
<div v-for="(img, imgIndex) in subItem.CustomerFollowUpModel.FollowUpImgList" :key="imgIndex" class="img-box-item" :style="`background-image:url(${img.FileUrl})`"></div>
<div v-for="(img, imgIndex) in subItem.CustomerFollowUpModel.FollowUpImgList" :key="imgIndex" class="img-box-item" :style="`background-image:url(${img.FileUrl})`" @click="previewFile(img.FileUrl)"></div>
</div>
<div class="mb-10" v-if="subItem.CustomerFollowUpModel.FollowUpFileList" style="display: flex;">
<div>附件:</div>
<div class="font-color-info">附件:</div>
<div>
<p v-for="(file, fileIndex) in subItem.CustomerFollowUpModel.FollowUpFileList" :key="fileIndex">
<span class="font-color-info">&nbsp;&nbsp;{{file.FileName}} </span>&nbsp;&nbsp;&nbsp;&nbsp;
<span >&nbsp;&nbsp;{{file.FileName}} </span>&nbsp;&nbsp;&nbsp;&nbsp;
<span class="font-color-link cp" @click="previewFile(file.FileUrl)"> 预览</span>
</p>
</div>
......@@ -491,6 +491,10 @@ export default {
},
methods: {
previewFile(file) {
if (file.IsPicture()) {
this.MsgBus.$emit('showImg', file)
return
}
window.open(file, "_blank");
},
GetLogPageList(t){
......@@ -548,6 +552,7 @@ export default {
NextContactDate: '',
ContactContent: ''
}
this.GetLogPageList()
}
})
},
......
......@@ -6,7 +6,7 @@
</style>
<template>
<div class="Enclosure">
<div class="add-Enclosure">
<div class="add-Enclosure" v-if="upload !== 2">
<el-upload
class="upload-demo"
:file-list="fileList" :limit="1" :http-request="uploadImg2" :multiple="true"
......@@ -47,7 +47,7 @@
show-overflow-tooltip>
<template slot-scope="scope">
<span class="font-color-link cp" style="padding-right: 10px;" @click="previewFile(scope.row.FileURL)">预览</span>
<span class="font-color-warning cp underline" v-if="scope.row.FileUploadType" @click="deleteItem(scope.row.ID)">删除</span>
<span class="font-color-warning cp underline" v-if="scope.row.FileUploadType && IsRead === 0" @click="deleteItem(scope.row.ID)">删除</span>
</template>
</el-table-column>
</el-table>
......@@ -55,7 +55,7 @@
</template>
<script>
export default {
props:['ID', 'type'],
props:['ID', 'type', 'IsRead', 'upload', 'isGuest'],
data() {
return {
loading: false,
......@@ -81,6 +81,10 @@ export default {
this.msg.FileSoureType = this.type
this.fileMsg.FileSoureId = this.ID
this.fileMsg.FileSoureType = this.type
if (this.isGuest) {
this.msg.CustomerType = 1
this.fileMsg.CustomerType = 1
}
this.getList()
},
methods: {
......@@ -123,6 +127,10 @@ export default {
});
},
previewFile(file) {
if (file.IsPicture()) {
this.MsgBus.$emit('showImg', file)
return
}
window.open(file, "_blank");
},
// 上传附件
......
<style>
.Record{
height: 100%;
overflow: auto;
background-color: white;
padding: 10px;
box-sizing: border-box;
}
.ha-cont{
display: flex;
align-items: center;
font-size: 12px;
position: relative;
line-height: 20px;
min-height: 40px;
padding-top: 3px;
}
.ha-cont .ha-week{
margin: 0 17px 0 10px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #777;
width: 80px;
}
.ha-cont .ha-circle{
-ms-flex-negative: 0;
flex-shrink: 0;
width: 10px;
height: 10px;
z-index: 2;
border-radius: 9px;
background-color: #fff;
border: 5px solid #a5ecd7;
}
.ha-cont .ha-time{
padding: 0 10px 0 24px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #aaa;
}
.ha-cont .ha-name {
padding: 0 10px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #333;
}
.ha-cont .ha-content{
padding: 0 10px 10px;
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
color: #333;
}
.ha-cont .ha-line{
position: absolute;
z-index: 1;
width: 1px;
top: 3px;
bottom: -3px;
left: 9px;
background-color: #e6e6e6;
}
.nodata{
text-align: center;
font-size: 12px;
}
@import '../../assets/css/Record.css';
</style>
<template>
<div class="Record" id="Record">
......
......@@ -226,7 +226,22 @@
</el-form-item>
</div>
</el-col>
<el-col :span="16" v-if="form.CustomerSourceType === 6">
<el-col :span="8">
<div class="MyEditForm-item label-pad-left">
<el-form-item label="下次联系时间">
<el-date-picker
:clearable="false"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="form.NextContactTime"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="24" v-if="form.CustomerSourceType === 6">
<div class="MyEditForm-item label-pad-left">
<el-form-item label="线索来源信息" prop="CustomerSource">
<el-input type="textarea" placeholder="请输入线索来源信息" v-model="form.CustomerSource"></el-input>
......@@ -391,7 +406,11 @@ export default {
},
name: {
type: String,
default: '新增客户'
default: '新建客户'
},
type: {
type: String,
default: '1'
}
},
data() {
......@@ -409,6 +428,7 @@ export default {
CustomerLevelEnum: [],
CustomerBrandList: [],
form: {
NextContactTime: '',
CustomerId: 0,
CustomerName: '',
CustomerLevel: '',
......@@ -535,7 +555,9 @@ export default {
} else {
this.$message.success('新建线索成功');
}
this.$emit('getList')
if (this.type !== '2') {
this.$emit('getList')
}
this.resetForm("form");
}
})
......@@ -570,7 +592,8 @@ export default {
BrandIds: [],
Images: [],
BusinessCardPhotos: [],
HousePhotos: []
HousePhotos: [],
NextContactTime: ''
}
this.$refs[formName].resetFields();
},
......
This diff is collapsed.
<style>
.drawer-box{
height: 100%;
}
.drawer-header{
height: 83px;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 30px;
}
.drawer-header .left{
display: flex;
align-items: center;
}
.drawer-header .left img{
display: inline-block;
margin-right: 10px;
}
.drawer-body{
height: calc( 100% - 83px);
}
.drawer-body .top-info{
height: 115px;
padding: 30px;
box-sizing: border-box;
font-size: 12px;
background-color: #F6F4FC;
}
.drawer-body .top-info .info-lable{
display: inline-block;
width: 80px;
color: #999999;
}
.margin-bottom-25{
margin-bottom: 25px;
}
.drawer-box .el-tabs__nav-wrap::after{
height: 0;
}
.drawer-body .el-tabs__header{
padding: 0 25px;
margin-bottom: 0;
}
.drawer-body>.content{
height: calc(100% - 115px);
}
.drawer-body .el-tabs{
height: 100%;
}
.drawer-body .el-tabs__content{
background-color: #F6F4FC;
height: calc(100% - 40px);
box-sizing: border-box;
}
.drawer-body .el-tabs__content .el-tab-pane{
height: 100%;
position: absolute;
width: calc(100%);
padding: 17px 20px;
box-sizing: border-box
}
</style>
<template>
<div class="drawer-box" v-if="loading">
<div class="drawer-header">
<div class="left">
<img src="../../assets/img/cust/kehu2.png" alt="">
<p>{{detailsData.GusetName}}</p>
</div>
<div class="right">
<el-button class="crm-btn query-btn" @click="editCust" >编辑</el-button>
<el-dropdown @command="handleCommand" style="top: 1px;" >
<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 command="z"><i class="iconfont iconplus-transfer"></i> 转移</el-dropdown-item>
<el-dropdown-item command="d"><i class="iconfont icondelete"></i> 删除</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div>
<div class="drawer-body">
<div class="top-info">
<el-row class="margin-bottom-25">
<el-col :span="12">
<span class="info-lable">客户级别:</span><span>{{detailsData.CustomerIdLevelStr}}</span>
</el-col>
<el-col :span="12">
<span class="info-lable">创建时间:</span><span>{{detailsData.CreateDate ? detailsData.CreateDate : ''}}</span>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<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 : ''}}</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" :showType="2"/>
</el-tab-pane>
<el-tab-pane label="详细资料" name="2">
<Details v-if="activeName === '2'" :detailsData="detailsData"/>
</el-tab-pane>
<el-tab-pane label="附件" name="8">
<Enclosure :ID='CustomerId' :type='1' :isGuest="true" v-if="activeName === '8'"/>
</el-tab-pane>
<el-tab-pane label="操作记录" name="9">
<Record v-if="activeName === '9'" :CustomerId="CustomerId"/>
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
</template>
<script>
import Activity from "../guestManagement/Activity";
import Details from "../guestManagement/Details";
import Enclosure from "../clueManagement/Enclosure";
import Record from "../guestManagement/Record";
export default {
components: {
Activity,
Details,
Enclosure,
Record
},
props:{
CustomerId: {
type: Number,
default: 0
}
},
data() {
return {
activeName: '1',
detailsData: {},
loading: false,
};
},watch:{
CustomerId: {
handler(val, oldVal){
this.init()
this.activeName = '1'
},
deep:true
}
},
mounted() {
let $this = this
$this.init()
// 监听修改更新界面
this.MsgBus.$on('RefreshInfoBox', function () {
$this.init()
})
},
methods: {
init(){
this.apipost('/api/Customer/GetAllGuesstCustomerModel', {ID: this.CustomerId}, res=>{
if (res.data.resultCode == 1) {
let data = res.data.data
if(!data.HousePhotos){
data.HousePhotos = []
}
if(!data.BusinessCardPhotos){
data.BusinessCardPhotos = []
}
if(!data.Images){
data.Images = []
}
if(!data.CustomerSourceType){
data.CustomerSourceType = ''
}
if(!data.CustomerSource){
data.CustomerSource = ''
}
if(!data.Province){
data.Province = ''
}
if(!data.Country){
data.Country = ''
}
if(!data.City){
data.City = ''
}
if(!data.District){
data.District = ''
}
this.detailsData = data
this.loading = true
}
})
},
handleCommand(command){
if (command === 'z') {
this.$emit('transferS', 3);
} else if (command === 'g') {
}
},
handleClick(tab, event) {},
editCust(){
this.$emit('editCustS', 2)
},
handleClose(done) {
done();
}
}
}
</script>
\ No newline at end of file
......@@ -308,7 +308,7 @@
</el-form>
<div v-if="gjImgList.length" style="margin-bottom: 15px;">
<div class="img-box">
<div v-for="(item, index) in gjImgList" :key="index" class="img-item" :style="{'background-image': `url(${item.url})`}">
<div v-for="(item, index) in gjImgList" :key="index" class="img-item" :style="{'background-image': `url(${item.url})`}" @click="previewFile(item.url)">
<div class="img-item-del" @click="deleteImg(index)">×</div>
</div>
<el-upload
......@@ -358,60 +358,65 @@
</div>
</div>
<div class="genjin" style="margin-top: 20px">
<div class="line-item" v-for="(item, index) in logList" :key="index">
<div class="time">
<span>
<span class="raduis"></span>
<span>{{item.DateTimeStr}}</span>
</span>
</div>
<div class="content font-size-12">
<template v-for="(subItem, subIndex) in item.LogList">
<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}}</span> <span> {{subItem.LogInfo}}</span></p>
</div>
</div>
<div class="content-item" v-else :key="subIndex" >
<i class="iconfont iconcompany"></i>
<div class="content-fz">
<div class="cfz-top">
<div>
<img src="../../assets/img/cust/kehu2.png" alt="">
</div>
<div>
<p>{{subItem.CustomerFollowUpModel.CreateByStr}}</p>
<p class="font-color-info">{{subItem.UpdateDate}}</p>
</div>
<div class="tag">
<span>{{subItem.CustomerFollowUpModel.FollowUpTypeStr}}</span>
</div>
<div v-if="logList.length">
<div class="line-item" v-for="(item, index) in logList" :key="index">
<div class="time">
<span>
<span class="raduis"></span>
<span>{{item.DateTimeStr}}</span>
</span>
</div>
<div class="content font-size-12">
<template v-for="(subItem, subIndex) in item.LogList">
<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}}</span> <span> {{subItem.LogInfo}}</span></p>
</div>
<div class="cfz-bot">
<div>
<p class="mb-10">{{subItem.LogInfo}}</p>
<p class="xg-lxr"><span class="font-color-info">相关联系人:</span> <span>{{subItem.CustomerFollowUpModel.ContactName}}</span></p>
<div class="img-box mb-10" v-if="subItem.CustomerFollowUpModel.FollowUpImgList">
<div v-for="(img, imgIndex) in subItem.CustomerFollowUpModel.FollowUpImgList" :key="imgIndex" class="img-box-item" :style="`background-image:url(${img.FileUrl})`"></div>
</div>
<div class="content-item" v-else :key="subIndex" >
<i class="iconfont iconcompany"></i>
<div class="content-fz">
<div class="cfz-top">
<div>
<img src="../../assets/img/cust/kehu2.png" alt="">
</div>
<div class="mb-10" v-if="subItem.CustomerFollowUpModel.FollowUpFileList" style="display: flex;">
<div>附件:</div>
<div>
<p v-for="(file, fileIndex) in subItem.CustomerFollowUpModel.FollowUpFileList" :key="fileIndex">
<span class="font-color-info">&nbsp;&nbsp;{{file.FileName}} </span>&nbsp;&nbsp;&nbsp;&nbsp;
<span class="font-color-link cp" @click="previewFile(file.FileUrl)"> 预览</span>
</p>
<div>
<p>{{subItem.CustomerFollowUpModel.CreateByStr}}</p>
<p class="font-color-info">{{subItem.UpdateDate}}</p>
</div>
<div class="tag">
<span>{{subItem.CustomerFollowUpModel.FollowUpTypeStr}}</span>
</div>
</div>
<div class="cfz-bot">
<div>
<p class="mb-10">{{subItem.LogInfo}}</p>
<p class="xg-lxr"><span class="font-color-info">相关联系人:</span> <span>{{subItem.CustomerFollowUpModel.ContactName}}</span></p>
<div class="img-box mb-10" v-if="subItem.CustomerFollowUpModel.FollowUpImgList">
<div v-for="(img, imgIndex) in subItem.CustomerFollowUpModel.FollowUpImgList" :key="imgIndex" class="img-box-item" :style="`background-image:url(${img.FileUrl})`" @click="previewFile(img.FileUrl)"></div>
</div>
<div class="mb-10" v-if="subItem.CustomerFollowUpModel.FollowUpFileList" style="display: flex;">
<div class="font-color-info">附件:</div>
<div>
<p v-for="(file, fileIndex) in subItem.CustomerFollowUpModel.FollowUpFileList" :key="fileIndex">
<span >&nbsp;&nbsp;{{file.FileName}} </span>&nbsp;&nbsp;&nbsp;&nbsp;
<span class="font-color-link cp" @click="previewFile(file.FileUrl)"> 预览</span>
</p>
</div>
</div>
<p> <span class="font-color-info">下次联系时间:</span> <span>{{subItem.CustomerFollowUpModel.NextContactDate}}</span></p>
</div>
<p> <span class="font-color-info">下次联系时间:</span> <span>{{subItem.CustomerFollowUpModel.NextContactDate}}</span></p>
</div>
</div>
</div>
</div>
</template>
</template>
</div>
</div>
</div>
<div v-else class="nodata font-color-info">
<p>暂无数据</p>
</div>
</div>
</template>
</div>
......@@ -519,6 +524,10 @@ export default {
},
methods: {
previewFile(file) {
if (file.IsPicture()) {
this.MsgBus.$emit('showImg', file)
return
}
window.open(file, "_blank");
},
GetLogPageList(t){
......
<style>
.Record{
height: 100%;
overflow: auto;
background-color: white;
padding: 10px;
box-sizing: border-box;
}
.ha-cont{
display: flex;
align-items: center;
font-size: 12px;
position: relative;
line-height: 20px;
min-height: 40px;
padding-top: 3px;
}
.ha-cont .ha-week{
margin: 0 17px 0 10px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #777;
width: 80px;
}
.ha-cont .ha-circle{
-ms-flex-negative: 0;
flex-shrink: 0;
width: 10px;
height: 10px;
z-index: 2;
border-radius: 9px;
background-color: #fff;
border: 5px solid #a5ecd7;
}
.ha-cont .ha-time{
padding: 0 10px 0 24px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #aaa;
}
.ha-cont .ha-name {
padding: 0 10px;
-ms-flex-negative: 0;
flex-shrink: 0;
color: #333;
}
.ha-cont .ha-content{
padding: 0 10px 10px;
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
color: #333;
}
.ha-cont .ha-line{
position: absolute;
z-index: 1;
width: 1px;
top: 3px;
bottom: -3px;
left: 9px;
background-color: #e6e6e6;
}
.nodata{
text-align: center;
font-size: 12px;
}
@import '../../assets/css/Record.css';
</style>
<template>
<div class="Record" id="Record">
......
......@@ -58,8 +58,8 @@
</el-col>
<el-col :span="8">
<div class="MyEditForm-item">
<el-form-item label="客户" prop="CustomerId">
<el-select v-model="form.CustomerId" placeholder="请选择联系人职务">
<el-form-item label="所属客户" prop="CustomerId">
<el-select v-model="form.CustomerId" placeholder="请选择所属客户">
<el-option
v-for='item in CustomerList'
:key="item.CustomerId"
......@@ -107,6 +107,19 @@
</el-form-item>
</div>
</el-col>
<el-col :span="8">
<div class="MyEditForm-item label-pad-left">
<el-form-item label="下次联系时间">
<el-date-picker
:clearable="false"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="form.NextContactTime"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
......@@ -162,6 +175,7 @@ export default {
IsMain: 0,
Remark: '',
ID: 0,
NextContactTime: ''
}
};
},watch:{
......@@ -233,6 +247,7 @@ export default {
IsMain: 0,
Remark: '',
ID: 0,
NextContactTime: ''
}
this.$refs[formName].resetFields();
},
......
......@@ -69,8 +69,8 @@
<p>{{detailsData.ContactName}}</p>
</div>
<div class="right">
<el-button class="crm-btn query-btn" @click="editCust">编辑</el-button>
<el-dropdown @command="handleCommand" style="top: 1px;">
<el-button class="crm-btn query-btn" @click="editCust" v-if="detailsData.IsRead === 0">编辑</el-button>
<el-dropdown @command="handleCommand" style="top: 1px;" v-if="detailsData.IsRead === 0">
<el-button class="crm-btn crm-btn-more easy-btn margin-right0">
<i class="iconfont icongengduo"></i>
</el-button>
......
......@@ -5,8 +5,8 @@
<div class="customerManage">
<div class="tools">
<h1>联系人管理</h1>
<div>
<el-input placeholder="请输入联系人名" v-model="msg.ContactName" class="input-with-select">
<div style="width: 340px;">
<el-input placeholder="请输入联系人名" v-model="msg.KeyWord" class="input-with-select">
<el-button slot="append" icon="el-icon-search" @click="getList"></el-button>
</el-input>
</div>
......@@ -26,7 +26,7 @@
<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-select size="mini" v-model="msg.WhereType" placeholder="请选择" @change="getList">
<el-option
v-for="item in WhereTypeList"
:key="item.id"
......@@ -59,7 +59,7 @@
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
height="730"
height="660"
border
row-class-name="font-size-12"
@selection-change="handleSelectionChange">
......@@ -163,8 +163,8 @@
</el-table-column>
</el-table>
</div>
<div>
<!-- <el-pagination
<div class="pagination">
<el-pagination
class="Mypagination"
background
@current-change="handleCurrentChange"
......@@ -173,7 +173,7 @@
layout="sizes, prev, pager, next"
@size-change="handleSizeChange"
:total="total">
</el-pagination> -->
</el-pagination>
</div>
<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">
......@@ -309,7 +309,7 @@ export default {
],
BusinessId: 0,
BusinessIdCustomerId: 0,
dialogTableVisibleName: '新客户',
dialogTableVisibleName: '新客户',
dialogBusinessVisibleName: '新建联系人',
CustomerId: 0,
CustomerIdStr: '',
......@@ -330,7 +330,7 @@ export default {
EmpId: '',
},
msg: {
ContactName: '',
KeyWord: '',
pageIndex: 1,
pageSize: 30,
ContactNumber: '',
......@@ -361,10 +361,6 @@ export default {
name: '转移',
class:'iconfont iconplus-transfer',
myFun: this.transfer
},{
name: '导出选中',
class:'iconfont icondaochu',
myFun: this.export
},{
name: '删除',
class:'iconfont icondelete',
......
This diff is collapsed.
<style>
.Details{
padding: 17px 20px;
margin-top: 20px;
background-color: white;
height: calc(100% - 54px);
overflow-y: auto;
font-size: 12px
}
.Details .Details_box .tit{
border: 4px solid rgba(13,36,129,1);
border-top: 0;
border-bottom: 0;
border-right: 0;
padding-left: 10px;
font-size: 14px;
color: #111;
font-weight:bold;
}
.Details_box_row{
margin-top: 30px;
}
.Details_box_lable{
color: #999999
}
</style>
<template>
<div class="Details">
<div class="Details_box">
<p class="tit">基本信息</p>
<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.PersonChargeStr}}
</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.CustomerSourceTypeStr}}
</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.PremisesStr}}
</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.CustomerIdLevelStr}}
</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.CustomerName}}
</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.Remark}}
</el-col>
</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>
<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 : 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.UpdateTime ? detailsData.UpdateTime : detailsData.UpdateTime}}
</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.LastFollowUpContent}}
</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.LastFollowUpTime}}
</el-col>
</el-row>
</el-col>
</el-row>
</div>
</div>
</template>
<script>
export default {
props:{
detailsData: {
type: Object,
default: {}
}
},
data() {
return {
};
},watch:{
},
mounted() {
},
methods: {
}
}
</script>
\ No newline at end of file
<style>
@import '../../assets/css/Record.css';
</style>
<template>
<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}}</div>
<!-- <div class="ha-name">admin</div> -->
<div class="ha-content">
<p data-v-0d9b8f7a="">{{item.LogInfo}}</p>
</div>
<div class="ha-line"></div>
</div>
<div v-if="logList.length < 1" class="nodata font-color-info">
<p>暂无数据</p>
</div>
</div>
</template>
<script>
export default {
props: ['CustomerId'],
data() {
return {
logList: [],
msg: {
Type: 3,
pageIndex: 1,
pageSize: 10,
SourceId: 0
}
};
},watch:{
},
mounted() {
let $this= this
document
.getElementById("Record")
.addEventListener("scroll", function() {
//全部动态
if (this.scrollHeight - this.scrollTop === this.clientHeight) {
$this.logMsg.pageIndex = $this.logMsg.pageIndex + 1
$this.GetOperationLogPageList(1)
}
});
this.msg.SourceId = this.CustomerId
this.GetOperationLogPageList()
},
methods: {
GetOperationLogPageList(t){
this.apipost('/api/Customer/GetOperationLogPageList', this.msg, res=>{
if (res.data.resultCode == 1) {
let data = res.data.data
if (t) {
this.logList = this.logList.concat(
data.pageData
)
} else {
this.logList = data.pageData
}
}
})
}
}
}
</script>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -5,14 +5,14 @@
<div class="customerManage">
<div class="tools">
<h1>客户管理</h1>
<div>
<el-input placeholder="请输入客户名称/手机" v-model="msg.CustomerName" class="input-with-select">
<div style="width: 340px;">
<el-input placeholder="请输入客户名称/手机" v-model="msg.KeyWord" 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-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>
......@@ -28,7 +28,7 @@
<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-select size="mini" v-model="msg.WhereType" placeholder="请选择" @change="getList">
<el-option
v-for="item in WhereTypeList"
:key="item.id"
......@@ -61,7 +61,7 @@
:data="tableData"
tooltip-effect="dark"
style="width: 100%"
height="730"
height="660"
border
row-class-name="font-size-12"
@selection-change="handleSelectionChange">
......@@ -238,7 +238,7 @@
</el-table>
</div>
<div>
<!-- <el-pagination
<el-pagination
class="Mypagination"
background
@current-change="handleCurrentChange"
......@@ -247,7 +247,7 @@
layout="sizes, prev, pager, next"
@size-change="handleSizeChange"
:total="total">
</el-pagination> -->
</el-pagination>
</div>
<el-drawer
:with-header="false"
......@@ -461,7 +461,7 @@ export default {
drawer: false,
loading: true,
dialogTableVisible: false,
dialogTableVisibleName: '新客户',
dialogTableVisibleName: '新客户',
tableData: [],
multipleSelection: [],
EmployeeList: [],
......@@ -475,7 +475,7 @@ export default {
TransferOther: [] //1-联系人,2-商机,3-合同
},
msg: {
CustomerName: '',
KeyWord: '',
Contact: '',
pageIndex: 1,
pageSize: 30,
......@@ -515,10 +515,6 @@ export default {
name: '更改成交状态',
class:'iconfont iconwancheng',
myFun: this.changeState
},{
name: '导出选中',
class:'iconfont icondaochu',
myFun: this.export
},{
name: '删除',
class:'iconfont icondelete',
......
......@@ -156,7 +156,7 @@
<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 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>
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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