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
1b176d1d
Commit
1b176d1d
authored
Apr 11, 2022
by
crushh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update: dist
parent
d0635c52
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
75 additions
and
46 deletions
+75
-46
index.vue
src/components/dm-new-member-group/index.vue
+6
-20
readme.md
src/components/dm-new-member-group/readme.md
+19
-0
table.vue
src/components/dm-new-member-group/table.vue
+11
-20
createParams.js
src/components/dm-new-rule/createParams.js
+1
-2
new-rule.vue
src/components/dm-new-rule/new-rule.vue
+14
-0
readme.md
src/components/dm-new-rule/readme.md
+18
-0
ruleFilter.vue
src/components/dm-new-rule/ruleFilter.vue
+1
-2
form.vue
src/views/ai/task/form.vue
+5
-2
No files found.
src/components/dm-new-member-group/index.vue
View file @
1b176d1d
...
...
@@ -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"
:
key=
"visiable"
:realTimeType=
"realTimeType"
:activeName=
"activeName"
:selected=
"selectedArray"
@
handleSelectionChange=
"handleSelectionChange"
@
deleteRow=
"deleteRow"
/>
<dm-table
ref=
"table0"
name=
"0"
:creatorId=
"creatorId"
:effectiveStatus=
"effectiveStatus"
: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"
:
key=
"visiable"
:realTimeType=
"realTimeType"
:activeName=
"activeName"
:selected=
"selectedArray"
@
handleSelectionChange=
"handleSelectionChange"
@
deleteRow=
"deleteRow"
/>
<dm-table
ref=
"table1"
name=
"1"
:creatorId=
"creatorId"
:effectiveStatus=
"effectiveStatus"
: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"
:
key=
"visiable"
:realTimeType=
"realTimeType"
:activeName=
"activeName"
:selected=
"selectedArray"
@
handleSelectionChange=
"handleSelectionChange"
@
deleteRow=
"deleteRow"
/>
<dm-table
ref=
"table2"
name=
"2"
:creatorId=
"creatorId"
:effectiveStatus=
"effectiveStatus"
:key=
"visiable"
:realTimeType=
"realTimeType"
:activeName=
"activeName"
:selected=
"selectedArray"
@
handleSelectionChange=
"handleSelectionChange"
@
deleteRow=
"deleteRow"
/>
</el-tab-pane>
</el-tabs>
</div>
...
...
@@ -44,7 +44,7 @@
<el-tag
size=
"mini"
type=
"warning"
v-else
>
非实时
</el-tag>
<span
class=
"groupName"
>
{{
item
.
groupName
}}
</span>
</div>
<i
v-if=
"!readonly"
class=
"el-icon-close"
@
click=
"deleteRow(item)"
></i>
<i
class=
"el-icon-close"
@
click=
"deleteRow(item)"
></i>
</div>
</li>
</ul>
...
...
@@ -66,18 +66,12 @@ export default {
props
:
{
selectedIds
:
{
type
:
String
,
default
()
{
return
[];
}
default
:
''
},
visiable
:
{
type
:
Boolean
,
default
:
false
},
height
:
{
type
:
Number
,
default
:
543
},
projectName
:
{
type
:
String
,
default
:
'memberTag'
...
...
@@ -85,10 +79,7 @@ export default {
creatorId
:
{
type
:
String
,
default
:
''
},
effectiveStatus
:
{
type
:
[
String
,
Number
],
default
:
1
// require: true
},
maxLimit
:
{
type
:
Number
,
...
...
@@ -99,11 +90,6 @@ export default {
type
:
Boolean
,
default
:
false
},
readonly
:
{
// 只读
type
:
Boolean
,
default
:
false
},
realTimeType
:
{
// 实时与非实时分组的可选
// 0:可选非实时分组 1:可选实时分组
...
...
src/components/dm-new-member-group/readme.md
View file @
1b176d1d
客户分组
# 业务props
| 参数 | 说明 | 类型 | 默认值 | 是否必传 |
| - | - | - | - | - |
| selectedIds | 所选择的分组id | String | '' | 否 |
| visiable | 是否展示筛选器弹窗 | Boolean | false | 否 |
| projectName | 项目名称 | String | 'memberTag' | 否 |
| creatorId |创建人id | String | '' | 是 |
| maxLimit | 最大可选择分组个数 | Number | 5 | 否 |
| onlyFixedType | 仅展示固化分组 | Boolean | false | 否 |
| onlyRead | 是否只读 | Boolean | false | 否 |
| realTimeType | 实时与非实时分组的可选
[
0:可选非实时分组 1:可选实时分组
]
| Array |
[
] | 否 |
```
```
# 更新日志:
v 1.0.0 新增筛选器 by黄冷
\ No newline at end of file
src/components/dm-new-member-group/table.vue
View file @
1b176d1d
...
...
@@ -62,18 +62,9 @@ export default {
type
:
String
,
default
:
''
},
effectiveStatus
:
{
type
:
[
String
,
Number
],
default
:
1
},
maxLimit
:
{
type
:
Number
},
readonly
:
{
// 只读
type
:
Boolean
,
default
:
false
},
name
:
{
type
:
String
,
default
:
'0'
...
...
@@ -133,7 +124,7 @@ export default {
},
methods
:
{
selectable
(
row
)
{
return
!
this
.
readonly
&&
this
.
realTimeType
.
includes
(
row
.
isRealTime
);
return
this
.
realTimeType
.
includes
(
row
.
isRealTime
);
},
addGroup
()
{
window
.
open
(
'http://gicdev.demogic.com/member-tag/#/memberGroupEdit?refresh'
,
'_blank'
);
...
...
@@ -168,23 +159,23 @@ export default {
this
.
loading
=
true
;
this
.
tableData
=
[];
this
.
totalCount
=
0
;
let
url
=
`
${
this
.
baseUrl
}
/gic-member-tag-web/member-tag-group/findList.json?requestProject=
${
this
.
projectName
}
&fixedType=
${
this
.
fixedType
}
&creatorId=
${
this
.
creatorId
}
&pageSize=
${
this
.
pageSize
}
&pageNum=
${
this
.
currentPage
}
&groupName=
${
this
.
dataSearch
}
&effectiveStatus=
${
this
.
effectiveStatus
}
`
;
let
url
=
`
${
this
.
baseUrl
}
/gic-member-tag-web/member-tag-group/findList.json?requestProject=
${
this
.
projectName
}
&fixedType=
${
this
.
fixedType
}
&creatorId=
${
this
.
creatorId
}
&pageSize=
${
this
.
pageSize
}
&pageNum=
${
this
.
currentPage
}
&groupName=
${
this
.
dataSearch
}
&effectiveStatus=
1
`
;
if
(
this
.
activeName
==
'2'
)
{
url
=
`
${
this
.
baseUrl
}
/gic-member-tag-web/memberTagGrade/gradeGroupList
New
?requestProject=
${
this
.
projectName
}
&pageSize=
${
this
.
pageSize
}
&pageNum=
${
this
.
currentPage
}
&groupName=
${
this
.
dataSearch
}
`
;
url
=
`
${
this
.
baseUrl
}
/gic-member-tag-web/memberTagGrade/gradeGroupList
V2
?requestProject=
${
this
.
projectName
}
&pageSize=
${
this
.
pageSize
}
&pageNum=
${
this
.
currentPage
}
&groupName=
${
this
.
dataSearch
}
`
;
}
this
.
axios
.
get
(
url
)
.
then
(
res
=>
{
if
(
res
.
data
.
errorCode
==
1
)
{
if
(
this
.
activeName
==
'2'
)
{
this
.
tableData
=
res
.
data
.
result
.
result
.
map
(
item
=>
item
.
itemList
);
console
.
log
(
this
.
tableData
);
this
.
tableData
=
this
.
tableData
.
flat
();
console
.
log
(
this
.
tableData
);
}
else
{
// if (this.activeName == '2') {
// this.tableData = res.data.result.result.map(item => item.itemList);
// console.log(this.tableData);
// this.tableData = this.tableData.flat();
// console.log(this.tableData);
// } else {
// this.tableData = res.data.result.result;
// }
this
.
tableData
=
res
.
data
.
result
.
result
;
}
this
.
totalCount
=
res
.
data
.
result
.
totalCount
;
return
;
}
...
...
src/components/dm-new-rule/createParams.js
View file @
1b176d1d
...
...
@@ -65,10 +65,9 @@ const transform = (data, scenes) => {
const
obj
=
{
list
:
[],
type
:
'and'
};
let
filterFrontShow
=
[];
data
.
forEach
(
item
=>
{
if
(
item
.
value
)
{
if
(
!
item
.
value
)
return
;
obj
.
list
.
push
({
type
:
'or'
,
list
:
[
getParamsData
(
item
)]
});
filterFrontShow
.
push
(
item
);
}
});
result
.
filterJson
=
JSON
.
stringify
(
obj
);
result
.
filterFrontShow
=
JSON
.
stringify
(
filterFrontShow
);
...
...
src/components/dm-new-rule/new-rule.vue
0 → 100644
View file @
1b176d1d
<
template
>
<ruleFilter
:visiable
.
sync=
"ruleVisible"
@
save=
"handleRuleFilterSave"
:memberCrowdWidgetId=
"memberCrowdWidgetId"
/>
</
template
>
<
script
>
export
default
{
methods
:
{
/**id:筛选器id,data:保存筛选器时提交的参数 data.filterJson 后端需要的查询条件 data.filterFrontShow 前端回显的数据 */
handleRuleFilterSave
(
id
,
data
)
{
this
.
memberCrowdWidgetId
=
id
;
console
.
log
(
id
,
data
);
}
}
};
</
script
>
src/components/dm-new-rule/readme.md
0 → 100644
View file @
1b176d1d
规则筛选器
筛选条件:会员等级,金字塔会员分层,会员服务门店,会员类型
# 业务props
| 参数 | 说明 | 类型 | 默认值 | 是否必传 |
| - | - | - | - | - |
| visiable | 是否展示筛选器弹窗 | Boolean | false | 否 |
| memberCrowdWidgetId | 筛选器id | String | '' | 否 |
| hideId | get-screening-init-data返回的esScreeningWidgetChainId, 传入则隐藏该节点 | Array | '' | 否 |
| onlyRead | 是否只读 | Boolean | false | 否 |
| requestProject | 弹窗可见与否 | Boolean | false | 否 |
```
```
# 更新日志:
v 1.0.0 新增规则筛选器 by黄冷
\ No newline at end of file
src/components/dm-new-rule/ruleFilter.vue
View file @
1b176d1d
...
...
@@ -35,7 +35,7 @@
</div>
</div>
<div
v-if=
"item.templateCode == 'com020' && templateCode == 'com020'"
class=
"leftContent"
>
<dm-store-selector
@
saving=
"val => (saving = val)"
v-if=
"item.templateCode == 'com020' && storeSelectorKey"
ref=
"storeSelector"
scenes=
"
auth
"
scenesVal=
"marketing"
@
store-change=
"val => storeChange(val, item.esScreeningWidgetChainId)"
:uuid
.
sync=
"item.value"
></dm-store-selector>
<dm-store-selector
@
saving=
"val => (saving = val)"
v-if=
"item.templateCode == 'com020' && storeSelectorKey"
ref=
"storeSelector"
scenes=
"
edaixi
"
scenesVal=
"marketing"
@
store-change=
"val => storeChange(val, item.esScreeningWidgetChainId)"
:uuid
.
sync=
"item.value"
></dm-store-selector>
</div>
</div>
<div
v-else
>
...
...
@@ -140,7 +140,6 @@ export default {
computed
:
{
selectData
()
{
const
data
=
this
.
handleEchoData
(
this
.
conditionTypeList
);
console
.
log
(
data
);
return
data
;
}
},
...
...
src/views/ai/task/form.vue
View file @
1b176d1d
...
...
@@ -48,7 +48,7 @@
<el-input-number
v-model=
"form.consume_days0"
@
change=
"handleChangeNum(form.consume_days_flag0)"
controls-position=
"right"
:max=
"730"
:min=
"30"
:precision=
"0"
size=
"small"
style=
"margin:0 10px;"
/>
天
</div>
<div
class=
"consumeLine"
>
<el-checkbox
v-model=
"form.consume_times_flag0"
:true-label=
"1"
:false-label=
"0"
:disabled=
"disabledCheck"
@
change=
"handleLastconsume"
>
最近
消费次数
</el-checkbox>
<el-checkbox
v-model=
"form.consume_times_flag0"
:true-label=
"1"
:false-label=
"0"
:disabled=
"disabledCheck"
@
change=
"handleLastconsume"
>
有效
消费次数
</el-checkbox>
<el-input-number
v-model=
"form.consume_times0"
@
change=
"handleChangeNum(form.consume_times_flag0)"
controls-position=
"right"
:max=
"100"
:min=
"1"
:precision=
"0"
size=
"small"
style=
"margin:0 10px;"
/>
次
</div>
<div
class=
"consumeLine"
>
...
...
@@ -65,7 +65,7 @@
<el-input-number
v-model=
"form.consume_days1"
@
change=
"handleChangeNum(form.consume_days_flag1)"
controls-position=
"right"
:max=
"730"
:precision=
"0"
:min=
"30"
size=
"small"
style=
"margin:0 10px;"
/>
天
</div>
<div
class=
"consumeLine"
>
<el-checkbox
v-model=
"form.consume_times_flag1"
@
change=
"getMemberCount"
:true-label=
"1"
:false-label=
"0"
>
最近
消费次数
</el-checkbox>
<el-checkbox
v-model=
"form.consume_times_flag1"
@
change=
"getMemberCount"
:true-label=
"1"
:false-label=
"0"
>
有效
消费次数
</el-checkbox>
<el-input-number
v-model=
"form.consume_times1"
@
change=
"handleChangeNum(form.consume_times_flag1)"
controls-position=
"right"
:max=
"100"
:precision=
"0"
:min=
"1"
size=
"small"
style=
"margin:0 10px;"
/>
次
</div>
<div
class=
"consumeLine"
>
...
...
@@ -724,9 +724,11 @@ export default {
};
}
sceneJson
=
JSON
.
stringify
(
sceneJson
);
this
.
form
.
planMemberCount
=
''
;
if
(
memberType
==
0
)
{
filterJson
=
this
.
memberCrowdWidgetId
;
}
else
if
(
memberType
==
1
)
{
if
(
!
this
.
selectedGroupIds
)
return
;
filterJson
=
this
.
selectedGroupIds
;
}
const
data
=
{
...
...
@@ -736,6 +738,7 @@ export default {
beginDate
:
formatDateTimeByType
(
startDate
,
'yyyy-MM-dd'
),
filterJson
};
const
{
result
}
=
await
getMemberCount
(
data
);
this
.
form
.
planMemberCount
=
result
==
-
1
?
0
:
result
;
},
...
...
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