vue-cli init
This commit is contained in:
@@ -0,0 +1,683 @@
|
||||
<template>
|
||||
<view>
|
||||
<!--基础信息-->
|
||||
<view class="btName">基础信息</view>
|
||||
<view @click="pickerSelectFun('客户性质')" class="flex-white-plr26 ptb20 mt32 bdb_f5">
|
||||
<text class="mr26">客户性质<text class="redXingh">*</text></text>
|
||||
<view :class="xingZhi ? '' : 'cBlack'">
|
||||
{{xingZhi ? xingZhi : '请选择'}}
|
||||
<u-icon class="ml26" name="arrow-right" size="40" color="#888888"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-white-plr26 ptb10 bdb_f5">
|
||||
<text class="mr26">
|
||||
<text>客户名称</text>
|
||||
<text class="redXingh">*</text>
|
||||
</text>
|
||||
<u-input v-model="clientName" placeholder="请输入客户名称" />
|
||||
</view>
|
||||
<view v-if="xingZhi != '个人客户'" class="flex-white-plr26 ptb10 bdb_f5">
|
||||
<text class="mr26">
|
||||
<text>联系人</text>
|
||||
<text class="redXingh">*</text>
|
||||
</text>
|
||||
<u-input v-model="lxRen" placeholder="请输入客户联系人" />
|
||||
</view>
|
||||
<view class="flex-white-plr26 ptb10 bdb_f5">
|
||||
<text class="mr26">联系方式
|
||||
<text class="redXingh">*</text>
|
||||
</text>
|
||||
<u-input v-model="phone" placeholder="请输入联系方式" />
|
||||
</view>
|
||||
<view @click="pickerSelectFun('客户来源')" class="flex-white-plr26 ptb20 bdb_f5">
|
||||
<text class="mr26">客户来源
|
||||
<text class="redXingh">*</text>
|
||||
</text>
|
||||
<view :class="laiYuan ? '' : 'cBlack'">
|
||||
{{laiYuan ? laiYuan : '请选择'}}
|
||||
<u-icon class="ml26" name="arrow-right" size="40" color="#888888"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view @click="pickerShowFun('地区')" class="flex-white-plr26 ptb20 bdb_f5">
|
||||
<text class="mr26">地区</text>
|
||||
<view :class="region ? '' : 'cBlack'">
|
||||
{{region ? region : '请选择'}}
|
||||
<u-icon class="ml26" name="arrow-right" size="40" color="#888888"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-white-plr26 ptb20 bdb_f5" @click="chooseAddrFun">
|
||||
<text class="mr26">地址</text>
|
||||
<view class="width276" :class="address ? 'blackColor' : 'cBlack'">{{address ? address : '请在此选择详细地址'}}</view>
|
||||
<u-icon class="ml26" name="map-fill" size="40" color="#007aff"></u-icon>
|
||||
</view>
|
||||
<!-- <view @click="pickerSelectFun('客户状态')" class="flex-white-plr26 ptb20 bdb_f5">
|
||||
<text class="mr26">客户状态</text>
|
||||
<view :class="companyState ? '' : 'cBlack'">
|
||||
{{companyState ? companyState : '请选择'}}
|
||||
<u-icon class="ml26" name="arrow-right" size="40" color="#888888"></u-icon>
|
||||
</view>
|
||||
</view> -->
|
||||
<view @click="pickerSelectFun('客户阶段')" class="flex-white-plr26 ptb20 bdb_f5">
|
||||
<text class="mr26">客户阶段</text>
|
||||
<view :class="jieDuan ? '' : 'cBlack'">
|
||||
{{jieDuan ? jieDuan : '请选择'}}
|
||||
<u-icon class="ml26" name="arrow-right" size="40" color="#888888"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view @click="pickerSelectFun('客户分级')" class="flex-white-plr26 ptb20 bdb_f5">
|
||||
<text class="mr26">客户分级</text>
|
||||
<view :class="fenJi ? '' : 'cBlack'">
|
||||
{{fenJi ? fenJi : '请选择'}}
|
||||
<u-icon class="ml26" name="arrow-right" size="40" color="#888888"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view @click="pickerSelectFun('客户行业')" class="flex-white-plr26 ptb20 bdb_f5">
|
||||
<text class="mr26">客户行业</text>
|
||||
<view :class="hangYe ? '' : 'cBlack'">
|
||||
{{hangYe ? hangYe : '请选择'}}
|
||||
<u-icon class="ml26" name="arrow-right" size="40" color="#888888"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<!--关联信息-->
|
||||
<!-- <view class="btName">关联信息</view>
|
||||
<view class="flex-white-plr26 ptb20 bdb_f5 mt32">
|
||||
<text class="mr26">添加联系人</text>
|
||||
<view :class="lxRen ? '' : 'cBlack'">
|
||||
{{lxRen ? lxRen : '请选择'}}
|
||||
<u-icon class="ml26" name="arrow-right" size="40" color="#888888"></u-icon>
|
||||
</view>
|
||||
</view> -->
|
||||
<u-picker :params="pickerParams" :safe-area-inset-bottom="true" end-year="2100" v-model="pickerShow" @confirm="pickerConfirmFun" :mode="pickerMode" :default-time="birthday"></u-picker>
|
||||
<u-select v-model="selectShow" :list="selectList" @confirm="selectConfirmFun"></u-select>
|
||||
<!--扩展信息-->
|
||||
<view class="btName">扩展信息</view>
|
||||
<view class="flex-white-plr26 ptb20 bdb_f5 mt32">
|
||||
<text class="mr26">重要程度</text>
|
||||
<u-rate :count="5" v-model="zycdNum" active-color="#ffaa00" size="36"></u-rate>
|
||||
</view>
|
||||
<view @click="pickerSelectFun('客户类型')" class="flex-white-plr26 ptb20 bdb_f5">
|
||||
<text class="mr26">客户类型</text>
|
||||
<view :class="type ? '' : 'cBlack'">
|
||||
{{type ? type : '请选择'}}
|
||||
<u-icon class="ml26" name="arrow-right" size="40" color="#888888"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-white-plr26 ptb10 bdb_f5">
|
||||
<text class="mr26">客户官网</text>
|
||||
<u-input v-model="guanWang" placeholder="请输入" />
|
||||
</view>
|
||||
<view class="flex-white-plr26 ptb10 bdb_f5">
|
||||
<text class="mr26">客户简介</text>
|
||||
<u-input v-model="jianJie" placeholder="请输入" />
|
||||
</view>
|
||||
<view class="flex-white-plr26 ptb20 mt32">
|
||||
<u-input v-model="remark" placeholder="备注" maxlength="500" placeholderStyle="color: #303133;" type="textarea" />
|
||||
</view>
|
||||
<!-- <view class="btName">系统信息</view>
|
||||
<view class="flex-white-plr26 ptb20 mt32 bdb_f5">
|
||||
<text class="mr26">负责人</text>
|
||||
<view :class="fuZeRen ? '' : 'cBlack'">
|
||||
{{fuZeRen ? fuZeRen : '请选择'}}
|
||||
<u-icon class="ml26" name="arrow-right" size="40" color="#888888"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex-white-plr26 ptb20 bdb_f5">
|
||||
<text class="mr26">协同人</text>
|
||||
<view :class="xtRen ? '' : 'cBlack'">
|
||||
{{xtRen ? xtRen : '请选择'}}
|
||||
<u-icon class="ml26" name="arrow-right" size="40" color="#888888"></u-icon>
|
||||
</view>
|
||||
</view> -->
|
||||
<!--提交按钮-->
|
||||
<view class="submitView">
|
||||
<u-button type="primary" class="submitBtn" :ripple="true" ripple-bg-color="#909399" @click="submitBtn">{{pageType =='' ? '提交' : '保存'}}</u-button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
let that = '';
|
||||
import { crmKeHuApi, threadApi, czjlApi, threadGjApi } from '../../../static/utils/api.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
xsName: '',
|
||||
clientName: '',
|
||||
phone: '',
|
||||
company: '',
|
||||
position: '',
|
||||
weChat: '',
|
||||
mailbox: '',
|
||||
radioList: [{
|
||||
name: '男'
|
||||
},
|
||||
{
|
||||
name: '女'
|
||||
}
|
||||
],
|
||||
gender: '男',
|
||||
birthday: '',
|
||||
region: '',
|
||||
remark: '',
|
||||
pickerParams: {},
|
||||
pickerShow: false,
|
||||
pickerMode: 'time',
|
||||
selectShow: false,
|
||||
selectList: [],
|
||||
selectType: '',
|
||||
province: '',
|
||||
city: '',
|
||||
area: '',
|
||||
address: '',
|
||||
latitude: '',
|
||||
longitude: '',
|
||||
companyState: '潜在客户',
|
||||
jieDuan: '初步接洽',
|
||||
fuZeRenId: uni.$userInfo._id,
|
||||
fuZeRen: uni.$userInfo.xingMing,
|
||||
xtRen: '',
|
||||
lxRen: '',
|
||||
type: '',
|
||||
xingZhi: '企业客户',
|
||||
fenJi: '',
|
||||
hangYe: '',
|
||||
zycdNum: 0,
|
||||
laiYuan: '公司资源',
|
||||
guanWang: '',
|
||||
jianJie: '',
|
||||
pageType: '',
|
||||
xgInfoObj: {},
|
||||
isAdd: 0,
|
||||
fkId: '',
|
||||
zhuanWeiClientId: ''
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
that = this;
|
||||
if(e.type == 'update' || e.type == 'zhuanClient') {
|
||||
that.setDataFun();
|
||||
that.pageType = e.type;
|
||||
if(e.type == 'update') {
|
||||
uni.setNavigationBarTitle({
|
||||
title: '修改客户信息'
|
||||
})
|
||||
} else {
|
||||
uni.setNavigationBarTitle({
|
||||
title: '线索转为客户'
|
||||
})
|
||||
}
|
||||
}
|
||||
if(e.isAdd) {
|
||||
that.isAdd = e.isAdd;
|
||||
if(uni.$addInfo) {
|
||||
that.lxRen = uni.$addInfo.lxRen;
|
||||
that.phone = uni.$addInfo.phone;
|
||||
that.clientName = uni.$addInfo.clientName;
|
||||
that.region = uni.$addInfo.region || '';
|
||||
that.address = uni.$addInfo.address || '';
|
||||
that.latitude = uni.$addInfo.latitude || '';
|
||||
that.longitude = uni.$addInfo.longitude || '';
|
||||
if(that.region) {
|
||||
let regionArr = (that.region).split(" ");
|
||||
that.province = regionArr[0];
|
||||
that.city = regionArr[1];
|
||||
that.area = regionArr[2];
|
||||
}
|
||||
if(uni.$addInfo.fkId) {
|
||||
that.fkId = uni.$addInfo.fkId;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 单选框
|
||||
radioGroupChange(e) {
|
||||
that.gender = e;
|
||||
},
|
||||
pickerSelectFun: function(str) {
|
||||
if(str == '客户状态') {
|
||||
that.selectList = [
|
||||
{ value: 0, label: '潜在客户'},
|
||||
{ value: 1, label: '初步接触'},
|
||||
{ value: 2, label: '持续跟进'},
|
||||
{ value: 3, label: '成交客户'},
|
||||
{ value: 4, label: '忠诚客户'},
|
||||
{ value: 5, label: '无效客户'}
|
||||
]
|
||||
} else if(str == '客户阶段') {
|
||||
that.selectList = [
|
||||
{ value: 0, label: '初步接洽'},
|
||||
{ value: 1, label: '确认需求'},
|
||||
{ value: 2, label: '解决方案'},
|
||||
{ value: 3, label: '商务谈判'},
|
||||
{ value: 4, label: '成交'},
|
||||
{ value: 5, label: '流失'}
|
||||
]
|
||||
} else if(str == '客户类型') {
|
||||
that.selectList = [
|
||||
{ value: 0, label: '最终客户'},
|
||||
{ value: 1, label: '渠道客户'},
|
||||
{ value: 2, label: '竞争对手'}
|
||||
]
|
||||
} else if(str == '客户性质') {
|
||||
that.selectList = [
|
||||
{ value: 0, label: '企业客户'},
|
||||
{ value: 1, label: '个人客户'},
|
||||
{ value: 2, label: '政府单位'},
|
||||
{ value: 3, label: '事业单位'}
|
||||
]
|
||||
} else if(str == '客户分级') {
|
||||
that.selectList = [
|
||||
{ value: 0, label: '大型'},
|
||||
{ value: 1, label: '中型'},
|
||||
{ value: 2, label: '小型'},
|
||||
{ value: 3, label: '微型'},
|
||||
]
|
||||
} else if(str == '客户行业') {
|
||||
that.selectList = [
|
||||
{ value: 0, label: '金融'},
|
||||
{ value: 1, label: '电信'},
|
||||
{ value: 2, label: '教育'},
|
||||
{ value: 3, label: '高科技'},
|
||||
{ value: 4, label: '政府'},
|
||||
{ value: 5, label: '制造业'},
|
||||
{ value: 6, label: '服务业'},
|
||||
{ value: 7, label: '能源'},
|
||||
{ value: 8, label: '零售'},
|
||||
{ value: 9, label: '媒体'},
|
||||
{ value: 10, label: '娱乐'},
|
||||
{ value: 11, label: '咨询'},
|
||||
{ value: 12, label: '非盈利事业'},
|
||||
{ value: 13, label: '公用事业'},
|
||||
{ value: 14, label: '其他'}
|
||||
]
|
||||
} else if(str == '客户来源') {
|
||||
that.selectList = [
|
||||
{ value: 0, label: '电话咨询'},
|
||||
{ value: 1, label: '自主开拓'},
|
||||
{ value: 2, label: '公司资源'},
|
||||
{ value: 3, label: '网络推广'},
|
||||
{ value: 4, label: '渠道代理'},
|
||||
{ value: 5, label: '其他方式'}
|
||||
]
|
||||
}
|
||||
that.selectShow = true;
|
||||
that.selectType = str;
|
||||
},
|
||||
selectConfirmFun: function(e) {
|
||||
let str = e[0].label;
|
||||
if(that.selectType == '客户状态') {
|
||||
that.companyState = str;
|
||||
} else if(that.selectType == '客户阶段') {
|
||||
that.jieDuan = str;
|
||||
} else if(that.selectType == '客户类型') {
|
||||
that.type = str;
|
||||
} else if(that.selectType == '客户性质') {
|
||||
that.xingZhi = str;
|
||||
} else if(that.selectType == '客户分级') {
|
||||
that.fenJi = str;
|
||||
} else if(that.selectType == '客户行业') {
|
||||
that.hangYe = str;
|
||||
} else if(that.selectType == '客户来源') {
|
||||
that.laiYuan = str;
|
||||
}
|
||||
},
|
||||
// 展示选择器
|
||||
pickerShowFun: function(str) {
|
||||
if(str == '生日') {
|
||||
that.pickerMode = 'time';
|
||||
that.pickerParams = {
|
||||
year: true,
|
||||
month: true,
|
||||
day: true
|
||||
};
|
||||
} else if(str == '地区') {
|
||||
that.pickerMode = 'region';
|
||||
that.pickerParams = {
|
||||
province: true,
|
||||
city: true,
|
||||
area: true
|
||||
};
|
||||
} else if(str == '客户阶段'){
|
||||
that.pickerMode = 'selector';
|
||||
|
||||
}
|
||||
that.pickerShow = true;
|
||||
},
|
||||
// 点击确定按钮,返回当前选择的值
|
||||
pickerConfirmFun: function(e) {
|
||||
if(that.pickerMode == 'time') {
|
||||
that.birthday = e.year + '-' + e.month + '-' + e.day
|
||||
} else {
|
||||
that.province = e.province.label;
|
||||
that.city = e.city.label;
|
||||
that.area = e.area.label;
|
||||
that.region = that.province + ' ' + that.city + ' ' + that.area;
|
||||
}
|
||||
},
|
||||
// 选择定位地点
|
||||
chooseAddrFun: function() {
|
||||
uni.chooseLocation({
|
||||
success: function (res) {
|
||||
that.address = res.address;
|
||||
that.latitude = res.latitude;
|
||||
that.longitude = res.longitude;
|
||||
}
|
||||
});
|
||||
},
|
||||
// 提交按钮
|
||||
submitBtn: function() {
|
||||
if(that.clientName == '') {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '客户名称不能为空,请输入!',
|
||||
showCancel: false
|
||||
})
|
||||
return
|
||||
}
|
||||
if(that.xingZhi != '个人客户' && that.lxRen == '') {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '客户联系人不能为空,请输入!',
|
||||
showCancel: false
|
||||
})
|
||||
return
|
||||
}
|
||||
if(that.phone == '') {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '客户联系方式不能为空,请输入!',
|
||||
showCancel: false
|
||||
})
|
||||
return
|
||||
}
|
||||
let reqObj = {
|
||||
req: {
|
||||
clientName: that.clientName,
|
||||
phone: that.phone,
|
||||
region: that.region,
|
||||
address: that.address,
|
||||
latitude: that.latitude,
|
||||
longitude: that.longitude,
|
||||
// companyState: that.companyState,
|
||||
jieDuan: that.jieDuan,
|
||||
fuZeRenId: that.fuZeRenId,
|
||||
lxRen: that.lxRen,
|
||||
type: that.type,
|
||||
xingZhi: that.xingZhi,
|
||||
fenJi: that.fenJi,
|
||||
hangYe: that.hangYe,
|
||||
zycdNum: that.zycdNum,
|
||||
laiYuan: that.laiYuan,
|
||||
guanWang: that.guanWang,
|
||||
jianJie: that.jianJie,
|
||||
remark: that.remark
|
||||
}
|
||||
}
|
||||
let action = 'addKeHu';
|
||||
if (that.pageType == 'update') {
|
||||
action = 'update'
|
||||
reqObj._id = that.xgInfoObj._id;
|
||||
reqObj.req.update_date = new Date().getTime();
|
||||
uni.showLoading({
|
||||
title: '修改中...'
|
||||
})
|
||||
} else if(that.pageType == 'zhuanClient') {
|
||||
let obj = reqObj.req;
|
||||
let time = new Date().getTime()
|
||||
obj.create_date = time;
|
||||
obj.update_date = time;
|
||||
obj.recently_date = '';
|
||||
obj.genjin_date = '';
|
||||
obj.isDelete = 0;
|
||||
obj.status = 1;
|
||||
if(obj.next_gjDate) {
|
||||
if(obj.next_gjDate < time) {
|
||||
that.$confirm('下次联系时间不能小于当前时间,请修改!', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
type: 'warning',
|
||||
showCancelButton: false
|
||||
})
|
||||
return
|
||||
}
|
||||
obj.awaitFollowUp = 1;
|
||||
} else {
|
||||
obj.awaitFollowUp = 0;
|
||||
}
|
||||
obj.cjRenId = uni.$userInfo._id;
|
||||
obj.fuZeRenId = uni.$userInfo._id;
|
||||
obj.threadId = that.xgInfoObj._id;
|
||||
reqObj.req = obj;
|
||||
uni.showLoading({
|
||||
title: '保存中...'
|
||||
})
|
||||
} else {
|
||||
reqObj.req.create_date = new Date().getTime();
|
||||
reqObj.req.update_date = new Date().getTime();
|
||||
reqObj.req.cjRenId = uni.$userInfo._id;
|
||||
reqObj.req.fuZeRenId = uni.$userInfo._id;
|
||||
reqObj.req.isDelete = 0;
|
||||
reqObj.req.status = 1;
|
||||
if(that.fkId) {
|
||||
reqObj.req.fkId = that.fkId;
|
||||
}
|
||||
uni.showLoading({
|
||||
title: '提交中...'
|
||||
})
|
||||
}
|
||||
let reqData = {
|
||||
action: action,
|
||||
params: reqObj
|
||||
}
|
||||
crmKeHuApi(reqData)
|
||||
.then(res => {
|
||||
if (action == 'update') {
|
||||
uni.showToast({
|
||||
title: '客户修改成功',
|
||||
icon: 'none',
|
||||
duration: 888,
|
||||
mask: true
|
||||
})
|
||||
that.addCzjlFun('update')
|
||||
setTimeout(()=> {
|
||||
uni.navigateBack()
|
||||
}, 888)
|
||||
} else {
|
||||
if(that.pageType == 'zhuanClient') {
|
||||
that.zhuanWeiClientId = res.result.id;
|
||||
}
|
||||
uni.showToast({
|
||||
title: '客户新增成功',
|
||||
icon: 'none',
|
||||
duration: 1000,
|
||||
mask: true
|
||||
})
|
||||
that.addCzjlFun('add')
|
||||
let addObj = reqObj.req;
|
||||
addObj._id = res.result.id;
|
||||
if(that.isAdd) {
|
||||
uni.$emit('addItemInListFun', addObj)
|
||||
}
|
||||
setTimeout(()=> {
|
||||
addObj.cjRenName = uni.$userInfo.nickname;
|
||||
addObj.fuZeRenName = uni.$userInfo.nickname;
|
||||
uni.$khInfo = addObj;
|
||||
uni.redirectTo({
|
||||
url: './khDetail?index=0'
|
||||
})
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
},
|
||||
addCzjlFun: function(action, _id) {
|
||||
let czjlObj = {
|
||||
create_date: new Date().getTime(),
|
||||
czRen: uni.$userInfo._id,
|
||||
pageType: 'client'
|
||||
}
|
||||
if(action == 'update') {
|
||||
let xgInfoObj = that.xgInfoObj;
|
||||
czjlObj.dataId = xgInfoObj._id;
|
||||
czjlObj.type = '编辑'
|
||||
czjlObj.newUpdate = new Date().getTime();
|
||||
czjlObj.oldUpdate = xgInfoObj.update_date;
|
||||
let content = [];
|
||||
let str = '';
|
||||
if(that.remark != xgInfoObj.remark) {
|
||||
str = '修改 备注 ,由 "' + xgInfoObj.remark + '" 变更为 "' + that.remark + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.jianJie != xgInfoObj.jianJie) {
|
||||
str = '修改 客户简介 ,由 "' + xgInfoObj.jianJie + '" 变更为 "' + that.jianJie + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.guanWang != xgInfoObj.guanWang) {
|
||||
str = '修改 客户官网 ,由 "' + xgInfoObj.guanWang + '" 变更为 "' + that.guanWang + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.laiYuan != xgInfoObj.laiYuan) {
|
||||
str = '修改 客户来源 ,由 "' + xgInfoObj.laiYuan + '" 变更为 "' + that.laiYuan + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.zycdNum != xgInfoObj.zycdNum) {
|
||||
str = '修改 重要程度 ,由 "' + xgInfoObj.zycdNum + '" 变更为 "' + that.zycdNum + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.hangYe != xgInfoObj.hangYe) {
|
||||
str = '修改 客户行业 ,由 "' + xgInfoObj.hangYe + '" 变更为 "' + that.hangYe + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.fenJi != xgInfoObj.fenJi) {
|
||||
str = '修改 客户分级 ,由 "' + xgInfoObj.fenJi + '" 变更为 "' + that.fenJi + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.xingZhi != xgInfoObj.xingZhi) {
|
||||
str = '修改 客户性质 ,由 "' + xgInfoObj.xingZhi + '" 变更为 "' + that.xingZhi + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.type != xgInfoObj.type) {
|
||||
str = '修改 客户类型 ,由 "' + xgInfoObj.type + '" 变更为 "' + that.type + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.lxRen != xgInfoObj.lxRen) {
|
||||
str = '修改 联系人 ,由 "' + xgInfoObj.lxRen + '" 变更为 "' + that.lxRen + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.xtRen != xgInfoObj.xtRen) {
|
||||
str = '修改 协同人 ,由 "' + xgInfoObj.xtRen + '" 变更为 "' + that.xtRen + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.fuZeRenId != xgInfoObj.fuZeRenId) {
|
||||
str = '修改 负责人 ,由 "' + xgInfoObj.fuZeRen + '" 变更为 "' + that.fuZeRen + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.jieDuan != xgInfoObj.jieDuan) {
|
||||
str = '修改 客户阶段 ,由 "' + xgInfoObj.jieDuan + '" 变更为 "' + that.jieDuan + '"'
|
||||
content.push(str)
|
||||
}
|
||||
// if(that.companyState != xgInfoObj.companyState) {
|
||||
// str = '修改 客户状态 ,由 "' + xgInfoObj.companyState + '" 变更为 "' + that.companyState + '"'
|
||||
// content.push(str)
|
||||
// }
|
||||
if(that.address != xgInfoObj.address) {
|
||||
str = '修改 地址 ,由 "' + xgInfoObj.address + '" 变更为 "' + that.address + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.region != xgInfoObj.region) {
|
||||
str = '修改 地区 ,由 "' + xgInfoObj.region + '" 变更为 "' + that.region + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.phone != xgInfoObj.phone) {
|
||||
str = '修改 联系方式 ,由 "' + xgInfoObj.phone + '" 变更为 "' + that.phone + '"'
|
||||
content.push(str)
|
||||
}
|
||||
if(that.clientName != xgInfoObj.clientName) {
|
||||
str = '修改 客户名称 ,由 "' + xgInfoObj.clientName + '" 变更为 "' + that.clientName + '"'
|
||||
content.push(str)
|
||||
}
|
||||
czjlObj.content = content.reverse()
|
||||
} else {
|
||||
czjlObj.dataId = _id;
|
||||
czjlObj.type = '添加';
|
||||
if(that.pageType == 'zhuanClient' && that.zhuanWeiClientId) {
|
||||
that.setThreadDataFun();
|
||||
}
|
||||
}
|
||||
uni.$czjlApiAddFun(czjlObj);
|
||||
},
|
||||
setThreadDataFun: function() {
|
||||
let jjj = {
|
||||
action: 'update',
|
||||
params: {
|
||||
_id: that.xgInfoObj._id,
|
||||
req: {
|
||||
status: 2
|
||||
}
|
||||
}
|
||||
}
|
||||
threadApi(jjj)
|
||||
.then(res => {
|
||||
uni.$emit('threadListChangeFun');
|
||||
})
|
||||
let rrr = {
|
||||
action: 'zhuanClientCz',
|
||||
params: {
|
||||
dataId: that.xgInfoObj._id,
|
||||
clientId: that.zhuanWeiClientId
|
||||
}
|
||||
}
|
||||
czjlApi(rrr)
|
||||
let ooo = {
|
||||
action: 'zhuanClientGj',
|
||||
params: {
|
||||
dataId: that.xgInfoObj._id,
|
||||
clientId: that.zhuanWeiClientId
|
||||
}
|
||||
}
|
||||
threadGjApi(ooo)
|
||||
},
|
||||
// 初始化修改数据
|
||||
setDataFun: function() {
|
||||
let obj = uni.$infoObj;
|
||||
that.xgInfoObj = uni.$infoObj;
|
||||
that.clientName = obj.clientName;
|
||||
that.phone = obj.phone;
|
||||
that.region = obj.region;
|
||||
that.address = obj.address;
|
||||
that.latitude = obj.latitude;
|
||||
that.longitude = obj.longitude;
|
||||
// that.companyState = obj.companyState;
|
||||
that.jieDuan = obj.jieDuan;
|
||||
that.fuZeRen = obj.fuZeRen;
|
||||
that.fuZeRenId = obj.fuZeRenId;
|
||||
that.xtRen = obj.xtRen;
|
||||
that.lxRen = obj.lxRen;
|
||||
that.type = obj.type;
|
||||
that.xingZhi = obj.xingZhi;
|
||||
that.fenJi = obj.fenJi;
|
||||
that.hangYe = obj.hangYe;
|
||||
that.zycdNum = obj.zycdNum;
|
||||
that.laiYuan = obj.laiYuan;
|
||||
that.guanWang = obj.guanWang;
|
||||
that.jianJie = obj.jianJie;
|
||||
that.remark = obj.remark;
|
||||
if(obj.region) {
|
||||
let regionArr = (obj.region).split(" ");
|
||||
that.province = regionArr[0];
|
||||
that.city = regionArr[1];
|
||||
that.area = regionArr[2];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
page {
|
||||
background-color: #F8F8F8;
|
||||
padding-bottom: 260rpx;
|
||||
}
|
||||
.u-radio {
|
||||
width: 200rpx !important;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,519 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="u-demo-block">
|
||||
<view class="u-page__tag-item">
|
||||
<u-search v-model="searchCustomerName" :show-action="false" @custom="selectKehuFun"
|
||||
@search="selectKehuFun" placeholder="请输入客户名称"></u-search>
|
||||
</view>
|
||||
</view>
|
||||
<scroll-view scroll-y="true" :style="{height: scrollHeight}" @scrolltolower="selectKehuFun" refresher-enabled
|
||||
:refresher-threshold="200" :refresher-triggered="triggered" refresher-background="gray"
|
||||
@refresherrefresh="onRefresh" @refresherrestore="onRestore">
|
||||
<view v-if="list.length > 0">
|
||||
<view v-for="(item, index) in list" :key="index" @click="khCardClickFun(item)">
|
||||
<khCard :item="item" :isSelect="isSelect" :index="index" @cxGetDataFun="cxGetDataFun"></khCard>
|
||||
</view>
|
||||
<getMore :isMore="isMore" nullMsg="已加载全部~"></getMore>
|
||||
<view class="h200"></view>
|
||||
</view>
|
||||
<dataNull v-else src="/static/img/dataNull.png" title="暂无相关客户哦~"></dataNull>
|
||||
</scroll-view>
|
||||
<u-action-sheet :list="sheetList" v-model="moreShow"></u-action-sheet>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
let that = this;
|
||||
import {
|
||||
tyDropDown,
|
||||
dropDownByUser,
|
||||
khsxData,
|
||||
datePxData
|
||||
} from '../../../static/utils/dropdown.js'
|
||||
import {
|
||||
getDayFun,
|
||||
getDayByNumFun
|
||||
} from '@/static/utils/date.js'
|
||||
import dataNull from '@/components/dataNull/dataNull.vue'
|
||||
import addBtn from '@/components/addBtn/addBtn.vue'
|
||||
import getMore from '@/components/getMore/getMore.vue'
|
||||
import topDropdown from '../../../components/topDropdown/topDropdown.vue'
|
||||
import lianxiRow from '../../../components/lianxiRow/lianxiRow.vue'
|
||||
import khCard from '../../../components/card/kehu.vue'
|
||||
import util, {
|
||||
playSuccessAudio,
|
||||
playErrorAudio
|
||||
} from '../../../common/util.js';
|
||||
export default {
|
||||
components: {
|
||||
dataNull,
|
||||
addBtn,
|
||||
getMore,
|
||||
topDropdown,
|
||||
lianxiRow,
|
||||
khCard
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
CustomerName: '',
|
||||
triggered: false,
|
||||
dropdown1: '全部',
|
||||
options1: tyDropDown,
|
||||
optionsPx: datePxData,
|
||||
searchCustomerName: '',
|
||||
CustomerTypes: '',
|
||||
sxList: [],
|
||||
list: [],
|
||||
moreShow: false,
|
||||
sheetList: [{
|
||||
text: '添加跟进'
|
||||
},
|
||||
{
|
||||
text: '添加标签'
|
||||
}
|
||||
],
|
||||
isMore: true,
|
||||
pageIndex: 1,
|
||||
scrollHeight: '667px',
|
||||
pageType: '',
|
||||
sortObj: {
|
||||
update_date: -1
|
||||
},
|
||||
optionsReq: {}, // 第一个下拉框请求参数
|
||||
dateReq: [], // 日期相关请求参数
|
||||
sxReq: JSON.stringify({}), // 筛选想请求参数
|
||||
matchObj: {},
|
||||
searchValue: '',
|
||||
isSelect: false,
|
||||
tabNoEqualArr: [], //标签页不等于数据
|
||||
depId: undefined
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
that = this;
|
||||
let khsxList = JSON.stringify(khsxData);
|
||||
that.sxList = JSON.parse(khsxList);
|
||||
let obj = {};
|
||||
|
||||
this.CustomerTypes = e.type;
|
||||
this.pageType = e.type;
|
||||
console.log(">>>" + e.type);
|
||||
if (e.type) {
|
||||
that.isSelect = true;
|
||||
}
|
||||
this.selectKehuFun();
|
||||
},
|
||||
onBackPress() {
|
||||
uni.$off('deleteKhFun', that.deleteKhFun)
|
||||
uni.$off('updateListByIndex', that.updateListByIndex)
|
||||
uni.$off('addItemInListFun', that.addItemInListFun)
|
||||
uni.$off('cxGetDataFun', that.cxGetDataFun)
|
||||
},
|
||||
methods: {
|
||||
// 查询用户
|
||||
selectKehuFun: function() {
|
||||
let aSaleUserID = 0;
|
||||
if (getApp().globalData.IsSaleUserStatus == 1)
|
||||
aSaleUserID = getApp().globalData.EmployeeID;
|
||||
console.log("-->>>>>>" + this.searchCustomerName);
|
||||
uni.request({
|
||||
url: util.apiurl + 'rest/db/opensql',
|
||||
data: {
|
||||
token: getApp().globalData.Token,
|
||||
format: 'json',
|
||||
data: {
|
||||
db_name: getApp().globalData.AppDBName,
|
||||
sql_command_id: 'APP.BaseData.GetCustomerData',
|
||||
params: [{
|
||||
name: 'SUID',
|
||||
value: aSaleUserID
|
||||
}, {
|
||||
name: 'MUID',
|
||||
value: aSaleUserID
|
||||
}, {
|
||||
name: 'CName',
|
||||
value: '%' + this.searchCustomerName + '%'
|
||||
}, {
|
||||
name: 'CustomerTypes',
|
||||
value: '%' + this.CustomerTypes + '%'
|
||||
}]
|
||||
},
|
||||
},
|
||||
success: (res) => {
|
||||
this.triggered = false;
|
||||
let data = res.data.data;
|
||||
if (that.pageIndex == 1) {
|
||||
that.list = [];
|
||||
}
|
||||
if (res.data == 20) {
|
||||
that.pageIndex += 1;
|
||||
that.isMore = true;
|
||||
} else {
|
||||
that.isMore = false;
|
||||
}
|
||||
that.list = that.list.concat(data);
|
||||
},
|
||||
})
|
||||
},
|
||||
// 客户点击方法
|
||||
khCardClickFun: function(item) {
|
||||
if (that.pageType == '客户') {
|
||||
uni.$emit('bjdKehuBindFun', {
|
||||
CustomerID: item.CustomerID,
|
||||
CustomerName: item.CustomerName,
|
||||
PlanDepartmentID: item.PlanDepartmentID,
|
||||
PlanDepartmentName: item.PlanDepartmentName,
|
||||
SaleUserID: item.SaleUserID,
|
||||
SaleUserName: item.SaleUserName,
|
||||
Remark: item.Remark,
|
||||
CustomerAddress: item.CustomerAddress,
|
||||
CustomerPhone: item.CustomerPhone,
|
||||
CustomerLinkName: item.CustomerLinkName,
|
||||
})
|
||||
uni.navigateBack();
|
||||
}else if (that.pageType == '织厂') {
|
||||
uni.$emit('bjdKehuBindFun', {
|
||||
CustomerID: item.CustomerID,
|
||||
CustomerName: item.CustomerName,
|
||||
PlanDepartmentID: item.PlanDepartmentID,
|
||||
PlanDepartmentName: item.PlanDepartmentName,
|
||||
SaleUserID: item.SaleUserID,
|
||||
SaleUserName: item.SaleUserName,
|
||||
Remark: item.Remark,
|
||||
CustomerAddress: item.CustomerAddress,
|
||||
CustomerPhone: item.CustomerPhone,
|
||||
CustomerLinkName: item.CustomerLinkName,
|
||||
})
|
||||
uni.navigateBack();
|
||||
} else if (that.pageType == '染整厂') {
|
||||
uni.$emit('bjdKehuBindFun', {
|
||||
CustomerID: item.CustomerID,
|
||||
CustomerName: item.CustomerName,
|
||||
PlanDepartmentID: item.PlanDepartmentID,
|
||||
PlanDepartmentName: item.PlanDepartmentName,
|
||||
SaleUserID: item.SaleUserID,
|
||||
SaleUserName: item.SaleUserName,
|
||||
Remark: item.Remark,
|
||||
CustomerAddress: item.CustomerAddress,
|
||||
CustomerPhone: item.CustomerPhone,
|
||||
CustomerLinkName: item.CustomerLinkName,
|
||||
})
|
||||
uni.navigateBack();
|
||||
} else if (that.pageType == '成品供应商') {
|
||||
uni.$emit('bjdKehuBindFun', {
|
||||
CustomerID: item.CustomerID,
|
||||
CustomerName: item.CustomerName,
|
||||
PlanDepartmentID: item.PlanDepartmentID,
|
||||
PlanDepartmentName: item.PlanDepartmentName,
|
||||
SaleUserID: item.SaleUserID,
|
||||
SaleUserName: item.SaleUserName,
|
||||
Remark: item.Remark,
|
||||
CustomerAddress: item.CustomerAddress,
|
||||
CustomerPhone: item.CustomerPhone,
|
||||
CustomerLinkName: item.CustomerLinkName,
|
||||
})
|
||||
uni.navigateBack();
|
||||
} else if (that.pageType == '') {
|
||||
uni.$emit('bjdKehuBindFun', {
|
||||
CustomerID: item.CustomerID,
|
||||
CustomerName: item.CustomerName,
|
||||
PlanDepartmentID: item.PlanDepartmentID,
|
||||
PlanDepartmentName: item.PlanDepartmentName,
|
||||
SaleUserID: item.SaleUserID,
|
||||
SaleUserName: item.SaleUserName,
|
||||
Remark: item.Remark,
|
||||
CustomerAddress: item.CustomerAddress,
|
||||
CustomerPhone: item.CustomerPhone,
|
||||
CustomerLinkName: item.CustomerLinkName,
|
||||
})
|
||||
uni.navigateBack();
|
||||
}
|
||||
else if (that.pageType == 'lxr') {
|
||||
uni.$emit('kehuBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'addGjjl') {
|
||||
uni.$emit('gjKehuBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'sj') {
|
||||
uni.$emit('sjKehuBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'saleallocated') {
|
||||
uni.$emit('bjdKehuBindFun', {
|
||||
CustomerID: item.CustomerID,
|
||||
CustomerName: item.CustomerName,
|
||||
PlanDepartmentID: item.PlanDepartmentID,
|
||||
PlanDepartmentName: item.PlanDepartmentName,
|
||||
SaleUserID: item.SaleUserID,
|
||||
SaleUserName: item.SaleUserName,
|
||||
Remark: item.Remark,
|
||||
CustomerAddress: item.CustomerAddress,
|
||||
CustomerPhone: item.CustomerPhone,
|
||||
CustomerLinkName: item.CustomerLinkName,
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'heTong') {
|
||||
uni.$emit('heTongdKehuBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'topDropDown') {
|
||||
uni.$emit('topDropDownBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType != '') {
|
||||
uni.$emit('kehuBindFun', item)
|
||||
uni.navigateBack()
|
||||
}
|
||||
// else {
|
||||
// uni.$khInfo = item;
|
||||
// uni.navigateTo({
|
||||
// url: './khDetail'
|
||||
// })
|
||||
// }
|
||||
},
|
||||
// 下拉框回调函数
|
||||
dropDownFun1: function(e) {
|
||||
let optionsReq = {};
|
||||
let tabNoEqualArr = [];
|
||||
let userInfo = uni.$userInfo;
|
||||
that.depId = undefined;
|
||||
if (e.label == '全部') {
|
||||
that.depId = userInfo.depManager_Id;
|
||||
} else if (e.label == '我负责的') {
|
||||
optionsReq.fuZeRenId = userInfo._id;
|
||||
} else if (e.label == '我创建的') {
|
||||
optionsReq.cjRenId = userInfo._id;
|
||||
} else if (e.label == '下属负责') {
|
||||
that.depId = userInfo.depManager_Id;
|
||||
tabNoEqualArr = [{
|
||||
field: 'fuZeRenId',
|
||||
value: userInfo._id
|
||||
}]
|
||||
optionsReq.department = userInfo.departmentId;
|
||||
} else if (e.label == '下属创建') {
|
||||
that.depId = userInfo.depManager_Id;
|
||||
tabNoEqualArr = [{
|
||||
field: 'cjRenId',
|
||||
value: userInfo._id
|
||||
}]
|
||||
}
|
||||
that.tabNoEqualArr = tabNoEqualArr;
|
||||
that.optionsReq = JSON.stringify(optionsReq);
|
||||
that.matchObj = Object.assign(optionsReq, JSON.parse(that.sxReq));
|
||||
that.cxGetDataFun();
|
||||
},
|
||||
// 筛选框回调函数
|
||||
optionSxFun: function(arr) {
|
||||
let matchReq = [];
|
||||
let dateReq = [];
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
if (arr[i].current !== '' && !arr[i].isDate) {
|
||||
matchReq.push({
|
||||
field: arr[i].field,
|
||||
value: arr[i].arr[arr[i].current]
|
||||
})
|
||||
} else if (arr[i].current !== '' && arr[i].isDate) {
|
||||
dateReq.push({
|
||||
field: arr[i].field,
|
||||
sTime: arr[i].sTime,
|
||||
eTime: arr[i].eTime
|
||||
})
|
||||
}
|
||||
}
|
||||
let reqObj = {};
|
||||
// 动态生成请求对象
|
||||
for (var i = 0; i < matchReq.length; i++) {
|
||||
reqObj[matchReq[i].field] = matchReq[i].value
|
||||
}
|
||||
that.dateReq = dateReq;
|
||||
that.sxReq = JSON.stringify(reqObj);
|
||||
// 合并对象
|
||||
that.matchObj = Object.assign(reqObj, JSON.parse(that.optionsReq));
|
||||
that.cxGetDataFun();
|
||||
},
|
||||
// 排序筛选框回调函数
|
||||
optionPxFun: function(arr) {
|
||||
let sortObj = {
|
||||
update_date: -1
|
||||
}
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
if (arr[i].current !== '') {
|
||||
sortObj = {}
|
||||
if (arr[i].field == 'create_date') {
|
||||
sortObj.create_date = arr[i].current == 1 ? 1 : -1
|
||||
}
|
||||
if (arr[i].field == 'update_date') {
|
||||
sortObj.update_date = arr[i].current == 1 ? 1 : -1
|
||||
}
|
||||
if (arr[i].field == 'genjin_date') {
|
||||
sortObj.genjin_date = arr[i].current == 1 ? 1 : -1
|
||||
}
|
||||
that.sortObj = sortObj;
|
||||
break;
|
||||
}
|
||||
}
|
||||
that.cxGetDataFun();
|
||||
},
|
||||
// 搜索框回调方法
|
||||
searchBoxEmitFun: function(e) {
|
||||
that.searchValue = e.searchValue1;
|
||||
that.cxGetDataFun()
|
||||
},
|
||||
// 下拉刷新
|
||||
onRefresh: function() {
|
||||
if (that.triggered) return
|
||||
that.triggered = true;
|
||||
that.cxGetDataFun();
|
||||
},
|
||||
onRestore: function(e) {
|
||||
that.triggered = false; // 需要重置
|
||||
},
|
||||
// 重新获取数据
|
||||
cxGetDataFun: function() {
|
||||
that.pageIndex = 1;
|
||||
that.isMore = true;
|
||||
that.selectKehuFun();
|
||||
},
|
||||
deleteKhFun: function(e) {
|
||||
let arr = that.list;
|
||||
arr.splice(e.index, 1);
|
||||
that.list = arr;
|
||||
},
|
||||
// 通过下标更新list数据
|
||||
updateListByIndex: function(e) {
|
||||
that.$set(that.list, parseInt(e.index), e.obj)
|
||||
},
|
||||
// add页面新增数据
|
||||
addItemInListFun: function(e) {
|
||||
let arr = that.list;
|
||||
arr.unshift(e);
|
||||
that.list = arr;
|
||||
uni.pageScrollTo({
|
||||
scrollTop: 0
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
page {
|
||||
background-color: #F8F8F8;
|
||||
}
|
||||
|
||||
.card {
|
||||
width: 698rpx;
|
||||
padding: 26rpx 26rpx 10rpx;
|
||||
margin: 32rpx 26rpx;
|
||||
box-sizing: border-box;
|
||||
border-radius: 8rpx;
|
||||
box-shadow: #d8d8d8 0px 0px 16rpx;
|
||||
position: relative;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
.genjinBtn {
|
||||
position: absolute;
|
||||
right: 26rpx;
|
||||
top: 26rpx;
|
||||
background-color: #007AFF;
|
||||
color: #FFFFFF;
|
||||
text-align: center;
|
||||
padding: 6rpx 16rpx;
|
||||
border-radius: 6rpx;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.genjinBtn:active {
|
||||
background-color: #13B8FF;
|
||||
}
|
||||
|
||||
.topRow {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
|
||||
.txView {
|
||||
width: 128rpx;
|
||||
height: 128rpx;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
margin-right: 26rpx;
|
||||
}
|
||||
|
||||
.txViewImg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.info {
|
||||
width: 492rpx;
|
||||
font-size: 15px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 16px;
|
||||
margin-bottom: 8rpx;
|
||||
color: #000000;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.bottomRow {
|
||||
width: 100%;
|
||||
padding-top: 16rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-top: 1rpx solid #f0f0f0;
|
||||
font-size: 15px;
|
||||
color: #007AFF;
|
||||
}
|
||||
|
||||
.lxRow {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.lxRow>image {
|
||||
width: 52rpx;
|
||||
height: 52rpx;
|
||||
margin-right: 26rpx;
|
||||
}
|
||||
|
||||
.bqRow {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.bqRow>text {
|
||||
font-size: 14px;
|
||||
color: #888888;
|
||||
}
|
||||
|
||||
.bqRow>view {
|
||||
padding: 6rpx 16rpx;
|
||||
font-size: 14px;
|
||||
background-color: rgba(255, 85, 127, 0.1);
|
||||
color: #ff5500;
|
||||
border-radius: 10rpx;
|
||||
margin: 6rpx 26rpx 20rpx 0;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,299 @@
|
||||
<template>
|
||||
<view>
|
||||
<view class="u-demo-block">
|
||||
<view class="u-page__tag-item">
|
||||
<u-search v-model="searchCustomerName" :show-action="false" @custom="selectKehuFun"
|
||||
@search="selectKehuFun" placeholder="请输入客户名称"></u-search>
|
||||
</view>
|
||||
</view>
|
||||
<scroll-view scroll-y="true" :style="{height: scrollHeight}" @scrolltolower="selectKehuFun" refresher-enabled
|
||||
:refresher-threshold="200" :refresher-triggered="triggered" refresher-background="gray"
|
||||
@refresherrefresh="onRefresh" @refresherrestore="onRestore">
|
||||
<view v-if="list.length > 0">
|
||||
<view v-for="(item, index) in list" :key="index" @click="khCardClickFun(item)">
|
||||
<khCard :item="item" :isSelect="isSelect" :index="index" @cxGetDataFun="cxGetDataFun"></khCard>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
<u-action-sheet :list="sheetList" v-model="moreShow"></u-action-sheet>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
let that = this;
|
||||
import dataNull from '@/components/dataNull/dataNull.vue'
|
||||
import addBtn from '@/components/addBtn/addBtn.vue'
|
||||
import getMore from '@/components/getMore/getMore.vue'
|
||||
import topDropdown from '../../../components/topDropdown/topDropdown.vue'
|
||||
import lianxiRow from '../../../components/lianxiRow/lianxiRow.vue'
|
||||
import khCard from '../../../components/card/kehu.vue'
|
||||
import util, {
|
||||
playSuccessAudio,
|
||||
playErrorAudio
|
||||
} from '../../../common/util.js';
|
||||
export default {
|
||||
components: {
|
||||
dataNull,
|
||||
addBtn,
|
||||
getMore,
|
||||
topDropdown,
|
||||
lianxiRow,
|
||||
khCard
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
triggered: false,
|
||||
searchCustomerName: '',
|
||||
CustomerTypes: '',
|
||||
list: [],
|
||||
moreShow: false,
|
||||
isMore: true,
|
||||
pageIndex: 1,
|
||||
scrollHeight: '667px',
|
||||
sheetList: [{
|
||||
text: '添加跟进'
|
||||
},
|
||||
{
|
||||
text: '添加标签'
|
||||
}
|
||||
],
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
that = this;
|
||||
uni.getSystemInfo({
|
||||
success(res) {
|
||||
that.scrollHeight = res.windowHeight - 40 + 'px';
|
||||
}
|
||||
})
|
||||
this.CustomerTypes = e.type;
|
||||
console.log(">>>" + e.type);
|
||||
if (e.type) {
|
||||
that.isSelect = true;
|
||||
}
|
||||
this.selectKehuFun();
|
||||
},
|
||||
methods: {
|
||||
// 查询用户
|
||||
selectKehuFun: function() {
|
||||
console.log("---->>>" + this.searchCustomerName);
|
||||
let aSaleUserID = 0;
|
||||
if (getApp().globalData.IsSaleUserStatus == 1)
|
||||
aSaleUserID = getApp().globalData.EmployeeID;
|
||||
uni.request({
|
||||
url: util.apiurl + 'rest/db/opensql',
|
||||
data: {
|
||||
token: getApp().globalData.Token,
|
||||
format: 'json',
|
||||
data: {
|
||||
db_name: getApp().globalData.AppDBName,
|
||||
sql_command_id: 'APP.BaseData.GetCustomerData',
|
||||
params: [{
|
||||
name: 'SUID',
|
||||
value: aSaleUserID
|
||||
}, {
|
||||
name: 'MUID',
|
||||
value: aSaleUserID
|
||||
}, {
|
||||
name: 'CName',
|
||||
value: '%' + this.searchCustomerName + '%'
|
||||
}, {
|
||||
name: 'CustomerTypes',
|
||||
value: '%' + this.CustomerTypes + '%'
|
||||
}]
|
||||
},
|
||||
},
|
||||
success: (res) => {
|
||||
let data = res.data.data;
|
||||
console.log("---->>>" + JSON.stringify(res.data.data));
|
||||
that.list = that.list.concat(data);
|
||||
},
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
// 搜索框回调方法
|
||||
searchBoxEmitFun: function(e) {
|
||||
that.searchValue = e.searchValue1;
|
||||
that.cxGetDataFun()
|
||||
},
|
||||
// 下拉刷新
|
||||
onRefresh: function() {
|
||||
if (that.triggered) return
|
||||
that.triggered = true;
|
||||
that.cxGetDataFun();
|
||||
},
|
||||
onRestore: function(e) {
|
||||
that.triggered = false; // 需要重置
|
||||
},
|
||||
// 重新获取数据
|
||||
cxGetDataFun: function() {
|
||||
that.pageIndex = 1;
|
||||
that.isMore = true;
|
||||
that.selectKehuFun();
|
||||
},
|
||||
|
||||
// 客户点击方法
|
||||
khCardClickFun: function(item) {
|
||||
if (that.pageType == 'lxr') {
|
||||
uni.$emit('kehuBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'addGjjl') {
|
||||
uni.$emit('gjKehuBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'sj') {
|
||||
uni.$emit('sjKehuBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'saleallocated') {
|
||||
uni.$emit('bjdKehuBindFun', {
|
||||
CustomerID: item.CustomerID,
|
||||
CustomerName: item.CustomerName,
|
||||
PlanDepartmentID: item.PlanDepartmentID,
|
||||
PlanDepartmentName: item.PlanDepartmentName,
|
||||
SaleUserID: item.SaleUserID,
|
||||
SaleUserName: item.SaleUserName,
|
||||
Remark: item.Remark,
|
||||
CustomerAddress: item.CustomerAddress,
|
||||
CustomerPhone: item.CustomerPhone,
|
||||
CustomerLinkName: item.CustomerLinkName,
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'heTong') {
|
||||
uni.$emit('heTongdKehuBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'topDropDown') {
|
||||
uni.$emit('topDropDownBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType != '') {
|
||||
uni.$emit('kehuBindFun', item)
|
||||
uni.navigateBack()
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
page {
|
||||
background-color: #F8F8F8;
|
||||
}
|
||||
|
||||
.card {
|
||||
width: 698rpx;
|
||||
padding: 26rpx 26rpx 10rpx;
|
||||
margin: 32rpx 26rpx;
|
||||
box-sizing: border-box;
|
||||
border-radius: 8rpx;
|
||||
box-shadow: #d8d8d8 0px 0px 16rpx;
|
||||
position: relative;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
.genjinBtn {
|
||||
position: absolute;
|
||||
right: 26rpx;
|
||||
top: 26rpx;
|
||||
background-color: #007AFF;
|
||||
color: #FFFFFF;
|
||||
text-align: center;
|
||||
padding: 6rpx 16rpx;
|
||||
border-radius: 6rpx;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.genjinBtn:active {
|
||||
background-color: #13B8FF;
|
||||
}
|
||||
|
||||
.topRow {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
|
||||
.txView {
|
||||
width: 128rpx;
|
||||
height: 128rpx;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
margin-right: 26rpx;
|
||||
}
|
||||
|
||||
.txViewImg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.info {
|
||||
width: 492rpx;
|
||||
font-size: 15px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 16px;
|
||||
margin-bottom: 8rpx;
|
||||
color: #000000;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.bottomRow {
|
||||
width: 100%;
|
||||
padding-top: 16rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-top: 1rpx solid #f0f0f0;
|
||||
font-size: 15px;
|
||||
color: #007AFF;
|
||||
}
|
||||
|
||||
.lxRow {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.lxRow>image {
|
||||
width: 52rpx;
|
||||
height: 52rpx;
|
||||
margin-right: 26rpx;
|
||||
}
|
||||
|
||||
.bqRow {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.bqRow>text {
|
||||
font-size: 14px;
|
||||
color: #888888;
|
||||
}
|
||||
|
||||
.bqRow>view {
|
||||
padding: 6rpx 16rpx;
|
||||
font-size: 14px;
|
||||
background-color: rgba(255, 85, 127, 0.1);
|
||||
color: #ff5500;
|
||||
border-radius: 10rpx;
|
||||
margin: 6rpx 26rpx 20rpx 0;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,428 @@
|
||||
<template>
|
||||
<view>
|
||||
<topDropdown :isSxShow="true" :isPaiXu="true" :dropdown1="dropdown1" :options1="options1" :optionsSx="sxList" :optionsPx="optionsPx" :isDuoXuan="true" searchLabel1="客户名称" searchPh1="请输入客户名称" @searchBoxEmitFun="searchBoxEmitFun" @dropDownFun1="dropDownFun1" @optionSxFun="optionSxFun" @optionPxFun="optionPxFun"></topDropdown> <!-- searchUrl="../search/search?type=客户搜索"-->
|
||||
<scroll-view scroll-y="true" :style="{height: scrollHeight}" @scrolltolower="selectKehuFun"
|
||||
refresher-enabled :refresher-threshold="200" :refresher-triggered="triggered" refresher-background="gray"
|
||||
@refresherrefresh="onRefresh" @refresherrestore="onRestore">
|
||||
<view v-if="list.length > 0">
|
||||
<view v-for="(item, index) in list" :key="index" @click="khCardClickFun(item)">
|
||||
<khCard :item="item" :isSelect="isSelect" :index="index" @cxGetDataFun="cxGetDataFun"></khCard>
|
||||
</view>
|
||||
<getMore :isMore="isMore" nullMsg="已加载全部~"></getMore>
|
||||
<view class="h200"></view>
|
||||
</view>
|
||||
<dataNull v-else src="/static/img/dataNull.png" title="暂无相关客户哦~"></dataNull>
|
||||
</scroll-view>
|
||||
<u-action-sheet :list="sheetList" v-model="moreShow"></u-action-sheet>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
let that = this;
|
||||
import {
|
||||
crmKeHuApi
|
||||
} from '../../../static/utils/api.js'
|
||||
import { cjDropDownData, cjDropDownData1, khsxData, datePxData } from '../../../static/utils/dropdown.js'
|
||||
import dataNull from '@/components/dataNull/dataNull.vue'
|
||||
import getMore from '@/components/getMore/getMore.vue'
|
||||
import topDropdown from '../../../components/topDropdown/topDropdown.vue'
|
||||
import lianxiRow from '../../../components/lianxiRow/lianxiRow.vue'
|
||||
import khCard from '../../../components/card/kehu.vue'
|
||||
export default {
|
||||
components: {
|
||||
dataNull,
|
||||
getMore,
|
||||
topDropdown,
|
||||
lianxiRow,
|
||||
khCard
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
triggered: false,
|
||||
dropdown1: '全部',
|
||||
options1: [],
|
||||
optionsPx: datePxData,
|
||||
sxList: [],
|
||||
list: [],
|
||||
moreShow: false,
|
||||
sheetList: [{
|
||||
text: '添加跟进'
|
||||
},
|
||||
{
|
||||
text: '添加标签'
|
||||
}
|
||||
],
|
||||
isMore: true,
|
||||
pageIndex: 1,
|
||||
scrollHeight: '667px',
|
||||
pageType: '',
|
||||
sortObj: {
|
||||
update_date: -1
|
||||
},
|
||||
optionsReq: {}, // 第一个下拉框请求参数
|
||||
dateReq: [], // 日期相关请求参数
|
||||
sxReq: JSON.stringify({}), // 筛选想请求参数
|
||||
matchObj: {},
|
||||
searchValue: '',
|
||||
isSelect: false,
|
||||
tabNoEqualArr: [], //标签页不等于数据
|
||||
depId: undefined
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
that = this;
|
||||
let khsxList = JSON.stringify(khsxData);
|
||||
that.sxList = JSON.parse(khsxList);
|
||||
let obj = {
|
||||
status: 0
|
||||
};
|
||||
if(uni.$userInfo.isDepManager) {
|
||||
that.options1 = cjDropDownData;
|
||||
that.depId = uni.$userInfo.depManager_Id;
|
||||
} else {
|
||||
that.options1 = cjDropDownData1;
|
||||
obj.cjRenId = uni.$userInfo._id;
|
||||
}
|
||||
if(e.type) {
|
||||
that.isSelect = true;
|
||||
}
|
||||
that.matchObj = obj;
|
||||
that.optionsReq = JSON.stringify(obj);
|
||||
that.pageType = e.type ? e.type : '';
|
||||
uni.getSystemInfo({
|
||||
success(res) {
|
||||
that.scrollHeight = res.windowHeight - 40 + 'px';
|
||||
}
|
||||
})
|
||||
that.selectKehuFun();
|
||||
uni.$on('deleteKhFun', that.deleteKhFun)
|
||||
uni.$on('updateListByIndex', that.updateListByIndex)
|
||||
uni.$on('addItemInListFun', that.addItemInListFun)
|
||||
uni.$on('cxGetDataFun', that.cxGetDataFun)
|
||||
},
|
||||
onBackPress() {
|
||||
uni.$off('deleteKhFun', that.deleteKhFun)
|
||||
uni.$off('updateListByIndex', that.updateListByIndex)
|
||||
uni.$off('addItemInListFun', that.addItemInListFun)
|
||||
uni.$off('cxGetDataFun', that.cxGetDataFun)
|
||||
},
|
||||
methods: {
|
||||
// 查询用户
|
||||
selectKehuFun: function() {
|
||||
if (!that.isMore) {
|
||||
return
|
||||
}
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask: true
|
||||
})
|
||||
let matchObj = {
|
||||
status: 0,
|
||||
}
|
||||
Object.assign(matchObj, that.matchObj);
|
||||
let reqObj = {
|
||||
matchObj,
|
||||
dateReq: that.dateReq,
|
||||
pageIndex: that.pageIndex,
|
||||
depId: that.depId,
|
||||
tabNoEqualArr: that.tabNoEqualArr,
|
||||
sortObj: that.sortObj,
|
||||
searchValue: that.searchValue,
|
||||
isFzrLookup: "$cjRenId"
|
||||
}
|
||||
let reqData = {
|
||||
action: 'selectKehu',
|
||||
params: reqObj
|
||||
}
|
||||
console.log(reqData)
|
||||
crmKeHuApi(reqData)
|
||||
.then(res => {
|
||||
this.triggered = false;
|
||||
let data = res.result.data;
|
||||
console.log(data)
|
||||
if (that.pageIndex == 1) {
|
||||
that.list = [];
|
||||
}
|
||||
if (data.length == 20) {
|
||||
that.pageIndex += 1;
|
||||
that.isMore = true;
|
||||
} else {
|
||||
that.isMore = false;
|
||||
}
|
||||
that.list = that.list.concat(data);
|
||||
})
|
||||
},
|
||||
// 客户点击方法
|
||||
khCardClickFun: function(item) {
|
||||
if (that.pageType == 'lxr') {
|
||||
uni.$emit('kehuBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'addGjjl') {
|
||||
uni.$emit('gjKehuBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'sj') {
|
||||
uni.$emit('sjKehuBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'bjd') {
|
||||
uni.$emit('bjdKehuBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if (that.pageType == 'heTong') {
|
||||
uni.$emit('heTongdKehuBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if(that.pageType == 'topDropDown') {
|
||||
uni.$emit('topDropDownBindFun', {
|
||||
clientName: item.clientName,
|
||||
clientId: item._id
|
||||
})
|
||||
uni.navigateBack()
|
||||
} else if(that.pageType != '') {
|
||||
uni.$emit('kehuBindFun', item)
|
||||
uni.navigateBack()
|
||||
}
|
||||
// else {
|
||||
// uni.$khInfo = item;
|
||||
// uni.navigateTo({
|
||||
// url: './khDetail'
|
||||
// })
|
||||
// }
|
||||
},
|
||||
// 下拉框回调函数
|
||||
dropDownFun1: function(e) {
|
||||
let optionsReq = {};
|
||||
let tabNoEqualArr = [];
|
||||
let userInfo = uni.$userInfo;
|
||||
that.depId = undefined;
|
||||
if(e.label == '全部') {
|
||||
that.depId = userInfo.depManager_Id;
|
||||
} else if(e.label == '我创建的') {
|
||||
optionsReq.cjRenId = userInfo._id;
|
||||
} else if(e.label == '下属创建') {
|
||||
that.depId = userInfo.depManager_Id;
|
||||
tabNoEqualArr = [{
|
||||
field: 'cjRenId',
|
||||
value: userInfo._id
|
||||
}]
|
||||
}
|
||||
that.tabNoEqualArr = tabNoEqualArr;
|
||||
that.optionsReq = JSON.stringify(optionsReq);
|
||||
that.matchObj = Object.assign(optionsReq, JSON.parse(that.sxReq));
|
||||
that.cxGetDataFun();
|
||||
},
|
||||
// 筛选框回调函数
|
||||
optionSxFun: function(arr) {
|
||||
let matchReq = [];
|
||||
let dateReq = [];
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
if(arr[i].current !== '' && !arr[i].isDate) {
|
||||
matchReq.push({
|
||||
field: arr[i].field,
|
||||
value: arr[i].arr[arr[i].current]
|
||||
})
|
||||
} else if(arr[i].current !== '' && arr[i].isDate) {
|
||||
dateReq.push({
|
||||
field: arr[i].field,
|
||||
sTime: arr[i].sTime,
|
||||
eTime: arr[i].eTime
|
||||
})
|
||||
}
|
||||
}
|
||||
let reqObj = {};
|
||||
// 动态生成请求对象
|
||||
for(var i = 0; i < matchReq.length; i++) {
|
||||
reqObj[matchReq[i].field] = matchReq[i].value
|
||||
}
|
||||
that.dateReq = dateReq;
|
||||
that.sxReq = JSON.stringify(reqObj);
|
||||
// 合并对象
|
||||
that.matchObj = Object.assign(reqObj, JSON.parse(that.optionsReq));
|
||||
that.cxGetDataFun();
|
||||
},
|
||||
// 排序筛选框回调函数
|
||||
optionPxFun: function(arr) {
|
||||
let sortObj = {
|
||||
update_date: -1
|
||||
}
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
if (arr[i].current !== '') {
|
||||
sortObj = {}
|
||||
if (arr[i].field == 'create_date') {
|
||||
sortObj.create_date = arr[i].current == 1 ? 1 : -1
|
||||
}
|
||||
if (arr[i].field == 'update_date') {
|
||||
sortObj.update_date = arr[i].current == 1 ? 1 : -1
|
||||
}
|
||||
if (arr[i].field == 'genjin_date') {
|
||||
sortObj.genjin_date = arr[i].current == 1 ? 1 : -1
|
||||
}
|
||||
that.sortObj = sortObj;
|
||||
break;
|
||||
}
|
||||
}
|
||||
that.cxGetDataFun();
|
||||
},
|
||||
// 搜索框回调方法
|
||||
searchBoxEmitFun: function(e) {
|
||||
that.searchValue = e.searchValue1;
|
||||
that.cxGetDataFun()
|
||||
},
|
||||
// 下拉刷新
|
||||
onRefresh: function() {
|
||||
if(that.triggered) return
|
||||
that.triggered = true;
|
||||
that.cxGetDataFun();
|
||||
},
|
||||
onRestore: function(e) {
|
||||
that.triggered = false; // 需要重置
|
||||
},
|
||||
// 重新获取数据
|
||||
cxGetDataFun: function() {
|
||||
that.pageIndex = 1;
|
||||
that.isMore = true;
|
||||
that.selectKehuFun();
|
||||
},
|
||||
deleteKhFun: function(e) {
|
||||
let arr = that.list;
|
||||
arr.splice(e.index, 1);
|
||||
that.list = arr;
|
||||
},
|
||||
// 通过下标更新list数据
|
||||
updateListByIndex: function(e) {
|
||||
that.$set(that.list, parseInt(e.index), e.obj)
|
||||
},
|
||||
// add页面新增数据
|
||||
addItemInListFun: function(e) {
|
||||
let arr = that.list;
|
||||
arr.unshift(e);
|
||||
that.list = arr;
|
||||
uni.pageScrollTo({
|
||||
scrollTop: 0
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
page {
|
||||
background-color: #F8F8F8;
|
||||
}
|
||||
|
||||
.card {
|
||||
width: 698rpx;
|
||||
padding: 26rpx 26rpx 10rpx;
|
||||
margin: 32rpx 26rpx;
|
||||
box-sizing: border-box;
|
||||
border-radius: 8rpx;
|
||||
box-shadow: #d8d8d8 0px 0px 16rpx;
|
||||
position: relative;
|
||||
background-color: #FFFFFF;
|
||||
}
|
||||
|
||||
.genjinBtn {
|
||||
position: absolute;
|
||||
right: 26rpx;
|
||||
top: 26rpx;
|
||||
background-color: #007AFF;
|
||||
color: #FFFFFF;
|
||||
text-align: center;
|
||||
padding: 6rpx 16rpx;
|
||||
border-radius: 6rpx;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.genjinBtn:active {
|
||||
background-color: #13B8FF;
|
||||
}
|
||||
|
||||
.topRow {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
|
||||
.txView {
|
||||
width: 128rpx;
|
||||
height: 128rpx;
|
||||
border-radius: 50%;
|
||||
overflow: hidden;
|
||||
margin-right: 26rpx;
|
||||
}
|
||||
|
||||
.txViewImg {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.info {
|
||||
width: 492rpx;
|
||||
font-size: 15px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 16px;
|
||||
margin-bottom: 8rpx;
|
||||
color: #000000;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.bottomRow {
|
||||
width: 100%;
|
||||
padding-top: 16rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
border-top: 1rpx solid #f0f0f0;
|
||||
font-size: 15px;
|
||||
color: #007AFF;
|
||||
}
|
||||
|
||||
.lxRow {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.lxRow>image {
|
||||
width: 52rpx;
|
||||
height: 52rpx;
|
||||
margin-right: 26rpx;
|
||||
}
|
||||
|
||||
.bqRow {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.bqRow>text {
|
||||
font-size: 14px;
|
||||
color: #888888;
|
||||
}
|
||||
|
||||
.bqRow>view {
|
||||
padding: 6rpx 16rpx;
|
||||
font-size: 14px;
|
||||
background-color: rgba(255, 85, 127, 0.1);
|
||||
color: #ff5500;
|
||||
border-radius: 10rpx;
|
||||
margin: 6rpx 26rpx 20rpx 0;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,792 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<!-- 此处为了让reload时不自动滚动到顶部,需要设置auto-clean-list-when-reload和auto-scroll-to-top-when-reload为false,即在reload时关闭自动清空数组和自动滚动到顶部 -->
|
||||
<z-paging ref="paging" :auto-clean-list-when-reload="false" :auto-scroll-to-top-when-reload="false" style="height: calc(100% - 55px);" @scrolltolower="scrollToBottomFun">
|
||||
<!--客户基本信息-->
|
||||
<khCard :item="khInfo" :isSelect="true"></khCard>
|
||||
<!--客户阶段-->
|
||||
<view class="myCard">
|
||||
<view class="cardTopName disFlexJ">
|
||||
<text>客户阶段</text>
|
||||
<view v-if="khInfo.status == 1" style="color: #F29100;" @click="pickerSelectFun('客户阶段')">
|
||||
更改
|
||||
<u-icon name="edit-pen-fill" color="#F29100"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<u-steps class="width100" mode="number" active-color="#00aa00" :list="jieDuanList" :current="jieDuanIndex"></u-steps>
|
||||
</view>
|
||||
<!-- <view class="myCard">
|
||||
<view class="cardTopName disFlexJ">
|
||||
<text>客户状态</text>
|
||||
<view style="color: #F29100;" @click="pickerSelectFun('客户状态')">
|
||||
更改
|
||||
<u-icon name="edit-pen-fill" color="#F29100"></u-icon>
|
||||
</view>
|
||||
</view>
|
||||
<u-steps class="width100" active-color="#00aa00" mode="number" :list="stateList" :current="stateIndex"></u-steps>
|
||||
</view> -->
|
||||
<!--tab-->
|
||||
<view class="uTabsView">
|
||||
<u-tabs :list="tabList" :is-scroll="true" duration="0.08" :current="tabIndex" :show-bar="false" font-size="32" @change="tabChange"></u-tabs>
|
||||
</view>
|
||||
<!-- 自定义下拉刷新view -->
|
||||
<!-- <custom-refresher slot="refresher" :status="refresherStatus"></custom-refresher> -->
|
||||
<!-- list数据,建议像下方这样在item外层套一个view,而非直接for循环item,因为slot插入有数量限制 -->
|
||||
<view class="contentView">
|
||||
<!--详细信息-->
|
||||
<view v-if="tabIndex == 0">
|
||||
<khDetail :khInfo="khInfo"></khDetail>
|
||||
</view>
|
||||
<!--跟进记录-->
|
||||
<view v-if="tabIndex == 1">
|
||||
<view v-for="(item, index) in tabList[1].arr" :key="index">
|
||||
<genjin :item="item"></genjin>
|
||||
</view>
|
||||
</view>
|
||||
<!--联系人-->
|
||||
<view v-if="tabIndex == 2">
|
||||
<view v-for="(item, index) in tabList[2].arr" :key="index">
|
||||
<lianXiRen :item="item" :isHideMore="true"></lianXiRen>
|
||||
</view>
|
||||
</view>
|
||||
<!--商机-->
|
||||
<view v-if="tabIndex == 3">
|
||||
<view v-for="(item, index) in tabList[3].arr" :key="index">
|
||||
<shangji :item="item"></shangji>
|
||||
</view>
|
||||
</view>
|
||||
<!--报价单-->
|
||||
<view v-if="tabIndex == 4">
|
||||
<view v-for="(item, index) in tabList[4].arr" :key="index">
|
||||
<baojiadan :item="item"></baojiadan>
|
||||
</view>
|
||||
</view>
|
||||
<!--合同-->
|
||||
<view v-if="tabIndex == 5">
|
||||
<view v-for="(item, index) in tabList[5].arr" :key="index">
|
||||
<hetong :item="item"></hetong>
|
||||
</view>
|
||||
</view>
|
||||
<!--回款计划-->
|
||||
<view v-if="tabIndex == 6">
|
||||
<view v-for="(item, index) in tabList[6].arr" :key="index">
|
||||
<huikuanJH :item="item"></huikuanJH>
|
||||
</view>
|
||||
</view>
|
||||
<!--实际回款-->
|
||||
<view v-if="tabIndex == 7">
|
||||
<view v-for="(item, index) in tabList[7].arr" :key="index">
|
||||
<shijiHK :item="item"></shijiHK>
|
||||
</view>
|
||||
</view>
|
||||
<!--发票-->
|
||||
<view v-if="tabIndex == 8">
|
||||
<view v-for="(item, index) in tabList[8].arr" :key="index">
|
||||
<fapiao :item="item"></fapiao>
|
||||
</view>
|
||||
</view>
|
||||
<!--发票-->
|
||||
<view v-if="tabIndex == 9">
|
||||
<view v-for="(item, index) in tabList[9].arr" :key="index">
|
||||
<fapiao :item="item"></fapiao>
|
||||
</view>
|
||||
</view>
|
||||
<!--操作记录-->
|
||||
<view v-if="tabIndex == 8">
|
||||
<czjl :dataId="khInfo._id" pageType="client" :infoObj="khInfo" fl="客户"></czjl>
|
||||
</view>
|
||||
<!--加载更多-->
|
||||
<getMore :isMore="tabList[tabIndex].isMore"></getMore>
|
||||
</view>
|
||||
</z-paging>
|
||||
<bottomBox :sheetList="sheetList" :addSheetList="addSheetList" :item="khInfo" :isGhc="khInfo.status == 0" :isKh="khInfo.status == 1" @pageGenjinFun="pageGenjinFun" @pageDeleteShowFun="pageDeleteShowFun" @pageAddSheetFun="pageAddSheetFun" @pageBianjiFun="pageBianjiFun" @cxPGetDataFun="cxPGetDataFun"></bottomBox>
|
||||
<u-select v-model="selectShow" :list="selectList" @confirm="selectConfirmFun"></u-select>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
let that = '';
|
||||
import { crmGenJinApi, crmLianXiRenApi, crmShangJiApi, crmBaoJiaDanApi, crmHeTongApi, crmHkjhApi, crmHkdApi, crmKeHuApi } from '../../../static/utils/api.js'
|
||||
import khCard from '@/components/card/kehu.vue'
|
||||
import bottomBox from '@/components/bottomBox/bottomBox'
|
||||
import khDetail from '@/components/detail/kehuDetail'
|
||||
import genjin from '@/components/card/genjin.vue'
|
||||
import lianXiRen from '@/components/card/lianXiRen.vue'
|
||||
import shangji from '@/components/card/shangji.vue'
|
||||
import baojiadan from '@/components/card/baojiadan.vue'
|
||||
import hetong from '@/components/card/hetong.vue'
|
||||
import huikuanJH from '@/components/card/huikuanJH.vue'
|
||||
import shijiHK from '@/components/card/shijiHK.vue'
|
||||
import fapiao from '@/components/card/fapiao.vue'
|
||||
import czjl from '@/components/detail/czjl.vue'
|
||||
import getMore from '@/components/getMore/getMore.vue'
|
||||
export default {
|
||||
components: {
|
||||
khCard,
|
||||
bottomBox,
|
||||
khDetail,
|
||||
genjin,
|
||||
lianXiRen,
|
||||
shangji,
|
||||
hetong,
|
||||
baojiadan,
|
||||
huikuanJH,
|
||||
shijiHK,
|
||||
fapiao,
|
||||
czjl,
|
||||
getMore
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
selectList: [],
|
||||
jieDuanIndex: 0,
|
||||
jieDuanList: [
|
||||
{ value: 0, name: '初步接洽'},
|
||||
{ value: 1, name: '确认需求'},
|
||||
{ value: 2, name: '解决方案'},
|
||||
{ value: 3, name: '商务谈判'},
|
||||
{ value: 4, name: '成交'}
|
||||
],
|
||||
stateList: [
|
||||
{ value: 0, name: '潜在客户'},
|
||||
{ value: 1, name: '初步接触'},
|
||||
{ value: 2, name: '持续跟进'},
|
||||
{ value: 3, name: '成交客户'},
|
||||
{ value: 4, name: '忠诚客户'}
|
||||
],
|
||||
stateIndex: 0,
|
||||
selectShow: false,
|
||||
khInfo: {},
|
||||
dataList: [],
|
||||
tabList: [
|
||||
{ name: '详细信息', arr: [], pageIndex: 1, isMore: false },
|
||||
{ name: '跟进记录', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '联系人', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '商机', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '报价单', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '合同', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '回款计划', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '实际回款', arr: [], pageIndex: 1, isMore: true },
|
||||
// { name: '发票', arr: [], pageIndex: 1, isMore: true },
|
||||
// { name: '退货退款', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '操作记录', isMore: false },
|
||||
],
|
||||
hzList: [
|
||||
{ name: '跟进次数', num: 1 },
|
||||
{ name: '联系人', num: 1 },
|
||||
{ name: '商机', num: 1 },
|
||||
{ name: '报价单', num: 1 },
|
||||
{ name: '合同', num: 1 },
|
||||
{ name: '回款计划', num: 1 },
|
||||
{ name: '实际回款', num: 1 },
|
||||
{ name: '发票', num: 1 },
|
||||
{ name: '操作记录', num: 1 },
|
||||
],
|
||||
sheetList: [
|
||||
{ text: '更换负责人' },
|
||||
{ text: '放入客户池' },
|
||||
{ text: '删除' }
|
||||
],
|
||||
addSheetList: [
|
||||
{ text: '跟进记录' },
|
||||
{ text: '联系人' },
|
||||
{ text: '商机' },
|
||||
{ text: '报价单' },
|
||||
{ text: '合同' },
|
||||
{ text: '回款计划' },
|
||||
{ text: '实际回款' },
|
||||
{ text: '发票' },
|
||||
{ text: '退货退款' }
|
||||
],
|
||||
tabIndex: 0,
|
||||
refresherStatus: 0,
|
||||
cardIndex: -1,
|
||||
isLoadSelectKhById: false
|
||||
}
|
||||
},
|
||||
onLoad(e) {
|
||||
that = this;
|
||||
that.cardIndex = e.index || -1;
|
||||
that.khInfo = uni.$khInfo || {};
|
||||
that.setJieduanAndStateFun()
|
||||
uni.setNavigationBarTitle({
|
||||
title: that.khInfo.clientName || '客户详情'
|
||||
})
|
||||
if(e.fromDetail) {
|
||||
that.selectKhByIdFun(e._id)
|
||||
}
|
||||
},
|
||||
onBackPress(e) {
|
||||
if(e.from == 'backbutton' && this.cardIndex != -1) {
|
||||
uni.$emit('updateListByIndex', { index: this.cardIndex, obj: this.khInfo})
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
if(that.isLoadSelectKhById) {
|
||||
that.selectKhByIdFun();
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
tabChange(index) {
|
||||
this.tabIndex = index;
|
||||
let item = that.tabList[index];
|
||||
if(item.arr && item.arr.length > 0) {
|
||||
return
|
||||
}
|
||||
if(index == 1) {
|
||||
that.getGenJinFun()
|
||||
} else if(index == 2) {
|
||||
that.selectLxrFun()
|
||||
} else if(index == 3) {
|
||||
that.getShangjiFun()
|
||||
} else if(index == 4) {
|
||||
that.getBaojiaDanFun()
|
||||
} else if(index == 5) {
|
||||
that.getHeTongFun()
|
||||
} else if(index == 6) {
|
||||
that.getHuiKuanJhFun()
|
||||
} else if(index == 7) {
|
||||
that.getHuiKuanDanFun()
|
||||
} else if(index == 8) {
|
||||
|
||||
} else if(index == 9) {
|
||||
|
||||
} else if(index == 10) {
|
||||
|
||||
}
|
||||
},
|
||||
scrollToBottomFun: function(e) {
|
||||
let index = that.tabIndex;
|
||||
let isMore = that.tabList[index].isMore;
|
||||
if(!isMore) {
|
||||
return
|
||||
}
|
||||
if(index == 1) {
|
||||
that.getGenJinFun()
|
||||
} else if(index == 2) {
|
||||
that.selectLxrFun()
|
||||
} else if(index == 3) {
|
||||
that.getShangjiFun()
|
||||
} else if(index == 4) {
|
||||
that.getBaojiaDanFun()
|
||||
} else if(index == 5) {
|
||||
that.getHeTongFun()
|
||||
} else if(index == 6) {
|
||||
that.getHuiKuanJhFun()
|
||||
} else if(index == 7) {
|
||||
that.getHuiKuanDanFun()
|
||||
} else if(index == 8) {
|
||||
|
||||
} else if(index == 9) {
|
||||
|
||||
} else if(index == 10) {
|
||||
|
||||
}
|
||||
},
|
||||
// 获取跟进记录
|
||||
getGenJinFun: function() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask: true
|
||||
})
|
||||
let item = that.tabList[that.tabIndex];
|
||||
let reqData = {
|
||||
action: 'selectLGenjinJl',
|
||||
params: {
|
||||
matchObj: {
|
||||
clientId: that.khInfo._id,
|
||||
},
|
||||
sortObj: {
|
||||
update_date: -1
|
||||
},
|
||||
pageIndex: item.pageIndex,
|
||||
pageSize: 10000
|
||||
}
|
||||
}
|
||||
crmGenJinApi(reqData)
|
||||
.then(res => {
|
||||
that.setTabArrFun(res.result.data, item)
|
||||
})
|
||||
},
|
||||
// 查询联系人
|
||||
selectLxrFun: function() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask: true
|
||||
})
|
||||
let item = that.tabList[that.tabIndex];
|
||||
let reqData = {
|
||||
action: 'selectLianXiRen',
|
||||
params: {
|
||||
matchObj: {
|
||||
clientId: that.khInfo._id,
|
||||
},
|
||||
sortObj: {
|
||||
update_date: -1
|
||||
},
|
||||
pageIndex: item.pageIndex
|
||||
}
|
||||
}
|
||||
crmLianXiRenApi(reqData)
|
||||
.then(res => {
|
||||
that.setTabArrFun(res.result.data, item);
|
||||
})
|
||||
},
|
||||
// 查询商机
|
||||
getShangjiFun: function() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask: true
|
||||
})
|
||||
let item = that.tabList[that.tabIndex];
|
||||
let reqData = {
|
||||
action: 'getShangji',
|
||||
params: {
|
||||
matchObj: {
|
||||
clientId: that.khInfo._id,
|
||||
},
|
||||
sortObj: {
|
||||
update_date: -1
|
||||
},
|
||||
pageIndex: item.pageIndex
|
||||
}
|
||||
}
|
||||
crmShangJiApi(reqData)
|
||||
.then(res => {
|
||||
that.setTabArrFun(res.result.data, item);
|
||||
})
|
||||
},
|
||||
// 查询报价单
|
||||
getBaojiaDanFun: function() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask: true
|
||||
})
|
||||
let item = that.tabList[that.tabIndex];
|
||||
let reqData = {
|
||||
action: 'getBaoJiaDan',
|
||||
params: {
|
||||
matchObj: {
|
||||
clientId: that.khInfo._id,
|
||||
},
|
||||
sortObj: {
|
||||
update_date: -1
|
||||
},
|
||||
pageIndex: item.pageIndex
|
||||
}
|
||||
}
|
||||
crmBaoJiaDanApi(reqData)
|
||||
.then(res => {
|
||||
that.setTabArrFun(res.result.data, item);
|
||||
})
|
||||
},
|
||||
// 查询合同
|
||||
getHeTongFun: function() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask: true
|
||||
})
|
||||
let item = that.tabList[that.tabIndex];
|
||||
let reqData = {
|
||||
action: 'getHeTong',
|
||||
params: {
|
||||
matchObj: {
|
||||
clientId: that.khInfo._id,
|
||||
},
|
||||
sortObj: {
|
||||
update_date: -1
|
||||
},
|
||||
pageIndex: item.pageIndex
|
||||
}
|
||||
}
|
||||
crmHeTongApi(reqData)
|
||||
.then(res => {
|
||||
that.setTabArrFun(res.result.data, item);
|
||||
})
|
||||
},
|
||||
// 查询回款计划
|
||||
getHuiKuanJhFun: function() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask: true
|
||||
})
|
||||
let item = that.tabList[that.tabIndex];
|
||||
let reqData = {
|
||||
action: 'get',
|
||||
params: {
|
||||
matchObj: {
|
||||
clientId: that.khInfo._id,
|
||||
},
|
||||
sortObj: {
|
||||
update_date: -1
|
||||
},
|
||||
pageIndex: item.pageIndex
|
||||
}
|
||||
}
|
||||
crmHkjhApi(reqData)
|
||||
.then(res => {
|
||||
that.setTabArrFun(res.result.data, item);
|
||||
})
|
||||
},
|
||||
// 查询实际回款
|
||||
getHuiKuanDanFun: function() {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask: true
|
||||
})
|
||||
let item = that.tabList[that.tabIndex];
|
||||
let reqData = {
|
||||
action: 'get',
|
||||
params: {
|
||||
matchObj: {
|
||||
clientId: that.khInfo._id,
|
||||
},
|
||||
sortObj: {
|
||||
update_date: -1
|
||||
},
|
||||
pageIndex: item.pageIndex
|
||||
}
|
||||
}
|
||||
crmHkdApi(reqData)
|
||||
.then(res => {
|
||||
that.setTabArrFun(res.result.data, item);
|
||||
})
|
||||
},
|
||||
// 给tabList中的arr赋值
|
||||
setTabArrFun: function(data, item) {
|
||||
if (item.pageIndex == 1) {
|
||||
item.arr = [];
|
||||
}
|
||||
if (data.length >= 10) {
|
||||
item.pageIndex += 1;
|
||||
item.isMore = true;
|
||||
} else {
|
||||
item.isMore = false;
|
||||
}
|
||||
item.arr = item.arr.concat(data);
|
||||
that.$set(that.tabList, that.tabIndex, item)
|
||||
},
|
||||
pickerSelectFun: function(str) {
|
||||
if(str == '客户状态') {
|
||||
that.selectList = [
|
||||
{ value: 0, label: '潜在客户'},
|
||||
{ value: 1, label: '初步接触'},
|
||||
{ value: 2, label: '持续跟进'},
|
||||
{ value: 3, label: '成交客户'},
|
||||
{ value: 4, label: '忠诚客户'},
|
||||
{ value: 5, label: '无效客户'}
|
||||
]
|
||||
} else if(str == '客户阶段') {
|
||||
that.selectList = [
|
||||
{ value: 0, label: '初步接洽'},
|
||||
{ value: 1, label: '确认需求'},
|
||||
{ value: 2, label: '解决方案'},
|
||||
{ value: 3, label: '商务谈判'},
|
||||
{ value: 4, label: '成交'},
|
||||
{ value: 5, label: '流失'}
|
||||
]
|
||||
}
|
||||
that.selectShow = true;
|
||||
that.selectType = str;
|
||||
},
|
||||
selectConfirmFun: function(e) {
|
||||
let str = e[0].label;
|
||||
let req = {
|
||||
update_date: new Date().getTime()
|
||||
}
|
||||
if(that.selectType == '客户状态') {
|
||||
req.companyState = str;
|
||||
} else if(that.selectType == '客户阶段') {
|
||||
req.jieDuan = str;
|
||||
}
|
||||
let reqData = {
|
||||
action: 'update',
|
||||
params: {
|
||||
_id: that.khInfo._id,
|
||||
req
|
||||
}
|
||||
}
|
||||
uni.showLoading({
|
||||
title: '修改中...',
|
||||
mask: true
|
||||
})
|
||||
crmKeHuApi(reqData)
|
||||
.then(res => {
|
||||
let cstr = '';
|
||||
// if(that.selectType == '客户状态') {
|
||||
// that.stateIndex = e[0].value;
|
||||
// cstr = '修改 客户状态 ,由 "' + that.khInfo.companyState + '" 变更为 "' + str + '"'
|
||||
// }
|
||||
// that.khInfo.companyState = str;
|
||||
// that.khInfo.update_date = req.update_date;
|
||||
if(that.selectType == '客户阶段') {
|
||||
that.jieDuanIndex = e[0].value;
|
||||
cstr = '修改 商机阶段 ,由 "' + that.khInfo.jieDuan + '" 变更为 "' + str + '"'
|
||||
}
|
||||
that.khInfo.jieDuan = str;
|
||||
that.khInfo.update_date = req.update_date;
|
||||
uni.showToast({
|
||||
title: '修改成功!',
|
||||
duration: 888,
|
||||
icon: 'none'
|
||||
})
|
||||
let czjlObj = {
|
||||
create_date: new Date().getTime(),
|
||||
czRen: uni.$userInfo._id,
|
||||
pageType: 'client',
|
||||
dataId: that.khInfo._id,
|
||||
type: '编辑',
|
||||
content: [ cstr ]
|
||||
}
|
||||
uni.$czjlApiAddFun(czjlObj);
|
||||
})
|
||||
},
|
||||
// 新增跟进信息
|
||||
pageGenjinFun: function() {
|
||||
},
|
||||
// 修改客户信息
|
||||
pageBianjiFun: function() {
|
||||
that.recoverTabListFun();
|
||||
uni.$infoObj = that.khInfo;
|
||||
uni.navigateTo({
|
||||
url: './addKeHu?type=update'
|
||||
})
|
||||
},
|
||||
// 新增sheet回调方法
|
||||
pageAddSheetFun: function(e) {
|
||||
console.log(e)
|
||||
that.recoverTabListFun();
|
||||
let url = '/pages/crm/';
|
||||
if(e == 0) {
|
||||
url += 'genJin/add?clientName=' + that.khInfo.clientName + '&clientId=' + that.khInfo._id
|
||||
} else if(e == 1) {
|
||||
url += 'lianxiren/addLxr?clientName=' + that.khInfo.clientName + '&clientId=' + that.khInfo._id
|
||||
} else if(e == 2) {
|
||||
url += 'shangji/addSj?clientName=' + that.khInfo.clientName + '&clientId=' + that.khInfo._id
|
||||
} else if(e == 3) {
|
||||
url += 'baoJiaDan/addBjd?clientName=' + that.khInfo.clientName + '&clientId=' + that.khInfo._id
|
||||
} else if(e == 4) {
|
||||
url += 'hetong/addHt?clientName=' + that.khInfo.clientName + '&clientId=' + that.khInfo._id
|
||||
} else if(e == 5) {
|
||||
url += 'huikuanJH/addHkjh?clientName=' + that.khInfo.clientName + '&clientId=' + that.khInfo._id
|
||||
} else if(e == 6) {
|
||||
url += 'huikuan/addHk?clientName=' + that.khInfo.clientName + '&clientId=' + that.khInfo._id
|
||||
} else if(e == 7) {
|
||||
url += 'faPiao/addFp?clientName=' + that.khInfo.clientName + '&clientId=' + that.khInfo._id
|
||||
} else if(e == 8) {
|
||||
url += 'returnHk/add?clientName=' + that.khInfo.clientName + '&clientId=' + that.khInfo._id
|
||||
}
|
||||
uni.navigateTo({
|
||||
url
|
||||
})
|
||||
},
|
||||
// 更多回调方法
|
||||
pageDeleteShowFun: function(e) {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '是否确认删除客户名称为:' + that.khInfo.clientName + '的客户吗?',
|
||||
success(res) {
|
||||
if(res.confirm) {
|
||||
uni.showLoading({
|
||||
title: '删除中...',
|
||||
mask: true
|
||||
})
|
||||
let reqData = {
|
||||
action: 'update',
|
||||
params: {
|
||||
_id: that.khInfo._id,
|
||||
req: {
|
||||
isDelete: 1,
|
||||
update_date: new Date().getTime()
|
||||
}
|
||||
}
|
||||
}
|
||||
crmKeHuApi(reqData)
|
||||
.then(res => {
|
||||
uni.showToast({
|
||||
title: '删除成功!',
|
||||
duration: 888,
|
||||
icon: 'none'
|
||||
})
|
||||
if(that.cardIndex != -1) {
|
||||
uni.$emit('deleteKhFun', {index: that.cardIndex})
|
||||
}
|
||||
that.addCzjlFun();
|
||||
setTimeout(()=> {
|
||||
uni.navigateBack()
|
||||
}, 666)
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
addCzjlFun: function() {
|
||||
let czjlObj = {
|
||||
create_date: new Date().getTime(),
|
||||
czRen: uni.$userInfo._id,
|
||||
pageType: 'client',
|
||||
dataId: this.khInfo._id,
|
||||
type: '删除'
|
||||
}
|
||||
uni.$czjlApiAddFun(czjlObj);
|
||||
},
|
||||
// 设置客户阶段和状态
|
||||
setJieduanAndStateFun: function() {
|
||||
// let state = that.khInfo.companyState;
|
||||
let jieduan = that.khInfo.jieDuan;
|
||||
let sList = that.stateList;
|
||||
let jList = that.jieDuanList;
|
||||
// for(var i = 0; i < sList.length; i++) {
|
||||
// if(sList[i].name == state) {
|
||||
// that.stateIndex = i;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
for(var i = 0; i < jList.length; i++) {
|
||||
if(jList[i].name == jieduan) {
|
||||
that.jieDuanIndex = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
// 根据id查询客户
|
||||
selectKhByIdFun: function(_id) {
|
||||
uni.showLoading({
|
||||
title: '加载中...',
|
||||
mask: true
|
||||
})
|
||||
let reqData = {
|
||||
action: 'selectKhById',
|
||||
params: {
|
||||
_id: ''
|
||||
}
|
||||
}
|
||||
if(_id) {
|
||||
reqData.params._id = _id;
|
||||
} else {
|
||||
reqData.params._id = that.khInfo._id;
|
||||
}
|
||||
crmKeHuApi(reqData)
|
||||
.then(res => {
|
||||
let data = res.result.data;
|
||||
if(data.length > 0) {
|
||||
that.khInfo = data[0]
|
||||
that.setJieduanAndStateFun()
|
||||
} else {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '相关内容不存在,或者已被删除!',
|
||||
showCancel: false,
|
||||
success() {
|
||||
uni.navigateBack()
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
recoverTabListFun: function() {
|
||||
that.isLoadSelectKhById = true;
|
||||
that.tabIndex = 0;
|
||||
that.tabList = [
|
||||
{ name: '详细信息', isMore: false },
|
||||
{ name: '跟进记录', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '联系人', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '商机', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '报价单', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '合同', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '回款计划', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '实际回款', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '发票', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '退货退款', arr: [], pageIndex: 1, isMore: true },
|
||||
{ name: '操作记录', isMore: false },
|
||||
]
|
||||
},
|
||||
cxPGetDataFun: function(e) {
|
||||
uni.showToast({
|
||||
title: e + 'i',
|
||||
duration: 1000,
|
||||
icon: 'none',
|
||||
mask: true
|
||||
})
|
||||
uni.$emit('cxGetDataFun');
|
||||
setTimeout(() => {
|
||||
uni.navigateBack()
|
||||
}, 1000)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/* 注意,1、父节点需要固定高度,z-paging的height:100%才会生效 */
|
||||
/* 注意,2、请确保z-paging与同级的其他view的总高度不得超过屏幕宽度,以避免超出屏幕高度时页面的滚动与z-paging内部的滚动冲突 */
|
||||
|
||||
/*如果有scoped,page的css设置建议放在App.vue中 */
|
||||
page {
|
||||
height: 100%;
|
||||
background-color: #F8F8F8;
|
||||
}
|
||||
|
||||
.content {
|
||||
height: 100%;
|
||||
/* 父节点建议开启flex布局 */
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.uTabsView {
|
||||
border-bottom: 1rpx solid #DDDDDD;
|
||||
z-index: 100;
|
||||
position: sticky;
|
||||
top :0;
|
||||
}
|
||||
|
||||
.contentView {
|
||||
/* background-color: #FFFFFF; */
|
||||
min-height: calc(100vh - 45px);
|
||||
}
|
||||
.flexRow {
|
||||
display: flex;
|
||||
font-size: 30rpx;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
.flexRow>view {
|
||||
width: 50%;
|
||||
display: flex;
|
||||
}
|
||||
.flexRow>view>text:first-child {
|
||||
width: 166rpx;
|
||||
}
|
||||
.item {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.item-detail {
|
||||
padding: 5rpx 15rpx;
|
||||
border-radius: 10rpx;
|
||||
font-size: 28rpx;
|
||||
color: white;
|
||||
background-color: #007AFF;
|
||||
}
|
||||
|
||||
.item-line {
|
||||
position: absolute;
|
||||
bottom: 0rpx;
|
||||
left: 0rpx;
|
||||
height: 1px;
|
||||
width: 100%;
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
.uTabsView {
|
||||
top: -2px !important;
|
||||
}
|
||||
.width100 {
|
||||
width: 100%;
|
||||
margin: 26rpx 0;
|
||||
}
|
||||
.u-steps__item, .u-steps__item--row {
|
||||
width: 200px !important;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user