Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
marketing
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
marketing-web
marketing
Commits
78b9c4ec
Commit
78b9c4ec
authored
Mar 28, 2022
by
crushh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update: dist
parent
db983c7c
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
70 additions
and
49 deletions
+70
-49
index.vue
src/components/dm-new-member-group/index.vue
+26
-15
table.vue
src/components/dm-new-member-group/table.vue
+16
-12
createParams.js
src/views/ai/createParams.js
+3
-3
form.vue
src/views/ai/form.vue
+21
-15
ruleFilter.vue
src/views/ai/ruleFilter.vue
+0
-0
task.vue
src/views/ai/task.vue
+4
-4
No files found.
src/components/dm-new-member-group/index.vue
View file @
78b9c4ec
<
template
>
<div>
<div
class=
"echo-member-group"
v-if=
"
showEcho
"
>
<div
class=
"echo-member-group"
v-if=
"
echoFlag
"
>
<div
class=
"subTitle"
>
<div
class=
"line"
></div>
<div
class=
"text"
>
...
...
@@ -22,13 +22,13 @@
<div
class=
"left"
>
<el-tabs
v-model=
"activeName"
>
<el-tab-pane
label=
"我的客户分组"
name=
"0"
v-if=
"!onlyFixedType"
>
<dm-table
ref=
"table0"
name=
"0"
:creatorId=
"creatorId"
:effectiveStatus=
"effectiveStatus"
:readonly=
"readonly"
:realTimeType=
"realTimeType"
:activeName=
"activeName"
:selected=
"selectedArray"
@
handleSelectionChange=
"handleSelectionChange"
@
deleteRow=
"deleteRow"
/>
<dm-table
ref=
"table0"
name=
"0"
:creatorId=
"creatorId"
:effectiveStatus=
"effectiveStatus"
:readonly=
"readonly"
:
key=
"visiable"
:
realTimeType=
"realTimeType"
:activeName=
"activeName"
:selected=
"selectedArray"
@
handleSelectionChange=
"handleSelectionChange"
@
deleteRow=
"deleteRow"
/>
</el-tab-pane>
<el-tab-pane
label=
"固化分组"
name=
"1"
>
<dm-table
ref=
"table1"
name=
"1"
:creatorId=
"creatorId"
:effectiveStatus=
"effectiveStatus"
:readonly=
"readonly"
:realTimeType=
"realTimeType"
:activeName=
"activeName"
:selected=
"selectedArray"
@
handleSelectionChange=
"handleSelectionChange"
@
deleteRow=
"deleteRow"
/>
<dm-table
ref=
"table1"
name=
"1"
:creatorId=
"creatorId"
:effectiveStatus=
"effectiveStatus"
:readonly=
"readonly"
:
key=
"visiable"
:
realTimeType=
"realTimeType"
:activeName=
"activeName"
:selected=
"selectedArray"
@
handleSelectionChange=
"handleSelectionChange"
@
deleteRow=
"deleteRow"
/>
</el-tab-pane>
<el-tab-pane
label=
"金字塔会员分层"
name=
"2"
v-if=
"!onlyFixedType"
>
<dm-table
ref=
"table2"
name=
"2"
:creatorId=
"creatorId"
:effectiveStatus=
"effectiveStatus"
:readonly=
"readonly"
:realTimeType=
"realTimeType"
:activeName=
"activeName"
:selected=
"selectedArray"
@
handleSelectionChange=
"handleSelectionChange"
@
deleteRow=
"deleteRow"
/>
<dm-table
ref=
"table2"
name=
"2"
:creatorId=
"creatorId"
:effectiveStatus=
"effectiveStatus"
:readonly=
"readonly"
:
key=
"visiable"
:
realTimeType=
"realTimeType"
:activeName=
"activeName"
:selected=
"selectedArray"
@
handleSelectionChange=
"handleSelectionChange"
@
deleteRow=
"deleteRow"
/>
</el-tab-pane>
</el-tabs>
</div>
...
...
@@ -123,7 +123,7 @@ export default {
return
{
activeName
:
'0'
,
//0 我的客户分组 1固化分组 2金字塔会员分层
baseUrl
,
showEcho
:
false
,
echoFlag
:
false
,
selected
:
{}
};
},
...
...
@@ -133,9 +133,6 @@ export default {
this
.
$refs
[
`table
${
this
.
activeName
}
`
]
&&
this
.
$refs
[
`table
${
this
.
activeName
}
`
].
getGroupList
();
}
});
if
(
this
.
defaltSelected
.
length
)
{
this
.
handleSelectionChange
(
this
.
defaltSelected
);
}
if
(
this
.
onlyFixedType
)
{
this
.
activeName
=
'1'
;
}
...
...
@@ -149,33 +146,47 @@ export default {
return
arr
;
}
},
watch
:
{
defaltSelected
(
val
)
{
if
(
val
.
length
)
{
this
.
echoFlag
=
true
;
this
.
handleSelectionChange
(
this
.
defaltSelected
);
}
}
},
methods
:
{
confirm
()
{
if
(
!
Object
.
keys
(
this
.
selected
).
length
)
{
this
.
$message
.
warning
(
'请选择分组'
);
return
;
}
let
arr
=
[];
Object
.
keys
(
this
.
selected
).
forEach
(
key
=>
{
arr
.
push
(
this
.
selected
[
key
]);
});
const
str
=
arr
.
map
(
item
=>
item
.
memberTagGroupId
).
join
(
','
);
if
(
arr
.
length
)
{
this
.
showEcho
=
true
;
this
.
echoFlag
=
true
;
}
else
{
this
.
showEcho
=
false
;
this
.
echoFlag
=
false
;
}
this
.
$emit
(
'update:visiable'
,
false
);
this
.
initPage
(
);
this
.
$emit
(
'change'
,
arr
,
str
);
// 被选中数组,数组id的字符串
},
close
()
{
Object
.
keys
(
this
.
selected
).
forEach
(
key
=>
{
this
.
deleteRow
(
this
.
selected
[
key
]);
});
this
.
initPage
();
},
initPage
()
{
this
.
activeName
=
'0'
;
this
.
$emit
(
'update:visiable'
,
false
);
},
del
()
{
Object
.
keys
(
this
.
selected
).
forEach
(
key
=>
{
this
.
deleteRow
(
this
.
selected
[
key
]);
});
this
.
selected
=
{};
this
.
$emit
(
'change'
,
[],
''
);
this
.
showEcho
=
false
;
this
.
echoFlag
=
false
;
},
edit
()
{
this
.
$emit
(
'update:visiable'
,
true
);
...
...
src/components/dm-new-member-group/table.vue
View file @
78b9c4ec
...
...
@@ -106,19 +106,23 @@ export default {
tableData
(
val
)
{
if
(
val
.
length
)
{
this
.
$nextTick
(()
=>
{
this
.
selected
.
forEach
(
item
=>
{
val
.
forEach
(
row
=>
{
if
(
item
.
memberTagGroupId
==
row
.
memberTagGroupId
)
{
// 必须要传入从this.tableData里查询到的对象才能出现被勾选样式
this
.
$refs
.
table
.
toggleRowSelection
(
this
.
tableData
.
find
(
row
=>
{
return
row
.
memberTagGroupId
==
item
.
memberTagGroupId
;
}),
true
);
}
console
.
log
(
this
.
selected
);
if
(
this
.
selected
.
length
)
{
this
.
selected
.
forEach
(
item
=>
{
val
.
forEach
(
row
=>
{
if
(
item
.
memberTagGroupId
==
row
.
memberTagGroupId
)
{
// 必须要传入从this.tableData里查询到的对象才能出现被勾选样式
this
.
$refs
.
table
.
toggleRowSelection
(
this
.
tableData
.
find
(
row
=>
{
return
row
.
memberTagGroupId
==
item
.
memberTagGroupId
;
})
);
}
});
});
});
}
else
{
this
.
$refs
.
table
.
clearSelection
();
}
});
}
},
...
...
src/views/ai/createParams.js
View file @
78b9c4ec
...
...
@@ -63,15 +63,15 @@ const transform = (data, scenes) => {
scenes
:
scenes
// 场景值 member02
};
const
obj
=
{
list
:
[],
type
:
'and'
};
let
arr
=
[];
let
filterFrontShow
=
[];
data
.
forEach
(
item
=>
{
if
(
item
.
value
)
{
obj
.
list
.
push
({
type
:
'or'
,
list
:
[
getParamsData
(
item
)]
});
arr
.
push
(
item
);
filterFrontShow
.
push
(
item
);
}
});
result
.
filterJson
=
JSON
.
stringify
(
obj
);
result
.
filterFrontShow
=
JSON
.
stringify
(
arr
);
result
.
filterFrontShow
=
JSON
.
stringify
(
filterFrontShow
);
return
result
;
};
export
default
transform
;
src/views/ai/form.vue
View file @
78b9c4ec
...
...
@@ -28,11 +28,11 @@
<el-radio
v-model=
"form.memberType"
:label=
"0"
>
客户筛选
</el-radio>
<el-radio
v-model=
"form.memberType"
:label=
"1"
>
客户分组
</el-radio>
<div>
<div
class=
"tips"
v-if=
"form.scene == 4
"
>
默认为权限范围内的全部客户
</div>
<el-button
v-if=
"form.memberType == 0 && form.scene != 4"
size=
"small"
@
click=
"ruleVisible = true"
>
添加其他条件
</el-button>
<ruleFilter
:visiable
.
sync=
"ruleVisible"
@
save=
"handleRuleFilterSave"
:memberCrowdWidgetId=
"form.filterJson
"
/>
<div
class=
"tips"
style=
"margin:0 0 12px 0;
"
>
默认为权限范围内的全部客户
</div>
<el-button
v-if=
"form.memberType == 0 &&
!memberCrowdWidgetId &&
form.scene != 4"
size=
"small"
@
click=
"ruleVisible = true"
>
添加其他条件
</el-button>
<ruleFilter
v-show=
"form.memberType == 0"
:visiable
.
sync=
"ruleVisible"
@
save=
"handleRuleFilterSave"
:memberCrowdWidgetId=
"memberCrowdWidgetId
"
/>
<el-button
v-if=
"form.memberType == 1 && !selectedGroup.length && form.scene != 4"
size=
"small"
@
click=
"groupVisible = true"
>
添加分组
</el-button>
<gic-new-member-group
:visiable
.
sync=
"groupVisible"
:defaltSelected=
"selectedGroup"
@
change=
"confirmGroupDialog"
/>
<gic-new-member-group
v-show=
"form.memberType == 1"
:visiable
.
sync=
"groupVisible"
:defaltSelected=
"selectedGroup"
@
change=
"confirmGroupDialog"
/>
</div>
</el-form-item>
<el-form-item
label=
"消费条件"
v-if=
"form.scene == 4"
>
...
...
@@ -259,7 +259,7 @@ export default {
scene
:
''
,
//活动场景 「1 客户生日」、「2 节日活动邀约」、「3 加企微好友」、「4 客户复购」、「5 其它场景」
aiTemplateId
:
''
,
//话术模板id
memberType
:
0
,
// 会员类型(0:会员筛选,1:会员分组)
filterJson
:
'
dc22f2f3f66a405f8cede4e7cabdca93,e1a819ba985a40caa14c2018feb4fc24
'
,
filterJson
:
''
,
analyseFlag
:
1
,
//活动分析
consume_days_flag
:
0
,
// 【最新消费金额 0否1是】
consume_days
:
''
,
...
...
@@ -274,7 +274,6 @@ export default {
analyseDays
:
''
,
//分析天数
analyseAmount
:
''
//销售额
},
defaltSelected
:
[],
birthTimeData
:
{
// 生日场景 活动时间的回显
birth_days
:
' '
,
// 生日前xx天
...
...
@@ -344,6 +343,7 @@ export default {
loading
:
false
,
currentIndex
:
0
,
selectedGroup
:
[],
// 被选中的客户分组
memberCrowdWidgetId
:
''
,
// 被选的规则id
echoData
:
false
};
},
...
...
@@ -375,7 +375,7 @@ export default {
console
.
log
(
result
);
if
(
result
)
{
const
{
activityId
,
activityName
,
activityPlanList
,
analyseAmount
,
analyseDays
,
analyseFlag
,
startDate
,
endDate
,
scene
}
=
result
;
const
{
activityEventList
,
filterJson
,
memberType
,
planId
,
planMemberCount
,
planName
,
sceneJson
}
=
activityPlanList
[
0
];
const
{
activityEventList
,
filterJson
,
memberT
agGroupList
,
memberT
ype
,
planId
,
planMemberCount
,
planName
,
sceneJson
}
=
activityPlanList
[
0
];
const
{
aiEventId
,
aiTemplateId
,
callFlag
,
callTime
,
eventId
,
labelFlag
,
recallFlag
,
smsFlag
,
labelJson
,
recallJson
,
smsJson
}
=
activityEventList
[
0
];
const
{
birth_type
,
birth_days
,
holiday_type
,
holiday_name
,
holiday_date
,
consume_days_flag
,
consume_days
,
consume_times_flag
,
consume_times
,
consume_amount_flag
,
consume_amount
}
=
JSON
.
parse
(
sceneJson
);
this
.
form
=
{
...
...
@@ -403,6 +403,12 @@ export default {
aiEventId
,
eventId
};
if
(
memberType
==
0
)
{
this
.
memberCrowdWidgetId
=
filterJson
;
}
else
if
(
memberType
==
1
)
{
this
.
selectedGroup
=
memberTagGroupList
;
console
.
log
(
this
.
selectedGroup
);
}
if
(
scene
==
1
)
{
// 不同场景的活动时间回显
this
.
birthTimeData
=
{
...
...
@@ -453,7 +459,7 @@ export default {
const
{
startDate
,
endDate
,
callFlag
,
callTime
,
birth_type
,
birth_days
,
holiday_date
,
holiday_type
,
holiday_name
}
=
activeTimeData
;
this
.
$refs
.
form
.
validate
(
async
(
val
,
obj
)
=>
{
if
(
val
)
{
const
{
activityName
,
scene
,
analyseFlag
,
analyseDays
,
analyseAmount
,
planName
,
memberType
,
filterJson
,
aiTemplateId
,
labelFlag
,
smsFlag
,
recallFlag
,
activityId
,
planId
,
aiEventId
,
eventId
,
planMemberCount
,
consume_days_flag
,
consume_days
,
consume_times_flag
,
consume_times
,
consume_amount_flag
,
consume_amount
}
=
this
.
form
;
const
{
activityName
,
scene
,
analyseFlag
,
analyseDays
,
analyseAmount
,
planName
,
memberType
,
aiTemplateId
,
labelFlag
,
smsFlag
,
recallFlag
,
activityId
,
planId
,
aiEventId
,
eventId
,
planMemberCount
,
consume_days_flag
,
consume_days
,
consume_times_flag
,
consume_times
,
consume_amount_flag
,
consume_amount
}
=
this
.
form
;
let
sceneJson
=
JSON
.
stringify
({});
if
(
scene
==
1
)
{
sceneJson
=
JSON
.
stringify
({
...
...
@@ -491,7 +497,7 @@ export default {
activityId
,
planName
,
memberType
,
filterJson
,
filterJson
:
memberType
==
0
?
this
.
memberCrowdWidgetId
:
this
.
selectedGroup
,
planMemberCount
,
beginDate
:
startDate
,
endDate
:
endDate
,
...
...
@@ -514,7 +520,6 @@ export default {
}
]
};
if
(
labelFlag
)
{
data
.
activityPlanList
[
0
].
activityEventList
[
0
].
labelJson
=
JSON
.
stringify
(
this
.
tagMatchList
);
}
...
...
@@ -525,7 +530,9 @@ export default {
data
.
activityPlanList
[
0
].
activityEventList
[
0
].
recallJson
=
JSON
.
stringify
(
this
.
recallList
);
}
const
{
result
}
=
await
initActivity
(
data
);
console
.
log
(
result
);
if
(
result
)
{
this
.
$router
.
go
(
-
1
);
}
}
});
},
...
...
@@ -567,15 +574,14 @@ export default {
},
/**客户筛选 */
handleRuleFilterSave
(
id
)
{
this
.
form
.
filterJson
=
id
;
this
.
memberCrowdWidgetId
=
id
;
console
.
log
(
this
.
memberCrowdWidgetId
);
},
/**客户分组 */
confirmGroupDialog
(
arr
,
idStr
)
{
this
.
selectedGroup
=
arr
;
this
.
form
.
filterJson
=
idStr
;
console
.
log
(
arr
)
;
console
.
log
(
idStr
);
console
.
log
(
this
.
groupVisible
);
// this.getMemberCount();
},
/** 根据客户意向发送挂机短信 */
delSmslist
(
index
)
{
...
...
src/views/ai/ruleFilter.vue
View file @
78b9c4ec
This diff is collapsed.
Click to expand it.
src/views/ai/task.vue
View file @
78b9c4ec
...
...
@@ -233,19 +233,19 @@ export default {
],
optionActive
:
[
{
value
:
0
,
value
:
1
,
label
:
'未开始'
},
{
value
:
1
,
value
:
2
,
label
:
'进行中'
},
{
value
:
2
,
value
:
3
,
label
:
'已终止'
},
{
value
:
3
,
value
:
4
,
label
:
'已结束'
},
{
...
...
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