修改接口

This commit is contained in:
lcc
2024-05-27 17:28:13 +08:00
committed by chenrx
parent 613d929c35
commit 20be16ebcc
26 changed files with 735 additions and 267 deletions
+3 -6
View File
@@ -66,7 +66,9 @@
"pages/storeData/subData/index",
"pages/signup/code",
"pages/signup/index",
"pages/signup/status"
"pages/signup/status",
"pages/clues/index",
"pages/clues/detail/index"
],
"echarts": [
{
@@ -92,14 +94,9 @@
"lcb-channelTabBarNav": "/components/channel-tab-bar/index",
"lcb-shopTabBarNav": "/components/shop-tab-bar/index",
"lcb-backChannel": "/components/backChannel/index",
"QYWXcontact": "plugin://contactPlugin/cell",
"kefuSuccess": "/components/kefuSuccess/index"
},
"plugins": {
"contactPlugin": {
"version": "1.4.1",
"provider": "wx104a1a20c3f81ec2"
}
},
"navigateToMiniProgramAppIdList": [
"wx98e64c11aac45966"
+5 -2
View File
@@ -1,4 +1,4 @@
const env = "p";
const env = "d";
const version = 1,
@@ -14,7 +14,7 @@ key = '71fd71173b776766a2ae1209d9a2c2ed';
let api, baseUrl;
if (env == "d") {
baseUrl = "https://liche-api-dev.xiaoyu.com/hd/";
baseUrl = "https://api.ss.haodian.cn/hd/";
} else if (env == "t") {
baseUrl = "https://api.test.liche.cn/hd/";
} else if (env == "p") {
@@ -75,6 +75,7 @@ api = {
appUserResetbiz: "app/user/resetbiz", //更新用户店铺id
appXzStat: "app/xz/stat", //获取电话统计数据
appCity: "app/city", //获取系统配置城市
appCityLists: "app/city/lists", //获取城市列表
materialHomeTabs: "material/home/tabs", //推广素材_tab
materialHomeLists: "material/home/lists", //推广素材_lists
@@ -170,6 +171,8 @@ api = {
appResetgroupid:'app/user/resetgroupid', //切换角色
appClues: "app/clues", //获取线索列表 获取线索详情
appCluesLogs: "app/clueslogs", //线索日志
}
//远程图片存储地址
+26
View File
@@ -405,6 +405,13 @@ apiQuery.getAppCity = function(params){
})
}
//获取城市列表
apiQuery.getAppCityLists = function(params){
return new Promise(function (resolve, reject) {
HttpRequest(false, Config.api.appCityLists, 2, params, "GET", resolve, reject)
})
}
//推广素材_tab
apiQuery.getMaterialHomeTabs = function(params){
return new Promise(function (resolve, reject) {
@@ -980,4 +987,23 @@ apiQuery.putAppResetgroupid = function (params) {
})
}
//获取线索列表
apiQuery.getAppCluesList = function (params) {
return new Promise(function (resolve, reject) {
HttpRequest(false, Config.api.appClues, 2, params, "GET", resolve, reject)
})
}
//获取线索详情
apiQuery.getAppCluesDetails = function (params) {
return new Promise(function (resolve, reject) {
HttpRequest(true, Config.api.appClues, 2, params, "GET", resolve, reject)
})
}
//获取线索日志
apiQuery.getAppCluesLogs = function (params) {
return new Promise(function (resolve, reject) {
HttpRequest(true, Config.api.appCluesLogs, 2, params, "GET", resolve, reject)
})
}
export default apiQuery;
+31 -52
View File
@@ -62,7 +62,7 @@ Page({
onShow: function () {
this.getHoursTip()
this.getAppTransferRemind()
//this.getAppTransferRemind()
},
//生命周期函数--监听页面卸载
@@ -138,53 +138,31 @@ Page({
//20240526 获取系统配置城市省市
getAppArea(){
let area_list = [{
"name": "福建省",
"id": 1,
"propvince_id": "35",
"children": [{
"id":"19","city_id":"350900","name":"宁德市"},
{"id":"18","city_id":"350700","name":"南平市"}]
},{
"name": "湖南省",
"id": 1,
"propvince_id": "36",
"children": [{
"city_id": "120900",
"id": "20",
"name": "长沙市",
},{
"city_id": "120000",
"id": "21",
"name": "湘潭市",
}]
}]
let area_id = [35,350900]
let areaArr = []
// let cur_index = []
area_list.forEach((item,index) => {
if(item.propvince_id==area_id[0]){
item.children.forEach((it,idx)=>{
if(it.city_id==area_id[1]){
// cur_index = [item.propvince_id,it.city_id]
this.setData({
areaIndex: [index,idx]
})
areaArr = [area_list,area_list[index].children]
return;
}
})
}
_.apiQuery.getAppCityLists().then(res => {
let area_list = res.data.area_list
let area_id = res.data.default_area_id
let areaArr = []
// let cur_index = []
area_list.forEach((item,index) => {
if(item.propvince_id==area_id[0]){
item.children.forEach((it,idx)=>{
if(it.city_id==area_id[1]){
// cur_index = [item.propvince_id,it.city_id]
this.setData({
areaIndex: [index,idx]
})
areaArr = [area_list,area_list[index].children]
return;
}
})
}
});
this.setData({
area_id: area_id,
area_list: area_list,
areaArr: areaArr
})
});
this.setData({
area_id: area_id,
area_list: area_list,
areaArr: areaArr
// cityList: res.data.list,
})
},
@@ -214,8 +192,10 @@ Page({
//20240526选择地区
changeArea(e){
this.setData({
city_id:this.data.area_list[e.detail.value[0]].children[e.detail.value[1]].city_id,
areaIndex: e.detail.value,
})
})
this.getAppUserBizs()
},
//20240526地区联动
@@ -227,10 +207,9 @@ Page({
multiIndex[columnIndex] = columnValue;
console.log(e)
console.log(multiIndex)
console.log(multiData)
// console.log(e)
// console.log(multiIndex)
// console.log(multiData)
this.setData({
areaArr: [
multiData,
+252
View File
@@ -0,0 +1,252 @@
import _ from '../../../commons/js/commons'
const app = getApp()
const innerAudioContext = wx.createInnerAudioContext();
let interval = null
Page({
data: {
imgUrl:_.config.imgUrl,
tabid:1,
tab:[
{"id":1,"title":"跟进记录",is_show_all:true}
],
logslist: [],//日志列表
pageNo: 1,
noData: false,
end: false,
load: true,
loading: false,
currentIndex:'-1',//日志播放录音
play: false,//日志播放录音
userInfo:'',
},
onLoad(options) {
for (let key in options) {
this.setData({
[key]: options[key]
})
}
this.getAppCluesDetails()
this.getAppCluesLogs()
innerAudioContext.onEnded(() => {
this.offaudio()
})
},
onshow() {
},
//生命周期函数--监听页面隐藏
onHide: function () {
this.offaudio()
},
//生命周期函数--监听页面卸载
onUnload: function () {
this.offaudio()
},
//获取用户信息
getUserInfo(){
_.apiQuery.getUserInfo().then(res => {
this.setData({
userInfo: res,
})
});
},
//获取客户详情
getAppCluesDetails(){
let params = {};
params['id'] = this.data.id;
_.apiQuery.getAppCluesDetails(params).then(res=>{
this.setData({
detailinfo:res.data
})
wx.stopPullDownRefresh()
})
},
//获取日志
getAppCluesLogs(){
this.setData({
load: false,
loading: true,
})
let params = {};
params['page'] = this.data.pageNo;
params['size'] = 10;
params['id'] = this.data.id;
_.apiQuery.getAppCluesLogs(params).then(res => {
let list = res.data.list
list.forEach(item => {
if(item.record_url){
item.alltime=this.format(item.second)
}
})
this.setData({
pageNo: this.data.pageNo + 1,
logslist: this.data.logslist.concat(list),
load: true,
loading: false,
})
if (res.data.total == 0) {
this.setData({
noData: true
})
} else if (this.data.logslist.length == res.data.total) {
this.setData({
end: true
})
}
wx.stopPullDownRefresh()
});
},
//点击
handle_slider_move_start(e){
clearTimeout(interval)
innerAudioContext.stop()
this.setData({
currentIndex:e.currentTarget.dataset.index,
play:false,
})
},
//推送链接
pushLink(e){
if(e.currentTarget.dataset.url){
_.$router.openUrlScheme(e.currentTarget.dataset.url)
}
},
//拖动中
hanle_slider_changing(e){
clearTimeout(interval)
innerAudioContext.stop()
this.setData({
currentime:e.detail.value,
currentx:this.format(parseInt(e.detail.value))
})
innerAudioContext.src = this.data.logslist[e.currentTarget.dataset.index].record_url
},
//拖动结束
hanle_slider_change(e){
clearTimeout(interval)
innerAudioContext.stop()
this.setData({
currentime:e.detail.value,
currentx:this.format(parseInt(e.detail.value))
})
innerAudioContext.src = this.data.logslist[e.currentTarget.dataset.index].record_url
innerAudioContext.seek(parseInt(this.data.currentime))
},
//离开页面
offaudio() {
this.setData({
currentIndex:'-1',
play: false,
currentime:0,
currentx:'00:00'
})
innerAudioContext.stop()
clearTimeout(interval)
},
//操作录音
audioPlay: function (e) {
clearTimeout(interval)
if(this.data.currentIndex != e.currentTarget.dataset.index){
innerAudioContext.stop()
this.setData({
currentIndex:e.currentTarget.dataset.index,
currentime:0,
play:true,
})
innerAudioContext.src = this.data.logslist[e.currentTarget.dataset.index].record_url
innerAudioContext.play()
this.countDown()
}else{
if(this.data.play){
this.setData({
play:false,
})
innerAudioContext.pause()
}else{
this.setData({
play:true,
})
innerAudioContext.play()
this.countDown()
}
}
},
//播放录音时间
countDown:function () {
interval = setInterval(res => {
this.setData({
currentime:this.data.currentime + 1,
currentx:this.format(this.data.currentime + 1)
})
}, 1000)
},
//查看图片
previewImage(e){
if(e.currentTarget.dataset.type=='logs'){
wx.previewImage({
current:e.currentTarget.dataset.current,
urls:this.data.logslist[e.currentTarget.dataset.index].imgs,
})
}
else if(e.currentTarget.dataset.type=='gw_img'){
wx.previewImage({
current:this.data.wxgrimg_url,
urls:[this.data.wxgrimg_url],
})
}
},
//置顶操作
optTop(e){
let params = {};
params['id'] = this.data.id;
params['is_top'] = this.data.detailinfo.is_top==1?0:1;
_.apiQuery.putAppCustomers(params).then(res=>{
//刷新列表页
let pages = getCurrentPages();
let prevPage = null; //上一个页面
if (pages.length >= 2) {
prevPage = pages[pages.length - 2]; //上一个页面
if(prevPage.route == 'pages/customer/index'||prevPage.route == 'pages/customer/filterList/index'){
prevPage.onPullDownRefresh()
}
}
this.getAppCustomersDetails()
})
},
//页面相关事件处理函数--监听用户下拉动作
onPullDownRefresh(){
this.setData({
logslist: [],
pageNo: 1,
noData: false,
end: false,
load: true,
loading: false,
})
this.getAppCustomersDetails()
},
//页面上拉触底事件的处理函数
onReachBottom(){
if (this.data.noData || this.data.end||!this.data.load) return;
this.getAppCustomerlogs()
},
})
+7
View File
@@ -0,0 +1,7 @@
{
"navigationBarTitleText": "线索详情",
"enablePullDownRefresh": true,
"usingComponents": {
}
}
+91
View File
@@ -0,0 +1,91 @@
<view class="container">
<view class="inner40 pb0">
<view class="inner40 relative ulib-r10 box-shadow-000-10-10 mb30 overflowhidden">
<view class="absolute top-0 left-0 ml40 bg-36afa2 pl10 pr10 font-22 color-fff">
</view>
<view class="relative pr180">
<view class="font-28">
<text>
{{detailinfo.name}}<text class="ml10 font-22 color-666">编号 {{detailinfo.id}}</text>
</text>
</view>
<view class="mt10 text-nowrap font-28">
<text>{{detailinfo.mobile}}</text>
</view>
</view>
<block wx:for="{{detailinfo.other_data}}" wx:for-index='key' wx:for-item='value' wx:key='i'>
<view class="mt25 fn-clear font-28">
<view class="fn-fl color-333">{{key}}</view>
<view class="fn-fr wp60 text-nowrap text-right color-666">{{value}}</view>
</view>
</block>
</view>
</view>
<view class="pl30 pr30">
<view class="fn-flex pl50 pr50 font-32 color-666 text-center">
<block wx:for='{{tab}}' wx:key='list'>
<view wx:if="{{item.is_show_all||(!item.is_show_all&&!optDefeat)}}" class="fn-flex-item pl20 pr20 tabmenu2 {{tabid == item.id?'active color-36afa2':''}}" data-index="{{index}}" bindtap="changeTab">
<view class="relative">{{item.title}}</view>
</view>
</block>
</view>
<view class="mt30 pb150" wx:if="{{tabid == 1}}">
<view wx:if="{{!optDefeat}}" class="fn-flex text-center">
<block wx:for="{{statistics}}" wx:key='index'>
<view class="fn-flex-item ml15 mr15 pt20 pb20 bg-f3f6fc ulib-r10" style="background-color:{{item.color}}">
<view class="font-32">{{item.val}}</view>
<view class="font-22">{{item.name}}</view>
</view>
</block>
</view>
<view class="pl15 pr15">
<view class="relative mt40 overflowhidden">
<view class="font-22 relative z-index-1">
<i class="iconfont bg-fff icon-genzong mr10"></i>
<text>用户跟踪</text>
</view>
<view class="orderDtail-log mt40 relative" wx:if="{{logslist.length>0}}">
<block wx:for="{{logslist}}" wx:for-index="index" wx:key="index">
<view class="orderDtail-log-item pl40 relative">
<view class="orderDtail-log-content">
<!-- 时间 -->
<view class="font-22">
<text class="color-999">{{item.c_time}}</text>
</view>
<!-- 内容 -->
<view class="font-28 text-break" style="min-height:50rpx;">{{item.content}}</view>
<!-- 录音 -->
<view class="relative mt10 wp80 pt5 pb5 pl180 bg-e3f5f3 color-36afa2 font-30 ulib-r10" wx:if="{{!!item.record_url}}">
<i bindtap="audioPlay" data-index="{{index}}" class="absolute box-middle left-0 ml20 iconfont {{play?'icon-zanting1':'icon-bofang'}}" wx:if="{{currentIndex==index}}"></i>
<i bindtap="audioPlay" data-index="{{index}}" class="absolute box-middle left-0 ml20 iconfont icon-bofang" wx:else></i>
<text class="absolute box-middle left-0 ml65 font-20">
{{currentIndex==index?currentx:'00:00'}} / {{item.alltime}}
</text>
<slider bindtouchstart="handle_slider_move_start" bindchanging="hanle_slider_changing" bindchange="hanle_slider_change" data-index="{{index}}" min="0" step="0.000001" block-size="12" max="{{item.second}}" block-color="#5ec6bb" activeColor="#36afa2" backgroundColor="#d1eeeb" value="{{currentIndex==index?currentime:0}}" />
</view>
<!-- 图片 -->
<view wx:if="{{item.imgs.length>0}}">
<block wx:for="{{item.imgs}}" wx:for-item="img" wx:for-index="j" wx:key="j">
<image bindtap="previewImage" data-type="logs" data-current="{{img}}" data-index="{{index}}" class='img-125x75 mr10 bds-2-eb ulib-r5' src='{{img}}' mode='aspectFill'></image>
</block>
</view>
</view>
<i class="absolute box-middle mt15 bg-fff line-height-11 font-22 color-999 iconfont icon-jiantou-up z-index-1" wx:if="{{index+1 != logslist.length}}"></i>
<text class="absolute orderDtail-log-line2 z-index-0" wx:if="{{index != logslist.length-1}}"></text>
<!-- <text class="absolute orderDtail-log-line z-index-0"></text> -->
<text class="absolute orderDtail-log-dot z-index-1"></text>
</view>
</block>
</view>
</view>
</view>
</view>
</view>
<view class="fixed left-0 bottom-0 right-0 bg-fff-op90 pl40 pr40 pt20 pb40 z-index-1">
<view class="fn-flex text-center fn-flex-between">
<view class="fn-flex-item flexsize4 pt20 pb20 btn-36afa2 font-32 color-fff ulib-r750" bindtap="pushLink" data-url="/pages/clues/index">返回列表</view>
</view>
</view>
</view>
<lcb-backChannel></lcb-backChannel>
+87
View File
@@ -0,0 +1,87 @@
.tabmenu2{display:inline-block;line-height:72rpx;}
.tabmenu2.active view.relative{display:inline-block;}
.tabmenu2.active view.relative::before{display:inline-block;position:absolute;bottom:0;left:50%;transform:translate(-50%,0);width:64rpx;height:4rpx;content:"";background-color:#36afa2;}
.width-25{width:25rpx;}
/* .orderDtail-log::before{
content: '';
position: absolute;
top: 10rpx;
bottom: 10rpx;
background-color: #1a1a1a;
width: 2rpx;
left:10rpx;
} */
/* .orderDtail-log-item::before{
content:'';
position:absolute;
top:8rpx;
background-color: #1a1a1a;
width:2rpx;
height:1000rpx;
left:10rpx;
} */
.orderDtail-log-item{
padding-bottom: 40rpx;
line-height: 1.6;
}
.orderDtail-log-item:first-child{
margin-top: 0;
}
.orderDtail-log-line{
top: 8rpx;
left:16rpx;
width:2rpx;
height:2rpx;
}
.orderDtail-log-line::before{
content:'';
position:absolute;
left:0;
bottom:8rpx;
background-color: #1a1a1a;
width:2rpx;
height:1000rpx;
}
.orderDtail-log-line2{
top:8rpx;
bottom:-8rpx;
left:16rpx;
width:2rpx;
background-color: #1a1a1a;
}
.orderDtail-log-dot{
top: 8rpx;
left:6rpx;
width: 23rpx;
height: 23rpx;
border-radius: 100%;
background-color: #fff;
}
.orderDtail-log-dot::before{
width: 18rpx;
height: 18rpx;
background-color: #fff;
}
.orderDtail-log-dot::after{
width: 12rpx;
height: 12rpx;
background-color: #1a1a1a;
}
.orderDtail-log-dot::before,.orderDtail-log-dot::after{
content: '';
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
border-radius: 100%;
}
.orderDtail-log .orderDtail-log-content{
position:relative;
top:-20rpx;
}
.icon-jiantou-up{
left:6rpx;
}
+79
View File
@@ -0,0 +1,79 @@
import _ from '../../commons/js/commons'
import popularData from '../../commons/js/lib/popularData';
const app = getApp()
Page({
data: {
key:'',//tab状态值
list: [],//客户列表
pageNo: 1,
noData: false,
end: false,
load: true,
loading: false,
isfirstonShow: true,
},
onLoad(options) {
this.getAppCluesList()
},
onShow(){
},
//获取客户列表
getAppCluesList(){
this.setData({
load: false,
loading: true,
})
let params = {};
params['page'] = this.data.pageNo;
params['size'] = 10;
_.apiQuery.getAppCluesList(params).then(res => {
this.setData({
total: res.data.total,
pageNo: this.data.pageNo + 1,
list: this.data.list.concat(res.data.list),
load: true,
loading: false,
})
if (res.data.total == 0) {
this.setData({
noData: true
})
} else if (this.data.list.length == res.data.total) {
this.setData({
end: true
})
}
wx.stopPullDownRefresh()
});
},
//推送链接
pushLink(e){
if(e.currentTarget.dataset.url){
_.$router.openUrlScheme(e.currentTarget.dataset.url)
}
},
//页面相关事件处理函数--监听用户下拉动作
onPullDownRefresh(){
this.setData({
list: [],
pageNo: 1,
noData: false,
end: false,
load: true,
loading: false,
})
this.getAppCustomersDefeats()
},
//页面上拉触底事件的处理函数
onReachBottom(){
if (this.data.noData || this.data.end||!this.data.load) return;
this.getAppCustomersDefeats()
},
})
+7
View File
@@ -0,0 +1,7 @@
{
"navigationBarTitleText": "线索池",
"enablePullDownRefresh": true,
"usingComponents": {
}
}
+21
View File
@@ -0,0 +1,21 @@
<view class="container">
<view class="mt20 pl30 pr30">
<view class="mb20 font-28" wx:if="{{total>0}}">共<text class="pl5 pr5 color-f9394d">{{total}}</text>个</view>
<block wx:for='{{list}}' wx:key='index'>
<view class="inner40 relative ulib-r10 box-shadow-000-10-10 mb30 overflowhidden" bindtap="pushLink" data-url="/pages/clues/detail/index?id={{item.id}}&optDefeat=true">
<view class="relative pr180">
<view>
<text class="font-32">{{item.name}}</text>
<text class="font-28 color-666">({{item.mobile}})</text>
</view>
<view class="absolute right-0 box-middle font-24 color-666">详细信息<text class="iconfont icon-gengduo ml10"></text></view>
</view>
</view>
</block>
<lcb-listmore isLoading='{{loading}}' isEnd='{{end}}' isNoData='{{noData}}'></lcb-listmore>
</view>
</view>
<lcb-footer></lcb-footer>
<lcb-backChannel></lcb-backChannel>
+4
View File
@@ -0,0 +1,4 @@
.tip-radius{
background-color:#fff5f6;
border-radius:0 20rpx 20rpx 15rpx;
}
+8 -45
View File
@@ -24,7 +24,6 @@ Page({
status:0,//状态
statuslist:[
'未见客户',
'到店客户',
],
c_brands:[
@@ -38,9 +37,7 @@ Page({
{id:5, name:'零跑'},
],
of_id:'',
of2_id:'',
of1Index:-1,
of2Index:-1,
cityIndex:-1,
@@ -180,9 +177,7 @@ Page({
changeStatus(e) {
if(this.data.status != e.detail.value){
this.setData({
of_id:'',
of2_id:'',
of1Index:-1,
of2Index:-1,
of2Arr:[],
status:e.detail.value,
@@ -294,24 +289,13 @@ Page({
icon: 'none'
})
}
else if (that.data.c_brandArray.length>0&&that.data.c_brandIndex == -1 ) {
wx.showToast({
title: '请选择客户品牌归属',
icon: 'none'
})
}
else if (that.data.sources.length>0&&that.data.of_id == '' ) {
else if (that.data.of2Arr.length>0&&that.data.of2_id == '' ) {
wx.showToast({
title: '请选择客户来源',
icon: 'none'
})
}
else if (that.data.sources.length>0&&that.data.sources[that.data.of1Index].list.length>0&&that.data.of2_id == '' ) {
wx.showToast({
title: '请选择'+that.data.sources[that.data.of1Index].name+'类型',
icon: 'none'
})
}
else if (that.data.city_id == '' ) {
wx.showToast({
title: '请选择所在城市',
@@ -370,9 +354,6 @@ Page({
if(this.data.c_brandIndex != -1){
params['c_brand'] = this.data.c_brandArray[this.data.c_brandIndex].id;
}
if(this.data.of_id != ''){
params['of_id'] = this.data.of_id;
}
if(this.data.of2_id != ''){
params['of2_id'] = this.data.of2_id;
}
@@ -423,11 +404,8 @@ Page({
timeIndex:-1,//预计购车时间索引
submitFlag:false,
of_id:'',
of2_id:'',
of2Arr:[],
of1Index:-1,
of2Index:-1,
})
that.getAppCustomersTag()
@@ -459,37 +437,22 @@ Page({
let params = {};
params['status'] = this.data.status;
_.apiQuery.getAppCustomersOffline_sources(params).then(res => {
let of1Arr = []
res.data.sources.forEach(item => {
of1Arr.push(item.name)
let of2Arr = []
res.data.forEach(item => {
of2Arr.push(item['name'])
})
this.setData({
of1Arr,
sources:res.data.sources
of2Arr:of2Arr,
sources:res.data
})
});
},
//客户来源
changeOf1(e) {
if(this.data.of1Index!=e.detail.value){
let of2Arr = []
this.data.sources[e.detail.value].list.forEach(item => {
of2Arr.push(item.name)
})
this.setData({
of2Arr,
of2Index:-1,
of_id:this.data.sources[e.detail.value].id,
of1Index:e.detail.value,
})
}
},
changeOf2(e) {
if(this.data.of2Index!=e.detail.value){
this.setData({
of2_id:this.data.sources[this.data.of1Index].list[e.detail.value].id,
of2_id:this.data.sources[e.detail.value].id,
of2Index:e.detail.value,
})
}
+3 -13
View File
@@ -22,6 +22,7 @@
<input class="wp100 height-100 text-right font-28" placeholder-class="color-ccc" type="number" placeholder="请输入客户手机号" bindinput='inputTx' data-key="mobile" name='mobile' value='{{mobile}}' />
</view>
</view>
<!--
<view class="relative bbs-1-eb pl190 last-b-none">
<view class="absolute left-0 box-middle font-28 color-333">品牌归属</view>
<view class="pt30 pb30 text-right font-28 color-666">
@@ -32,7 +33,6 @@
</picker>
</view>
</view>
<!--
<view class="relative bbs-1-eb pl190 last-b-none" wx:if="{{brandIndex != -1}}">
<view class="absolute left-0 box-middle font-28 color-333">车系车型</view>
<view class="pt30 pb30 text-right font-28 color-666 text-nowrap">
@@ -73,21 +73,11 @@
</picker>
</view>
</view> -->
<block wx:if="{{sources.length>0}}">
<block wx:if="{{of2Arr.length>0}}">
<view class="relative bbs-1-eb last-b-none pl140 font-28">
<view class="absolute left-0 box-middle">客户来源</view>
<view class="pt30 pb30 text-right font-28 color-666">
<picker bindchange="changeOf1" value="{{of1Index}}" range="{{of1Arr}}">
<text class="color-ccc" wx:if="{{of1Index == -1}}">请选择</text>
<text wx:else>{{of1Arr[of1Index]}}</text>
<i class="iconfont ml5 icon-gengduo"></i>
</picker>
</view>
</view>
<view class="relative bbs-1-eb last-b-none pl140 font-28" wx:if="{{of2Arr.length>0}}">
<view class="absolute left-0 box-middle">{{sources[of1Index].name}}</view>
<view class="pt30 pb30 text-right font-28 color-666">
<picker bindchange="changeOf2" value="{{of2Index}}" range="{{of2Arr}}">
<picker bindchange="changeOf1" value="{{of2Index}}" range="{{of2Arr}}">
<text class="color-ccc" wx:if="{{of2Index == -1}}">请选择</text>
<text wx:else>{{of2Arr[of2Index]}}</text>
<i class="iconfont ml5 icon-gengduo"></i>
+2 -2
View File
@@ -89,7 +89,7 @@ Page({
this.getTimePicker()
this.getUserInfo()
},
onshow() {
@@ -1027,7 +1027,7 @@ Page({
icon: 'none'
})
this.getAppCustomerlogsRefresh()()
this.getAppCustomerlogsRefresh()
})
}
+10 -5
View File
@@ -169,8 +169,12 @@
<button bindtap="pushLink" data-url="/pages/customer/editCard/index?id={{id}}" class="inline-block btn-36afa2 font-22 color-fff ulib-r10" hover-class="btn-36afa2-hover"></button>
</view> -->
<view wx:if="{{optDefeat}}" class="fn-flex text-center fn-flex-between">
<view ></view>
<view class="fn-flex-item flexsize4 pt20 pb20 btn-36afa2 font-32 color-fff ulib-r750" bindtap="pushLink" data-url="/pages/customer/optDefeat/index">返回列表</view>
<view class="fn-flex-item flexsize4 pt20 pb20 bds-2-36afa2 bg-fff font-32 color-36afa2 ulib-rl750" bindtap="putAppCustomersDefeats" data-type="0">
战败
</view>
<view class="fn-flex-item flexsize4 pt20 pb20 btn-36afa2 font-32 color-fff ulib-rr750" bindtap="putAppCustomersDefeats" data-type="1">
再战
</view>
</view>
<view wx:else class="fn-flex text-center">
<view class="fn-flex-item flexsize3 pt10 color-36afa2" bindtap="pushLink" data-url="/pages/customer/editCard/index?id={{id}}">
@@ -205,7 +209,7 @@
<view class="fn-flex-item flexsize4 pt20 pb20 bts-2-36afa2 bls-2-36afa2 bbs-2-36afa2 bg-fff font-32 color-36afa2 ulib-rl750" bindtap="optShowNote">
客户跟进
</view>
<view class="fn-flex-item flexsize4 pt20 pb20 btn-36afa2 font-32 color-fff ulib-rr750 {{detailinfo.generate_order||userInfo.group_id==2||userInfo.group_id==3||userInfo.group_id==4?'':'opacity-50'}}" bindtap="{{detailinfo.generate_order||userInfo.group_id==2||userInfo.group_id==3||userInfo.group_id==4?'pushLink':''}}" data-url="/pages/order/register/index?cus_id={{detailinfo.id}}&name={{detailinfo.name}}&mobile={{detailinfo.mobile}}&complete_mobile={{detailinfo.complete_mobile}}">
<view class="fn-flex-item flexsize4 pt20 pb20 btn-36afa2 font-32 color-fff ulib-rr750 {{userInfo.group_id!=4&&detailinfo.status==1?'':'opacity-50'}}" bindtap="{{userInfo.group_id!=4&&detailinfo.status==1?'pushLink':''}}" data-url="/pages/order/register/index?cus_id={{detailinfo.id}}&name={{detailinfo.name}}&mobile={{detailinfo.mobile}}&complete_mobile={{detailinfo.complete_mobile}}">
生成订单
</view>
</block>
@@ -251,6 +255,7 @@
</view>
</view>
</lcb-msg>
<lcb-msg isShow="{{isShowNote}}">
<view slot="content" class="pt20">
<view class="mt30 pl30 pr30 font-28 text-center fn-flex" wx:if="{{detailinfo.status ==3}}">
@@ -262,10 +267,10 @@
</view>
</view>
<view class="mt30 pl30 pr30 font-28 text-center fn-flex" wx:elif="{{detailinfo.status!=2}}">
<view class="fn-flex-item relative ml10 mr10 pt20 pb20 ulib-r10 {{statuskey == 0?'bg-36afa2 color-fff':'bg-f6'}}" bindtap="radioPicker" data-key="0">
<view class="fn-flex-item relative ml10 mr10 pt20 pb20 ulib-r10 {{statuskey == 0?'bg-36afa2 color-fff':'bg-f6'}}" bindtap="radioPicker" data-key="0" wx:if="{{detailinfo.status==0}}">
未见客户
</view>
<view class="fn-flex-item relative ml10 mr10 pt20 pb20 ulib-r10 {{statuskey == 1?'bg-36afa2 color-fff':'bg-f6'}}" bindtap="radioPicker" data-key="1">
<view class="fn-flex-item relative ml10 mr10 pt20 pb20 ulib-r10 {{statuskey == 1?'bg-36afa2 color-fff':'bg-f6'}}" bindtap="radioPicker" data-key="1" wx:if="{{detailinfo.status==2}}">
到店客户
</view>
<view class="fn-flex-item relative ml10 mr10 pt20 pb20 ulib-r10 {{statuskey == 3?'bg-36afa2 color-fff':'bg-f6'}}" bindtap="radioPicker" data-key="3">
+14 -52
View File
@@ -28,9 +28,9 @@ Page({
submitFlag:false,
of_id:'',
// of_id:'',
of2_id:'',
of1Index:-1,
// of1Index:-1,
of2Index:-1,
c_brandIndex:-1,
@@ -62,7 +62,7 @@ Page({
baseinfo:res.data.baseinfo,
name:res.data.baseinfo.name.value?res.data.baseinfo.name.value:'',
mobile:res.data.baseinfo.mobile.value?res.data.baseinfo.mobile.value:'',
of_id:res.data.baseinfo.of_id.of_id?res.data.baseinfo.of_id.of_id:'',
// of_id:res.data.baseinfo.of_id.of_id?res.data.baseinfo.of_id.of_id:'',
of2_id:res.data.baseinfo.of_id.of2_id?res.data.baseinfo.of_id.of2_id:'',
wxgr:res.data.baseinfo.wxgr,
wxgrimg:res.data.baseinfo.wxgrimg,
@@ -385,18 +385,12 @@ Page({
icon: 'none'
})
}
else if (that.data.sources.length>0&&that.data.of_id == '' ) {
else if (that.data.sources.length>0&&that.data.of2_id == '' ) {
wx.showToast({
title: '请选择客户来源',
icon: 'none'
})
}
else if (that.data.sources.length>0&&that.data.sources[that.data.of1Index].list.length>0&&that.data.of2_id == '' ) {
wx.showToast({
title: '请选择'+that.data.sources[that.data.of1Index].name+'类型',
icon: 'none'
})
}
else if (that.data.city_id == '' ) {
wx.showToast({
title: '请选择所在城市',
@@ -454,9 +448,6 @@ Page({
if(this.data.c_brandIndex != -1){
params['c_brand'] = this.data.c_brandArray[this.data.c_brandIndex].id;
}
if(that.data.of_id != that.data.baseinfo.of_id.of_id){
params['of_id'] = that.data.of_id;
}
if(that.data.of2_id != that.data.baseinfo.of_id.of2_id){
params['of2_id'] = that.data.of2_id;
}
@@ -527,60 +518,31 @@ Page({
//客户来源
getAppCustomersOffline_sources(){
_.apiQuery.getAppCustomersOffline_sources().then(res => {
let of1Arr = []
res.data.sources.forEach(item => {
of1Arr.push(item.name)
let of2Arr = []
res.data.forEach(item => {
of2Arr.push(item.name)
})
this.setData({
of1Arr,
sources:res.data.sources
of2Arr,
sources:res.data
})
if(this.data.of_id != ''){
res.data.sources.forEach((item,index) => {
if(item.id == this.data.of_id){
if(this.data.of2_id != ''){
res.data.forEach((item,index) => {
if(item.id == this.data.of2_id){
this.setData({
of1Index:index,
of2Index:index,
})
}
})
if(this.data.of2Index != ''){
let of2Arr = []
res.data.sources[this.data.of1Index].list.forEach((item,index) => {
of2Arr.push(item.name)
if(item.id == this.data.of2_id){
this.setData({
of2Index:index,
})
}
})
this.setData({
of2Arr,
})
}
}
});
},
//客户来源
changeOf1(e) {
if(this.data.of1Index!=e.detail.value){
let of2Arr = []
this.data.sources[e.detail.value].list.forEach(item => {
of2Arr.push(item.name)
})
this.setData({
of2Arr,
of2Index:-1,
of_id:this.data.sources[e.detail.value].id,
of1Index:e.detail.value,
})
}
},
changeOf2(e) {
if(this.data.of2Index!=e.detail.value){
this.setData({
of2_id:this.data.sources[this.data.of1Index].list[e.detail.value].id,
of2_id:this.data.sources[e.detail.value].id,
of2Index:e.detail.value,
})
}
+2 -11
View File
@@ -13,6 +13,7 @@
<input class="wp100 height-100 text-right font-28" placeholder-class="color-ccc" type="number" placeholder="请输入客户手机号" bindinput='inputTx' data-key="mobile" name='mobile' value='{{mobile}}' />
</view>
</view>
<!--
<view class="relative bbs-1-eb pl190 last-b-none">
<view class="absolute left-0 box-middle font-28 color-333">品牌归属</view>
<view class="pt30 pb30 text-right font-28 color-666">
@@ -23,7 +24,7 @@
</picker>
</view>
</view>
<!-- <view class="relative bbs-1-eb pl190 last-b-none">
<view class="relative bbs-1-eb pl190 last-b-none">
<view class="absolute left-0 box-middle font-28 color-333">车辆品牌</view>
<view class="pt30 pb30 text-right font-28 color-666">
<picker bindchange="changeBrand" value="{{brandIndex}}" range="{{brandArray}}">
@@ -66,16 +67,6 @@
<block wx:if="{{sources.length>0}}">
<view class="relative bbs-1-eb last-b-none pl140 font-28">
<view class="absolute left-0 box-middle">客户来源</view>
<view class="pt30 pb30 text-right font-28 color-666">
<picker bindchange="changeOf1" value="{{of1Index}}" range="{{of1Arr}}">
<text class="color-ccc" wx:if="{{of1Index == -1}}">请选择</text>
<text wx:else>{{of1Arr[of1Index]}}</text>
<i class="iconfont ml5 icon-gengduo"></i>
</picker>
</view>
</view>
<view class="relative bbs-1-eb last-b-none pl140 font-28" wx:if="{{of2Arr.length>0}}">
<view class="absolute left-0 box-middle">{{sources[of1Index].name}}</view>
<view class="pt30 pb30 text-right font-28 color-666">
<picker bindchange="changeOf2" value="{{of2Index}}" range="{{of2Arr}}">
<text class="color-ccc" wx:if="{{of2Index == -1}}">请选择</text>
+1 -1
View File
@@ -117,7 +117,7 @@ Page({
//销售顾问
this.getAppUserAdmins()
//客户来源
this.getAppCustomersOffline_sources()
// this.getAppCustomersOffline_sources()
this.getTimePicker()
+14 -14
View File
@@ -1,21 +1,21 @@
<view class="container">
<view class="mt20 pl30 pr30">
<view class="mb20 font-28" wx:if="{{total>0}}">共<text class="pl5 pr5 color-f9394d">{{total}}</text>个</view>
<block wx:for='{{list}}' wx:key='index'>
<view class="inner30 relative ulib-r10 bds-1-eb mb30 overflowhidden" bindtap="pushLink" data-url="/pages/customer/detail/index?id={{item.id}}&optDefeat=true">
<view class="relative pr180">
<view>
<text class="font-32">{{item.name}}</text>
<text class="font-28 color-666">({{item.mobile}})</text>
</view>
<view class="absolute right-0 box-middle font-24 color-666">详细信息<text class="iconfont icon-gengduo ml10"></text></view>
<view class="mt20 pl30 pr30">
<view class="mb20 font-28" wx:if="{{total>0}}">共<text class="pl5 pr5 color-f9394d">{{total}}</text>个</view>
<block wx:for='{{list}}' wx:key='index'>
<view class="inner40 relative ulib-r10 box-shadow-000-10-10 mb30 overflowhidden" bindtap="pushLink" data-url="/pages/customer/detail/index?id={{item.id}}&optDefeat=true">
<view class="relative pr180">
<view>
<text class="font-32">{{item.name}}</text>
<text class="font-28 color-666">({{item.mobile}})</text>
</view>
<view class="mt15 pt5 pb5 pl20 pr20 font-22 color-f9394d tip-radius" wx:if="{{item.reason&&0}}">{{item.reason}}</view>
<view class="absolute right-0 box-middle font-24 color-666">查看详情<text class="iconfont icon-gengduo ml10"></text></view>
</view>
</block>
<lcb-listmore isLoading='{{loading}}' isEnd='{{end}}' isNoData='{{noData}}'></lcb-listmore>
</view>
<view class="mt15 pt5 pb5 pl20 pr20 font-22 color-f9394d tip-radius" wx:if="{{item.reason}}">{{item.reason}}</view>
</view>
</block>
<lcb-listmore isLoading='{{loading}}' isEnd='{{end}}' isNoData='{{noData}}'></lcb-listmore>
</view>
</view>
<lcb-footer></lcb-footer>
+2
View File
@@ -40,6 +40,7 @@
<view class="tit">
<text>添加客服微信号</text>
</view>
<!--
<view class="font-26 color-999 text-center mt15">分销问题,下单问题都可以加我哦</view>
<view class="relative">
<button class="btn-concat">去添加</button>
@@ -48,6 +49,7 @@
<QYWXcontact buttonText="{{4}}" class="pt40 pb40" bind:completemessage="completemessage" styleType='1' plugid='9280d952ecab1136d907a34b6799df97' />
</view>
</view>
-->
</view>
</view>
</lcb-msg>
+8 -9
View File
@@ -108,7 +108,6 @@ Page({
onShow: function () {
this.getHoursTip()
//确保bizID重置完成再执行
if(this.data.isResetbiz){
this.setData({
@@ -118,10 +117,10 @@ Page({
isShowGoods:false,
});
this.getAppUserCal()
this.getAppTransferRemind()
this.getAppInventoryRemind()
this.getAppGoodsRemind()
this.getAppStatisticsHcust()
// this.getAppTransferRemind()
// this.getAppInventoryRemind()
// this.getAppGoodsRemind()
// this.getAppStatisticsHcust()
}
},
@@ -159,10 +158,10 @@ Page({
});
this.getUserInfo()
this.getAppUserCal()
this.getAppTransferRemind()
this.getAppInventoryRemind()
this.getAppGoodsRemind()
this.getAppStatisticsHcust()
// this.getAppTransferRemind()
// this.getAppInventoryRemind()
// this.getAppGoodsRemind()
// this.getAppStatisticsHcust()
});
},
+1 -1
View File
@@ -43,7 +43,7 @@
<view class="font-36">数据看板</view>
<view class="fn-flex fn-flex-wrap pt20 pb10 text-center">
<block wx:for="{{userCal.statistics}}" wx:key='index'>
<view class="wp25 relative pt20 pb20 {{index>2?'bts-1-eb':''}} {{index%3==2?'':'brs-1-eb'}}" bindtap="pushLink" data-url="{{item.today.url}}">
<view class="wp25 relative pt20 pb20 {{index>3?'bts-1-eb':''}} {{index%4<3?'brs-1-eb':''}}" bindtap="pushLink" data-url="{{item.today.url}}">
<view class="text-bold"><text class="font-36">{{item.today.value}}</text><text class="font-28 color-666">/{{item.month.value}}</text></view>
<view class="font-22"><text>{{item.today.title}}</text><text class="color-666">/{{item.month.title}}</text></view>
</view>
+2
View File
@@ -29,6 +29,7 @@
</view>
</view>
<view class="absolute wp100 login-light img-fill-cover" style="background-image:url({{imgUrl}}/login/login-light.png?v=1);"></view>
<!--
<view class="absolute wp100 bottom-170 text-center font-28 color-999">
<view class="absolute left-0 top-0 right-0 bottom-0 opacity-0 overflowhidden">
<QYWXcontact buttonText="{{4}}" class="pt40 pb40" styleType='1' plugid='9280d952ecab1136d907a34b6799df97' />
@@ -36,6 +37,7 @@
</view>
<i class="iconfont icon-kefu mr5"></i>联系小理
</view>
-->
</view>
</view>
<lcb-footer></lcb-footer>
+28 -28
View File
@@ -1,29 +1,29 @@
{
"appid": "wx71095d4049de3ed1",
"compileType": "miniprogram",
"libVersion": "3.0.0",
"packOptions": {
"ignore": [],
"include": []
},
"setting": {
"coverView": true,
"es6": true,
"postcss": true,
"minified": true,
"enhance": true,
"showShadowRootInWxmlPanel": true,
"packNpmRelationList": [],
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
},
"condition": false
},
"condition": {},
"editorSetting": {
"tabIndent": "insertSpaces",
"tabSize": 2
}
{
"appid": "wx4733380c110313ec",
"compileType": "miniprogram",
"libVersion": "3.0.0",
"packOptions": {
"ignore": [],
"include": []
},
"setting": {
"coverView": true,
"es6": true,
"postcss": true,
"minified": true,
"enhance": true,
"showShadowRootInWxmlPanel": true,
"packNpmRelationList": [],
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
},
"condition": false
},
"condition": {},
"editorSetting": {
"tabIndent": "insertSpaces",
"tabSize": 2
}
}
+27 -26
View File
@@ -1,27 +1,28 @@
{
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"projectname": "XiaoChengXu-LiCheBao",
"setting": {
"compileHotReLoad": true
},
"condition": {
"miniprogram": {
"list": [
{
"name": "待跟进客户",
"pathName": "pages/customer/filterList/index",
"query": "status=1&visit=1&title=待跟进客户",
"launchMode": "default",
"scene": null
},
{
"name": "建卡",
"pathName": "pages/customer/addCard/index",
"query": "status=0",
"launchMode": "default",
"scene": null
}
]
}
}
{
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"projectname": "XiaoChengXu-LiCheBao",
"setting": {
"compileHotReLoad": true,
"urlCheck": true
},
"condition": {
"miniprogram": {
"list": [
{
"name": "待跟进客户",
"pathName": "pages/customer/filterList/index",
"query": "status=1&visit=1&title=待跟进客户",
"launchMode": "default",
"scene": null
},
{
"name": "建卡",
"pathName": "pages/customer/addCard/index",
"query": "status=0",
"launchMode": "default",
"scene": null
}
]
}
}
}