diff --git a/.env b/.env
index 83a9ced..2d1b476 100644
--- a/.env
+++ b/.env
@@ -1,5 +1,12 @@
# API
VITE_SYSTEM_URL = "http://w6972efb.natappfree.cc"
+# VITE_SYSTEM_URL = "https://dev.cqjcteach.cn/prod-api"
+
+# 第三方客户 channelId
+VITE_CHANNEL_ID = "7b81ec142eca42baa045820793b821bb"
+
+# 第三方客户 groupId
+VITE_GROUP_ID = "793db3a29c7846e198d71a1100d9d67b"
#文档地址
VITE_DOC_URL = "http://f69dbab6.natappfree.cc"
\ No newline at end of file
diff --git a/App.vue b/App.vue
index ad79bad..38747c6 100644
--- a/App.vue
+++ b/App.vue
@@ -1,13 +1,13 @@
diff --git a/api/index.js b/api/index.js
index 3fd9fb3..a299327 100644
--- a/api/index.js
+++ b/api/index.js
@@ -138,3 +138,12 @@ export const getTencentUserSig = () => {
})
}
+
+/** 根据ip判断是否黑名单 */
+export const getIpBlack = (loading = true) => {
+ return http({
+ url: '/api/free/black/isBlack',
+ method: 'get',
+ loading
+ })
+}
\ No newline at end of file
diff --git a/api/my-index.js b/api/my-index.js
index d803d75..de63286 100644
--- a/api/my-index.js
+++ b/api/my-index.js
@@ -267,3 +267,11 @@ export const getUserNoticeDetail = id => {
method: 'get'
})
}
+
+/** 客服列表 */
+export const getUserServiceList = () => {
+ return http({
+ url: '/api/service/customerStaff/list',
+ method: 'get'
+ })
+}
diff --git a/api/tui-kit.js b/api/tui-kit.js
index 2bdd937..dc0bd6f 100644
--- a/api/tui-kit.js
+++ b/api/tui-kit.js
@@ -139,3 +139,20 @@ export const getLiveActivityRecord = id => {
method: 'get'
})
}
+
+/** 直播记录列表 */
+export const getLiveRecordList = data => {
+ return http({
+ url: `/api/service/imLiveRoom/list`,
+ method: 'get',
+ data
+ })
+}
+
+/** 直播记录详情 */
+export const getLiveRecordDetail = id => {
+ return http({
+ url: `/api/service/imLiveRoom/${id}`,
+ method: 'get'
+ })
+}
diff --git a/pages.json b/pages.json
index 3ee4478..5d29aab 100644
--- a/pages.json
+++ b/pages.json
@@ -208,7 +208,7 @@
{
"path": "pages/my-index/meeting-record/index",
"style": {
- "navigationBarTitleText": "会议记录",
+ "navigationBarTitleText": "直播记录",
"navigationBarBackgroundColor": "#ffffff"
}
},
@@ -225,6 +225,12 @@
"navigationBarTitleText": "客服"
}
},
+ {
+ "path": "pages/my-index/customer-service/third-party",
+ "style": {
+ "navigationBarTitleText": "第三方客服"
+ }
+ },
{
"path": "pages/my-index/set-up/index",
"style": {
@@ -323,6 +329,12 @@
"navigationBarTitleText": "拼团记录"
}
},
+ {
+ "path": "pages/shop-together/share",
+ "style": {
+ "navigationStyle": "custom"
+ }
+ },
{
"path": "pages/discover/ranking-list",
"style": {
@@ -400,6 +412,12 @@
"titleNView": false
}
}
+ },
+ {
+ "path": "pages/adduser/index",
+ "style": {
+ "navigationBarTitleText": "添加好友"
+ }
}
],
"globalStyle": {
@@ -441,4 +459,4 @@
}
]
}
-}
+}
\ No newline at end of file
diff --git a/pages/address/index.vue b/pages/address/index.vue
index 4c7d03e..89a2054 100644
--- a/pages/address/index.vue
+++ b/pages/address/index.vue
@@ -126,6 +126,9 @@
diff --git a/pages/discover/discover.vue b/pages/discover/discover.vue
index 4072a4b..a150567 100644
--- a/pages/discover/discover.vue
+++ b/pages/discover/discover.vue
@@ -1,6 +1,9 @@
@@ -93,13 +92,13 @@
- 名字
- 158****98874
+ {{ item.userName }}
+ {{ item.mobile }}
@@ -149,6 +148,7 @@
.left-icon {
width: 64rpx;
height: 64rpx;
+ border-radius: 64rpx;
margin-right: 8rpx;
}
.name {
diff --git a/pages/login/login.vue b/pages/login/login.vue
index 0762abf..c84d3c8 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -3,11 +3,11 @@
import { onLoad } from '@dcloudio/uni-app'
import { useUI } from '@/utils/use-ui'
import { reLaunch, navigateTo } from '@/utils/router'
- import { userLogin } from '@/api'
+ import { userLogin, getIpBlack } from '@/api'
import { useTokenStore } from '@/stores/token'
import { useUserStore } from '@/stores/user'
- const { showToast } = useUI()
+ const { showToast, showDialog } = useUI()
const { setToken } = useTokenStore()
const { fetchUserInfo } = useUserStore()
@@ -22,13 +22,18 @@
showToast('请同意协议')
return
}
- const res = await userLogin({
- account: formData.username,
- password: formData.password
- })
- setToken(res.token)
- await fetchUserInfo()
- reLaunch('/TUIKit/components/TUIConversation/index')
+ const show = await getIpBlack()
+ if (show.data.data) {
+ const res = await userLogin({
+ account: formData.username,
+ password: formData.password
+ })
+ setToken(res.token)
+ await fetchUserInfo()
+ reLaunch('/TUIKit/components/TUIConversation/index')
+ } else {
+ showDialog('提示', '当前账号或者IP已被限制登录!', false)
+ }
}
const onRegister = () => {
diff --git a/pages/my-index/customer-service/index.vue b/pages/my-index/customer-service/index.vue
index de9664d..c55f65b 100644
--- a/pages/my-index/customer-service/index.vue
+++ b/pages/my-index/customer-service/index.vue
@@ -1,4 +1,18 @@
-
+
@@ -9,8 +23,12 @@
class="avatar"
>
Hi~有什么可以帮到你?
-
-
+
+
@@ -52,7 +70,7 @@
background: linear-gradient(0deg, #00d993 0%, #00d9c5 100%);
border-radius: 16rpx;
box-sizing: border-box;
- &:last-child {
+ &:nth-child(2) {
background: #ffffff;
color: #00d993;
border: 2rpx solid #00d993;
diff --git a/pages/my-index/customer-service/third-party.vue b/pages/my-index/customer-service/third-party.vue
new file mode 100644
index 0000000..cc38007
--- /dev/null
+++ b/pages/my-index/customer-service/third-party.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
diff --git a/pages/my-index/meeting-record/details.vue b/pages/my-index/meeting-record/details.vue
index 8a2f5db..e2814ac 100644
--- a/pages/my-index/meeting-record/details.vue
+++ b/pages/my-index/meeting-record/details.vue
@@ -1,22 +1,40 @@
-
+
- Admin的视频的会议
+ {{ viewData.roomName }}
- 12月14日(周五) 13:45-16:09
+ 开始时间:{{ viewData.startTime }}
+
+
+
+ 结束时间:{{ viewData.endTime }}
- 会议ID:8755 8445
+ 会议ID:{{ viewData.roomId }}
-
+
-
+
- Admin的视频的会议
- 12月27日13:27
+ {{ viewData.roomName }}
+ {{ viewData.startTime }}
@@ -93,13 +111,11 @@
}
.date-box,
.id-box {
+ margin-top: 12rpx;
display: flex;
align-items: center;
}
- .date-box {
- margin: 32rpx 0;
- }
.user-box {
margin-top: 32rpx;
display: flex;
@@ -137,8 +153,8 @@
}
.public-meeting-card {
- margin-top: 47rpx;
- padding-top: 47rpx;
+ margin-top: 27rpx;
+ padding-top: 27rpx;
border-top: 2rpx solid #f9f9f9;
}
diff --git a/pages/my-index/meeting-record/index.vue b/pages/my-index/meeting-record/index.vue
index 6f12a0f..dd54ab3 100644
--- a/pages/my-index/meeting-record/index.vue
+++ b/pages/my-index/meeting-record/index.vue
@@ -1,27 +1,57 @@
-
-
-
-
- Admin的视频的会议
- 12月27日13:27
+
+
+
+
+
+ {{ item.roomName }}
+ {{ item.createTime }}
+
-
+
diff --git a/static/images/discover/share-bg.png b/static/images/discover/share-bg.png
new file mode 100644
index 0000000..afc2bae
Binary files /dev/null and b/static/images/discover/share-bg.png differ
diff --git a/stores/user.js b/stores/user.js
index 3af7506..ab0b842 100644
--- a/stores/user.js
+++ b/stores/user.js
@@ -11,6 +11,9 @@ import {
setFontSize,
removeFontSize
} from '@/utils/storage'
+// #ifdef APP-PLUS
+import { useLoginState } from '@/uni_modules/tuikit-atomic-x/state/LoginState'
+// #endif
import { useTokenStore } from './token'
import { getUserData, userLogout, updateUserData } from '@/api'
import { ref } from 'vue'
@@ -18,13 +21,11 @@ import { useUI } from '@/utils/use-ui'
import { reLaunch } from '@/utils/router'
import { getTencentUserSig } from '@/api'
import { TUILogin } from '@tencentcloud/tui-core-lite'
-// #ifdef APP-PLUS
-import { useLoginState } from '@/uni_modules/tuikit-atomic-x/state/LoginState'
-// #endif
+import { TUIChatEngine } from '@tencentcloud/chat-uikit-engine-lite'
export const useUserStore = defineStore('user', () => {
const { clearToken } = useTokenStore()
- const { showDialog } = useUI()
+ const { showDialog, showToast } = useUI()
const userInfo = ref(
getUserInfoData() ? JSON?.parse(getUserInfoData()) : {}
@@ -71,12 +72,20 @@ export const useUserStore = defineStore('user', () => {
* 登录腾讯 IM
*/
const loginTencentIM = async () => {
+ await refreshUserInfo()
await TUILogin.login({
SDKAppID: tencentUserSig.value.sdkappID,
userID: tencentUserSig.value.userId,
userSig: tencentUserSig.value.userSig,
framework: `vue3`
})
+
+ await TUIChatEngine.login({
+ SDKAppID: tencentUserSig.value.sdkappID,
+ userID: tencentUserSig.value.userId,
+ userSig: tencentUserSig.value.userSig,
+ useUploadPlugin: true // 使用文件上传插件
+ })
// #ifdef APP-PLUS
await useLoginState().login({
sdkAppID: tencentUserSig.value.sdkappID,
@@ -92,6 +101,7 @@ export const useUserStore = defineStore('user', () => {
const clearUserInfo = async () => {
const show = await showDialog('提示', '确定要退出登录吗?')
if (show) {
+ showToast('退出登录成功', 'success')
await userLogout()
await logout()
}
@@ -109,6 +119,7 @@ export const useUserStore = defineStore('user', () => {
await TUILogin.logout().then(() => {
reLaunch('/pages/login/login')
})
+ await TUIChatEngine.logout()
// #ifdef APP-PLUS
await useLoginState().logout()
// #endif
@@ -119,7 +130,7 @@ export const useUserStore = defineStore('user', () => {
await setUserInfoData(res.data)
userInfo.value = res.data
}
-
+
/**
* 更新部分用户信息(例如昵称、头像)
*/