Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
company_app
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
毛细亚
company_app
Commits
674bfd26
提交
674bfd26
authored
9月 23, 2025
作者:
毛细亚
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'zyou_release' into cbl_6.9.1
上级
ccfefb28
95d30a97
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
153 行增加
和
2 行删除
+153
-2
game.js
src/api/game.js
+28
-0
sendGame.vue
src/views/components/quickSendGame/sendGame.vue
+39
-1
lastLogin.vue
src/views/components/quickSendGame/sendGame/lastLogin.vue
+83
-0
gameUserInfo.vue
src/views/userInfo/components/gameInfo/gameUserInfo.vue
+3
-1
没有找到文件。
src/api/game.js
浏览文件 @
674bfd26
...
@@ -1396,3 +1396,31 @@ export function marketingRoleGradeUrl(data) {
...
@@ -1396,3 +1396,31 @@ export function marketingRoleGradeUrl(data) {
})
})
})
})
}
}
// 获取角色最近登录记录
export
function
getRecentRoleLoginLog
(
data
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
cross_systemRequest
({
system
:
'zhangyou'
,
api
:
'/api/role/getRecentRoleLoginLog'
,
params
:
data
}).
then
((
res
)
=>
{
resolve
(
res
)
}).
catch
((
error
)
=>
{
reject
(
error
)
})
})
}
// 获取角色最近登录记录
export
function
getClonePackageLink
(
data
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
cross_systemRequest
({
system
:
'zhangyou'
,
api
:
'/api/member/getClonePackageLink'
,
params
:
data
}).
then
((
res
)
=>
{
resolve
(
res
)
}).
catch
((
error
)
=>
{
reject
(
error
)
})
})
}
src/views/components/quickSendGame/sendGame.vue
浏览文件 @
674bfd26
...
@@ -140,6 +140,22 @@
...
@@ -140,6 +140,22 @@
<p
class=
"sendLink"
@
click=
"handleGameType(items, item, item.game_type, index)"
>
<p
class=
"sendLink"
@
click=
"handleGameType(items, item, item.game_type, index)"
>
发送落地页
发送落地页
</p>
</p>
<div
v-if=
"items.game_type == 1"
>
<!-- 发送 H5 安卓分身包 -->
<p
class=
"sendLink"
@
click=
"sendH5CloneGame(items,'android')"
>
发送H5-安卓分身包
</p>
<!-- 发送 H5 IOS 分身包 -->
<p
class=
"sendLink"
@
click=
"sendH5CloneGame(items,'ios')"
>
发送H5-IOS分身包
</p>
</div>
<el-button
slot=
"reference"
size=
"mini"
:disabled=
"accountSelect == ''"
>
发送
</el-button>
<el-button
slot=
"reference"
size=
"mini"
:disabled=
"accountSelect == ''"
>
发送
</el-button>
</el-popover>
</el-popover>
<el-button
v-else
size=
"mini"
:disabled=
"accountSelect == ''"
<el-button
v-else
size=
"mini"
:disabled=
"accountSelect == ''"
...
@@ -195,6 +211,7 @@ import {
...
@@ -195,6 +211,7 @@ import {
quickRecallChannelLink
,
quickRecallChannelLink
,
recallChannelSeq
,
recallChannelSeq
,
getLandingPageMemberLink
,
getLandingPageMemberLink
,
getClonePackageLink
,
getLandingPageConfig
,
getLandingPageConfig
,
getMemberTransStatus
getMemberTransStatus
}
from
'@/api/game'
}
from
'@/api/game'
...
@@ -208,7 +225,7 @@ import SendTransAppGame from './sendGame/SendTransAppGame.vue'
...
@@ -208,7 +225,7 @@ import SendTransAppGame from './sendGame/SendTransAppGame.vue'
import
selectChannel
from
'./sendGame/selectChannel.vue'
import
selectChannel
from
'./sendGame/selectChannel.vue'
import
sendSelectChannel
from
'./sendGame/sendSelectChannel.vue'
import
sendSelectChannel
from
'./sendGame/sendSelectChannel.vue'
import
gameLogMixin
from
'@/mixins/gameLogMixin'
import
gameLogMixin
from
'@/mixins/gameLogMixin'
import
{
sendChatMessage
}
from
'@/utils/index'
export
default
{
export
default
{
name
:
'sendGame'
,
name
:
'sendGame'
,
mixins
:
[
gameLogMixin
],
mixins
:
[
gameLogMixin
],
...
@@ -303,6 +320,27 @@ export default {
...
@@ -303,6 +320,27 @@ export default {
this
.
showLayer
=
true
this
.
showLayer
=
true
}
}
},
},
async
sendH5CloneGame
(
items
,
type
)
{
const
res
=
await
getClonePackageLink
({
mini_game_id
:
items
.
main_game_id
})
if
(
res
.
status_code
==
1
)
{
if
(
type
==
'android'
&&
!
res
?.
data
?.
data
?.
android_download_url
){
this
.
$message
.
warning
(
'安卓分身包链接不存在'
)
return
}
else
if
(
type
==
'ios'
&&
!
res
?.
data
?.
data
?.
ios_download_url
){
this
.
$message
.
warning
(
'IOS分身包链接不存在'
)
return
}
let
srt
=
''
if
(
type
==
'android'
){
srt
=
'安卓分身包链接: '
+
res
.
data
.
data
.
android_download_url
}
else
{
srt
=
'IOS分身包链接: '
+
res
.
data
.
data
.
ios_download_url
}
sendChatMessage
(
srt
,
'text'
)
}
else
{
this
.
$message
.
warning
(
res
.
msg
)
}
},
requestConfig
()
{
requestConfig
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
companyviewConfig
({
corp_id
:
this
.
corp_id
}).
then
((
res
)
=>
{
companyviewConfig
({
corp_id
:
this
.
corp_id
}).
then
((
res
)
=>
{
...
...
src/views/components/quickSendGame/sendGame/lastLogin.vue
0 → 100644
浏览文件 @
674bfd26
<!--
* @Author: maoxiya 937667504@qq.com
* @Date: 2025-09-22 18:18:27
* @LastEditors: maoxiya 937667504@qq.com
* @LastEditTime: 2025-09-22 19:20:09
* @FilePath: /company_wx_frontend/src/views/works/component/gameInfo/lastLogin.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<
template
>
<div
class=
"lastLogin"
>
<el-popover
placement=
"top"
trigger=
"click"
title=
"最近登录"
>
<div
class=
"lastLoginContent"
v-if=
"loginInfo.game_id"
>
<div
class=
"lastLoginContentItem rowFlex columnCenter"
>
<div
class=
"lastLoginContentItemTitle"
style=
"color: #999;margin-right: 10px;"
>
马甲包:
</div>
<div
class=
"lastLoginContentItemContent"
>
{{
`${loginInfo.game_name
}
- ${loginInfo.game_id
}
`
}}
<
/div
>
<
/div
>
<
div
class
=
"lastLoginContentItem rowFlex columnCenter"
>
<
div
class
=
"lastLoginContentItemTitle"
style
=
"color: #999;margin-right: 10px;"
>
角色名
:
<
/div
>
<
div
class
=
"lastLoginContentItemContent"
>
{{
loginInfo
.
role_name
||
'-'
}}
<
/div
>
<
/div
>
<
div
class
=
"lastLoginContentItem rowFlex columnCenter"
>
<
div
class
=
"lastLoginContentItemTitle"
style
=
"color: #999;margin-right: 10px;"
>
登录时间
:
<
/div
>
<
div
class
=
"lastLoginContentItemContent"
>
{{
loginInfo
.
login_time
||
'-'
}}
<
/div
>
<
/div
>
<
/div
>
<
div
v
-
else
>
暂无最近登录
<
/div
>
<
el
-
button
slot
=
"reference"
@
click
=
"lastLogin"
type
=
"text"
>
近期登录
<
/el-button
>
<
/el-popover
>
<
/div
>
<
/template
>
<
script
>
import
{
getRecentRoleLoginLog
}
from
'@/api/game'
;
import
{
mapState
}
from
'vuex'
;
export
default
{
name
:
'LastLogin'
,
data
()
{
return
{
loginInfo
:
{
}
}
}
,
computed
:
{
...
mapState
(
'game'
,
[
'accountSelect'
])
}
,
methods
:
{
async
lastLogin
()
{
try
{
const
res
=
await
getRecentRoleLoginLog
({
member_id
:
this
.
accountSelect
}
)
if
(
res
.
status_code
==
1
&&
res
?.
data
?.
data
){
this
.
loginInfo
=
res
.
data
.
data
}
else
{
this
.
loginInfo
=
{
}
this
.
$message
.
error
(
res
.
msg
)
}
}
catch
(
error
)
{
console
.
log
(
error
)
}
}
}
}
<
/script
>
<
style
scoped
lang
=
"scss"
>
.
lastLogin
{
.
lastLoginContent
{
.
lastLoginContentItemTitle
{
color
:
#
999
;
font
-
size
:
14
px
;
font
-
weight
:
400
;
margin
-
right
:
10
px
;
}
.
lastLoginContentItemContent
{
font
-
size
:
14
px
;
font
-
weight
:
500
;
color
:
#
333333
;
}
}
}
<
/style
>
src/views/userInfo/components/gameInfo/gameUserInfo.vue
浏览文件 @
674bfd26
...
@@ -31,7 +31,7 @@
...
@@ -31,7 +31,7 @@
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"rowFlex"
>
<div
class=
"rowFlex"
>
<span
class=
"label"
style=
"min-width:40px;"
>
账号:
</span>
<span
class=
"label"
style=
"min-width:40px;"
>
账号:
</span>
<p
class=
"text"
>
{{
gameUserInfo
.
username
}}
<span
v-if=
"gameUserInfo.account_type==2"
class=
"account_type"
>
(内) 勿回,找组长!!!
</span></p>
<p
class=
"text"
>
{{
gameUserInfo
.
username
}}
<span
v-if=
"gameUserInfo.account_type==2"
class=
"account_type"
>
(内) 勿回,找组长!!!
</span>
<LastLogin/>
</p>
</div>
</div>
</div>
</div>
<!-- 营销面板 -->
<!-- 营销面板 -->
...
@@ -304,11 +304,13 @@ import MarketingPanel from './MarketingPanel.vue';
...
@@ -304,11 +304,13 @@ import MarketingPanel from './MarketingPanel.vue';
import
moment
from
'moment'
;
import
moment
from
'moment'
;
import
ZyouTag
from
'./ZyouTag.vue'
;
import
ZyouTag
from
'./ZyouTag.vue'
;
import
{
debounce
}
from
'@/utils'
;
import
{
debounce
}
from
'@/utils'
;
import
LastLogin
from
'@/views/components/quickSendGame/sendGame/lastLogin.vue'
;
export
default
{
export
default
{
name
:
'gameUserInfo'
,
name
:
'gameUserInfo'
,
components
:
{
components
:
{
ZyouTag
,
ZyouTag
,
MarketingPanel
,
MarketingPanel
,
LastLogin
,
},
},
props
:
[
'gameUserInfo'
,
'chatUserDetails'
],
props
:
[
'gameUserInfo'
,
'chatUserDetails'
],
data
()
{
data
()
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论