Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
Project
Project
Details
Activity
Releases
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
罗超
confucius
Commits
03b90f42
Commit
03b90f42
authored
Jul 06, 2021
by
Mac
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
602b7ad0
27e5605c
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
782 additions
and
497 deletions
+782
-497
active-from.vue
src/components/activity/active-from.vue
+254
-211
activeDetail.vue
src/pages/activity/activeDetail.vue
+152
-89
activityList.vue
src/pages/activity/activityList.vue
+135
-191
copyActive.vue
src/pages/activity/copyActive.vue
+227
-0
personalData.vue
src/pages/user/personalData.vue
+5
-2
routes.js
src/router/routes.js
+9
-4
No files found.
src/components/activity/active-from.vue
View file @
03b90f42
<
template
>
<div>
<q-dialog
v-model=
"persistent"
persistent
content-class=
"bg-grey-1"
transition-show=
"scale"
transition-hide=
"scale"
class=
"addactivetype"
>
<q-card
style=
"width: 450px;max-width:500px;"
>
<q-card-section>
<div
class=
"addactivetype"
>
<!--
<q-card-section>
<div
class=
"text-h6"
>
{{
(
saveObj
&&
saveObj
.
Id
>
0
)?
"修改活动"
:
"新增活动"
}}
</div>
</q-card-section>
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
</q-card-section>
-->
<div
class=
"page-search row items-center flex"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-6"
>
<q-input
filled
stack-label
maxlength=
"20"
:dense=
"false"
v-model=
"addMsg.ActivityName"
ref=
"Name"
class=
"col-12 q-pb-lg"
label=
"活动名称"
:rules=
"[val => !!val || '请填写活动名称']"
/>
</div>
<div
class=
"col-6"
>
<q-select
stack-label
color=
"primary"
filled
clearable
label=
"选择活动类型"
option-value=
"Id"
option-label=
"TypeName"
:options=
"activeTypeOptions"
v-model=
"addMsg.ActivityType"
ref=
"ActivityType"
emit-value
map-options
:rules=
"[val => !!val || '请选择活动类型']"
/>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<div
class=
"col-6 Sysuser_Date"
>
<q-input
filled
v-model=
"addMsg.StartTime"
mask=
"####-##-## ##:##:##"
label=
"开始时间"
ref=
"StartTime"
:rules=
"[val => !!val || '请选择开始时间']"
>
<template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<div
class=
"q-gutter-md row items-start"
>
<q-date
v-model=
"addMsg.StartTime
"
mask=
"YYYY-MM-DD HH:mm:ss"
></q-date>
<q-date
v-model=
"addMsg.StartTime"
:options=
"StartTimeOptions
"
mask=
"YYYY-MM-DD HH:mm:ss"
></q-date>
<q-time
v-model=
"addMsg.StartTime"
format24h
mask=
"YYYY-MM-DD HH:mm:ss"
/>
</div>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
...
...
@@ -30,17 +33,15 @@
</
template
>
</q-input>
</div>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<div
class=
"col-6 Sysuser_Date"
>
<q-input
filled
v-model=
"addMsg.EndTime"
mask=
"####-##-## ##:##:##"
label=
"结束时间"
ref=
"EndTime"
:rules=
"[val => !!val || '请选择结束时间']"
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<div
class=
"q-gutter-md row items-start"
>
<q-date
v-model=
"addMsg.EndTimeStr
"
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"edate"
></q-date>
<q-time
v-model=
"addMsg.EndTimeStr"
format24h
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"etime"
/>
<q-date
v-model=
"addMsg.EndTimeStr"
:options=
"EndTimeOptions
"
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"edate"
></q-date>
<q-time
v-model=
"addMsg.EndTimeStr"
format24h
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"etime"
/>
</div>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
</q-popup-proxy>
...
...
@@ -48,16 +49,14 @@
</
template
>
</q-input>
</div>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<q-input
filled
v-model=
"addMsg.SignStartTime"
mask=
"####-##-## ##:##:##"
ref=
"SignStartTime"
label=
"报名开始时间"
:rules=
"[val => !!val || '请选择报名开始时间']"
>
<div
class=
"col-6"
>
<q-input
filled
v-model=
"addMsg.SignStartTime"
mask=
"####-##-## ##:##:##"
ref=
"SignStartTime"
label=
"报名开始时间"
:rules=
"[val => !!val || '请选择报名开始时间']"
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<div
class=
"q-gutter-md row items-start"
>
<q-date
v-model=
"addMsg.SignStartTimeStr
"
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"date"
/>
<q-date
v-model=
"addMsg.SignStartTimeStr"
:options=
"SignStartTimeOptions
"
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"date"
/>
<q-time
v-model=
"addMsg.SignStartTimeStr"
format24h
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"time"
/>
</div>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
...
...
@@ -66,16 +65,14 @@
</
template
>
</q-input>
</div>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<div
class=
"col-6"
>
<q-input
filled
v-model=
"addMsg.SignEndTime"
mask=
"####-##-## ##:##:##"
ref=
"SignEndTime"
label=
"报名结束时间"
:rules=
"[val => !!val || '请选择报名结束时间']"
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<div
class=
"q-gutter-md row items-start"
>
<q-date
v-model=
"addMsg.SignEndTimeStr
"
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"endDate"
/>
<q-date
v-model=
"addMsg.SignEndTimeStr"
:options=
"SignEndTimeOptions
"
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"endDate"
/>
<q-time
v-model=
"addMsg.SignEndTimeStr"
format24h
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"endTime"
/>
</div>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
...
...
@@ -84,134 +81,108 @@
</
template
>
</q-input>
</div>
<div
class=
"col-6"
>
<q-input
filled
stack-label
maxlength=
"40"
:dense=
"false"
v-model=
"addMsg.LocationName"
ref=
"LocationName"
class=
"col-12 q-pb-lg"
label=
"活动地址"
:rules=
"[val => !!val || '请填写活动地址']"
>
</q-input>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<q-select
stack-label
color=
"primary"
filled
clearable
label=
"选择活动类型"
option-value=
"Id"
option-label=
"TypeName"
:options=
"activeTypeOptions"
v-model=
"addMsg.ActivityType"
ref=
"ActivityType"
emit-value
map-options
:rules=
"[val => !!val || '请选择活动类型']"
/>
</div>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<q-uploader
:style=
"{ backgroundImage: 'url(' + addMsg.CoverImg + ')' }"
style=
"width:auto;height:300px;background-repeat:no-repeat;background-size:cover; border:1px solid #eee"
flat
hide-upload-btn
max-files=
"1"
label=
"封面图"
accept=
".jpg, image/*"
:factory=
"uploadFile"
auto-upload
>
</q-uploader>
</div>
<div
class=
"col-6"
>
<q-input
filled
stack-label
maxlength=
"40"
disable
:dense=
"false"
v-model=
"addMsg.LonLat"
ref=
"LonLat"
class=
"col-12 q-pb-lg"
label=
"门店经纬度"
:rules=
"[val => !!val || '请填写门店经纬度']"
>
<
template
v-slot:after
>
<q-btn
round
color=
"black"
icon=
"my_location"
@
click=
"getMapShow"
/>
</
template
>
</q-input>
<!-- 地图选址 -->
<el-dialog
title=
"地图展示"
:visible
.
sync=
"isShowMap"
width=
"960px"
style=
"zIndex:999999"
>
<Map
@
map-submit=
"mapEvent"
:address=
"addMsg.LocationName"
style=
"zIndex:999999"
></Map>
</el-dialog>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12 q-mt-sm q-mb-sm flex "
style=
"align-items:center"
>
<div
class=
"col-6"
>
<div>
是否免费:
</div>
<q-toggle
v-model=
"addMsg.IsFree"
:true-value=
"1"
:false-value=
"2"
@
input=
'addMsg.Price=0,addMsg.PointNum=0'
/>
</div>
</div>
<div
class=
"row wrap"
v-if=
"addMsg.IsFree==2"
>
<div
class=
"col-12"
>
<q-input
filled
stack-label
maxlength=
"20"
type=
"number"
:step=
"0.01"
:dense=
"false"
v-model=
"addMsg.Price"
ref=
"Price"
class=
"col-12 q-pb-lg"
label=
"现金价格"
:rules=
"[val => !!val || '请填写现金价格']"
suffix=
"元"
>
<div
class=
"col-6"
v-if=
"addMsg.IsFree==2"
>
<q-input
filled
stack-label
maxlength=
"20"
type=
"number"
:step=
"0.01"
:dense=
"false"
v-model=
"addMsg.Price"
ref=
"Price"
class=
"col-12 q-pb-lg"
label=
"现金价格"
:rules=
"[val => !!val || '请填写现金价格']"
suffix=
"元"
>
</q-input>
</div>
<div
class=
"col-6"
v-if=
"addMsg.IsFree==1"
>
<!-- 占位 -->
</div>
<!-- <div class="row wrap" v-if="addMsg.IsFree==2">
<div class="col-12">
<q-input filled stack-label maxlength="20" type="number" :dense="false" v-model="addMsg.PointNum"
ref="PointNum" class="col-12 q-pb-lg" label="点数" :rules="[val => !!val || '请填写点数']" suffix="点">
</q-input>
</div>
</div> -->
<div
class=
"row wrap"
>
<div
class=
"col-12 q-mt-sm q-mb-sm flex "
style=
"align-items:center"
>
<div
class=
"col-6"
>
<div>
是否区分性别:
</div>
<q-toggle
v-model=
"addMsg.Distinguish"
:true-value=
"0"
:false-value=
"1"
@
input=
'addMsg.ManNum=0,addMsg.WoManNum=0'
/>
</div>
</div>
<div
class=
"row wrap"
v-if=
"addMsg.Distinguish==0"
>
<div
class=
"col-12"
>
<q-input
filled
stack-label
maxlength=
"20"
type=
"number"
:dense=
"false"
v-model=
"addMsg.ManNum"
ref=
"ManNum"
class=
"col-12 q-pb-lg"
label=
"男性"
:rules=
"[val => !!val || '请填写男性人数']"
suffix=
"人"
>
<div
class=
"col-6"
v-if=
" addMsg.Distinguish===1"
>
<q-input
filled
stack-label
maxlength=
"20"
type=
"number"
:dense=
"false"
v-model=
"addMsg.ManNum"
ref=
"ManNum"
class=
"col-12 q-pb-lg"
label=
"总人数"
:rules=
"[val => !!val || '请填写总人数']"
suffix=
"人"
>
</q-input>
</div>
<div
class=
"col-6"
v-if=
"addMsg.Distinguish==0"
>
<!-- 占位 -->
</div>
<div
class=
"row wrap"
v-if=
"addMsg.Distinguish==0"
>
<div
class=
"col-12"
>
<q-input
filled
stack-label
maxlength=
"20"
type=
"number"
:dense=
"false"
v-model=
"addMsg.WoManNum"
ref=
"WoManNum"
class=
"col-12 q-pb-lg"
label=
"女性"
:rules=
"[val => !!val || '请填写女性人数']"
suffix=
"人"
>
<div
class=
"col-6"
v-if=
"addMsg.Distinguish==0"
>
<q-input
filled
stack-label
maxlength=
"20"
type=
"number"
:dense=
"false"
v-model=
"addMsg.ManNum"
ref=
"ManNum"
class=
"col-12 q-pb-lg"
label=
"男性"
:rules=
"[val => !!val || '请填写男性人数']"
suffix=
"人"
>
</q-input>
</div>
</div>
<div
class=
"row wrap"
v-if=
"addMsg.Distinguish==1"
>
<div
class=
"col-12"
>
<q-input
filled
stack-label
maxlength=
"20"
type=
"number"
:dense=
"false"
v-model=
"addMsg.ManNum"
ref=
"ManNum"
class=
"col-12 q-pb-lg"
label=
"总人数"
:rules=
"[val => !!val || '请填写总人数']"
suffix=
"人"
>
<div
class=
"col-6"
v-if=
"addMsg.Distinguish==0"
>
<q-input
filled
stack-label
maxlength=
"20"
type=
"number"
:dense=
"false"
v-model=
"addMsg.WoManNum"
ref=
"WoManNum"
class=
"col-12 q-pb-lg"
label=
"女性"
:rules=
"[val => !!val || '请填写女性人数']"
suffix=
"人"
>
</q-input>
</div>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12 q-mt-sm q-mb-sm flex "
style=
"align-items:center"
>
<div
class=
"col-6"
>
<div>
是否区分年龄:
</div>
<q-toggle
v-model=
"addMsg.AgeLimit"
:true-value=
"0"
:false-value=
"1"
@
change=
'addMsg.StartAge=0,addMsg.EndAge=0'
/>
</div>
</div>
<div
class=
"row wrap"
v-if=
"addMsg.AgeLimit==0"
>
<div
class=
"col-12 q-mt-sm q-mb-sm flex "
style=
"align-items:center"
>
<div
class=
"col-6"
v-if=
"addMsg.AgeLimit===0"
>
<div>
年龄范围:
</div>
<q-range
v-model=
"labelAge"
:min=
"0"
:max=
"50"
:step=
"1"
label-always
:left-label-value=
"labelAge.min + '岁'"
:right-label-value=
"labelAge.max + '岁'"
color=
"brown"
@
change=
"changeAge"
/>
<q-range
v-model=
"labelAge"
:min=
"0"
:max=
"50"
:step=
"1"
label-always
:left-label-value=
"labelAge.min + '岁'"
:right-label-value=
"labelAge.max + '岁'"
color=
"brown"
@
change=
"changeAge"
/>
</div>
<div
class=
"col-6"
v-if=
"addMsg.AgeLimit==1"
>
<!-- 占位 -->
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12 q-mt-sm q-mb-sm flex "
style=
"align-items:center"
>
<div
class=
"col-6"
>
<div>
是否内部限制:
</div>
<q-toggle
v-model=
"addMsg.LnsideLimit"
:true-value=
"1"
:false-value=
"0"
/>
</div>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12 q-mt-sm q-mb-sm flex "
style=
"align-items:center"
>
<div
class=
"col-6"
>
<div>
报名取消确认:
</div>
<q-toggle
v-model=
"addMsg.IsCancelConfirm"
:true-value=
"1"
:false-value=
"2"
/>
</div>
<div
class=
"col-6"
>
<q-uploader
:style=
"{ backgroundImage: 'url(' + addMsg.CoverImg + ')' }"
style=
"width:auto;height:300px;background-repeat:no-repeat;background-size:cover; border:1px solid #eee"
flat
hide-upload-btn
max-files=
"1"
label=
"封面图"
accept=
".jpg, image/*"
:factory=
"uploadFile"
auto-upload
>
</q-uploader>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<q-input
filled
stack-label
maxlength=
"40"
:dense=
"false"
v-model=
"addMsg.LocationName"
ref=
"LocationName"
class=
"col-12 q-pb-lg"
label=
"活动地址"
:rules=
"[val => !!val || '请填写活动地址']"
>
</q-input>
</div>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<q-input
filled
stack-label
maxlength=
"40"
disable
:dense=
"false"
v-model=
"addMsg.LonLat"
ref=
"LonLat"
class=
"col-12 q-pb-lg"
label=
"门店经纬度"
:rules=
"[val => !!val || '请填写门店经纬度']"
>
<
template
v-slot:after
>
<q-btn
round
color=
"black"
icon=
"my_location"
@
click=
"getMapShow"
/>
</
template
>
</q-input>
<!-- 地图选址 -->
<el-dialog
title=
"地图展示"
:visible
.
sync=
"isShowMap"
width=
"960px"
style=
"zIndex:999999"
>
<Map
@
map-submit=
"mapEvent"
:address=
"addMsg.LocationName"
style=
"zIndex:999999"
></Map>
</el-dialog>
</div>
</div>
<div
class=
"row wrap"
>
<div
class=
"page-search row items-center flex"
>
<div
class=
"q-mt-lg q-mb-sm"
>
活动特色
</div>
<div
class=
"col-12"
>
<Ueditor
:value=
"ueditor.value"
:config=
"ueditor.config"
@
input=
"setVal"
ref=
"ue"
no-margin
:isShowInsertImage=
"false"
:isShowAttachment=
"false"
:isShowVoice=
"false"
></Ueditor>
</div>
</div>
</q-card-section>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<!--
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeRuleForm" />
<q-btn label="保存" color="accent q-px-md" style="font-weight:400 !important" @click="saveRule" />
</q-card-actions
>
</q-card>
</
q-dialog
>
</q-card-actions> --
>
</
div
>
</div>
</template>
...
...
@@ -278,11 +249,58 @@
initialFrameHeight
:
100
,
autoHeightEnabled
:
true
,
enableContextMenu
:
false
,
zIndex
:
900
zIndex
:
900
}
},
}
},
watch
:
{
saveObj
:
{
handler
(
val
)
{
if
(
val
&&
val
.
Id
>
0
)
{
this
.
addMsg
.
Id
=
this
.
saveObj
.
Id
this
.
addMsg
.
ActivityName
=
this
.
saveObj
.
ActivityName
this
.
addMsg
.
StartTime
=
this
.
saveObj
.
StartTime
this
.
addMsg
.
EndTime
=
this
.
saveObj
.
EndTime
this
.
addMsg
.
CoverImg
=
this
.
saveObj
.
CoverImg
this
.
addMsg
.
ActivityType
=
this
.
saveObj
.
ActivityType
this
.
addMsg
.
ActivityInfo
=
this
.
saveObj
.
ActivityInfo
this
.
addMsg
.
SignStartTime
=
this
.
saveObj
.
SignStartTime
this
.
addMsg
.
SignStartTimeStr
=
this
.
saveObj
.
SignStartTimeStr
this
.
addMsg
.
SignEndTime
=
this
.
saveObj
.
SignEndTime
this
.
addMsg
.
SignEndTimeStr
=
this
.
saveObj
.
SignEndTimeStr
this
.
addMsg
.
IsFree
=
this
.
saveObj
.
IsFree
this
.
addMsg
.
Price
=
this
.
saveObj
.
Price
this
.
addMsg
.
PointNum
=
this
.
saveObj
.
PointNum
this
.
addMsg
.
IsCancelConfirm
=
this
.
saveObj
.
IsCancelConfirm
this
.
addMsg
.
Distinguish
=
this
.
saveObj
.
Distinguish
this
.
addMsg
.
ManNum
=
this
.
saveObj
.
ManNum
this
.
addMsg
.
WoManNum
=
this
.
saveObj
.
WoManNum
this
.
addMsg
.
AgeLimit
=
this
.
saveObj
.
AgeLimit
this
.
addMsg
.
StartAge
=
this
.
saveObj
.
StartAge
this
.
addMsg
.
EndAge
=
this
.
saveObj
.
EndAge
this
.
labelAge
.
max
=
this
.
saveObj
.
StartAge
this
.
labelAge
.
min
=
this
.
saveObj
.
EndAge
this
.
addMsg
.
LnsideLimit
=
this
.
saveObj
.
LnsideLimit
this
.
addMsg
.
LonLat
=
this
.
saveObj
.
LonLat
this
.
addMsg
.
LocationName
=
this
.
saveObj
.
LocationName
// this.addMsg.ActivityName=this.saveObj.ActivityName
// this.addMsg.ActivityName=this.saveObj.ActivityName
// this.addMsg.TypeContent=this.saveObj.TypeContent
this
.
setVal
(
this
.
addMsg
.
ActivityInfo
);
}
},
deep
:
true
},
addMsg
:
{
handler
(
val
)
{
if
(
val
)
{
this
.
$emit
(
"success"
,
val
)
}
},
deep
:
true
}
},
mounted
()
{
if
(
this
.
saveObj
&&
this
.
saveObj
.
Id
>
0
)
{
this
.
addMsg
.
Id
=
this
.
saveObj
.
Id
...
...
@@ -377,6 +395,38 @@
this
.
addMsg
.
StartAge
=
val
.
min
this
.
addMsg
.
EndAge
=
val
.
max
},
//限制活动开始时间小于结束时间
StartTimeOptions
(
date
){
let
endTime
=
"2050/1/1"
if
(
this
.
addMsg
.
EndTime
){
endTime
=
this
.
addMsg
.
EndTime
}
return
Date
.
parse
(
date
)
<=
Date
.
parse
(
endTime
)
},
//限制活动结束时间大于开始时间
EndTimeOptions
(
date
){
let
startTime
=
"2000/1/1"
if
(
this
.
addMsg
.
StartTime
){
startTime
=
this
.
addMsg
.
StartTime
}
return
Date
.
parse
(
date
)
>=
Date
.
parse
(
startTime
)
},
//限制活动报名开始时间小于报名结束时间
SignStartTimeOptions
(
date
){
let
endTime
=
"2050/1/1"
if
(
this
.
addMsg
.
SignEndTime
){
endTime
=
this
.
addMsg
.
SignEndTime
}
return
Date
.
parse
(
date
)
<=
Date
.
parse
(
endTime
)
},
//限制活动报名结束时间大于报名开始时间
SignEndTimeOptions
(
date
){
let
startTime
=
"2000/1/1"
if
(
this
.
addMsg
.
SignStartTime
){
startTime
=
this
.
addMsg
.
SignStartTime
}
return
Date
.
parse
(
date
)
>=
Date
.
parse
(
startTime
)
},
uploadFile
(
files
)
{
UploadSelfFile
(
"course"
,
files
[
0
],
res
=>
{
if
(
res
.
Code
==
1
)
{
...
...
@@ -384,7 +434,7 @@
}
});
},
//
保存信息
//
表单验证
saveRule
()
{
this
.
$refs
.
Name
.
validate
();
this
.
$refs
.
StartTime
.
validate
();
...
...
@@ -396,18 +446,9 @@
!
this
.
$refs
.
EndTime
.
hasError
&&
!
this
.
$refs
.
SignStartTime
.
hasError
&&
!
this
.
$refs
.
SignEndTime
.
hasError
)
{
this
.
addMsg
.
SignStartTime
=
this
.
addMsg
.
SignStartTimeStr
this
.
addMsg
.
SignEndTime
=
this
.
addMsg
.
SignEndTimeStr
this
.
apipostDS
(
"/api/Education/SetActivity"
,
this
.
addMsg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
closeRuleForm
();
this
.
$emit
(
'success'
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
})
}
return
true
}
else
return
false
},
//关闭窗口
closeRuleForm
()
{
...
...
@@ -432,7 +473,7 @@
}
</
script
>
<
style
>
<
style
>
.input-new-tag
{
width
:
90px
;
margin-left
:
10px
;
...
...
@@ -455,7 +496,9 @@
height
:
32px
;
margin-top
:
8px
;
}
.el-dialog
{
.el-dialog
{
z-index
:
99999
;
}
}
</
style
>
src/pages/activity/activeDetail.vue
View file @
03b90f42
<
style
scoped
>
.header-box
{
.header-box
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
margin-bottom
:
40px
;
}
}
.p_title
{
color
:
#000000
;
font-size
:
20px
;
/* height: 30px !important; */
display
:
flex
;
align-items
:
center
;
}
.activeDetail
{
}
.activeDetail
{
overflow-y
:
scroll
;
}
}
.conbox
{
height
:
calc
(
100vh
-
220px
);
overflow-y
:
scroll
;
}
.conbox
::-webkit-scrollbar
{
/*滚动条整体样式*/
width
:
5px
;
/*宽度竖滚动条的尺寸*/
height
:
10px
;
/*高度横滚动条的尺寸*/
}
.conbox
::-webkit-scrollbar-thumb
{
/*滚动条里面的条*/
border-radius
:
10px
;
box-shadow
:
inset
0
0
5px
rgba
(
0
,
0
,
0
,
0.2
);
background
:
#eee
;
}
.conbox
::-webkit-scrollbar-track
{
/*滚动条里面轨道*/
border-radius
:
5px
;
background
:
#ffffff
;
}
.listTitle
{
font-size
:
18px
}
</
style
>
<
template
>
<div
class=
"page-body activeDetail"
>
...
...
@@ -24,127 +49,165 @@
<span
class=
"p_title"
>
活动详情
</span>
</div>
<div>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md
"
label=
"新增活动"
@
click=
"addActiveList"
/>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-sm
"
label=
"新增活动"
@
click=
"addActiveList"
/>
<q-btn
color=
"accent"
size=
"sm"
label=
"保存"
@
click=
"save"
/>
</div>
</div>
<div
class=
"conbox"
>
<ActiveForm
:save-obj=
"activedata"
:activeTypeOptions=
"activityTypeList"
ref=
"childForm"
@
success=
"getactivedata"
/>
<div
class=
""
>
<div
v-for=
"(item,index) in ActivityTitle"
:key=
"item.id"
class=
"flex "
>
<DetailItem
:itemData=
"item"
:index=
"index+1"
@
success=
"getItemData($event,index)"
ref=
"child"
/>
<div
class=
"q-mt-lg q-mb-lg listTitle"
>
活动列表
</div>
<div
v-for=
"(item,index) in ActivityTitle"
:key=
"item.id"
class=
"flex "
>
<DetailItem
:itemData=
"item"
:index=
"index+1"
@
success=
"getItemData($event,index)"
ref=
"child"
/>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除当前活动"
placement=
"top"
v-if=
"index>0"
>
<i
class=
"iconfont icon-img_delete_small q-ml-sm"
style=
"color: #2961FE"
@
click=
"delActiveList(index)"
></i>
</el-tooltip>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
DetailItem
from
"../../components/activity/activeDetail-item"
import
DetailItem
from
"../../components/activity/activeDetail-item"
import
ActiveForm
from
'../../components/activity/active-from'
export
default
{
meta
:
{
title
:
"活动详情"
},
components
:
{
DetailItem
DetailItem
,
ActiveForm
},
data
()
{
return
{
msg
:
{
Id
:
0
,
ActivityTitle
:
[]
msg
:
{
Id
:
0
,
ActivityTitle
:
[]
},
ActivityTitle
:[
{
Title
:
""
,
//活动大标题
TripSort
:
0
,
//活动排序
ActivityPlanList
:[
//活动安排
activeBaseData
:
{
},
ActivityTitle
:
[{
Title
:
""
,
//活动大标题
TripSort
:
0
,
//活动排序
ActivityPlanList
:
[
//活动安排
{
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripPicList
:[]
//图片
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripPicList
:
[]
//图片
}
]
}
],
item
:{
}],
activedata
:
{
}
},
activityTypeList
:
[],
}
},
mounted
(){
if
(
this
.
$route
.
query
.
Id
){
this
.
msg
.
Id
=
this
.
$route
.
query
.
Id
mounted
()
{
this
.
getActiveTypeList
();
if
(
this
.
$route
.
query
.
Id
)
{
this
.
msg
.
Id
=
this
.
$route
.
query
.
Id
this
.
getDetail
()
}
},
methods
:
{
goBack
(){
goBack
()
{
this
.
$router
.
go
(
-
1
)
},
addActiveList
(){
let
obj
=
{
Title
:
""
,
//活动大标题
TripSort
:
this
.
ActivityTitle
.
length
,
//活动排序
ActivityPlanList
:[
//活动安排
addActiveList
()
{
let
obj
=
{
Title
:
""
,
//活动大标题
TripSort
:
this
.
ActivityTitle
.
length
,
//活动排序
ActivityPlanList
:
[
//活动安排
{
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripPicList
:[]
//图片
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripPicList
:
[]
//图片
}
]
}
this
.
ActivityTitle
.
push
(
obj
)
},
delActiveList
(
index
){
this
.
ActivityTitle
.
splice
(
index
,
1
)
delActiveList
(
index
)
{
this
.
ActivityTitle
.
splice
(
index
,
1
)
},
getItemData
(
val
,
index
){
this
.
msg
.
ActivityTitle
[
index
]
=
val
//活动详情列表数据
getItemData
(
val
,
index
)
{
this
.
msg
.
ActivityTitle
[
index
]
=
val
},
//保存信息
save
()
{
this
.
msg
.
ActivityTitle
=
this
.
ActivityTitle
this
.
$refs
.
child
.
map
(
x
=>
{
this
.
msg
.
ActivityTitle
=
this
.
ActivityTitle
this
.
$refs
.
child
.
map
(
x
=>
{
x
.
ruleVerification
();
})
let
res
=
this
.
$refs
.
child
.
every
(
x
=>
{
let
res
=
this
.
$refs
.
child
.
every
(
x
=>
{
return
x
.
ruleVerification
();
})
if
(
res
){
this
.
apipostDS
(
"/api/Education/GetSetActivityPlan"
,
this
.
msg
,
(
res
)
=>
{
let
res2
=
this
.
$refs
.
childForm
.
saveRule
()
if
(
res
&&
res2
)
{
let
msg
=
{
...
this
.
msg
,
...
this
.
activeBaseData
}
console
.
log
(
144
,
msg
)
this
.
apipostDS
(
"/api/Education/SetActivity"
,
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
getDetail
()
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
})
}
},
getDetail
(){
this
.
apipostDS
(
"/api/Education/GetActivity"
,
{
Id
:
this
.
msg
.
Id
},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
ActivityTitle
=
res
.
data
.
data
.
ActivityTitleList
}
})
}
getDetail
()
{
this
.
apipostDS
(
"/api/Education/GetActivity"
,
{
Id
:
this
.
msg
.
Id
},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
ActivityTitle
=
res
.
data
.
data
.
ActivityTitleList
this
.
activedata
=
res
.
data
.
data
}
})
},
//获取活动类型下拉
getActiveTypeList
()
{
this
.
apipostDS
(
"/api/Education/GetCommerceActivityTypeList"
,
{},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
activityTypeList
=
res
.
data
.
data
;
this
.
activityTypeList
.
unshift
({
Id
:
-
1
,
TypeName
:
"不限"
})
}
})
},
//活动基础数据
getactivedata
(
val
)
{
this
.
activeBaseData
=
val
}
}
}
...
...
src/pages/activity/activityList.vue
View file @
03b90f42
...
...
@@ -109,6 +109,7 @@
line-height
:
25px
;
background-color
:
#004d40
;
}
.activeType
.app-image
{
background-position
:
center
center
;
width
:
50px
;
...
...
@@ -117,7 +118,8 @@
float
:
left
;
margin-right
:
8px
;
}
.Sysuser_Date
.el-input
{
.Sysuser_Date
.el-input
{
width
:
100%
;
border
:
none
;
background-color
:
transparent
;
...
...
@@ -133,25 +135,22 @@
padding
:
0
3px
;
min-height
:
0
!important
;
}
</
style
>
<
template
>
<div
class=
"page-body activeType"
>
<div
class=
"page-search row items-center flex"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
input=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ActivityName"
label=
"活动名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
<q-input
@
input=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ActivityName"
label=
"活动名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
<div
class=
"col-3 Sysuser_Date"
>
<q-field
filled
>
<template
v-slot:control
>
<el-date-picker
v-model=
"msg.SelectStartTimeStr"
type=
"date"
placeholder=
"选择开始日期"
value-format=
"yyyy-MM-dd"
@
change=
"resetSearch"
>
<el-date-picker
v-model=
"msg.SelectStartTimeStr"
type=
"date"
placeholder=
"选择开始日期"
value-format=
"yyyy-MM-dd"
@
change=
"resetSearch"
>
</el-date-picker>
</
template
>
</q-field>
...
...
@@ -159,32 +158,23 @@
<div
class=
"col-3 Sysuser_Date"
>
<q-field
filled
>
<
template
v-slot:control
>
<el-date-picker
v-model=
"msg.SelectEndTimeStr"
type=
"date"
placeholder=
"选择结束日期"
value-format=
"yyyy-MM-dd"
@
change=
"resetSearch"
>
<el-date-picker
v-model=
"msg.SelectEndTimeStr"
type=
"date"
placeholder=
"选择结束日期"
value-format=
"yyyy-MM-dd"
@
change=
"resetSearch"
>
</el-date-picker>
</
template
>
</q-field>
</div>
<div
class=
"col-3 "
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
v-model=
"msg.SelectIsEnd"
class=
"col-6 q-pr-lg q-pr-lg"
:options=
"statusOpts
"
emit-value
map-options
label=
"状态"
@
change=
"resetSearch"
/>
</div
>
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
v-model=
"msg.SelectIsEnd
"
class=
"col-6 q-pr-lg q-pr-lg"
:options=
"statusOpts"
emit-value
map-options
label=
"状态"
@
change=
"resetSearch"
/
>
</div>
<!-- <div class="col row wrap q-mr-lg q-col-gutter-md">
</div>
<div class="col row wrap q-mr-lg q-col-gutter-md">
</div> -->
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table sticky-right-column-table"
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table sticky-right-column-table"
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<
template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
活动列表
</div>
<q-space
/>
...
...
@@ -221,7 +211,8 @@
<div
v-if=
"props.row.AgeLimit==0"
>
范围:
{{
props
.
row
.
StartAge
}}
岁~
{{
props
.
row
.
EndAge
}}
岁
</div>
<div>
报名人数
</div>
<div
v-if=
"props.row.Distinguish ==1"
>
总人数:
{{
props
.
row
.
ManNum
}}
人
</div>
<div
v-if=
"props.row.Distinguish ==0"
>
男性:
{{
props
.
row
.
ManNum
}}
人
<span
style=
"margin-left:10px"
>
女性:
{{
props
.
row
.
WoManNum
}}
人
</span>
</div>
<div
v-if=
"props.row.Distinguish ==0"
>
男性:
{{
props
.
row
.
ManNum
}}
人
<span
style=
"margin-left:10px"
>
女性:
{{
props
.
row
.
WoManNum
}}
人
</span>
</div>
</div>
</q-td>
</
template
>
...
...
@@ -253,8 +244,8 @@
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<div>
<q-btn
flat
size=
"xs"
icon=
"edit
"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"editQuotation(
props.row)"
/>
<q-btn
flat
size=
"xs"
color=
"accent"
style=
"font-weight:400"
label=
"复制
"
@
click=
"goUrl('/activity/copyActive',
props.row)"
/>
<!--
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"删除"
@
click=
"delActive(props.row)"
/>
-->
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left:10px;"
>
...
...
@@ -279,12 +270,14 @@
<q-item-label>
活动详情
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
@
click=
"goUrl('/activity/activeSummary',props.row)"
v-if=
"props.row.ActivityStatus==2"
>
<q-item
clickable
v-close-popup
@
click=
"goUrl('/activity/activeSummary',props.row)"
v-if=
"props.row.ActivityStatus==2"
>
<q-item-section>
<q-item-label>
活动总结
</q-item-label>
</q-item-section>
</q-item>
<q-item
clickable
v-close-popup
@
click=
"goUrl('/activity/materialMan',props.row)"
v-if=
"props.row.ActivityStatus==2"
>
<q-item
clickable
v-close-popup
@
click=
"goUrl('/activity/materialMan',props.row)"
v-if=
"props.row.ActivityStatus==2"
>
<q-item-section>
<q-item-label>
活动图片与视频
</q-item-label>
</q-item-section>
...
...
@@ -302,38 +295,13 @@
</q-table>
</div>
<!-- 新增修改活动类型 -->
<ActiveForm
v-if=
"showForm"
@
close=
"closeruleset"
:save-obj=
"typeObj"
:activeTypeOptions=
"activityTypeList"
@
success=
"resetSearch"
>
</ActiveForm>
<!-- 报名信息 -->
<!-- <el-dialog title="报名信息" :visible.sync="dialogTableVisible" width="1100px">
<el-table :data="joinData" style="width:100%;">
<el-table-column property="LinkMan" label="联系人" width="100"></el-table-column>
<el-table-column property="LinkTel" label="联系电话" width="120"></el-table-column>
<el-table-column property="PeopleNum" label="人数" width="60"></el-table-column>
<el-table-column property="Money" label="付款方式" width="180">
<template slot-scope="scope">
<span v-if="scope.row.PaymentWay==6">星星支付:{{scope.row.TotalPoint}}点</span>
<span v-if="scope.row.PaymentWay==1">现金支付:{{scope.row.Money}}元</span>
</template>
</el-table-column>
<el-table-column property="Remark" label="备注" width="150"></el-table-column>
<el-table-column property="PaymentTime" label="报名时间" width="200"></el-table-column>
<el-table-column label="操作" width="150">
<template slot-scope="scope">
<template v-if="scope.row.IsApplyForCancel==1">
<el-button size="mini" type="primary" @click="agreeApply(scope.row)">同意</el-button>
<el-button size="mini" type="danger" @click="jujueMsg(scope.row)">拒绝</el-button>
</template>
</template>
</el-table-column>
</el-table>
</el-dialog> -->
<!-- <ActiveForm v-if="showForm" @close="closeruleset" :save-obj="typeObj" :activeTypeOptions="activityTypeList" @success="resetSearch">
</ActiveForm> -->
</div>
</template>
<
script
>
import
ActiveForm
from
'../../components/activity/active-from'
import
ActiveForm
from
'../../components/activity/active-from'
export
default
{
meta
:
{
title
:
"活动列表"
...
...
@@ -349,15 +317,13 @@ import ActiveForm from '../../components/activity/active-from'
pageIndex
:
1
,
pageSize
:
10
,
ActivityName
:
''
,
SelectStartTimeStr
:
""
,
SelectEndTimeStr
:
""
,
SelectIsEnd
:
-
1
,
rowsPerPage
:
10
SelectStartTimeStr
:
""
,
SelectEndTimeStr
:
""
,
SelectIsEnd
:
-
1
,
rowsPerPage
:
10
},
pageCount
:
0
,
activityTypeList
:[],
statusOpts
:[
{
statusOpts
:
[{
label
:
"全部"
,
value
:
-
1
},
...
...
@@ -380,19 +346,19 @@ import ActiveForm from '../../components/activity/active-from'
label
:
"编号"
,
field
:
"Id"
,
align
:
"left"
,
required
:
true
,
required
:
true
,
},
{
name
:
"activeName"
,
label
:
"活动名称"
,
align
:
"left"
,
required
:
true
,
required
:
true
,
},
{
name
:
"ActivityTypeName"
,
label
:
"活动类型"
,
align
:
"left"
,
field
:
"ActivityTypeName"
field
:
"ActivityTypeName"
},
{
name
:
"ActivityTime"
,
...
...
@@ -412,14 +378,14 @@ import ActiveForm from '../../components/activity/active-from'
{
name
:
"LocationName"
,
label
:
"位置"
,
field
:
"LocationName"
,
field
:
"LocationName"
,
align
:
"left"
,
style
:
"width:100px"
style
:
"width:100px"
},
{
name
:
"activeStutes"
,
label
:
"活动状态"
,
field
:
"ActivityStatusStr"
,
field
:
"ActivityStatusStr"
,
align
:
"left"
},
// {
...
...
@@ -431,7 +397,7 @@ import ActiveForm from '../../components/activity/active-from'
{
name
:
'optioned'
,
label
:
'操作'
,
required
:
true
,
required
:
true
,
align
:
"left"
}
],
...
...
@@ -444,14 +410,13 @@ import ActiveForm from '../../components/activity/active-from'
// ActivityId: 0
// },
showForm
:
false
,
typeObj
:{}
showForm
:
false
,
typeObj
:
{}
}
},
mounted
()
{
this
.
getList
();
this
.
getActiveTypeList
();
},
methods
:
{
// getItem(item) {
...
...
@@ -460,29 +425,18 @@ import ActiveForm from '../../components/activity/active-from'
// },
//获取活动类型下拉
getActiveTypeList
(){
this
.
apipostDS
(
"/api/Education/GetCommerceActivityTypeList"
,{},(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
){
this
.
activityTypeList
=
res
.
data
.
data
;
this
.
activityTypeList
.
unshift
({
Id
:
-
1
,
TypeName
:
"不限"
})
}
})
},
getList
(){
getList
()
{
this
.
loading
=
true
;
this
.
apipostDS
(
"/api/Education/GetActivityPage"
,
this
.
msg
,(
res
)
=>
{
this
.
apipostDS
(
"/api/Education/GetActivityPage"
,
this
.
msg
,
(
res
)
=>
{
this
.
loading
=
false
if
(
res
.
data
.
resultCode
===
1
)
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
data
=
res
.
data
.
data
.
pageData
;
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
}
})
},
delActive
(
item
)
{
delActive
(
item
)
{
let
that
=
this
;
that
.
Confirm
(
"是否删除?"
,
function
()
{
that
.
apipostDS
(
...
...
@@ -511,7 +465,7 @@ import ActiveForm from '../../components/activity/active-from'
this
.
showForm
=
true
;
if
(
item
)
{
this
.
typeObj
=
item
;
}
else
{
}
else
{
this
.
typeObj
=
{};
}
},
...
...
@@ -529,24 +483,14 @@ import ActiveForm from '../../components/activity/active-from'
closeruleset
()
{
this
.
showForm
=
false
;
},
goUrl
(
url
,
item
,
type
=
0
){
if
(
type
===
1
){
this
.
$router
.
push
({
path
:
url
,
query
:{
name
:
item
.
ActivityName
}
})
}
else
{
goUrl
(
url
,
item
)
{
this
.
$router
.
push
({
path
:
url
,
query
:{
Id
:
item
.
Id
path
:
url
,
query
:
{
Id
:
item
.
Id
}
})
}
}
}
}
...
...
src/pages/activity/copyActive.vue
0 → 100644
View file @
03b90f42
<
style
scoped
>
.header-box
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
margin-bottom
:
40px
;
}
.p_title
{
color
:
#000000
;
font-size
:
20px
;
/* height: 30px !important; */
display
:
flex
;
align-items
:
center
;
}
.activeDetail
{
overflow-y
:
scroll
;
}
.conbox
{
height
:
calc
(
100vh
-
220px
);
overflow-y
:
scroll
;
}
.conbox
::-webkit-scrollbar
{
/*滚动条整体样式*/
width
:
5px
;
/*宽度竖滚动条的尺寸*/
height
:
10px
;
/*高度横滚动条的尺寸*/
}
.conbox
::-webkit-scrollbar-thumb
{
/*滚动条里面的条*/
border-radius
:
10px
;
box-shadow
:
inset
0
0
5px
rgba
(
0
,
0
,
0
,
0.2
);
background
:
#eee
;
}
.conbox
::-webkit-scrollbar-track
{
/*滚动条里面轨道*/
border-radius
:
5px
;
background
:
#ffffff
;
}
.listTitle
{
font-size
:
18px
}
</
style
>
<
template
>
<div
class=
"page-body activeDetail"
>
<div
class=
"header-box"
>
<div
class=
"flex"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
label=
"返回"
@
click=
"goBack"
/>
<span
class=
"p_title"
>
复制活动
</span>
</div>
<div>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-sm"
label=
"新增活动"
@
click=
"addActiveList"
/>
<q-btn
color=
"accent"
size=
"sm"
label=
"保存"
@
click=
"save"
/>
</div>
</div>
<div
class=
"conbox"
>
<ActiveForm
:save-obj=
"activedata"
:activeTypeOptions=
"activityTypeList"
ref=
"childForm"
@
success=
"getactivedata"
/>
<div
class=
""
>
<div
class=
"q-mt-lg q-mb-lg listTitle"
>
活动列表
</div>
<div
v-for=
"(item,index) in ActivityTitle"
:key=
"item.id"
class=
"flex "
>
<DetailItem
:itemData=
"item"
:index=
"index+1"
@
success=
"getItemData($event,index)"
ref=
"child"
/>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"删除当前活动"
placement=
"top"
v-if=
"index>0"
>
<i
class=
"iconfont icon-img_delete_small q-ml-sm"
style=
"color: #2961FE"
@
click=
"delActiveList(index)"
></i>
</el-tooltip>
</div>
</div>
</div>
</div>
</
template
>
<
script
>
import
DetailItem
from
"../../components/activity/activeDetail-item"
import
ActiveForm
from
'../../components/activity/active-from'
export
default
{
meta
:
{
title
:
"活动详情"
},
components
:
{
DetailItem
,
ActiveForm
},
data
()
{
return
{
msg
:
{
Id
:
0
,
ActivityTitle
:
[]
},
activeBaseData
:
{
},
ActivityTitle
:
[{
Title
:
""
,
//活动大标题
TripSort
:
0
,
//活动排序
ActivityPlanList
:
[
//活动安排
{
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripPicList
:
[]
//图片
}
]
}],
activedata
:
{
},
activityTypeList
:
[],
}
},
mounted
()
{
this
.
getActiveTypeList
();
if
(
this
.
$route
.
query
.
Id
)
{
this
.
msg
.
Id
=
this
.
$route
.
query
.
Id
this
.
getDetail
()
}
},
methods
:
{
goBack
()
{
this
.
$router
.
go
(
-
1
)
},
addActiveList
()
{
let
obj
=
{
Title
:
""
,
//活动大标题
TripSort
:
this
.
ActivityTitle
.
length
,
//活动排序
ActivityPlanList
:
[
//活动安排
{
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripPicList
:
[]
//图片
}
]
}
this
.
ActivityTitle
.
push
(
obj
)
},
delActiveList
(
index
)
{
this
.
ActivityTitle
.
splice
(
index
,
1
)
},
//活动详情列表数据
getItemData
(
val
,
index
)
{
this
.
msg
.
ActivityTitle
[
index
]
=
val
},
//保存信息
save
()
{
this
.
msg
.
ActivityTitle
=
this
.
ActivityTitle
this
.
$refs
.
child
.
map
(
x
=>
{
x
.
ruleVerification
();
})
let
res
=
this
.
$refs
.
child
.
every
(
x
=>
{
return
x
.
ruleVerification
();
})
let
res2
=
this
.
$refs
.
childForm
.
saveRule
()
if
(
res
&&
res2
)
{
let
msg
=
{
...
this
.
msg
,
...
this
.
activeBaseData
}
msg
.
Id
=
0
this
.
apipostDS
(
"/api/Education/SetActivity"
,
msg
,
(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
Success
(
"操作成功"
);
// this.getDetail()
this
.
$router
.
push
(
"/activity/activityList"
)
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
})
}
},
getDetail
()
{
this
.
apipostDS
(
"/api/Education/GetActivity"
,
{
Id
:
this
.
msg
.
Id
},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
ActivityTitle
=
res
.
data
.
data
.
ActivityTitleList
this
.
activedata
=
res
.
data
.
data
this
.
activedata
.
StartTime
=
""
this
.
activedata
.
StartTimeStr
=
""
this
.
activedata
.
EndTime
=
""
this
.
activedata
.
EndTimeStr
=
""
this
.
activedata
.
SignStartTime
=
""
this
.
activedata
.
SignStartTimeStr
=
""
this
.
activedata
.
SignEndTime
=
""
this
.
activedata
.
SignEndTimeStr
=
""
}
})
},
//获取活动类型下拉
getActiveTypeList
()
{
this
.
apipostDS
(
"/api/Education/GetCommerceActivityTypeList"
,
{},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
activityTypeList
=
res
.
data
.
data
;
this
.
activityTypeList
.
unshift
({
Id
:
-
1
,
TypeName
:
"不限"
})
}
})
},
//活动基础数据
getactivedata
(
val
)
{
this
.
activeBaseData
=
val
}
}
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
src/pages/user/personalData.vue
View file @
03b90f42
...
...
@@ -190,10 +190,13 @@
:rules=
"[val => !!val || '请再次输入新密码']"
lazy-rules
filled
/>
</div>
<q-btn
color=
"primary"
style=
"width: 300px;margin-top: 50px;"
:loading=
"loading2"
label=
"确定修改"
type=
"submit"
>
</q-btn>
</form>
</
template
>
<
template
v-if=
"rightType == 3"
>
<div>
</div>
</
template
>
</div>
</div>
</template>
...
...
src/router/routes.js
View file @
03b90f42
...
...
@@ -741,6 +741,11 @@ const routes = [{
component
:
()
=>
import
(
"pages/activity/activeDetail.vue"
)
},
{
path
:
"/activity/copyActive"
,
//活动 复制活动
component
:
()
=>
import
(
"pages/activity/copyActive.vue"
)
},
{
path
:
"/activity/advmanager"
,
//活动 广告图管理
component
:
()
=>
...
...
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