Commit 126afeb5 authored by 华国豪's avatar 华国豪 🙄

新增很多功能页面

parent 05083c16
......@@ -28,7 +28,7 @@ export default {
<style>
@import './assets/global/font.css';
@import '//at.alicdn.com/t/font_1627123_p3nwdbzx6c.css';
@import '//at.alicdn.com/t/font_1627123_mpdinr2229.css';
/* @import './assets/css/common.css'; */
@import './assets/css/init.css';
@import './assets/css/tablevoerride.css';
......
......@@ -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: 12px 10px;
padding: 12px 15px;
text-align: center;
margin-right: 20px;
}
......@@ -174,6 +182,10 @@ table { border-collapse:collapse; border-spacing:0; }
.font-color-info{
color: #909399!important;
}
.font-14-blod{
font-size: 14px;
font-weight: bold;
}
textarea{
resize:none!important;
}
......
......@@ -378,60 +378,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})`" @click="previewFile(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 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>
<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 v-if="addContactsShow">
......
......@@ -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) {
......
This diff is collapsed.
......@@ -121,7 +121,7 @@
<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: {
......
......@@ -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) {
......
......@@ -287,9 +287,6 @@
<el-tab-pane label="团队成员" name="4">
<TeamMembers v-if="activeName === '4'" :BusinessId="BusinessId" :IsRead="detailsData.IsRead"/>
</el-tab-pane>
<el-tab-pane label="合同" name="6">
<Agreement />
</el-tab-pane>
<el-tab-pane label="回款" name="7">
<MoneyBack />
</el-tab-pane>
......@@ -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,7 +5,7 @@
<div class="customerManage">
<div class="tools">
<h1>商机管理</h1>
<div>
<div style="width: 340px;">
<el-input placeholder="请输入商机名" v-model="msg.BusinessName" class="input-with-select">
<el-button slot="append" icon="el-icon-search" @click="getList"></el-button>
</el-input>
......@@ -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"
......@@ -63,7 +63,7 @@
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"
......@@ -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>
......@@ -325,7 +368,6 @@ export default {
TransferType: 1, //类型,1-移除,2-转为团员
IsRead: 0, //0-读写,1-只读
EmpId: '',
TransferOther: [] //1-联系人,2-商机,3-合同
},
msg: {
BusinessName: '',
......@@ -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: ''
}
}
})
......
......@@ -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"
......@@ -55,7 +55,7 @@
</template>
<script>
export default {
props:['ID', 'type', 'IsRead'],
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: {
......
<style>
@import '../../assets/css/customerManage.css';
.tools{
padding-bottom: 0
}
.tools-item{
display: flex;
height: 41px;
}
.tools-item h1{
margin: 0 20px 0 0;
height: 100%;
line-height: 100%;
border-bottom: solid 2px rgba(35, 98, 251, 0);
}
.customerManage .tools h1:last-child{
margin: 0
}
.tools-item .active{
color: rgb(35, 98, 251);
border-color: rgb(35, 98, 251);
}
</style>
<template>
<div class="customerManage">
<div class="tools">
<h1>线索管理</h1>
<div>
<div class="tools-item">
<h1 class="cp" :class="[activeMenu === 1 ? 'active' : '']" @click="activeMenu = 1, getList()">客户线索管理</h1>
<h1 class="cp" :class="[activeMenu === 2 ? 'active' : '']" @click="activeMenu = 2">直客线索管理</h1>
</div>
<div style="width: 340px;">
<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>
......@@ -28,7 +51,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"
......@@ -232,6 +255,7 @@ export default {
},
data() {
return {
activeMenu: 1,
queryType2: [
{
label: '线索名称',
......@@ -352,10 +376,6 @@ export default {
name: '转化为客户',
class:'iconfont iconplus-transfer',
myFun: this.waters
},{
name: '导出选中',
class:'iconfont icondaochu',
myFun: this.export
},{
name: '删除',
class:'iconfont icondelete',
......
......@@ -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>
......@@ -413,6 +428,7 @@ export default {
CustomerLevelEnum: [],
CustomerBrandList: [],
form: {
NextContactTime: '',
CustomerId: 0,
CustomerName: '',
CustomerLevel: '',
......@@ -576,7 +592,8 @@ export default {
BrandIds: [],
Images: [],
BusinessCardPhotos: [],
HousePhotos: []
HousePhotos: [],
NextContactTime: ''
}
this.$refs[formName].resetFields();
},
......
......@@ -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})`" @click="previewFile(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 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>
<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>
......
......@@ -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();
},
......
......@@ -5,7 +5,7 @@
<div class="customerManage">
<div class="tools">
<h1>联系人管理</h1>
<div>
<div style="width: 340px;">
<el-input placeholder="请输入联系人名" v-model="msg.ContactName" class="input-with-select">
<el-button slot="append" icon="el-icon-search" @click="getList"></el-button>
</el-input>
......@@ -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"
......@@ -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 source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -1107,6 +1107,7 @@
<script>
import commonTripList from "./commonTripList.vue";
export default {
props: ['ID'],
data() {
return {
dialogTableVisible: false,
......@@ -1675,8 +1676,8 @@
},
mounted() {
let $this = this
if (this.$route.query.id && this.$route.query.id > 0) {
this.CtObj.ID = this.$route.query.id;
if (this.ID && this.ID > 0) {
this.CtObj.ID = this.ID;
this.GetData();
} else {
this.IsLoad = 1;
......
......@@ -1034,6 +1034,7 @@
<script>
import commonTripList from "./commonTripList.vue";
export default {
props: ['ID'],
data() {
return {
dialogTableVisible: false,
......@@ -1517,8 +1518,8 @@
setTimeout(()=>{
$this.dialogTableVisible = true
},50)
if (this.$route.query.id && this.$route.query.id > 0) {
this.CtObj.ID = this.$route.query.id;
if (this.ID && this.ID > 0) {
this.CtObj.ID = this.ID;
this.GetData();
} else {
this.IsLoad = 1;
......
......@@ -1235,6 +1235,7 @@
<script>
import moment from 'moment'
export default {
props: ['ID'],
data() {
return {
dialogTableVisible: false,
......@@ -2018,8 +2019,8 @@
setTimeout(()=>{
$this.dialogTableVisible = true
},50)
if (this.$route.query.id && this.$route.query.id > 0) {
this.CtObj.ID = this.$route.query.id;
if (this.ID && this.ID > 0) {
this.CtObj.ID = this.ID;
this.GetData();
}
this.$nextTick(function () {
......
......@@ -5,7 +5,7 @@
<div class="customerManage">
<div class="tools">
<h1>客户管理</h1>
<div>
<div style="width: 340px;">
<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>
......@@ -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"
......@@ -515,10 +515,6 @@ export default {
name: '更改成交状态',
class:'iconfont iconwancheng',
myFun: this.changeState
},{
name: '导出选中',
class:'iconfont icondaochu',
myFun: this.export
},{
name: '删除',
class:'iconfont icondelete',
......
......@@ -235,7 +235,20 @@
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<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-col :span="16">
<div class="MyEditForm-item label-pad-left">
<el-form-item label="备注">
<el-input type="textarea" placeholder="客户的特殊喜好" v-model="form.Remark"></el-input>
......@@ -428,6 +441,7 @@ export default {
Images: [],
BusinessCardPhotos: [],
HousePhotos: [],
NextContactTime: ''
},
rules:{
CustomerName: [
......@@ -570,7 +584,8 @@ export default {
BrandIds: [],
Images: [],
BusinessCardPhotos: [],
HousePhotos: []
HousePhotos: [],
NextContactTime: '',
}
this.$refs[formName].resetFields();
},
......
This diff is collapsed.
<style>
</style>
<template>
<div class="Agreement">
Agreement
</div>
</template>
<script>
export default {
props:{
},
data() {
return {
};
},watch:{
},
mounted() {
},
methods: {
}
}
</script>
\ No newline at end of file
<style>
</style>
<template>
<div class="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>
<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"
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: ['ID', 'BusinessType'],
data() {
return {
dataList: [],
loading: false
};
},watch:{
},
mounted() {
this.GetBusinessList()
},
methods: {
openDetails(scope){
console.log(scope.row.ID)
this.MsgBus.$emit('busnessDrawerShow', scope.row.ID)
},
GetBusinessList(){
this.apipost('/api/Customer/GetBusinessList', {CustomerId: this.ID, CustomerType: 1}, 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, true)
},
guanlian(){
},
jiechuguanlian(){
},
}
}
</script>
\ No newline at end of file
<style>
.Contacts .add-contacts{
text-align: right;
padding: 0 0 20px 0;
}
.Contacts td{
font-size: 12px;
}
</style>
<template>
<div class="Contacts">
<div class="add-contacts">
<el-button icon="el-icon-plus" class="crm-btn query-btn crm-btn-mini margin-right0" @click="addContactsShow=true">新建联系人</el-button>
</div>
<el-table
v-loading="loading"
stripe
ref="multipleTable"
:data="ContactList"
tooltip-effect="dark"
style="width: 100%"
row-class-name="font-size-12">
<el-table-column
prop="ContactName"
label="姓名"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="ContactPhone"
label="手机"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="ContactDutyStr"
label="职务"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="IsFirstContact"
label="操作"
show-overflow-tooltip>
<template slot-scope="scope">
<p v-if="scope.row.IsFirstContact === 1" class="font-color-warning">首要联系人</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>
<div v-if="addContactsShow">
<addContacts :ID="CustomerId" @addContactsOk="addContactsOk"/>
</div>
</div>
</template>
<script>
import addContacts from "../dialogModel/addContacts";
export default {
components: {
addContacts
},
props:{
CustomerId: {
type: Number,
default: 0
},
IsRead: {
type: Number,
default: 0
}
},
data() {
return {
loading: false,
addContactsShow: false,
ContactList: [],
};
},watch:{
CustomerId: {
handler(val, oldVal){
this.GetContactByCustomerID()
},
deep:true
}
},
mounted() {
let $this = this
this.MsgBus.$on('closeaddContacts', function (){
$this.addContactsShow = false
})
this.GetContactByCustomerID()
},
methods: {
addContactsOk(){
this.GetContactByCustomerID()
},
SetFirstContact(scope){
this.apipost('/api/Customer/SetFirstContact', {CustomerId: this.CustomerId, ID: scope.row.ID}, res=>{
if (res.data.resultCode == 1) {
this.$message.success('操作成功');
this.GetContactByCustomerID();
}
})
},
GetContactByCustomerID(){
if(this.CustomerId === 0) return
this.loading = true
this.apipost('/api/Customer/GetContactByCustomerID', {CustomerId: this.CustomerId}, res=>{
if (res.data.resultCode == 1) {
this.loading = false
this.ContactList = res.data.data
}
})
},
}
}
</script>
\ No newline at end of file
<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.GusetName}}
</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.MobilePhone}}
</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.Sex === 0 ? '保密' : detailsData.Sex === 1 ? '男' : '女'}}
</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.Birthday}}
</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.Nationality}}
</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.Remarks}}
</el-col>
</el-row>
</el-col>
</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.CreateDate ? detailsData.CreateDate : detailsData.CreateDate }}
</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.LastFollowUpContent}}
</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.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>
</style>
<template>
<div class="Enclosure">
Enclosure
</div>
</template>
<script>
export default {
props:{
},
data() {
return {
};
},watch:{
},
mounted() {
},
methods: {
}
}
</script>
\ No newline at end of file
<style>
</style>
<template>
<div class="MoneyBack">
MoneyBack
</div>
</template>
<script>
export default {
props:{
},
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>
</template>
<script>
export default {
props: ['CustomerId'],
data() {
return {
logList: [],
msg: {
Type: 1,
pageIndex: 1,
pageSize: 10,
SourceId: 0,
CustomerType: 1,
}
};
},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
<style>
.addTeamman-ctrl{
text-align: right;
padding: 0 0 20px 0;
}
</style>
<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" 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
v-loading="loading"
stripe
ref="multipleTable"
:data="dataList"
tooltip-effect="dark"
style="width: 100%"
@selection-change="handleSelectionChange"
row-class-name="font-size-12">
<el-table-column :selectable='checkboxT' fixed type="selection" width="40"></el-table-column>
<el-table-column
prop="EmpName"
label="销售名称"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="PostName"
label="岗位"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="RoleName"
label="角色名称"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="RoleType"
label="角色属性"
show-overflow-tooltip>
<template slot-scope="scope">
<p v-if="scope.row.RoleType === 1">负责人</p>
<p v-else>普通员工</p>
</template>
</el-table-column>
<el-table-column
prop="JurisdictionName"
label="权限"
show-overflow-tooltip>
</el-table-column>
</el-table>
<div v-if="addTeammanShow">
<addTeamman :ID="CustomerId" @addTeammanOk="addTeammanOk"/>
</div>
<div v-if="editTeamPowerShow">
<editTeamPower :CustomerId="CustomerId" :ID="IDs" @addTeammanOk="addTeammanOk"/>
</div>
</div>
</template>
<script>
import addTeamman from "../dialogModel/addTeamman";
import editTeamPower from "../dialogModel/editTeamPower";
export default {
components: {
addTeamman,
editTeamPower
},
props:{
CustomerId: {
type: Number,
default: 0
},
IsRead: {
type: Number,
default: 0
}
},
data() {
return {
loading: false,
addTeammanShow: false,
editTeamPowerShow: false,
dataList: [],
multipleSelection: [],
IDs: ''
};
},watch:{
CustomerId: {
handler(val, oldVal){
console.log(val)
this.GetCustomerTeamList()
},
deep:true
}
},
mounted() {
this.GetCustomerTeamList()
let $this = this
this.MsgBus.$on('closeaddTeamman', function (){
$this.addTeammanShow = false
})
this.MsgBus.$on('closeeditTeamPower', function(){
$this.editTeamPowerShow = false
})
},
methods: {
tuichu(){
this.$confirm('确定退出团队?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let str = ''
this.multipleSelection.map((x, i)=>{
str = str + x + ','
})
let msg = {
CustomerId: this.CustomerId,
IDs: str.substring(0, str.length - 1)
}
this.apipost('/api/Customer/ExitCustomerJurisdiction', msg, res=>{
if (res.data.resultCode == 1) {
this.$message.success('操作成功')
this.GetCustomerTeamList()
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消'
});
});
},
yichu(){
if(this.multipleSelection.length < 1) {
return this.$message.error('请勾选需要操作的团队成员')
}
this.$confirm('此操作将移除这些团队成员是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let str = ''
this.multipleSelection.map((x, i)=>{
str = str + x + ','
})
let msg = {
CustomerId: this.CustomerId,
IDs: str.substring(0, str.length - 1)
}
this.apipost('/api/Customer/RemoveCustomerListJurisdiction', msg, res=>{
if (res.data.resultCode == 1) {
this.$message.success('操作成功')
this.GetCustomerTeamList()
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消'
});
});
},
bianji(){
if(this.multipleSelection.length < 1) {
return this.$message.error('请勾选需要操作的团队成员')
}
let str = ''
this.multipleSelection.map((x, i)=>{
str = str + x + ','
})
this.IDs = str.substring(0, str.length - 1)
this.editTeamPowerShow = true
},
checkboxT(row,index){
if(row.JurisdictionName==='负责人权限'){
return 0;
}else{
return 1;
}
},
handleSelectionChange(val) {
this.multipleSelection = val.map(x=>
x.ID
)
},
addTeammanOk(){
this.GetCustomerTeamList()
},
GetCustomerTeamList(){
if(this.CustomerId === 0) return
this.loading = true
this.apipost('/api/Customer/GetCustomerTeamList', {CustomerId: this.CustomerId}, res=>{
if (res.data.resultCode == 1) {
this.loading = false
this.dataList = res.data.data
}
})
},
}
}
</script>
\ No newline at end of file
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" />
</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 v-if="activeName === '5'" :ID="CustomerId"/>
</el-tab-pane>
<el-tab-pane label="订单" name="6">
<Agreement />
</el-tab-pane>
<el-tab-pane label="回款" name="7">
<MoneyBack />
</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 "./Activity";
import Details from "./Details";
import Business from "./Business";
import Agreement from "./Agreement";
import MoneyBack from "./MoneyBack";
import Enclosure from "../clueManagement/Enclosure";
import Record from "./Record";
export default {
components: {
Activity,
Details,
Business,
Agreement,
MoneyBack,
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', 1)
},
handleClose(done) {
done();
}
}
}
</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.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -22,6 +22,17 @@ export default {
var obj = {
//主地址
DomainUrl: domainUrl,
DownLoadContractUrl: "http://testapi.oytour.com" ,
//阿里服务器地址
AliUrl: "https://reborndev.oss-cn-hangzhou.aliyuncs.com",
//本站文件流下载地址
LocalFileStreamDownLoadUrl: domainUrl + "/api/file/GetFileFromWebApi",
//PDF文件预览地址
PDFViewUrl: domainUrl + "/plug/pdf/web/viewer.html?file=",
//SocketUrl
WebSocketUrl: "ws://192.168.1.110:8080?account=",
//google地图图片地址
GoogleMapImageUrl: "http://imgfile.oytour.com",
//常用提交数据URL
PostUrl: domainUrl,
PostUrl2: "http://testapi.oytour.com/api/common/post",
......
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