测试并修改

master
15004070936 3 days ago
parent a39f5672e9
commit 3e6289ab4d

@ -1,6 +1,6 @@
import request from '@/utils/request'
// 某课程 员到期日
// 某课程 员到期日
export function stuCourseDateAccountList(query) {
return request({
url: '/api/sc/accountDate/list/stuCourseDateAccountList',
@ -27,7 +27,7 @@ export function renew(data) {
})
}
// 获取各员每周期费用
// 获取各员每周期费用
export function claStudentChargeList(query) {
return request({
url: '/api/sc/accountDate/list/claStudentChargeList',

@ -1,6 +1,6 @@
import request from '@/utils/request'
// 某课程 员到期日
// 某课程 员到期日
export function stuCourseHourAccountList(query) {
return request({
url: '/api/sc/accountHour/list/stuCourseHourAccountList',
@ -18,7 +18,7 @@ export function hourPay(data) {
})
}
// 获取各员费用,剩余课时
// 获取各员费用,剩余课时
export function claStudentChargeList(query) {
return request({
url: '/api/sc/accountHour/list/claStudentChargeList',

@ -1,6 +1,6 @@
import request from '@/utils/request'
// 某课程 员到期日
// 某课程 员到期日
export function stuCourseDateAccountList(query) {
return request({
url: '/api/sc/account/list/stuCourseDateAccountList',

@ -52,7 +52,7 @@ export function delCla(claId) {
}
// 课程 预约员列表
// 课程 预约员列表
export function searchCourseClaStudent(query) {
return request({
url: '/api/sc/course/cla/list/searchCourseClaStudent',

@ -29,7 +29,7 @@ export function atClaStudentCourseStatus(studentCourseId) {
})
}
// 员报读课程列表
// 员报读课程列表
export function searchStudentCourse(query) {
return request({
url: '/api/sc/studentCourse/list/searchStudentCourse',
@ -47,7 +47,7 @@ export function searchStuCourseSignUpList(query) {
})
}
// 报读信息中 将员从班级中移除
// 报读信息中 将员从班级中移除
export function removeStuFromCla(studentCourseId) {
return request({
url: '/api/sc/studentCourse/update/removeStuFromCla/' + studentCourseId,

@ -1,61 +0,0 @@
import request from '@/utils/request'
// 查询列表
export function listStaff(query) {
return request({
url: '/api/sys/staff/list/searchList',
method: 'get',
params: query
})
}
// select
export function select() {
return request({
url: '/api/sys/staff/list/teacherSelect',
method: 'get'
})
}
// 查询详细
export function getStaff(staffId) {
return request({
url: '/api/sys/staff/info/detailById/' + staffId,
method: 'get'
})
}
// 新增
export function addStaff(data) {
return request({
url: '/api/sys/staff/add/addSysStaff',
method: 'post',
data: data
})
}
// 修改
export function updateStaff(data) {
return request({
url: '/api/sys/staff/update/updateSysStaff',
method: 'put',
data: data
})
}
// 删除
export function delStaff(teacherId) {
return request({
url: '/api/sys/staff/delete/deleteById/' + teacherId,
method: 'delete'
})
}
// 导出
export function exportStaff(query) {
return request({
url: '/api/sys/staff/export',
method: 'get',
params: query
})
}

@ -23,9 +23,9 @@
</div>
<div class="item">
<div class="item-name required">上课教:</div>
<div class="item-name required">上课教:</div>
<div class="item-value">
<staff-select v-model="form.teacherId" :dept-id="claInfo.departId" placeholder="请选择上课教" />
<staff-select v-model="form.teacherId" :dept-id="claInfo.departId" placeholder="请选择上课教" />
</div>
</div>
<div class="item">
@ -99,7 +99,7 @@
<el-input v-model="form.memo" size="small" placeholder="备注" />
</div>
</div>
<span style="color: #999; font-size: 12px; "> * 操作顺序 先为员签到然后再上课上完的课程无法再为员签到</span>
<span style="color: #999; font-size: 12px; "> * 操作顺序 先为员签到然后再上课上完的课程无法再为员签到</span>
</div>
@ -116,14 +116,22 @@
<span style="color: #999; font-size: 12px; "> * 说明会员签到的同时系统自动划扣会员卡内次数或金额 </span>
</el-row>
<el-table ref="table" v-loading="loading" class="add-cla-time-attend-table" :height="500"
:data="claStudentList" >
<el-table
ref="table"
v-loading="loading"
class="add-cla-time-attend-table"
:height="500"
:data="claStudentList"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column align="center" prop="studentName" label="学员" fixed="left" />
<el-table-column align="center" prop="sex" label="性别" :formatter="sexFormatter" />
<el-table-column align="center" prop="phone" label="联系电话" width="120"/>
<el-table-column align="center" prop="bookStatus" label="预约状态" :formatter="bookStatusFormatter" width="100" />
<el-table-column align="center" prop="checkIn" label="是否签到" width="200" >
<el-table-column align="center" prop="studentName" label="员" fixed="left" />
<el-table-column align="center" prop="sex" label="性别" :formatter="sexFormatter" width="50"/>
<el-table-column align="center" prop="phone" label="联系电话" width="110"/>
<el-table-column align="center" prop="bookStatus" label="预约状态" :formatter="bookStatusFormatter" width="80" />
<el-table-column align="center" prop="checkIn" label="是否签到" width="190" >
<template slot-scope="scope">
<el-radio-group v-model="scope.row.checkIn" >
<el-radio :label="0">未签到</el-radio>
@ -133,35 +141,35 @@
</el-table-column>
<el-table-column align="center" prop="cardNo" label="会员卡号" width="100" />
<el-table-column align="center" prop="cardTypeName" label="卡项名称" width="100" />
<el-table-column align="center" prop="remainingCount" label="会员卡余次" width="100" />
<el-table-column align="center" prop="remainingTotalFee" label="会员卡余额" width="100" />
<el-table-column align="center" prop="remainingCount" label="会员卡余次" width="90" />
<el-table-column align="center" prop="remainingTotalFee" label="会员卡余额" width="90" />
<el-table-column align="center" prop="expiryDate" label="会员卡到期日" width="100" />
<el-table-column align="center" prop="chargeType" label="收费方式">
<template slot-scope="scope">
<span>{{ chargeTypeFormatter(scope.row) }}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="deductCnt" label="划扣次数" width="100" />
<el-table-column align="center" prop="deductFee" label="划扣金额" width="100" />
<el-table-column align="center" prop="deductCnt" label="划扣次数" width="80" />
<el-table-column align="center" prop="deductFee" label="划扣金额" width="80" />
<el-table-column align="center" prop="createTime" label="预约时间" width="100" />
<el-table-column align="center" prop="checkInTime" label="签到时间" width="100" />
<el-table-column align="center" prop="countBefore" label="划扣前次数" width="100" >
<el-table-column align="center" prop="countBefore" label="划扣前次数" width="90" >
<template slot-scope="scope">
<span>{{ scope.row.countBefore==null?'-':scope.row.countBefore}}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="countAfter" label="划扣后次数" width="100" >
<el-table-column align="center" prop="countAfter" label="划扣后次数" width="90" >
<template slot-scope="scope">
<span>{{ scope.row.countAfter==null?'-':scope.row.countAfter}}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="feeBefore" label="划扣前金额" width="100" >
<el-table-column align="center" prop="feeBefore" label="划扣前金额" width="90" >
<template slot-scope="scope">
<span>{{ scope.row.feeBefore==null?'-':scope.row.feeBefore}}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="feeAfter" label="划扣后金额" width="100" >
<el-table-column align="center" prop="feeAfter" label="划扣后金额" width="90" >
<template slot-scope="scope">
<span>{{ scope.row.feeAfter==null?'-':scope.row.feeAfter}}</span>
</template>
@ -250,9 +258,9 @@ export default {
claStudentList: [],
chargeTypeOptions: [],
sexOptions: [],
//
//
chooseStudentCourseIds: [],
//
//
studentAttendStatusForm: {},
//
@ -378,17 +386,17 @@ export default {
// 3.
if (expiryDate1.getTime() < todayStart.getTime()){
this.msgError('员:'+row.studentName+'的会员卡已过期,无法使用!')
this.msgError('员:'+row.studentName+'的会员卡已过期,无法使用!')
return ;
}
}
// remainingCount deductCnt remainingTotalFee deductFee
if (row.chargeType=='count'&&row.remainingCount<row.deductCnt){
this.msgError('员:'+row.studentName+'的会员卡余次不足,无法使用!')
this.msgError('员:'+row.studentName+'的会员卡余次不足,无法使用!')
return ;
}
if (row.chargeType=='total_fee'&&row.remainingTotalFee<row.deductFee){
this.msgError('员:'+row.studentName+'的会员卡余额不足,无法使用!')
this.msgError('员:'+row.studentName+'的会员卡余额不足,无法使用!')
return ;
}
this.chooseBookIds.push(row.bookId)
@ -396,7 +404,7 @@ export default {
}
})
if (this.chooseBookIds==null || this.chooseBookIds.length<1){
this.msgError('没有可以满足签到条件的员!')
this.msgError('没有可以满足签到条件的员!')
this.$refs.table.clearSelection();
return ;
}
@ -422,7 +430,7 @@ export default {
console.log('上课')
//
if (this.form.teacherId === undefined || this.form.teacherId === '' || this.form.teacherId === null) {
this.msgError('请选择上课教')
this.msgError('请选择上课教')
return
} else if (this.form.realClaDate === undefined || this.form.realClaDate === '' || this.form.realClaDate === null) {
this.msgError('请选择上课日期')

@ -16,9 +16,9 @@
<div class="item-value">{{ claInfo.claName }}</div>
</div>
<div class="item">
<div class="item-name required">上课教:</div>
<div class="item-name required">上课教:</div>
<div class="item-value">
<staff-select v-model="form.teacherId" :dept-id="claInfo.departId" placeholder="请选择上课教" />
<staff-select v-model="form.teacherId" :dept-id="claInfo.departId" placeholder="请选择上课教" />
</div>
</div>
<div class="item">
@ -97,14 +97,22 @@
<el-row :gutter="10" class="mb8" style="margin-top: 10px;">
<span style="color: #999; font-size: 12px; "> * 说明会员签到的同时系统自动划扣会员卡内次数或金额 先签到后上课</span>
</el-row>
<el-table ref="table" v-loading="loading" class="add-cla-time-attend-table" :height="500"
:data="claStudentList" >
<el-table
ref="table"
v-loading="loading"
class="add-cla-time-attend-table"
:height="500"
:data="claStudentList"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column align="center" prop="studentName" label="学员" fixed="left" />
<el-table-column align="center" prop="sex" label="性别" :formatter="sexFormatter" />
<el-table-column align="center" prop="phone" label="联系电话" width="120"/>
<el-table-column align="center" prop="bookStatus" label="预约状态" :formatter="bookStatusFormatter" width="100" />
<el-table-column align="center" prop="checkIn" label="是否签到" width="200" >
<el-table-column align="center" prop="studentName" label="员" fixed="left" />
<el-table-column align="center" prop="sex" label="性别" :formatter="sexFormatter" width="50" />
<el-table-column align="center" prop="phone" label="联系电话" width="110"/>
<el-table-column align="center" prop="bookStatus" label="预约状态" :formatter="bookStatusFormatter" width="80" />
<el-table-column align="center" prop="checkIn" label="是否签到" width="190" >
<template slot-scope="scope">
<el-radio-group v-model="scope.row.checkIn" >
<el-radio :label="0">未签到</el-radio>
@ -114,35 +122,35 @@
</el-table-column>
<el-table-column align="center" prop="cardNo" label="会员卡号" width="100" />
<el-table-column align="center" prop="cardTypeName" label="卡项名称" width="100" />
<el-table-column align="center" prop="remainingCount" label="会员卡余次" width="100" />
<el-table-column align="center" prop="remainingTotalFee" label="会员卡余额" width="100" />
<el-table-column align="center" prop="remainingCount" label="会员卡余次" width="90" />
<el-table-column align="center" prop="remainingTotalFee" label="会员卡余额" width="90" />
<el-table-column align="center" prop="expiryDate" label="会员卡到期日" width="100" />
<el-table-column align="center" prop="chargeType" label="收费方式">
<template slot-scope="scope">
<span>{{ chargeTypeFormatter(scope.row) }}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="deductCnt" label="划扣次数" width="100" />
<el-table-column align="center" prop="deductFee" label="划扣金额" width="100" />
<el-table-column align="center" prop="deductCnt" label="划扣次数" width="80" />
<el-table-column align="center" prop="deductFee" label="划扣金额" width="80" />
<el-table-column align="center" prop="createTime" label="预约时间" width="100" />
<el-table-column align="center" prop="checkInTime" label="签到时间" width="100" />
<el-table-column align="center" prop="countBefore" label="划扣前次数" width="100" >
<el-table-column align="center" prop="countBefore" label="划扣前次数" width="90" >
<template slot-scope="scope">
<span>{{ scope.row.countBefore==null?'-':scope.row.countBefore}}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="countAfter" label="划扣后次数" width="100" >
<el-table-column align="center" prop="countAfter" label="划扣后次数" width="90" >
<template slot-scope="scope">
<span>{{ scope.row.countAfter==null?'-':scope.row.countAfter}}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="feeBefore" label="划扣前金额" width="100" >
<el-table-column align="center" prop="feeBefore" label="划扣前金额" width="90" >
<template slot-scope="scope">
<span>{{ scope.row.feeBefore==null?'-':scope.row.feeBefore}}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="feeAfter" label="划扣后金额" width="100" >
<el-table-column align="center" prop="feeAfter" label="划扣后金额" width="90" >
<template slot-scope="scope">
<span>{{ scope.row.feeAfter==null?'-':scope.row.feeAfter}}</span>
</template>
@ -210,11 +218,11 @@ export default {
},
chargeTypeOptions: [],
sexOptions: [],
//
//
chooseStudentCourseIds: [],
//
attendStatusOptions: [],
//
//
studentAttendStatusForm: {},
//
@ -314,7 +322,7 @@ export default {
bookStatusFormatter(row, column) {
return selectDictLabel(this.bookStatusOptions, row.bookStatus)
},
// ,
// ,
loadCourseClaStudentAndAttendDetail() {
this.loading = true
let claStudentList = []

@ -18,7 +18,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="原教:">
<el-form-item label="原教:">
<el-input :value="oldTimeInfo.staffName" readonly disabled size="small" />
</el-form-item>
</el-col>
@ -82,13 +82,13 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="任课教:" prop="teacherId">
<staff-select v-model="form.teacherId" placeholder="请选择上课教" />
<el-form-item label="任课教:" prop="teacherId">
<staff-select v-model="form.teacherId" placeholder="请选择上课教" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教室:" prop="roomId">
<room-select v-model="form.roomId" :dept-id="form.deptId" placeholder="请选择教" />
<room-select v-model="form.roomId" :dept-id="form.deptId" placeholder="请选择教" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -112,7 +112,6 @@ import deptSelect from '@/components/system/dept/deptSelect'
import moment from 'moment'
import { addTime, claTimeInfo, updateTime } from '@/api/school/sc/cla/claTime'
import { getCla } from '@/api/school/sc/cla'
import {select as teacherSelect} from "@/api/school/system/staff";
export default {
components: {
@ -140,7 +139,6 @@ export default {
},
//
canChangeCla: true,
teacherOptions:[],
}
},
computed: {
@ -156,22 +154,14 @@ export default {
{ required: true, message: '下课时间不能为空', trigger: 'blur' }
],
teacherId: [
{ required: true, message: '任课教不能为空', trigger: 'blur' }
{ required: true, message: '任课教不能为空', trigger: 'blur' }
]
}
}
},
watch: {
},
created() {
this.getTeacherOptions()
},
methods: {
getTeacherOptions() {
teacherSelect().then(response => {
this.teacherOptions = response.data
})
},
afterNow(date) {
return moment(date).add(1, 'days').toDate().getTime() < new Date().getTime()
},

@ -117,23 +117,8 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="任课教师:" prop="teacherId">
<staff-select v-model="form.teacherId" :dept-id="form.deptId" placeholder="请选择上课教师" />
<!-- <el-select-->
<!-- v-model="form.teacherId"-->
<!-- filterable-->
<!-- allow-create-->
<!-- placeholder="选择上课教师"-->
<!-- clearable-->
<!-- default-first-option-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="teacher in teacherOptions"-->
<!-- :key="teacher.userId"-->
<!-- :label="teacher.nickName"-->
<!-- :value="teacher.userId"-->
<!-- />-->
<!-- </el-select>-->
<el-form-item label="任课教练:" prop="teacherId">
<staff-select v-model="form.teacherId" :dept-id="form.deptId" placeholder="请选择上课教练" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -149,7 +134,7 @@
<el-col :span="12">
<el-form-item label="教室:" prop="roomId">
<room-select v-model="form.roomId" :dept-id="form.deptId" placeholder="请选择教" />
<room-select v-model="form.roomId" :dept-id="form.deptId" placeholder="请选择教" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -158,7 +143,7 @@
</el-form-item>
</el-col>
</el-row>
<span style="color: #999; font-size: 12px;">{{form.ruleId?'* 说明:本操作会同时修改未上课且无员预约/预约失败/取消预约的相关课表信息,已经上完的课程不会被修改;':''}}</span>
<span style="color: #999; font-size: 12px;">{{form.ruleId?'* 说明:本操作会同时修改未上课且无员预约/预约失败/取消预约的相关课表信息,已经上完的课程不会被修改;':''}}</span>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button :loading="loadingChange" type="primary" @click="submitForm"> </el-button>
@ -174,7 +159,6 @@ import staffSelect from '@/components/system/staff/staffSelect'
import roomSelect from '@/components/sc/base/roomSelect'
import moment from 'moment'
import { addRule, getRule, updateRule } from '@/api/school/sc/cla/claTimeRule'
import {select as teacherSelect} from "@/api/school/system/staff";
let that
export default {
components: {
@ -209,7 +193,6 @@ export default {
form: {
atClassCnt:20
},
teacherOptions:[],
isIndeterminate: true,
checkAllWeekDay: false,
beginDatePickerOptions: {
@ -254,19 +237,23 @@ export default {
trigger: "blur"
}
],
endTime: [
{ required: true, message: '下课时间不能为空', trigger: 'blur' },
{
pattern: /^([01]?[0-9]|2[0-3]):([0-5][0-9])$/,
message: "时间格式应为HH:mm",
trigger: "blur"
}
],
// endTime: [
// { required: true, message: '', trigger: 'blur' },
// {
// pattern: /^([01]?[0-9]|2[0-3]):([0-5][0-9])$/,
// message: "HH:mm",
// trigger: "blur"
// }
// ],
teacherId: [
{ required: true, message: '任课教不能为空', trigger: 'blur' }
{ required: true, message: '任课教不能为空', trigger: 'blur' }
],
claDuration: [
{ required: true, message: '课程时长不能为空', trigger: ['blur','change'] }
{
pattern: /^[1-9]\d*$/,
message: '请输入正整数',
trigger: ['blur','change']
}
],
atClassCnt: [
{ required: true, message: '最多预约人数不能为空', trigger: ['blur','change'] }
@ -323,14 +310,8 @@ export default {
this.weekDayOptions = response.data
})
that = this
this.getTeacherOptions()
},
methods: {
getTeacherOptions() {
teacherSelect().then(response => {
this.teacherOptions = response.data
})
},
//
repeatTypeFormat(row, column) {
return selectDictLabel(this.repeatTypeOptions, row.repeatType)

@ -2,9 +2,10 @@
<template>
<div>
<el-table v-loading="loading" :data="dataList">
<el-table-column align="center" prop="studentName" label="员" fixed="left" />
<el-table-column align="center" prop="studentName" label="员" fixed="left" />
<el-table-column align="center" prop="claName" label="班级" show-overflow-tooltip />
<el-table-column align="center" prop="teacherName" label="教师" show-overflow-tooltip />
<el-table-column align="center" prop="cardNo" label="卡号" show-overflow-tooltip />
<el-table-column align="center" prop="teacherName" label="教练" show-overflow-tooltip />
<el-table-column align="center" prop="realClaDate" label="上课日期" width="120">
<template slot-scope="scope">
<el-tooltip effect="dark" :content="scope.row.realClaDate + ' ('+scope.row.realStartTime.substr(0,5) + '~' + scope.row.realEndTime.substr(0,5)+')'" placement="top">

@ -12,7 +12,7 @@
</el-col>
</el-row>
<el-table v-loading="loading" :data="dataList">
<el-table-column align="center" prop="staffName" label="教" fixed="left" />
<el-table-column align="center" prop="staffName" label="教" fixed="left" />
<el-table-column align="center" prop="roomName" label="教室" />
<el-table-column align="center" prop="realClaDate" label="上课日期" width="120">
<template slot-scope="scope">

@ -121,8 +121,10 @@
<div class="item"><i class="el-icon-notebook-1" />日期 {{ claTime.claDate }}</div>
<div class="item"><i class="el-icon-mouse" />星期{{ claTime.weekDay }}</div>
<div class="item"><i class="el-icon-paperclip" />时间 {{ claTime.startTime }} ~ {{ claTime.endTime }}</div>
<div class="item"><i class="el-icon-data-analysis" />教师 {{ claTime.staffName }}</div>
<div class="item"><i class="el-icon-place" />学员 {{ claTime.studentCount }}</div>
<div class="item"><i class="el-icon-data-analysis" />教练 {{ claTime.staffName }}</div>
<div class="item"><i class="el-icon-data-analysis" />最少开课人数{{ claTime.lessCnt }}</div>
<div class="item"><i class="el-icon-data-analysis" />最多预约人数{{ claTime.atClassCnt }}</div>
<div class="item"><i class="el-icon-place" />预约会员 {{ claTime.studentCount }}</div>
<div class="item"><i class="el-icon-guide" />教室 {{ claTime.roomName }}</div>
</div>
</div>
@ -160,8 +162,10 @@
<div class="item"><i class="el-icon-notebook-1" />日期 {{ claTime.claDate }}</div>
<div class="item"><i class="el-icon-mouse" />星期{{ claTime.weekDay }}</div>
<div class="item"><i class="el-icon-paperclip" />时间 {{ claTime.startTime }} ~ {{ claTime.endTime }}</div>
<div class="item"><i class="el-icon-data-analysis" />教师 {{ claTime.staffName }}</div>
<div class="item"><i class="el-icon-place" />学员 {{ claTime.studentCount }}</div>
<div class="item"><i class="el-icon-data-analysis" />教练 {{ claTime.staffName }}</div>
<div class="item"><i class="el-icon-data-analysis" />最少开课人数{{ claTime.lessCnt }}</div>
<div class="item"><i class="el-icon-data-analysis" />最多预约人数{{ claTime.atClassCnt }}</div>
<div class="item"><i class="el-icon-place" />预约会员 {{ claTime.studentCount }}</div>
<div class="item"><i class="el-icon-guide" />教室 {{ claTime.roomName }}</div>
</div>
</div>
@ -239,7 +243,7 @@ export default {
type: Boolean,
default: false
},
//
//
needStudentIdParam: {
type: Boolean,
default: false

@ -19,9 +19,8 @@
<el-form-item label="班级:" prop="claId">
<cla-select v-model="queryParams.claId" :dept-id="queryParams.deptId" clearable mounted-load-all />
</el-form-item>
<el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -35,11 +34,11 @@
</el-table-column>
<el-table-column align="center" width="180" prop="courseName" label="课程" />
<el-table-column align="center" width="180" prop="claName" label="上课班级" />
<el-table-column align="center" width="180" prop="staffName" label="上课教" />
<el-table-column align="center" width="180" prop="staffName" label="上课教" />
<el-table-column align="center" width="100" prop="bookAttendCnt" label="预约人数" />
<el-table-column align="center" width="100" prop="realAttendCnt" label="签到人数" />
<el-table-column align="center" width="70" prop="lessCnt" label="最少开课人数" />
<el-table-column align="center" width="70" prop="atClassCnt" label="最多预约人数" />
<el-table-column align="center" width="120" prop="lessCnt" label="最少开课人数" />
<el-table-column align="center" width="120" prop="atClassCnt" label="最多预约人数" />
<el-table-column align="center" prop="status" label="状态">
<template slot-scope="scope">
@ -47,7 +46,7 @@
<el-tag v-else-if="scope.row.status === '2'">已上课</el-tag>
</template>
</el-table-column>
<el-table-column width="150" label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<el-table-column width="200" label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button
v-if="scope.row.status === '1'"
@ -62,7 +61,7 @@
type="text"
icon="el-icon-edit-outline"
@click="handleUpdateHadAttend(scope.row)"
>编辑</el-button>
>详情</el-button>
<el-button
v-if="scope.row.status === '1'"
size="mini"

@ -19,13 +19,17 @@
<el-form-item label="班级:" prop="claId">
<cla-select v-model="queryParams.claId" :dept-id="queryParams.deptId" clearable mounted-load-all />
</el-form-item>
<el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange" border :header-cell-style="{'text-align': 'center'}">
<el-table
v-loading="loading"
:data="dataList"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align': 'center'}">
<el-table-column type="selection" width="55" align="center" />
<el-table-column align="center" width="180" prop="realClaDate" label="上课时间" fixed="left">
<template slot-scope="scope">
@ -34,7 +38,7 @@
</el-table-column>
<el-table-column align="center" width="180" prop="claName" label="上课班级" />
<el-table-column align="center" width="180" prop="courseName" label="所属课程" />
<el-table-column align="center" width="180" prop="staffName" label="上课教" />
<el-table-column align="center" width="180" prop="staffName" label="上课教" />
<el-table-column align="center" width="180" prop="needAttendCnt" label="预约/实到">
<template slot-scope="scope">
<el-tooltip effect="dark" placement="top">
@ -58,7 +62,7 @@
<span> {{ scope.row.payTotalFee }} </span>
</template>
</el-table-column>
<el-table-column width="180" label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
<template slot-scope="scope">
<el-button
v-hasPermi="['sc:claTime:update']"

@ -12,7 +12,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="课程类别:" prop="courseTypeId">
<el-form-item label="课程类别:" prop="courseTypeId" >
<div class="select-with-btn-container">
<el-select
v-model="form.courseTypeId"
@ -21,6 +21,7 @@
filterable
default-first-option
:loading="loadingSelect"
:disabled="form.courseId!=undefined"
>
<el-option
v-for="item in courseTypeOptions"
@ -29,31 +30,15 @@
:value="item.courseTypeId"
/>
</el-select>
<el-button type="primary" icon="el-icon-plus" size="small" @click="handleAddCourseType" />
<el-button type="primary" icon="el-icon-plus" size="small" @click="handleAddCourseType" :disabled="form.courseId!=undefined"/>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="上课模式:" prop="teachingMode" class="align-left">
<el-radio-group v-model="form.teachingMode">
<el-radio label="1">班课</el-radio>
<el-radio label="2">一对一</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="课程价值:" prop="tuitionFee">
<el-input v-model="form.tuitionFee" placeholder="请输入课程价值(元/节)" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="上课校区:" prop="courseCampus" class="align-left">
<el-radio-group v-model="form.courseCampus">
<el-radio-group v-model="form.courseCampus" :disabled="form.courseId!=undefined">
<el-radio
v-for="item in courseCampus"
:key="item.id"
@ -64,18 +49,35 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教练课时费:" prop="claFee">
<el-input v-model="form.claFee" placeholder="请输入课时费金额(元/节)" />
<el-form-item label="上课模式:" prop="teachingMode" class="align-left">
<el-radio-group v-model="form.teachingMode">
<el-radio label="1">班课</el-radio>
<el-radio label="2">一对一</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="form.courseCampus ==='部分校区'">
<el-form-item label="选择校区:" prop="partCampus" class="align-left">
<el-checkbox-group v-model="form.partCampus">
<el-checkbox-group v-model="form.partCampus" :disabled="form.courseId!=undefined">
<el-checkbox v-for="(item) in campusOptions" :key="item.id" :label="item.id" name="partCampus">{{ item.label }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="课程价值:" prop="tuitionFee">
<el-input v-model="form.tuitionFee" placeholder="请输入课程价值(元/节)" />
<span style="color: #999; font-size: 12px; "></span>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教练课时费:" prop="claFee">
<el-input v-model="form.claFee" placeholder="请输入课时费金额(元/节)" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="课程简介:" prop="courseIntro">
@ -113,7 +115,7 @@ export default {
loadingChange: false,
//
form: {
courseCampus: undefined,
courseCampus: '全部校区',
claFee:0.0,
tuitionFee:0.00,
teachingMode: '1',
@ -125,10 +127,22 @@ export default {
courseName: [
{ required: true, message: '课程名称不能为空', trigger: 'blur' }
],
courseTypeId: [
{ required: true, message: '请选择课程类别', trigger: 'change' }
],
teachingMode: [
{ required: true, message: '请选择上课模式', trigger: 'blur' }
],
// tuitionFee: [
// { required: true, message: '', trigger: 'blur' },
// {
// pattern: /^\d+(\.\d{1,2})?$/,
// message: '2',
// trigger: 'blur'
// },
// ],
claFee: [
{ required: true, message: '请输入教练课时费', trigger: 'blur' },
{
pattern: /^\d+(\.\d{1,2})?$/,
message: '请输入数字且最多保留2位小数',
@ -215,7 +229,7 @@ export default {
},
reset() {
this.form = {
courseCampus: undefined,
courseCampus: '全部校区',
teachingMode: '1',
partCampus: []
}

@ -24,8 +24,8 @@
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="任课教:" prop="staffId">
<staff-select v-model="form.staffId" :dept-id="chooseDepartId" placeholder="请选择上课教" />
<el-form-item label="任课教:" prop="staffId">
<staff-select v-model="form.staffId" :dept-id="chooseDepartId" placeholder="请选择上课教" />
</el-form-item>
</el-col>
@ -98,7 +98,6 @@
<script>
import chooseCourse from '@/components/sc/course/chooseCourse'
import { addCla, updateCla } from '@/api/school/sc/cla'
import { select as teacherSelect } from '@/api/school/system/staff'
import staffSelect from '@/components/system/staff/staffSelect'
import moment from 'moment'
export default {
@ -134,8 +133,6 @@ export default {
],
},
recruitStatusOptions: [],
//
teacherOptions: [],
//
chooseCourseInfo: {},
//
@ -145,7 +142,6 @@ export default {
}
},
created() {
this.getTeacherOptions()
this.recruitStatusOptions = [
{
"dictLabel": "开放",
@ -162,11 +158,6 @@ export default {
]
},
methods: {
getTeacherOptions() {
teacherSelect().then(response => {
this.teacherOptions = response.data
})
},
submitForm: function() {
this.form.courseId = this.chooseCourseInfo.courseId
this.form.departId = this.chooseDepartId

@ -23,7 +23,7 @@
<span class="option">{{ item.claName }}({{ item.deptName }})</span>
</div>
<!-- <div class="inline-block staffName">-->
<!-- <span class="title">:</span>-->
<!-- <span class="title">:</span>-->
<!-- <span class="option">{{ item.staffName }}</span>-->
<!-- </div>-->
<div class="inline-block recruitStatus">
@ -62,11 +62,11 @@ export default {
type: Boolean,
default: false
},
//
mountedLoadAll: {
type: Boolean,
default: false
}
// //
// mountedLoadAll: {
// type: Boolean,
// default: false
// }
},
data() {
return {
@ -117,10 +117,11 @@ export default {
}
},
mounted() {
if (this.mountedLoadAll && this.claList.length === 0) {
this.pageNum = 1
this.loadCla()
}
this.loadCla()
// if (this.mountedLoadAll && this.claList.length === 0) {
// this.pageNum = 1
// this.loadCla()
// }
},
methods: {
loadCla: function() {

@ -9,6 +9,13 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="排序" prop="sort">
<el-input v-model="form.sort" placeholder="请填写课程类型排序" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="课程类型说明:" prop="remark" >
@ -39,6 +46,9 @@ export default {
rules: {
courseType: [
{ required: true, message: '课程类型名不能为空', trigger: 'blur' }
] ,
sort: [
{ required: true, message: '课程类型排序不能为空', trigger: 'blur' }
]
}
}
@ -52,6 +62,7 @@ export default {
reset() {
this.form = {
courseType: '',
sort: '',
remark: ''
}
this.resetForm('form')

@ -23,11 +23,11 @@
<div class="item-value">{{ orderInfo.handleDate }}</div>
</div>
<div class="item">
<div class="item-name">:</div>
<div class="item-name">:</div>
<div class="item-value">{{ orderInfo.studentName }}</div>
</div>
<div class="item">
<div class="item-name">员电话:</div>
<div class="item-name">员电话:</div>
<div class="item-value">{{ orderInfo.phone }}</div>
</div>
<div class="item">

@ -1,12 +1,12 @@
<!--新增-->
<!--新增-->
<template>
<div>
<el-dialog :title=title :visible.sync="open" width="600px">
<el-form ref="form" :model="form" :rules="rules" label-width="90px">
<el-row>
<el-col :span="12">
<el-form-item label="员姓名:" prop="studentName">
<el-input v-model="form.studentName" placeholder="请输入员姓名" />
<el-form-item label="员姓名:" prop="studentName">
<el-input v-model="form.studentName" placeholder="请输入员姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -86,7 +86,7 @@ export default {
sexOptions: [],
rules: {
studentName: [
{ required: true, message: '员姓名不能为空', trigger: 'blur' }
{ required: true, message: '员姓名不能为空', trigger: 'blur' }
],
birthDay: [
{ required: true, message: '出生日期不能为空', trigger: 'blur' }
@ -148,7 +148,7 @@ export default {
this.loadDictInfo()
this.reset()
this.open = true
this.title = '添加员基本信息'
this.title = '添加员基本信息'
},
handleUpdate(studentId) {
this.loadDictInfo()
@ -159,7 +159,7 @@ export default {
this.contactArray = response.data.contactList
}
this.open = true
this.title = '修改员基本信息'
this.title = '修改员基本信息'
this.remark=''
})
},
@ -169,7 +169,7 @@ export default {
if (valid) {
// this.contactArray.forEach(item => {
// if (item.contactRelation === undefined || item.contactRelation === null || item.contactRelation.trim() === '') {
// this.msgError('')
// this.msgError('')
// valid = false
// } else if (item.contactPhone === undefined || item.contactPhone === null || item.contactPhone.trim() === '') {
// this.msgError('')

@ -1,17 +1,17 @@
<!-- 未选班级 选择班级-->
<template>
<div>
<el-dialog title="未选班级员" :visible.sync="open" width="700px" class="compact">
<el-dialog title="未选班级员" :visible.sync="open" width="700px" class="compact">
<div v-if="dataList.length === 0" style="padding: 0 0 10px;">
<span style="color: red;padding-right: 5px;">*</span>
<span>暂无已报名未选班</span>
<span>暂无已报名未选班</span>
<router-link to="/order/handle/signUp" class="link-type">
<span style="text-decoration: underline;">去报名</span>
</router-link>
</div>
<el-table v-else v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column align="center" prop="studentName" label="员" fixed="left" />
<el-table-column align="center" prop="studentName" label="员" fixed="left" />
<el-table-column align="center" prop="sex" label="性别" :formatter="sexFormatter" />
<el-table-column align="center" prop="phone" label="联系电话" width="120">
<template slot-scope="scope">

@ -1,4 +1,4 @@
<!-- 班级-->
<!-- 班级-->
<template>
<div>
<el-row v-if="!readonly" :gutter="10" class="mb8">
@ -8,11 +8,11 @@
icon="el-icon-plus"
size="mini"
@click="handleChooseStudent"
>添加</el-button>
>添加</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="dataList">
<el-table-column align="center" prop="studentName" label="员" fixed="left">
<el-table-column align="center" prop="studentName" label="员" fixed="left">
<template slot-scope="scope">
<router-link :to="'/edu/student/detail/' + scope.row.studentId" class="link-type">
<span>{{ scope.row.studentName }}</span>
@ -206,14 +206,14 @@ export default {
this.loading = false
})
},
//
//
handleChooseStudent() {
this.$refs.courseStudentChooseCla.handleOpen()
},
//
handleStopStudentCourseStatus(studentCourseId) {
const that = this
this.confirm('确定将本员停课?', function() {
this.confirm('确定将本员停课?', function() {
stopStudentCourseStatus(studentCourseId).then(response => {
if (response.respCode === '0000') {
that.msgSuccess('操作成功')
@ -227,7 +227,7 @@ export default {
//
handleAtClaStudentCourseStatus(studentCourseId) {
const that = this
this.confirm('确定将本员状态设置为在读?', function() {
this.confirm('确定将本员状态设置为在读?', function() {
atClaStudentCourseStatus(studentCourseId).then(response => {
if (response.respCode === '0000') {
that.msgSuccess('操作成功')
@ -238,10 +238,10 @@ export default {
})
})
},
//
//
handleRemoveStuFromCla(studentCourseId) {
const that = this
this.confirm('确定将员从本班中移除?', function() {
this.confirm('确定将员从本班中移除?', function() {
removeStuFromCla(studentCourseId).then(response => {
if (response.respCode === '0000') {
that.msgSuccess('操作成功')

@ -23,7 +23,7 @@
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dataList">
<el-table-column align="center" prop="studentName" label="员" fixed="left">
<el-table-column align="center" prop="studentName" label="员" fixed="left">
<template slot-scope="scope">
<!-- <router-link :to="'/edu/student/detail/' + scope.row.studentId" class="link-type">-->
<span>{{ scope.row.studentName }}</span>
@ -214,7 +214,7 @@ export default {
},
handleStopStudentCourseStatus(studentCourseId) {
const that = this
this.$confirm('确定将本员停课?', '提示',{}).then(()=>{
this.$confirm('确定将本员停课?', '提示',{}).then(()=>{
stopStudentCourseStatus(studentCourseId).then(response => {
if (response.respCode === '0000') {
that.msgSuccess('操作成功')
@ -228,8 +228,8 @@ export default {
//
handleAtClaStudentCourseStatus(studentCourseId) {
const that = this
// this.confirm('?', function() {
this.$confirm('确定将本员状态设置为在读?', '提示',{}).then(()=>{
// this.confirm('?', function() {
this.$confirm('确定将本员状态设置为在读?', '提示',{}).then(()=>{
atClaStudentCourseStatus(studentCourseId).then(response => {
if (response.respCode === '0000') {
that.msgSuccess('操作成功')

@ -2,7 +2,7 @@
<el-select
v-model="studentId"
v-select-load-more="loadMoreStudent"
placeholder="选择员查询相关信息"
placeholder="选择员查询相关信息"
clearable
filterable
default-first-option
@ -44,7 +44,7 @@ export default {
defaultStudentId(studentId){
this.studentId=studentId;
},
//
//
searchStudent(query) {
//
if (this.searchStudentParam.searchValue !== query) {
@ -72,7 +72,7 @@ export default {
this.searchStudentParam.pageNum = this.searchStudentParam.pageNum + 1
this.searchStudent(this.searchStudentParam.searchValue)
} else {
this.msgInfo('无更多员数据')
this.msgInfo('无更多员数据')
}
},
handleStudentChange(val) {

@ -1,12 +1,12 @@
<!-- 员列表 -->
<!-- 员列表 -->
<template>
<div>
<el-form ref="queryForm" :model="queryParams" :inline="true" label-width="80px">
<el-form-item label="员姓名:" prop="studentName">
<el-form-item label="员姓名:" prop="studentName">
<el-input
v-model="queryParams.studentName"
placeholder="请输入员姓名"
placeholder="请输入员姓名"
clearable
size="small"
@keyup.enter.native="handleQuery"
@ -33,7 +33,6 @@
</el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -69,9 +68,16 @@
</el-col>
</el-row>
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="dataList"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="studentName" label="学员姓名">
<el-table-column prop="studentName" label="员姓名">
<template slot-scope="scope">
<span>{{ scope.row.studentName }}</span>
</template>
@ -125,10 +131,10 @@
<change-student ref="changeStudent" @success="getList" />
<upload-check-import-excel ref="uploadCheckImportExcel" title="员批量导入" import-template-name="import_student_order" download-template-name="">
<upload-check-import-excel ref="uploadCheckImportExcel" title="员批量导入" import-template-name="import_student_order" download-template-name="">
<template slot="successTable" slot-scope="scope">
<el-table :data="scope.data">
<el-table-column align="center" prop="studentName" label="员姓名" fixed="left" />
<el-table-column align="center" prop="studentName" label="员姓名" fixed="left" />
<!-- <el-table-column align="center" prop="contactRelation" label="主要联系人" show-overflow-tooltip />-->
<el-table-column align="center" prop="phone" label="联系电话" show-overflow-tooltip />
<el-table-column align="center" prop="sex" label="性别" show-overflow-tooltip />
@ -153,7 +159,7 @@
</template>
<template slot="failTable" slot-scope="scope">
<el-table :data="scope.data">
<el-table-column align="center" prop="studentName" label="员姓名" fixed="left" />
<el-table-column align="center" prop="studentName" label="员姓名" fixed="left" />
<el-table-column align="center" prop="failMsg" label="失败原因" show-overflow-tooltip fixed="left" />
<!-- <el-table-column align="center" prop="contactRelation" label="主要联系人" show-overflow-tooltip />-->
<el-table-column align="center" prop="phone" label="联系电话" show-overflow-tooltip />

@ -1,423 +0,0 @@
<!-- 添加员工 -->
<template>
<el-dialog :title="title" :visible.sync="open" width="700px">
<el-form ref="form" v-loading="loadingChange" :model="form" :rules="rules" label-width="120px" class="add-form">
<div class="title top">
<div class="title-content">员工基本信息</div>
</div>
<el-row>
<el-col :span="12">
<el-form-item label="员工姓名:" prop="staffName">
<el-input v-model="form.staffName" placeholder="请输入员工姓名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="联系电话:" prop="phone">
<el-input v-model="form.phone" placeholder="请输入联系电话" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱:" prop="emailAddress">
<el-input v-model="form.emailAddress" placeholder="请输入邮箱" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="性别:" prop="sex">
<el-select v-model="form.sex" placeholder="请选择性别">
<el-option
v-for="dict in sexOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="入职日期:" prop="entryDate">
<el-date-picker
v-model="form.entryDate"
clearable
type="date"
value-format="yyyy-MM-dd"
placeholder="选择入职日期"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属部门:" prop="deptId">
<treeselect v-model="form.deptId" :options="deptOptions" placeholder="请选择归属部门" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="人事状态:" prop="personnelStatus">
<el-select
v-model="form.personnelStatus"
filterable
allow-create
placeholder="选择人事状态:"
clearable
default-first-option
>
<el-option
v-for="item in personnelStatusOptions"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="任课教师:" class="align-left">
<el-switch v-model="form.teacher" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统账号:" class="align-left">
<el-switch v-model="form.loginUser" :disabled="form.userId !== undefined" />
</el-form-item>
</el-col>
</el-row>
<div class="title top">
<div class="title-content">登录账号</div>
</div>
<el-row v-if="form.loginUser">
<el-col :span="24">
<el-form-item label="允许登录系统" prop="locked" class="align-left">
<el-radio-group v-model="form.locked">
<el-radio label="0">允许</el-radio>
<el-radio label="1">不允许</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="登录账号" prop="username">
<el-input v-model="form.username" :readonly="form.userId !== undefined" :disabled="form.userId !== undefined" placeholder="请输入用户名" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="密码" prop="password">
<el-input v-if="form.userId === undefined" v-model="form.password" placeholder="请输入密码" show-password />
<el-button v-else icon="el-icon-refresh" @click="handleResetPwd"></el-button>
</el-form-item>
</el-col>
<el-col v-if="form.userId === undefined" :span="12">
<el-form-item label="确认密码" prop="checkPass" show-password>
<el-input v-model="form.checkPass" placeholder="请输入密码" show-password />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="角色">
<el-tree
ref="role"
:data="roleOptions"
show-checkbox
node-key="id"
default-expand-all
:default-checked-keys="checkRoleIds"
empty-text="加载中,请稍后"
:props="defaultProps"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="所属校区:" prop="belongCampus" class="align-left">
<el-radio-group v-model="form.belongCampus">
<el-radio
v-for="item in belongCampus"
:key="item.id"
:label="item.id"
:value="item.id"
>{{ item.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col v-if="form.belongCampus === 'part'" :span="24">
<el-form-item label="选择校区:" prop="partCampus" class="align-left">
<el-checkbox-group v-model="form.partCampus">
<el-checkbox v-for="(item) in campusOptions" :key="item.id" :label="item.id" name="partCampus">{{ item.label }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row>
<el-row v-else>
<el-col :span="24">
暂未创建登录系统的账号,如需创建,请打开上方'系统账号'进行创建
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" :loading="loadingChange" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</template>
<script>
import { addStaff, updateStaff } from '@/api/school/system/staff'
import { checkUsernameUnique, resetUserPwd } from '@/api/school/system/user'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import { campusList, campusSelect, treeSelect } from '@/api/school/system/dept'
import { treeSelectLimitUserHasRole as roleTreeSelect } from '@/api/school/system/role/index'
import { isUsername, isPass, isSerialNumber } from '@/utils/validate'
export default {
components: { Treeselect },
data() {
const validateUsernameUnique = (rule, value, callback) => {
if (this.form.loginUser && this.form.userId === undefined) {
checkUsernameUnique(value).then(response => {
const unique = response.data
if (!unique) {
callback(new Error('该账号已被注册,请更换'))
} else {
callback()
}
})
} else {
callback()
}
}
const validateSerialNumber = (rule, value, callback) => {
if (!isSerialNumber(value)) {
callback(new Error('请输入正确的手机号码'))
} else {
callback()
}
}
return {
title: '',
open: false,
loadingChange: false,
//
sexOptions: [],
//
personnelStatusOptions: [],
//
deptOptions: [],
//
roleOptions: undefined,
defaultProps: {
children: 'children',
label: 'label'
},
//
form: {},
baseRule: {
staffName: [
{ required: true, message: '员工姓名不能为空', trigger: 'blur' }
],
phone: [
{ required: true, message: '联系电话不能为空', trigger: 'blur' },
{ validator: validateSerialNumber, trigger: 'blur' }
],
emailAddress: [
{ required: true, message: '邮箱不能为空', trigger: 'blur' }
],
sex: [
{ required: true, message: '性别 不能为空', trigger: 'blur' }
],
entryDate: [
{ required: true, message: '入职日期不能为空', trigger: 'blur' }
],
personnelStatus: [
{ required: true, message: '请选择人事状态', trigger: 'blur' }
]
},
checkRoleIds: [],
validateUsernameUnique: validateUsernameUnique,
campusOptions: [],
belongCampus: []
}
},
computed: {
rules() {
const validatePass = (rule, value, callback) => {
if (!this.form.loginUser) {
callback()
return
}
if (value === undefined || value === '') {
callback(new Error('请输入密码'))
} else if (!isPass(value)) {
callback(new Error('最少6位,包含大小写字母和特殊字符'))
} else {
if (this.form.checkPass !== '' && this.form.checkPass !== undefined) {
this.$refs.form.validateField('checkPass')
}
callback()
}
}
const validateCheckPass = (rule, value, callback) => {
if (!this.form.loginUser) {
callback()
return
}
if (value === undefined || value === '') {
callback(new Error('请再次输入密码'))
} else if (value !== this.form.password) {
callback(new Error('两次输入密码不一致!'))
} else {
callback()
}
}
const validateUsername = (rule, value, callback) => {
if (!this.form.loginUser) {
callback()
return
}
if (value === undefined || value === '') {
callback(new Error('请输入账号'))
} else if (!isUsername(value)) {
callback(new Error('4到16位(字母,数字,下划线)'))
} else {
callback()
}
}
if (this.form.userId === undefined && this.form.loginUser) {
return Object.assign({}, this.baseRule, {
locked: [
{ required: true, message: '请选择是否允许登录系统', trigger: 'blur' }
],
username: [
{ validator: validateUsername, trigger: 'blur' },
{ validator: this.validateUsernameUnique, trigger: 'blur' }
],
password: [
{ validator: validatePass, trigger: 'blur' }
],
checkPass: [
{ validator: validateCheckPass, trigger: 'blur' }
]
})
} else {
return this.baseRule
}
}
},
mounted() {
this.getDeptTreeSelect()
this.getRoleTreeSelect()
this.getDictListByDictType('sys_user_sex').then(response => {
this.sexOptions = response.data
})
this.getDictListByDictType('personnel_status').then(response => {
this.personnelStatusOptions = response.data
})
campusList().then(response => {
this.campusOptions = response.data
})
campusSelect().then(response => {
this.belongCampus = response.data
})
},
methods: {
/** 查询部门下拉树结构 */
getDeptTreeSelect() {
treeSelect().then(response => {
this.deptOptions = response.data
})
},
getRoleTreeSelect() {
roleTreeSelect().then(response => {
this.roleOptions = response.data
})
},
/** 提交按钮 */
submitForm: function() {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.loginUser) {
this.form.roleIds = this.getRoleAllCheckedKeys()
}
if (this.form.staffId !== undefined) {
this.loadingChange = true
updateStaff(this.form).then(response => {
this.loadingChange = false
if (response.respCode === '0000') {
this.msgSuccess('修改成功')
this.open = false
this.$emit('ok')
} else {
this.msgError(response.respMsg)
}
}).catch(() => {
this.loadingChange = false
})
} else {
this.loadingChange = true
addStaff(this.form).then(response => {
this.loadingChange = false
if (response.respCode === '0000') {
this.msgSuccess('新增成功')
this.open = false
this.$emit('ok')
} else {
this.msgError(response.respMsg)
}
}).catch(() => {
this.loadingChange = false
})
}
}
})
},
//
cancel() {
this.open = false
this.reset()
},
//
reset() {
this.form = {
locked: '0',
belongCampus: undefined,
partCampus: []
}
this.resetForm('form')
},
// id
getRoleAllCheckedKeys() {
//
const halfCheckedKeys = this.$refs.role.getHalfCheckedKeys()
//
const checkedKeys = this.$refs.role.getCheckedKeys()
checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys)
return checkedKeys
},
//
handleResetPwd() {
this.$prompt('请输入"' + this.form.username + '"的新密码', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
inputPattern: /^.*(?=.{6,16})(?=.*\d)(?=.*[A-Z]{1,})(?=.*[a-z]{1,})(?=.*[!@#$%^&*?\(\)]).*$/,
inputErrorMessage: '密码最少6位,包含大小写字母和特殊字符'
}).then(({ value }) => {
resetUserPwd(this.form.userId, value).then(response => {
if (response.respCode === '0000') {
this.msgSuccess('修改成功,新密码是:' + value)
} else {
this.msgError(response.msg)
}
})
}).catch(() => {})
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
.title {
padding: 15px 0px;
color: rgba(0,0,0,.85);
font-weight: 500;
font-size: 16px;
&.top {
padding-top: 0px;
}
.title-content{
border-left: 3px solid #409EFF;
padding-left: 10px;
}
}
</style>

@ -20,9 +20,8 @@
<el-option label="展示" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -72,9 +71,16 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="inheritList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="inheritList"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="id" />
<!-- <el-table-column label="ID" align="center" prop="id" />-->
<!-- <el-table-column label="门店/校区id" align="center" prop="deptId" >-->
<!-- <template v-for="item in scope.row.deptId">-->
@ -88,10 +94,10 @@
<!-- 门店/校区名称标签形式 -->
<el-table-column label="门店/校区名称" align="center">
<el-table-column label="校区" align="center">
<template #default="scope">
<!-- 调用方法获取名称用span或el-tag展示 -->
<el-tag type="info">{{ getDeptName(scope.row.deptId) }}</el-tag>
<span type="info">{{ getDeptName(scope.row.deptId) }}</span>
<!-- 若不需要样式直接用span<span>{{ getDeptName(scope.row.deptId) }}</span> -->
</template>
</el-table-column>
@ -173,20 +179,7 @@
<!-- 标题表单项后添加 -->
<el-form-item label="门店" prop="deptId">
<el-select
v-model="form.deptId"
placeholder="请选择门店"
clearable
style="width: 100%"
>
<!-- 遍历deptList渲染选项deptId为值deptName为显示文本 -->
<el-option
v-for="dept in deptList"
:key="dept.deptId"
:label="dept.deptName"
:value="dept.deptId"
></el-option>
</el-select>
<dept-select v-model="form.deptId" />
</el-form-item>
<el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" />
@ -268,11 +261,13 @@ import { getToken } from '@/utils/auth';
import axios from 'axios';
import Pagination from '@/components/Pagination';
import RightToolbar from '@/components/RightToolbar';
import deptSelect from '@/components/system/dept/deptSelect'
export default {
name: "Practice",
components: {
Pagination,
deptSelect,
RightToolbar
},
data() {
@ -630,8 +625,8 @@ export default {
this.$message.warning('请选择至少一条记录进行删除');
return;
}
this.$modal.confirm('是否确认删除瑜伽欣赏编号为"' + ids + '"的数据项?').then(function() {
const title=row.id?'是否确认删除标题为"' + row.title + '"的内容?':'是否确认删除选中的内容?'
this.$modal.confirm(title).then(function() {
return delAppreciate(ids);
}).then(() => {
this.getList();

@ -20,9 +20,8 @@
<el-option label="展示" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -72,26 +71,19 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="inheritList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="inheritList"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="id" />
<!-- <el-table-column label="门店/校区id" align="center" prop="deptId" >-->
<!-- <template v-for="item in scope.row.deptId">-->
<!-- &lt;!&ndash; <span></span>&ndash;&gt;-->
<!-- <el-tag type="sucess" v-if="item!=''" style="float: left">{{ memberFormat(item) }}</el-tag>-->
<!-- &lt;!&ndash; <span>{{ item }}</span>&ndash;&gt;-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- 门店/校区名称标签形式 -->
<el-table-column label="门店名称" align="center">
<el-table-column label="校区" align="center">
<template #default="scope">
<!-- 调用方法获取名称用span或el-tag展示 -->
<el-tag type="info">{{ getDeptName(scope.row.deptId) }}</el-tag>
<span type="info">{{ getDeptName(scope.row.deptId) }}</span>
<!-- 若不需要样式直接用span<span>{{ getDeptName(scope.row.deptId) }}</span> -->
</template>
</el-table-column>
@ -173,20 +165,7 @@
<!-- 标题表单项后添加 -->
<el-form-item label="门店" prop="deptId">
<el-select
v-model="form.deptId"
placeholder="请选择门店"
clearable
style="width: 100%"
>
<!-- 遍历deptList渲染选项deptId为值deptName为显示文本 -->
<el-option
v-for="dept in deptList"
:key="dept.deptId"
:label="dept.deptName"
:value="dept.deptId"
></el-option>
</el-select>
<dept-select v-model="form.deptId" />
</el-form-item>
<el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" />
@ -262,6 +241,7 @@
<script>
import {getInheritBase} from "@/api/columns/inherit";
import { listHealthy, getHealthy, delHealthy, addHealthy, updateHealthy } from "@/api/columns/healthy";
import deptSelect from '@/components/system/dept/deptSelect'
// import { listHealthy, getHealthy, delHealthy, addHealthy, updateHealthy } from "@/api/system/healthy";
import WangEditor from 'wangeditor';
@ -274,6 +254,7 @@ export default {
name: "Health",
components: {
Pagination,
deptSelect,
RightToolbar
},
data() {
@ -631,8 +612,8 @@ export default {
this.$message.warning('请选择至少一条记录进行删除');
return;
}
this.$modal.confirm('是否确认删除健康饮食编号为"' + ids + '"的数据项?').then(function() {
const title=row.id?'是否确认删除标题为"' + row.title + '"的内容?':'是否确认删除选中的内容?'
this.$modal.confirm(title).then(function() {
return delHealthy(ids);
}).then(() => {
this.getList();

@ -20,9 +20,8 @@
<el-option label="展示" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -72,9 +71,16 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="inheritList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="inheritList"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="id" />
<!-- <el-table-column label="ID" align="center" prop="id" />-->
<!-- <el-table-column label="门店/校区id" align="center" prop="deptId" >-->
<!-- <template v-for="item in scope.row.deptId">-->
@ -88,16 +94,16 @@
<!-- 门店/校区名称标签形式 -->
<el-table-column label="门店/校区名称" align="center">
<el-table-column label="校区" align="center" width="100">
<template #default="scope">
<!-- 调用方法获取名称用span或el-tag展示 -->
<el-tag type="info">{{ getDeptName(scope.row.deptId) }}</el-tag>
<span type="info">{{ getDeptName(scope.row.deptId) }}</span>
<!-- 若不需要样式直接用span<span>{{ getDeptName(scope.row.deptId) }}</span> -->
</template>
</el-table-column>
<el-table-column label="标题" align="center" prop="title" />
<el-table-column label="封面" align="center" prop="image" width="100">
<el-table-column label="标题" align="center" prop="title" width="150"/>
<el-table-column label="封面" align="center" prop="image" >
<template slot-scope="scope">
<el-image
:src="getFullImgUrl(scope.row.image)"
@ -108,7 +114,7 @@
></el-image>
</template>
</el-table-column>
<el-table-column label="阅读量" align="center" prop="readNum" />
<el-table-column label="阅读量" align="center" prop="readNum" width="100" />
<el-table-column label="内容" align="center" prop="content" width="120">
<template slot-scope="scope">
@ -171,20 +177,7 @@
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<!-- 标题表单项后添加 -->
<el-form-item label="门店" prop="deptId">
<el-select
v-model="form.deptId"
placeholder="请选择门店"
clearable
style="width: 100%"
>
<!-- 遍历deptList渲染选项deptId为值deptName为显示文本 -->
<el-option
v-for="dept in deptList"
:key="dept.deptId"
:label="dept.deptName"
:value="dept.deptId"
></el-option>
</el-select>
<dept-select v-model="form.deptId" />
</el-form-item>
<el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" />
@ -264,10 +257,12 @@ import { getToken } from '@/utils/auth';
import axios from 'axios';
import Pagination from '@/components/Pagination';
import RightToolbar from '@/components/RightToolbar';
import deptSelect from '@/components/system/dept/deptSelect'
export default {
name: "Inherit",
components: {
deptSelect,
Pagination,
RightToolbar
},
@ -356,7 +351,7 @@ export default {
// return dept ? dept.deptName : '';
for(let e of this.deptList){
if(deptId==e.deptId){
return deptId ? e.deptName : '未知部门';
return deptId ? e.deptName : '未知校区';
}
}
@ -626,8 +621,8 @@ export default {
this.$message.warning('请选择至少一条记录进行删除');
return;
}
this.$modal.confirm('是否确认删除瑜伽传承编号为"' + ids + '"的数据项?').then(function() {
const title=row.id?'是否确认删除标题为"' + row.title + '"的内容?':'是否确认删除选中的内容?'
this.$modal.confirm(title).then(function() {
return delInherit(ids);
}).then(() => {
this.getList();

@ -20,9 +20,8 @@
<el-option label="展示" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -72,9 +71,16 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="inheritList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="inheritList"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="id" />
<!-- <el-table-column label="ID" align="center" prop="id" />-->
<!-- <el-table-column label="门店/校区id" align="center" prop="deptId" >-->
<!-- <template v-for="item in scope.row.deptId">-->
@ -88,10 +94,10 @@
<!-- 门店/校区名称标签形式 -->
<el-table-column label="门店/校区名称" align="center">
<el-table-column label="校区" align="center">
<template #default="scope">
<!-- 调用方法获取名称用span或el-tag展示 -->
<el-tag type="info">{{ getDeptName(scope.row.deptId) }}</el-tag>
<span type="info">{{ getDeptName(scope.row.deptId) }}</span>
<!-- 若不需要样式直接用span<span>{{ getDeptName(scope.row.deptId) }}</span> -->
</template>
</el-table-column>
@ -173,20 +179,7 @@
<!-- 标题表单项后添加 -->
<el-form-item label="门店" prop="deptId">
<el-select
v-model="form.deptId"
placeholder="请选择门店"
clearable
style="width: 100%"
>
<!-- 遍历deptList渲染选项deptId为值deptName为显示文本 -->
<el-option
v-for="dept in deptList"
:key="dept.deptId"
:label="dept.deptName"
:value="dept.deptId"
></el-option>
</el-select>
<dept-select v-model="form.deptId" />
</el-form-item>
<el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" />
@ -268,11 +261,13 @@ import { getToken } from '@/utils/auth';
import axios from 'axios';
import Pagination from '@/components/Pagination';
import RightToolbar from '@/components/RightToolbar';
import deptSelect from '@/components/system/dept/deptSelect'
export default {
name: "Practice",
components: {
Pagination,
deptSelect,
RightToolbar
},
data() {
@ -630,8 +625,8 @@ export default {
this.$message.warning('请选择至少一条记录进行删除');
return;
}
this.$modal.confirm('是否确认删除练习瞬间编号为"' + ids + '"的数据项?').then(function() {
const title=row.id?'是否确认删除标题为"' + row.title + '"的内容?':'是否确认删除选中的内容?'
this.$modal.confirm(title).then(function() {
return delMoments(ids);
}).then(() => {
this.getList();

@ -20,9 +20,8 @@
<el-option label="展示" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -72,9 +71,16 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="inheritList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="inheritList"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="ID" align="center" prop="id" />
<!-- <el-table-column label="ID" align="center" prop="id" />-->
<!-- <el-table-column label="门店/校区id" align="center" prop="deptId" >-->
<!-- <template v-for="item in scope.row.deptId">-->
@ -88,10 +94,10 @@
<!-- 门店/校区名称标签形式 -->
<el-table-column label="门店/校区名称" align="center">
<el-table-column label="校区" align="center">
<template #default="scope">
<!-- 调用方法获取名称用span或el-tag展示 -->
<el-tag type="info">{{ getDeptName(scope.row.deptId) }}</el-tag>
<span type="info">{{ getDeptName(scope.row.deptId) }}</span>
<!-- 若不需要样式直接用span<span>{{ getDeptName(scope.row.deptId) }}</span> -->
</template>
</el-table-column>
@ -173,20 +179,7 @@
<!-- 标题表单项后添加 -->
<el-form-item label="门店" prop="deptId">
<el-select
v-model="form.deptId"
placeholder="请选择门店"
clearable
style="width: 100%"
>
<!-- 遍历deptList渲染选项deptId为值deptName为显示文本 -->
<el-option
v-for="dept in deptList"
:key="dept.deptId"
:label="dept.deptName"
:value="dept.deptId"
></el-option>
</el-select>
<dept-select v-model="form.deptId" />
</el-form-item>
<el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" />
@ -268,11 +261,13 @@ import { getToken } from '@/utils/auth';
import axios from 'axios';
import Pagination from '@/components/Pagination';
import RightToolbar from '@/components/RightToolbar';
import deptSelect from '@/components/system/dept/deptSelect'
export default {
name: "Practice",
components: {
Pagination,
deptSelect,
RightToolbar
},
data() {
@ -630,8 +625,8 @@ export default {
this.$message.warning('请选择至少一条记录进行删除');
return;
}
this.$modal.confirm('是否确认删除瑜伽常识编号为"' + ids + '"的数据项?').then(function() {
const title=row.id?'是否确认删除标题为"' + row.title + '"的内容?':'是否确认删除选中的内容?'
this.$modal.confirm(title).then(function() {
return delSense(ids);
}).then(() => {
this.getList();

@ -33,9 +33,8 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -85,7 +84,14 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="storeList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="storeList"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="门店图片" align="center" prop="banner" width="220">
<template slot-scope="scope">
@ -127,7 +133,7 @@
>查看内容</el-button>
</template>
</el-table-column>
<el-table-column label="所属部门" align="center" prop="deptName" />
<el-table-column label="所属校区" align="center" prop="deptName" />
<el-table-column label="是否展示" align="center" width="100">
<template slot-scope="scope">
<el-switch

@ -2,10 +2,10 @@
<div class="app-container">
<!-- 搜索区域 -->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="老师名称" prop="teacherName">
<el-form-item label="教练名称" prop="teacherName">
<el-input
v-model="queryParams.teacherName"
placeholder="请输入老师名称"
placeholder="请输入教练名称"
clearable
@keyup.enter.native="handleQuery"
/>
@ -23,53 +23,60 @@
</el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
<!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>-->
</el-form-item>
</el-form>
<!-- 操作按钮区域 -->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:teacher:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:teacher:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:teacher:remove']"
>删除</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- icon="el-icon-plus"-->
<!-- size="mini"-->
<!-- @click="handleAdd"-->
<!-- v-hasPermi="['system:teacher:add']"-->
<!-- >新增</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['system:teacher:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['system:teacher:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
</el-row>
<!-- 表格区域 -->
<el-table v-loading="loading" :data="teacherList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="teacherList"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="员工id" align="center" prop="userId" width="80" />
<el-table-column label="员工编号" align="center" prop="userId" width="80" />
<el-table-column label="员工昵称" align="center" prop="nickName" width="80" />
<el-table-column label="老师名称app展示" align="center" prop="teacherName" />
<el-table-column label="教练名称app展示" align="center" prop="teacherName" width="150"/>
<el-table-column label="头像" align="center" prop="avatarImg" width="100">
<template slot-scope="scope">
<el-image
@ -81,16 +88,14 @@
></el-image>
</template>
</el-table-column>
<el-table-column label="教练风采内容" align="center" prop="context" width="120">
<el-table-column label="教练风采状态" align="center" prop="releases" width="120">
<template slot-scope="scope">
<el-button
type="text"
@click="showContentDialog(scope.row.context)"
size="mini"
>查看内容</el-button>
<el-tag :type="scope.row.releases === 1 ? 'success' : 'info'">
{{ scope.row.releases === 1 ? '展示' : '不展示' }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="教练风采相册" align="center" prop="url" width="220">
<el-table-column label="教练风采相册" align="center" prop="url" width="300">
<template slot-scope="scope">
<div v-if="scope.row.url" class="album-images">
<el-image
@ -109,11 +114,13 @@
<span v-else class="no-image">无图片</span>
</template>
</el-table-column>
<el-table-column label="教练风采状态" align="center" prop="releases" width="120">
<el-table-column label="教练风采内容" align="center" prop="context" >
<template slot-scope="scope">
<el-tag :type="scope.row.releases === 1 ? 'success' : 'info'">
{{ scope.row.releases === 1 ? '展示' : '不展示' }}
</el-tag>
<el-button
type="text"
@click="showContentDialog(scope.row.context)"
size="mini"
>查看内容</el-button>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="140">
@ -125,13 +132,13 @@
@click="handleUpdate(scope.row)"
v-hasPermi="['system:teacher:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:teacher:remove']"
>删除</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['system:teacher:remove']"-->
<!-- >删除</el-button>-->
</template>
</el-table-column>
</el-table>
@ -147,8 +154,8 @@
<!-- 添加或修改对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body @opened="onDialogOpened">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="员工姓名" prop="userId">
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="员工编号" prop="userId">
<el-select
v-model="form.userId"
placeholder="请选择员工"
@ -167,10 +174,15 @@
</el-select>
</el-form-item>
<el-form-item label="老师名称" prop="teacherName">
<el-input v-model="form.teacherName" placeholder="请输入老师名称" />
<el-form-item label="教练名称" prop="teacherName">
<el-input v-model="form.teacherName" placeholder="请输入教练名称" />
</el-form-item>
<el-form-item label="教练风采状态" prop="releases">
<el-radio-group v-model="form.releases">
<el-radio label="0">不展示</el-radio>
<el-radio label="1">展示</el-radio>
</el-radio-group>
</el-form-item>
<!-- 头像上传区域 -->
<el-form-item label="头像" prop="avatarImg">
<el-upload
@ -202,12 +214,6 @@
></el-loading>
</el-upload>
</el-form-item>
<el-form-item label="教练风采内容" prop="context">
<div class="editor-container">
<div ref="editor" style="width: 100%; min-height: 300px;"></div>
</div>
</el-form-item>
<el-form-item label="教练风采相册" prop="url">
<el-upload
:action="uploadImgUrl"
@ -226,12 +232,13 @@
</div>
</el-upload>
</el-form-item>
<el-form-item label="教练风采状态" prop="releases">
<el-radio-group v-model="form.releases">
<el-radio label="0">不展示</el-radio>
<el-radio label="1">展示</el-radio>
</el-radio-group>
<el-form-item label="教练风采内容" prop="context">
<div class="editor-container">
<div ref="editor" style="width: 100%; min-height: 300px;"></div>
</div>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -302,7 +309,7 @@ export default {
{ required: true, message: "请选择员工", trigger: "change" }
],
teacherName: [
{ required: true, message: "老师名称不能为空", trigger: "blur" }
{ required: true, message: "教练名称不能为空", trigger: "blur" }
],
releases: [
{ required: true, message: "请选择状态", trigger: "change" }

@ -74,15 +74,15 @@
<span style="text-decoration: underline;cursor: pointer;" @click="handleOrderDetail(scope.row)">{{ scope.row.orderId }}</span>
</template>
</el-table-column>
<el-table-column prop="orderType" align="center" label="订单类型" :formatter="orderTypeFormat" fixed="left" />
<el-table-column prop="orderStatus" align="center" label="订单状态" fixed="left">
<el-table-column prop="orderType" align="center" width="80" label="订单类型" :formatter="orderTypeFormat" fixed="left" />
<el-table-column prop="orderStatus" align="center" width="80" label="订单状态" fixed="left">
<template slot-scope="scope">
<el-tag v-if="scope.row.orderStatus === '1'" size="medium" type="info"></el-tag>
<el-tag v-if="scope.row.orderStatus === '2'" size="medium"></el-tag>
<el-tag v-if="scope.row.orderStatus === '3'" size="medium" type="danger"></el-tag>
</template>
</el-table-column>
<el-table-column prop="studentName" align="center" label="员" />
<el-table-column prop="studentName" align="center" label="员" />
<el-table-column prop="phone" width="110" align="center" label="联系电话" />
<el-table-column prop="orderDetail" width="200" align="left" label="销售内容">
<template slot-scope="scope">
@ -116,19 +116,36 @@
<el-table-column prop="saleStaffName" align="center" label="销售员" />
<el-table-column prop="handleDeptName" align="center" label="经办校区" show-overflow-tooltip />
<el-table-column prop="handleDate" width="100" align="center" label="经办日期" />
<el-table-column prop="createUserName" width="100" align="center" label="经办人" />
<el-table-column prop="memo" align="center" label="办理备注" show-overflow-tooltip />
<el-table-column prop="createUserName" width="80" align="center" label="经办人" />
<el-table-column prop="memo" align="center" width="100" label="办理备注" show-overflow-tooltip />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-dropdown trigger="click">
<span style="cursor: pointer;color: #409EFF;outline: none;">
操作<i class="el-icon-arrow-down el-icon--right" style="font-size: 12px;" />
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item icon="el-icon-document" @click.native="handleOrderDetail(scope.row)">详情</el-dropdown-item>
<el-dropdown-item icon="el-icon-delete" @click.native="invalidOrder(scope.row)">作废</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-button
v-hasPermi="['sc:claTimeRule:update']"
size="mini"
type="text"
icon="el-icon-document"
@click="handleOrderDetail(scope.row)"
>详情</el-button>
<el-button
v-hasPermi="['sc:claTimeRule:delete']"
size="mini"
type="text"
icon="el-icon-delete"
@click="invalidOrder(scope.row)"
>作废</el-button>
<!-- </template>-->
<!-- <item icon="el-icon-document" @click.native="handleOrderDetail(scope.row)">详情</item>-->
<!-- <item icon="el-icon-delete" @click.native="invalidOrder(scope.row)">作废</item>-->
<!-- <el-dropdown trigger="click">-->
<!-- <span style="cursor: pointer;color: #409EFF;outline: none;">-->
<!-- 操作<i class="el-icon-arrow-down el-icon&#45;&#45;right" style="font-size: 12px;" />-->
<!-- </span>-->
<!-- <el-dropdown-menu slot="dropdown">-->
<!-- <el-dropdown-item icon="el-icon-document" @click.native="handleOrderDetail(scope.row)">详情</el-dropdown-item>-->
<!-- <el-dropdown-item icon="el-icon-delete" @click.native="invalidOrder(scope.row)">作废</el-dropdown-item>-->
<!-- </el-dropdown-menu>-->
<!-- </el-dropdown>-->
</template>
</el-table-column>
</el-table>
@ -177,7 +194,7 @@ export default {
dataList: [],
//
open: false,
//
//
studentIdOptions: [],
handleDateArray: [],
//
@ -259,7 +276,7 @@ export default {
//
invalidOrder(row) {
const that = this
this.$confirm('确定作废本订单?', '提示').then(() => {
this.$confirm('确定作废本订单及会员卡?', '提示').then(() => {
that.loading = true
invalidById(row.orderId).then(response => {
that.loading = false
@ -278,7 +295,7 @@ export default {
batchInvalidOrder(row) {
const that = this
const id = this.ids
this.$confirm('确定作废已选择订单?', '提示').then(() => {
this.$confirm('确定作废已选择订单及会员卡?', '提示').then(() => {
that.loading = true
invalidById(id).then(response => {
that.loading = false

@ -6,7 +6,7 @@
</div>
<div class="header-info">
<div class="left-info">
<div class="header-item">员姓名: {{ orderInfo.studentName }}</div>
<div class="header-item">员姓名: {{ orderInfo.studentName }}</div>
<div class="header-item">经办日期: {{ orderInfo.handleDate }}</div>
<div v-if="orderInfo.orderType === '1'" class="header-item">: </div>
<div v-else class="header-item">类型: {{ orderInfo.orderType }}</div>

@ -23,50 +23,19 @@
<el-row :gutter="20">
<el-col :span=12>
<div class="section-title">
<h3>搜索会员</h3>
<el-button type="primary" size="small" @click="handleAddStudent">
创建新会员
</el-button>
</div>
<el-input
v-model="searchKeyword"
placeholder="请输入会员手机号"
clearable
@keyup.enter="searchMember"
class="search-input"
>
<el-button slot="append" icon="el-icon-search" @click="searchMember"></el-button>
</el-input>
<div v-if="memberList.length > 0" class="member-list">
<el-radio-group v-model="selectedMemberId" @change="handleMemberSelect">
<div v-for="member in memberList" :key="member.studentId" class="member-item">
<el-radio :label="member.studentId" class="member-radio">
<div class="member-info">
<div class="member-name">{{ member.studentName }}</div>
<div class="member-phone">{{ member.phone }}</div>
<div class="member-phone">{{ member.age }}</div>
<div class="member-tags">
{{sexFormat(member)}}
<el-tag size="mini" type="info">生日{{ member.birthDay || '未设置生日' }}</el-tag>
</div>
</div>
</el-radio>
</div>
</el-radio-group>
</div>
<div v-else-if="searched" class="empty-state">
<el-empty description="未找到相关会员"></el-empty>
<h1>选择会员</h1>
</div>
<student-select @change="handleMemberSelect" style="width: 660px;margin-right: 5px;"/>
<!-- <el-button icon="el-icon-search" type="primary" @change="handleMemberSelect"></el-button>-->
<el-button type="primary" @click="handleAddStudent">
创建新会员
</el-button>
</el-col>
</el-row>
<el-row :gutter="20" v-if="selectedMember" style="padding-top: 10px" >
<el-col :span=12>
<div class="selected-member" v-if="selectedMember">
<div class="section-title">
<h3>已选会员信息</h3>
</div>
<div class="selected-member">
<el-descriptions :column="1" border>
<el-descriptions-item label="会员编号">{{ selectedMember.studentId || '-' }}</el-descriptions-item>
<el-descriptions-item label="姓名">{{ selectedMember.studentName }}</el-descriptions-item>
@ -75,41 +44,48 @@
{{sexFormat(selectedMember)}}
</el-descriptions-item>
<el-descriptions-item label="生日">{{ selectedMember.birthDay || '-' }}</el-descriptions-item>
<el-descriptions-item label="注册时间">{{ selectedMember.inTime || '-' }}</el-descriptions-item>
<el-descriptions-item label="注册时间">{{ selectedMember.inTime || '-' }}</el-descriptions-item>
</el-descriptions>
<div v-if="memberCards.length > 0" class="current-cards">
<h4>名下会员卡</h4>
<el-table :data="memberCards" size="small">
<el-table-column prop="cardNo" label="卡号"></el-table-column>
<el-table-column prop="cardTypeName" label="类型"></el-table-column>
<el-table-column prop="chargeType" label="扣费方式">
<template slot-scope="scope">
{{ scope.row.chargeType=='count'?'按次数':scope.row.chargeType=='total_fee'?'按储值':'按周期' }}
{{scope.row.chargeType=='count'?'(余 '+scope.row.remainingCount+' 次)':''}}
{{scope.row.chargeType=='total_fee'?'(余 '+scope.row.remainingTotalFee+' ¥)':''}}
{{scope.row.chargeType=='days'?'(余 '+scope.row.remainingDays+' 天)':''}}
</template>
</el-table-column>
<el-table-column prop="status" label="状态">
<template slot-scope="scope">
<el-tag :type="getStatusTagType(scope.row.status)" size="mini">
{{ scope.row.statusDesc }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="expiryDate" label="到期时间"></el-table-column>
</el-table>
</div>
</div>
<div v-else class="placeholder">
<el-empty description="请选择会员"></el-empty>
</el-col>
<el-col :span=12 v-loading="cardLoading" >
<div class="current-cards">
<div v-if="memberCards.length == 0" style="height: 250px;width: 100%;text-align: center;line-height: 250px;" >
<span style="color: #999; font-size: 15px;">暂无会员卡</span>
</div>
<el-table
:data="memberCards"
size="small"
v-if="memberCards.length > 0"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}">
<el-table-column prop="cardNo" label="卡号"></el-table-column>
<el-table-column prop="cardTypeName" label="类型"></el-table-column>
<el-table-column prop="chargeType" label="扣费方式" >
<template slot-scope="scope">
{{ scope.row.chargeType=='count'?'按次数':scope.row.chargeType=='total_fee'?'按储值':'按周期' }}
{{scope.row.chargeType=='count'?'(余 '+scope.row.remainingCount+' 次)':''}}
{{scope.row.chargeType=='total_fee'?'(余 '+scope.row.remainingTotalFee+' ¥)':''}}
{{scope.row.chargeType=='days'?'(余 '+scope.row.remainingDays+' 天)':''}}
</template>
</el-table-column>
<el-table-column prop="status" label="状态">
<template slot-scope="scope">
<el-tag :type="getStatusTagType(scope.row.status)" size="mini">
{{ scope.row.statusDesc }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="expiryDate" label="到期时间"></el-table-column>
</el-table>
</div>
</el-col>
</el-row>
<div v-else class="placeholder">
<el-empty description="请选择会员"></el-empty>
</div>
<div class="step-actions">
<el-button type="primary" :disabled="!selectedMemberId" @click="nextStep">
下一步选择卡类型
@ -375,7 +351,7 @@
<script>
import {select as cardTypeSelect} from '@/api/school/sc/memberCardType/index'
import {listStudent} from '@/api/school/sc/student/index'
import {getStudent, listStudent} from '@/api/school/sc/student/index'
import { select as receiptSelect} from '@/api/school/system/receipt'
import {selectDictLabel} from "@/utils/commonUtils";
import { campusList } from '@/api/school/system/dept'
@ -384,13 +360,15 @@ import changeStudent from '@/components/sc/student/changeStudent'
import memberCardApi from '@/api/school/sc/memberCard/index'
import commissionSelect from '@/components/sc/commission/commissionSelect'
import userSelect from '@/components/system/user/userSelect'
import studentSelect from '@/components/sc/student/studentSelect'
export default {
name: 'MemberCardCreate',
components: {
memberCardTypeTable,
changeStudent,
commissionSelect,
userSelect
userSelect,
studentSelect
},
data() {
return {
@ -401,7 +379,8 @@ export default {
monthCount: 0,
//
searchKeyword: '',
// searchKeyword: '',
cardLoading:false,
memberList: [],
selectedMemberId: null,
selectedMember: null,
@ -598,22 +577,44 @@ export default {
},
//
async handleMemberSelect(studentId) {
const member = this.memberList.find(m => m.studentId === studentId)
if (member) {
this.selectedMember = member
await this.loadMemberCards(studentId)
if (!studentId) {
this.memberList=[];
this.selectedMemberId=null;
this.selectedMember= null;
this.memberCards=[];
this.searched=false;
return
}
this.selectedMemberId=studentId
getStudent(studentId).then(response => {
this.memberList = [response.data]
this.selectedMember =response.data
this.loadMemberCards(studentId)
this.searched = true
if (this.memberList.length === 0) {
this.$message.info('未找到相关会员')
}
}).catch(() => {
this.$message.error('查找会员失败')
})
await this.loadMemberCards(studentId)
},
//
async loadMemberCards(memberId) {
this.cardLoading=true
try {
const response = await memberCardApi.getMemberCards(memberId)
this.memberCards = response.data || []
this.cardLoading=false
} catch (error) {
console.error('加载会员卡失败:', error)
this.cardLoading=false
}
},
//
//
handleAddStudent() {
this.$refs.changeStudent.handleAdd()
},
@ -843,7 +844,7 @@ export default {
this.memberList.unshift(newMember)
this.selectedMemberId = newMember.id
this.selectedMember = newMember
this.searchKeyword = ''
// this.searchKeyword = ''
this.$message.success('会员创建成功')
},
@ -918,11 +919,11 @@ export default {
margin-top: 20px;
.steps {
margin-bottom: 40px;
margin-bottom: 10px;
}
.step-content {
padding: 20px;
padding: 10px;
.section-title {
display: flex;

@ -57,7 +57,7 @@
</div>
<div class="txt">
<div class="value">{{ dashboardData.studentCnt }}</div>
<div class="name">员人数</div>
<div class="name">员人数</div>
</div>
</div>
</router-link>
@ -145,8 +145,8 @@
<svg-icon icon-class="dashboard-student-cnt" style="height: 33px;width: 28px;" />
</div>
<div class="txt">
<div class="value"></div>
<div class="name"><span class="cnt">{{ dashboardData.studentCnt }}</span></div>
<div class="value"></div>
<div class="name"><span class="cnt">{{ dashboardData.studentCnt }}</span></div>
</div>
</div>
</router-link>

@ -71,7 +71,7 @@
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="chargeType" label="收费模式 hour:课时 date:时间 cycle:期" />
<el-table-column prop="attendStatus" label="出席状态 1:到课 2:请假 3:缺勤" />
<el-table-column prop="teacherGetHour" label="教获取课时数量" />
<el-table-column prop="teacherGetHour" label="教获取课时数量" />
<el-table-column prop="payHour" label="扣减课时数量" />
<el-table-column prop="memo" label="备注" />
<el-table-column width="150" label="操作" align="center" class-name="small-padding fixed-width">

@ -7,23 +7,8 @@
<el-form-item label="班级:" prop="claId">
<cla-select v-model="queryParams.claId" :dept-id="queryParams.deptId" clearable placeholder="选择班级" @change="handleChangeCla" />
</el-form-item>
<el-form-item label="任课教师:" prop="teacherId">
<el-select
v-model="queryParams.teacherId"
filterable
allow-create
placeholder="选择上课教师"
clearable
default-first-option
>
<el-option
v-for="teacher in teacherOptions"
:key="teacher.userId"
:label="teacher.nickName"
:value="teacher.userId"
/>
</el-select>
<!-- <staff-select v-model="queryParams.teacherId" teacher="1" clearable placeholder="选择任课教师" @change="handleChangeTeacher" />-->
<el-form-item label="任课教练:" prop="teacherId">
<staff-select v-model="queryParams.teacherId" clearable placeholder="选择任课教练" @change="handleChangeTeacher" />
</el-form-item>
<el-form-item v-if="activeTab === 'table'" label="上课时间:" prop="claDateArray">
@ -39,7 +24,6 @@
</el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -77,11 +61,18 @@
>删除</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="dataList"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="claName" label="班级" width="120" align="center" show-overflow-tooltip fixed="left" />
<el-table-column prop="courseName" label="课程" width="120" align="center" show-overflow-tooltip />
<el-table-column label="规则类型" align="center" prop="ruleType" width="90">
<el-table-column label="规则类型" align="center" prop="ruleType" width="100">
<template slot-scope="scope">
<el-tag v-if="scope.row.ruleType === '1'"></el-tag>
<el-tag v-if="scope.row.ruleType === '2'" effect="plain" size="medium"></el-tag>
@ -98,15 +89,15 @@
<span>{{ scope.row.startTime.substr(0,5) }}~{{ scope.row.endTime.substr(0,5) }}</span>
</template>
</el-table-column>
<el-table-column prop="repeatType" label="重复方式" align="center">
<el-table-column prop="repeatType" label="重复方式" align="center" width="100">
<template slot-scope="scope">
<el-tag v-if="scope.row.repeatType === '1'" effect="plain" type="danger" size="medium"></el-tag>
<el-tag v-else-if="scope.row.repeatType === '2'" effect="plain" size="medium">隔天重复</el-tag>
<el-tag v-else-if="scope.row.repeatType === '3'" effect="plain" size="medium">隔周重复</el-tag>
</template>
</el-table-column>
<el-table-column align="center" width="130" prop="weekDayName" label="上课星期" show-overflow-tooltip />
<el-table-column prop="staffName" align="center" label="任课教" show-overflow-tooltip />
<el-table-column align="center" prop="weekDayName" label="上课星期" show-overflow-tooltip />
<el-table-column prop="staffName" align="center" label="任课教" show-overflow-tooltip />
<el-table-column prop="classTheme" align="center" label="上课主题" show-overflow-tooltip />
<el-table-column width="150" label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
@ -153,7 +144,6 @@ import staffSelect from '@/components/system/staff/staffSelect'
import changeTimeRule from '@/components/sc/claTime/changeTimeRule'
import claTimeCalendar from '@/components/sc/claTime/claTimeCalendar'
import { listRule, delRule } from '@/api/school/sc/cla/claTimeRule'
import {select as teacherSelect} from "@/api/school/system/staff";
export default {
name: 'Rule',
components: {
@ -207,7 +197,6 @@ export default {
filterHoliday: undefined,
claDate: undefined
},
teacherOptions:[],
activeTab: 'table'
}
},
@ -232,14 +221,8 @@ export default {
this.getDictListByDictType('week_day').then(response => {
this.weekDayOptions = response.data
})
this.getTeacherOptions()
},
methods: {
getTeacherOptions() {
teacherSelect().then(response => {
this.teacherOptions = response.data
})
},
getList() {
this.loading = true
listRule(this.queryParams).then(response => {
@ -283,7 +266,7 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const id = row.ruleId || this.ids
this.$confirm('本操作会将未上课且无员预约/预约失败/取消预约的相关课表同时删除,已经上完的课程不会被删除,是否确认操作?', '警告', {
this.$confirm('本操作会将未上课且无员预约/预约失败/取消预约的相关课表同时删除,已经上完的课程不会被删除,是否确认操作?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'

@ -15,7 +15,7 @@
<div class="item-value">{{ claCourseInfo.courseName }}</div>
</div>
<div class="item">
<div class="item-name">任课教:</div>
<div class="item-name">任课教:</div>
<div class="item-value">{{ claInfo.teacherName }}</div>
</div>
<div class="item">
@ -72,8 +72,8 @@
</el-row>
<div class="tab-container">
<el-tabs v-model="activeTab" tab-position="top" @tab-click="handleTabChange">
<el-tab-pane name="claStudent" label="员">
<span slot="label" style="font-size: 16px;"><i class="el-icon-user" /> </span>
<el-tab-pane name="claStudent" label="员">
<span slot="label" style="font-size: 16px;"><i class="el-icon-user" /> </span>
<course-student-table ref="courseStudentTable" :cla-id="claId" :belong-course-id="claCourseInfo.courseId" :belong-depart-id="claInfo.departId" />
</el-tab-pane>
<el-tab-pane name="claTimeRule" label="排课">

@ -27,26 +27,11 @@
/>
</el-select>
</el-form-item>
<el-form-item label="教师:" prop="teacherId">
<el-select
v-model="queryParams.teacherId"
filterable
placeholder="选择上课教师"
clearable
default-first-option
size="small"
>
<el-option
v-for="teacher in teacherOptions"
:key="teacher.userId"
:label="teacher.nickName"
:value="teacher.userId"
/>
</el-select>
<el-form-item label="教练:" prop="staffId">
<staff-select v-model="queryParams.staffId" clearable placeholder="请选择上课教练" />
</el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -82,7 +67,14 @@
</el-col>
</el-row>
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="dataList"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column align="center" width="120" prop="claName" label="班级" fixed="left" show-overflow-tooltip>
<template slot-scope="scope">
@ -90,10 +82,10 @@
</template>
</el-table-column>
<el-table-column align="center" prop="courseName" label="课程" show-overflow-tooltip />
<el-table-column align="center" width="110" prop="teacherName" label="任课教" />
<el-table-column align="center" prop="capacity" label="人数">
<el-table-column align="center" width="110" prop="teacherName" label="任课教" />
<el-table-column align="center" prop="capacity" label="满班人数">
<template slot-scope="scope">
<span>{{ scope.row.studentCnt }}/{{ scope.row.capacity }}</span>
<span>{{ scope.row.capacity }}</span>
</template>
</el-table-column>
<el-table-column align="center" prop="recruitStatus" label="招生状态" width="120">
@ -162,10 +154,10 @@
<el-table-column align="center" prop="claName" label="班级名称" fixed="left" />
<el-table-column align="center" prop="courseName" label="课程" />
<el-table-column align="center" prop="deptName" label="校区" />
<el-table-column align="center" prop="teacherName" label="任课教" />
<el-table-column align="center" prop="teacherName" label="任课教" />
<el-table-column align="center" prop="capacity" label="满班人数" />
<el-table-column align="center" prop="recruitStatus" label="招生状态" />
<el-table-column align="center" prop="everyStuLoseHour" label="每次上课员扣除课时" />
<el-table-column align="center" prop="everyStuLoseHour" label="每次上课员扣除课时" />
<el-table-column align="center" prop="openDate" label="结班日期" />
<el-table-column align="center" prop="closeDate" label="开班日期" />
<el-table-column align="center" prop="memo" label="备注" show-overflow-tooltip />
@ -188,10 +180,10 @@
<el-table-column align="center" prop="courseName" label="课程" />
<el-table-column align="center" prop="failMsg" label="失败原因" show-overflow-tooltip />
<el-table-column align="center" prop="deptName" label="校区" />
<el-table-column align="center" prop="teacherName" label="任课教" />
<el-table-column align="center" prop="teacherName" label="任课教" />
<el-table-column align="center" prop="capacity" label="满班人数" />
<el-table-column align="center" prop="recruitStatus" label="招生状态" />
<el-table-column align="center" prop="everyStuLoseHour" label="每次上课员扣除课时" />
<el-table-column align="center" prop="everyStuLoseHour" label="每次上课员扣除课时" />
<el-table-column align="center" prop="openDate" label="结班日期" />
<el-table-column align="center" prop="closeDate" label="开班日期" />
<el-table-column align="center" prop="memo" label="备注" show-overflow-tooltip />
@ -215,8 +207,8 @@
<script>
import { delCla, getCla, listCla } from '@/api/school/sc/cla'
import changeCla from '@/components/sc/course/cla/changeCla'
import { select as teacherSelect } from '@/api/school/system/staff'
import { select as courseSelect } from '@/api/school/sc/course'
import staffSelect from '@/components/system/staff/staffSelect'
import changeTimeRule from '@/components/sc/claTime/changeTimeRule'
import claTimeCalendar from '@/components/sc/claTime/claTimeCalendar'
import addClaTimeAttend from '@/components/sc/claTime/addClaTimeAttend'
@ -225,6 +217,7 @@ import uploadCheckImportExcel from '@/components/tool/impt/uploadCheckImportExce
export default {
name: 'Cla',
components: {
staffSelect,
changeCla,
changeTimeRule,
claTimeCalendar,
@ -252,8 +245,6 @@ export default {
open: false,
//
courseOptions: [],
//
teacherOptions: [],
// ,,
courseTimeOptions: [],
//
@ -274,7 +265,7 @@ export default {
{ required: true, message: '课程id不能为空', trigger: 'blur' }
],
teacherId: [
{ required: true, message: '教id不能为空', trigger: 'blur' }
{ required: true, message: '教id不能为空', trigger: 'blur' }
],
claName: [
{ required: true, message: '班级名称不能为空', trigger: 'blur' }
@ -302,7 +293,6 @@ export default {
this.courseTimeOptions = response.data
})
this.getCourseOptions()
this.getTeacherOptions()
},
methods: {
getCourseOptions() {
@ -310,11 +300,6 @@ export default {
this.courseOptions = response.data
})
},
getTeacherOptions() {
teacherSelect().then(response => {
this.teacherOptions = response.data
})
},
/** 查询部门列表 */
getList() {
this.loading = true

@ -64,16 +64,15 @@
/>
</el-select>
</el-form-item>
<el-form-item label="开售:" prop="sale">
<el-switch
v-model="queryParams.sale"
active-value="1"
inactive-value="0"
/>
</el-form-item>
<el-form-item>
<!-- <el-form-item label="开售:" prop="sale">-->
<!-- <el-switch-->
<!-- v-model="queryParams.sale"-->
<!-- active-value="1"-->
<!-- inactive-value="0"-->
<!-- />-->
<!-- </el-form-item>-->
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -113,7 +112,14 @@
</el-col>
</el-row>
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="dataList"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="courseName" width="120" align="center" label="课程名称" />
<el-table-column prop="courseTypeName" align="center" label="课程类型" />
@ -131,33 +137,43 @@
</div>
</template>
</el-table-column>
<el-table-column prop="tuitionFee" align="center" label="课程价值/节" >
<template slot-scope="scope">
{{ scope.row.tuitionFee }}
</template>
</el-table-column>
<el-table-column prop="claCount" align="center" label="开班数" />
<el-table-column prop="claFee" align="center" label="教练课时费/节" >
<template slot-scope="scope">
{{ scope.row.claFee }}
{{ scope.row.claFee }}
</template>
</el-table-column>
<el-table-column prop="campusIds" align="center" label="开课校区">
<template slot-scope="scope">
<div >
<span v-if="scope.row.campusIds==null"></span>
<span v-else>{{ scope.row.campusIds.split(',').length }}</span>
<span v-else>
{{ scope.row.campusIds.split(',').length }}个校区<br>
{{ scope.row.storeNames }}
</span>
</div>
</template>
</el-table-column>
<el-table-column prop="createTime" width="100" align="center" label="创建时间">
<template slot-scope="scope">{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</template>
</el-table-column>
<el-table-column prop="sale" align="center" label="开售">
<template slot-scope="scope">
<el-switch
v-model="scope.row.sale"
active-value="1"
inactive-value="0"
@change="handleSaleChange(scope.row)"
/>
</template>
</el-table-column>
<!-- <el-table-column prop="sale" align="center" label="开售">-->
<!-- <template slot-scope="scope">-->
<!-- <el-switch-->
<!-- v-model="scope.row.sale"-->
<!-- active-value="1"-->
<!-- inactive-value="0"-->
<!-- @change="handleSaleChange(scope.row)"-->
<!-- />-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column prop="courseIntro" align="center" label="课程简介" :show-overflow-tooltip="true" />
<el-table-column width="170" label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
@ -233,7 +249,7 @@ export default {
courseTypeId: undefined,
teachingMode: undefined,
chargeType: undefined,
sale: '1'
sale: ''
},
//
courseTypeOptions: [],

@ -11,9 +11,8 @@
/>
</el-select>
</el-form-item>
<el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -49,20 +48,27 @@
</el-col>
</el-row>
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="dataList"
@selection-change="handleSelectionChange"
border
:header-cell-style="{'text-align': 'center'}"
:cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="courseType" width="170" label="课程类型名" />
<el-table-column prop="sort" width="120" label="排序" />
<el-table-column prop="inUse" width="120" align="center" label="开售">
<template slot-scope="scope">
<el-switch
v-model="scope.row.inUse"
active-value="1"
inactive-value="0"
@change="handleSaleChange(scope.row)"
/>
</template>
</el-table-column>
<!-- <el-table-column prop="inUse" width="120" align="center" label="开售">-->
<!-- <template slot-scope="scope">-->
<!-- <el-switch-->
<!-- v-model="scope.row.inUse"-->
<!-- active-value="1"-->
<!-- inactive-value="0"-->
<!-- @change="handleSaleChange(scope.row)"-->
<!-- />-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column prop="remark" align="center" label="类型说明" />
<el-table-column width="150" label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
@ -210,20 +216,20 @@ export default {
}).catch(function() {})
},
//
handleSaleChange(row) {
const text = row.inUse === '1' ? '开售' : '停售'
this.$confirm('确认要"' + text + '""' + row.courseType + '"课程类型吗?', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function() {
return changeCourseTypeSale(row.courseTypeId, row.inUse)
}).then(() => {
this.msgSuccess(text + '成功')
}).catch(function() {
row.inUse = row.inUse === '0' ? '1' : '0'
})
}
// handleSaleChange(row) {
// const text = row.inUse === '1' ? '' : ''
// this.$confirm('"' + text + '""' + row.courseType + '"?', '', {
// confirmButtonText: '',
// cancelButtonText: '',
// type: 'warning'
// }).then(function() {
// return changeCourseTypeSale(row.courseTypeId, row.inUse)
// }).then(() => {
// this.msgSuccess(text + '')
// }).catch(function() {
// row.inUse = row.inUse === '0' ? '1' : '0'
// })
// }
}
}
</script>

@ -19,7 +19,6 @@
</el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
@ -76,7 +75,8 @@
<div>
<ul>
<li v-for="item in scope.row.courses" :key="item.id">
{{ item.courseType }} - {{item.courseNames}}
<span style="font-weight: bold">{{ item.courseType }}</span>
- {{item.courseNames}}
</li>
</ul>
</div>
@ -84,12 +84,12 @@
</div>
</template>
</el-table-column>
<el-table-column prop="restrictedTeacher" width="100" header-align="center" label="限制教练" >
<el-table-column prop="restrictedTeacher" width="150" header-align="center" label="限制教练" >
<template slot-scope="scope" >
{{scope.row.restrictedTeacher=='1'?'全部允许':scope.row.teachersName}}
</template>
</el-table-column>
<el-table-column prop="restrictedNum" align="center" width="120" label="次数限制" >
<el-table-column prop="restrictedNum" align="center" width="150" label="次数限制" >
<template slot-scope="scope" >
{{ scope.row.restrictedNum=='1'?'不限次数':'限制次数'}}<br>
<div v-if="scope.row.restrictedNum=='2'">
@ -97,17 +97,18 @@
</div>
</template>
</el-table-column>
<el-table-column prop="totalFee" width="150" header-align="center" label="每节课扣次或费用">
<el-table-column prop="totalFee" width="190" header-align="center" label="每节课扣次或费用">
<template slot-scope="scope" >
<div v-if="scope.row.chargeType=='default'">
默认<br>
<!-- 默认<br>-->
{{scope.row.defaultNum}}或扣{{scope.row.defaultFee}}
</div>
<div v-if="scope.row.chargeType=='customize'">
<div>
<ul>
<li v-for="item in scope.row.feeModeHourList" :key="item.courseTypeId">
{{ item.courseType }} - {{item.cnt}}{{item.totalFee}}
<span style="font-weight: bold">{{ item.courseType }}</span>
- {{item.cnt}}{{item.totalFee}}
</li>
</ul>
</div>
@ -123,8 +124,8 @@
</template>
</el-table-column>
<!-- :show-overflow-tooltip="true"-->
<el-table-column prop="description" width="180" header-align="center" label="会员卡简介" />
<el-table-column prop="conditions" width="180" header-align="center" label="会员卡条款" />
<el-table-column prop="description" width="120" header-align="center" label="会员卡简介" :show-overflow-tooltip="true" />
<el-table-column prop="conditions" width="120" header-align="center" label="会员卡条款" :show-overflow-tooltip="true"/>
<el-table-column prop="createTime" width="100" align="center" label="创建时间">
<template slot-scope="scope">{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</template>
</el-table-column>

@ -57,14 +57,14 @@ export default {
handleAdd() {
this.reset()
this.open = true
this.title = '添加员基本信息'
this.title = '添加员基本信息'
},
handleUpdate(row) {
this.reset()
const data=JSON.parse(JSON.stringify(row))
this.form=data
this.open = true
this.title = '修改员基本信息'
this.title = '修改员基本信息'
},
/** 提交按钮 */
submitForm: function() {

@ -1,11 +1,11 @@
<template>
<div>
<el-dialog title="添加教基础工资配置" :visible.sync="open" width="600px">
<el-dialog title="添加教基础工资配置" :visible.sync="open" width="600px">
<el-form ref="form" :model="form" label-width="120px">
<el-row>
<el-col :span="12">
<el-form-item label="员工:" prop="name">
<staff-select v-model="form.teacherId" teacher="1" placeholder="请选择任课教" />
<staff-select v-model="form.teacherId" teacher="1" placeholder="请选择任课教" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -60,14 +60,14 @@ export default {
handleAdd() {
this.reset()
this.open = true
this.title = '添加员基本信息'
this.title = '添加员基本信息'
},
handleUpdate(row) {
this.reset()
const data=JSON.parse(JSON.stringify(row))
this.form=data
this.open = true
this.title = '修改员基本信息'
this.title = '修改员基本信息'
},
/** 提交按钮 */
submitForm: function() {

@ -16,7 +16,7 @@
<el-table v-loading="loading" :data="dataList">
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="staffName" label="教姓名" />
<el-table-column prop="staffName" label="教姓名" />
<el-table-column prop="salaryBaseName" label="基础薪资名称" />
<el-table-column prop="salary" label="薪资金额(元)" />
<el-table-column width="150" label="操作" align="center" class-name="small-padding fixed-width">

@ -7,7 +7,7 @@
</template>
</el-table-column>
<el-table-column align="center" prop="claName" label="班级" show-overflow-tooltip />
<el-table-column align="center" prop="studentName" label="员" show-overflow-tooltip />
<el-table-column align="center" prop="studentName" label="员" show-overflow-tooltip />
<el-table-column align="center" prop="chargeType" width="120" label="收费方式">
<template slot-scope="scope">
<span>{{ chargeTypeFormatter(scope.row) }}</span>
@ -127,7 +127,7 @@ export default {
},
handleStopStudentCourseStatus(studentCourseId) {
const that = this
this.confirm('确定将本员停课?', function() {
this.confirm('确定将本员停课?', function() {
stopStudentCourseStatus(studentCourseId).then(response => {
if (response.respCode === '0000') {
that.msgSuccess('操作成功')
@ -141,7 +141,7 @@ export default {
//
handleAtClaStudentCourseStatus(studentCourseId) {
const that = this
this.confirm('确定将本员状态设置为在读?', function() {
this.confirm('确定将本员状态设置为在读?', function() {
atClaStudentCourseStatus(studentCourseId).then(response => {
if (response.respCode === '0000') {
that.msgSuccess('操作成功')

@ -20,7 +20,7 @@
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="dataList">
<el-table-column prop="studentName" align="center" label="员" fixed="left" />
<el-table-column prop="studentName" align="center" label="员" fixed="left" />
<el-table-column prop="logType" align="center" label="日志类型" fixed="left">
<template slot-scope="scope">
<el-tag v-if="scope.row.logType === '1'"></el-tag>

@ -1,6 +1,10 @@
<template>
<div>
<el-table v-loading="loading" :data="dataList">
<el-table v-loading="loading"
:data="dataList"
border
:header-cell-style="{'text-align': 'center'}"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column prop="orderId" width="170" align="center" label="订单编号" fixed="left">
<template slot-scope="scope">
@ -15,7 +19,7 @@
<el-tag v-if="scope.row.orderStatus === '3'" size="medium" type="danger"></el-tag>
</template>
</el-table-column>
<el-table-column prop="studentName" align="center" label="员" />
<el-table-column prop="studentName" align="center" label="员" />
<el-table-column prop="phone" width="110" align="center" label="联系电话" />
<el-table-column prop="orderDetail" width="200" align="left" label="销售内容">
<template slot-scope="scope">

@ -30,7 +30,7 @@ export default {
methods: {
handleTabChange(tab) {
if (tab.name === 'studentList') {
//
//
} else if (tab.name === 'studentSignUpList') {
//
this.$refs.studentCourseSignUpTable.getList()

@ -1,10 +1,10 @@
<!-- 员视图 -->
<!-- 员视图 -->
<template>
<div class="container">
<el-row v-loading="loading" class="cla-detail">
<div class="top-name" style="display: flex;justify-content: space-between;">
<div v-if="canSearchStudent">
<label class="el-form-item__label" style="width: 80px;">选择:</label>
<label class="el-form-item__label" style="width: 80px;">选择:</label>
<student-select @change="handleStudentChange" />
</div>
</div>
@ -83,7 +83,7 @@ export default {
studentInfo: {
},
studentId: undefined,
//
//
canSearchStudent: true
}
},
@ -111,7 +111,7 @@ export default {
}
},
methods: {
//
//
handleStudentChange(studentId) {
if (!studentId) {
return
@ -124,7 +124,7 @@ export default {
if (this.canSearchStudent === false) {
this.$store.dispatch('tagsView/updateVisitedViewName', {
view: this.$route,
name: '员:' + this.studentInfo.studentName
name: '员:' + this.studentInfo.studentName
})
}
}).catch(() => {

@ -47,7 +47,7 @@
>删除</el-button>
</el-col>
<span style="color: #999; font-size: 12px;" >
* 员办理入会时作为收款账户标签使用
* 员办理入会时作为收款账户标签使用
</span>
</el-row>

@ -21,7 +21,6 @@
</el-form-item>
<el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>

Loading…
Cancel
Save