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
382194fc
Commit
382194fc
authored
Apr 06, 2022
by
crushh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update: dist
parent
994975ba
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
158 additions
and
54 deletions
+158
-54
reset.scss
src/assets/style/base/reset.scss
+0
-1
activeTime.vue
src/views/ai/task/components/activeTime.vue
+10
-8
birthActiveTime.vue
src/views/ai/task/components/birthActiveTime.vue
+10
-9
defineTime.vue
src/views/ai/task/components/defineTime.vue
+114
-27
holidayActiveTime.vue
src/views/ai/task/components/holidayActiveTime.vue
+19
-9
form.vue
src/views/ai/task/form.vue
+5
-0
No files found.
src/assets/style/base/reset.scss
View file @
382194fc
...
...
@@ -566,7 +566,6 @@ img::after {
text-align
:
center
;
color
:
#f5222d
;
line-height
:
24px
;
margin-left
:
6px
;
cursor
:
pointer
;
&
:hover
{
background
:
#f6e1e5
;
...
...
src/views/ai/task/components/activeTime.vue
View file @
382194fc
...
...
@@ -76,14 +76,16 @@ export default {
methods
:
{
submit
()
{
return
new
Promise
(
async
resolve
=>
{
const
res
=
await
this
.
$refs
.
defineTime
.
submit
();
let
arr
=
[];
if
(
!
res
)
return
;
res
.
timeRangeList
.
forEach
(
item
=>
{
if
(
Object
.
keys
(
item
).
length
)
{
arr
.
push
(
`
${
item
.
startTime
}
-
${
item
.
endTime
}
`
);
}
});
if
(
this
.
form
.
callFlag
==
1
)
{
const
res
=
await
this
.
$refs
.
defineTime
.
submit
();
if
(
!
res
)
return
;
res
.
timeRangeList
.
forEach
(
item
=>
{
if
(
Object
.
keys
(
item
).
length
)
{
arr
.
push
(
`
${
item
.
startTime
}
-
${
item
.
endTime
}
`
);
}
});
}
this
.
$refs
.
form
.
validate
(
val
=>
{
if
(
val
)
{
const
{
callFlag
,
callTime
,
activeTime
}
=
this
.
form
;
...
...
@@ -93,7 +95,7 @@ export default {
callFlag
,
callTime
};
if
(
arr
.
length
)
{
if
(
callFlag
==
1
)
{
obj
.
callTime
=
arr
;
}
resolve
(
obj
);
...
...
src/views/ai/task/components/birthActiveTime.vue
View file @
382194fc
...
...
@@ -156,19 +156,20 @@ export default {
methods
:
{
submit
()
{
return
new
Promise
(
async
resolve
=>
{
const
res
=
await
this
.
$refs
.
defineTime
.
submit
();
let
arr
=
[];
if
(
!
res
)
return
;
res
.
timeRangeList
.
forEach
(
item
=>
{
if
(
Object
.
keys
(
item
).
length
)
{
arr
.
push
(
`
${
item
.
startTime
}
-
${
item
.
endTime
}
`
);
}
});
if
(
this
.
form
.
callFlag
==
1
)
{
const
res
=
await
this
.
$refs
.
defineTime
.
submit
();
if
(
!
res
)
return
;
res
.
timeRangeList
.
forEach
(
item
=>
{
if
(
Object
.
keys
(
item
).
length
)
{
arr
.
push
(
`
${
item
.
startTime
}
-
${
item
.
endTime
}
`
);
}
});
}
this
.
$refs
.
form
.
validate
(
val
=>
{
console
.
log
(
val
);
if
(
val
)
{
const
{
birth_type
,
callFlag
,
birthDate1
,
birthDate2
,
callTime
,
birth_days
}
=
this
.
form
;
const
obj
=
{
callFlag
,
birth_type
,
...
...
@@ -185,7 +186,7 @@ export default {
obj
.
startDate
=
birthDate1
[
0
];
obj
.
endDate
=
birthDate1
[
1
];
}
if
(
arr
.
length
)
{
if
(
callFlag
==
1
)
{
obj
.
callTime
=
arr
;
}
if
(
birth_type
!=
3
)
{
...
...
src/views/ai/task/components/defineTime.vue
View file @
382194fc
...
...
@@ -2,8 +2,8 @@
<div
class=
"defineTime"
>
<p
class=
"tips"
>
自定义时段不少于4个小时
</p>
<el-form
:model=
"form"
ref=
"defineTime"
>
<
el-form-item
class=
"mt10"
v-for=
"(v, i) in form.timeRangeList"
:key=
"i"
:prop=
"'timeRangeList.' + i + '.timeRange'
"
>
<
div
style=
"display: flex;align-items: center;
"
>
<
div
class=
"flex"
v-for=
"(v, i) in form.timeRangeList"
:key=
"i
"
>
<
el-form-item
class=
"mt10"
:prop=
"'timeRangeList.' + i + '.startTime'"
:rules=
"[
{ validator: validateTime(i) }, { validator: validateStarTime(v, i) }]
">
<el-time-select
placeholder=
"起始时间"
v-model=
"v.startTime"
...
...
@@ -14,30 +14,33 @@
}"
>
</el-time-select>
<el-time-select
placeholder=
"结束时间"
v-model=
"v.endTime"
:picker-options=
"endPickerOptions(v.startTime)"
>
</el-time-select>
<div
class=
"delIcon"
type=
"text"
@
click=
"delTimeRange(i)"
>
<i
class=
"iconfont icon-Delete"
></i>
</div>
</el-form-item>
<span
style=
"margin: 10px 10px 0"
>
至
</span>
<el-form-item
class=
"mt10"
:prop=
"'timeRangeList.' + i + '.endTime'"
:rules=
"[
{ validator: validateTime(i) }, { validator: validateEndTime(v, i) }]">
<el-time-select
placeholder=
"结束时间"
v-model=
"v.endTime"
:picker-options=
"
{
start: '09:00',
step: '00:30',
end: '20:00'
}"
>
</el-time-select>
</el-form-item>
<div
class=
"delIcon"
style=
"margin: 10px 0 0 16px"
type=
"text"
@
click=
"delTimeRange(i)"
>
<i
class=
"iconfont icon-Delete"
></i>
</div>
</
el-form-item
>
</
div
>
</el-form>
<el-button
type=
"text"
@
click=
"addTimeRange"
>
<i
class=
"iconfont icon-Plus"
></i>
添加时间段
</el-button>
<el-button
class=
"addTimeBtn"
type=
"text"
@
click=
"addTimeRange"
>
<i
class=
"iconfont icon-Plus"
></i>
添加时间段
</el-button>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
const
validateTime
=
item
=>
({
required
:
true
,
validator
:
(
rule
,
_
,
cb
)
=>
{
// item 就是数据啦,可以校验了
cb
();
}
});
return
{
validateTime
,
form
:
{
timeRangeList
:
[{}]
}
...
...
@@ -61,15 +64,65 @@ export default {
}
}
},
computed
:
{
// pickerOptions() {
// console.log(this.form.timeRangeList);
// let endTime = this.form.timeRangeList.reduce((p, v) => (p.endTime
<
v
.
endTime
?
v
:
p
)).
endTime
;
// let obj = {
// start: '09:00',
// step: '00:30',
// end: '20:00'
// };
// endTime ? (obj.start = endTime) : '';
// return obj;
// }
},
methods
:
{
endPickerOptions
(
val
)
{
let
endTime
=
this
.
form
.
timeRangeList
.
reduce
((
p
,
v
)
=>
(
p
.
startTime
<
v
.
startTime
?
v
:
p
)).
endTime
;
console
.
log
(
endTime
);
return
{
start
:
'09:00'
,
step
:
'00:30'
,
end
:
'20:00'
,
minTime
:
val
validateTime
(
i
)
{
return
(
rule
,
value
,
callback
)
=>
{
const
start
=
[];
const
end
=
[];
const
array
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
form
.
timeRangeList
));
const
arr
=
array
.
sort
((
firstEl
,
secondEl
)
=>
{
return
new
Date
(
new
Date
().
toLocaleDateString
()
+
' '
+
firstEl
.
startTime
).
getTime
()
-
new
Date
(
new
Date
().
toLocaleDateString
()
+
' '
+
secondEl
.
startTime
).
getTime
();
});
arr
.
forEach
(
item
=>
{
start
.
push
(
item
.
startTime
?
item
.
startTime
:
''
);
end
.
push
(
item
.
endTime
?
item
.
endTime
:
''
);
});
for
(
let
i
=
1
;
i
<
start
.
length
;
i
++
)
{
if
(
end
[
i
-
1
]
&&
start
[
i
]
<
end
[
i
-
1
])
{
callback
(
new
Error
(
'区间有交叉'
));
return
;
}
}
callback
();
};
},
validateStarTime
(
v
,
i
)
{
let
{
startTime
,
endTime
}
=
v
;
return
(
rule
,
value
,
callback
)
=>
{
if
(
!
startTime
)
{
callback
(
new
Error
(
' '
));
}
else
if
(
startTime
>=
endTime
)
{
callback
(
new
Error
(
'开始时间要小于结束时间'
));
}
else
{
this
.
$refs
.
defineTime
.
clearValidate
(
'timeRangeList.'
+
i
+
'.endTime'
);
callback
();
}
};
},
validateEndTime
(
v
,
i
)
{
const
{
startTime
,
endTime
}
=
v
;
return
(
rule
,
value
,
callback
)
=>
{
if
(
!
endTime
)
{
callback
(
new
Error
(
' '
));
}
else
if
(
endTime
<
startTime
)
{
callback
(
new
Error
(
'结束时间要大于开始时间'
));
}
else
{
this
.
$refs
.
defineTime
.
clearValidate
(
'timeRangeList.'
+
i
+
'.startTime'
);
callback
();
}
};
},
// 删除兑换时段
...
...
@@ -84,10 +137,35 @@ export default {
}
this
.
form
.
timeRangeList
.
push
({});
},
// 提交时校验是否超过4小时
handleCallTime
()
{
let
minutes
=
0
;
this
.
form
.
timeRangeList
.
forEach
(
item
=>
{
let
end
=
new
Date
(
new
Date
().
toLocaleDateString
()
+
' '
+
item
.
endTime
).
getTime
();
let
start
=
new
Date
(
new
Date
().
toLocaleDateString
()
+
' '
+
item
.
startTime
).
getTime
();
console
.
log
(
start
,
end
);
minutes
=
(
end
-
start
)
/
60000
+
minutes
;
});
if
(
minutes
<
240
)
{
this
.
$message
.
error
(
'自定义时段不少于4个小时'
);
return
;
}
},
submit
()
{
return
new
Promise
(
resolve
=>
{
let
minutes
=
0
;
this
.
form
.
timeRangeList
.
forEach
(
item
=>
{
let
end
=
new
Date
(
new
Date
().
toLocaleDateString
()
+
' '
+
item
.
endTime
).
getTime
();
let
start
=
new
Date
(
new
Date
().
toLocaleDateString
()
+
' '
+
item
.
startTime
).
getTime
();
console
.
log
(
start
,
end
);
minutes
=
(
end
-
start
)
/
60000
+
minutes
;
});
if
(
minutes
<
240
)
{
this
.
$message
.
error
(
'自定义时段不少于4个小时'
);
resolve
(
false
);
return
;
}
this
.
$refs
.
defineTime
.
validate
(
val
=>
{
console
.
log
(
val
);
if
(
val
)
{
resolve
(
this
.
form
);
}
else
{
...
...
@@ -103,11 +181,20 @@ export default {
<
style
lang=
"scss"
scoped
>
.defineTime
{
width
:
400px
;
//
height
:
164px
;
background
:
#f7f8fa
;
border-radius
:
4px
;
padding
:
16px
;
box-sizing
:
border-box
;
.flex
{
display
:
flex
;
align-items
:
center
;
}
/
deep
/
.el-date-editor.el-input
{
width
:
140px
;
}
.addTimeBtn
{
margin-top
:
16px
;
}
}
.tips
{
font-size
:
12px
;
...
...
src/views/ai/task/components/holidayActiveTime.vue
View file @
382194fc
...
...
@@ -174,6 +174,7 @@ export default {
}
}
},
currentTime
:
new
Date
(
new
Date
().
toLocaleDateString
()).
getTime
()
};
},
...
...
@@ -190,6 +191,8 @@ export default {
data
(
val
)
{
if
(
val
)
{
this
.
form
=
JSON
.
parse
(
JSON
.
stringify
(
val
));
this
.
form
[
`holiday_date
${
this
.
form
.
holiday_type
}
`
]
=
this
.
form
.
holiday_date
;
this
.
form
[
`holiday_name
${
this
.
form
.
holiday_type
}
`
]
=
this
.
form
.
holiday_name
;
this
.
handleHolidayDay
();
}
}
...
...
@@ -256,16 +259,24 @@ export default {
this
.
selectedData
=
''
;
this
.
visible
=
false
;
},
getCurrentDate
(
time
)
{
let
date
=
new
Date
().
toLocaleDateString
();
let
currentdate
=
date
+
' '
+
time
;
return
new
Date
(
currentdate
).
getTime
();
},
submit
()
{
return
new
Promise
(
async
resolve
=>
{
const
res
=
await
this
.
$refs
.
defineTime
.
submit
();
let
arr
=
[];
if
(
!
res
)
return
;
res
.
timeRangeList
.
forEach
(
item
=>
{
if
(
Object
.
keys
(
item
).
length
)
{
arr
.
push
(
`
${
item
.
startTime
}
-
${
item
.
endTime
}
`
);
}
});
if
(
this
.
form
.
callFlag
==
1
)
{
const
res
=
await
this
.
$refs
.
defineTime
.
submit
();
if
(
!
res
)
return
;
res
.
timeRangeList
.
forEach
(
item
=>
{
if
(
Object
.
keys
(
item
).
length
)
{
arr
.
push
(
`
${
item
.
startTime
}
-
${
item
.
endTime
}
`
);
}
});
}
this
.
$refs
.
form
.
validate
(
val
=>
{
if
(
val
)
{
const
{
callFlag
,
callTime
,
holiday_date1
,
holiday_type
,
holiday_name1
,
holiday_day
,
holiday_name2
,
holiday_date2
}
=
this
.
form
;
...
...
@@ -285,8 +296,7 @@ export default {
obj
.
holiday_name
=
holiday_name2
;
obj
.
holiday_date
=
holiday_date2
;
}
console
.
log
(
obj
);
if
(
arr
.
length
)
{
if
(
callFlag
==
1
)
{
obj
.
callTime
=
arr
;
}
resolve
(
obj
);
...
...
src/views/ai/task/form.vue
View file @
382194fc
...
...
@@ -576,7 +576,12 @@ export default {
const
activeTimeData
=
await
this
.
$refs
[
`activeTime
${[
1
,
2
].
includes
(
this
.
form
.
scene
)
?
this
.
form
.
scene
:
''
}
`
].
submit
();
if
(
!
activeTimeData
)
return
;
console
.
log
(
activeTimeData
);
const
{
startDate
,
endDate
,
callFlag
,
callTime
,
birth_type
,
birth_days
,
holiday_date
,
holiday_type
,
holiday_name
}
=
activeTimeData
;
if
(
new
Date
().
getHours
()
>=
15
&&
new
Date
(
startDate
).
getMonth
()
+
1
==
new
Date
().
getMonth
()
+
1
&&
new
Date
(
startDate
).
getDate
()
==
new
Date
().
getDate
())
{
this
.
$message
.
error
(
'16:00之后不支持创建当天生效的活动'
);
return
;
}
this
.
$refs
.
form
.
validate
(
async
(
val
,
obj
)
=>
{
console
.
log
(
val
,
obj
);
if
(
val
)
{
...
...
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