|
@@ -1,130 +1,130 @@
|
|
<template>
|
|
<template>
|
|
<div class="app-container">
|
|
<div class="app-container">
|
|
|
|
|
|
- <el-select filterable v-model="qwUserId" @change="qwUserChange" placeholder="请选择企微账号" clearable size="small">
|
|
|
|
- <el-option
|
|
|
|
- v-for="item in qwUserList"
|
|
|
|
- :key="item.id"
|
|
|
|
- :label="item.qwUserId"
|
|
|
|
- :value="item.id">
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
-
|
|
|
|
- <div class="imui-center qq-lemon-imui" v-show="showQW">
|
|
|
|
- <lemon-imui class="lemon-slot"
|
|
|
|
- :width="windowWidth"
|
|
|
|
- :height="windowHeight"
|
|
|
|
- :user="UserData"
|
|
|
|
- ref="IMUI"
|
|
|
|
- :contact-contextmenu="contactContextmenu"
|
|
|
|
- :theme="theme"
|
|
|
|
- :hide-menu="hideMenu"
|
|
|
|
- :hide-menu-avatar="hideMenuAvatar"
|
|
|
|
- :hide-message-name="hideMessageName"
|
|
|
|
- :hide-message-time="hideMessageTime"
|
|
|
|
- :messageTimeFormat="messageTimeFormat"
|
|
|
|
- @change-menu="handleChangeMenu"
|
|
|
|
- @pull-messages="handlePullMessages"
|
|
|
|
- @change-contact="handleChangeContact"
|
|
|
|
- @change-conversation="handleChangeConversation"
|
|
|
|
- @message-click="handleMessageClick"
|
|
|
|
- @menu-avatar-click="handleMenuAvatarClick"
|
|
|
|
- @pick-image="handleImageClick"
|
|
|
|
- @send="handleSend">
|
|
|
|
- <template #cover>
|
|
|
|
- <div class="cover">
|
|
|
|
- <!-- <i class="lemon-icon-message"></i>
|
|
|
|
- <p>
|
|
|
|
- <b>自定义封面 Lemon</b>IMUI
|
|
|
|
- </p> -->
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- <template #message-title="contact">
|
|
|
|
- <div>
|
|
|
|
- <div style="display:flex;justify-content:space-between">
|
|
|
|
- <span>{{contact.displayName}}</span>
|
|
|
|
- <span style="font-size:12px;">
|
|
|
|
|
|
+ <el-select filterable v-model="qwUserId" @change="qwUserChange" placeholder="请选择企微账号" clearable size="small">
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in qwUserList"
|
|
|
|
+ :key="item.id"
|
|
|
|
+ :label="item.qwUserId"
|
|
|
|
+ :value="item.id">
|
|
|
|
+ </el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+
|
|
|
|
+ <div class="imui-center qq-lemon-imui" v-show="showQW">
|
|
|
|
+ <lemon-imui class="lemon-slot"
|
|
|
|
+ :width="windowWidth"
|
|
|
|
+ :height="windowHeight"
|
|
|
|
+ :user="UserData"
|
|
|
|
+ ref="IMUI"
|
|
|
|
+ :contact-contextmenu="contactContextmenu"
|
|
|
|
+ :theme="theme"
|
|
|
|
+ :hide-menu="hideMenu"
|
|
|
|
+ :hide-menu-avatar="hideMenuAvatar"
|
|
|
|
+ :hide-message-name="hideMessageName"
|
|
|
|
+ :hide-message-time="hideMessageTime"
|
|
|
|
+ :messageTimeFormat="messageTimeFormat"
|
|
|
|
+ @change-menu="handleChangeMenu"
|
|
|
|
+ @pull-messages="handlePullMessages"
|
|
|
|
+ @change-contact="handleChangeContact"
|
|
|
|
+ @change-conversation="handleChangeConversation"
|
|
|
|
+ @message-click="handleMessageClick"
|
|
|
|
+ @menu-avatar-click="handleMenuAvatarClick"
|
|
|
|
+ @pick-image="handleImageClick"
|
|
|
|
+ @send="handleSend">
|
|
|
|
+ <template #cover>
|
|
|
|
+ <div class="cover">
|
|
|
|
+ <!-- <i class="lemon-icon-message"></i>
|
|
|
|
+ <p>
|
|
|
|
+ <b>自定义封面 Lemon</b>IMUI
|
|
|
|
+ </p> -->
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ <template #message-title="contact">
|
|
|
|
+ <div>
|
|
|
|
+ <div style="display:flex;justify-content:space-between">
|
|
|
|
+ <span>{{contact.displayName}}</span>
|
|
|
|
+ <span style="font-size:12px;">
|
|
<el-button size="mini" @click="openDrawer('right')">侧边栏</el-button>
|
|
<el-button size="mini" @click="openDrawer('right')">侧边栏</el-button>
|
|
-<!-- <span style="cursor:pointer;" @click="openDrawer('right')">-->
|
|
|
|
-<!-- 右侧 |-->
|
|
|
|
-<!-- </span>-->
|
|
|
|
-<!-- <span style="cursor:pointer;" @click="openDrawer('rightInside')">-->
|
|
|
|
-<!-- 右侧内部 |-->
|
|
|
|
-<!-- </span>-->
|
|
|
|
-<!-- <span style="cursor:pointer;" @click="openDrawer('center')">-->
|
|
|
|
-<!-- 居中-->
|
|
|
|
-<!-- </span>-->
|
|
|
|
|
|
+ <!-- <span style="cursor:pointer;" @click="openDrawer('right')">-->
|
|
|
|
+ <!-- 右侧 |-->
|
|
|
|
+ <!-- </span>-->
|
|
|
|
+ <!-- <span style="cursor:pointer;" @click="openDrawer('rightInside')">-->
|
|
|
|
+ <!-- 右侧内部 |-->
|
|
|
|
+ <!-- </span>-->
|
|
|
|
+ <!-- <span style="cursor:pointer;" @click="openDrawer('center')">-->
|
|
|
|
+ <!-- 居中-->
|
|
|
|
+ <!-- </span>-->
|
|
</span>
|
|
</span>
|
|
- </div>
|
|
|
|
- <div v-if="contact.isGroup" class="slot-group-menu">
|
|
|
|
- <span>聊天</span>
|
|
|
|
- <span>公告</span>
|
|
|
|
- <span>相册</span>
|
|
|
|
- <span>文件</span>
|
|
|
|
- <span>活动</span>
|
|
|
|
- <span>设置(左键弹出菜单)</span>
|
|
|
|
- </div>
|
|
|
|
</div>
|
|
</div>
|
|
- </template>
|
|
|
|
-
|
|
|
|
- <template #sidebar-contact-fixedtop="contact">
|
|
|
|
- <div class="slot-contact-fixedtop">
|
|
|
|
- <el-input size="mini" class="slot-search" placeholder="搜索通讯录" />
|
|
|
|
|
|
+ <div v-if="contact.isGroup" class="slot-group-menu">
|
|
|
|
+ <span>聊天</span>
|
|
|
|
+ <span>公告</span>
|
|
|
|
+ <span>相册</span>
|
|
|
|
+ <span>文件</span>
|
|
|
|
+ <span>活动</span>
|
|
|
|
+ <span>设置(左键弹出菜单)</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ <template #sidebar-contact-fixedtop="contact">
|
|
|
|
+ <div class="slot-contact-fixedtop">
|
|
|
|
+ <el-input size="mini" class="slot-search" placeholder="搜索通讯录" />
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ <template #sidebar-message-fixedtop="message">
|
|
|
|
+ <div class="slot-message-fixedtop">
|
|
|
|
+ <el-input size="mini" v-model="contactName" class="slot-search" placeholder="搜索" />
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+
|
|
|
|
+ <template #message-side="contact">
|
|
|
|
+ <div v-if="contact.isGroup" class="slot-group">
|
|
|
|
+ <div class="slot-group-title">群通知</div>
|
|
|
|
+ <div class="slot-group-notice">
|
|
|
|
+ 进群请改备注,格式,工作地点-姓名,请大家配合谢谢
|
|
</div>
|
|
</div>
|
|
- </template>
|
|
|
|
|
|
+ <div class="slot-group-title">群成员</div>
|
|
|
|
+ <div class="slot-group-panel">
|
|
|
|
+ <input class="slot-search" placeholder="搜索群成员" />
|
|
|
|
+ <div class="slot-group-member">
|
|
|
|
+ <div class="avatar"><img src="https://p.qqan.com/up/2020-2/2020022821001845128.jpg"></div>
|
|
|
|
+ <div class="name">像梦一样自由</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="slot-group-member">
|
|
|
|
+ <div class="avatar"><img src="https://p.qqan.com/up/2018-4/15244505348390471.jpg"></div>
|
|
|
|
+ <div class="name">野火</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="slot-group-member">
|
|
|
|
+ <div class="avatar"><img src="https://p.qqan.com/up/2021-1/20211411391666.jpg"></div>
|
|
|
|
+ <div class="name">霸王花</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="slot-group-member">
|
|
|
|
+ <div class="avatar"><img src="https://p.qqan.com/up/2021-1/2021113104111220.jpg"></div>
|
|
|
|
+ <div class="name">森系Style</div>
|
|
|
|
+ </div>
|
|
|
|
|
|
- <template #sidebar-message-fixedtop="message">
|
|
|
|
- <div class="slot-message-fixedtop">
|
|
|
|
- <el-input size="mini" v-model="contactName" class="slot-search" placeholder="搜索" />
|
|
|
|
</div>
|
|
</div>
|
|
- </template>
|
|
|
|
-
|
|
|
|
- <template #message-side="contact">
|
|
|
|
- <div v-if="contact.isGroup" class="slot-group">
|
|
|
|
- <div class="slot-group-title">群通知</div>
|
|
|
|
- <div class="slot-group-notice">
|
|
|
|
- 进群请改备注,格式,工作地点-姓名,请大家配合谢谢
|
|
|
|
- </div>
|
|
|
|
- <div class="slot-group-title">群成员</div>
|
|
|
|
- <div class="slot-group-panel">
|
|
|
|
- <input class="slot-search" placeholder="搜索群成员" />
|
|
|
|
- <div class="slot-group-member">
|
|
|
|
- <div class="avatar"><img src="https://p.qqan.com/up/2020-2/2020022821001845128.jpg"></div>
|
|
|
|
- <div class="name">像梦一样自由</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="slot-group-member">
|
|
|
|
- <div class="avatar"><img src="https://p.qqan.com/up/2018-4/15244505348390471.jpg"></div>
|
|
|
|
- <div class="name">野火</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="slot-group-member">
|
|
|
|
- <div class="avatar"><img src="https://p.qqan.com/up/2021-1/20211411391666.jpg"></div>
|
|
|
|
- <div class="name">霸王花</div>
|
|
|
|
- </div>
|
|
|
|
- <div class="slot-group-member">
|
|
|
|
- <div class="avatar"><img src="https://p.qqan.com/up/2021-1/2021113104111220.jpg"></div>
|
|
|
|
- <div class="name">森系Style</div>
|
|
|
|
- </div>
|
|
|
|
-
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </lemon-imui>
|
|
|
|
- </div>
|
|
|
|
-
|
|
|
|
- <el-dialog :visible.sync="dialogVisible" append-to-body width="35%">
|
|
|
|
- <img style="width:100%;height:auto" :src="dialogImageUrl" alt="" />
|
|
|
|
- </el-dialog>
|
|
|
|
-
|
|
|
|
- <el-dialog :visible.sync="dialogVideoVisible"
|
|
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </lemon-imui>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <el-dialog :visible.sync="dialogVisible" append-to-body width="35%">
|
|
|
|
+ <img style="width:100%;height:auto" :src="dialogImageUrl" alt="" />
|
|
|
|
+ </el-dialog>
|
|
|
|
+
|
|
|
|
+ <el-dialog :visible.sync="dialogVideoVisible"
|
|
:close-on-click-modal="false"
|
|
:close-on-click-modal="false"
|
|
:destroy-on-close="true"
|
|
:destroy-on-close="true"
|
|
:width="aplayer.pWidth"
|
|
:width="aplayer.pWidth"
|
|
:height="aplayer.height"
|
|
:height="aplayer.height"
|
|
@close="dialogVideoVisible=false"
|
|
@close="dialogVideoVisible=false"
|
|
ref="player">
|
|
ref="player">
|
|
- <videoPlayer :width="aplayer.width" :height="aplayer.height" :videoWidth="aplayer.videoWidth" :videoHeight="aplayer.videoHeight" :vid="aplayer.vid" :autoplay="true"
|
|
|
|
- :source="dialogVideoUrl" :cover="dialogVideoCover" ref="player"></videoPlayer>
|
|
|
|
- </el-dialog>
|
|
|
|
|
|
+ <videoPlayer :width="aplayer.width" :height="aplayer.height" :videoWidth="aplayer.videoWidth" :videoHeight="aplayer.videoHeight" :vid="aplayer.vid" :autoplay="true"
|
|
|
|
+ :source="dialogVideoUrl" :cover="dialogVideoCover" ref="player"></videoPlayer>
|
|
|
|
+ </el-dialog>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
@@ -237,11 +237,11 @@ export default {
|
|
windowWidth: document.documentElement.clientWidth*0.6, //实时屏幕宽度
|
|
windowWidth: document.documentElement.clientWidth*0.6, //实时屏幕宽度
|
|
windowHeight: document.documentElement.clientHeight*0.7, //实时屏幕高度
|
|
windowHeight: document.documentElement.clientHeight*0.7, //实时屏幕高度
|
|
queryParams: {
|
|
queryParams: {
|
|
- pageNum: 1,
|
|
|
|
- pageSize: 10,
|
|
|
|
- conversationId: null,
|
|
|
|
- userId:null
|
|
|
|
- },
|
|
|
|
|
|
+ pageNum: 1,
|
|
|
|
+ pageSize: 10,
|
|
|
|
+ conversationId: null,
|
|
|
|
+ userId:null
|
|
|
|
+ },
|
|
};
|
|
};
|
|
},
|
|
},
|
|
created(){
|
|
created(){
|
|
@@ -273,37 +273,37 @@ export default {
|
|
this.showQW=true;
|
|
this.showQW=true;
|
|
|
|
|
|
const contactData1 = {
|
|
const contactData1 = {
|
|
- id: "contact-1",
|
|
|
|
- displayName: "工作协作群",
|
|
|
|
- avatar: "http://upload.qqbodys.com/img/weixin/20170804/ji5qxg1am5ztm.jpg",
|
|
|
|
- index: "[1]群组",
|
|
|
|
- unread: 0,
|
|
|
|
- lastSendTime: 1566047865417,
|
|
|
|
- lastContent: "2",
|
|
|
|
|
|
+ id: "contact-1",
|
|
|
|
+ displayName: "工作协作群",
|
|
|
|
+ avatar: "http://upload.qqbodys.com/img/weixin/20170804/ji5qxg1am5ztm.jpg",
|
|
|
|
+ index: "[1]群组",
|
|
|
|
+ unread: 0,
|
|
|
|
+ lastSendTime: 1566047865417,
|
|
|
|
+ lastContent: "2",
|
|
};
|
|
};
|
|
const contactData2 = {
|
|
const contactData2 = {
|
|
- id: "contact-2",
|
|
|
|
- displayName: "自定义内容",
|
|
|
|
- avatar: "http://upload.qqbodys.com/img/weixin/20170807/jibfvfd00npin.jpg",
|
|
|
|
- //index: "Z",
|
|
|
|
- click(next) {
|
|
|
|
- next();
|
|
|
|
- },
|
|
|
|
- renderContainer: () => {
|
|
|
|
- return <h1 style="text-indent:20px">自定义页面</h1>;
|
|
|
|
- },
|
|
|
|
- lastSendTime: 1345209465000,
|
|
|
|
- lastContent: "12312",
|
|
|
|
- unread: 2,
|
|
|
|
|
|
+ id: "contact-2",
|
|
|
|
+ displayName: "自定义内容",
|
|
|
|
+ avatar: "http://upload.qqbodys.com/img/weixin/20170807/jibfvfd00npin.jpg",
|
|
|
|
+ //index: "Z",
|
|
|
|
+ click(next) {
|
|
|
|
+ next();
|
|
|
|
+ },
|
|
|
|
+ renderContainer: () => {
|
|
|
|
+ return <h1 style="text-indent:20px">自定义页面</h1>;
|
|
|
|
+ },
|
|
|
|
+ lastSendTime: 1345209465000,
|
|
|
|
+ lastContent: "12312",
|
|
|
|
+ unread: 2,
|
|
};
|
|
};
|
|
const contactData3 = {
|
|
const contactData3 = {
|
|
- id: "contact-3",
|
|
|
|
- displayName: "铁牛",
|
|
|
|
- avatar: "http://upload.qqbodys.com/img/weixin/20170803/jiq4nzrkrnd0e.jpg",
|
|
|
|
- index: "T",
|
|
|
|
- unread: 32,
|
|
|
|
- lastSendTime: 3,
|
|
|
|
- lastContent: "你好123",
|
|
|
|
|
|
+ id: "contact-3",
|
|
|
|
+ displayName: "铁牛",
|
|
|
|
+ avatar: "http://upload.qqbodys.com/img/weixin/20170803/jiq4nzrkrnd0e.jpg",
|
|
|
|
+ index: "T",
|
|
|
|
+ unread: 32,
|
|
|
|
+ lastSendTime: 3,
|
|
|
|
+ lastContent: "你好123",
|
|
};
|
|
};
|
|
const IMUI = this.$refs.IMUI;
|
|
const IMUI = this.$refs.IMUI;
|
|
|
|
|
|
@@ -359,63 +359,63 @@ export default {
|
|
|
|
|
|
methods: {
|
|
methods: {
|
|
initSocket(appKey) {
|
|
initSocket(appKey) {
|
|
- let that=this;
|
|
|
|
- if(!!this.qwIm.socket){
|
|
|
|
- this.qwIm.initSocket(appKey,true);
|
|
|
|
- // 监听socket连接
|
|
|
|
- this.qwIm.socket.onopen = function() {
|
|
|
|
- console.log("socket 连接成功...");
|
|
|
|
- };
|
|
|
|
- this.qwIm.socket.onerror = function() {
|
|
|
|
- console.log("连接错误")
|
|
|
|
- };
|
|
|
|
- // 监听socket消息
|
|
|
|
- const IMUI = this.$refs.IMUI;
|
|
|
|
- this.qwIm.socket.onmessage = function(res) {
|
|
|
|
- var data=JSON.parse(res.data);
|
|
|
|
- console.log("收到服务端内容", JSON.stringify(data));
|
|
|
|
- if(data.cmd=="heartbeat"){ //收到心跳数据不处理
|
|
|
|
- console.log("heartbeat");
|
|
|
|
- }
|
|
|
|
- //接收消息
|
|
|
|
- if(data.cmd=="receiveMsg"){
|
|
|
|
- var msgData=JSON.parse(data.data);
|
|
|
|
- console.log("收到消息:>>>>>",msgData)
|
|
|
|
- if(!IMUI.hasConversation(msgData.toContactId)){ //收到新消息时是最新的会话,添加该会话
|
|
|
|
- let queryParams={conversationId:msgData.toContactId,userId:that.qwUser.userId};
|
|
|
|
- getConversation(queryParams).then(response => {
|
|
|
|
- if(response.code==200){
|
|
|
|
- var conversation=response.data;
|
|
|
|
- IMUI.appendConversation(conversation);
|
|
|
|
- that.appendMessageAction(msgData);
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- }else{
|
|
|
|
- that.appendMessageAction(msgData);
|
|
|
|
- let conversation=IMUI.findConversation(msgData.toContactId);
|
|
|
|
- IMUI.topPopConversations(conversation);
|
|
|
|
- let queryParams={conversationId:msgData.toContactId,userId:that.qwUser.id};
|
|
|
|
- // getConversation(queryParams).then(response => {
|
|
|
|
- // if(response.code==200){
|
|
|
|
- // var conversation=response.data;
|
|
|
|
- // var unread=conversation.unread;
|
|
|
|
- // if(!unread){
|
|
|
|
- // conversation.unread=1;
|
|
|
|
- // }else{
|
|
|
|
- // conversation.unread+=1;
|
|
|
|
- // }
|
|
|
|
- // IMUI.topPopConversations(conversation);
|
|
|
|
- //
|
|
|
|
- // }
|
|
|
|
- // });
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- };
|
|
|
|
- //监听socket重连
|
|
|
|
- this.qwIm.socket.onreconnect = function(res) {
|
|
|
|
- console.log("socket 断线重连...")
|
|
|
|
- };
|
|
|
|
- }
|
|
|
|
|
|
+ let that=this;
|
|
|
|
+ if(!!this.qwIm.socket){
|
|
|
|
+ this.qwIm.initSocket(appKey,true);
|
|
|
|
+ // 监听socket连接
|
|
|
|
+ this.qwIm.socket.onopen = function() {
|
|
|
|
+ console.log("socket 连接成功...");
|
|
|
|
+ };
|
|
|
|
+ this.qwIm.socket.onerror = function() {
|
|
|
|
+ console.log("连接错误")
|
|
|
|
+ };
|
|
|
|
+ // 监听socket消息
|
|
|
|
+ const IMUI = this.$refs.IMUI;
|
|
|
|
+ this.qwIm.socket.onmessage = function(res) {
|
|
|
|
+ var data=JSON.parse(res.data);
|
|
|
|
+ console.log("收到服务端内容", JSON.stringify(data));
|
|
|
|
+ if(data.cmd=="heartbeat"){ //收到心跳数据不处理
|
|
|
|
+ console.log("heartbeat");
|
|
|
|
+ }
|
|
|
|
+ //接收消息
|
|
|
|
+ if(data.cmd=="receiveMsg"){
|
|
|
|
+ var msgData=JSON.parse(data.data);
|
|
|
|
+ console.log("收到消息:>>>>>",msgData)
|
|
|
|
+ if(!IMUI.hasConversation(msgData.toContactId)){ //收到新消息时是最新的会话,添加该会话
|
|
|
|
+ let queryParams={conversationId:msgData.toContactId,userId:that.qwUser.userId};
|
|
|
|
+ getConversation(queryParams).then(response => {
|
|
|
|
+ if(response.code==200){
|
|
|
|
+ var conversation=response.data;
|
|
|
|
+ IMUI.appendConversation(conversation);
|
|
|
|
+ that.appendMessageAction(msgData);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }else{
|
|
|
|
+ that.appendMessageAction(msgData);
|
|
|
|
+ let conversation=IMUI.findConversation(msgData.toContactId);
|
|
|
|
+ IMUI.topPopConversations(conversation);
|
|
|
|
+ let queryParams={conversationId:msgData.toContactId,userId:that.qwUser.id};
|
|
|
|
+ // getConversation(queryParams).then(response => {
|
|
|
|
+ // if(response.code==200){
|
|
|
|
+ // var conversation=response.data;
|
|
|
|
+ // var unread=conversation.unread;
|
|
|
|
+ // if(!unread){
|
|
|
|
+ // conversation.unread=1;
|
|
|
|
+ // }else{
|
|
|
|
+ // conversation.unread+=1;
|
|
|
|
+ // }
|
|
|
|
+ // IMUI.topPopConversations(conversation);
|
|
|
|
+ //
|
|
|
|
+ // }
|
|
|
|
+ // });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ //监听socket重连
|
|
|
|
+ this.qwIm.socket.onreconnect = function(res) {
|
|
|
|
+ console.log("socket 断线重连...")
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
},
|
|
},
|
|
@@ -438,49 +438,49 @@ export default {
|
|
|
|
|
|
getContacts(){
|
|
getContacts(){
|
|
getContactsByUser(this.qwUser.id).then(response => {
|
|
getContactsByUser(this.qwUser.id).then(response => {
|
|
- this.contactData = response.data;
|
|
|
|
- this.$refs.IMUI.initContacts(this.contactData);
|
|
|
|
- //console.log("qxj request contactData:"+JSON.stringify(this.contactData));
|
|
|
|
|
|
+ this.contactData = response.data;
|
|
|
|
+ this.$refs.IMUI.initContacts(this.contactData);
|
|
|
|
+ //console.log("qxj request contactData:"+JSON.stringify(this.contactData));
|
|
});
|
|
});
|
|
},
|
|
},
|
|
getConversation(){
|
|
getConversation(){
|
|
let that=this;
|
|
let that=this;
|
|
const IMUI = this.$refs.IMUI;
|
|
const IMUI = this.$refs.IMUI;
|
|
getConversations(this.qwUser.id).then(response => {
|
|
getConversations(this.qwUser.id).then(response => {
|
|
- this.conversationData = response.data;
|
|
|
|
- IMUI.initConversations(response.data);
|
|
|
|
- var fstConversation=this.conversationData[0];
|
|
|
|
- // console.log("qxj fstConversation:"+JSON.stringify(fstConversation));
|
|
|
|
- if(fstConversation) {
|
|
|
|
- IMUI.changeContact(fstConversation.conversationId);
|
|
|
|
- // setTimeout(() => {
|
|
|
|
- // IMUI.changeContact(1688856679458971);
|
|
|
|
- // }, 500);
|
|
|
|
- }
|
|
|
|
- //console.log("qxj request conversation:"+JSON.stringify(response.data));
|
|
|
|
|
|
+ this.conversationData = response.data;
|
|
|
|
+ IMUI.initConversations(response.data);
|
|
|
|
+ var fstConversation=this.conversationData[0];
|
|
|
|
+ // console.log("qxj fstConversation:"+JSON.stringify(fstConversation));
|
|
|
|
+ if(fstConversation) {
|
|
|
|
+ IMUI.changeContact(fstConversation.conversationId);
|
|
|
|
+ // setTimeout(() => {
|
|
|
|
+ // IMUI.changeContact(1688856679458971);
|
|
|
|
+ // }, 500);
|
|
|
|
+ }
|
|
|
|
+ //console.log("qxj request conversation:"+JSON.stringify(response.data));
|
|
});
|
|
});
|
|
},
|
|
},
|
|
messageTimeFormat(time) {
|
|
messageTimeFormat(time) {
|
|
return this.friendlyDate(time);
|
|
return this.friendlyDate(time);
|
|
},
|
|
},
|
|
changeTheme() {
|
|
changeTheme() {
|
|
- this.theme = this.theme == "default" ? "blue" : "default";
|
|
|
|
|
|
+ this.theme = this.theme == "default" ? "blue" : "default";
|
|
},
|
|
},
|
|
scrollToTop() {
|
|
scrollToTop() {
|
|
document.body.scrollIntoView();
|
|
document.body.scrollIntoView();
|
|
},
|
|
},
|
|
openDrawer(position) {
|
|
openDrawer(position) {
|
|
- const IMUI = this.$refs.IMUI;
|
|
|
|
- const params = {
|
|
|
|
- position,
|
|
|
|
- render: contact => {
|
|
|
|
- return (
|
|
|
|
- <div style="padding:15px">
|
|
|
|
- <h5>{contact.displayName}</h5>
|
|
|
|
- <span style="cursor:pointer;" on-click={IMUI.closeDrawer}>关闭侧边栏</span>
|
|
|
|
- </div>
|
|
|
|
- );
|
|
|
|
- },
|
|
|
|
|
|
+ const IMUI = this.$refs.IMUI;
|
|
|
|
+ const params = {
|
|
|
|
+ position,
|
|
|
|
+ render: contact => {
|
|
|
|
+ return (
|
|
|
|
+ <div style="padding:15px">
|
|
|
|
+ <h5>{contact.displayName}</h5>
|
|
|
|
+ <span style="cursor:pointer;" on-click={IMUI.closeDrawer}>关闭侧边栏</span>
|
|
|
|
+ </div>
|
|
|
|
+ );
|
|
|
|
+ },
|
|
};
|
|
};
|
|
// if (position == "center") {
|
|
// if (position == "center") {
|
|
// params.width = "50%";
|
|
// params.width = "50%";
|
|
@@ -492,18 +492,18 @@ export default {
|
|
IMUI.openDrawer(params);
|
|
IMUI.openDrawer(params);
|
|
},
|
|
},
|
|
handlePullMessages(contact, next,instance) {
|
|
handlePullMessages(contact, next,instance) {
|
|
- const { IMUI } = this.$refs;
|
|
|
|
- let isEnd = false;
|
|
|
|
- getMessageList(this.queryParams).then(response => {
|
|
|
|
- if(response.code==200){
|
|
|
|
- isEnd=response.data.isLastPage;
|
|
|
|
- next(response.data.list, isEnd);
|
|
|
|
- if(!isEnd){
|
|
|
|
- pages[contact.conversationId]++;
|
|
|
|
- this.queryParams.pageNum=pages[contact.conversationId];
|
|
|
|
- this.queryParams.userId = this.qwUser.id
|
|
|
|
- }
|
|
|
|
|
|
+ const { IMUI } = this.$refs;
|
|
|
|
+ let isEnd = false;
|
|
|
|
+ getMessageList(this.queryParams).then(response => {
|
|
|
|
+ if(response.code==200){
|
|
|
|
+ isEnd=response.data.isLastPage;
|
|
|
|
+ next(response.data.list, isEnd);
|
|
|
|
+ if(!isEnd){
|
|
|
|
+ pages[contact.conversationId]++;
|
|
|
|
+ this.queryParams.pageNum=pages[contact.conversationId];
|
|
|
|
+ this.queryParams.userId = this.qwUser.id
|
|
}
|
|
}
|
|
|
|
+ }
|
|
});
|
|
});
|
|
// setTimeout(() => {
|
|
// setTimeout(() => {
|
|
// let isEnd = true;
|
|
// let isEnd = true;
|
|
@@ -512,18 +512,18 @@ export default {
|
|
|
|
|
|
},
|
|
},
|
|
handleChangeConversation(conversation, instance) {
|
|
handleChangeConversation(conversation, instance) {
|
|
- //console.log("qxj ChangeConversation:"+JSON.stringify(conversation));
|
|
|
|
- if (!pages[conversation.conversationId]){
|
|
|
|
- pages[conversation.conversationId] =1;
|
|
|
|
- }
|
|
|
|
- this.queryParams.pageNum=pages[conversation.conversationId];
|
|
|
|
- this.queryParams.conversationId=conversation.conversationId;
|
|
|
|
- this.queryParams.userId = this.qwUser.id
|
|
|
|
- if(conversation.unread>0){
|
|
|
|
- conversation.unread=0;
|
|
|
|
- instance.updateContact(conversation);
|
|
|
|
- }
|
|
|
|
- // instance.closeDrawer();
|
|
|
|
|
|
+ //console.log("qxj ChangeConversation:"+JSON.stringify(conversation));
|
|
|
|
+ if (!pages[conversation.conversationId]){
|
|
|
|
+ pages[conversation.conversationId] =1;
|
|
|
|
+ }
|
|
|
|
+ this.queryParams.pageNum=pages[conversation.conversationId];
|
|
|
|
+ this.queryParams.conversationId=conversation.conversationId;
|
|
|
|
+ this.queryParams.userId = this.qwUser.id
|
|
|
|
+ if(conversation.unread>0){
|
|
|
|
+ conversation.unread=0;
|
|
|
|
+ instance.updateContact(conversation);
|
|
|
|
+ }
|
|
|
|
+ // instance.closeDrawer();
|
|
},
|
|
},
|
|
handleChangeContact(contact, instance) {
|
|
handleChangeContact(contact, instance) {
|
|
|
|
|
|
@@ -531,62 +531,62 @@ export default {
|
|
|
|
|
|
//收到消息后添加消息显示
|
|
//收到消息后添加消息显示
|
|
appendMessageAction(msgData){
|
|
appendMessageAction(msgData){
|
|
- if(msgData.type=="text" || msgData.type=="image" || msgData.type=="voice"){ //文本 text image video voice
|
|
|
|
- const message = {
|
|
|
|
- id: msgData.id,
|
|
|
|
- status: msgData.status,
|
|
|
|
- type: msgData.type,
|
|
|
|
- sendTime: msgData.sendTime,
|
|
|
|
- content: msgData.content,
|
|
|
|
- params1: "1",
|
|
|
|
- params2: "2",
|
|
|
|
- toContactId: msgData.toContactId,
|
|
|
|
- fromUser: msgData.fromUser,
|
|
|
|
- };
|
|
|
|
- this.appendRemoteMessage(message);
|
|
|
|
- }
|
|
|
|
- else if(msgData.type=="file"){
|
|
|
|
- const message = {
|
|
|
|
- id: msgData.id,
|
|
|
|
- status: msgData.status,
|
|
|
|
- type: msgData.type,
|
|
|
|
- sendTime: msgData.sendTime,
|
|
|
|
- content: msgData.content,
|
|
|
|
- toContactId: msgData.toContactId,
|
|
|
|
- fromUser: msgData.fromUser,
|
|
|
|
- fileName:msgData.fileName,
|
|
|
|
- fileSize:msgData.fileSize
|
|
|
|
- };
|
|
|
|
- this.appendRemoteMessage(message);
|
|
|
|
- }
|
|
|
|
- else{
|
|
|
|
- const message = {
|
|
|
|
- id: msgData.id,
|
|
|
|
- status: msgData.status,
|
|
|
|
- type: msgData.type,
|
|
|
|
- sendTime: msgData.sendTime,
|
|
|
|
- content: msgData.content,
|
|
|
|
- toContactId: msgData.toContactId,
|
|
|
|
- fromUser: msgData.fromUser,
|
|
|
|
- };
|
|
|
|
- this.appendRemoteMessage(message);
|
|
|
|
- }
|
|
|
|
|
|
+ if(msgData.type=="text" || msgData.type=="image" || msgData.type=="voice"){ //文本 text image video voice
|
|
|
|
+ const message = {
|
|
|
|
+ id: msgData.id,
|
|
|
|
+ status: msgData.status,
|
|
|
|
+ type: msgData.type,
|
|
|
|
+ sendTime: msgData.sendTime,
|
|
|
|
+ content: msgData.content,
|
|
|
|
+ params1: "1",
|
|
|
|
+ params2: "2",
|
|
|
|
+ toContactId: msgData.toContactId,
|
|
|
|
+ fromUser: msgData.fromUser,
|
|
|
|
+ };
|
|
|
|
+ this.appendRemoteMessage(message);
|
|
|
|
+ }
|
|
|
|
+ else if(msgData.type=="file"){
|
|
|
|
+ const message = {
|
|
|
|
+ id: msgData.id,
|
|
|
|
+ status: msgData.status,
|
|
|
|
+ type: msgData.type,
|
|
|
|
+ sendTime: msgData.sendTime,
|
|
|
|
+ content: msgData.content,
|
|
|
|
+ toContactId: msgData.toContactId,
|
|
|
|
+ fromUser: msgData.fromUser,
|
|
|
|
+ fileName:msgData.fileName,
|
|
|
|
+ fileSize:msgData.fileSize
|
|
|
|
+ };
|
|
|
|
+ this.appendRemoteMessage(message);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ const message = {
|
|
|
|
+ id: msgData.id,
|
|
|
|
+ status: msgData.status,
|
|
|
|
+ type: msgData.type,
|
|
|
|
+ sendTime: msgData.sendTime,
|
|
|
|
+ content: msgData.content,
|
|
|
|
+ toContactId: msgData.toContactId,
|
|
|
|
+ fromUser: msgData.fromUser,
|
|
|
|
+ };
|
|
|
|
+ this.appendRemoteMessage(message);
|
|
|
|
+ }
|
|
},
|
|
},
|
|
//发送消息
|
|
//发送消息
|
|
handleSend(message, next, file) {
|
|
handleSend(message, next, file) {
|
|
const IMUI = this.$refs.IMUI;
|
|
const IMUI = this.$refs.IMUI;
|
|
var params={};
|
|
var params={};
|
|
if(message.type=="text"){ //text image voice video
|
|
if(message.type=="text"){ //text image voice video
|
|
- params={"sessionId":message.toContactId,"appKey":this.qwUser.appKey,"content":message.content};
|
|
|
|
- sendMsg(params).then(response => {
|
|
|
|
- if(response.code==200){
|
|
|
|
- var conversation=IMUI.findConversation(message.toContactId);
|
|
|
|
- conversation.lastSendTime=message.sendTime;
|
|
|
|
- conversation.lastContent=message.content;
|
|
|
|
- IMUI.topPopConversations(conversation);
|
|
|
|
- next();
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
|
|
+ params={"sessionId":message.toContactId,"appKey":this.qwUser.appKey,"content":message.content};
|
|
|
|
+ sendMsg(params).then(response => {
|
|
|
|
+ if(response.code==200){
|
|
|
|
+ var conversation=IMUI.findConversation(message.toContactId);
|
|
|
|
+ conversation.lastSendTime=message.sendTime;
|
|
|
|
+ conversation.lastContent=message.content;
|
|
|
|
+ IMUI.topPopConversations(conversation);
|
|
|
|
+ next();
|
|
|
|
+ }
|
|
|
|
+ });
|
|
}
|
|
}
|
|
// if(message.type=="image"){
|
|
// if(message.type=="image"){
|
|
// params={"conversationId":message.toContactId,"deviceId":this.qwUser.deviceId,"userId":this.qwUser.userId,"materialId":this.pickUploadImgData.id};
|
|
// params={"conversationId":message.toContactId,"deviceId":this.qwUser.deviceId,"userId":this.qwUser.userId,"materialId":this.pickUploadImgData.id};
|
|
@@ -614,27 +614,27 @@ export default {
|
|
},
|
|
},
|
|
//选择图片框确定按钮回调
|
|
//选择图片框确定按钮回调
|
|
handlePickImageDone(data){
|
|
handlePickImageDone(data){
|
|
- console.log("handlePickImageDone:"+JSON.stringify(data));
|
|
|
|
- this.pickUploadImgData=data;
|
|
|
|
- const IMUI = this.$refs.IMUI;
|
|
|
|
- IMUI._handleRemoteImage(data.url);
|
|
|
|
|
|
+ console.log("handlePickImageDone:"+JSON.stringify(data));
|
|
|
|
+ this.pickUploadImgData=data;
|
|
|
|
+ const IMUI = this.$refs.IMUI;
|
|
|
|
+ IMUI._handleRemoteImage(data.url);
|
|
},
|
|
},
|
|
tooglePlayVideo(data){
|
|
tooglePlayVideo(data){
|
|
- this.dialogVideoVisible=true;
|
|
|
|
- this.dialogVideoUrl=data.content;
|
|
|
|
- this.dialogVideoCover=data.url;
|
|
|
|
- const player = this.$refs.player.instance
|
|
|
|
- player && player.play()
|
|
|
|
|
|
+ this.dialogVideoVisible=true;
|
|
|
|
+ this.dialogVideoUrl=data.content;
|
|
|
|
+ this.dialogVideoCover=data.url;
|
|
|
|
+ const player = this.$refs.player.instance
|
|
|
|
+ player && player.play()
|
|
},
|
|
},
|
|
handleMessageClick(e, key, message, instance) {
|
|
handleMessageClick(e, key, message, instance) {
|
|
// console.log("点击了消息", e, key, message);
|
|
// console.log("点击了消息", e, key, message);
|
|
//console.log("qxj message:"+JSON.stringify(message));
|
|
//console.log("qxj message:"+JSON.stringify(message));
|
|
if(message.type=="image"){
|
|
if(message.type=="image"){
|
|
- var url=!!message.url?message.url:message.content;
|
|
|
|
- this.handlePicturePreview(url);
|
|
|
|
|
|
+ var url=!!message.url?message.url:message.content;
|
|
|
|
+ this.handlePicturePreview(url);
|
|
}
|
|
}
|
|
else if(message.type=="video"){
|
|
else if(message.type=="video"){
|
|
- this.tooglePlayVideo(message);
|
|
|
|
|
|
+ this.tooglePlayVideo(message);
|
|
}
|
|
}
|
|
else if(message.type=="file"){
|
|
else if(message.type=="file"){
|
|
|
|
|
|
@@ -668,57 +668,57 @@ export default {
|
|
this.hideMessageTime = !this.hideMessageTime;
|
|
this.hideMessageTime = !this.hideMessageTime;
|
|
},
|
|
},
|
|
removeMessage() {
|
|
removeMessage() {
|
|
- const { IMUI } = this.$refs;
|
|
|
|
- const messages = IMUI.getCurrentMessages();
|
|
|
|
- const id = messages[messages.length - 1].id;
|
|
|
|
- if (messages.length > 0) {
|
|
|
|
- IMUI.removeMessage(id);
|
|
|
|
- }
|
|
|
|
|
|
+ const { IMUI } = this.$refs;
|
|
|
|
+ const messages = IMUI.getCurrentMessages();
|
|
|
|
+ const id = messages[messages.length - 1].id;
|
|
|
|
+ if (messages.length > 0) {
|
|
|
|
+ IMUI.removeMessage(id);
|
|
|
|
+ }
|
|
},
|
|
},
|
|
updateMessage() {
|
|
updateMessage() {
|
|
- const { IMUI } = this.$refs;
|
|
|
|
- const messages = IMUI.getCurrentMessages();
|
|
|
|
- const message = messages[messages.length - 1];
|
|
|
|
- if (messages.length > 0) {
|
|
|
|
- const update = {
|
|
|
|
- id: message.id,
|
|
|
|
- status: "succeed",
|
|
|
|
- type: "file",
|
|
|
|
- fileName: "被修改成文件了.txt",
|
|
|
|
- fileSize: "4200000",
|
|
|
|
- };
|
|
|
|
- if (message.type == "event") {
|
|
|
|
- update.fromUser = this.user;
|
|
|
|
- }
|
|
|
|
- IMUI.updateMessage(update);
|
|
|
|
- IMUI.messageViewToBottom();
|
|
|
|
|
|
+ const { IMUI } = this.$refs;
|
|
|
|
+ const messages = IMUI.getCurrentMessages();
|
|
|
|
+ const message = messages[messages.length - 1];
|
|
|
|
+ if (messages.length > 0) {
|
|
|
|
+ const update = {
|
|
|
|
+ id: message.id,
|
|
|
|
+ status: "succeed",
|
|
|
|
+ type: "file",
|
|
|
|
+ fileName: "被修改成文件了.txt",
|
|
|
|
+ fileSize: "4200000",
|
|
|
|
+ };
|
|
|
|
+ if (message.type == "event") {
|
|
|
|
+ update.fromUser = this.user;
|
|
|
|
+ }
|
|
|
|
+ IMUI.updateMessage(update);
|
|
|
|
+ IMUI.messageViewToBottom();
|
|
}
|
|
}
|
|
},
|
|
},
|
|
appendCustomMessage() {
|
|
appendCustomMessage() {
|
|
- const { IMUI } = this.$refs;
|
|
|
|
- const message = {
|
|
|
|
- id: generateRandId(),
|
|
|
|
- status: "succeed",
|
|
|
|
- type: "voice",
|
|
|
|
- sendTime: getTime(),
|
|
|
|
- content: "语音消息",
|
|
|
|
- params1: "1",
|
|
|
|
- params2: "2",
|
|
|
|
- toContactId: "contact-1",
|
|
|
|
- fromUser: this.user,
|
|
|
|
- };
|
|
|
|
- IMUI.appendMessage(message, true);
|
|
|
|
|
|
+ const { IMUI } = this.$refs;
|
|
|
|
+ const message = {
|
|
|
|
+ id: generateRandId(),
|
|
|
|
+ status: "succeed",
|
|
|
|
+ type: "voice",
|
|
|
|
+ sendTime: getTime(),
|
|
|
|
+ content: "语音消息",
|
|
|
|
+ params1: "1",
|
|
|
|
+ params2: "2",
|
|
|
|
+ toContactId: "contact-1",
|
|
|
|
+ fromUser: this.user,
|
|
|
|
+ };
|
|
|
|
+ IMUI.appendMessage(message, true);
|
|
},
|
|
},
|
|
appendMessage() {
|
|
appendMessage() {
|
|
- const { IMUI } = this.$refs;
|
|
|
|
- const contact = IMUI.currentContact;
|
|
|
|
- const message = generateMessage("contact-3");
|
|
|
|
- message.fromUser = {
|
|
|
|
- ...message.fromUser,
|
|
|
|
- ...this.user,
|
|
|
|
- };
|
|
|
|
- IMUI.appendMessage(message, true);
|
|
|
|
- console.log("🚀 ~ file: App.vue ~ line 1508 ~ appendMessage ~ message", message)
|
|
|
|
|
|
+ const { IMUI } = this.$refs;
|
|
|
|
+ const contact = IMUI.currentContact;
|
|
|
|
+ const message = generateMessage("contact-3");
|
|
|
|
+ message.fromUser = {
|
|
|
|
+ ...message.fromUser,
|
|
|
|
+ ...this.user,
|
|
|
|
+ };
|
|
|
|
+ IMUI.appendMessage(message, true);
|
|
|
|
+ console.log("🚀 ~ file: App.vue ~ line 1508 ~ appendMessage ~ message", message)
|
|
},
|
|
},
|
|
appendEventMessage() {
|
|
appendEventMessage() {
|
|
const { IMUI } = this.$refs;
|
|
const { IMUI } = this.$refs;
|
|
@@ -742,8 +742,8 @@ export default {
|
|
IMUI.appendMessage(message, true);
|
|
IMUI.appendMessage(message, true);
|
|
},
|
|
},
|
|
appendRemoteMessage(message) { //从服务端返回的消息
|
|
appendRemoteMessage(message) { //从服务端返回的消息
|
|
- const { IMUI } = this.$refs;
|
|
|
|
- IMUI.appendMessage(message, true);
|
|
|
|
|
|
+ const { IMUI } = this.$refs;
|
|
|
|
+ IMUI.appendMessage(message, true);
|
|
},
|
|
},
|
|
updateContact() {
|
|
updateContact() {
|
|
this.$refs.IMUI.updateContact({
|
|
this.$refs.IMUI.updateContact({
|
|
@@ -761,105 +761,105 @@ export default {
|
|
|
|
|
|
},
|
|
},
|
|
handlePicturePreview(url) {
|
|
handlePicturePreview(url) {
|
|
- this.dialogImageUrl = url;
|
|
|
|
- this.dialogVisible = true;
|
|
|
|
|
|
+ this.dialogImageUrl = url;
|
|
|
|
+ this.dialogVisible = true;
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
- .imui-center{
|
|
|
|
- margin-top:30px;
|
|
|
|
- align-items: center;
|
|
|
|
- justify-content: center;
|
|
|
|
- height: 80vh;
|
|
|
|
- }
|
|
|
|
- .lemon-wrapper{
|
|
|
|
- border:1px solid #ddd;
|
|
|
|
- //height: !important;
|
|
|
|
- }
|
|
|
|
- .lemon-drawer{
|
|
|
|
- border:1px solid #ddd;
|
|
|
|
- border-left:0;
|
|
|
|
- }
|
|
|
|
- .more {
|
|
|
|
- font-size: 12px;
|
|
|
|
- line-height: 24px;
|
|
|
|
- height: 24px;
|
|
|
|
- position: absolute;
|
|
|
|
- top: 14px;
|
|
|
|
- right: 14px;
|
|
|
|
- cursor: pointer;
|
|
|
|
- -webkit-user-select: none;
|
|
|
|
- -moz-user-select: none;
|
|
|
|
- -ms-user-select: none;
|
|
|
|
- user-select: none;
|
|
|
|
- color: #f1f1f1;
|
|
|
|
- display: inline-block;
|
|
|
|
- border-radius: 4px;
|
|
|
|
- background: #111;
|
|
|
|
- padding: 0 8px;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /deep/.el-dialog__headerbtn{
|
|
|
|
- top:10px;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /deep/.el-dialog:not(.is-fullscreen) {
|
|
|
|
- margin-top: 0 !important;
|
|
|
|
- }
|
|
|
|
|
|
+.imui-center{
|
|
|
|
+ margin-top:30px;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ height: 80vh;
|
|
|
|
+}
|
|
|
|
+.lemon-wrapper{
|
|
|
|
+ border:1px solid #ddd;
|
|
|
|
+ //height: !important;
|
|
|
|
+}
|
|
|
|
+.lemon-drawer{
|
|
|
|
+ border:1px solid #ddd;
|
|
|
|
+ border-left:0;
|
|
|
|
+}
|
|
|
|
+.more {
|
|
|
|
+ font-size: 12px;
|
|
|
|
+ line-height: 24px;
|
|
|
|
+ height: 24px;
|
|
|
|
+ position: absolute;
|
|
|
|
+ top: 14px;
|
|
|
|
+ right: 14px;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ -webkit-user-select: none;
|
|
|
|
+ -moz-user-select: none;
|
|
|
|
+ -ms-user-select: none;
|
|
|
|
+ user-select: none;
|
|
|
|
+ color: #f1f1f1;
|
|
|
|
+ display: inline-block;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ background: #111;
|
|
|
|
+ padding: 0 8px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/deep/.el-dialog__headerbtn{
|
|
|
|
+ top:10px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+/deep/.el-dialog:not(.is-fullscreen) {
|
|
|
|
+ margin-top: 0 !important;
|
|
|
|
+}
|
|
|
|
|
|
</style>
|
|
</style>
|
|
|
|
|
|
|
|
|
|
<style lang="stylus">
|
|
<style lang="stylus">
|
|
- .lemon-container__title{
|
|
|
|
- padding-bottom:10px;
|
|
|
|
- }
|
|
|
|
- .slot-group{
|
|
|
|
- width:200px;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .slot-group-title{
|
|
|
|
- padding:0 0 10px 0;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .slot-group-notice{
|
|
|
|
- padding: 10px 10px;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- .slot-search{
|
|
|
|
- width:calc(100% - 20px) ;
|
|
|
|
- margin:5px 10px;
|
|
|
|
- padding:3px 0px;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- .slot-group-member{
|
|
|
|
- display: flex;
|
|
|
|
- padding: 5px 0;
|
|
|
|
- flex:1;
|
|
|
|
- font-size: 14px;
|
|
|
|
- align-items: center;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .avatar{
|
|
|
|
- width: 30px;
|
|
|
|
- height: 30px;
|
|
|
|
- line-height: 30px;
|
|
|
|
- margin-right:5px;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .img{
|
|
|
|
- vertical-align: middle;
|
|
|
|
- border-style: none;
|
|
|
|
- width: 100%;
|
|
|
|
- height: 100%;
|
|
|
|
- line-height: 30px;
|
|
|
|
- border-radius: 50%;
|
|
|
|
- }
|
|
|
|
|
|
+.lemon-container__title{
|
|
|
|
+ padding-bottom:10px;
|
|
|
|
+}
|
|
|
|
+.slot-group{
|
|
|
|
+ width:200px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.slot-group-title{
|
|
|
|
+ padding:0 0 10px 0;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.slot-group-notice{
|
|
|
|
+ padding: 10px 10px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+.slot-search{
|
|
|
|
+ width:calc(100% - 20px) ;
|
|
|
|
+ margin:5px 10px;
|
|
|
|
+ padding:3px 0px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+.slot-group-member{
|
|
|
|
+ display: flex;
|
|
|
|
+ padding: 5px 0;
|
|
|
|
+ flex:1;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ align-items: center;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.avatar{
|
|
|
|
+ width: 30px;
|
|
|
|
+ height: 30px;
|
|
|
|
+ line-height: 30px;
|
|
|
|
+ margin-right:5px;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+.img{
|
|
|
|
+ vertical-align: middle;
|
|
|
|
+ border-style: none;
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ line-height: 30px;
|
|
|
|
+ border-radius: 50%;
|
|
|
|
+}
|
|
|
|
|
|
|
|
|
|
|
|
|