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
91b44fe0
Commit
91b44fe0
authored
Jul 06, 2021
by
黄奎
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
c6dc5772
faac62e6
Show whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
1318 additions
and
555 deletions
+1318
-555
App.vue
src/App.vue
+1
-1
user.js
src/api/users/user.js
+13
-0
active-from.vue
src/components/activity/active-from.vue
+254
-211
teacher-form.vue
src/components/school/teacher/teacher-form.vue
+22
-1
summaryInfo.vue
src/components/user/summaryInfo.vue
+388
-0
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
chapter.vue
src/pages/course/chapter.vue
+13
-4
classManage.vue
src/pages/course/classManage.vue
+4
-3
course.vue
src/pages/course/course.vue
+1
-1
lessonNotes.vue
src/pages/course/lessonNotes.vue
+6
-6
prepareclassDetails.vue
src/pages/course/prepareclassDetails.vue
+13
-2
TeamRevenueReport.vue
src/pages/financial/TeamRevenueReport.vue
+5
-4
BasicDocuments.vue
src/pages/financial/financalDocument/BasicDocuments.vue
+2
-1
FinancialDocuments.vue
src/pages/financial/financalDocument/FinancialDocuments.vue
+13
-8
FinancialDocumentsDetail.vue
...s/financial/financalDocument/FinancialDocumentsDetail.vue
+2
-1
orderCompleteStatistics.vue
src/pages/financial/orderCompleteStatistics.vue
+5
-2
saleAchievementsRank.vue
src/pages/financial/saleAchievementsRank.vue
+0
-14
teacherclassfee.vue
src/pages/financial/teacherclassfee.vue
+2
-1
contractManage.vue
src/pages/sale/contractManage.vue
+1
-1
orderStatistics.vue
src/pages/sale/orderStatistics.vue
+19
-4
studyOrderStatistics.vue
src/pages/sale/studyOrderStatistics.vue
+16
-3
personalData.vue
src/pages/user/personalData.vue
+15
-3
routes.js
src/router/routes.js
+9
-4
No files found.
src/App.vue
View file @
91b44fe0
...
...
@@ -12,7 +12,7 @@ export default {
<
style
>
@import
url('~assets/css/font.css')
;
@import
url('//at.alicdn.com/t/font_2077629_
byb6agikplo
.css')
;
@import
url('//at.alicdn.com/t/font_2077629_
1f7iels6h8w
.css')
;
html
,
body
,
...
...
src/api/users/user.js
View file @
91b44fe0
...
...
@@ -111,3 +111,16 @@ export function getEmployeeAddrBook(data)
data
})
}
/**
* 获取个人中心信息
*/
export
function
getUserCenterInfo
(
data
)
{
return
request
({
url
:
'/UserInfo/GetUserCenterInfo'
,
method
:
'post'
,
data
})
}
src/components/activity/active-from.vue
View file @
91b44fe0
<
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/components/school/teacher/teacher-form.vue
View file @
91b44fe0
...
...
@@ -28,6 +28,21 @@
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"Name"
v-model=
"chooseSpecialty"
ref=
"SpecialtyList"
:options=
"SpecialtyList"
label=
"老师特长"
:dense=
"false"
class=
"col-6 q-pr-lg q-pb-lg"
emit-value
map-options
@
input=
"schoolChagne"
multiple
clearable
/>
<q-select
filled
stack-label
option-value=
"Id"
option-label=
"Name"
v-model=
"objOption.BaseHoursEnabled"
ref=
"BaseHoursEnabled"
:options=
"BaseHoursList"
label=
"是否启用基础课时"
:dense=
"false"
class=
"col-6 q-pb-lg"
emit-value
map-options
/>
<q-input
v-if=
'objOption.BaseHoursEnabled==1'
filled
v-model=
"objOption.EnableTime"
mask=
"####-##"
label=
"启用时间"
ref=
"EnableTime"
: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=
"objOption.EnableTime"
mask=
"YYYY-MM"
></q-date>
</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"
style=
"margin-top:20px;"
>
...
...
@@ -145,7 +160,10 @@
BaseStuNum
:
0
,
//带班基础人数
BaseHourFee
:
0
,
//基础课时费
Specialty
:
""
,
//老师擅长
BaseHoursEnabled
:
1
,
//是否启用基础课时 1是
EnableTime
:
''
,
//启用时间 (存到月)
},
BaseHoursList
:[{
Id
:
0
,
Name
:
'关闭'
},{
Id
:
1
,
Name
:
'开启'
}],
chooseSpecialty
:
[],
optionTitle
:
""
,
schoolList
:
[],
...
...
@@ -344,6 +362,9 @@
// } else if (this.objOption.TeacherHead == '') {
// err_msg = "请上传用户头像"
// }
if
(
this
.
objOption
.
BaseHoursEnabled
==
1
&&
this
.
objOption
.
EnableTime
==
''
){
err_msg
=
"请选择日期"
}
if
(
err_msg
==
""
)
{
this
.
objOption
.
TeachTag
=
JSON
.
stringify
(
this
.
tags
)
saveTeacher
(
this
.
objOption
).
then
(
res
=>
{
...
...
src/components/user/summaryInfo.vue
0 → 100644
View file @
91b44fe0
<
style
>
.summaryInfo
.box_top
{
width
:
100%
;
border-radius
:
6px
;
}
.summaryInfo
.box_t_item
{
background
:
#FFF
;
height
:
468px
;
border-radius
:
6px
;
padding
:
30px
20px
;
}
.box_t_it
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
}
.box_t_itext
{
font-size
:
18px
;
color
:
#3F4254
;
font-weight
:
800
;
margin-left
:
13px
;
}
.summaryInfo
.noticeitem
{
width
:
100%
;
padding
:
20px
;
display
:
flex
;
align-items
:
flex-start
;
}
.noticeitem
:hover
{
box-shadow
:
0px
0px
8px
0px
rgba
(
68
,
110
,
228
,
0.64
);
/* border: 1px solid rgba(68, 110, 228, 0.64);; */
}
.summaryInfo
.noticeitem_l
{
width
:
120px
;
height
:
82px
;
border-radius
:
6px
;
}
.summaryInfo
.box_c
{
margin-top
:
30px
;
min-height
:
400px
;
}
.summaryInfo
.box_c_item
{
background
:
#FFF
;
min-height
:
400px
;
border-radius
:
6px
;
padding
:
20px
;
}
</
style
>
<
template
>
<div
class=
"summaryInfo"
>
<div
class=
"box_top"
>
<el-row
:gutter=
"15"
>
<el-col
:span=
"12"
>
<div
class=
"grid-content box_t_item"
>
<div
class=
"box_t_it"
>
<div
style=
"display: flex;align-items: center;"
>
<inline-svg
class=
"svg-icon q-mr-xs svg-icon-secondary"
src=
"icons/svg/Communication/Urgent-mail.svg"
></inline-svg>
<span
class=
"box_t_itext"
>
公告
</span>
</div>
</div>
<div
style=
"margin-top: 10px;background: #fff;height: 368px; width: 100%;overflow-y: auto;cursor: pointer;padding: 2px;"
>
<div
v-for=
"(item,index) in noticeList"
:key=
'index'
class=
"noticeitem"
@
click=
"goNoticeDetail(item)"
>
<div
class=
"noticeitem_l"
>
<img
:src=
"item.UpdateByIcon"
style=
"width: 120px;height: 82px; border-radius: 6px;"
/>
</div>
<div
style=
"width: 1px;flex: 1;margin-left: 20px;"
>
<div
style=
"width: 100%;display: flex;align-items: flex-start;justify-content: space-between;"
>
<span
style=
"font-size: 16px;font-family: PingFang SC;font-weight: 800;color: #3F4254;"
>
{{
item
.
UpdateByName
}}
</span>
<span
style=
"font-size: 14px;font-weight: 500;color: #C4C6D1;"
>
{{
item
.
DayStr
}}
</span>
</div>
<div
style=
"font-size: 14px; font-family: PingFang SC;font-weight: 400;color: #9A9DAB;margin-top: 10px;overflow: hidden;white-space: nowrap; text-overflow: ellipsis"
>
{{
item
.
Title
}}
</div>
<div
style=
"font-size: 14px; font-family: PingFang SC;font-weight: 400;color: #9A9DAB;margin-top: 10px;"
>
编号:
{{
item
.
Number
}}
</div>
</div>
</div>
<div
class=
"notifyLoadMore"
v-if=
"noticeMsg.pageSize
<Count
"
@
click=
"getMoreNotify()"
>
<span>
加载更多
</span>
</div>
</div>
</div>
</el-col>
<el-col
:span=
"12"
>
<div
class=
"grid-content box_t_item"
>
<div
class=
"box_t_it"
>
<div
style=
"display: flex;align-items: center;"
>
<inline-svg
class=
"svg-icon q-mr-xs svg-icon-secondary"
src=
"icons/svg/Communication/Chat-check.svg"
></inline-svg>
<span
class=
"box_t_itext"
>
消息
</span>
</div>
</div>
<div
style=
"margin-top: 10px;background: #fff;height: 368px; width: 100%;overflow-y: auto;cursor: pointer;padding: 2px;"
>
<q-list
v-if=
"socektArr.length>0"
>
<q-item
class=
"q-my-sm q-pa-xs items-start"
v-for=
"(x,i) in socektArr"
:key=
"i"
clickable
v-ripple
@
click=
"goMsgDetail(x.JumpUrl,x),readMsgLog(x.Id,i)"
>
<q-item-section
avatar
>
<q-avatar
:style=
"
{'background-color':'#e1f0ff'}" rounded size="40px"
text-color="negative">
<inline-svg
:class=
"['svg-icon',`svg-icon-primary`]"
src=
"icons/svg/Shopping/Bag2.svg"
></inline-svg>
</q-avatar>
</q-item-section>
<q-item-section>
<q-item-label
class=
"text-weight-bold"
>
{{
x
.
Title
}}
</q-item-label>
<q-item-label
caption
lines=
"3"
class=
"remark-font"
>
{{
x
.
Content
}}
</q-item-label>
</q-item-section>
<q-item-section
side
class=
"remark-font"
>
{{
x
.
SendTime
.
replace
(
'T'
,
' '
)
}}
</q-item-section>
</q-item>
</q-list>
</div>
</div>
</el-col>
</el-row>
</div>
<div
class=
"box_c"
>
<el-row
:gutter=
"15"
>
<el-col
:span=
"8"
>
<div
class=
"box_c_item"
>
<div
class=
"box_t_it"
>
<div
style=
"display: flex;align-items: center;"
>
<inline-svg
class=
"svg-icon q-mr-xs svg-icon-secondary"
src=
"icons/svg/Communication/Urgent-mail.svg"
></inline-svg>
<span
class=
"box_t_itext"
>
我的提成
</span>
</div>
</div>
<div
id=
"main"
style=
"width: 100%;height:300px;"
>
</div>
</div>
</el-col>
<el-col
:span=
"8"
>
<div
class=
"box_c_item"
>
</div>
</el-col>
<el-col
:span=
"8"
>
<div
class=
"box_c_item"
>
<div
class=
"box_t_it"
>
<div
style=
"display: flex;align-items: center;"
>
<inline-svg
class=
"svg-icon q-mr-xs svg-icon-secondary"
src=
"icons/svg/Communication/Urgent-mail.svg"
></inline-svg>
<span
class=
"box_t_itext"
>
新同事
</span>
</div>
</div>
<div
class=
"page-content"
style=
"margin-top: 44px;"
>
<q-table
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
title=
""
:data=
"UserInfo.EmployeeListResult"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:bottom
>
</
template
>
</q-table>
</div>
</div>
</el-col>
</el-row>
</div>
</div>
</template>
<
script
>
import
{
SetWebCartoon
,
GetWebCartoon
}
from
'../../api/system/webkit'
import
{
getUserCenterInfo
}
from
'../../api/users/user'
import
{
GetMyNoticePageList
,
BeatchReadMsgLog
,
}
from
'../../api/course/index'
import
{
GetMsgLogList
}
from
'../../api/course/index'
export
default
{
props
:
{
saveObj
:
{
type
:
Object
,
default
:
null
}
},
data
()
{
return
{
//通知请求参数
noticeMsg
:
{
pageIndex
:
1
,
pageSize
:
5
},
Count
:
0
,
visible
:
true
,
noticeList
:
[],
socektArr
:
[],
//消息数组
columns
:
[{
name
:
'EmployeeName'
,
label
:
'姓名'
,
align
:
'left'
,
field
:
'EmployeeName'
,
},
{
name
:
'DeptName'
,
label
:
'部门'
,
align
:
'left'
,
field
:
'DeptName'
},
{
name
:
'PostName'
,
label
:
'职位'
,
field
:
'PostName'
,
align
:
'left'
},
{
name
:
'AccountRemark'
,
label
:
'备注'
,
field
:
'AccountRemark'
,
align
:
'left'
},
],
UserInfo
:
{
EmployeeListResult
:
[{
"EmployeeName"
:
"周建"
,
"DeptName"
:
"教学部"
,
"PostName"
:
"实习生"
,
"AccountRemark"
:
null
,
"AccountId"
:
66
,
"AccountType"
:
1
,
"School_Id"
:
0
,
"Id"
:
2689
},
{
"EmployeeName"
:
"周建"
,
"DeptName"
:
"教学部"
,
"PostName"
:
"实习生"
,
"AccountRemark"
:
null
,
"AccountId"
:
66
,
"AccountType"
:
1
,
"School_Id"
:
0
,
"Id"
:
2689
},
{
"EmployeeName"
:
"周建"
,
"DeptName"
:
"教学部"
,
"PostName"
:
"实习生"
,
"AccountRemark"
:
null
,
"AccountId"
:
66
,
"AccountType"
:
1
,
"School_Id"
:
0
,
"Id"
:
2689
},]
},
}
},
mounted
()
{
this
.
getNotify
();
this
.
getLogList
()
this
.
getUserInfo
()
//个人中心
this
.
tubiao
()
},
methods
:
{
tubiao
()
{
var
echarts
=
require
(
'echarts'
)
var
myChart
=
echarts
.
init
(
document
.
getElementById
(
'main'
))
// 指定图表的配置项和数据
var
option
=
{
grid
:
{
left
:
'0%'
,
right
:
'0%'
,
bottom
:
'0%'
,
containLabel
:
true
},
xAxis
:
{
type
:
'category'
,
data
:
[
'1月'
,
'2月'
,
'3月'
,
'4月'
,
'5月'
,
'6月'
,
'7月'
]
},
yAxis
:
{
type
:
'value'
},
series
:
[{
data
:
[
820
,
932
,
901
,
934
,
1290
,
1330
,
1320
],
type
:
'line'
,
smooth
:
true
}]
}
// 使用刚指定的配置项和数据显示图表。
myChart
.
setOption
(
option
)
},
//请求公告数据
getNotify
()
{
GetMyNoticePageList
(
this
.
noticeMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
noticeList
=
res
.
Data
.
PageData
;
this
.
Count
=
res
.
Data
.
Count
;
}
})
},
//获取日志列表
getLogList
()
{
GetMsgLogList
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
socektArr
=
res
.
Data
;
}
})
},
getUserInfo
()
{
getUserCenterInfo
().
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
UserInfo
=
res
.
Data
;
}
})
},
//跳转详情
goNoticeDetail
(
item
)
{
var
url
=
window
.
location
.
host
;
let
routeUrl
=
this
.
$router
.
resolve
({
path
:
"/noticeView"
,
query
:
{
NoticeId
:
item
.
Id
}
});
window
.
open
(
routeUrl
.
href
,
'_blank'
);
},
//跳转链接 新页面打开
goMsgDetail
(
url
,
item
)
{
if
(
item
.
CategoryId
==
5
)
{
let
zcurl
=
url_jump_zc
+
'#'
+
url
;
// let zcurl='http://www.test.com:8080/#'+url;
window
.
open
(
zcurl
)
}
else
{
var
hostName
=
window
.
location
.
hostname
;
var
port
=
window
.
location
.
port
;
var
newurl
=
""
if
(
url
!=
null
&&
url
.
length
>
0
)
{
if
(
url
.
indexOf
(
'http://'
)
==
-
1
||
url
.
indexOf
(
'https://'
)
==
-
1
)
{
if
(
url
.
indexOf
(
"www"
)
==
-
1
)
{
newurl
=
"http://"
+
hostName
+
(
port
!=
80
?
":"
+
port
:
""
)
+
"/#"
+
url
;
}
else
{
newurl
=
"http://"
+
url
;
}
}
else
{
newurl
=
url
}
}
if
(
newurl
)
{
window
.
open
(
newurl
,
"_blank"
);
}
}
},
//看过后删除
readMsgLog
(
Id
,
index
)
{
let
msg
=
{
Ids
:
[]
}
msg
.
Ids
.
push
(
Id
);
BeatchReadMsgLog
(
msg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
socektArr
.
splice
(
index
,
1
);
}
})
}
},
}
</
script
>
\ No newline at end of file
src/pages/activity/activeDetail.vue
View file @
91b44fe0
<
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 @
91b44fe0
...
...
@@ -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 @
91b44fe0
<
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/course/chapter.vue
View file @
91b44fe0
...
...
@@ -81,17 +81,17 @@
<q-card-section>
<div
class=
"text-subtitle1 q-mb-md"
>
章节学习内容
</div>
<div
v-html=
"viewObj.ChapterContent"
v-if=
"viewObj.ChapterContent!=''"
class=
"q-pa-md bg-grey-2 rounded-borders"
></div>
class=
"q-pa-md bg-grey-2 rounded-borders
chapter-Content
"
></div>
<div
class=
"text-grey-3 text-center"
v-else
>
未添加内容
</div>
</q-card-section>
<q-card-section>
<div
class=
"text-subtitle1 q-mb-md"
>
教学重点
</div>
<div
v-html=
"viewObj.Objectives"
v-if=
"viewObj.ChapterContent!=''"
></div>
<div
v-html=
"viewObj.Objectives"
class=
"chapter-Content"
v-if=
"viewObj.ChapterContent!=''"
></div>
<div
class=
"text-grey-3 text-center"
v-else
>
未添加内容
</div>
</q-card-section>
<q-card-section>
<div
class=
"text-subtitle1 q-mb-md"
>
学生学习要求
</div>
<div
v-html=
"viewObj.Requirement"
v-if=
"viewObj.ChapterContent!=''"
></div>
<div
v-html=
"viewObj.Requirement"
class=
"chapter-Content"
v-if=
"viewObj.ChapterContent!=''"
></div>
<div
class=
"text-grey-3 text-center"
v-else
>
未添加内容
</div>
</q-card-section>
</q-card>
...
...
@@ -389,5 +389,14 @@
}
/**@import url('~assets/css/table.sass')*/
.chapter-Content
h6
,
.chapter-Content
h5
,
.chapter-Content
h4
,
.chapter-Content
h3
,
.chapter-Content
h2
,
.chapter-Content
h1
{
font-size
:
unset
!important
;
line-height
:
unset
!important
;
letter-spacing
:
unset
!important
;
}
</
style
>
src/pages/course/classManage.vue
View file @
91b44fe0
...
...
@@ -327,8 +327,8 @@
}
},
created
()
{
if
(
this
.
$route
.
query
)
{
this
.
msg
.
ClassName
=
this
.
$route
.
query
.
ClassName
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
ClassName
)
{
this
.
msg
.
ClassName
=
decodeURI
(
this
.
$route
.
query
.
ClassName
)
}
this
.
getClassStatus
();
this
.
getSchool
();
...
...
@@ -517,9 +517,10 @@
this
.
isShowClassInfo
=
true
;
},
gomonthLessonCost
(
row
){
let
ClassName
=
encodeURI
(
row
.
ClassName
)
this
.
OpenNewUrl
(
'/course/monthLessonCost'
,
{
ClassId
:
row
.
ClassId
,
ClassName
:
row
.
ClassName
,
ClassName
:
ClassName
,
});
}
}
...
...
src/pages/course/course.vue
View file @
91b44fe0
...
...
@@ -332,7 +332,7 @@
}),
mounted
()
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
Name
){
//从订单完成统计跳转过来的带的参数
this
.
msg
.
CourseName
=
this
.
$route
.
query
.
Name
this
.
msg
.
CourseName
=
decodeURI
(
this
.
$route
.
query
.
Name
)
}
this
.
getCategorytree
();
this
.
currentUrl
=
this
.
$route
.
path
;
...
...
src/pages/course/lessonNotes.vue
View file @
91b44fe0
...
...
@@ -210,12 +210,12 @@
align
:
"left"
,
format
:
(
val
,
row
)
=>
`
${
val
}
课时`
},
{
name
:
"CreateByName"
,
label
:
"创建人"
,
field
:
"CreateByName"
,
align
:
"left"
},
//
{
//
name: "CreateByName",
//
label: "创建人",
//
field: "CreateByName",
//
align: "left"
//
},
{
name
:
"UpdateTimeStr"
,
label
:
"更新时间"
,
...
...
src/pages/course/prepareclassDetails.vue
View file @
91b44fe0
...
...
@@ -134,12 +134,23 @@
opacity
:
0.8
;
}
.prePare_Content
{
width
:
430px
;
/* width:430px; */
min-height
:
100px
;
height
:
auto
;
background-color
:
#F0F5FB
;
padding
:
20px
;
margin
:
20px
auto
;
font-family
:
'微软雅黑'
!important
;
}
.prePare_Content
h6
,
.prePare_Content
h5
,
.prePare_Content
h4
,
.prePare_Content
h3
,
.prePare_Content
h2
,
.prePare_Content
h1
{
font-size
:
unset
!important
;
line-height
:
unset
!important
;
letter-spacing
:
unset
!important
;
}
</
style
>
...
...
@@ -227,7 +238,7 @@
<div
class=
"text14-o"
v-html=
"x.ProjectContent"
></div>
<template
v-if=
"data.IsEditSummary>0"
>
<div
v-if=
"x.Summary"
style=
"width: 100%;background: #F0F5FB;border-radius: 5px;padding:10px;margin-bottom:20px;"
>
{{
x
.
Summary
}}
单项总结:
{{
x
.
Summary
}}
</div>
</
template
>
<
template
v-else
>
...
...
src/pages/financial/TeamRevenueReport.vue
View file @
91b44fe0
...
...
@@ -526,12 +526,12 @@
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"班号
"
:
"
>
<el-form-item
label=
"班号:"
>
<el-input
v-model=
"msg.ClassNo"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"4"
>
<el-form-item
label=
"班级
id
:"
>
<el-form-item
label=
"班级
编号
:"
>
<el-input
v-model=
"msg.ClassId"
></el-input>
</el-form-item>
</el-col>
...
...
@@ -573,7 +573,7 @@
关闭团队收支
</el-button>
</el-col>
<el-col
:span=
"
4"
style=
"margin-left:110px"
>
<el-col
:span=
"
2"
>
<div
style=
"height: 40px;padding-top: 5px;"
>
<!--
<button
class=
"normalBtn"
@
click=
"resetPageIndex(),getPageList()"
>
{{
$t
(
'pub.searchBtn'
)
}}
</button>
-->
<q-btn
color=
"primary"
size=
"11px"
:label=
"$t('pub.searchBtn')"
@
click=
"resetPageIndex(),getPageList()"
style=
"marginRight:10px"
/>
...
...
@@ -1478,9 +1478,10 @@
})
}
else
if
(
column
.
title
==
'已上课时'
){
if
(
rowData
.
ClassId
>
0
){
let
ClassName
=
encodeURI
(
rowData
.
ClassName
)
this
.
OpenNewUrl
(
'/course/monthLessonCost'
,
{
ClassId
:
rowData
.
ClassId
,
ClassName
:
rowData
.
ClassName
,
ClassName
:
ClassName
,
});
}
}
...
...
src/pages/financial/financalDocument/BasicDocuments.vue
View file @
91b44fe0
...
...
@@ -3332,10 +3332,11 @@
},
jumpbjPage
(
path
,
item
)
{
if
(
path
==
'classManage'
)
{
let
Name
=
encodeURI
(
item
.
ClassName
)
this
.
$router
.
push
({
path
:
'/course/'
+
path
,
query
:
{
'ClassName'
:
item
.
Class
Name
'ClassName'
:
Name
}
})
}
else
if
(
path
==
'paymentDetail'
)
{
...
...
src/pages/financial/financalDocument/FinancialDocuments.vue
View file @
91b44fe0
...
...
@@ -2424,16 +2424,21 @@
this
.
currentPage
=
1
;
},
goUrl
(
path
,
id
,
Conditon
,
pageIndex
)
{
this
.
$router
.
push
({
path
:
'/financial/financalDocument/'
+
path
,
query
:
{
this
.
OpenNewUrl
(
'/financial/financalDocument/'
+
path
,
{
"id"
:
id
,
"Conditon"
:
Conditon
,
"pageIndex"
:
pageIndex
,
blank
:
'y'
,
tab
:
'单据详情'
}
})
});
// this.$router.push({
// path: '/financial/financalDocument/' + path,
// query: {
// "id": id,
// "Conditon": Conditon,
// "pageIndex": pageIndex,
// blank: 'y',
// tab: '单据详情'
// }
// })
},
goUrlWeituo
(
path
)
{
let
tempStr
=
'/financial/financalDocument/'
+
path
;
...
...
src/pages/financial/financalDocument/FinancialDocumentsDetail.vue
View file @
91b44fe0
...
...
@@ -2192,10 +2192,11 @@
},
jumpbjPage
(
path
,
item
)
{
if
(
path
==
'classManage'
)
{
let
Name
=
encodeURI
(
item
.
ClassName
)
this
.
$router
.
push
({
path
:
'/course/'
+
path
,
query
:
{
'ClassName'
:
item
.
Class
Name
'ClassName'
:
Name
}
})
}
else
if
(
path
==
'paymentDetail'
)
{
...
...
src/pages/financial/orderCompleteStatistics.vue
View file @
91b44fe0
...
...
@@ -628,12 +628,15 @@
}
},
goUrl
(
path
,
Name
){
goUrl
(
path
,
Names
){
let
Name
=
encodeURI
(
Names
)
console
.
log
(
Name
)
this
.
OpenNewUrl
(
path
,
{
Name
:
Name
,
});
},
goUrl2
(
path
,
Name
){
//班级
goUrl2
(
path
,
Names
){
//班级
let
Name
=
encodeURI
(
Names
)
this
.
OpenNewUrl
(
path
,
{
ClassName
:
Name
,
});
...
...
src/pages/financial/saleAchievementsRank.vue
View file @
91b44fe0
...
...
@@ -118,20 +118,6 @@
<el-table-column
prop=
"GuestNum"
label=
"报名人数"
>
</el-table-column>
<el-table-column
prop=
"JKNum"
label=
"结课人数"
>
</el-table-column>
<el-table-column
prop=
"OrderNum"
label=
"订单数量"
>
</el-table-column>
<!-- <el-table-column label="操作">
<template slot-scope="scope">
<div class="_icon_btn">
<el-tooltip class="item" effect="dark" content="查看老师" placement="top">
<i class="iconfont icon-sousuo"
@click="goUrl('teacherclassfee',scope.row.AccountId)"></i>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="查看学生" placement="top">
<i class="iconfont icon-sousuo"
@click="goUrl('studentsClassfee',scope.row.AccountId)"></i>
</el-tooltip>
</div>
</template>
</el-table-column> -->
</el-table>
<div
style=
"margin-top: 10px;text-align: center;"
>
...
...
src/pages/financial/teacherclassfee.vue
View file @
91b44fe0
...
...
@@ -222,7 +222,8 @@
this
.
msg
.
EndMonth
=
this
.
$route
.
query
.
EndMonth
}
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
ClassName
){
this
.
ClassName
=
[
this
.
$route
.
query
.
ClassName
]
let
Name
=
decodeURI
(
this
.
$route
.
query
.
ClassName
)
this
.
ClassName
=
[
Name
]
}
},
...
...
src/pages/sale/contractManage.vue
View file @
91b44fe0
...
...
@@ -251,7 +251,7 @@
created
()
{},
mounted
()
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
Name
){
//从订单完成统计跳转过来的带的参数
this
.
msg
.
ContractNo
=
this
.
$route
.
query
.
Name
this
.
msg
.
ContractNo
=
decodeURI
(
this
.
$route
.
query
.
Name
)
}
this
.
getList
()
},
...
...
src/pages/sale/orderStatistics.vue
View file @
91b44fe0
...
...
@@ -2,9 +2,17 @@
<div
class=
"page-body myOrder"
>
<div
style=
"width: 100%;display: flex;justify-content: space-between"
>
<span
style=
"font-size: 20px;font-weight: 400; "
>
报名统计
</span>
<div
style=
"display: flex;align-items: center;"
>
<span>
<q-toggle
v-model=
"msg.Q_NotCollect"
label=
"只看款未收齐订单"
class=
"q-mb-md"
false-value=
"0"
true-value=
"1"
@
input=
"resetSearch"
/></span>
@
input=
"resetSearch"
/>
</span>
<div
class=
"page-option"
style=
"margin-left: 10px;"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
label=
"导出"
@
click=
"goexport()"
/>
</div>
</div>
</div>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
...
...
@@ -131,7 +139,10 @@
import
myOrderForm
from
'../../components/sale/myOrder-form'
import
classinfoForm
from
'../../components/course/classinfo-form'
;
import
orderlist
from
'../../components/sale/orderlist'
import
{
queryEmployee
}
from
'../../api/users/user'
import
{
queryEmployee
}
from
'../../api/users/user'
;
import
{
EduDownLoad
,
}
from
'../../api/common/common'
;
export
default
{
meta
:
{
title
:
"报名统计"
...
...
@@ -345,6 +356,10 @@
}
})
},
goexport
(){
//导出
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
EduDownLoad
(
"/order/GetOrderPageListStatisticsToExcel"
,
msg
,
"订单列表.xls"
)
}
}
}
...
...
src/pages/sale/studyOrderStatistics.vue
View file @
91b44fe0
...
...
@@ -2,9 +2,15 @@
<div
class=
"page-body myOrder"
>
<div
style=
"width: 100%;display: flex;justify-content: space-between"
>
<span
style=
"font-size: 20px;font-weight: 400; "
>
留学就业统计
</span>
<div
style=
"display: flex;align-items: center;"
>
<span>
<q-toggle
v-model=
"msg.Q_NotCollect"
label=
"只看款未收齐订单"
class=
"q-mb-md"
false-value=
"0"
true-value=
"1"
@
input=
"resetSearch"
/></span>
<div
class=
"page-option"
style=
"margin-left: 10px;"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
label=
"导出"
@
click=
"goexport()"
/>
</div>
</div>
</div>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
...
...
@@ -111,6 +117,9 @@
import
{
queryEmployee
}
from
'../../api/users/user'
import
{
EduDownLoad
,
}
from
'../../api/common/common'
;
export
default
{
meta
:
{
title
:
"留学就业统计"
...
...
@@ -293,6 +302,10 @@
})
},
goexport
(){
//导出
var
msg
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
msg
));
EduDownLoad
(
"/order/GetStudyOrderPageListStatisticsToExcel"
,
msg
,
"留学就业统计.xls"
)
}
}
}
...
...
src/pages/user/personalData.vue
View file @
91b44fe0
...
...
@@ -21,6 +21,12 @@
width
:
1px
;
padding
:
20px
26px
;
}
.personalData
.box_r2
{
flex
:
1
;
width
:
1px
;
padding
:
0px
0px
;
}
.personalData
.box_l_t
{
margin-top
:
28px
;
...
...
@@ -126,11 +132,16 @@
<span>
{{
showObj
.
DeptName
}}
</span>
</div>
<!--
<div
class=
"box_l_title"
style=
"margin-top: 55px;"
>
概要信息
</div>
-->
<div
:class=
"rightType==0?'box_l_title':'box_l_cen'"
@
click=
'rightType=0'
>
概要信息
</div>
<div
:class=
"rightType==3?'box_l_title':'box_l_cen'"
@
click=
'rightType=3'
>
预警信息
</div>
<div
:class=
"rightType==1?'box_l_title':'box_l_cen'"
@
click=
'rightType=1'
>
账户资料
</div>
<div
:class=
"rightType==2?'box_l_title':'box_l_cen'"
@
click=
'rightType=2'
>
密码修改
</div>
</div>
<div
class=
"box_r"
>
<!-- 个人资料 -->
<div
v-if=
'rightType == 0'
class=
"box_r2"
>
<summaryInfo></summaryInfo>
</div>
<div
class=
"box_r"
v-if=
'rightType !=0'
>
<template
v-if=
'rightType == 1'
>
<div
style=
"font-size: 16px;font-weight: bold;color: #000000;"
>
账户资料
</div>
<div
class=
"box_r_title"
>
账户资料
</div>
...
...
@@ -213,19 +224,20 @@
NewPassWord
:
''
,
NewSurePassWord
:
''
,
}
import
summaryInfo
from
'../../components/user/summaryInfo'
export
default
{
meta
:
{
title
:
"个人资料"
},
components
:
{
summaryInfo
},
data
()
{
return
{
loading1
:
false
,
loading2
:
false
,
showObj
:
{},
rightType
:
1
,
//右边显示类型
rightType
:
0
,
//右边显示类型
datamodify
:
{},
CompanyList
:
[],
passwordMsg
:
Object
.
assign
({},
defaultpassword
),
...
...
src/router/routes.js
View file @
91b44fe0
...
...
@@ -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