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
efcb8f71
Commit
efcb8f71
authored
Jul 06, 2021
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
07a3694b
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
387 additions
and
348 deletions
+387
-348
active-from.vue
src/components/activity/active-from.vue
+230
-210
activeDetail.vue
src/pages/activity/activeDetail.vue
+152
-89
activityList.vue
src/pages/activity/activityList.vue
+5
-49
No files found.
src/components/activity/active-from.vue
View file @
efcb8f71
<
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-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>
</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"
>
<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-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"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
<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-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"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<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"
/>
</div>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
<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"
/>
</div>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<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-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"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
<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-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"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<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-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"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</q-input>
</div>
<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-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"
/>
</q-popup-proxy>
</q-icon>
</
template
>
</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
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
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=
"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"
v-if=
"addMsg.IsFree==1"
>
<!-- 占位 -->
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12 q-mt-sm q-mb-sm flex "
style=
"align-items:center"
>
<div>
是否免费:
</div>
<q-toggle
v-model=
"addMsg.IsFree"
:true-value=
"1"
:false-value=
"2"
@
input=
'addMsg.Price=0,addMsg.PointNum=0'
/>
</div>
<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
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=
"元"
>
</q-input>
</div>
<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="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>
是否区分性别:
</div>
<q-toggle
v-model=
"addMsg.Distinguish"
:true-value=
"0"
:false-value=
"1"
@
input=
'addMsg.ManNum=0,addMsg.WoManNum=0'
/>
</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.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"
>
<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=
"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=
"人"
>
</q-input>
</div>
<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
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=
"人"
>
</q-input>
</div>
<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
class=
"row wrap"
>
<div
class=
"col-12 q-mt-sm q-mb-sm flex "
style=
"align-items:center"
>
<div>
是否区分年龄:
</div>
<q-toggle
v-model=
"addMsg.AgeLimit"
:true-value=
"0"
:false-value=
"1"
@
change=
'addMsg.StartAge=0,addMsg.EndAge=0'
/>
</div>
<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"
/>
</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>
年龄范围:
</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"
/>
</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>
是否内部限制:
</div>
<q-toggle
v-model=
"addMsg.LnsideLimit"
:true-value=
"1"
:false-value=
"0"
/>
</div>
<div
class=
"col-6"
>
<div>
是否内部限制:
</div>
<q-toggle
v-model=
"addMsg.LnsideLimit"
:true-value=
"1"
:false-value=
"0"
/>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-12 q-mt-sm q-mb-sm flex "
style=
"align-items:center"
>
<div>
报名取消确认:
</div>
<q-toggle
v-model=
"addMsg.IsCancelConfirm"
:true-value=
"1"
:false-value=
"2"
/>
</div>
<div
class=
"col-6"
>
<div>
报名取消确认:
</div>
<q-toggle
v-model=
"addMsg.IsCancelConfirm"
:true-value=
"1"
:false-value=
"2"
/>
</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
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-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=
"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=
"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
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>
</q-card-section>
<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>
</div>
</div>
<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-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> -->
</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
...
...
@@ -340,8 +358,8 @@
LonLat
:
''
,
//经纬度(逗号分隔)
LocationName
:
''
,
//位置名称
},
this
.
setVal
(
""
);
}
this
.
setVal
(
""
);
}
},
methods
:
{
// 选择开始时间
...
...
@@ -396,18 +414,18 @@
!
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
// 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);
// }
// })
}
else
return
false
},
//关闭窗口
closeRuleForm
()
{
...
...
@@ -432,7 +450,7 @@
}
</
script
>
<
style
>
<
style
>
.input-new-tag
{
width
:
90px
;
margin-left
:
10px
;
...
...
@@ -455,7 +473,9 @@
height
:
32px
;
margin-top
:
8px
;
}
.el-dialog
{
z-index
:
99999
;
}
.el-dialog
{
z-index
:
99999
;
}
</
style
>
src/pages/activity/activeDetail.vue
View file @
efcb8f71
<
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"
>
<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>
<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-md
"
label=
"新增活动"
@
click=
"addActiveList"
/>
<q-btn
color=
"accent"
size=
"sm"
label=
"保存"
@
click=
"save"
/>
<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=
""
>
<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
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
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
:[]
},
ActivityTitle
:[
{
Title
:
""
,
//活动大标题
TripSort
:
0
,
//活动排序
ActivityPlanList
:[
//活动安排
{
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripPicList
:[]
//图片
}
]
}
],
item
:{
}
msg
:
{
Id
:
0
,
ActivityTitle
:
[]
},
activeBaseData
:
{
},
ActivityTitle
:
[{
Title
:
""
,
//活动大标题
TripSort
:
0
,
//活动排序
ActivityPlanList
:
[
//活动安排
{
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripPicList
:
[]
//图片
}
]
}],
activedata
:
{
},
activityTypeList
:
[],
}
},
mounted
(){
if
(
this
.
$route
.
query
.
Id
){
this
.
msg
.
Id
=
this
.
$route
.
query
.
Id
this
.
getDetail
()
}
},
mounted
()
{
this
.
getActiveTypeList
();
if
(
this
.
$route
.
query
.
Id
)
{
this
.
msg
.
Id
=
this
.
$route
.
query
.
Id
this
.
getDetail
()
}
},
methods
:
{
goBack
(){
this
.
$router
.
go
(
-
1
)
goBack
()
{
this
.
$router
.
go
(
-
1
)
},
addActiveList
(){
let
obj
=
{
Title
:
""
,
//活动大标题
TripSort
:
this
.
ActivityTitle
.
length
,
//活动排序
ActivityPlanList
:[
//活动安排
{
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripPicList
:[]
//图片
}
]
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
)
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
=>
{
return
x
.
ruleVerification
();
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
this
.
activedata
=
res
.
data
.
data
}
})
},
getDetail
(){
this
.
apipostDS
(
"/api/Education/GetActivity"
,
{
Id
:
this
.
msg
.
Id
},
(
res
)
=>
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
ActivityTitle
=
res
.
data
.
data
.
ActivityTitleList
}
})
}
//获取活动类型下拉
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 @
efcb8f71
...
...
@@ -175,12 +175,6 @@
emit-value
map-options
label=
"状态"
@
change=
"resetSearch"
/>
</div>
</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"
...
...
@@ -253,8 +247,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"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"editQuotation(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;"
>
...
...
@@ -302,33 +296,8 @@
</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>
...
...
@@ -355,7 +324,6 @@ import ActiveForm from '../../components/activity/active-from'
rowsPerPage
:
10
},
pageCount
:
0
,
activityTypeList
:[],
statusOpts
:[
{
label
:
"全部"
,
...
...
@@ -451,7 +419,6 @@ import ActiveForm from '../../components/activity/active-from'
mounted
()
{
this
.
getList
();
this
.
getActiveTypeList
();
},
methods
:
{
// getItem(item) {
...
...
@@ -460,18 +427,7 @@ 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
(){
this
.
loading
=
true
;
this
.
apipostDS
(
"/api/Education/GetActivityPage"
,
this
.
msg
,(
res
)
=>
{
...
...
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