Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jinfa-platform
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linweijiong
jinfa-platform
Commits
e0bd2f46
Commit
e0bd2f46
authored
Jun 24, 2021
by
卢均锐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 准备接入im部分
parent
31580809
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
79 additions
and
4 deletions
+79
-4
index.tsx
...ction/purchaseAbility/onlineBid/readyBid/detail/index.tsx
+3
-2
index.tsx
...chaseBid/readyBid/management/components/rankRow/index.tsx
+3
-2
im.tsx
src/utils/im.tsx
+73
-0
No files found.
src/pages/transaction/purchaseAbility/onlineBid/readyBid/detail/index.tsx
View file @
e0bd2f46
...
...
@@ -7,7 +7,8 @@ import { observer } from 'mobx-react'
import
{
PublicApi
}
from
'@/services/api'
;
import
{
priceFormat
}
from
'@/utils/numberFomat'
;
import
{
formatTimeString
}
from
'@/utils'
import
{
formatTimeString
}
from
'@/utils'
;
import
{
toChatRoom
}
from
'@/utils/im'
;
import
{
usePurchaseBidStore
}
from
'@/store/purchaseBid'
;
import
StatusBox
from
'../../../purchaseBid/readyBid/management/components/statusBox'
;
...
...
@@ -98,7 +99,7 @@ const Detail = () => {
<
div
className=
{
styles
.
warp
}
>
<
div
className=
{
styles
.
header
}
>
<
ArrowLeftOutlined
className=
{
styles
.
goBack
}
onClick=
{
()
=>
history
.
goBack
()
}
/>
<
div
className=
{
styles
.
title
}
>
{
dataSource
?.
details
}
<
span
>
{
dataSource
?.
createMemberName
}
</
span
><
IMBtn
func=
{
()
=>
console
.
log
(
'ok'
)
}
/></
div
>
<
div
className=
{
styles
.
title
}
>
{
dataSource
?.
details
}
<
span
>
{
dataSource
?.
createMemberName
}
</
span
><
IMBtn
func=
{
()
=>
toChatRoom
(
dataSource
.
memberId
)
}
/></
div
>
</
div
>
<
div
className=
{
styles
.
layout
}
>
<
Row
gutter=
{
[
8
,
8
]
}
>
...
...
src/pages/transaction/purchaseAbility/purchaseBid/readyBid/management/components/rankRow/index.tsx
View file @
e0bd2f46
...
...
@@ -5,6 +5,7 @@ import level1 from '@/assets/icons/the_first.png';
import
level2
from
'@/assets/icons/the_second.png'
;
import
level3
from
'@/assets/icons/the_third.png'
;
import
{
priceFormat
}
from
'@/utils/numberFomat'
;
import
{
toChatRoom
}
from
'@/utils/im'
;
import
IMBtn
from
'../../../../../components/detail/components/iMBtn'
;
...
...
@@ -55,7 +56,7 @@ const RankRow: React.FC<RankRowProps> = (props: any) => {
</
div
>
<
div
className=
{
styles
.
rankRowRight
}
>
{
detail
.
contacts
}
<
IMBtn
func=
{
()
=>
console
.
log
(
1
)
}
/>
<
IMBtn
func=
{
()
=>
toChatRoom
(
detail
.
memberId
)
}
/>
</
div
>
</
div
>
)
...
...
@@ -71,7 +72,7 @@ const RankRow: React.FC<RankRowProps> = (props: any) => {
<
div
>
<
div
className=
{
styles
.
rankRowRight
}
>
{
detail
.
contacts
}
<
IMBtn
func=
{
()
=>
console
.
log
(
1
)
}
/>
<
IMBtn
func=
{
()
=>
toChatRoom
(
detail
.
memberId
)
}
/>
</
div
>
</
div
>
</
div
>
...
...
src/utils/im.tsx
0 → 100644
View file @
e0bd2f46
import
React
from
'react'
;
import
{
Button
,
notification
,
message
}
from
'antd'
;
import
BASE_CONFIG
from
'../../config/base.config.json'
import
{
PublicApi
}
from
'@/services/api'
;
import
{
SHOP_TYPE
}
from
'@/constants'
;
import
{
getAuth
}
from
'@/utils/auth'
;
const
DOMAIN
=
{...
BASE_CONFIG
}.
global
.
siteInfo
.
siteUrl
.
replace
(
'www'
,
''
);
//document.domain
const
CHATROOM_URL
=
`http://chatroom
${
DOMAIN
}
/chatRoom`
;
const
COOKIEPREFIX
=
'CHATROOM_'
;
// 主动调起聊天室 mmeberId 为接收人的memberId
export
const
toChatRoom
=
(
memberId
:
string
=
''
,
shopType
:
number
=
1
)
=>
{
const
_curUserInfo
=
getAuth
();
if
(
!
memberId
){
document
.
cookie
=
`
${
COOKIEPREFIX
}
userInfo=
${
JSON
.
stringify
(
_curUserInfo
)}
;path=/;domain=
${
DOMAIN
}
`
;
document
.
cookie
=
`
${
COOKIEPREFIX
}
shopType=
${
shopType
}
;path=/;domain=
${
DOMAIN
}
`
;
window
.
open
(
CHATROOM_URL
);
return
;
}
PublicApi
.
getMessageImHistorySession
({
memberId
:
memberId
,
currMemberId
:
String
(
_curUserInfo
.
memberId
)
}).
then
(
res
=>
{
if
(
res
.
code
===
1000
)
{
const
_userId
=
res
.
data
.
data
?.[
0
]?.
userList
?.[
0
]?.
userId
if
(
_userId
)
{
document
.
cookie
=
`
${
COOKIEPREFIX
}
curMemberId=
${
memberId
}
;path=/;domain=
${
DOMAIN
}
`
;
document
.
cookie
=
`
${
COOKIEPREFIX
}
curUserId=
${
_userId
}
;path=/;domain=
${
DOMAIN
}
`
;
document
.
cookie
=
`
${
COOKIEPREFIX
}
userInfo=
${
JSON
.
stringify
(
_curUserInfo
)}
;path=/;domain=
${
DOMAIN
}
`
;
document
.
cookie
=
`
${
COOKIEPREFIX
}
shopType=
${
shopType
}
;path=/;domain=
${
DOMAIN
}
`
;
window
.
open
(
CHATROOM_URL
);
}
else
{
message
.
error
(
'该会员底下没有客服!'
);
}
}
})
}
interface
NotificationChatRoomProps
{
//通知消息
detail
:
any
}
// 被动从websocket调起聊天室
export
const
notificationChatRoom
=
(
props
:
NotificationChatRoomProps
)
=>
{
const
{
detail
}
=
props
const
_curUserInfo
=
getAuth
();
const
close
=
()
=>
{
console
.
log
(
'Notification was closed. Either the close button was clicked or duration time elapsed.'
,
);
};
const
key
=
`open
${
Date
.
now
()}
`
;
const
btn
=
(
<
Button
type=
"primary"
size=
"small"
onClick=
{
()
=>
{
document
.
cookie
=
`${COOKIEPREFIX}userInfo=${JSON.stringify(_curUserInfo)};path=/;domain=${DOMAIN}`
;
document
.
cookie
=
`${COOKIEPREFIX}shopType=${shopType};path=/;domain=${DOMAIN}`
;
window
.
open
(
CHATROOM_URL
);
notification
.
close
(
key
)
}
}
>
查看
</
Button
>
);
notification
.
open
({
message
:
'你收到一条消息'
,
description
:
'A function will be be called after the notification is closed (automatically after the "duration" time of manually).'
,
btn
,
key
,
duration
:
10
,
onClose
:
close
,
});
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment