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
>
<
template
>
<div>
<div>
<q-dialog
v-model=
"persistent"
persistent
content-class=
"bg-grey-1"
transition-show=
"scale"
transition-hide=
"scale"
<div
class=
"addactivetype"
>
class=
"addactivetype"
>
<q-card
style=
"width: 450px;max-width:500px;"
>
<!--
<q-card-section>
<q-card-section>
<div
class=
"text-h6"
>
{{
(
saveObj
&&
saveObj
.
Id
>
0
)?
"修改活动"
:
"新增活动"
}}
</div>
<div
class=
"text-h6"
>
{{
(
saveObj
&&
saveObj
.
Id
>
0
)?
"修改活动"
:
"新增活动"
}}
</div>
</q-card-section>
</q-card-section>
-->
<q-card-section
class=
"q-pt-none scroll"
style=
"max-height: 70vh"
>
<div
class=
"page-search row items-center flex"
>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<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"
<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 || '请填写活动名称']"
/>
class=
"col-12 q-pb-lg"
label=
"活动名称"
:rules=
"[val => !!val || '请填写活动名称']"
/>
</div>
</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>
<div
class=
"row wrap"
>
<div
class=
"col-6 Sysuser_Date"
>
<div
class=
"col-12"
>
<q-input
filled
v-model=
"addMsg.StartTime"
mask=
"####-##-## ##:##:##"
label=
"开始时间"
ref=
"StartTime"
<q-input
filled
v-model=
"addMsg.StartTime"
mask=
"####-##-## ##:##:##"
label=
"开始时间"
ref=
"StartTime"
:rules=
"[val => !!val || '请选择开始时间']"
>
:rules=
"[val => !!val || '请选择开始时间']"
>
<template
v-slot:append
>
<template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<div
class=
"q-gutter-md row items-start"
>
<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"
/>
<q-time
v-model=
"addMsg.StartTime"
format24h
mask=
"YYYY-MM-DD HH:mm:ss"
/>
</div>
</div>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
...
@@ -30,17 +33,15 @@
...
@@ -30,17 +33,15 @@
</
template
>
</
template
>
</q-input>
</q-input>
</div>
</div>
</div>
<div
class=
"col-6 Sysuser_Date"
>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<q-input
filled
v-model=
"addMsg.EndTime"
mask=
"####-##-## ##:##:##"
label=
"结束时间"
ref=
"EndTime"
<q-input
filled
v-model=
"addMsg.EndTime"
mask=
"####-##-## ##:##:##"
label=
"结束时间"
ref=
"EndTime"
:rules=
"[val => !!val || '请选择结束时间']"
>
:rules=
"[val => !!val || '请选择结束时间']"
>
<
template
v-slot:append
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<div
class=
"q-gutter-md row items-start"
>
<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-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"
/>
<q-time
v-model=
"addMsg.EndTimeStr"
format24h
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"etime"
/>
</div>
</div>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
</q-popup-proxy>
</q-popup-proxy>
...
@@ -48,16 +49,14 @@
...
@@ -48,16 +49,14 @@
</
template
>
</
template
>
</q-input>
</q-input>
</div>
</div>
</div>
<div
class=
"col-6"
>
<div
class=
"row wrap"
>
<q-input
filled
v-model=
"addMsg.SignStartTime"
mask=
"####-##-## ##:##:##"
ref=
"SignStartTime"
label=
"报名开始时间"
<div
class=
"col-12"
>
:rules=
"[val => !!val || '请选择报名开始时间']"
>
<q-input
filled
v-model=
"addMsg.SignStartTime"
mask=
"####-##-## ##:##:##"
ref=
"SignStartTime"
label=
"报名开始时间"
:rules=
"[val => !!val || '请选择报名开始时间']"
>
<
template
v-slot:append
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<div
class=
"q-gutter-md row items-start"
>
<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"
/>
<q-time
v-model=
"addMsg.SignStartTimeStr"
format24h
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"time"
/>
</div>
</div>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
...
@@ -66,16 +65,14 @@
...
@@ -66,16 +65,14 @@
</
template
>
</
template
>
</q-input>
</q-input>
</div>
</div>
</div>
<div
class=
"col-6"
>
<div
class=
"row wrap"
>
<div
class=
"col-12"
>
<q-input
filled
v-model=
"addMsg.SignEndTime"
mask=
"####-##-## ##:##:##"
ref=
"SignEndTime"
label=
"报名结束时间"
<q-input
filled
v-model=
"addMsg.SignEndTime"
mask=
"####-##-## ##:##:##"
ref=
"SignEndTime"
label=
"报名结束时间"
:rules=
"[val => !!val || '请选择报名结束时间']"
>
:rules=
"[val => !!val || '请选择报名结束时间']"
>
<
template
v-slot:append
>
<
template
v-slot:append
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-icon
name=
"event"
class=
"cursor-pointer"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<q-popup-proxy
ref=
"qDateProxy"
transition-show=
"scale"
transition-hide=
"scale"
>
<div
class=
"q-gutter-md row items-start"
>
<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"
/>
<q-time
v-model=
"addMsg.SignEndTimeStr"
format24h
mask=
"YYYY-MM-DD HH:mm:ss"
@
input=
"endTime"
/>
</div>
</div>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
<q-btn
v-close-popup
label=
"关闭"
color=
"primary"
flat
style=
"float:right"
/>
...
@@ -84,134 +81,108 @@
...
@@ -84,134 +81,108 @@
</
template
>
</
template
>
</q-input>
</q-input>
</div>
</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>
<div
class=
"row wrap"
>
<div
class=
"col-6"
>
<div
class=
"col-12"
>
<q-input
filled
stack-label
maxlength=
"40"
disable
:dense=
"false"
v-model=
"addMsg.LonLat"
ref=
"LonLat"
<q-select
stack-label
color=
"primary"
filled
clearable
label=
"选择活动类型"
option-value=
"Id"
class=
"col-12 q-pb-lg"
label=
"门店经纬度"
:rules=
"[val => !!val || '请填写门店经纬度']"
>
option-label=
"TypeName"
:options=
"activeTypeOptions"
v-model=
"addMsg.ActivityType"
ref=
"ActivityType"
<
template
v-slot:after
>
emit-value
map-options
:rules=
"[val => !!val || '请选择活动类型']"
/>
<q-btn
round
color=
"black"
icon=
"my_location"
@
click=
"getMapShow"
/>
</div>
</
template
>
</div>
<div
class=
"row wrap"
>
</q-input>
<div
class=
"col-12"
>
<!-- 地图选址 -->
<q-uploader
:style=
"{ backgroundImage: 'url(' + addMsg.CoverImg + ')' }"
<el-dialog
title=
"地图展示"
:visible
.
sync=
"isShowMap"
width=
"960px"
style=
"zIndex:999999"
>
style=
"width:auto;height:300px;background-repeat:no-repeat;background-size:cover; border:1px solid #eee"
<Map
@
map-submit=
"mapEvent"
:address=
"addMsg.LocationName"
style=
"zIndex:999999"
></Map>
flat
hide-upload-btn
max-files=
"1"
label=
"封面图"
accept=
".jpg, image/*"
:factory=
"uploadFile"
auto-upload
>
</el-dialog>
</q-uploader>
</div>
</div>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-6"
>
<div
class=
"col-12 q-mt-sm q-mb-sm flex "
style=
"align-items:center"
>
<div>
是否免费:
</div>
<div>
是否免费:
</div>
<q-toggle
v-model=
"addMsg.IsFree"
:true-value=
"1"
:false-value=
"2"
<q-toggle
v-model=
"addMsg.IsFree"
:true-value=
"1"
:false-value=
"2"
@
input=
'addMsg.Price=0,addMsg.PointNum=0'
/>
@
input=
'addMsg.Price=0,addMsg.PointNum=0'
/>
</div>
</div>
</div>
<div
class=
"col-6"
v-if=
"addMsg.IsFree==2"
>
<div
class=
"row wrap"
v-if=
"addMsg.IsFree==2"
>
<q-input
filled
stack-label
maxlength=
"20"
type=
"number"
:step=
"0.01"
:dense=
"false"
v-model=
"addMsg.Price"
<div
class=
"col-12"
>
ref=
"Price"
class=
"col-12 q-pb-lg"
label=
"现金价格"
:rules=
"[val => !!val || '请填写现金价格']"
suffix=
"元"
>
<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>
</q-input>
</div>
</div>
<div
class=
"col-6"
v-if=
"addMsg.IsFree==1"
>
<!-- 占位 -->
</div>
</div>
<!-- <div class="row wrap" v-if="addMsg.IsFree==2">
<div
class=
"col-6"
>
<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>
<div>
是否区分性别:
</div>
<q-toggle
v-model=
"addMsg.Distinguish"
:true-value=
"0"
:false-value=
"1"
<q-toggle
v-model=
"addMsg.Distinguish"
:true-value=
"0"
:false-value=
"1"
@
input=
'addMsg.ManNum=0,addMsg.WoManNum=0'
/>
@
input=
'addMsg.ManNum=0,addMsg.WoManNum=0'
/>
</div>
</div>
</div>
<div
class=
"row wrap"
v-if=
"addMsg.Distinguish==0"
>
<div
class=
"col-6"
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"
<q-input
filled
stack-label
maxlength=
"20"
type=
"number"
:dense=
"false"
v-model=
"addMsg.ManNum"
class=
"col-12 q-pb-lg"
label=
"总人数"
:rules=
"[val => !!val || '请填写总人数']"
suffix=
"人"
>
ref=
"ManNum"
class=
"col-12 q-pb-lg"
label=
"男性"
:rules=
"[val => !!val || '请填写男性人数']"
suffix=
"人"
>
</q-input>
</q-input>
</div>
</div>
<div
class=
"col-6"
v-if=
"addMsg.Distinguish==0"
>
<!-- 占位 -->
</div>
</div>
<div
class=
"row wrap"
v-if=
"addMsg.Distinguish==0"
>
<div
class=
"col-6"
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"
<q-input
filled
stack-label
maxlength=
"20"
type=
"number"
:dense=
"false"
v-model=
"addMsg.WoManNum"
class=
"col-12 q-pb-lg"
label=
"男性"
:rules=
"[val => !!val || '请填写男性人数']"
suffix=
"人"
>
ref=
"WoManNum"
class=
"col-12 q-pb-lg"
label=
"女性"
:rules=
"[val => !!val || '请填写女性人数']"
suffix=
"人"
>
</q-input>
</q-input>
</div>
</div>
</div>
<div
class=
"row wrap"
v-if=
"addMsg.Distinguish==1"
>
<div
class=
"col-6"
v-if=
"addMsg.Distinguish==0"
>
<div
class=
"col-12"
>
<q-input
filled
stack-label
maxlength=
"20"
type=
"number"
:dense=
"false"
v-model=
"addMsg.WoManNum"
<q-input
filled
stack-label
maxlength=
"20"
type=
"number"
:dense=
"false"
v-model=
"addMsg.ManNum"
ref=
"WoManNum"
class=
"col-12 q-pb-lg"
label=
"女性"
:rules=
"[val => !!val || '请填写女性人数']"
suffix=
"人"
>
ref=
"ManNum"
class=
"col-12 q-pb-lg"
label=
"总人数"
:rules=
"[val => !!val || '请填写总人数']"
suffix=
"人"
>
</q-input>
</q-input>
</div>
</div>
</div>
<div
class=
"col-6"
>
<div
class=
"row wrap"
>
<div
class=
"col-12 q-mt-sm q-mb-sm flex "
style=
"align-items:center"
>
<div>
是否区分年龄:
</div>
<div>
是否区分年龄:
</div>
<q-toggle
v-model=
"addMsg.AgeLimit"
:true-value=
"0"
:false-value=
"1"
<q-toggle
v-model=
"addMsg.AgeLimit"
:true-value=
"0"
:false-value=
"1"
@
change=
'addMsg.StartAge=0,addMsg.EndAge=0'
/>
@
change=
'addMsg.StartAge=0,addMsg.EndAge=0'
/>
</div>
</div>
</div>
<div
class=
"col-6"
v-if=
"addMsg.AgeLimit===0"
>
<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>
<div>
年龄范围:
</div>
<q-range
v-model=
"labelAge"
:min=
"0"
:max=
"50"
:step=
"1"
label-always
<q-range
v-model=
"labelAge"
:min=
"0"
:max=
"50"
:step=
"1"
label-always
:left-label-value=
"labelAge.min + '岁'"
:left-label-value=
"labelAge.min + '岁'"
:right-label-value=
"labelAge.max + '岁'"
color=
"brown"
:right-label-value=
"labelAge.max + '岁'"
color=
"brown"
@
change=
"changeAge"
/>
@
change=
"changeAge"
/>
</div>
</div>
<div
class=
"col-6"
v-if=
"addMsg.AgeLimit==1"
>
<!-- 占位 -->
</div>
</div>
<div
class=
"row wrap"
>
<div
class=
"col-6"
>
<div
class=
"col-12 q-mt-sm q-mb-sm flex "
style=
"align-items:center"
>
<div>
是否内部限制:
</div>
<div>
是否内部限制:
</div>
<q-toggle
v-model=
"addMsg.LnsideLimit"
:true-value=
"1"
:false-value=
"0"
/>
<q-toggle
v-model=
"addMsg.LnsideLimit"
:true-value=
"1"
:false-value=
"0"
/>
</div>
</div>
</div>
<div
class=
"col-6"
>
<div
class=
"row wrap"
>
<div
class=
"col-12 q-mt-sm q-mb-sm flex "
style=
"align-items:center"
>
<div>
报名取消确认:
</div>
<div>
报名取消确认:
</div>
<q-toggle
v-model=
"addMsg.IsCancelConfirm"
:true-value=
"1"
:false-value=
"2"
/>
<q-toggle
v-model=
"addMsg.IsCancelConfirm"
:true-value=
"1"
:false-value=
"2"
/>
</div>
</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>
<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>
</div>
<div
class=
"row wrap"
>
<div
class=
"page-search row items-center flex"
>
<div
class=
"q-mt-lg q-mb-sm"
>
活动特色
</div>
<div
class=
"q-mt-lg q-mb-sm"
>
活动特色
</div>
<div
class=
"col-12"
>
<div
class=
"col-12"
>
<Ueditor
:value=
"ueditor.value"
:config=
"ueditor.config"
@
input=
"setVal"
ref=
"ue"
no-margin
<Ueditor
:value=
"ueditor.value"
:config=
"ueditor.config"
@
input=
"setVal"
ref=
"ue"
no-margin
:isShowInsertImage=
"false"
:isShowAttachment=
"false"
:isShowVoice=
"false"
></Ueditor>
:isShowInsertImage=
"false"
:isShowAttachment=
"false"
:isShowVoice=
"false"
></Ueditor>
</div>
</div>
</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="取消" 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-btn label="保存" color="accent q-px-md" style="font-weight:400 !important" @click="saveRule" />
</q-card-actions
>
</q-card-actions> --
>
</q-card>
</
q-dialog
>
</
div
>
</div>
</div>
</template>
</template>
...
@@ -278,11 +249,58 @@
...
@@ -278,11 +249,58 @@
initialFrameHeight
:
100
,
initialFrameHeight
:
100
,
autoHeightEnabled
:
true
,
autoHeightEnabled
:
true
,
enableContextMenu
:
false
,
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
()
{
mounted
()
{
if
(
this
.
saveObj
&&
this
.
saveObj
.
Id
>
0
)
{
if
(
this
.
saveObj
&&
this
.
saveObj
.
Id
>
0
)
{
this
.
addMsg
.
Id
=
this
.
saveObj
.
Id
this
.
addMsg
.
Id
=
this
.
saveObj
.
Id
...
@@ -377,6 +395,38 @@
...
@@ -377,6 +395,38 @@
this
.
addMsg
.
StartAge
=
val
.
min
this
.
addMsg
.
StartAge
=
val
.
min
this
.
addMsg
.
EndAge
=
val
.
max
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
)
{
uploadFile
(
files
)
{
UploadSelfFile
(
"course"
,
files
[
0
],
res
=>
{
UploadSelfFile
(
"course"
,
files
[
0
],
res
=>
{
if
(
res
.
Code
==
1
)
{
if
(
res
.
Code
==
1
)
{
...
@@ -384,7 +434,7 @@
...
@@ -384,7 +434,7 @@
}
}
});
});
},
},
//
保存信息
//
表单验证
saveRule
()
{
saveRule
()
{
this
.
$refs
.
Name
.
validate
();
this
.
$refs
.
Name
.
validate
();
this
.
$refs
.
StartTime
.
validate
();
this
.
$refs
.
StartTime
.
validate
();
...
@@ -396,18 +446,9 @@
...
@@ -396,18 +446,9 @@
!
this
.
$refs
.
EndTime
.
hasError
&&
!
this
.
$refs
.
EndTime
.
hasError
&&
!
this
.
$refs
.
SignStartTime
.
hasError
&&
!
this
.
$refs
.
SignStartTime
.
hasError
&&
!
this
.
$refs
.
SignEndTime
.
hasError
)
{
!
this
.
$refs
.
SignEndTime
.
hasError
)
{
this
.
addMsg
.
SignStartTime
=
this
.
addMsg
.
SignStartTimeStr
return
true
this
.
addMsg
.
SignEndTime
=
this
.
addMsg
.
SignEndTimeStr
}
else
this
.
apipostDS
(
"/api/Education/SetActivity"
,
this
.
addMsg
,
(
res
)
=>
{
return
false
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
closeRuleForm
();
this
.
$emit
(
'success'
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
})
}
},
},
//关闭窗口
//关闭窗口
closeRuleForm
()
{
closeRuleForm
()
{
...
@@ -432,7 +473,7 @@
...
@@ -432,7 +473,7 @@
}
}
</
script
>
</
script
>
<
style
>
<
style
>
.input-new-tag
{
.input-new-tag
{
width
:
90px
;
width
:
90px
;
margin-left
:
10px
;
margin-left
:
10px
;
...
@@ -455,7 +496,9 @@
...
@@ -455,7 +496,9 @@
height
:
32px
;
height
:
32px
;
margin-top
:
8px
;
margin-top
:
8px
;
}
}
.el-dialog
{
.el-dialog
{
z-index
:
99999
;
z-index
:
99999
;
}
}
</
style
>
</
style
>
src/pages/activity/activeDetail.vue
View file @
03b90f42
<
style
scoped
>
<
style
scoped
>
.header-box
{
.header-box
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
justify-content
:
space-between
;
justify-content
:
space-between
;
margin-bottom
:
40px
;
margin-bottom
:
40px
;
}
}
.p_title
{
.p_title
{
color
:
#000000
;
color
:
#000000
;
font-size
:
20px
;
font-size
:
20px
;
/* height: 30px !important; */
/* height: 30px !important; */
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
}
}
.activeDetail
{
.activeDetail
{
overflow-y
:
scroll
;
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
>
</
style
>
<
template
>
<
template
>
<div
class=
"page-body activeDetail"
>
<div
class=
"page-body activeDetail"
>
...
@@ -24,127 +49,165 @@
...
@@ -24,127 +49,165 @@
<span
class=
"p_title"
>
活动详情
</span>
<span
class=
"p_title"
>
活动详情
</span>
</div>
</div>
<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"
/>
<q-btn
color=
"accent"
size=
"sm"
label=
"保存"
@
click=
"save"
/>
</div>
</div>
</div>
</div>
<div
class=
"conbox"
>
<ActiveForm
:save-obj=
"activedata"
:activeTypeOptions=
"activityTypeList"
ref=
"childForm"
@
success=
"getactivedata"
/>
<div
class=
""
>
<div
class=
""
>
<div
v-for=
"(item,index) in ActivityTitle"
:key=
"item.id"
class=
"flex "
>
<div
class=
"q-mt-lg q-mb-lg listTitle"
>
<DetailItem
:itemData=
"item"
:index=
"index+1"
@
success=
"getItemData($event,index)"
ref=
"child"
/>
活动列表
</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"
>
<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>
<i
class=
"iconfont icon-img_delete_small q-ml-sm"
style=
"color: #2961FE"
@
click=
"delActiveList(index)"
></i>
</el-tooltip>
</el-tooltip>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
DetailItem
from
"../../components/activity/activeDetail-item"
import
DetailItem
from
"../../components/activity/activeDetail-item"
import
ActiveForm
from
'../../components/activity/active-from'
export
default
{
export
default
{
meta
:
{
meta
:
{
title
:
"活动详情"
title
:
"活动详情"
},
},
components
:
{
components
:
{
DetailItem
DetailItem
,
ActiveForm
},
},
data
()
{
data
()
{
return
{
return
{
msg
:
{
msg
:
{
Id
:
0
,
Id
:
0
,
ActivityTitle
:
[]
ActivityTitle
:
[]
},
},
ActivityTitle
:[
activeBaseData
:
{
{
Title
:
""
,
//活动大标题
},
TripSort
:
0
,
//活动排序
ActivityTitle
:
[{
ActivityPlanList
:[
//活动安排
Title
:
""
,
//活动大标题
TripSort
:
0
,
//活动排序
ActivityPlanList
:
[
//活动安排
{
{
TripSort
:
0
,
//排序
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripContent
:
""
,
//内容
TripPicList
:[]
//图片
TripPicList
:
[]
//图片
}
}
]
]
}
}],
],
activedata
:
{
item
:{
}
},
activityTypeList
:
[],
}
}
},
},
mounted
(){
mounted
()
{
if
(
this
.
$route
.
query
.
Id
){
this
.
getActiveTypeList
();
this
.
msg
.
Id
=
this
.
$route
.
query
.
Id
if
(
this
.
$route
.
query
.
Id
)
{
this
.
msg
.
Id
=
this
.
$route
.
query
.
Id
this
.
getDetail
()
this
.
getDetail
()
}
}
},
},
methods
:
{
methods
:
{
goBack
(){
goBack
()
{
this
.
$router
.
go
(
-
1
)
this
.
$router
.
go
(
-
1
)
},
},
addActiveList
(){
addActiveList
()
{
let
obj
=
{
let
obj
=
{
Title
:
""
,
//活动大标题
Title
:
""
,
//活动大标题
TripSort
:
this
.
ActivityTitle
.
length
,
//活动排序
TripSort
:
this
.
ActivityTitle
.
length
,
//活动排序
ActivityPlanList
:[
//活动安排
ActivityPlanList
:
[
//活动安排
{
{
TripSort
:
0
,
//排序
TripSort
:
0
,
//排序
StartTime
:
""
,
//开始时间
StartTime
:
""
,
//开始时间
ActivityDuration
:
""
,
//活动时长(单位:分钟)
ActivityDuration
:
""
,
//活动时长(单位:分钟)
LonLat
:
""
,
//活动地址经纬度
LonLat
:
""
,
//活动地址经纬度
LocationName
:
""
,
//活动地址
LocationName
:
""
,
//活动地址
TripTitle
:
""
,
//安排标题
TripTitle
:
""
,
//安排标题
TripContent
:
""
,
//内容
TripContent
:
""
,
//内容
TripPicList
:[]
//图片
TripPicList
:
[]
//图片
}
}
]
]
}
}
this
.
ActivityTitle
.
push
(
obj
)
this
.
ActivityTitle
.
push
(
obj
)
},
},
delActiveList
(
index
){
delActiveList
(
index
)
{
this
.
ActivityTitle
.
splice
(
index
,
1
)
this
.
ActivityTitle
.
splice
(
index
,
1
)
},
},
getItemData
(
val
,
index
){
//活动详情列表数据
this
.
msg
.
ActivityTitle
[
index
]
=
val
getItemData
(
val
,
index
)
{
this
.
msg
.
ActivityTitle
[
index
]
=
val
},
},
//保存信息
//保存信息
save
()
{
save
()
{
this
.
msg
.
ActivityTitle
=
this
.
ActivityTitle
this
.
msg
.
ActivityTitle
=
this
.
ActivityTitle
this
.
$refs
.
child
.
map
(
x
=>
{
this
.
$refs
.
child
.
map
(
x
=>
{
x
.
ruleVerification
();
x
.
ruleVerification
();
})
})
let
res
=
this
.
$refs
.
child
.
every
(
x
=>
{
let
res
=
this
.
$refs
.
child
.
every
(
x
=>
{
return
x
.
ruleVerification
();
return
x
.
ruleVerification
();
})
})
if
(
res
){
let
res2
=
this
.
$refs
.
childForm
.
saveRule
()
this
.
apipostDS
(
"/api/Education/GetSetActivityPlan"
,
this
.
msg
,
(
res
)
=>
{
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
)
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
Success
(
res
.
data
.
message
);
this
.
getDetail
()
}
else
{
}
else
{
this
.
Error
(
res
.
data
.
message
);
this
.
Error
(
res
.
data
.
message
);
}
}
})
})
}
}
},
},
getDetail
(){
getDetail
()
{
this
.
apipostDS
(
"/api/Education/GetActivity"
,
{
Id
:
this
.
msg
.
Id
},
(
res
)
=>
{
this
.
apipostDS
(
"/api/Education/GetActivity"
,
{
if
(
res
.
data
.
resultCode
===
1
)
{
Id
:
this
.
msg
.
Id
this
.
ActivityTitle
=
res
.
data
.
data
.
ActivityTitleList
},
(
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 @@
...
@@ -109,6 +109,7 @@
line-height
:
25px
;
line-height
:
25px
;
background-color
:
#004d40
;
background-color
:
#004d40
;
}
}
.activeType
.app-image
{
.activeType
.app-image
{
background-position
:
center
center
;
background-position
:
center
center
;
width
:
50px
;
width
:
50px
;
...
@@ -117,7 +118,8 @@
...
@@ -117,7 +118,8 @@
float
:
left
;
float
:
left
;
margin-right
:
8px
;
margin-right
:
8px
;
}
}
.Sysuser_Date
.el-input
{
.Sysuser_Date
.el-input
{
width
:
100%
;
width
:
100%
;
border
:
none
;
border
:
none
;
background-color
:
transparent
;
background-color
:
transparent
;
...
@@ -133,25 +135,22 @@
...
@@ -133,25 +135,22 @@
padding
:
0
3px
;
padding
:
0
3px
;
min-height
:
0
!important
;
min-height
:
0
!important
;
}
}
</
style
>
</
style
>
<
template
>
<
template
>
<div
class=
"page-body activeType"
>
<div
class=
"page-body activeType"
>
<div
class=
"page-search row items-center flex"
>
<div
class=
"page-search row items-center flex"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<div
class=
"col-3"
>
<q-input
@
input=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ActivityName"
label=
"活动名称"
<q-input
@
input=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.ActivityName"
@
clear=
"resetSearch"
maxlength=
"20"
/>
label=
"活动名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
</div>
<div
class=
"col-3 Sysuser_Date"
>
<div
class=
"col-3 Sysuser_Date"
>
<q-field
filled
>
<q-field
filled
>
<template
v-slot:control
>
<template
v-slot:control
>
<el-date-picker
<el-date-picker
v-model=
"msg.SelectStartTimeStr"
type=
"date"
placeholder=
"选择开始日期"
v-model=
"msg.SelectStartTimeStr"
value-format=
"yyyy-MM-dd"
@
change=
"resetSearch"
>
type=
"date"
placeholder=
"选择开始日期"
value-format=
"yyyy-MM-dd"
@
change=
"resetSearch"
>
</el-date-picker>
</el-date-picker>
</
template
>
</
template
>
</q-field>
</q-field>
...
@@ -159,32 +158,23 @@
...
@@ -159,32 +158,23 @@
<div
class=
"col-3 Sysuser_Date"
>
<div
class=
"col-3 Sysuser_Date"
>
<q-field
filled
>
<q-field
filled
>
<
template
v-slot:control
>
<
template
v-slot:control
>
<el-date-picker
<el-date-picker
v-model=
"msg.SelectEndTimeStr"
type=
"date"
placeholder=
"选择结束日期"
value-format=
"yyyy-MM-dd"
v-model=
"msg.SelectEndTimeStr"
@
change=
"resetSearch"
>
type=
"date"
placeholder=
"选择结束日期"
value-format=
"yyyy-MM-dd"
@
change=
"resetSearch"
>
</el-date-picker>
</el-date-picker>
</
template
>
</
template
>
</q-field>
</q-field>
</div>
</div>
<div
class=
"col-3 "
>
<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
"
<q-select
@
input=
"resetSearch"
standout=
"bg-primary text-white"
v-model=
"msg.SelectIsEnd
"
emit-value
map-options
label=
"状态"
@
change=
"resetSearch"
/>
class=
"col-6 q-pr-lg q-pr-lg"
:options=
"statusOpts"
emit-value
map-options
label=
"状态"
</div
>
@
change=
"resetSearch"
/
>
</div>
</div>
<!-- <div class="col row wrap q-mr-lg q-col-gutter-md">
</div>
</div>
<div class="col row wrap q-mr-lg q-col-gutter-md">
</div> -->
</div>
</div>
<div
class=
"page-content"
>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-tow-column-table sticky-right-column-table"
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
class=
"sticky-tow-column-table sticky-right-column-table"
separator=
"none"
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<
template
v-slot:top=
"props"
>
<
template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
活动列表
</div>
<div
class=
"col-2 q-table__title"
>
活动列表
</div>
<q-space
/>
<q-space
/>
...
@@ -221,7 +211,8 @@
...
@@ -221,7 +211,8 @@
<div
v-if=
"props.row.AgeLimit==0"
>
范围:
{{
props
.
row
.
StartAge
}}
岁~
{{
props
.
row
.
EndAge
}}
岁
</div>
<div
v-if=
"props.row.AgeLimit==0"
>
范围:
{{
props
.
row
.
StartAge
}}
岁~
{{
props
.
row
.
EndAge
}}
岁
</div>
<div>
报名人数
</div>
<div>
报名人数
</div>
<div
v-if=
"props.row.Distinguish ==1"
>
总人数:
{{
props
.
row
.
ManNum
}}
人
</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>
</div>
</q-td>
</q-td>
</
template
>
</
template
>
...
@@ -253,8 +244,8 @@
...
@@ -253,8 +244,8 @@
<
template
v-slot:body-cell-optioned=
"props"
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
>
<div>
<div>
<q-btn
flat
size=
"xs"
icon=
"edit
"
<q-btn
flat
size=
"xs"
color=
"accent"
style=
"font-weight:400"
label=
"复制
"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"editQuotation(
props.row)"
/>
@
click=
"goUrl('/activity/copyActive',
props.row)"
/>
<!--
<q-btn
flat
size=
"xs"
icon=
"edit"
<!--
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"删除"
@
click=
"delActive(props.row)"
/>
-->
color=
"accent"
style=
"font-weight:400"
label=
"删除"
@
click=
"delActive(props.row)"
/>
-->
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left:10px;"
>
<q-btn-dropdown
flat
size=
"xs"
color=
"dark"
label=
"更多"
style=
"margin-left:10px;"
>
...
@@ -279,12 +270,14 @@
...
@@ -279,12 +270,14 @@
<q-item-label>
活动详情
</q-item-label>
<q-item-label>
活动详情
</q-item-label>
</q-item-section>
</q-item-section>
</q-item>
</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-section>
<q-item-label>
活动总结
</q-item-label>
<q-item-label>
活动总结
</q-item-label>
</q-item-section>
</q-item-section>
</q-item>
</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-section>
<q-item-label>
活动图片与视频
</q-item-label>
<q-item-label>
活动图片与视频
</q-item-label>
</q-item-section>
</q-item-section>
...
@@ -302,38 +295,13 @@
...
@@ -302,38 +295,13 @@
</q-table>
</q-table>
</div>
</div>
<!-- 新增修改活动类型 -->
<!-- 新增修改活动类型 -->
<ActiveForm
v-if=
"showForm"
@
close=
"closeruleset"
:save-obj=
"typeObj"
:activeTypeOptions=
"activityTypeList"
@
success=
"resetSearch"
>
<!-- <ActiveForm v-if="showForm" @close="closeruleset" :save-obj="typeObj" :activeTypeOptions="activityTypeList" @success="resetSearch">
</ActiveForm>
</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> -->
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
ActiveForm
from
'../../components/activity/active-from'
import
ActiveForm
from
'../../components/activity/active-from'
export
default
{
export
default
{
meta
:
{
meta
:
{
title
:
"活动列表"
title
:
"活动列表"
...
@@ -349,15 +317,13 @@ import ActiveForm from '../../components/activity/active-from'
...
@@ -349,15 +317,13 @@ import ActiveForm from '../../components/activity/active-from'
pageIndex
:
1
,
pageIndex
:
1
,
pageSize
:
10
,
pageSize
:
10
,
ActivityName
:
''
,
ActivityName
:
''
,
SelectStartTimeStr
:
""
,
SelectStartTimeStr
:
""
,
SelectEndTimeStr
:
""
,
SelectEndTimeStr
:
""
,
SelectIsEnd
:
-
1
,
SelectIsEnd
:
-
1
,
rowsPerPage
:
10
rowsPerPage
:
10
},
},
pageCount
:
0
,
pageCount
:
0
,
activityTypeList
:[],
statusOpts
:
[{
statusOpts
:[
{
label
:
"全部"
,
label
:
"全部"
,
value
:
-
1
value
:
-
1
},
},
...
@@ -380,19 +346,19 @@ import ActiveForm from '../../components/activity/active-from'
...
@@ -380,19 +346,19 @@ import ActiveForm from '../../components/activity/active-from'
label
:
"编号"
,
label
:
"编号"
,
field
:
"Id"
,
field
:
"Id"
,
align
:
"left"
,
align
:
"left"
,
required
:
true
,
required
:
true
,
},
},
{
{
name
:
"activeName"
,
name
:
"activeName"
,
label
:
"活动名称"
,
label
:
"活动名称"
,
align
:
"left"
,
align
:
"left"
,
required
:
true
,
required
:
true
,
},
},
{
{
name
:
"ActivityTypeName"
,
name
:
"ActivityTypeName"
,
label
:
"活动类型"
,
label
:
"活动类型"
,
align
:
"left"
,
align
:
"left"
,
field
:
"ActivityTypeName"
field
:
"ActivityTypeName"
},
},
{
{
name
:
"ActivityTime"
,
name
:
"ActivityTime"
,
...
@@ -412,14 +378,14 @@ import ActiveForm from '../../components/activity/active-from'
...
@@ -412,14 +378,14 @@ import ActiveForm from '../../components/activity/active-from'
{
{
name
:
"LocationName"
,
name
:
"LocationName"
,
label
:
"位置"
,
label
:
"位置"
,
field
:
"LocationName"
,
field
:
"LocationName"
,
align
:
"left"
,
align
:
"left"
,
style
:
"width:100px"
style
:
"width:100px"
},
},
{
{
name
:
"activeStutes"
,
name
:
"activeStutes"
,
label
:
"活动状态"
,
label
:
"活动状态"
,
field
:
"ActivityStatusStr"
,
field
:
"ActivityStatusStr"
,
align
:
"left"
align
:
"left"
},
},
// {
// {
...
@@ -431,7 +397,7 @@ import ActiveForm from '../../components/activity/active-from'
...
@@ -431,7 +397,7 @@ import ActiveForm from '../../components/activity/active-from'
{
{
name
:
'optioned'
,
name
:
'optioned'
,
label
:
'操作'
,
label
:
'操作'
,
required
:
true
,
required
:
true
,
align
:
"left"
align
:
"left"
}
}
],
],
...
@@ -444,14 +410,13 @@ import ActiveForm from '../../components/activity/active-from'
...
@@ -444,14 +410,13 @@ import ActiveForm from '../../components/activity/active-from'
// ActivityId: 0
// ActivityId: 0
// },
// },
showForm
:
false
,
showForm
:
false
,
typeObj
:{}
typeObj
:
{}
}
}
},
},
mounted
()
{
mounted
()
{
this
.
getList
();
this
.
getList
();
this
.
getActiveTypeList
();
},
},
methods
:
{
methods
:
{
// getItem(item) {
// getItem(item) {
...
@@ -460,29 +425,18 @@ import ActiveForm from '../../components/activity/active-from'
...
@@ -460,29 +425,18 @@ import ActiveForm from '../../components/activity/active-from'
// },
// },
//获取活动类型下拉
getActiveTypeList
(){
getList
()
{
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
.
loading
=
true
;
this
.
apipostDS
(
"/api/Education/GetActivityPage"
,
this
.
msg
,(
res
)
=>
{
this
.
apipostDS
(
"/api/Education/GetActivityPage"
,
this
.
msg
,
(
res
)
=>
{
this
.
loading
=
false
this
.
loading
=
false
if
(
res
.
data
.
resultCode
===
1
)
{
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
data
=
res
.
data
.
data
.
pageData
;
this
.
data
=
res
.
data
.
data
.
pageData
;
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
this
.
pageCount
=
res
.
data
.
data
.
pageCount
;
}
}
})
})
},
},
delActive
(
item
)
{
delActive
(
item
)
{
let
that
=
this
;
let
that
=
this
;
that
.
Confirm
(
"是否删除?"
,
function
()
{
that
.
Confirm
(
"是否删除?"
,
function
()
{
that
.
apipostDS
(
that
.
apipostDS
(
...
@@ -511,7 +465,7 @@ import ActiveForm from '../../components/activity/active-from'
...
@@ -511,7 +465,7 @@ import ActiveForm from '../../components/activity/active-from'
this
.
showForm
=
true
;
this
.
showForm
=
true
;
if
(
item
)
{
if
(
item
)
{
this
.
typeObj
=
item
;
this
.
typeObj
=
item
;
}
else
{
}
else
{
this
.
typeObj
=
{};
this
.
typeObj
=
{};
}
}
},
},
...
@@ -529,24 +483,14 @@ import ActiveForm from '../../components/activity/active-from'
...
@@ -529,24 +483,14 @@ import ActiveForm from '../../components/activity/active-from'
closeruleset
()
{
closeruleset
()
{
this
.
showForm
=
false
;
this
.
showForm
=
false
;
},
},
goUrl
(
url
,
item
,
type
=
0
){
goUrl
(
url
,
item
)
{
if
(
type
===
1
){
this
.
$router
.
push
({
path
:
url
,
query
:{
name
:
item
.
ActivityName
}
})
}
else
{
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
url
,
path
:
url
,
query
:{
query
:
{
Id
:
item
.
Id
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 @@
...
@@ -190,10 +190,13 @@
:rules=
"[val => !!val || '请再次输入新密码']"
lazy-rules
filled
/>
:rules=
"[val => !!val || '请再次输入新密码']"
lazy-rules
filled
/>
</div>
</div>
<q-btn
color=
"primary"
style=
"width: 300px;margin-top: 50px;"
:loading=
"loading2"
label=
"确定修改"
type=
"submit"
>
</q-btn>
<q-btn
color=
"primary"
style=
"width: 300px;margin-top: 50px;"
:loading=
"loading2"
label=
"确定修改"
type=
"submit"
>
</q-btn>
</form>
</form>
</
template
>
</
template
>
<
template
v-if=
"rightType == 3"
>
<div>
</div>
</
template
>
</div>
</div>
</div>
</div>
</template>
</template>
...
...
src/router/routes.js
View file @
03b90f42
...
@@ -741,6 +741,11 @@ const routes = [{
...
@@ -741,6 +741,11 @@ const routes = [{
component
:
()
=>
component
:
()
=>
import
(
"pages/activity/activeDetail.vue"
)
import
(
"pages/activity/activeDetail.vue"
)
},
},
{
path
:
"/activity/copyActive"
,
//活动 复制活动
component
:
()
=>
import
(
"pages/activity/copyActive.vue"
)
},
{
{
path
:
"/activity/advmanager"
,
//活动 广告图管理
path
:
"/activity/advmanager"
,
//活动 广告图管理
component
:
()
=>
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