Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-dml
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-dml
Commits
3aa94114
提交
3aa94114
authored
8月 17, 2023
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: 事件属性新增自动补全
上级
74eaef0e
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
26 行增加
和
64 行删除
+26
-64
base.ts
src/api/base.ts
+7
-13
EventRule.vue
src/components/rule/EventRule.vue
+19
-51
没有找到文件。
src/api/base.ts
浏览文件 @
3aa94114
...
...
@@ -86,13 +86,7 @@ export function updateMaterial(data: { name: string; content: string; status: st
}
// 资料列表
export
function
getMaterialList
(
params
?:
{
name
:
string
type
:
string
id
:
string
status
:
string
updated_operator
:
string
})
{
export
function
getMaterialList
(
params
?:
{
name
:
string
;
type
:
string
;
id
:
string
;
status
:
string
;
updated_operator
:
string
})
{
return
httpRequest
.
get
(
'/api/lab/v1/experiment/marketing-material/list'
,
{
params
})
}
...
...
@@ -102,12 +96,7 @@ export function deleteMaterial(data: { id: string }) {
}
// 用户属性搜索
export
function
searchMetaMemberAttrs
(
params
?:
{
search
:
string
member_meta_id
?:
string
page
?:
number
per_page
?:
number
})
{
export
function
searchMetaMemberAttrs
(
params
?:
{
search
:
string
;
member_meta_id
?:
string
;
page
?:
number
;
per_page
?:
number
})
{
return
httpRequest
.
get
(
'/api/lab/v1/experiment/meta-member/search-attributes'
,
{
params
})
}
...
...
@@ -115,3 +104,8 @@ export function searchMetaMemberAttrs(params?: {
export
function
getMemberEvents
()
{
return
httpRequest
.
get
(
'/api/lab/v1/experiment/member/events'
)
}
// 用户属性搜索
export
function
searchEventAttrs
(
params
?:
{
search
:
string
;
experiment_meta_event_id
?:
string
;
page
?:
number
;
per_page
?:
number
})
{
return
httpRequest
.
get
(
'/api/lab/v1/experiment/event/search-attributes'
,
{
params
})
}
src/components/rule/EventRule.vue
浏览文件 @
3aa94114
...
...
@@ -2,13 +2,8 @@
import
type
{
EventRule
,
EventRuleItem
,
RuleAttr
}
from
'@/types'
import
{
Operation
,
Plus
,
CloseBold
}
from
'@element-plus/icons-vue'
import
{
useMetaEvent
}
from
'@/composables/useAllData'
import
{
stringOperatorList
,
numberOperatorList
,
dateOperatorList
,
happenInfoList
,
triggerInfoList
}
from
'@/utils/dictionary'
import
{
stringOperatorList
,
numberOperatorList
,
dateOperatorList
,
happenInfoList
,
triggerInfoList
}
from
'@/utils/dictionary'
import
{
searchEventAttrs
}
from
'@/api/base'
const
eventAttrRule
=
ref
(
inject
(
'eventAttrRule'
)
as
EventRule
)
...
...
@@ -107,6 +102,12 @@ function handleTriggerOperateChange(value: string, item: EventRuleItem) {
item
.
trigger_info
.
operate_name
=
found
?.
label
||
''
item
.
trigger_info
.
value
=
''
}
function
querySearch
(
item
:
RuleAttr
,
search
:
string
,
cb
:
(
arg
:
any
)
=>
void
)
{
searchEventAttrs
({
search
,
experiment_meta_event_id
:
item
.
attr_id
,
per_page
:
100
}).
then
(
res
=>
{
cb
(
res
.
data
.
list
)
})
}
</
script
>
<
template
>
...
...
@@ -124,47 +125,29 @@ function handleTriggerOperateChange(value: string, item: EventRuleItem) {
<el-row>
<!-- 发生 -->
<el-form-item>
<el-select
v-model=
"rule.happen_info.is_happened"
@
change=
"value => handleHappenOperateChange(value, rule)"
>
<el-select
v-model=
"rule.happen_info.is_happened"
@
change=
"value => handleHappenOperateChange(value, rule)"
>
<el-option
v-for=
"option in happenInfoList"
:key=
"option.label"
v-bind=
"option"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-select
v-model=
"rule.happen_info.event_id"
@
change=
"value => handleEventChange(value, rule)"
>
<el-option
v-for=
"option in metaEventList"
:key=
"option.id"
:label=
"option.name"
:value=
"option.id"
></el-option>
<el-option
v-for=
"option in metaEventList"
:key=
"option.id"
:label=
"option.name"
:value=
"option.id"
></el-option>
</el-select>
</el-form-item>
<el-button
text
:icon=
"Plus"
@
click=
"handleAttrAdd(rule.happen_info.attr_list)"
>
添加条件
</el-button>
<el-button
text
:icon=
"CloseBold"
@
click=
"handleRemove(eventAttrRule.items, index)"
></el-button>
</el-row>
<!-- 属性条件 -->
<el-row
justify=
"space-between"
class=
"rule-item"
v-for=
"(attr, index) in rule.happen_info.attr_list"
:key=
"index"
>
<el-row
justify=
"space-between"
class=
"rule-item"
v-for=
"(attr, index) in rule.happen_info.attr_list"
:key=
"index"
>
<div>
<el-form-item>
<el-select
v-model=
"attr.attr_id"
@
change=
"value => handleAttrChange(value, attr, rule)"
>
<el-option
v-for=
"option in getEventAttrList(rule.happen_info.event_id)"
:key=
"option.id"
:label=
"option.name"
:value=
"option.id"
></el-option>
<el-option
v-for=
"option in getEventAttrList(rule.happen_info.event_id)"
:key=
"option.id"
:label=
"option.name"
:value=
"option.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-select
v-model=
"attr.operate"
@
change=
"value => handleOperateChange(value, attr)"
>
<el-option
v-for=
"option in getOperatorList(attr.attr_type)"
:key=
"option.value"
:label=
"option.alias || option.label"
:value=
"option.value"
></el-option>
<el-option
v-for=
"option in getOperatorList(attr.attr_type)"
:key=
"option.value"
:label=
"option.alias || option.label"
:value=
"option.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item
v-if=
"!['null', 'not null'].includes(attr.operate)"
>
...
...
@@ -180,29 +163,18 @@ function handleTriggerOperateChange(value: string, item: EventRuleItem) {
</
template
>
<!-- 时间区间 -->
<
template
v-else-if=
"attr.attr_type === '5' && attr.operate === 'range'"
>
<el-date-picker
v-model=
"attr.value.start"
type=
"datetime"
value-format=
"YYYY-MM-DD HH:mm:ss"
style=
"width: 180px"
/>
<el-date-picker
v-model=
"attr.value.end"
type=
"datetime"
value-format=
"YYYY-MM-DD HH:mm:ss"
style=
"width: 180px"
/>
<el-date-picker
v-model=
"attr.value.start"
type=
"datetime"
value-format=
"YYYY-MM-DD HH:mm:ss"
style=
"width: 180px"
/>
<el-date-picker
v-model=
"attr.value.end"
type=
"datetime"
value-format=
"YYYY-MM-DD HH:mm:ss"
style=
"width: 180px"
/>
</
template
>
<
template
v-else-if=
"attr.attr_type === '4' && (attr.operate === 'after' || attr.operate === 'before')"
>
<el-date-picker
v-model=
"attr.value"
type=
"date"
value-format=
"YYYY-MM-DD"
/>
</
template
>
<
template
v-else-if=
"attr.attr_type === '5' && (attr.operate === 'after' || attr.operate === 'before')"
>
<el-date-picker
v-model=
"attr.value"
type=
"datetime"
value-format=
"YYYY-MM-DD HH:mm:ss"
style=
"width: 180px"
/>
<el-date-picker
v-model=
"attr.value"
type=
"datetime"
value-format=
"YYYY-MM-DD HH:mm:ss"
style=
"width: 180px"
/>
</
template
>
<
template
v-else
>
<el-input
v-model=
"attr.value"
/>
<!--
<el-input
v-model=
"attr.value"
/>
-->
<el-autocomplete
v-model=
"attr.value"
value-key=
"attr_value"
:fetch-suggestions=
"(query, cb) => querySearch(attr, query, cb)"
/>
</
template
>
</el-form-item>
</div>
...
...
@@ -217,11 +189,7 @@ function handleTriggerOperateChange(value: string, item: EventRuleItem) {
</el-form-item>
<el-form-item>
<el-select
v-model=
"rule.trigger_info.operate"
@
change=
"value => handleTriggerOperateChange(value, rule)"
>
<el-option
v-for=
"option in triggerNumberOperatorList"
:key=
"option.value"
:label=
"option.alias || option.label"
:value=
"option.value"
/>
<el-option
v-for=
"option in triggerNumberOperatorList"
:key=
"option.value"
:label=
"option.alias || option.label"
:value=
"option.value"
/>
</el-select>
</el-form-item>
<el-form-item>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论