Commit 908d9f56 authored by 吴春's avatar 吴春
parents fd1e3f03 54bad6db
......@@ -18,6 +18,7 @@
"co": "^4.6.0",
"core-js": "^3.6.5",
"cos-js-sdk-v5": "^1.1.5",
"echarts": "^5.1.2",
"element-ui": "^2.14.1",
"html2canvas": "^1.0.0-rc.7",
"js-md5": "^0.7.3",
......@@ -31,7 +32,7 @@
"relation-graph": "^1.0.8",
"v-viewer": "^1.5.1",
"vue-amap": "^0.5.10",
"vue-draggable-resizable": "^1.7.5",
"vue-draggable-resizable": "^1.7.2",
"vue-easytable": "^1.7.2",
"vue-i18n": "^8.0.0",
"vue-inline-svg": "^2.0.0",
......
......@@ -12,8 +12,10 @@ 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');
.q-scrollarea__thumb{
z-index: 999999!important;
}
html,
body,
#q-app {
......
......@@ -30,7 +30,7 @@ export function getSchoolAndRoomNav(data) {
*/
export function getClassRoomTimeList(data) {
return request({
url: '/ClassRoom/GetClassRoomTimeList',
url: '/ClassRoom/GetNewClassRoomTimeList',
method: 'post',
data
})
......
......@@ -151,7 +151,7 @@ export function queryClassLogPageList(data) {
*/
export function GetTeacherPlan(data) {
return request({
url: "/Class/GetTeacherPlan",
url: "/Class/GetNewTeacherPlan",
method: 'post',
data
})
......@@ -191,7 +191,7 @@ export function setLessonComment(data) {
*/
export function updateClassLessPlan(data) {
return request({
url: "/Class/UpdateClassLessPlan",
url: "/Class/GetUpdateClassLessPlanSummary",
method: 'post',
data
})
......
......@@ -203,5 +203,16 @@ export function setSellCommissionSendEmployee(data) {
}
// 获取月度班级收支统计
export function getAllClassNowMonthStatistics(data) {
return request({
url: '/finance/GetAllClassNowMonthStatistics',
method: 'post',
data
});
}
import request from '../../utils/request'
/**
* 获取课程分页列表
* @param {JSON参数} data
*/
export function GetClassPageList(data) {
return request({
url: '/TeacherClass/GetClassPageList',
method: 'post',
data
})
}
/**
* 获取课程分页列表
* @param {JSON参数} data
*/
export function GetClassMonthStatistics(data) {
return request({
url: '/TeacherClass/GetClassMonthStatistics',
method: 'post',
data
})
}
......@@ -111,3 +111,62 @@ export function getEmployeeAddrBook(data)
data
})
}
/**
* 获取个人中心信息
*/
export function getUserCenterInfo(data)
{
return request({
url: '/UserInfo/GetUserCenterInfo',
method: 'post',
data
})
}
/**
* 获取我的提成折线图
*/
export function getUserSellCommission(data)
{
return request({
url: '/UserInfo/GetUserSellCommission',
method: 'post',
data
})
}
/**
* 获取我的奖金折线图
*/
export function getTeacherSellCommission(data)
{
return request({
url: '/UserInfo/GetTeacherSellCommission',
method: 'post',
data
})
}
/**
* 个人中心 我的奖金确认
*/
export function updateSureTeachingBonusDetail(data)
{
return request({
url: '/UserInfo/UpdateSureTeachingBonusDetail',
method: 'post',
data
})
}
/**
* 个人中心 我的提成确认
*/
export function updatSureSellCommission(data)
{
return request({
url: '/UserInfo/UpdatSureSellCommission',
method: 'post',
data
})
}
\ No newline at end of file
This diff is collapsed.
......@@ -201,7 +201,7 @@
 </q-field>
</div>
</div>
<div class="EmpLine_title" style="margin:10px 0;">
<div class="EmpLine_title" style="margin-top:20px">
<div class="Emp_Line"></div>
<div>上课设置</div>
</div>
......@@ -269,6 +269,9 @@
<th colspan="2">
时间
</th>
<th>
消耗课时
</th>
<th>
操作
</th>
......@@ -284,12 +287,42 @@
<a @click="deletePlan(nIndex)" style="color:blue;cursor:pointer;position:absolute;">删除</a>
</td>
<td>
<q-input filled stack-label maxlength="20" v-model="sItem.StartTime" placeholder="08:30"
:dense="false" class="col-6 q-pr-lg" label="开始时间" />
<q-input filled v-model="sItem.StartTime" class="col-6 q-pl-lg" placeholder="开始时间" mask="time">
<template v-slot:append>
<q-icon name="access_time" class="cursor-pointer">
<q-popup-proxy transition-show="scale" transition-hide="scale">
<q-time v-model="sItem.StartTime">
<div class="row items-center justify-end">
<q-btn v-close-popup label="确定" color="primary" flat />
</div>
</q-time>
</q-popup-proxy>
</q-icon>
</template>
</q-input>
<!-- <q-input filled stack-label maxlength="20" v-model="sItem.StartTime" placeholder="08:30"
:dense="false" class="col-6 q-pr-lg" label="开始时间" /> -->
</td>
<td>
<q-input filled v-model="sItem.EndTime" class="col-6 q-pr-lg" placeholder="结束时间" mask="time">
<template v-slot:append>
<q-icon name="access_time" class="cursor-pointer">
<q-popup-proxy transition-show="scale" transition-hide="scale">
<q-time v-model="sItem.EndTime">
<div class="row items-center justify-end">
<q-btn v-close-popup label="确定" color="primary" flat />
</div>
</q-time>
</q-popup-proxy>
</q-icon>
</template>
</q-input>
<!-- <q-input filled stack-label maxlength="20" v-model="sItem.EndTime" placeholder="09:30" :dense="false"
class="col-6 q-pr-lg" label="结束时间" /> -->
</td>
<td>
<q-input filled stack-label maxlength="20" v-model="sItem.EndTime" placeholder="09:30" :dense="false"
class="col-6 q-pr-lg" label="结束时间" />
<q-input filled stack-label maxlength="20" v-model="sItem.TimeHour"
@keyup.native="checkPrice(sItem,'TimeHour')" :dense="false" class="col-6 q-pr-lg" label="消耗课时" />
</td>
<td>
<q-btn size="10px" v-if="sIndex==0" @click="addPlanTime(nItem)" round color="primary"
......@@ -314,9 +347,9 @@
</q-select>
</div>
</div>
<div class="row wrap" style="margin-top:30px;">
<div class="row wrap">
<div class="col-12">
<q-input filled stack-label maxlength="2000" v-model="objOption.InnerRemark" :dense="false"
<q-input filled type="textarea" :rows="3" stack-label maxlength="2000" v-model="objOption.InnerRemark" :dense="false"
class="col-12 q-pr-lg q-pb-lg" label="对内备注" />
</div>
</div>
......
......@@ -90,13 +90,13 @@
<q-tab :ripple="false" name="fourth" label="班级日志" />
</q-tabs>
<div v-if="tabCheck=='first'" style="margin:0 15px;">
 <classstuForm :seting-obj="setingObj"></classstuForm>
 <classstuForm :seting-obj="setingObj" :isShowMyBtn="isShowMyBtn"></classstuForm>
</div>
<div v-if="tabCheck=='second'">
 <lessForm :seting-obj="setingObj"></lessForm>
 <lessForm :seting-obj="setingObj" :isShowMyBtn="isShowMyBtn"></lessForm>
</div>
<div v-if="tabCheck=='third'">
<recordForm :seting-obj="setingObj"></recordForm>
<recordForm :seting-obj="setingObj" :isShowMyBtn="isShowMyBtn"></recordForm>
</div>
<div v-if="tabCheck=='fourth'">
<classlogForm :seting-obj="setingObj"></classlogForm>
......@@ -122,6 +122,10 @@
setingObj: {
type: Object,
default: null
},
isShowEditBtn:{
type: Number,
default: null
}
},
components: {
......@@ -136,6 +140,7 @@
tabCheck: 'first', //默认选第一个
loading: false,
classObj:{},
isShowMyBtn:0
}
},
created() {
......@@ -151,6 +156,10 @@
},
mounted() {
// this.queryClassInfo();
console.log(this.isShowEditBtn,'this.isShowEditBtn');
if(this.isShowEditBtn==1){
this.isShowMyBtn=1
}
},
methods: {
queryClassInfo() {
......
<template>
<div>
<div style="text-align:right;">
<q-btn outline color="black" label="退课" @click="dropClass()" size="12px" style="margin-right:20px;">
<q-popup-proxy>
<q-banner v-if="isShowDropPop">
<div class="dropClassDialog">
<div style="margin:10px 0 15px 0;">退课</div>
</div>
<q-input square filled v-model="dropMsg.DropOutRemark" borderless label="退课原因" ref="reason" type="textarea"
counter :rules="[val => !!val || '请填写退课原因']" maxlength="200" />
<div class="drop_NameDown">
<q-chip v-for="(item,index) in selectedStudent" :key="index">
<q-avatar rounded size="sm" v-if="item.UserIcon">
<img :src="item.UserIcon" />
</q-avatar>
<q-avatar rounded size="sm" color="teal-10" text-color="white" v-if="!item.UserIcon">
{{item.GuestName[0]}}</q-avatar>
{{item.GuestName}}
</q-chip>
</div>
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="isShowDropPop=false" />
<q-btn label="确认" color="accent q-px-md" style="font-weight:400 !important" @click="saveDrop()" />
</q-card-actions>
</q-banner>
</q-popup-proxy>
</q-btn>
<q-btn color="primary" class="q-mr-md" size="12px" icon="add" label="邀请新学员" @click="ishowInvit=true">
<q-popup-proxy>
<q-banner v-if="ishowInvit">
<div class="dropClassDialog">
<div style="margin:10px 0 15px 0;">邀请新学员</div>
</div>
<div class="drop_NameDown">
<q-select filled stack-label use-input input-debounce="0" option-value="StuId" option-label="StuName"
v-model="checkedStudent" :options="InvitationList" label="选择学员" :dense="false" emit-value map-options
@filter="filterFn">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<q-card-actions align="right" class="bg-white" style="margin-top:20px;">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="ishowInvit=false" />
<q-btn label="确认" color="accent q-px-md" style="font-weight:400 !important" @click="saveStudent()" />
</q-card-actions>
</q-banner>
</q-popup-proxy>
</q-btn>
<template v-if="isShowBtn">
<q-btn outline color="black" label="退课" @click="dropClass()" size="12px" style="margin-right:20px;">
<q-popup-proxy>
<q-banner v-if="isShowDropPop">
<div class="dropClassDialog">
<div style="margin:10px 0 15px 0;">退课</div>
</div>
<q-input square filled v-model="dropMsg.DropOutRemark" borderless label="退课原因" ref="reason" type="textarea"
counter :rules="[val => !!val || '请填写退课原因']" maxlength="200" />
<div class="drop_NameDown">
<q-chip v-for="(item,index) in selectedStudent" :key="index">
<q-avatar rounded size="sm" v-if="item.UserIcon">
<img :src="item.UserIcon" />
</q-avatar>
<q-avatar rounded size="sm" color="teal-10" text-color="white" v-if="!item.UserIcon">
{{item.GuestName[0]}}</q-avatar>
{{item.GuestName}}
</q-chip>
</div>
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="isShowDropPop=false" />
<q-btn label="确认" color="accent q-px-md" style="font-weight:400 !important" @click="saveDrop()" />
</q-card-actions>
</q-banner>
</q-popup-proxy>
</q-btn>
<q-btn color="primary" class="q-mr-md" size="12px" icon="add" label="邀请新学员" @click="ishowInvit=true">
<q-popup-proxy>
<q-banner v-if="ishowInvit">
<div class="dropClassDialog">
<div style="margin:10px 0 15px 0;">邀请新学员</div>
</div>
<div class="drop_NameDown">
<q-select filled stack-label use-input input-debounce="0" option-value="StuId" option-label="StuName"
v-model="checkedStudent" :options="InvitationList" label="选择学员" :dense="false" emit-value map-options
@filter="filterFn">
<template v-slot:no-option>
<q-item>
<q-item-section class="text-grey">
未找到相关数据
</q-item-section>
</q-item>
</template>
</q-select>
</div>
<q-card-actions align="right" class="bg-white" style="margin-top:20px;">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="ishowInvit=false" />
<q-btn label="确认" color="accent q-px-md" style="font-weight:400 !important" @click="saveStudent()" />
</q-card-actions>
</q-banner>
</q-popup-proxy>
</q-btn>
</template>
</div>
<q-table :loading="loading" no-data-label="暂无相关数据" style="margin-bottom:80px;" flat selection="multiple"
:selected.sync="selectedStudent" class="sticky-column-table" separator="none" title="学员信息" :data="studentList"
......@@ -59,7 +61,11 @@
<template v-slot:body-cell-IsRenew="props">
<q-td auto-width :props="props">
<span style="color:red;" v-if="props.row.IsRenew==0"></span>
<span style="color:green;" v-if="props.row.IsRenew==1"></span>
<span style="color:green;" v-if="props.row.IsRenew==1">
<q-tooltip :offset="[10, 10]">
原订单:{{props.row.RenewOrderId}}
</q-tooltip>
</span>
</q-td>
</template>
<template v-slot:body-cell-GuestName="props">
......@@ -104,6 +110,10 @@
setingObj: {
type: Object,
default: null
},
isShowMyBtn: {
type: Number,
default: null
}
},
data() {
......@@ -162,7 +172,7 @@
},
{
name: 'IsRenew',
label: '续费课程',
label: '续费订单',
field: 'IsRenew',
align: 'left'
}
......@@ -191,12 +201,16 @@
InvitationList: [], //学员下拉数据
AllInvitationList: [],
checkedStudent: '', //选择学员
isShowBtn:true
}
},
created() {
},
mounted() {
if(this.isShowMyBtn==1){
this.isShowBtn=false;
}
this.getStudentData();
this.getStudentList();
},
......
This diff is collapsed.
......@@ -101,7 +101,7 @@
<el-radio-button :label="2">时间轴模式</el-radio-button>
</el-radio-group>
</div>
<div class="col-3">
<div class="col-3" v-if="isShowBtn">
<q-select filled stack-label option-value="TId" @input="changeRecord()" option-label="TeacherName"
v-model="TeacherId" ref="Teacher_Id" :options="TeacherList" label="关联教师" :dense="false" class="col-6"
emit-value map-options />
......@@ -209,6 +209,10 @@
setingObj: {
type: Object,
default: null
},
isShowMyBtn: {
type: Number,
default: null
}
},
components: {
......@@ -260,6 +264,7 @@
}
],
checkType: 1, //默认列表模式
isShowBtn:true
}
},
created() {
......@@ -267,6 +272,10 @@
},
mounted() {
this.TeacherId = this.setingObj.Teacher_Id;
if(this.isShowMyBtn==1){
this.isShowBtn=false;
}
this.getRecord();
this.GetTeacherList();
},
......
......@@ -144,9 +144,12 @@ export default {
this.$emit('close')
},
goUrlgeren(){//个人资料
// this.$router.push({
// path: '/user/personalData',
// })
this.$root.$emit("goworkobj")
this.$router.push({
path: '/user/personalData',
})
},
undefinedGongneng() {
this.$q.dialog({
......
......@@ -62,6 +62,9 @@
<td :rowspan="3" style="text-align: left">
<div class="order_OfferId" @click="goOrderdetails(item,1)">{{item.OrderId}}
</div>
<div class="order_OfferId" v-if="item.RenewOrderId&&item.RenewOrderId>0">
原订单:{{item.RenewOrderId}}
</div>
<div>{{item.EnterName}}</div>
<div style="margin-top: 10px">{{item.CreateTime}}</div>
<template v-if="AuthorityObj.isShowName">
......@@ -195,7 +198,7 @@
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
@click="editOrder(item)" />
</template>
<q-btn-dropdown flat size="xs" color="dark" label="更多" style="margin-left:10px;">
<q-btn-dropdown flat size="xs" color="dark" v-if="AuthorityObj.isShowMore" label="更多" style="margin-left:10px;">
<q-list>
<q-item clickable v-close-popup>
<q-item-section @click="gostudent(item)">
......@@ -316,7 +319,8 @@
</template>
<template v-else>
<q-btn color="secondary" size="sm" @click="goContractMannage(subItem)" label="查看合同" />
<q-btn style="margin-left:5px;" v-if="subItem.ContractStatus==0" color="purple" size="sm" @click="goContractAudit(subItem)" label="提交审核" />
<q-btn style="margin-left:5px;" v-if="subItem.ContractStatus==0" color="purple" size="sm"
@click="goContractAudit(subItem)" label="提交审核" />
</template>
</td>
</tr>
......@@ -767,7 +771,7 @@
<myOrder-form v-if="isShowmyorderForm" :save-obj="myorderObjOption" @close="closeMOSaveForm"></myOrder-form>
<!--班级详情-->
<classinfo-form v-if="isShowClassInfo" :seting-obj="classObjOption" @close="closeClass" @success="refreshOrder">
<classinfo-form v-if="isShowClassInfo" :seting-obj="classObjOption" :isShowEditBtn="isShowEditBtn" @close="closeClass" @success="refreshOrder">
</classinfo-form>
<!--退课申请-->
......@@ -852,6 +856,10 @@
modityOrderType: {
type: Number,
default: 0, //1-销售修改,2-OP修改,3-总经理修改
},
isShowEditBtn:{
type: Number,
default: null
}
},
data() {
......@@ -892,6 +900,7 @@
isShowRenewClass: false, //是否显示续课按钮
isShowContract: true, //是否显示合同
isShowEdit: true, //是否显示修改订单按钮
isShowMore: true //是否显示更多下拉按钮
},
isShowEduForm: false, //是否显示新增修改合同弹窗
......@@ -991,6 +1000,9 @@
if (this.authObj.isShowEdit != null && !this.authObj.isShowEdit) {
this.AuthorityObj.isShowEdit = this.authObj.isShowEdit;
}
if(this.authObj.isShowMore != null && !this.authObj.isShowMore){
this.AuthorityObj.isShowMore = this.authObj.isShowMore
}
}
},
//关闭报价单
......@@ -1337,8 +1349,8 @@
});
},
//合同提交审核
goContractAudit(subItem){
let msg = {
goContractAudit(subItem) {
let msg = {
ContractId: subItem.ContractId,
State: 1
}
......
......@@ -28,13 +28,28 @@
<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;">
<div class="col-6 q-pr-lg q-pb-lg">
<q-uploader style="display: inline-block;height: 320px;max-width: 100%; background-repeat:no-repeat"
:style="{'background-image':'url(' + objOption.TeacherHead + ')'}" max-files="1" hide-upload-btn
@rejected="onRejected" label="教师头像" :max-file-size="5*1024*1024" accept=".jpg, image/*" auto-upload
@rejected="onRejected" label="教师头像" :max-file-size="5*1024*1024" accept=".jpg, image/*" auto-upload
:factory="uploadFile" no-thumbnails @added="getType(1)">
</q-uploader>
</div>
......@@ -145,7 +160,10 @@
BaseStuNum: 0, //带班基础人数
BaseHourFee: 0, //基础课时费
Specialty: "", //老师擅长
BaseHoursEnabled:1,//是否启用基础课时 1是
EnableTime :'',//启用时间 (存到月)
},
BaseHoursList:[{Id:0,Name:'关闭'},{Id:1,Name:'开启'}],
chooseSpecialty: [],
optionTitle: "",
schoolList: [],
......@@ -268,6 +286,9 @@
this.objOption.BaseStuNum = this.saveObj.BaseStuNum;
this.objOption.BaseHourFee = this.saveObj.BaseHourFee;
this.objOption.Specialty = this.saveObj.Specialty;
this.objOption.EnableTime = this.saveObj.EnableTime;
this.objOption.BaseHoursEnabled = this.saveObj.BaseHoursEnabled;
if (this.saveObj.ChooseSpecialty && this.saveObj.ChooseSpecialty.length > 0) {
this.chooseSpecialty = this.saveObj.ChooseSpecialty;
}
......@@ -344,6 +365,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 => {
......
This diff is collapsed.
......@@ -68,7 +68,7 @@
</div>
</div>
<div class="col" style="background: #f2f4f7;">
<q-scroll-area class="fit" :thumb-style="thumbStyle" :bar-style="barStyle" visible style="">
<q-scroll-area :thumb-style="thumbStyle" :bar-style="barStyle" visible class="fit content-scroll full-width full-height">
<router-view />
</q-scroll-area>
</div>
......@@ -178,15 +178,10 @@
if (this.userInfo && this.userInfo.MenuList) {
this.secondNavs = this.userInfo.MenuList.length > 0 ? this.userInfo.MenuList[i].SubList : []
}
// this.MsgBus.$on('add',(payload) => {
// let that= this
// that.userInfo.AccountName = payload.EmployeeName
// that.userInfo.UserIcon = payload.UserIcon
// that.userInfo.Email = payload.Email
// that.userInfo.SchoolName = payload.SchoolName
// // location.reload();
// });
this.$root.$on("goworkobj", (data)=>{
// this.setNavs(0)
this.secondNavs=[]
});
this.getLogList();
this.getMsg();
},
......@@ -307,7 +302,7 @@
<style>
@import url('~assets/css/common.css');
.full-width {
.content-scroll>.scroll>.full-width {
height: 100%;
}
......
This diff is collapsed.
This diff is collapsed.
<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-if="ActivityTitle.length==0">
暂无活动安排
</div>
<div v-if="ActivityTitle.length>0">
<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>
</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>
......@@ -479,7 +479,7 @@
//分页改变
changePage(val) {
this.msg.PageIndex = val;
this.getSchool()
this.getList()
},
getChild(deptArray) {
var tempStr = "";
......
......@@ -46,9 +46,9 @@
height="75px"
class=" text-white shadow-1 rounded-borders"
arrows
control-color="grey-4"
control-color="grey-1"
control-text-color="primary"
control-type="regular"
control-type="unelevated"
>
<q-carousel-slide v-for="(slide,slideIndex) in _item.TimeList" :key="slideIndex" :name="slideIndex" >
<div class="info-box">
......
<style>
</style>
<template>
<div>
<el-collapse v-if="dayData&&dayData.SubList&&dayData.SubList.length>0">
<el-collapse-item v-for="(subItem,subIndex) in dayData.SubList" :key="subIndex" :name="subIndex">
<template slot="title">
<div class="plan_Tdiv">
<span v-if="subItem.TimeStr==='早上'" class="commonTimeStr greenTime">{{subItem.TimeStr}}</span>
<span v-if="subItem.TimeStr==='下午'" class="commonTimeStr blueTime">{{subItem.TimeStr}}</span>
<span v-if="subItem.TimeStr==='晚上'" class="commonTimeStr orangeTime">{{subItem.TimeStr}}</span>
<span v-if="subItem.Type===0&&subItem.ClassType==2">试听课</span>
<span style="color:red;margin:0 5px;">{{subItem.TeacherName}}</span>
<span>[{{subItem.RoomName}}]</span>
</div>
</template>
<div @click="goUrl(subItem)">
<div class="plan_Inner">
<div class="plan_LeftTitle">上课时间:</div>
<div class="plan_RightInner">{{subItem.StartTime}}-{{subItem.EndTime}}</div>
</div>
<div class="plan_Inner" v-if="subItem.ClassName">
<div class="plan_LeftTitle">班级:</div>
<div class="plan_RightInner">{{subItem.ClassName}}</div>
</div>
<div class="plan_Inner">
<div class="plan_LeftTitle">课程名称:</div>
<div class="plan_RightInner">{{subItem.CourseName}}</div>
</div>
<div class="plan_Inner" v-if="subItem.GuestList&&subItem.GuestList.length>0">
<div class="plan_LeftTitle">学生名称:</div>
<div class="plan_RightInner">
<span style="margin-right:10px;" v-for="tItem in subItem.GuestList">{{tItem.GuestName}}</span>
</div>
</div>
<div class="plan_Inner" style="align-items:center;" v-if="subItem.CompleteProgress>=0">
<div class="plan_LeftTitle">课程进度:</div>
<div class="plan_RightInner">
<el-progress :percentage="subItem.CompleteProgress"></el-progress>
</div>
</div>
</div>
</el-collapse-item>
</el-collapse>
<div class="text-grey-6" v-else>
暂无课程安排
</div>
</div>
</template>
<script>
export default {
props: {
dayData: {
type: Object,
default: null
},
fatherMethod: {
type: Function,
default: null
}
},
data() {
return {
}
},
methods: {
goUrl(item) {
if (item.Type === 0 && item.ClassType === 1) {
this.$router.push({
path: "/classroom/courseInfo",
query: {
id: item.Id
}
})
}else if(item.Type >0){
this.$emit('unusual',item);
}
}
}
}
</script>
This diff is collapsed.
......@@ -308,7 +308,7 @@
ClassStatus: 0, //班级状态
TeacherName: '', //带班老师
CourseName: '', //学习课程
School_Id: 0, //关联校区
School_Id: -1, //关联校区
},
//班级状态
classStatusList: [],
......@@ -327,7 +327,7 @@
}
},
created() {
if (this.$route.query) {
if (this.$route.query && this.$route.query.ClassName) {
this.msg.ClassName = decodeURI(this.$route.query.ClassName)
}
this.getClassStatus();
......@@ -438,7 +438,7 @@
tempArray = [];
}
tempArray.unshift({
SId: 0,
SId: -1,
SName: "不限"
})
this.schoolList = tempArray;
......
......@@ -4,7 +4,7 @@
<div class="row col" style="justify-content: space-between;align-items: center;margin-bottom: 10px">
<div>
<template v-if="data&& data.ClassInfo">
{{data.ClassInfo.ClassName}}
{{data.ClassInfo.ClassName}} <span v-if='data.ClassInfo.ClassNo!=null' style="cursor: pointer;text-decoration: underline;" @click='gojapaneseTrain(data.ClassInfo.ClassNo)'>({{data.ClassInfo.ClassNo}})</span>
</template>
</div>
<div class="row" style="align-items: center">
......@@ -23,7 +23,7 @@
</div>
</div>
<div class="page-content">
<orderlist :dataList="dataList" ref="orderL" :authObj="authObj" :modityOrderType="2" :cancelList="CancelList"
<orderlist :dataList="dataList" ref="orderL" :authObj="authObj" :isShowEditBtn="isShowEditBtn" :modityOrderType="2" :cancelList="CancelList"
@success="refreshClassOrder"></orderlist>
</div>
</div>
......@@ -57,7 +57,10 @@
isShowManagerRemark: true, //显示总经理备注
isShowCommissionEdit: true, //显示修改提成按钮
isShowRewardEdit: true, //显示修改额外提成按钮
}
isShowEdit: true, //显示修改按钮
isShowMore: true //显示更多下拉
},
isShowEditBtn:0
}
},
created() {
......@@ -65,6 +68,11 @@
this.ClassId = this.$route.query.ClassId
this.msg.ClassId = this.ClassId;
}
if(this.$route.query.isFromMyclass&&this.$route.query.isFromMyclass==1){
this.authObj.isShowEdit=false
this.authObj.isShowMore=false
this.isShowEditBtn=1
}
this.getList();
},
mounted() {
......@@ -110,6 +118,12 @@
//刷新页面
refreshClassOrder() {
this.getList();
},
gojapaneseTrain(ClassNo){//跳转到产品列表
var tempStr = '/sale/japaneseTrain?ClassNo=' + ClassNo;
this.$router.push({
path: tempStr
});
}
}
}
......
This diff is collapsed.
......@@ -238,9 +238,10 @@
});
},
gourlteacher2(path,row,item) {
let StudentName = encodeURI(row.StudentName)
this.OpenNewUrl('/financial/'+path, {
ClassId: this.ClassId,
StudentName:row.StudentName,
StudentName:StudentName,
datetype:'2',
StartMonth:item.Month,
EndMonth:item.Month,
......
......@@ -282,7 +282,7 @@
<div class="pay_InorOut">
<div class="pay_TopTitle" style="display:flex;justify-content: space-between;align-items:center;">
<div><span class="Pay_Line"></span>收入</div>
<q-btn label="新增收款" color="accent q-px-md" size="sm" style="font-weight:400 !important;"
<q-btn label="新增收款" v-if="isShowBtn" color="accent q-px-md" size="sm" style="font-weight:400 !important;"
@click="goShoukuan(1)" />
</div>
<div class="pay_TopTitle" style="margin:15px 0 15px 20px;font-size:12px;">
......@@ -390,7 +390,7 @@
<div class="pay_TopTitle"
style="margin-top:30px;display:flex;justify-content: space-between;align-items:center;">
<div><span class="Pay_Line" style="background:#F72E52;"></span>支出</div>
<q-btn label="新增付款" color="accent q-px-md" size="sm" style="font-weight:400 !important;"
<q-btn label="新增付款" v-if="isShowBtn" color="accent q-px-md" size="sm" style="font-weight:400 !important;"
@click="goShoukuan(2)" />
</div>
<div class="pay_TopTitle" style="margin:15px 0 15px 20px;font-size:12px;">
......@@ -467,6 +467,7 @@
School_Id: 0
},
ClassName:'',
isShowBtn:true
}
},
created() {},
......@@ -480,6 +481,9 @@
if (this.$route.query && this.$route.query.ClassName) {
this.ClassName = this.$route.query.ClassName;
}
if(this.$route.query && this.$route.query.isFromMyClass){
this.isShowBtn = false
}
this.getData();
},
methods: {
......
This diff is collapsed.
......@@ -107,6 +107,9 @@
margin-bottom:20px;
box-shadow: 0px 2px 10px 0px rgba(237, 238, 240, 0.5);
}
.qussTionTitDiv img{
width:100%;
}
</style>
<template>
<div class="questionMain">
......@@ -115,7 +118,7 @@
<div class="col-12 edit_stem">
{{objOption.QuestionTypeName}}
</div>
<div class="col-12">
<div class="col-12 qussTionTitDiv">
<div v-html="objOption.Title" @click="clickQuestion($event)"></div>
</div>
<!--单选题-->
......
This diff is collapsed.
......@@ -1425,7 +1425,7 @@
}
let userInfo = this.getLocalStorage();
if (this.$route.query.BranchId) {
this.msg.SchoolId = this.$route.query.BranchId != undefined ? this.$route.query.BranchId : '';
this.msg.SchoolId = this.$route.query.BranchId != undefined ? Number( this.$route.query.BranchId ): '';
} else {
if (userInfo.School_Id > 0) {
......
......@@ -105,13 +105,13 @@
<el-table-column prop="UserName" label="销售" > </el-table-column>
<el-table-column width='170' prop="ClassName" label="班级信息" >
<template slot-scope="scope">
<div>{{scope.row.ClassName}} {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div>
<div><span style="cursor: pointer;text-decoration: underline;" @click="goUrlclass('/course/classManage',scope.row.ClassName)">{{scope.row.ClassName}}</span> {{scope.row.ClassTypeName}}<span style="color: #409EFF;" v-if='scope.row.IsContinueClass==1'>(续)</span></div>
<div>学生数量:{{scope.row.StudentCount}}</div>
</template>
</el-table-column>
<el-table-column prop="OrderId" label="订单号" >
<template slot-scope="scope">
<div style="cursor: pointer;" >{{scope.row.OrderId}} </div>
<div style="cursor: pointer;text-decoration: underline;" @click="goUrlorderList('/sale/orderStatistics',scope.row.OrderId)">{{scope.row.OrderId}} </div>
</template>
</el-table-column>
......@@ -394,7 +394,18 @@
tcexport(){//导出
var msg = JSON.parse(JSON.stringify(this.msg));
EduDownLoad("/SellCommission/GetSellCommissionStatisticsToExcel", msg, "提成统计.xls")
}
},
goUrlclass(path,Names){//班级
let Name = encodeURI(Names)
this.OpenNewUrl(path, {
ClassName: Name,
});
},
goUrlorderList(path,ID){//订单跳转
this.OpenNewUrl(path, {
OrderId: ID,
});
},
},
}
......
This diff is collapsed.
This diff is collapsed.
......@@ -243,7 +243,7 @@
this.msg.ClassId = Number(this.$route.query.ClassId)
}
if(this.$route.query && this.$route.query.StudentName){
this.msg.StudentName = this.$route.query.StudentName
this.msg.StudentName = decodeURI(this.$route.query.StudentName)
}
},
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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