Commit 91b44fe0 authored by 黄奎's avatar 黄奎
parents c6dc5772 faac62e6
......@@ -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,
......
......@@ -111,3 +111,16 @@ export function getEmployeeAddrBook(data)
data
})
}
/**
* 获取个人中心信息
*/
export function getUserCenterInfo(data)
{
return request({
url: '/UserInfo/GetUserCenterInfo',
method: 'post',
data
})
}
<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>
......@@ -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 => {
......
<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
<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
}
}
}
......
......@@ -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
}
})
}
}
}
}
......
<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>
......@@ -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>
......@@ -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,
});
}
}
......
......@@ -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;
......
......@@ -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: "更新时间",
......
......@@ -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>
......
......@@ -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,
});
}
}
......
......@@ -3332,10 +3332,11 @@
},
jumpbjPage(path, item) {
if (path == 'classManage') {
let Name = encodeURI(item.ClassName)
this.$router.push({
path: '/course/' + path,
query: {
'ClassName': item.ClassName
'ClassName': Name
}
})
} else if (path == 'paymentDetail') {
......
......@@ -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;
......
......@@ -2192,10 +2192,11 @@
},
jumpbjPage(path, item) {
if (path == 'classManage') {
let Name = encodeURI(item.ClassName)
this.$router.push({
path: '/course/' + path,
query: {
'ClassName': item.ClassName
'ClassName': Name
}
})
} else if (path == 'paymentDetail') {
......
......@@ -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,
});
......
......@@ -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;">
......
......@@ -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]
}
},
......
......@@ -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()
},
......
......@@ -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")
}
}
}
......
......@@ -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")
}
}
}
......
......@@ -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),
......
......@@ -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: () =>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment