Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
foreign
/
customer-service
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
9293df9d
authored
Aug 03, 2021
by
吴云建
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
会话调整
parent
3103284a
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
101 additions
and
10 deletions
components/chat-members.vue
components/chat-title.vue
store/index.ts
store/model.ts
components/chat-members.vue
View file @
9293df9d
...
...
@@ -11,6 +11,9 @@
<span
class=
"member-phone ver-mid"
>
{{
item
.
phone
}}
</span>
<span
class=
"member-type ver-mid"
>
{{
memberTypeStr
(
item
.
type
)
}}
</span>
<el-button
class=
"ver-mid get-out"
type=
"text"
@
click=
"getout(item)"
>
踢出
</el-button
>
...
...
@@ -31,8 +34,8 @@ export default class ChatMembers extends Vue {
@
chatStore
.
Action
(
ChatStore
.
ACTION_CHAT_REMOVE_MEMBER
)
private
readonly
_getout
!
:
ChatStore
.
ACTION_CHAT_REMOVE_MEMBER
;
@
chatStore
.
State
(
ChatStore
.
STATE_CHAT_CURRENT_IS_CHAT_MEMBER
)
private
readonly
isChatMember
!
:
ChatStore
.
STATE_CHAT_CURRENT_IS_CHAT_MEMBER
;
@
chatStore
.
Action
(
ChatStore
.
ACTION_CHAT_REMOVE_CS
)
private
readonly
_getoutCs
!
:
ChatStore
.
ACTION_CHAT_REMOVE_CS
;
private
async
getout
(
item
:
ChatStore
.
GETTER_CURRENT_CHAT_PRESENT_MEMBERS
[
number
])
{
await
this
.
$confirm
(
`确定要移除
${
item
.
name
}
?`
,
"提示"
,
{
...
...
@@ -41,7 +44,20 @@ export default class ChatMembers extends Vue {
type
:
"warning"
,
});
// xim里的eid等于uniplat里的uid
this
.
_getout
([
item
.
eid
]);
if
(
item
.
type
==
25
)
{
// 普通成员
this
.
_getout
([
item
.
eid
])
}
else
if
(
item
.
type
==
92
)
{
// 可否
this
.
_getoutCs
([
item
.
eid
])
}
}
private
memberTypeStr
(
type
:
string
|
number
)
{
if
(
type
.
toString
()
===
"25"
)
{
return
""
}
else
if
(
type
.
toString
()
===
"92"
)
{
return
"客服"
}
else
if
(
type
.
toString
()
===
"85"
)
{
return
"管理员"
}
}
}
</
script
>
...
...
@@ -70,6 +86,9 @@ export default class ChatMembers extends Vue {
white-space
:
pre-line
;
margin-right
:
10px
;
}
.member-type
{
margin-left
:
20px
;
}
.get-out
{
display
:
none
;
margin-left
:
auto
;
...
...
components/chat-title.vue
View file @
9293df9d
...
...
@@ -15,10 +15,11 @@
</
template
>
</div>
<div
class=
"title-buttons"
>
<!-- <el-button class="button" round>开始接待</el-button>
<el-button class="button" round>结束接待</el-button> -->
<el-button
class=
"button"
@
click=
"addMemberForMyself"
round
v-if=
"!isChatMember"
>
加入会话
</el-button
<el-button
class=
"button"
@
click=
"startReception"
round
v-if=
"!isChatMember"
>
开始接待
</el-button
>
<el-button
class=
"button"
@
click=
"finishReception"
round
v-if=
"isChatMember"
>
结束接待
</el-button
>
<el-button
class=
"button"
@
click=
"terminate"
round
>
结束会话
</el-button
...
...
@@ -61,6 +62,12 @@ export default class ChatTitle extends Vue {
@
chatStore
.
Action
(
ChatStore
.
ACTION_CHAT_ADD_MEMBERS
)
private
readonly
_addMember
!
:
ChatStore
.
ACTION_CHAT_ADD_MEMBERS
;
@
chatStore
.
Action
(
ChatStore
.
ACTION_CHAT_START_RECEPTION
)
private
readonly
_startReception
!
:
ChatStore
.
ACTION_CHAT_START_RECEPTION
;
@
chatStore
.
Action
(
ChatStore
.
ACTION_CHAT_FINISH_RECEPTION
)
private
readonly
_finishReception
!
:
ChatStore
.
ACTION_CHAT_FINISH_RECEPTION
;
@
chatStore
.
State
(
ChatStore
.
STATE_CHAT_CURRENT_IS_CHAT_MEMBER
)
private
readonly
isChatMember
!
:
ChatStore
.
STATE_CHAT_CURRENT_IS_CHAT_MEMBER
;
...
...
@@ -104,13 +111,21 @@ export default class ChatTitle extends Vue {
}
}
private
async
addMemberForMyself
()
{
private
async
startReception
()
{
try
{
await
this
.
_startReception
();
}
catch
(
error
)
{
console
.
error
(
error
);
}
}
private
async
finishReception
()
{
try
{
await
this
.
_
addMember
([
this
.
operatorUid
.
toString
()]
);
await
this
.
_
finishReception
(
);
}
catch
(
error
)
{
console
.
error
(
error
);
}
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
...
...
store/index.ts
View file @
9293df9d
...
...
@@ -629,6 +629,38 @@ export default {
);
await
dispatch
(
ChatStore
.
ACTION_SAVE_CURRENT_CHAT_ID_VERSION
,
firstChat
.
chat_id
);
},
async
[
ChatStore
.
ACTION_CHAT_START_RECEPTION
](
{
getters
,
dispatch
}
)
{
const
currentChat
=
getters
[
ChatStore
.
GETTER_CURRENT_CURRENT_CHAT
];
if
(
currentChat
==
null
)
return
;
const
{
model_name
,
obj_id
}
=
currentChat
.
business_data
;
if
(
model_name
==
null
)
return
;
if
(
obj_id
==
null
)
return
;
await
sdk
()
.
model
(
model_name
)
.
chat
(
obj_id
,
orgId
())
.
startChat
();
await
new
Promise
((
resolve
)
=>
setTimeout
(
resolve
,
500
));
await
dispatch
(
ChatStore
.
ACTION_GET_CHAT_MEMBERS
);
},
async
[
ChatStore
.
ACTION_CHAT_FINISH_RECEPTION
](
{
getters
,
dispatch
}
)
{
const
currentChat
=
getters
[
ChatStore
.
GETTER_CURRENT_CURRENT_CHAT
];
if
(
currentChat
==
null
)
return
;
const
{
model_name
,
obj_id
}
=
currentChat
.
business_data
;
if
(
model_name
==
null
)
return
;
if
(
obj_id
==
null
)
return
;
await
sdk
()
.
model
(
model_name
)
.
chat
(
obj_id
,
orgId
())
.
finishChat
();
await
new
Promise
((
resolve
)
=>
setTimeout
(
resolve
,
500
));
await
dispatch
(
ChatStore
.
ACTION_GET_CHAT_MEMBERS
);
},
async
[
ChatStore
.
ACTION_CHAT_ADD_MEMBERS
](
{
getters
,
dispatch
},
uids
:
Parameters
<
ChatStore
.
ACTION_CHAT_ADD_MEMBERS
>
[
0
]
...
...
@@ -662,6 +694,22 @@ export default {
await
new
Promise
((
resolve
)
=>
setTimeout
(
resolve
,
500
));
await
dispatch
(
ChatStore
.
ACTION_GET_CHAT_MEMBERS
);
},
async
[
ChatStore
.
ACTION_CHAT_REMOVE_CS
](
{
getters
,
dispatch
},
uids
:
Parameters
<
ChatStore
.
ACTION_CHAT_REMOVE_CS
>
[
0
]
)
{
const
currentChat
=
getters
[
ChatStore
.
GETTER_CURRENT_CURRENT_CHAT
];
if
(
currentChat
==
null
)
return
;
const
{
model_name
,
obj_id
}
=
currentChat
.
business_data
;
if
(
model_name
==
null
)
return
;
if
(
obj_id
==
null
)
return
;
await
sdk
()
.
model
(
model_name
)
.
chat
(
obj_id
,
orgId
())
.
removeCs
(
uids
.
map
((
id
)
=>
Number
(
id
)));
await
new
Promise
((
resolve
)
=>
setTimeout
(
resolve
,
500
));
await
dispatch
(
ChatStore
.
ACTION_GET_CHAT_MEMBERS
);
},
},
getters
:
{
[
ChatStore
.
STATE_CHAT_MSG_HISTORY
](
state
)
{
...
...
store/model.ts
View file @
9293df9d
...
...
@@ -276,6 +276,15 @@ export namespace ChatStore {
export
type
ACTION_CHAT_ADD_MEMBERS
=
(
uids
:
string
[])
=>
Promise
<
void
>
export
const
ACTION_CHAT_REMOVE_MEMBER
=
"移除成员"
;
export
type
ACTION_CHAT_REMOVE_MEMBER
=
(
uids
:
string
[])
=>
Promise
<
void
>
export
const
ACTION_CHAT_START_RECEPTION
=
"开始接待"
;
export
type
ACTION_CHAT_START_RECEPTION
=
()
=>
Promise
<
void
>
export
const
ACTION_CHAT_FINISH_RECEPTION
=
"结束接待"
;
export
type
ACTION_CHAT_FINISH_RECEPTION
=
()
=>
Promise
<
void
>
export
const
ACTION_CHAT_REMOVE_CS
=
"移除客服"
;
export
type
ACTION_CHAT_REMOVE_CS
=
(
uids
:
string
[])
=>
Promise
<
void
>
}
export
interface
ChatStoreState
{
...
...
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