Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-dml
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-dml
Commits
97377249
提交
97377249
authored
4月 24, 2023
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: update
上级
22d768cd
隐藏空白字符变更
内嵌
并排
正在显示
19 个修改的文件
包含
301 行增加
和
78 行删除
+301
-78
CustomNode.vue
src/components/flow/CustomNode.vue
+1
-1
RuleTemplate.vue
src/components/flow/components/RuleTemplate.vue
+100
-10
Rule.vue
...w/components/conditionalBranch/attributeJudgment/Rule.vue
+6
-3
Rule.vue
.../flow/components/conditionalBranch/eventJudgment/Rule.vue
+13
-2
Config.vue
...low/components/conditionalBranch/groupJudgment/Config.vue
+7
-1
Rule.vue
.../flow/components/conditionalBranch/groupJudgment/Rule.vue
+18
-3
Rule.vue
.../flow/components/conditionalBranch/labelJudgment/Rule.vue
+21
-3
Config.vue
.../flow/components/conditionalBranch/offiaccount/Config.vue
+9
-0
Rule.vue
...ts/flow/components/conditionalBranch/offiaccount/Rule.vue
+11
-3
Config.vue
...flow/components/conditionalBranch/timeJudgment/Config.vue
+15
-2
ConfigView.vue
.../components/conditionalBranch/timeJudgment/ConfigView.vue
+7
-18
Rule.vue
...s/flow/components/conditionalBranch/timeJudgment/Rule.vue
+10
-2
Rule.vue
...ents/flow/components/marketingAction/changeProps/Rule.vue
+21
-3
Config.vue
...s/flow/components/marketingAction/delayProcess/Config.vue
+11
-1
ConfigView.vue
...ow/components/marketingAction/delayProcess/ConfigView.vue
+2
-17
Rule.vue
...nts/flow/components/marketingAction/delayProcess/Rule.vue
+8
-2
Rule.vue
...onents/flow/components/marketingAction/joinGroup/Rule.vue
+18
-3
Rule.vue
...nents/flow/components/marketingAction/leaveGroup/Rule.vue
+18
-3
useAllData.ts
src/components/flow/composables/useAllData.ts
+5
-1
没有找到文件。
src/components/flow/CustomNode.vue
浏览文件 @
97377249
...
...
@@ -55,7 +55,7 @@ const component = computed(() => {
defineAsyncComponent
(()
=>
import
(
'./components/conditionalBranch/labelJudgment/Index.vue'
))
)
}
return
allComponent
[
props
.
node
?.
data
.
component_name
]
return
allComponent
[
props
.
node
?.
data
.
component_name
||
props
.
node
?.
data
.
componentName
]
})
</
script
>
...
...
src/components/flow/components/RuleTemplate.vue
浏览文件 @
97377249
<!-- 组件数据规则 -->
<
script
setup
lang=
"ts"
>
import
type
{
FormInstance
,
FormRules
}
from
'element-plus'
import
type
{
FormInstance
}
from
'element-plus'
import
{
SuccessFilled
,
CircleCloseFilled
}
from
'@element-plus/icons-vue'
import
{
useQueryUser
}
from
'../composables/useQueryUser'
...
...
@@ -23,10 +23,12 @@ const form = reactive({
correct_operation_rule
:
1
,
correct_operation_method
:
1
,
correct_operation_method_value
:
undefined
,
correct_operation_method_fail_value
:
undefined
,
error_operation_type
:
1
,
error_operation_rule
:
1
,
error_operation_method
:
1
,
error_operation_method_value
:
undefined
error_operation_method_value
:
undefined
,
error_operation_method_fail_value
:
undefined
})
// 满足答案的用户数
...
...
@@ -64,8 +66,6 @@ watch(expectedTotal, value => {
form
.
expected_user_total
=
value
})
const
rules
=
ref
<
FormRules
>
({})
const
stepActive
=
ref
(
0
)
const
stepMaxNum
=
ref
(
2
)
...
...
@@ -115,7 +115,7 @@ async function handleCalculate() {
<el-dialog
:title=
"title"
append-to-body
width=
"800px"
class=
"rule-template"
>
<slot
:model=
"form"
>
<slot
name=
"header"
>
<el-form
ref=
"formRef"
:model=
"form"
:rules=
"rules"
label-suffix=
":"
>
<el-form
ref=
"formRef"
:model=
"form"
label-suffix=
":"
>
<el-row
justify=
"space-between"
>
<slot
name=
"header-form-prepend"
:model=
"form"
></slot>
<el-form-item
label=
"组件名称"
>
{{
node
.
data
.
name
}}
</el-form-item>
...
...
@@ -139,7 +139,9 @@ async function handleCalculate() {
</el-form-item>
<el-form-item
label=
"上一节点用户总数"
v-else
>
<div>
<p
class=
"rule-num"
>
正确:
{{
prevNodeRule
.
correct_operation_user_total
||
prevNodeRule
.
expected_user_total
}}
</p>
<p
class=
"rule-num"
>
正确:
{{
prevNodeRule
.
correct_operation_user_total
||
prevNodeRule
.
expected_user_total
}}
</p>
<p
class=
"rule-num"
>
错误:
{{
prevNodeRule
.
correct_operation_user_total
||
0
}}
</p>
</div>
<!--
<el-button
type=
"primary"
:loading=
"isCalculating"
@
click=
"handleCalculate"
>
计算
</el-button>
-->
...
...
@@ -236,20 +238,80 @@ async function handleCalculate() {
<
template
v-if=
"node.data.type === 2"
>
<header
class=
"rule-result-header"
>
<p>
用户总数:
{{
form
.
user_total
}}
</p>
<p
v-if=
"node.data.type === 1"
>
满足答案的用户总数:
{{
expectedUserTotalText
}}
</p>
<p
v-else
>
上一节点用户总数:
{{
prevNodeExpectedTotal
}}
</p>
<p>
满足答案的用户总数:
{{
expectedUserTotalText
}}
</p>
</header>
<section
class=
"rule-result-body"
>
<div
class=
"rule-result-col"
>
<p
class=
"rule-result-tips"
>
<el-icon
class=
"is-success"
><SuccessFilled
/></el-icon>
操作正确,选取数据数量:
</p>
<el-form-item
label=
"选取规则"
>
<el-radio-group
v-model=
"form.correct_operation_rule"
>
<el-radio
:label=
"1"
>
随机
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"选取方式"
>
<el-radio-group
v-model=
"form.correct_operation_method"
>
<el-radio
:label=
"1"
>
百分比
</el-radio>
<el-radio
:label=
"2"
>
数值
</el-radio>
</el-radio-group>
</el-form-item>
<template
v-if=
"form.correct_operation_method === 1"
>
<el-form-item
label=
"成功"
>
<el-input-number
v-model=
"form.correct_operation_method_value"
:controls=
"false"
:max=
"100"
/>
%
</el-form-item>
<el-form-item
label=
"失败"
>
<el-input-number
v-model=
"form.correct_operation_method_fail_value"
:controls=
"false"
:max=
"100"
/>
%
</el-form-item>
</
template
>
<
template
v-else
>
<el-form-item
label=
"成功"
>
<el-input-number
v-model=
"form.correct_operation_method_value"
:controls=
"false"
/>
</el-form-item>
<el-form-item
label=
"失败"
>
<el-input-number
v-model=
"form.correct_operation_method_fail_value"
:controls=
"false"
/>
</el-form-item>
</
template
>
</div>
<el-divider
direction=
"vertical"
style=
"height: auto"
/>
<div
class=
"rule-result-col"
>
<p
class=
"rule-result-tips"
>
<el-icon
class=
"is-error"
><CircleCloseFilled
/></el-icon>
操作错误,选取数据数量:
</p>
<el-form-item
label=
"选取规则"
>
<el-radio-group
v-model=
"form.error_operation_rule"
>
<el-radio
:label=
"1"
>
随机
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"选取方式"
>
<el-radio-group
v-model=
"form.error_operation_method"
>
<el-radio
:label=
"1"
>
百分比
</el-radio>
<el-radio
:label=
"2"
>
数值
</el-radio>
</el-radio-group>
</el-form-item>
<
template
v-if=
"form.error_operation_method === 1"
>
<el-form-item
label=
"成功"
>
<el-input-number
v-model=
"form.error_operation_method_value"
:controls=
"false"
:max=
"100"
/>
%
</el-form-item>
<el-form-item
label=
"失败"
>
<el-input-number
v-model=
"form.error_operation_method_fail_value"
:controls=
"false"
:max=
"100"
/>
%
</el-form-item>
</
template
>
<
template
v-else
>
<el-form-item
label=
"成功"
>
<el-input-number
v-model=
"form.error_operation_method_value"
:controls=
"false"
/>
</el-form-item>
<el-form-item
label=
"失败"
>
<el-input-number
v-model=
"form.error_operation_method_fail_value"
:controls=
"false"
/>
</el-form-item>
</
template
>
</div>
</section>
</template>
...
...
@@ -315,7 +377,32 @@ async function handleCalculate() {
</
template
>
<!-- 营销动作 -->
<
template
v-if=
"node.data.type === 2"
>
</
template
>
<
template
v-if=
"node.data.type === 2"
>
<header
class=
"rule-result-header"
>
<p>
用户总数:
{{
form
.
user_total
}}
</p>
<p>
上一节点用户总数:
{{
prevNodeExpectedTotal
}}
</p>
</header>
<section
class=
"rule-result-body"
>
<div
class=
"rule-result-col"
>
<p
class=
"rule-result-tips"
>
<el-icon
class=
"is-success"
><SuccessFilled
/></el-icon>
操作正确,选取数据数量:
</p>
<el-form-item
label=
"成功"
></el-form-item>
<el-form-item
label=
"失败"
>
</el-form-item>
</div>
<el-divider
direction=
"vertical"
style=
"height: auto"
/>
<div
class=
"rule-result-col"
>
<p
class=
"rule-result-tips"
>
<el-icon
class=
"is-error"
><CircleCloseFilled
/></el-icon>
操作错误,选取数据数量:
</p>
<el-form-item
label=
"成功"
>
</el-form-item>
<el-form-item
label=
"失败"
>
</el-form-item>
</div>
</section>
<el-row
justify=
"center"
style=
"margin-top: 20px"
>
<el-button
type=
"primary"
:loading=
"isCalculating"
@
click=
"handleCalculate"
>
计算
</el-button>
</el-row>
</
template
>
<!-- 条件判断 -->
<
template
v-if=
"node.data.type === 3"
>
...
...
@@ -330,7 +417,7 @@ async function handleCalculate() {
</p>
<el-form-item
label=
"满足判断条件数据"
>
{{
form
.
expected_user_total
}}
</el-form-item>
<el-form-item
label=
"不满足判断条件数据"
>
{{
prevNodeExpectedTotal
-
(
form
.
expected_user_total
||
0
)
}}
{{
Math
.
max
(
prevNodeExpectedTotal
-
(
form
.
expected_user_total
||
0
),
0
)
}}
</el-form-item>
</div>
<el-divider
direction=
"vertical"
style=
"height: auto"
/>
...
...
@@ -431,5 +518,8 @@ async function handleCalculate() {
.is-answer
{
color
:
#81b337
;
}
.is-operate
{
color
:
blue
;
}
}
</
style
>
src/components/flow/components/conditionalBranch/attributeJudgment/Rule.vue
浏览文件 @
97377249
...
...
@@ -18,9 +18,12 @@ function paramsParse(data: any) {
<
template
>
<RuleTemplate
:node=
"node"
step
:paramsParse=
"paramsParse"
>
<template
#
header-answer
>
<span
class=
"is-answer"
v-for=
"(item, index) in config.rules"
:key=
"index"
>
{{
getUserAttr
(
item
.
attr_id
)?.
name
}}
{{
item
.
operate
}}
{{
item
.
value
}}
</span>
<p
v-for=
"(item, index) in config.rules"
:key=
"index"
>
<span>
{{
getUserAttr
(
item
.
attr_id
)?.
name
}}
</span>
<span
class=
"is-operate"
>
{{
item
.
operate
}}
</span>
<span
class=
"is-answer"
>
{{
item
.
value
}}
</span>
</p>
</
template
>
</RuleTemplate>
</template>
src/components/flow/components/conditionalBranch/eventJudgment/Rule.vue
浏览文件 @
97377249
<
script
setup
lang=
"ts"
>
import
RuleTemplate
from
'../../RuleTemplate.vue'
import
{
useMetaEvent
}
from
'../../../composables/useAllData'
defineProps
<
{
node
:
any
}
>
()
const
{
getMetaEvent
}
=
useMetaEvent
()
const
props
=
defineProps
<
{
node
:
any
}
>
()
const
config
=
computed
(()
=>
{
return
props
.
node
.
data
.
teacher
||
{}
})
const
metaEvent
=
computed
(()
=>
getMetaEvent
(
config
.
value
?.
event_id
))
</
script
>
<
template
>
<RuleTemplate
:node=
"node"
step
>
<template
#
header-answer
>
答案
</
template
>
<template
#
header-answer
>
<span
class=
"is-answer"
>
{{
metaEvent
?.
name
}}
</span>
</
template
>
</RuleTemplate>
</template>
src/components/flow/components/conditionalBranch/groupJudgment/Config.vue
浏览文件 @
97377249
...
...
@@ -8,13 +8,19 @@ const role = inject('role') as string
const
form
=
reactive
({
in_group
:
''
,
group_id
:
''
in_group_name
:
''
,
group_id
:
''
,
group_name
:
''
})
watchEffect
(()
=>
{
Object
.
assign
(
form
,
props
.
node
.
data
[
role
])
})
const
{
groupList
}
=
useGroup
()
watchEffect
(()
=>
{
form
.
group_name
=
groupList
.
value
.
find
(
item
=>
item
.
id
===
form
.
group_id
)?.
name
||
''
})
</
script
>
<
template
>
...
...
src/components/flow/components/conditionalBranch/groupJudgment/Rule.vue
浏览文件 @
97377249
<
script
setup
lang=
"ts"
>
import
RuleTemplate
from
'../../RuleTemplate.vue'
import
{
useGroup
}
from
'../../../composables/useAllData'
defineProps
<
{
node
:
any
}
>
()
const
props
=
defineProps
<
{
node
:
any
}
>
()
const
{
getGroup
}
=
useGroup
()
const
config
=
computed
(()
=>
{
return
props
.
node
.
data
.
teacher
||
{}
})
const
group
=
computed
(()
=>
getGroup
(
config
.
value
.
group_id
))
function
paramsParse
(
data
:
any
)
{
return
data
.
rules
}
</
script
>
<
template
>
<RuleTemplate
:node=
"node"
step
>
<template
#
header-answer
>
答案
</
template
>
<RuleTemplate
:node=
"node"
step
:paramsParse=
"paramsParse"
>
<template
#
header-answer
>
<p
class=
"is-answer"
>
{{
group
?.
name
}}
</p>
</
template
>
</RuleTemplate>
</template>
src/components/flow/components/conditionalBranch/labelJudgment/Rule.vue
浏览文件 @
97377249
<
script
setup
lang=
"ts"
>
import
RuleTemplate
from
'../../RuleTemplate.vue'
import
{
useTag
}
from
'../../../composables/useAllData'
defineProps
<
{
node
:
any
}
>
()
const
props
=
defineProps
<
{
node
:
any
}
>
()
const
{
getTag
}
=
useTag
()
const
config
=
computed
(()
=>
{
return
props
.
node
.
data
.
teacher
||
{}
})
function
paramsParse
(
data
:
any
)
{
return
data
.
rules
}
</
script
>
<
template
>
<RuleTemplate
:node=
"node"
step
>
<template
#
header-answer
>
答案
</
template
>
<RuleTemplate
:node=
"node"
step
:paramsParse=
"paramsParse"
>
<template
#
header-answer
>
<p
v-for=
"(item, index) in config.rules"
:key=
"index"
>
<span>
{{
getTag
(
item
.
tag_id
)?.
name
}}
</span>
<span
class=
"is-operate"
>
{{
item
.
operate
}}
</span>
<span
class=
"is-answer"
>
{{
item
.
value
}}
</span>
</p>
</
template
>
</RuleTemplate>
</template>
src/components/flow/components/conditionalBranch/offiaccount/Config.vue
浏览文件 @
97377249
...
...
@@ -8,6 +8,7 @@ const role = inject('role') as string
const
form
=
reactive
({
operate
:
''
,
operate_name
:
''
,
connection_id
:
''
,
connection_name
:
''
})
...
...
@@ -18,6 +19,14 @@ watchEffect(() => {
const
{
connectionList
}
=
useConnection
(
1
)
const
operateList
=
ref
([{
label
:
'关注中'
,
value
:
'0'
}])
watchEffect
(()
=>
{
form
.
operate_name
=
operateList
.
value
.
find
(
item
=>
item
.
value
===
form
.
operate
)?.
label
||
''
})
watchEffect
(()
=>
{
form
.
connection_name
=
connectionList
.
value
.
find
(
item
=>
item
.
id
===
form
.
connection_id
)?.
name
||
''
})
</
script
>
<
template
>
...
...
src/components/flow/components/conditionalBranch/offiaccount/Rule.vue
浏览文件 @
97377249
...
...
@@ -2,17 +2,25 @@
import
RuleTemplate
from
'../../RuleTemplate.vue'
import
{
useConnection
}
from
'../../../composables/useAllData'
const
{
getConnection
}
=
useConnection
(
1
)
const
{
getConnection
}
=
useConnection
()
const
props
=
defineProps
<
{
node
:
any
}
>
()
const
config
=
computed
(()
=>
{
return
props
.
node
.
data
.
teacher
||
{}
})
const
connection
=
computed
(()
=>
{
return
getConnection
(
props
.
node
.
data
.
teacher
?.
connection_id
)
return
getConnection
(
config
.
value
?.
connection_id
)
})
</
script
>
<
template
>
<RuleTemplate
:node=
"node"
step
>
<template
#
header-answer
>
连接:
{{
connection
?.
name
}}
事件:关注公众号
</
template
>
<template
#
header-answer
>
连接:
<span
class=
"is-answer"
>
{{
connection
?.
name
}}
</span>
事件:
<span
class=
"is-answer"
>
关注公众号
</span
>
</
template
>
</RuleTemplate>
</template>
src/components/flow/components/conditionalBranch/timeJudgment/Config.vue
浏览文件 @
97377249
...
...
@@ -7,9 +7,12 @@ const role = inject('role') as string
const
form
=
reactive
({
date_type
:
''
,
date_type_name
:
''
,
date_rule
:
''
,
date_rule_name
:
''
,
date
:
''
,
week
:
[]
week
:
[],
week_name
:
''
})
watchEffect
(()
=>
{
Object
.
assign
(
form
,
props
.
node
.
data
[
role
])
...
...
@@ -25,6 +28,16 @@ const dateRuleList = ref([
{
label
:
'区间'
,
value
:
'2'
}
])
const
weekList
=
ref
([
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
])
watchEffect
(()
=>
{
form
.
date_type_name
=
dateTypeList
.
value
.
find
(
item
=>
item
.
value
===
form
.
date_type
)?.
label
||
''
})
watchEffect
(()
=>
{
form
.
date_rule_name
=
dateRuleList
.
value
.
find
(
item
=>
item
.
value
===
form
.
date_rule
)?.
label
||
''
})
watchEffect
(()
=>
{
form
.
week_name
=
form
.
week
.
join
(
'、'
)
})
</
script
>
<
template
>
...
...
@@ -36,7 +49,7 @@ const weekList = ref(['周一', '周二', '周三', '周四', '周五', '周六'
</el-form-item>
<el-form-item
label=
"进入该步骤的时间"
>
<template
v-if=
"form.date_type === '0'"
>
<el-select
v-model=
"form.date_rule"
placeholder=
"请选择"
style=
"width: 115px"
>
<el-select
v-model=
"form.date_rule"
placeholder=
"请选择"
style=
"width: 115px
; margin-right: 10px
"
>
<el-option
v-for=
"item in dateRuleList"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
<el-date-picker
...
...
src/components/flow/components/conditionalBranch/timeJudgment/ConfigView.vue
浏览文件 @
97377249
...
...
@@ -4,17 +4,6 @@ import ConfigViewTemplate from '../../ConfigViewTemplate.vue'
const
role
=
inject
(
'role'
)
as
string
defineProps
<
{
node
:
any
}
>
()
const
dateTypeList
=
[
{
label
:
'日期范围'
,
value
:
'0'
},
{
label
:
'星期范围'
,
value
:
'1'
}
]
const
dateRuleList
=
[
{
label
:
'早于'
,
value
:
'0'
},
{
label
:
'晚于'
,
value
:
'1'
},
{
label
:
'区间'
,
value
:
'2'
}
]
const
weekList
=
[
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
]
</
script
>
<
template
>
...
...
@@ -23,15 +12,15 @@ const weekList = ['周一', '周二', '周三', '周四', '周五', '周六', '
<el-form-item
:label=
"role === 'student' ? '我的答案' : '学生答案'"
>
</el-form-item>
<template
v-if=
"node.data?.student"
>
<el-form-item
label=
"时间判断类型"
>
{{
dateTypeList
.
find
(
c
=>
c
.
value
===
node
.
data
.
student
?.
date_type
)?.
label
}}
{{
node
.
data
.
student
.
date_type
}}
</el-form-item>
<el-form-item
label=
"进入该步骤的时间"
>
<template
v-if=
"node.data.student?.date_type === '0'"
>
{{
dateRuleList
.
find
(
c
=>
c
.
value
===
node
.
data
.
student
?.
date_rule
)?.
label
}}
{{
node
.
data
.
student
?.
date_rule_name
}}
{{
node
.
data
.
student
?.
date
}}
</
template
>
<
template
v-else
>
{{
node
.
data
.
student
?.
week
.
toString
()
}}
{{
node
.
data
.
student
.
week_name
}}
</
template
>
</el-form-item>
</template>
...
...
@@ -40,15 +29,15 @@ const weekList = ['周一', '周二', '周三', '周四', '周五', '周六', '
<el-form-item
label=
"正确答案"
></el-form-item>
<
template
v-if=
"node.data?.teacher"
>
<el-form-item
label=
"时间判断类型"
>
{{
dateTypeList
.
find
(
c
=>
c
.
value
===
node
.
data
.
teacher
?.
date_type
)?.
label
}}
{{
node
.
data
.
teacher
.
date_type_name
}}
</el-form-item>
<el-form-item
label=
"进入该步骤的时间"
>
<template
v-if=
"node.data.teacher?.date_type === '0'"
>
{{
dateRuleList
.
find
(
c
=>
c
.
value
===
node
.
data
.
teacher
?.
date_rule
)?.
label
}}
{{
node
.
data
.
teacher
?
.
date
}}
{{
node
.
data
.
teacher
.
date_rule_name
}}
{{
node
.
data
.
teacher
.
date
}}
</
template
>
<
template
v-else
>
{{
node
.
data
.
teacher
?.
week
.
toString
()
}}
{{
node
.
data
.
teacher
.
week_name
}}
</
template
>
</el-form-item>
</template>
...
...
src/components/flow/components/conditionalBranch/timeJudgment/Rule.vue
浏览文件 @
97377249
<
script
setup
lang=
"ts"
>
import
RuleTemplate
from
'../../RuleTemplate.vue'
defineProps
<
{
node
:
any
}
>
()
const
props
=
defineProps
<
{
node
:
any
}
>
()
const
config
=
computed
(()
=>
{
return
props
.
node
.
data
.
teacher
||
{}
})
</
script
>
<
template
>
<RuleTemplate
:node=
"node"
step
>
<template
#
header-answer
>
答案
</
template
>
<template
#
header-answer
>
进入该步骤的时间
<p
class=
"is-answer"
v-if=
"config.date_type === '0'"
>
{{
config
.
date_rule_name
}}{{
config
.
date
}}
</p>
<p
class=
"is-answer"
v-else
>
{{
config
.
week_name
}}
</p>
</
template
>
</RuleTemplate>
</template>
src/components/flow/components/marketingAction/changeProps/Rule.vue
浏览文件 @
97377249
<
script
setup
lang=
"ts"
>
import
RuleTemplate
from
'../../RuleTemplate.vue'
import
{
useUserAttr
}
from
'../../../composables/useAllData'
defineProps
<
{
node
:
any
}
>
()
const
props
=
defineProps
<
{
node
:
any
}
>
()
const
{
getUserAttr
}
=
useUserAttr
()
const
config
=
computed
(()
=>
{
return
props
.
node
.
data
.
teacher
||
{}
})
function
paramsParse
(
data
:
any
)
{
return
data
.
rules
}
</
script
>
<
template
>
<RuleTemplate
:node=
"node"
step
>
<template
#
header-answer
>
答案
</
template
>
<RuleTemplate
:node=
"node"
step
:paramsParse=
"paramsParse"
>
<template
#
header-answer
>
<p
v-for=
"(item, index) in config.rules"
:key=
"index"
>
<span>
{{
getUserAttr
(
item
.
attr_id
)?.
name
}}
</span>
<span
class=
"is-operate"
>
{{
item
.
operate
}}
</span>
<span
class=
"is-answer"
>
{{
item
.
value
}}
</span>
</p>
</
template
>
</RuleTemplate>
</template>
src/components/flow/components/marketingAction/delayProcess/Config.vue
浏览文件 @
97377249
...
...
@@ -9,7 +9,9 @@ const form = reactive({
time_type
:
'0'
,
time_num
:
''
,
time_unit
:
'0'
,
time
:
''
time_unit_name
:
''
,
time
:
''
,
time_name
:
''
})
watchEffect
(()
=>
{
Object
.
assign
(
form
,
props
.
node
.
data
[
role
])
...
...
@@ -21,6 +23,14 @@ const timeUnitList = ref([
{
label
:
'日'
,
value
:
'2'
},
{
label
:
'周'
,
value
:
'3'
}
])
watchEffect
(()
=>
{
form
.
time_unit_name
=
timeUnitList
.
value
.
find
(
item
=>
item
.
value
===
form
.
time_unit
)?.
label
||
''
})
watchEffect
(()
=>
{
form
.
time_name
=
form
.
time_type
===
'0'
?
`延时
${
form
.
time_num
}${
form
.
time_unit_name
}
`
:
`延时至
${
form
.
time
}
`
})
</
script
>
<
template
>
...
...
src/components/flow/components/marketingAction/delayProcess/ConfigView.vue
浏览文件 @
97377249
...
...
@@ -4,30 +4,15 @@ import ConfigViewTemplate from '../../ConfigViewTemplate.vue'
const
role
=
inject
(
'role'
)
as
string
defineProps
<
{
node
:
any
}
>
()
const
timeUnitList
=
[
{
label
:
'分钟'
,
value
:
'0'
},
{
label
:
'小时'
,
value
:
'1'
},
{
label
:
'日'
,
value
:
'2'
},
{
label
:
'周'
,
value
:
'3'
}
]
</
script
>
<
template
>
<ConfigViewTemplate
:node=
"node"
>
<el-form-item
:label=
"role === 'student' ? '我的答案' : '学生答案'"
>
<template
v-if=
"node.data.student?.time_type === '0'"
>
延时
{{
node
.
data
.
student
?.
time_num
}}{{
timeUnitList
.
find
(
item
=>
item
.
value
===
node
.
data
.
student
?.
time_unit
)?.
label
}}
</
template
>
<
template
v-if=
"node.data.student?.time_type === '1'"
>
延时至
{{
node
.
data
.
student
?.
time
}}
</
template
>
{{
node
.
data
.
student
?.
time_name
}}
</el-form-item>
<el-form-item
label=
"正确答案"
>
<
template
v-if=
"node.data.teacher?.time_type === '0'"
>
延时
{{
node
.
data
.
teacher
?.
time_num
}}{{
timeUnitList
.
find
(
item
=>
item
.
value
===
node
.
data
.
teacher
?.
time_unit
)?.
label
}}
</
template
>
<
template
v-if=
"node.data.teacher?.time_type === '1'"
>
延时至
{{
node
.
data
.
teacher
?.
time
}}
</
template
>
{{
node
.
data
.
teacher
?.
time_name
}}
</el-form-item>
</ConfigViewTemplate>
</
template
>
src/components/flow/components/marketingAction/delayProcess/Rule.vue
浏览文件 @
97377249
<
script
setup
lang=
"ts"
>
import
RuleTemplate
from
'../../RuleTemplate.vue'
defineProps
<
{
node
:
any
}
>
()
const
props
=
defineProps
<
{
node
:
any
}
>
()
const
config
=
computed
(()
=>
{
return
props
.
node
.
data
.
teacher
||
{}
})
</
script
>
<
template
>
<RuleTemplate
:node=
"node"
step
>
<template
#
header-answer
>
答案
</
template
>
<template
#
header-answer
>
<p
class=
"is-answer"
>
{{
config
.
time_name
}}
</p>
</
template
>
</RuleTemplate>
</template>
src/components/flow/components/marketingAction/joinGroup/Rule.vue
浏览文件 @
97377249
<
script
setup
lang=
"ts"
>
import
RuleTemplate
from
'../../RuleTemplate.vue'
import
{
useGroup
}
from
'../../../composables/useAllData'
defineProps
<
{
node
:
any
}
>
()
const
props
=
defineProps
<
{
node
:
any
}
>
()
const
{
getGroup
}
=
useGroup
()
const
config
=
computed
(()
=>
{
return
props
.
node
.
data
.
teacher
||
{}
})
const
group
=
computed
(()
=>
getGroup
(
config
.
value
.
group_id
))
function
paramsParse
(
data
:
any
)
{
return
{
group_id
:
data
.
group_id
}
}
</
script
>
<
template
>
<RuleTemplate
:node=
"node"
step
>
<template
#
header-answer
>
答案
</
template
>
<RuleTemplate
:node=
"node"
step
:paramsParse=
"paramsParse"
>
<template
#
header-answer
>
<span
class=
"is-answer"
>
{{
group
?.
name
}}
</span>
</
template
>
</RuleTemplate>
</template>
src/components/flow/components/marketingAction/leaveGroup/Rule.vue
浏览文件 @
97377249
<
script
setup
lang=
"ts"
>
import
RuleTemplate
from
'../../RuleTemplate.vue'
import
{
useGroup
}
from
'../../../composables/useAllData'
defineProps
<
{
node
:
any
}
>
()
const
props
=
defineProps
<
{
node
:
any
}
>
()
const
{
getGroup
}
=
useGroup
()
const
config
=
computed
(()
=>
{
return
props
.
node
.
data
.
teacher
||
{}
})
const
group
=
computed
(()
=>
getGroup
(
config
.
value
.
group_id
))
function
paramsParse
(
data
:
any
)
{
return
{
group_id
:
data
.
group_id
}
}
</
script
>
<
template
>
<RuleTemplate
:node=
"node"
step
>
<template
#
header-answer
>
答案
</
template
>
<RuleTemplate
:node=
"node"
step
:paramsParse=
"paramsParse"
>
<template
#
header-answer
>
<span
class=
"is-answer"
>
{{
group
?.
name
}}
</span>
</
template
>
</RuleTemplate>
</template>
src/components/flow/composables/useAllData.ts
浏览文件 @
97377249
...
...
@@ -96,7 +96,11 @@ export function useTag() {
onMounted
(()
=>
{
if
(
!
tagList
.
value
?.
length
)
fetchTagList
()
})
return
{
fetchTagList
,
tagList
}
function
getTag
(
tagId
:
string
)
{
return
tagList
.
value
.
find
(
item
=>
item
.
id
===
tagId
)
}
return
{
fetchTagList
,
tagList
,
getTag
}
}
// 所有连接
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论