@@ -0,0 +1,119 @@ | |||
@mixin textoverflow() { | |||
display: -webkit-box; | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
-webkit-box-orient: vertical; | |||
-webkit-line-clamp: 1; | |||
} | |||
@keyframes rowup { | |||
0% { | |||
-webkit-transform: translate(-50%, -50%) rotate(0deg); | |||
transform-origin: center center; | |||
} | |||
100% { | |||
-webkit-transform: translate(-50%, -50%) rotate(360deg); | |||
transform-origin: center center; | |||
} | |||
} | |||
.imt-audio{ | |||
position:relative; | |||
width: 100%; | |||
display: flex; | |||
box-sizing: border-box; | |||
background: #fff; | |||
overflow: hidden; | |||
.top { | |||
width: 140rpx; | |||
position: relative; | |||
} | |||
.audio-wrapper { | |||
display: flex; | |||
flex-direction: column; | |||
flex: 1; | |||
color: #fff; | |||
margin-left: 20rpx; | |||
} | |||
.slidebox { | |||
display: flex; | |||
justify-content: space-between; | |||
width: 96%; | |||
} | |||
/deep/ .uni-slider-tap-area { | |||
padding: 0; | |||
} | |||
/deep/ .uni-slider-wrapper { | |||
min-height: 0; | |||
} | |||
/deep/ .uni-slider-handle-wrapper { | |||
height: 6px; | |||
} | |||
.audio-slider { | |||
padding-top: 10rpx; | |||
margin-left: 150rpx; | |||
position: absolute; | |||
bottom: 40rpx; | |||
width: 75vw; | |||
left: 0; | |||
padding: 0; | |||
} | |||
// .cover { | |||
// width: 120rpx; | |||
// height: 120rpx; | |||
// box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2); | |||
// position: absolute; | |||
// top: 50%; | |||
// left: 50%; | |||
// transform: translate(-50%, -50%); | |||
// animation-fill-mode: forwards; | |||
// -webkit-animation-fill-mode: forwards; | |||
// } | |||
.play { | |||
width: 48rpx; | |||
height: 48rpx; | |||
z-index: 99; | |||
background: rgba(0, 0, 0, 0.4); | |||
border-radius: 50%; | |||
position: absolute; | |||
top: 50%; | |||
left: 50%; | |||
transform: translate(-50%, -50%); | |||
&.loading{ | |||
width: 48rpx; | |||
height: 48rpx; | |||
animation: rotating_theme3 2s linear infinite; | |||
} | |||
} | |||
} | |||
@keyframes rotating { | |||
0% { | |||
transform: rotateZ(0deg) | |||
} | |||
100% { | |||
transform: rotateZ(360deg) | |||
} | |||
} | |||
@keyframes rotating_theme3 { | |||
0% { | |||
transform: translate(-50%, -50%) rotateZ(0deg) | |||
} | |||
100% { | |||
transform: translate(-50%, -50%) rotateZ(360deg) | |||
} | |||
} | |||
.hItem | |||
{ | |||
margin-left: 16rpx; | |||
} | |||
.extrButton | |||
{ | |||
font-size: 36rpx; | |||
} |
@@ -0,0 +1,318 @@ | |||
<template> | |||
<view class="imt-audio"> | |||
<template> | |||
<view class="top"> | |||
<view class="audio-control-wrapper"> | |||
<!-- <image :src="poster" mode="aspectFill" class="cover"></image> --> | |||
<image :src="require('./static/loading.png')" v-if="playState=='loading'" class="play loading"> | |||
</image> | |||
<template v-else> | |||
<image :src="require('./static/playbtn.png')" alt="play" @click="play" class="play" | |||
v-if="playState=='pause'"></image> | |||
<image :src="require('./static/pausebtn.png')" alt="pause" @click="pause" class="play" v-else> | |||
</image> | |||
</template> | |||
</view> | |||
</view> | |||
<view class="audio-wrapper"> | |||
<view class="audio-flex"> | |||
<text> | |||
{{formatSeconds(currentTime)}} | |||
</text> | |||
<slider class="audio-slider" block-size="12" :max="duration" :value="currentTime" | |||
@change="sliderChange" @changing="sliderChanging"></slider> | |||
<text> | |||
{{formatSeconds(duration)}} | |||
</text> | |||
</view> | |||
<view class="slidebox"> | |||
<slot name="extraCtrls"> | |||
<text class="hItem extrButton" @click="$emit('Button1Click')" | |||
v-show="isButton1Visible">{{button1Text}}</text> | |||
<text class="hItem extrButton" @click="$emit('Button2Click')" | |||
v-show="isButton2Visible">{{button2Text}}</text> | |||
<text class="hItem extrButton" @click="$emit('Button3Click')" | |||
v-show="isButton3Visible">{{button3Text}}</text> | |||
</slot> | |||
</view> | |||
</view> | |||
<!--video在ios中不能完全隐藏,否则无法播放--> | |||
<video id="videoPlayer" class="videoPlayer" :src="src" autoplay="true" :muted="false" style="width: 10rpx;height:10rpx;" | |||
@play="playerOnPlay" @pause="playerOnPause" @ended="playerOnEnded" @timeupdate="playerOnTimeupdate" | |||
@waiting="playerOnWaiting" @error="playerOnError"></video> | |||
</template> | |||
</view> | |||
</template> | |||
<script> | |||
/* | |||
createInnerAudioContext()是audio组件的内部实现,不能熄屏播放、不能后台播放、不能倍速播放。 | |||
getBackgroundAudioManager() 可以熄屏播放、后台播放,不能倍速播放。缺点是响应速度很慢,无法实现精细、及时的进度控制,而且可能被别的程序占用。 | |||
因此这里只能用video来实现,video能倍速播放,不能熄屏播放、不能后台播放。而且避免了用createInnerAudioContext()实现的跳转到别的页面,还在播放的问题 | |||
因此应用程序可以在需要后台播放的时候(需要用户操作触发),再暂停这个控件的播放,然后自己用getBackgroundAudioManager实现后台播放 | |||
*/ | |||
import Vue from 'vue'; | |||
export default { | |||
props: { | |||
isButton1Visible: { | |||
type: Boolean, | |||
default: false | |||
}, | |||
button1Text: { | |||
type: String, | |||
default: '' | |||
}, | |||
isButton2Visible: { | |||
type: Boolean, | |||
default: false | |||
}, | |||
button2Text: { | |||
type: String, | |||
default: '' | |||
}, | |||
isButton3Visible: { | |||
type: Boolean, | |||
default: false | |||
}, | |||
button3Text: { | |||
type: String, | |||
default: '' | |||
}, | |||
}, | |||
data() { | |||
return { | |||
src: "", | |||
poster: "", | |||
name: "...", | |||
singer: "...", | |||
duration: 0, | |||
currentTime: 0, | |||
playState: "pause", //"loading"/"playing"/"pause" | |||
isSliderChanging: false, | |||
}; | |||
}, | |||
created: function() { | |||
//自定义组件,需要传递第二个参数为this,否则后续的pause等操作不起作用 | |||
this.videoCtx = uni.createVideoContext("videoPlayer", this); | |||
}, | |||
methods: { | |||
setSrc: function(value) { | |||
this.src = value; | |||
}, | |||
setPoster: function(value) { | |||
this.poster = value; | |||
}, | |||
setName: function(value) { | |||
this.name = value; | |||
}, | |||
setSinger: function(value) { | |||
this.singer = value; | |||
}, | |||
playerOnPlay: function(e) { | |||
this.playState = "playing"; | |||
this.$emit("play"); | |||
}, | |||
playerOnPause: function(e) { | |||
this.playState = "pause"; | |||
this.$emit("pause"); | |||
}, | |||
playerOnEnded: function(e) { | |||
this.playState = "pause"; | |||
this.$emit("ended"); | |||
}, | |||
playerOnTimeupdate: function(e) { | |||
this.playState = "playing"; | |||
this.duration = e.detail.duration; | |||
this.currentTime = e.detail.currentTime; | |||
this.$emit("timeUpdate", e.detail); | |||
}, | |||
playerOnWaiting: function(e) { | |||
this.playState = "loading"; | |||
}, | |||
playerOnError: function(e) { | |||
uni.showToast({ | |||
title: "播放出错" + e | |||
}); | |||
this.playState = "pause"; | |||
this.$emit("error", e); | |||
}, | |||
formatSeconds(seconds) { | |||
var result = typeof seconds === "string" ? parseFloat(seconds) : seconds; | |||
if (isNaN(result)) return ""; | |||
let h = Math.floor(result / 3600) < 10 ? | |||
"0" + Math.floor(result / 3600) : | |||
Math.floor(result / 3600); | |||
let m = Math.floor((result / 60) % 60) < 10 ? | |||
"0" + Math.floor((result / 60) % 60) : | |||
Math.floor((result / 60) % 60) + h * 60; | |||
let s = Math.floor(result % 60) < 10 ? | |||
"0" + Math.floor(result % 60) : | |||
Math.floor(result % 60); | |||
return `${m}:${s}`; | |||
}, | |||
stop: function() { | |||
this.videoCtx.stop(); | |||
}, | |||
seek: function(t) { | |||
this.videoCtx.seek(t); | |||
}, | |||
play: function() { | |||
var that = this; | |||
this.videoCtx.play(); //在有的H5浏览器里,如果play不是用户触发的,则play()会报错 | |||
}, | |||
pause: function() { | |||
this.videoCtx.pause(); | |||
}, | |||
playbackRate: function(value) { | |||
this.videoCtx.playbackRate(value); | |||
//playbackRate不能在play之前或者之后立即调用,否则只有很少几率会成功 | |||
}, | |||
sliderChange: function(e) { | |||
this.isSliderChanging = false; | |||
//要通过e.detail.value获取,否则如果通过dom去读取slider的value | |||
//就会存在滚动条拖不动的情况 | |||
this.videoCtx.seek(e.detail.value); | |||
this.$emit('sliderChangeComplate', e) | |||
}, | |||
sliderChanging(e) { | |||
this.isSliderChanging = true; | |||
console.log(e, '当前正在改变') | |||
}, | |||
}, | |||
} | |||
</script> | |||
<style lang="scss"> | |||
// @import './index.scss'; | |||
@mixin textoverflow() { | |||
display: -webkit-box; | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
-webkit-box-orient: vertical; | |||
-webkit-line-clamp: 1; | |||
} | |||
@keyframes rowup { | |||
0% { | |||
-webkit-transform: translate(-50%, -50%) rotate(0deg); | |||
transform-origin: center center; | |||
} | |||
100% { | |||
-webkit-transform: translate(-50%, -50%) rotate(360deg); | |||
transform-origin: center center; | |||
} | |||
} | |||
.imt-audio { | |||
position: relative; | |||
width: 100%; | |||
height: 81rpx; | |||
display: flex; | |||
box-sizing: border-box; | |||
background: #fff; | |||
overflow: hidden; | |||
.top { | |||
position: relative; | |||
width: 100rpx; | |||
} | |||
.audio-wrapper { | |||
display: flex; | |||
flex-direction: column; | |||
flex: 1; | |||
color: #fff; | |||
margin-left: 20rpx; | |||
} | |||
.slidebox { | |||
display: flex; | |||
justify-content: space-between; | |||
width: 96%; | |||
} | |||
/deep/ .uni-slider-tap-area { | |||
padding: 0; | |||
} | |||
/deep/ .uni-slider-wrapper { | |||
min-height: 0; | |||
} | |||
/deep/ .uni-slider-handle-wrapper { | |||
height: 6px; | |||
} | |||
.audio-slider { | |||
flex-grow: 1; | |||
} | |||
.play { | |||
width: 48rpx; | |||
height: 48rpx; | |||
z-index: 99; | |||
background: rgba(0, 0, 0, 0.4); | |||
border-radius: 50%; | |||
position: absolute; | |||
top: 50%; | |||
left: 50%; | |||
transform: translate(-50%, -50%); | |||
&.loading { | |||
width: 48rpx; | |||
height: 48rpx; | |||
animation: rotating_theme3 2s linear infinite; | |||
} | |||
} | |||
} | |||
.audio-flex { | |||
padding: 0 32rpx 0 0; | |||
display: flex; | |||
align-items: center; | |||
text { | |||
color: #70798D; | |||
} | |||
} | |||
@keyframes rotating { | |||
0% { | |||
transform: rotateZ(0deg) | |||
} | |||
100% { | |||
transform: rotateZ(360deg) | |||
} | |||
} | |||
@keyframes rotating_theme3 { | |||
0% { | |||
transform: translate(-50%, -50%) rotateZ(0deg) | |||
} | |||
100% { | |||
transform: translate(-50%, -50%) rotateZ(360deg) | |||
} | |||
} | |||
.hItem { | |||
margin-left: 16rpx; | |||
} | |||
.extrButton { | |||
font-size: 36rpx; | |||
} | |||
.videoPlayer { | |||
position: absolute; | |||
left: 0; | |||
bottom: 0; | |||
z-index: -1; | |||
} | |||
</style> |
@@ -100,6 +100,7 @@ | |||
}, | |||
"usingComponents" : true, | |||
"permission" : {}, | |||
"requiredBackgroundModes": ["audio"], | |||
"plugins" : { | |||
"WechatSI" : { | |||
"version" : "0.3.4", | |||
@@ -169,7 +169,7 @@ | |||
</view> | |||
</view> | |||
<view class="uchaserbox"> | |||
<view class="uchaserbox" v-if="chartData1"> | |||
<qiun-data-charts :opts="opts" type="radar" :chartData="chartData1" :canvas2d="true" | |||
canvasId="wangxiaohuaerlingeryilingwuyib88" background="none" /> | |||
</view> | |||
@@ -379,6 +379,7 @@ | |||
this.lineOptsect1 = null | |||
this.lineOptsect2 = null | |||
this.lineOptsect3 = null | |||
this.chartData1 = null | |||
// 团队对比接待量 | |||
this.receptionCountList(this.eharTab.active1, 1, '/cusLvStatistics/teamAnalysisReception') | |||
// 团队对比接待时长 | |||
@@ -55,8 +55,8 @@ | |||
</view> | |||
<view class="comparesize" v-if="compareFlag&&timepickpickisshow"> | |||
<text style="margin-right: 10rpx;">对比:{{index==1?item.num1+'%':item.num1}}</text> | |||
<text :style="{color:item.num2*1>0?'red':'green'}">{{item.num2+'%'}} | |||
{{(item.num2*1) > 0 ? '↑' : '↓'}}</text> | |||
<text | |||
:style="{color:item.num2*1>0?'red':'green'}">{{item.num2+'%'}}{{(item.num2*1) > 0 ? '↑' : '↓'}}</text> | |||
</view> | |||
</view> | |||
</view> | |||
@@ -9,7 +9,10 @@ | |||
<view class="img B" v-else-if="customerInfo.level==2">B</view> | |||
<view class="img C" v-else-if="customerInfo.level==3">C</view> | |||
<view class="img D" v-else-if="customerInfo.level==4">D</view> | |||
<view class="test">{{customerInfo.name || '--'}}</view> | |||
<view class="test"> | |||
{{customerInfo.name || '--'}} | |||
<view v-if="customerInfo.clientStageName" class="clientStageName">{{ customerInfo.clientStageName }}</view> | |||
</view> | |||
<view class="edit" @click="goedit()" v-if="isHavePermission"> | |||
<image class="screen-sel-img" src="../../../static/images/edit.png" mode=""></image> | |||
</view> | |||
@@ -122,6 +125,7 @@ | |||
<view class="tab2-first-left"> | |||
<view class="img">{{item.agentName.slice(0,1) || '--'}}</view> | |||
<view class="name">{{item.agentName || '||'}}</view> | |||
<view v-if="item.clientStageName" class="clientStageName">{{ item.clientStageName }}</view> | |||
</view> | |||
<view class="tab2-first-right">{{item.createTime}}</view> | |||
</view> | |||
@@ -905,6 +909,17 @@ | |||
flex-grow: 1; | |||
font-weight: 500; | |||
color: #333333; | |||
display: flex; | |||
align-items: center; | |||
.clientStageName { | |||
margin-left: 20rpx; | |||
padding: 5rpx 20rpx; | |||
border: 1px solid #F29819; | |||
border-radius: 32rpx 32rpx 32rpx 0; | |||
color: #F29819; | |||
font-size: 20rpx; | |||
} | |||
} | |||
.edit { | |||
@@ -918,6 +933,7 @@ | |||
height: 100%; | |||
} | |||
} | |||
} | |||
.right { | |||
@@ -1149,6 +1165,7 @@ | |||
// height: 75rpx; | |||
.tab2-first-left { | |||
display: flex; | |||
align-items: center; | |||
.img { | |||
width: 52rpx; | |||
@@ -1164,7 +1181,15 @@ | |||
font-weight: 600; | |||
color: #333333; | |||
margin-left: 20rpx; | |||
margin-top: 11rpx; | |||
} | |||
.clientStageName { | |||
margin-left: 20rpx; | |||
padding: 5rpx 20rpx; | |||
border: 1px solid #F29819; | |||
border-radius: 32rpx 32rpx 32rpx 0; | |||
color: #F29819; | |||
font-size: 20rpx; | |||
} | |||
} | |||
@@ -90,12 +90,11 @@ | |||
</view> | |||
</view> | |||
<view class="conmsg" v-if="allList.length!=0"> | |||
<view class="conmsg"> | |||
<view class="conmsg-title"> | |||
客户标签 | |||
</view> | |||
<view class="conmsg-msg"> | |||
<view v-for="(item,index) in allList" :key="index"> | |||
<view class=""> | |||
<view class="conmsg-msg-lab" style="border: none;"> | |||
@@ -193,11 +192,16 @@ | |||
console.log(this.userInfo.showPhoneStatus) | |||
// 先调用借口查询数据 | |||
this.customerId = e.id | |||
this.getdetail() | |||
this.initPage() | |||
}, | |||
methods: { | |||
initPage() { | |||
this.getdetail() | |||
// 获取置业需求 | |||
this.getListByType() | |||
}, | |||
Edittag(item, item1, index, i) { | |||
if (this.allList[index].children[i].selected == 0) { | |||
this.allList[index].children[i].selected = 1; | |||
} else { | |||
@@ -241,8 +245,6 @@ | |||
this.selectform.level = 'A'; | |||
this.form.level = 1; | |||
} | |||
// 获取置业需求 | |||
this.getListByType() | |||
}) | |||
}, | |||
@@ -252,7 +254,7 @@ | |||
customerId: this.customerId | |||
}) | |||
.then(res => { | |||
// console.log(res) | |||
console.log(res, '123123123123') | |||
res.forEach(item1 => { | |||
item1.children.map(item => { | |||
if (item.isInterval == 0) { | |||
@@ -95,11 +95,12 @@ | |||
totalRecord: '', | |||
freeList: [], | |||
customerType: [], | |||
customerId: '' | |||
customerId: '', | |||
orgCode: '', | |||
} | |||
}, | |||
onShow() { | |||
this.orgCode = uni.getStorageSync('orgCode') | |||
}, | |||
onLoad(e) { | |||
this.customerId = e.id | |||
@@ -174,6 +175,7 @@ | |||
"stageCode": this.stateList[this.screen.state].stageCode, | |||
"stageName": this.stateList[this.screen.state].stageName, | |||
"remarks": this.screen.con, | |||
orgCode: this.orgCode, | |||
words, | |||
// "settingTime":"", | |||
"agentRelationPo": { | |||
@@ -55,13 +55,13 @@ | |||
</view> | |||
<view class="right" v-if="item.recording!=0"> | |||
<view style="margin-right: 6rpx;color: red;">{{item.receptionStatusName.slice(0, 2) || ''}}</view> | |||
<view v-if="item.receptionStatusName" style="margin-right: 6rpx;color: red;">{{item.receptionStatusName.slice(0, 2) || ''}}</view> | |||
<text style="margin-right: 6rpx;" v-if="item.receptionStatusName"> |</text> | |||
<view v-if="methodsisshow"> | |||
<text style="margin-right: 6rpx;color: red;" v-if="item.taboo==1">违禁</text> | |||
<text style="margin-right: 6rpx;" v-if="item.taboo==1"> |</text> | |||
</view> | |||
<view style="margin-right: 6rpx;">{{item.validInvalidName.slice(0, 2)||''}}</view> | |||
<view v-if="item.validInvalidName" style="margin-right: 6rpx;">{{item.validInvalidName.slice(0, 2)||''}}</view> | |||
<text style="margin-right: 6rpx;" v-if="item.validInvalidName"> |</text> | |||
<view v-if="item.markAdvisor==0" class="">未标记</view> | |||
<view v-if="item.markAdvisor==1" class="">已标记</view> | |||
@@ -108,7 +108,7 @@ | |||
所属顾问 | |||
</view> | |||
<view class="screen-sel" @click="selectshow = true"> | |||
<u-input v-model="screen.counselorName" input-align="right" type="text" placeholder='请选择' | |||
<input v-model="screen.counselorName" type="text" placeholder='请选择' | |||
class="screen-inp" disabled /> | |||
<image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image> | |||
</view> | |||
@@ -507,11 +507,11 @@ | |||
}, | |||
//获取顾问列表 | |||
getFreeList() { | |||
this.$u.get("/zkAgentPool/freeList?itemId=" + this.buildingID).then(res => { | |||
this.$u.post("/cusLvStatistics/selectAllAccountIdByHouseId", {houseId: this.buildingID}).then(res => { | |||
this.freeList = res; | |||
this.freeList.forEach(item => { | |||
item.label = item.name; | |||
item.value = item.agentId | |||
item.value = item.accountId | |||
}) | |||
}) | |||
}, | |||
@@ -521,7 +521,7 @@ | |||
}, | |||
actionSelectCallback(e) { | |||
this.screen.agentId = e[0].value; | |||
this.screenShow = false; | |||
this.screen.counselorName = e[0].label | |||
this.recordList = []; | |||
this.nextPage = 1; | |||
this.getMyCustom(); | |||
@@ -864,6 +864,7 @@ | |||
.screen-counselor { | |||
display: flex; | |||
align-items: center; | |||
height: 106rpx; | |||
// padding: 40rpx 30rpx 36rpx 30rpx; | |||
padding: 0 30rpx; | |||
@@ -871,7 +872,6 @@ | |||
border-bottom: 1px solid #EEEEEE; | |||
.screen-text { | |||
margin: 40rpx 0 36rpx 0; | |||
font-size: 30rpx; | |||
font-weight: 400; | |||
color: #333333; | |||
@@ -880,21 +880,20 @@ | |||
.screen-sel { | |||
display: flex; | |||
justify-content: space-between; | |||
justify-content: flex-end; | |||
align-items: center; | |||
width: 500rpx; | |||
margin-left: 60rpx; | |||
.screen-sel-img { | |||
flex-shrink: 0; | |||
margin: 40rpx 0 36rpx 0; | |||
width: 14rpx; | |||
height: 30rpx; | |||
} | |||
.screen-inp { | |||
margin-top: 20rpx; | |||
padding: 0 20rpx; | |||
flex-grow: 1; | |||
text-align: right; | |||
} | |||
} | |||
} | |||
@@ -104,8 +104,8 @@ | |||
<view class="screen-text"> | |||
所属顾问 | |||
</view> | |||
<view class="screen-sel" @click="selectshow = true"> | |||
<u-input input-align="right" v-model="screen.agentIdtext" type="text" placeholder='请选择' class="screen-inp" | |||
<view class="screen-sel" @tap="selectshow = true"> | |||
<input v-model="screen.agentIdtext" type="text" placeholder="请选择" class="screen-inp" | |||
disabled /> | |||
<image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image> | |||
</view> | |||
@@ -114,8 +114,8 @@ | |||
<view class="screen-text"> | |||
客户标签 | |||
</view> | |||
<view class="screen-sel" @click="selectTipshow = true"> | |||
<u-input v-model="screen.cunsumerTips" type="text" placeholder='请选择' input-align="right" class="screen-inp" | |||
<view class="screen-sel" @tap="selectTipshow = true"> | |||
<input v-model="screen.cunsumerTips" type="text" placeholder="请选择" class="screen-inp" | |||
disabled /> | |||
<image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image> | |||
</view> | |||
@@ -320,7 +320,7 @@ | |||
soltishow: false, | |||
staTime: '', | |||
endtime: '', | |||
orderBy: '', | |||
orderBy: '', // 排序的id | |||
permissions: { | |||
commonly1: false, | |||
commonly2: false | |||
@@ -351,16 +351,16 @@ | |||
}, | |||
onPullDownRefresh() { | |||
this.nextPage = 1; | |||
this.recordList = [] | |||
this.resetFilter() | |||
this.reset() | |||
this.getFreeList() | |||
this.getfindKeywordsList() | |||
this.getFromSource(); | |||
this.getMyCustom(); | |||
setTimeout(() => { | |||
uni.stopPullDownRefresh() | |||
}, 3000) | |||
}, 2000) | |||
}, | |||
onShow() { | |||
@@ -393,11 +393,26 @@ | |||
} | |||
}, | |||
methods: { | |||
// 过滤 | |||
resetFilter() { | |||
this.sortFilter = '排序'; | |||
this.orderBy = null; | |||
this.arriveFilter = '到访时间'; | |||
this.staTime = ''; | |||
this.endtime = ''; | |||
this.nextPage = 1; | |||
this.activeTotal = 5; | |||
this.recordList = []; | |||
this.receptionDuration = '接待时长'; | |||
this.activeTotal2 = 0; | |||
}, | |||
// 获取客户来源 | |||
getFromSource() { | |||
this.$u.get('customer/findCustomerSourceList', { | |||
houseId: this.buildingID | |||
}).then(res => { | |||
}).then(res => { | |||
console.log('我进来了') | |||
this.list = res | |||
}) | |||
@@ -555,11 +570,11 @@ | |||
//获取顾问列表 | |||
getFreeList() { | |||
this.freeList = [] | |||
this.$u.get("/zkAgentPool/freeList?itemId=" + this.buildingID).then(res => { | |||
this.$u.post("/cusLvStatistics/selectAllAccountIdByHouseId", {houseId: this.buildingID}).then(res => { | |||
this.freeList = res; | |||
this.freeList.forEach(item => { | |||
item.label = item.name; | |||
item.value = item.agentId | |||
item.value = item.accountId | |||
}) | |||
}) | |||
}, | |||
@@ -969,6 +984,7 @@ | |||
border-bottom: 1px solid #E0E0E0; | |||
.screen-text { | |||
flex-shrink: 0; | |||
margin: 40rpx 0 36rpx 0; | |||
font-size: 30rpx; | |||
font-weight: 400; | |||
@@ -977,9 +993,10 @@ | |||
} | |||
.screen-sel { | |||
flex-grow: 1; | |||
display: flex; | |||
justify-content: space-between; | |||
width: 500rpx; | |||
justify-content: flex-end; | |||
align-items: center; | |||
margin-left: 60rpx; | |||
.screen-sel-img { | |||
@@ -990,9 +1007,8 @@ | |||
} | |||
.screen-inp { | |||
margin-top: 20rpx; | |||
padding: 0 20rpx; | |||
flex-grow: 1; | |||
text-align: right; | |||
} | |||
} | |||
} | |||
@@ -464,9 +464,11 @@ | |||
this.methodsisshow = true; | |||
} | |||
if (this.userInfo.zkProperties.length == 1) { | |||
console.log('asdklajkl') | |||
this.buildingID = uni.getStorageSync('buildingID').id; | |||
this.buildingname = uni.getStorageSync('buildingID').name; | |||
this.buildingishow = false; | |||
uni.setStorageSync('orgCode', this.userInfo.zkProperties[0].orgCode) | |||
} else { | |||
this.buildingishow = true; | |||
this.buildingname = uni.getStorageSync('buildingID').name; | |||
@@ -490,6 +492,8 @@ | |||
this.initworkThisWeek() | |||
this.initrealTimeStatistics() | |||
// this.sendLog() | |||
console.log(this.lpanlist, '123uio123uyoiasdcfnmklsdfm;kl ') | |||
}, | |||
methods: { | |||
indexStatus(i){ | |||
@@ -754,6 +758,7 @@ | |||
name: e[0].label | |||
} | |||
uni.setStorageSync("buildingID", lopan); //楼盘id写入缓存 | |||
uni.setStorageSync("orgCode", e[0].orgCode); //楼盘id写入缓存 | |||
this.initworkThisWeek() | |||
this.initrealTimeStatistics() | |||
this.waitForOperation() | |||
@@ -17,7 +17,7 @@ | |||
<view class="infozuochiud1">{{item.jbaName}}</view> | |||
</view> | |||
<view class="infoyou"> | |||
<view class="infoyouchiud2">未学习</view> | |||
<view class="infoyouchiud2">{{ item.studyStatus }}</view> | |||
</view> | |||
</view> | |||
<view class="footerinfo"> | |||
@@ -272,8 +272,8 @@ | |||
}, | |||
addHot(){ | |||
// console.log('30') | |||
this.$u.get('/addtodigest/addHeat',{ | |||
id:this.customerId | |||
this.$u.post('/zkstudyrecord',{ | |||
targetId: this.customerId | |||
}) | |||
.then(res=>{ | |||
// console.log(res) | |||
@@ -361,8 +361,8 @@ | |||
}, | |||
addHot() { | |||
// console.log('30') | |||
this.$u.get('/addtodigest/addHeat', { | |||
id: this.customerId | |||
this.$u.post('/zkstudyrecord', { | |||
targetId: this.customerId | |||
}) | |||
.then(res => { | |||
// console.log(res) | |||
@@ -873,23 +873,23 @@ | |||
color: #FFFFFF; | |||
border: none; | |||
} | |||
.boxs { | |||
min-height: 100%; | |||
display: flex; | |||
flex-direction: column; | |||
.chat { | |||
flex-grow: 1; | |||
} | |||
.bottomArea { | |||
flex-shrink: 0; | |||
position: sticky; | |||
bottom: 0; | |||
} | |||
} | |||
// 表单 | |||
.tian-view { | |||
width: 570upx; | |||
@@ -30,7 +30,7 @@ | |||
<scroll-view :scroll-top="scrollTop" lower-threshold='100px' @scrolltolower="ltolower()" upper-threshold='40px' | |||
@scrolltoupper="rolltoupper()" :scroll-into-view="scrollId" scroll-y="true" class="zhuti text scroll-Y"> | |||
<!-- 聊天记录--> | |||
<view class="dialog-block" @click="close()" v-for="(dialog,i) in dialogList" :key="i"> | |||
<view class="dialog-block" @click="close()" v-for="(dialog,i) in dialogList" :key="i"> | |||
<view :id="'dialog'+i" class="fileName">录音文件</view> | |||
<view class="text" :id="'dialog'+csdFileindex+'text'+item.bg" | |||
:class="{active: item.bg < playNow && item.ed > playNow && i==0}" | |||
@@ -153,6 +153,7 @@ | |||
</scroll-view> | |||
<view class="bottombox"> | |||
<!-- 播放块 --> | |||
<!-- <yz-audio ref="zyAudio"></yz-audio> --> | |||
<view class="bottomhead"> | |||
<view class="audio-play" @tap="changePlayState"> | |||
<image class="image" mode="widthFix" | |||
@@ -1804,6 +1805,7 @@ | |||
//录音实例 | |||
creatAudio() { | |||
this.innerAudioContext = uni.createInnerAudioContext(); | |||
// this.$refs.zyAudio.setSrc(this.recordPath) | |||
if (uni.getStorageSync('entrance') == 1) { | |||
this.innerAudioContext.autoplay = false; | |||
} else { | |||
@@ -2751,18 +2753,17 @@ | |||
padding: 20rpx; | |||
border: 1rpx solid #E4F0FF; | |||
} | |||
.scroll-Y .text.active .content { | |||
color: #38FFF1; | |||
position: relative; | |||
} | |||
.scroll-Y .text.active[data-speaker="2"] .content, | |||
.scroll-Y .text.active[data-speaker="4"] .content, | |||
.scroll-Y .text.active[data-speaker="6"] .content { | |||
color: #FF7538 !important; | |||
position: relative; | |||
} | |||
</style> |
@@ -2,7 +2,8 @@ | |||
// const base = 'http://8kdmng.natappfree.cc' ;// 佳豪 | |||
// const base = 'http://192.168.31.134:9999' ;// 佳豪 | |||
// const base = 'http://192.168.31.167:9999' // 长龙 | |||
const base = 'https://zanyong.hfju.com';// 正式 | |||
const base = 'https://zanyong.hfju.com';// 正式 AI销管 | |||
// const base = 'https://hxz.quhouse.com';// 正式 AI销讲助手 | |||
// http.js使用 | |||
const baseUrl = `${base}/autoSR/api`; | |||