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
c6c3c898
Commit
c6c3c898
authored
Apr 02, 2022
by
crushh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update: dist
parent
b44fadf1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
80 additions
and
99 deletions
+80
-99
table.vue
src/components/dm-new-member-group/table.vue
+11
-27
createParams.js
src/components/dm-new-rule/createParams.js
+0
-36
ruleFilter.vue
src/components/dm-new-rule/ruleFilter.vue
+0
-7
ai.js
src/router/modules/ai.js
+8
-0
aiApi.js
src/service/api/aiApi.js
+3
-0
activeTime.vue
src/views/ai/task/components/activeTime.vue
+23
-2
birthActiveTime.vue
src/views/ai/task/components/birthActiveTime.vue
+19
-17
holidayActiveTime.vue
src/views/ai/task/components/holidayActiveTime.vue
+15
-9
form.vue
src/views/ai/task/form.vue
+0
-0
task.vue
src/views/ai/task/task.vue
+1
-1
No files found.
src/components/dm-new-member-group/table.vue
View file @
c6c3c898
...
...
@@ -104,27 +104,17 @@ export default {
},
watch
:
{
tableData
(
val
)
{
if
(
val
.
length
)
{
this
.
$nextTick
(()
=>
{
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
();
}
if
(
!
val
.
length
)
return
;
this
.
$nextTick
(()
=>
{
if
(
!
this
.
selected
.
length
)
return
;
const
obj
=
{};
val
.
forEach
(
item
=>
{
obj
[
item
.
memberTagGroupId
]
=
item
;
});
}
this
.
selected
.
forEach
(
item
=>
{
obj
[
item
.
memberTagGroupId
]
&&
this
.
$refs
.
table
.
toggleRowSelection
(
obj
[
item
.
memberTagGroupId
]);
});
});
},
activeName
:
{
handler
(
val
)
{
...
...
@@ -143,13 +133,7 @@ export default {
},
methods
:
{
selectable
(
row
)
{
if
(
this
.
readonly
)
{
return
false
;
}
else
if
(
!
this
.
realTimeType
.
includes
(
row
.
isRealTime
))
{
return
false
;
}
else
{
return
true
;
}
return
!
this
.
readonly
&&
this
.
realTimeType
.
includes
(
row
.
isRealTime
);
},
addGroup
()
{
window
.
open
(
'http://gicdev.demogic.com/member-tag/#/memberGroupEdit?refresh'
,
'_blank'
);
...
...
src/components/dm-new-rule/createParams.js
View file @
c6c3c898
...
...
@@ -74,41 +74,5 @@ const transform = (data, scenes) => {
result
.
filterFrontShow
=
JSON
.
stringify
(
filterFrontShow
);
return
{
data
:
result
,
bool
:
filterFrontShow
.
length
>
0
};
};
/**
* @description 处理回显数据
* @param {Object} data 选择好的筛选条件数据
* @chainNodeName {String} 节点名字如:会员等级
* @selectValue {String} 选择条件的文案
* @esScreeningWidgetChainId {String} 节点Id
*/
// const handleEchoData = data => {
// let arr = [];
// data.forEach(item => {
// if (item.selectValue && item.selectValue.length) {
// let selectValue = [];
// if (item.templateCode == 'com026') {
// let myMap = new Map();
// item.selectList.forEach(item => {
// item.data.forEach(val => {
// myMap.set(val.key, val.value);
// });
// });
// item.selectValue.forEach(key => {
// selectValue.push(myMap.get(key));
// });
// selectValue = selectValue.join(',');
// } else if (item.templateCode == 'tag001') {
// item.selectList.forEach(obj => {
// if (item.selectValue.includes(obj.key)) {
// selectValue.push(obj.value);
// }
// });
// selectValue = selectValue.join(',');
// }
// arr.push({ chainNodeName: item.chainNodeName, selectValue, esScreeningWidgetChainId: item.esScreeningWidgetChainId });
// }
// });
// return arr;
// };
export
default
transform
;
src/components/dm-new-rule/ruleFilter.vue
View file @
c6c3c898
...
...
@@ -107,10 +107,6 @@ export default {
type
:
Boolean
,
default
:
false
}
// echoWidth: {
// type: String,
// default: '400px'
// }
},
mounted
()
{
this
.
getDataList
();
...
...
@@ -156,9 +152,6 @@ export default {
}
});
this
.
echoData
=
this
.
handleEchoData
(
filterFrontShow
);
// console.log(this.echoData);
// console.log(filterFrontShow);
// console.log(this.conditionTypeList);
}
});
},
...
...
src/router/modules/ai.js
View file @
c6c3c898
...
...
@@ -36,6 +36,14 @@ export default {
}
},
{
path
:
'copy/:id'
,
name
:
'复制活动'
,
component
:
()
=>
import
(
'../../views/ai/task/form.vue'
),
meta
:
{
type
:
'copy'
}
},
{
path
:
'logs/:id'
,
name
:
'提交日志'
,
component
:
()
=>
import
(
'../../views/ai/logs.vue'
)
...
...
src/service/api/aiApi.js
View file @
c6c3c898
...
...
@@ -53,6 +53,9 @@ export const platformHomePageV2 = params => requests('/gic-member-tag-web/member
// 获取AI数据统计活动信息
export
const
getActivityInfo
=
params
=>
requests
(
'/api-marketing/statistics/get-activity-info'
,
params
,
true
,
false
,
'get'
);
// 获取短信模板内容
export
const
getSmsTemplateEcho
=
params
=>
requests
(
'/api-marketing/get-sms-template-echo'
,
params
,
true
,
false
,
'get'
);
// 获取AI数据统计外呼数据
export
const
getOutBound
=
params
=>
requests
(
'/api-marketing/statistics/out-bound'
,
params
,
true
,
false
,
'get'
);
export
const
getIntentionLabel
=
params
=>
requests
(
'/api-marketing/statistics/intention-label'
,
params
,
true
,
false
,
'get'
);
...
...
src/views/ai/task/components/activeTime.vue
View file @
c6c3c898
...
...
@@ -9,7 +9,7 @@
<defineTime
v-show=
"form.callFlag == 1"
ref=
"defineTime"
:data=
"form.callTime"
/>
</el-form-item>
<el-form-item
label=
"活动有效期"
required
>
<el-date-picker
value-format=
"timestamp"
format=
"
MM-dd
"
v-model=
"form.activeTime"
@
change=
"handleDateChange"
type=
"daterange"
placeholder=
"请选择生日范围"
range-separator=
"~"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
<el-date-picker
value-format=
"timestamp"
format=
"
yyyy-MM-dd"
:picker-options=
"pickerOptions
"
v-model=
"form.activeTime"
@
change=
"handleDateChange"
type=
"daterange"
placeholder=
"请选择生日范围"
range-separator=
"~"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</el-form-item>
</el-form>
</
template
>
...
...
@@ -17,7 +17,8 @@
<
script
>
import
defineTime
from
'./defineTime.vue'
;
import
{
formatDateTimeByType
}
from
'@/utils/index'
;
let
minTime
=
null
;
let
maxTime
=
null
;
export
default
{
data
()
{
return
{
...
...
@@ -27,6 +28,26 @@ export default {
callFlag
:
0
,
//外呼时段 0 默认 1 自定义
callTime
:
[{}]
// 自定义时段
},
pickerOptions
:
{
onPick
(
time
)
{
// 起始时间:仅半年范围内 && 结束时间:跨度最多3个月,即所选起始时间往后+90天为上限;
if
(
!
time
.
maxDate
)
{
const
minTimeRange
=
90
*
24
*
60
*
60
*
1000
;
// 3个月
const
maxTimeRange
=
180
*
24
*
60
*
60
*
1000
;
// 6个月
minTime
=
time
.
minDate
.
getTime
()
-
minTimeRange
>
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
()
?
time
.
minDate
.
getTime
()
-
minTimeRange
:
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
();
maxTime
=
time
.
minDate
.
getTime
()
+
minTimeRange
<
new
Date
().
getTime
()
+
maxTimeRange
?
time
.
minDate
.
getTime
()
+
minTimeRange
:
new
Date
().
getTime
()
+
maxTimeRange
;
}
},
disabledDate
:
time
=>
{
const
maxTimeRange
=
180
*
24
*
60
*
60
*
1000
;
// 6个月
if
(
minTime
&&
maxTime
)
{
return
time
.
getTime
()
<
minTime
||
time
.
getTime
()
>
maxTime
;
}
else
{
return
time
.
getTime
()
<
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
()
||
time
.
getTime
()
>
new
Date
().
getTime
()
+
maxTimeRange
;
}
}
},
rules
:
{}
};
},
...
...
src/views/ai/task/components/birthActiveTime.vue
View file @
c6c3c898
...
...
@@ -12,10 +12,10 @@
</el-radio>
</el-form-item>
<el-form-item
label=
"生日范围"
prop=
"birthDate1"
v-if=
"form.birth_type == 1 || form.birth_type == 3"
required
>
<el-date-picker
value-format=
"timestamp"
format=
"MM-dd"
v-model=
"form.birthDate1"
@
change=
"handleDateChange"
:picker-options=
"pickerOptions"
type=
"daterange"
placeholder=
"请选择生日范围"
range-separator=
"~"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
<el-date-picker
value-format=
"timestamp"
format=
"MM-dd"
v-model=
"form.birthDate1"
@
change=
"handleDateChange"
@
blur=
"minTime = maxTime = null"
:picker-options=
"pickerOptions"
type=
"daterange"
placeholder=
"请选择生日范围"
range-separator=
"~"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"生日范围"
prop=
"birthDate2"
v-if=
"form.birth_type == 2"
>
<el-date-picker
type=
"monthrange"
value-format=
"timestamp"
format=
"MM月"
v-model=
"form.birthDate2"
@
change=
"handleDateMonthChange"
:picker-options=
"pickerOptionsMonth"
placeholder=
"请选择生日范围"
range-separator=
"~"
start-placeholder=
"开始月份"
end-placeholder=
"结束月份"
>
</el-date-picker>
<el-date-picker
type=
"monthrange"
value-format=
"timestamp"
format=
"MM月"
v-model=
"form.birthDate2"
@
change=
"handleDateMonthChange"
@
blur=
"minTimeMonth = maxTimeMonth = null"
:picker-options=
"pickerOptionsMonth"
placeholder=
"请选择生日范围"
range-separator=
"~"
start-placeholder=
"开始月份"
end-placeholder=
"结束月份"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"外呼时段"
required
>
<el-radio
v-model=
"form.callFlag"
:label=
"0"
>
默认时段
</el-radio>
...
...
@@ -35,11 +35,10 @@
<
script
>
import
defineTime
from
'./defineTime.vue'
;
import
{
formatDateTimeByType
}
from
'@/utils/index'
;
let
minTime
=
null
;
let
maxTime
=
null
;
let
minTime
=
null
;
let
minTimeMonth
=
null
;
let
maxTimeMonth
=
null
;
export
default
{
data
()
{
const
birthDateValidtor
=
(
rule
,
value
,
callback
)
=>
{
...
...
@@ -84,17 +83,19 @@ export default {
onPick
(
time
)
{
// 起始时间:仅半年范围内 && 结束时间:跨度最多3个月,即所选起始时间往后+90天为上限;
if
(
!
time
.
maxDate
)
{
const
timeRange
=
90
*
24
*
60
*
60
*
1000
;
// 3个月
minTime
=
time
.
minDate
.
getTime
();
// 最小时间
maxTime
=
time
.
minDate
.
getTime
()
+
timeRange
;
// 最大时间
const
minTimeRange
=
90
*
24
*
60
*
60
*
1000
;
// 3个月
const
maxTimeRange
=
180
*
24
*
60
*
60
*
1000
;
// 6个月
minTime
=
time
.
minDate
.
getTime
()
-
minTimeRange
>
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
()
?
time
.
minDate
.
getTime
()
-
minTimeRange
:
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
();
maxTime
=
time
.
minDate
.
getTime
()
+
minTimeRange
<
new
Date
().
getTime
()
+
maxTimeRange
?
time
.
minDate
.
getTime
()
+
minTimeRange
:
new
Date
().
getTime
()
+
maxTimeRange
;
}
},
disabledDate
:
time
=>
{
const
timeRange
=
30
*
24
*
60
*
60
*
1000
;
// 3个月
const
maxTimeRange
=
180
*
24
*
60
*
60
*
1000
;
// 6个月
if
(
minTime
&&
maxTime
)
{
return
time
.
getTime
()
<
minTime
||
time
.
getTime
()
>
maxTime
;
}
else
{
return
time
.
getTime
()
<
new
Date
(
).
getTime
()
-
24
*
60
*
60
*
1000
||
time
.
getTime
()
>
new
Date
().
getTime
()
+
t
imeRange
;
return
time
.
getTime
()
<
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
()
||
time
.
getTime
()
>
new
Date
().
getTime
()
+
maxT
imeRange
;
}
}
},
...
...
@@ -102,21 +103,22 @@ export default {
onPick
(
time
)
{
// 起始时间:仅半年范围内 && 结束时间:跨度最多3个月,即所选起始时间往后+90天为上限;
if
(
!
time
.
maxDate
)
{
const
timeRange
=
90
*
24
*
60
*
60
*
1000
;
// 3个月
minTimeMonth
=
time
.
minDate
.
getTime
();
// 最小时间
maxTimeMonth
=
time
.
minDate
.
getTime
()
+
timeRange
;
// 最大时间
const
minTimeRange
=
90
*
24
*
60
*
60
*
1000
;
// 3个月
const
maxTimeRange
=
180
*
24
*
60
*
60
*
1000
;
// 6个月
minTimeMonth
=
time
.
minDate
.
getTime
()
-
minTimeRange
>
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
()
?
time
.
minDate
.
getTime
()
-
minTimeRange
:
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
();
maxTimeMonth
=
time
.
minDate
.
getTime
()
+
minTimeRange
<
new
Date
().
getTime
()
+
maxTimeRange
?
time
.
minDate
.
getTime
()
+
minTimeRange
:
new
Date
().
getTime
()
+
maxTimeRange
;
}
},
disabledDate
:
time
=>
{
const
timeRange
=
180
*
24
*
60
*
60
*
1000
;
// 3
个月
if
(
m
inTimeMonth
&&
m
axTimeMonth
)
{
const
maxTimeRange
=
180
*
24
*
60
*
60
*
1000
;
// 6
个月
if
(
maxTimeMonth
)
{
return
time
.
getTime
()
<
minTimeMonth
||
time
.
getTime
()
>
maxTimeMonth
;
}
else
{
return
time
.
getTime
()
<
new
Date
(
).
getTime
()
||
time
.
getTime
()
>
new
Date
().
getTime
()
+
t
imeRange
;
return
time
.
getTime
()
<
new
Date
(
new
Date
().
getFullYear
(),
new
Date
().
getMonth
(),
1
).
getTime
()
||
time
.
getTime
()
>
new
Date
().
getTime
()
+
maxT
imeRange
;
}
}
},
currentTime
:
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
()
currentTime
:
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
()
// 当天零点时间戳
};
},
props
:
{
...
...
@@ -177,7 +179,7 @@ export default {
obj
.
startDate
=
birthDate1
[
0
]
-
birth_days
*
24
*
60
*
60
*
1000
;
obj
.
endDate
=
birthDate1
[
1
]
-
birth_days
*
24
*
60
*
60
*
1000
;
}
else
if
(
birth_type
==
2
)
{
obj
.
startDate
=
birthDate2
[
0
]
;
obj
.
startDate
=
this
.
currentTime
;
obj
.
endDate
=
birthDate2
[
1
];
}
else
{
obj
.
startDate
=
birthDate1
[
0
];
...
...
src/views/ai/task/components/holidayActiveTime.vue
View file @
c6c3c898
...
...
@@ -44,9 +44,9 @@
仅支持选择节日日期为最近1-60天内的节日
</div>
<div
class=
"holiday"
v-for=
"item in holidayData"
:key=
"item.id"
>
<dm-sub-title>
{{
item
.
id
}}
级
</dm-sub-title>
<dm-sub-title>
{{
item
.
name
}}
级
</dm-sub-title>
<div
class=
"radioLine"
>
<el-radio
v-model=
"selectedData"
:label=
"val"
v-for=
"val in item.holidaysList"
:key=
"val.id"
>
{{
val
.
name
}}
</el-radio>
<el-radio
v-model=
"selectedData"
:
disabled=
"val.disabled"
:
label=
"val"
v-for=
"val in item.holidaysList"
:key=
"val.id"
>
{{
val
.
name
}}
</el-radio>
</div>
</div>
<span
slot=
"footer"
>
...
...
@@ -159,15 +159,14 @@ export default {
visible
:
false
,
pickerOptions
:
{
onPick
(
time
)
{
// 起始时间:仅半年范围内 && 结束时间:跨度最多3个月,即所选起始时间往后+90天为上限;
if
(
!
time
.
maxDate
)
{
const
timeRange
=
60
*
24
*
60
*
60
*
1000
;
// 3个月
const
timeRange
=
60
*
24
*
60
*
60
*
1000
;
minTime
=
time
.
minDate
.
getTime
();
// 最小时间
maxTime
=
time
.
minDate
.
getTime
()
+
timeRange
;
// 最大时间
}
},
disabledDate
:
time
=>
{
const
timeRange
=
60
*
24
*
60
*
60
*
1000
;
// 3个月
const
timeRange
=
60
*
24
*
60
*
60
*
1000
;
if
(
minTime
&&
maxTime
)
{
return
time
.
getTime
()
<
minTime
||
time
.
getTime
()
>
maxTime
;
}
else
{
...
...
@@ -230,10 +229,17 @@ export default {
},
async
getListAllHolidays
()
{
const
{
result
}
=
await
listAllHolidays
();
console
.
log
(
result
);
if
(
result
)
{
this
.
holidayData
=
result
;
}
if
(
!
result
)
return
;
result
.
forEach
(
item
=>
{
if
(
item
.
holidaysList
&&
item
.
holidaysList
.
length
)
{
item
.
holidaysList
.
forEach
(
val
=>
{
if
(
getTimesByReq
(
val
.
date
)
<=
this
.
currentTime
||
this
.
currentTime
+
60
*
24
*
60
*
60
*
1000
<
getTimesByReq
(
val
.
date
))
{
val
.
disabled
=
true
;
}
});
}
});
this
.
holidayData
=
result
;
},
addItem
()
{
if
(
!
this
.
selectedData
)
{
...
...
src/views/ai/task/form.vue
View file @
c6c3c898
This diff is collapsed.
Click to expand it.
src/views/ai/task/task.vue
View file @
c6c3c898
...
...
@@ -153,7 +153,7 @@ export default {
limitCode
:
''
},
handler
:
row
=>
{
console
.
log
(
'复制'
);
this
.
$router
.
push
(
'/ai/copy/'
+
row
.
activityId
);
}
},
{
...
...
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