提交 08ea5e69 编写于 作者: guangjun.yang's avatar guangjun.yang

问题修改等

上级 3a0ecdaa
......@@ -4,7 +4,8 @@ const common = {
// 问题归类
stickerCacheMap: {
}
},
isFromAssignTask: false,
},
mutations: {
CHANGE_TOKEN: (state, data) => {
......@@ -13,6 +14,9 @@ const common = {
SET_STICKER_CACHE_MAP: (state, chcheMap) => {
state.stickerCacheMap[chcheMap.key] = chcheMap.idList;
},
SET_IS_FROM_ASSIGN_TASK: (state, status) => {
state.isFromAssignTask = status;
}
},
actions: {
changeToken({ commit }, tokenData) {
......
......@@ -2,6 +2,7 @@
const getters = {
_token: state => state.common._token,
stickerCacheMap: state => state.common.stickerCacheMap,
isFromAssignTask: state => state.common.isFromAssignTask,
}
export default getters
......@@ -3,6 +3,27 @@ const vueFilter = {
if (!value) return '';
return new Date(value).format("yyyy-MM-dd hh:mm:ss");
},
continueTimesFilter: (value) => {
if (!value) return '';
var duration = value / 1000;
var s = Math.floor(duration % 60).toString();
if (s.length < 2) {
s = '0' + s;
}
var m = Math.floor((duration % 3600) / 60).toString();
if (m.length < 2) {
m = '0' + m;
}
var h = Math.floor(duration / 60 / 60).toString();
if (h.length < 2) {
h = '0' + h;
}
if (parseInt(h) >= 1) {
return h + '时' + m + '分' + s + '秒';
} else {
return m + '分' + s + '秒';
}
},
liveFilter: (value) => {
if (value.liveStatus == 1) {
return '未开始'
......@@ -201,6 +222,15 @@ const vueFilter = {
}
// $time.innerHTML = result;
return result;
}
},
// 将字符串截短至指定长度,并用在最后追加特定字符串(例如:...)
shortName: function (value, length = 10, append = '...') {
if (value && value.length > length) {
return value.substring(0, length) + append
} else {
return value
}
},
}
export default vueFilter
\ No newline at end of file
......@@ -22,10 +22,10 @@
<div class="desc">
<div class="top">
<span class="name">{{session.toName}}</span>
<span class="time small">{{session.lastMsgTime | timeFormat}}</span>
<span class="time small">{{session.timestampStr}}</span>
</div>
<div class="bottom">
<span>{{session.text}}</span>
<span>{{session.text | shortName}}</span>
<!-- <span>{{session.lastMsgContent}}</span> -->
<span
v-show="session.status !=3 && currentTaskLogId != session.taskLogId && session.unreadCount"
......@@ -46,7 +46,7 @@
<div class="c-header-l">
<img :src="currentSession.avatarImageUrl" alt />
<span class="name">{{doctorInfo.name}}</span>
<span class="time-tip">当前会话时长:3分08秒</span>
<span class="time-tip">当前会话时长:{{currentContinueTimes | continueTimesFilter}}</span>
</div>
<!-- <span class="close-btn">结束会话</span> -->
</section>
......@@ -62,7 +62,7 @@
<img :src="item.avatarImg" alt />
</div>
<div class="msg-item-detail">
<span class="mid-time">{{item.timestamp | timeFormat}}</span>
<span class="mid-time">{{item.timestampStr}}</span>
<div v-if="item.showType == 1" class="mid-text-wrapper" style="max-width: 520px;">
<img v-show="item.sendFlag" src="../../../assets/image/IM/icon-no-send.png" alt />
<div class="mid-text">{{item.text}}</div>
......@@ -75,7 +75,7 @@
<div v-if="item.showType == 3" class="mid-pdf" @click="openPDF(item)">
<div class="midp-left">
<span class="name">{{item.text}}</span>
<span class="size">{{item.size}} MB</span>
<span class="size">{{fileSizeChange(item.size)}}</span>
</div>
<div class="midp-icon">
<img src="../../../assets/image/IM/icon-pdf.png" alt />
......@@ -93,7 +93,7 @@
</article>
</section>
<section class="c-bottom">
<el-input type="textarea" placeholder="请输入内容" v-model="sendText"></el-input>
<el-input type="textarea" placeholder="请输入内容" v-model="sendText" maxlength=499></el-input>
<div class="cb-icon-wrapper">
<el-upload
class="bg-uploader"
......@@ -129,12 +129,12 @@
<el-form ref="linkFormRef" :rules="rules" :model="linkForm" label-width="100px">
<el-form-item label="普通文本">
<el-col :span="20">
<el-input v-model="linkForm.remark" size="small" maxlength="20"></el-input>
<el-input v-model="linkForm.remark" size="small" maxlength="300"></el-input>
</el-col>
</el-form-item>
<el-form-item label="链接文案" prop="info">
<el-col :span="20">
<el-input v-model="linkForm.info" size="small" maxlength="20"></el-input>
<el-input v-model="linkForm.info" size="small" maxlength="100"></el-input>
</el-col>
</el-form-item>
<el-form-item label="链接地址" prop="url">
......@@ -165,19 +165,18 @@
</div>
</template>
<script>
// import { mapGetters } from 'vuex';
import { mapGetters, mapMutations } from 'vuex';
import BreadCrumb from "@/components/breadcrumb.vue";
import { doUpload, getFilePath } from "@/utils/qiniu-util";
import { validateWord } from "@/utils/validate.js";
import { openLoading, closeLoading } from "@/utils/utils";
// import { openLoading, closeLoading } from "@/utils/utils";
import { openLoading, closeLoading, betaHandle, timeHandle } from "@/utils/utils";
import * as commonUtil from "@/utils/utils";
import { getPicaKFAccid, getPhomeDemain } from "@/utils";
import UserInfo from "@/components/IM/user-info.vue";
const CONTAINER_HEIGHT = 700;
let forwardMsgIntervalId = null;
let sessionIntervalId = null;
let currentTimestamp = 0;
let currentContinueTimes = 0;
let continueIntervalId = null;
let _this = null;
......@@ -190,13 +189,14 @@ export default {
return {
curmbFirst: "云鹊客服",
curmbSecond: "当前会话",
// currentTimestamp: 0,
sendText: "",
sessionListData: {
currentTimestamp: 0,
myTaskCount: 0,
sessionList: [],
waitingTaskCount: 0
},
currentContinueTimes: 0,
currentSessionIndex: 0, // 当前会话序号
currentSession: {},
currentTaskLogId: "", // 当前会话ID
......@@ -227,7 +227,7 @@ export default {
},
computed: {
// ...mapGetters(['stickerCacheMap']),
...mapGetters(['isFromAssignTask']),
canSend() {
return !!this.sendText;
}
......@@ -320,6 +320,10 @@ export default {
},
methods: {
//
...mapMutations(['SET_IS_FROM_ASSIGN_TASK']),
// 下拉刷新
loadmore() {
console.log("in loadmore...");
......@@ -452,6 +456,7 @@ export default {
) {
content = JSON.parse(msg.content);
url = content.url;
text = content.name;
showType = 2;
} else {
showType = 1;
......@@ -471,6 +476,11 @@ export default {
const scrollBoxDom = document.querySelector('.scroll-box')
scrollBoxDom.scrollTop = 200000;
});
this.currentContinueTimes = this.sessionListData.currentTimestamp - this.currentSession.handleStartTime;
continueIntervalId && clearInterval(continueIntervalId);
continueIntervalId = setInterval(() => {
this.currentContinueTimes += 1000;
}, 1000);
} else if (directFlag === 2) {
this.messageList.push(...cMessageList);
} else {
......@@ -522,6 +532,7 @@ export default {
fetchOneTask() {
this.GET("/im/session/kf/fetchOneTask").then(res => {
if (res.code === "000000") {
this.SET_IS_FROM_ASSIGN_TASK(true);
this.currentTaskLogId = "";
this.getSessionList();
} else {
......@@ -539,21 +550,27 @@ export default {
if (res.code === "000000") {
console.log("in getSessionList", res);
this.sessionListData = res.data || {
currentTimestamp: 0,
myTaskCount: 0,
sessionList: [],
waitingTaskCount: 0
};
let sLength = this.sessionListData.sessionList.length;
let cIndex = sLength - 1;
if(!this.isFromAssignTask) {
cIndex = 0;
}
// 第一次进入页面
if (sLength && !this.currentTaskLogId) {
// this.currentSession = this.sessionListData.sessionList[0];
// this.currentSessionIndex = 0;
this.currentSession = this.sessionListData.sessionList[sLength - 1];
this.currentSessionIndex = sLength - 1;
this.currentSession = this.sessionListData.sessionList[cIndex];
this.currentSessionIndex = cIndex;
this.currentTaskLogId = this.currentSession.taskLogId;
this.currentToAccId = this.currentSession.toAccId;
this.getDoctorInfo(this.currentToAccId);
this.getMSGHistory(this.currentSession);
this.SET_IS_FROM_ASSIGN_TASK(false);
}
if (sLength) {
this.convertSessions(this.sessionListData.sessionList);
......@@ -582,7 +599,7 @@ export default {
text = cc.title;
// } else if (cc.showType == 18) {
} else {
text = cc.content || "";
text = cc.content || cc.name;
}
// if (cc.showType != 8) {
// text = `${text}`;
......@@ -698,6 +715,7 @@ export default {
// 上传文件
beforeUploadFile(file) {
console.log("file", file);
doUpload(
_this,
file,
......@@ -792,7 +810,12 @@ export default {
});
}
});
}
},
// 文件大小单位转换
fileSizeChange(val) {
return betaHandle(val)
},
},
beforeDestroy() {
......
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
html,body{
height:100%;
}
body,ul,li,a,p,div{padding:0px; margin:0px; font-size:14px;}
#wrap{
overflow: hidden;
width:100%;
}
#main{
height:2944px;
top:0;
position: relative;
}
.page{
width:100%;
margin:0;
}
#page1{
background:#E4E6CE;
}
#page2{
background:#6CE26C;
}
#page3{
background:#BF4938;
}
#page4{
background:#2932E1;
}
</style>
<!-- <script src="js/jquery-1.8.3.js" type="text/javascript" charset="utf-8"></script> -->
</head>
<body>
<div id="wrap">
<div id="main">
<div id="page1" class="page"></div>
<div id="page2" class="page"></div>
<div id="page3" class="page"></div>
<div id="page4" class="page"></div>
</div>
</div>
<script type="text/javascript">
var wrap = document.getElementById("wrap");
var main = document.getElementById("main");
var hei = document.body.clientHeight;
wrap.style.height = hei + "px";
var obj = document.getElementsByTagName("div");
for(var i=0;i<obj.length;i++){
if(obj[i].className == 'page'){
obj[i].style.height = hei + "px";
}
}
//如果不加时间控制,滚动会过度灵敏,一次翻好几屏
var startTime = 0, //翻屏起始时间
endTime = 0,
now = 0;
//浏览器兼容
if ((navigator.userAgent.toLowerCase().indexOf("firefox")!=-1)){
document.addEventListener("DOMMouseScroll",scrollFun,false);
}
else if (document.addEventListener) {
document.addEventListener("mousewheel",scrollFun,false);
}
else if (document.attachEvent) {
document.attachEvent("onmousewheel",scrollFun);
}
else{
document.onmousewheel = scrollFun;
}
//滚动事件处理函数
function scrollFun(event){
startTime = new Date().getTime();
var delta = event.detail || (-event.wheelDelta);
//mousewheel事件中的 “event.wheelDelta” 属性值:返回的如果是正值说明滚轮是向上滚动
//DOMMouseScroll事件中的 “event.detail” 属性值:返回的如果是负值说明滚轮是向上滚动
if ((endTime - startTime) < -1000){
if(delta>0 && parseInt(main.offsetTop) > -(hei*3)){
//向下滚动
now = now - hei;
toPage(now);
}
if(delta<0 && parseInt(main.offsetTop) < 0){
//向上滚动
now = now + hei;
toPage(now);
}
endTime = new Date().getTime();
}
else{
event.preventDefault();
}
}
function toPage(now){
// $("#main").animate({top:(now+'px')},1000); //jquery实现动画效果
setTimeout("main.style.top = now + 'px'",1000); //javascript 实现动画效果
}
</script>
</body>
</html>
......@@ -27,6 +27,7 @@
</div>
</template>
<script>
import { mapGetters, mapMutations } from 'vuex';
import BreadCrumb from "@/components/breadcrumb.vue";
import { doUpload, getFilePath } from "@/utils/qiniu-util";
import { validateWord } from "@/utils/validate.js";
......@@ -73,6 +74,7 @@ export default {
},
methods: {
...mapMutations(['SET_IS_FROM_ASSIGN_TASK']),
// 获取数据
getListData() {
this.loading = true;
......@@ -94,6 +96,7 @@ export default {
getNextSession() {
this.GET('/im/session/kf/fetchOneTask').then((res) => {
if( res.code === '000000') {
this.SET_IS_FROM_ASSIGN_TASK(true);
this.$router.push({ path: `/current-session-list` });
} else {
this.$message({
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册