Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-dml
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-dml
Commits
365c970d
提交
365c970d
authored
6月 14, 2023
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: 用户画像增加查看事件详情
上级
66090fd0
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
28 行增加
和
11 行删除
+28
-11
base.ts
src/api/base.ts
+5
-0
ViewEvent.vue
src/components/ViewEvent.vue
+2
-2
api.ts
src/modules/home/api.ts
+0
-5
Index.vue
src/modules/home/views/Index.vue
+1
-1
Image.vue
src/modules/user/views/Image.vue
+20
-3
没有找到文件。
src/api/base.ts
浏览文件 @
365c970d
...
@@ -110,3 +110,8 @@ export function searchMetaMemberAttrs(params?: {
...
@@ -110,3 +110,8 @@ export function searchMetaMemberAttrs(params?: {
})
{
})
{
return
httpRequest
.
get
(
'/api/lab/v1/experiment/meta-member/search-attributes'
,
{
params
})
return
httpRequest
.
get
(
'/api/lab/v1/experiment/meta-member/search-attributes'
,
{
params
})
}
}
// 事件属性列表
export
function
getMemberEvents
()
{
return
httpRequest
.
get
(
'/api/lab/v1/experiment/member/events'
)
}
src/
modules/home/
components/ViewEvent.vue
→
src/components/ViewEvent.vue
浏览文件 @
365c970d
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
getMe
taEventList
}
from
'../api
'
import
{
getMe
mberEvents
}
from
'@/api/base
'
const
props
=
defineProps
<
{
event
:
any
;
user
:
any
}
>
()
const
props
=
defineProps
<
{
event
:
any
;
user
:
any
}
>
()
const
metaEventList
=
ref
([])
const
metaEventList
=
ref
([])
async
function
fetchMetaEventList
()
{
async
function
fetchMetaEventList
()
{
const
res
=
await
getMe
taEventList
()
const
res
=
await
getMe
mberEvents
()
metaEventList
.
value
=
res
.
data
metaEventList
.
value
=
res
.
data
}
}
onMounted
(
fetchMetaEventList
)
onMounted
(
fetchMetaEventList
)
...
...
src/modules/home/api.ts
浏览文件 @
365c970d
...
@@ -14,8 +14,3 @@ export function getMembersList() {
...
@@ -14,8 +14,3 @@ export function getMembersList() {
export
function
getEventList
(
params
:
{
member_id
:
string
})
{
export
function
getEventList
(
params
:
{
member_id
:
string
})
{
return
httpRequest
.
get
(
'/api/lab/v1/experiment/index/events'
,
{
params
})
return
httpRequest
.
get
(
'/api/lab/v1/experiment/index/events'
,
{
params
})
}
}
// 事件属性列表
export
function
getMetaEventList
()
{
return
httpRequest
.
get
(
'/api/lab/v1/experiment/member/events'
)
}
src/modules/home/views/Index.vue
浏览文件 @
365c970d
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
import
{
getExperimentData
,
getMembersList
,
getEventList
}
from
'../api'
import
{
getExperimentData
,
getMembersList
,
getEventList
}
from
'../api'
import
Icon
from
'@/components/ConnectionIcon.vue'
import
Icon
from
'@/components/ConnectionIcon.vue'
// import { useMapStore } from '@/stores/map'
// import { useMapStore } from '@/stores/map'
const
ViewEvent
=
defineAsyncComponent
(()
=>
import
(
'
..
/components/ViewEvent.vue'
))
const
ViewEvent
=
defineAsyncComponent
(()
=>
import
(
'
@
/components/ViewEvent.vue'
))
// 左边展示数据
// 左边展示数据
let
leftData
=
$ref
<
{
let
leftData
=
$ref
<
{
...
...
src/modules/user/views/Image.vue
浏览文件 @
365c970d
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
UserFilled
}
from
'@element-plus/icons-vue'
//
import { UserFilled } from '@element-plus/icons-vue'
import
{
getMemberImage
,
getMemberFieldsList
}
from
'../api'
import
{
getMemberImage
,
getMemberFieldsList
}
from
'../api'
import
type
{
MemberFieldsProp
,
ImageProp
}
from
'../types'
import
type
{
MemberFieldsProp
,
ImageProp
}
from
'../types'
import
Icon
from
'@/components/ConnectionIcon.vue'
import
Icon
from
'@/components/ConnectionIcon.vue'
const
ViewEvent
=
defineAsyncComponent
(()
=>
import
(
'@/components/ViewEvent.vue'
))
const
route
=
useRoute
()
const
route
=
useRoute
()
// 画像数据
// 画像数据
...
@@ -34,6 +37,13 @@ const getFields = function (data: { fields: any }) {
...
@@ -34,6 +37,13 @@ const getFields = function (data: { fields: any }) {
const
getDate
=
function
(
date
:
string
)
{
const
getDate
=
function
(
date
:
string
)
{
return
parseInt
(
date
.
slice
(
date
.
indexOf
(
' '
),
date
.
indexOf
(
' '
)
+
3
))
>
12
?
'下午'
:
'上午'
return
parseInt
(
date
.
slice
(
date
.
indexOf
(
' '
),
date
.
indexOf
(
' '
)
+
3
))
>
12
?
'下午'
:
'上午'
}
}
const
viewEventVisible
=
ref
(
false
)
const
currentViewEvent
=
ref
()
function
handleViewEvent
(
item
:
any
)
{
viewEventVisible
.
value
=
true
currentViewEvent
.
value
=
item
}
</
script
>
</
script
>
<
template
>
<
template
>
...
@@ -138,7 +148,7 @@ const getDate = function (date: string) {
...
@@ -138,7 +148,7 @@ const getDate = function (date: string) {
</AppCard>
</AppCard>
<AppCard
class=
"card"
title=
"用户行为轨迹"
>
<AppCard
class=
"card"
title=
"用户行为轨迹"
>
<el-empty
v-if=
"!data?.events?.list || !data?.events?.list.length"
description=
"暂无数据"
:image-size=
"80"
/>
<el-empty
v-if=
"!data?.events?.list || !data?.events?.list.length"
description=
"暂无数据"
:image-size=
"80"
/>
<div
class=
"event-box"
v-for=
"item in data?.events?.list"
v-else
>
<div
class=
"event-box"
v-for=
"item in data?.events?.list"
:key=
"item.id"
v-else
>
<div
class=
"date"
>
{{ item.updated_time?.slice(0, item.updated_time.indexOf(' ')) }}
</div>
<div
class=
"date"
>
{{ item.updated_time?.slice(0, item.updated_time.indexOf(' ')) }}
</div>
<div
class=
"event-content"
>
<div
class=
"event-content"
>
<div
class=
"time"
>
<div
class=
"time"
>
...
@@ -147,12 +157,19 @@ const getDate = function (date: string) {
...
@@ -147,12 +157,19 @@ const getDate = function (date: string) {
</div>
</div>
<Icon
class=
"icon"
:multicolour=
"true"
:name=
"item.connection_type"
w=
"20"
h=
"20"
></Icon>
<Icon
class=
"icon"
:multicolour=
"true"
:name=
"item.connection_type"
w=
"20"
h=
"20"
></Icon>
<div
class=
"event"
>
<div
class=
"event"
>
在
<span>
"{{ item.connection_name }}"
</span>
上
<span>
"{{ item.event_name }}"
</span>
在
<span>
"{{ item.connection_name }}"
</span>
上
<span
style=
"cursor: pointer"
@
click=
"handleViewEvent(item)"
>
"{{ item.event_name }}"
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</AppCard>
</AppCard>
</div>
</div>
<!-- 事件详情 -->
<ViewEvent
v-model=
"viewEventVisible"
:event=
"currentViewEvent"
:user=
"data"
v-if=
"viewEventVisible && currentViewEvent"
></ViewEvent>
</template>
</template>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.info-box
{
.info-box
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论