测试并修改

master
15004070936 3 days ago
parent a39f5672e9
commit 3e6289ab4d

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

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

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

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

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

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

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

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

@ -2,9 +2,10 @@
<template> <template>
<div> <div>
<el-table v-loading="loading" :data="dataList"> <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="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"> <el-table-column align="center" prop="realClaDate" label="上课日期" width="120">
<template slot-scope="scope"> <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"> <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-col>
</el-row> </el-row>
<el-table v-loading="loading" :data="dataList"> <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="roomName" label="教室" />
<el-table-column align="center" prop="realClaDate" label="上课日期" width="120"> <el-table-column align="center" prop="realClaDate" label="上课日期" width="120">
<template slot-scope="scope"> <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-notebook-1" />日期 {{ claTime.claDate }}</div>
<div class="item"><i class="el-icon-mouse" />星期{{ claTime.weekDay }}</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-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-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.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 class="item"><i class="el-icon-guide" />教室 {{ claTime.roomName }}</div>
</div> </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-notebook-1" />日期 {{ claTime.claDate }}</div>
<div class="item"><i class="el-icon-mouse" />星期{{ claTime.weekDay }}</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-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-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.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 class="item"><i class="el-icon-guide" />教室 {{ claTime.roomName }}</div>
</div> </div>
</div> </div>
@ -239,7 +243,7 @@ export default {
type: Boolean, type: Boolean,
default: false default: false
}, },
// //
needStudentIdParam: { needStudentIdParam: {
type: Boolean, type: Boolean,
default: false default: false

@ -19,9 +19,8 @@
<el-form-item label="班级:" prop="claId"> <el-form-item label="班级:" prop="claId">
<cla-select v-model="queryParams.claId" :dept-id="queryParams.deptId" clearable mounted-load-all /> <cla-select v-model="queryParams.claId" :dept-id="queryParams.deptId" clearable mounted-load-all />
</el-form-item> </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 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-item>
</el-form> </el-form>
@ -35,11 +34,11 @@
</el-table-column> </el-table-column>
<el-table-column align="center" width="180" prop="courseName" label="课程" /> <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="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="bookAttendCnt" label="预约人数" />
<el-table-column align="center" width="100" prop="realAttendCnt" 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="120" prop="lessCnt" label="最少开课人数" />
<el-table-column align="center" width="70" prop="atClassCnt" label="最多预约人数" /> <el-table-column align="center" width="120" prop="atClassCnt" label="最多预约人数" />
<el-table-column align="center" prop="status" label="状态"> <el-table-column align="center" prop="status" label="状态">
<template slot-scope="scope"> <template slot-scope="scope">
@ -47,7 +46,7 @@
<el-tag v-else-if="scope.row.status === '2'">已上课</el-tag> <el-tag v-else-if="scope.row.status === '2'">已上课</el-tag>
</template> </template>
</el-table-column> </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"> <template slot-scope="scope">
<el-button <el-button
v-if="scope.row.status === '1'" v-if="scope.row.status === '1'"
@ -62,7 +61,7 @@
type="text" type="text"
icon="el-icon-edit-outline" icon="el-icon-edit-outline"
@click="handleUpdateHadAttend(scope.row)" @click="handleUpdateHadAttend(scope.row)"
>编辑</el-button> >详情</el-button>
<el-button <el-button
v-if="scope.row.status === '1'" v-if="scope.row.status === '1'"
size="mini" size="mini"

@ -19,13 +19,17 @@
<el-form-item label="班级:" prop="claId"> <el-form-item label="班级:" prop="claId">
<cla-select v-model="queryParams.claId" :dept-id="queryParams.deptId" clearable mounted-load-all /> <cla-select v-model="queryParams.claId" :dept-id="queryParams.deptId" clearable mounted-load-all />
</el-form-item> </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 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-item>
</el-form> </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 type="selection" width="55" align="center" />
<el-table-column align="center" width="180" prop="realClaDate" label="上课时间" fixed="left"> <el-table-column align="center" width="180" prop="realClaDate" label="上课时间" fixed="left">
<template slot-scope="scope"> <template slot-scope="scope">
@ -34,7 +38,7 @@
</el-table-column> </el-table-column>
<el-table-column align="center" width="180" prop="claName" label="上课班级" /> <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="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="预约/实到"> <el-table-column align="center" width="180" prop="needAttendCnt" label="预约/实到">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tooltip effect="dark" placement="top"> <el-tooltip effect="dark" placement="top">
@ -58,7 +62,7 @@
<span> {{ scope.row.payTotalFee }} </span> <span> {{ scope.row.payTotalFee }} </span>
</template> </template>
</el-table-column> </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"> <template slot-scope="scope">
<el-button <el-button
v-hasPermi="['sc:claTime:update']" v-hasPermi="['sc:claTime:update']"

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

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

@ -23,7 +23,7 @@
<span class="option">{{ item.claName }}({{ item.deptName }})</span> <span class="option">{{ item.claName }}({{ item.deptName }})</span>
</div> </div>
<!-- <div class="inline-block staffName">--> <!-- <div class="inline-block staffName">-->
<!-- <span class="title">:</span>--> <!-- <span class="title">:</span>-->
<!-- <span class="option">{{ item.staffName }}</span>--> <!-- <span class="option">{{ item.staffName }}</span>-->
<!-- </div>--> <!-- </div>-->
<div class="inline-block recruitStatus"> <div class="inline-block recruitStatus">
@ -62,11 +62,11 @@ export default {
type: Boolean, type: Boolean,
default: false default: false
}, },
// // //
mountedLoadAll: { // mountedLoadAll: {
type: Boolean, // type: Boolean,
default: false // default: false
} // }
}, },
data() { data() {
return { return {
@ -117,10 +117,11 @@ export default {
} }
}, },
mounted() { 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: { methods: {
loadCla: function() { loadCla: function() {

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

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

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

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

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

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

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

@ -1,12 +1,12 @@
<!-- 员列表 --> <!-- 员列表 -->
<template> <template>
<div> <div>
<el-form ref="queryForm" :model="queryParams" :inline="true" label-width="80px"> <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 <el-input
v-model="queryParams.studentName" v-model="queryParams.studentName"
placeholder="请输入员姓名" placeholder="请输入员姓名"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
@ -33,7 +33,6 @@
</el-form-item> </el-form-item>
<el-form-item style="float: right"> <el-form-item style="float: right">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button> <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-item>
</el-form> </el-form>
@ -69,9 +68,16 @@
</el-col> </el-col>
</el-row> </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 type="selection" width="55" align="center" />
<el-table-column prop="studentName" label="学员姓名"> <el-table-column prop="studentName" label="员姓名">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.studentName }}</span> <span>{{ scope.row.studentName }}</span>
</template> </template>
@ -125,10 +131,10 @@
<change-student ref="changeStudent" @success="getList" /> <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"> <template slot="successTable" slot-scope="scope">
<el-table :data="scope.data"> <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="contactRelation" label="主要联系人" show-overflow-tooltip />-->
<el-table-column align="center" prop="phone" 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 /> <el-table-column align="center" prop="sex" label="性别" show-overflow-tooltip />
@ -153,7 +159,7 @@
</template> </template>
<template slot="failTable" slot-scope="scope"> <template slot="failTable" slot-scope="scope">
<el-table :data="scope.data"> <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="failMsg" label="失败原因" show-overflow-tooltip fixed="left" />
<!-- <el-table-column align="center" prop="contactRelation" label="主要联系人" show-overflow-tooltip />--> <!-- <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="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-option label="展示" value="1"></el-option>
</el-select> </el-select>
</el-form-item> </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 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-item>
</el-form> </el-form>
@ -72,9 +71,16 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </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 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" >--> <!-- <el-table-column label="门店/校区id" align="center" prop="deptId" >-->
<!-- <template v-for="item in scope.row.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"> <template #default="scope">
<!-- 调用方法获取名称用span或el-tag展示 --> <!-- 调用方法获取名称用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> --> <!-- 若不需要样式直接用span<span>{{ getDeptName(scope.row.deptId) }}</span> -->
</template> </template>
</el-table-column> </el-table-column>
@ -173,20 +179,7 @@
<!-- 标题表单项后添加 --> <!-- 标题表单项后添加 -->
<el-form-item label="门店" prop="deptId"> <el-form-item label="门店" prop="deptId">
<el-select <dept-select v-model="form.deptId" />
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>
</el-form-item> </el-form-item>
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" /> <el-input v-model="form.title" placeholder="请输入标题" />
@ -268,11 +261,13 @@ import { getToken } from '@/utils/auth';
import axios from 'axios'; import axios from 'axios';
import Pagination from '@/components/Pagination'; import Pagination from '@/components/Pagination';
import RightToolbar from '@/components/RightToolbar'; import RightToolbar from '@/components/RightToolbar';
import deptSelect from '@/components/system/dept/deptSelect'
export default { export default {
name: "Practice", name: "Practice",
components: { components: {
Pagination, Pagination,
deptSelect,
RightToolbar RightToolbar
}, },
data() { data() {
@ -630,8 +625,8 @@ export default {
this.$message.warning('请选择至少一条记录进行删除'); this.$message.warning('请选择至少一条记录进行删除');
return; return;
} }
const title=row.id?'是否确认删除标题为"' + row.title + '"的内容?':'是否确认删除选中的内容?'
this.$modal.confirm('是否确认删除瑜伽欣赏编号为"' + ids + '"的数据项?').then(function() { this.$modal.confirm(title).then(function() {
return delAppreciate(ids); return delAppreciate(ids);
}).then(() => { }).then(() => {
this.getList(); this.getList();

@ -20,9 +20,8 @@
<el-option label="展示" value="1"></el-option> <el-option label="展示" value="1"></el-option>
</el-select> </el-select>
</el-form-item> </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 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-item>
</el-form> </el-form>
@ -72,26 +71,19 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </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 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"> <template #default="scope">
<!-- 调用方法获取名称用span或el-tag展示 --> <!-- 调用方法获取名称用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> --> <!-- 若不需要样式直接用span<span>{{ getDeptName(scope.row.deptId) }}</span> -->
</template> </template>
</el-table-column> </el-table-column>
@ -173,20 +165,7 @@
<!-- 标题表单项后添加 --> <!-- 标题表单项后添加 -->
<el-form-item label="门店" prop="deptId"> <el-form-item label="门店" prop="deptId">
<el-select <dept-select v-model="form.deptId" />
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>
</el-form-item> </el-form-item>
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" /> <el-input v-model="form.title" placeholder="请输入标题" />
@ -262,6 +241,7 @@
<script> <script>
import {getInheritBase} from "@/api/columns/inherit"; import {getInheritBase} from "@/api/columns/inherit";
import { listHealthy, getHealthy, delHealthy, addHealthy, updateHealthy } from "@/api/columns/healthy"; 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 { listHealthy, getHealthy, delHealthy, addHealthy, updateHealthy } from "@/api/system/healthy";
import WangEditor from 'wangeditor'; import WangEditor from 'wangeditor';
@ -274,6 +254,7 @@ export default {
name: "Health", name: "Health",
components: { components: {
Pagination, Pagination,
deptSelect,
RightToolbar RightToolbar
}, },
data() { data() {
@ -631,8 +612,8 @@ export default {
this.$message.warning('请选择至少一条记录进行删除'); this.$message.warning('请选择至少一条记录进行删除');
return; return;
} }
const title=row.id?'是否确认删除标题为"' + row.title + '"的内容?':'是否确认删除选中的内容?'
this.$modal.confirm('是否确认删除健康饮食编号为"' + ids + '"的数据项?').then(function() { this.$modal.confirm(title).then(function() {
return delHealthy(ids); return delHealthy(ids);
}).then(() => { }).then(() => {
this.getList(); this.getList();

@ -20,9 +20,8 @@
<el-option label="展示" value="1"></el-option> <el-option label="展示" value="1"></el-option>
</el-select> </el-select>
</el-form-item> </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 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-item>
</el-form> </el-form>
@ -72,9 +71,16 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </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 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" >--> <!-- <el-table-column label="门店/校区id" align="center" prop="deptId" >-->
<!-- <template v-for="item in scope.row.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"> <template #default="scope">
<!-- 调用方法获取名称用span或el-tag展示 --> <!-- 调用方法获取名称用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> --> <!-- 若不需要样式直接用span<span>{{ getDeptName(scope.row.deptId) }}</span> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="标题" align="center" prop="title" /> <el-table-column label="标题" align="center" prop="title" width="150"/>
<el-table-column label="封面" align="center" prop="image" width="100"> <el-table-column label="封面" align="center" prop="image" >
<template slot-scope="scope"> <template slot-scope="scope">
<el-image <el-image
:src="getFullImgUrl(scope.row.image)" :src="getFullImgUrl(scope.row.image)"
@ -108,7 +114,7 @@
></el-image> ></el-image>
</template> </template>
</el-table-column> </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"> <el-table-column label="内容" align="center" prop="content" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
@ -171,20 +177,7 @@
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<!-- 标题表单项后添加 --> <!-- 标题表单项后添加 -->
<el-form-item label="门店" prop="deptId"> <el-form-item label="门店" prop="deptId">
<el-select <dept-select v-model="form.deptId" />
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>
</el-form-item> </el-form-item>
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" /> <el-input v-model="form.title" placeholder="请输入标题" />
@ -264,10 +257,12 @@ import { getToken } from '@/utils/auth';
import axios from 'axios'; import axios from 'axios';
import Pagination from '@/components/Pagination'; import Pagination from '@/components/Pagination';
import RightToolbar from '@/components/RightToolbar'; import RightToolbar from '@/components/RightToolbar';
import deptSelect from '@/components/system/dept/deptSelect'
export default { export default {
name: "Inherit", name: "Inherit",
components: { components: {
deptSelect,
Pagination, Pagination,
RightToolbar RightToolbar
}, },
@ -356,7 +351,7 @@ export default {
// return dept ? dept.deptName : ''; // return dept ? dept.deptName : '';
for(let e of this.deptList){ for(let e of this.deptList){
if(deptId==e.deptId){ if(deptId==e.deptId){
return deptId ? e.deptName : '未知部门'; return deptId ? e.deptName : '未知校区';
} }
} }
@ -626,8 +621,8 @@ export default {
this.$message.warning('请选择至少一条记录进行删除'); this.$message.warning('请选择至少一条记录进行删除');
return; return;
} }
const title=row.id?'是否确认删除标题为"' + row.title + '"的内容?':'是否确认删除选中的内容?'
this.$modal.confirm('是否确认删除瑜伽传承编号为"' + ids + '"的数据项?').then(function() { this.$modal.confirm(title).then(function() {
return delInherit(ids); return delInherit(ids);
}).then(() => { }).then(() => {
this.getList(); this.getList();

@ -20,9 +20,8 @@
<el-option label="展示" value="1"></el-option> <el-option label="展示" value="1"></el-option>
</el-select> </el-select>
</el-form-item> </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 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-item>
</el-form> </el-form>
@ -72,9 +71,16 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </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 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" >--> <!-- <el-table-column label="门店/校区id" align="center" prop="deptId" >-->
<!-- <template v-for="item in scope.row.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"> <template #default="scope">
<!-- 调用方法获取名称用span或el-tag展示 --> <!-- 调用方法获取名称用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> --> <!-- 若不需要样式直接用span<span>{{ getDeptName(scope.row.deptId) }}</span> -->
</template> </template>
</el-table-column> </el-table-column>
@ -173,20 +179,7 @@
<!-- 标题表单项后添加 --> <!-- 标题表单项后添加 -->
<el-form-item label="门店" prop="deptId"> <el-form-item label="门店" prop="deptId">
<el-select <dept-select v-model="form.deptId" />
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>
</el-form-item> </el-form-item>
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" /> <el-input v-model="form.title" placeholder="请输入标题" />
@ -268,11 +261,13 @@ import { getToken } from '@/utils/auth';
import axios from 'axios'; import axios from 'axios';
import Pagination from '@/components/Pagination'; import Pagination from '@/components/Pagination';
import RightToolbar from '@/components/RightToolbar'; import RightToolbar from '@/components/RightToolbar';
import deptSelect from '@/components/system/dept/deptSelect'
export default { export default {
name: "Practice", name: "Practice",
components: { components: {
Pagination, Pagination,
deptSelect,
RightToolbar RightToolbar
}, },
data() { data() {
@ -630,8 +625,8 @@ export default {
this.$message.warning('请选择至少一条记录进行删除'); this.$message.warning('请选择至少一条记录进行删除');
return; return;
} }
const title=row.id?'是否确认删除标题为"' + row.title + '"的内容?':'是否确认删除选中的内容?'
this.$modal.confirm('是否确认删除练习瞬间编号为"' + ids + '"的数据项?').then(function() { this.$modal.confirm(title).then(function() {
return delMoments(ids); return delMoments(ids);
}).then(() => { }).then(() => {
this.getList(); this.getList();

@ -20,9 +20,8 @@
<el-option label="展示" value="1"></el-option> <el-option label="展示" value="1"></el-option>
</el-select> </el-select>
</el-form-item> </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 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-item>
</el-form> </el-form>
@ -72,9 +71,16 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </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 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" >--> <!-- <el-table-column label="门店/校区id" align="center" prop="deptId" >-->
<!-- <template v-for="item in scope.row.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"> <template #default="scope">
<!-- 调用方法获取名称用span或el-tag展示 --> <!-- 调用方法获取名称用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> --> <!-- 若不需要样式直接用span<span>{{ getDeptName(scope.row.deptId) }}</span> -->
</template> </template>
</el-table-column> </el-table-column>
@ -173,20 +179,7 @@
<!-- 标题表单项后添加 --> <!-- 标题表单项后添加 -->
<el-form-item label="门店" prop="deptId"> <el-form-item label="门店" prop="deptId">
<el-select <dept-select v-model="form.deptId" />
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>
</el-form-item> </el-form-item>
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" /> <el-input v-model="form.title" placeholder="请输入标题" />
@ -268,11 +261,13 @@ import { getToken } from '@/utils/auth';
import axios from 'axios'; import axios from 'axios';
import Pagination from '@/components/Pagination'; import Pagination from '@/components/Pagination';
import RightToolbar from '@/components/RightToolbar'; import RightToolbar from '@/components/RightToolbar';
import deptSelect from '@/components/system/dept/deptSelect'
export default { export default {
name: "Practice", name: "Practice",
components: { components: {
Pagination, Pagination,
deptSelect,
RightToolbar RightToolbar
}, },
data() { data() {
@ -630,8 +625,8 @@ export default {
this.$message.warning('请选择至少一条记录进行删除'); this.$message.warning('请选择至少一条记录进行删除');
return; return;
} }
const title=row.id?'是否确认删除标题为"' + row.title + '"的内容?':'是否确认删除选中的内容?'
this.$modal.confirm('是否确认删除瑜伽常识编号为"' + ids + '"的数据项?').then(function() { this.$modal.confirm(title).then(function() {
return delSense(ids); return delSense(ids);
}).then(() => { }).then(() => {
this.getList(); this.getList();

@ -33,9 +33,8 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </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 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-item>
</el-form> </el-form>
@ -85,7 +84,14 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> </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 type="selection" width="55" align="center" />
<el-table-column label="门店图片" align="center" prop="banner" width="220"> <el-table-column label="门店图片" align="center" prop="banner" width="220">
<template slot-scope="scope"> <template slot-scope="scope">
@ -127,7 +133,7 @@
>查看内容</el-button> >查看内容</el-button>
</template> </template>
</el-table-column> </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"> <el-table-column label="是否展示" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch

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

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

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

@ -23,50 +23,19 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span=12> <el-col :span=12>
<div class="section-title"> <div class="section-title">
<h3>搜索会员</h3> <h1>选择会员</h1>
<el-button type="primary" size="small" @click="handleAddStudent"> </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-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>
</div>
</el-col> </el-col>
</el-row>
<el-row :gutter="20" v-if="selectedMember" style="padding-top: 10px" >
<el-col :span=12> <el-col :span=12>
<div class="selected-member" v-if="selectedMember"> <div class="selected-member">
<div class="section-title">
<h3>已选会员信息</h3>
</div>
<el-descriptions :column="1" border> <el-descriptions :column="1" border>
<el-descriptions-item label="会员编号">{{ selectedMember.studentId || '-' }}</el-descriptions-item> <el-descriptions-item label="会员编号">{{ selectedMember.studentId || '-' }}</el-descriptions-item>
<el-descriptions-item label="姓名">{{ selectedMember.studentName }}</el-descriptions-item> <el-descriptions-item label="姓名">{{ selectedMember.studentName }}</el-descriptions-item>
@ -77,10 +46,20 @@
<el-descriptions-item label="生日">{{ selectedMember.birthDay || '-' }}</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> </el-descriptions>
</div>
<div v-if="memberCards.length > 0" class="current-cards"> </el-col>
<h4>名下会员卡</h4> <el-col :span=12 v-loading="cardLoading" >
<el-table :data="memberCards" size="small"> <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="cardNo" label="卡号"></el-table-column>
<el-table-column prop="cardTypeName" label="类型"></el-table-column> <el-table-column prop="cardTypeName" label="类型"></el-table-column>
<el-table-column prop="chargeType" label="扣费方式" > <el-table-column prop="chargeType" label="扣费方式" >
@ -102,14 +81,11 @@
</el-table> </el-table>
</div> </div>
</el-col>
</div> </el-row>
<div v-else class="placeholder"> <div v-else class="placeholder">
<el-empty description="请选择会员"></el-empty> <el-empty description="请选择会员"></el-empty>
</div> </div>
</el-col>
</el-row>
<div class="step-actions"> <div class="step-actions">
<el-button type="primary" :disabled="!selectedMemberId" @click="nextStep"> <el-button type="primary" :disabled="!selectedMemberId" @click="nextStep">
下一步选择卡类型 下一步选择卡类型
@ -375,7 +351,7 @@
<script> <script>
import {select as cardTypeSelect} from '@/api/school/sc/memberCardType/index' 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 { select as receiptSelect} from '@/api/school/system/receipt'
import {selectDictLabel} from "@/utils/commonUtils"; import {selectDictLabel} from "@/utils/commonUtils";
import { campusList } from '@/api/school/system/dept' 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 memberCardApi from '@/api/school/sc/memberCard/index'
import commissionSelect from '@/components/sc/commission/commissionSelect' import commissionSelect from '@/components/sc/commission/commissionSelect'
import userSelect from '@/components/system/user/userSelect' import userSelect from '@/components/system/user/userSelect'
import studentSelect from '@/components/sc/student/studentSelect'
export default { export default {
name: 'MemberCardCreate', name: 'MemberCardCreate',
components: { components: {
memberCardTypeTable, memberCardTypeTable,
changeStudent, changeStudent,
commissionSelect, commissionSelect,
userSelect userSelect,
studentSelect
}, },
data() { data() {
return { return {
@ -401,7 +379,8 @@ export default {
monthCount: 0, monthCount: 0,
// //
searchKeyword: '', // searchKeyword: '',
cardLoading:false,
memberList: [], memberList: [],
selectedMemberId: null, selectedMemberId: null,
selectedMember: null, selectedMember: null,
@ -598,22 +577,44 @@ export default {
}, },
// //
async handleMemberSelect(studentId) { async handleMemberSelect(studentId) {
const member = this.memberList.find(m => m.studentId === studentId) if (!studentId) {
if (member) { this.memberList=[];
this.selectedMember = member this.selectedMemberId=null;
await this.loadMemberCards(studentId) 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) { async loadMemberCards(memberId) {
this.cardLoading=true
try { try {
const response = await memberCardApi.getMemberCards(memberId) const response = await memberCardApi.getMemberCards(memberId)
this.memberCards = response.data || [] this.memberCards = response.data || []
this.cardLoading=false
} catch (error) { } catch (error) {
console.error('加载会员卡失败:', error) console.error('加载会员卡失败:', error)
this.cardLoading=false
} }
}, },
// //
handleAddStudent() { handleAddStudent() {
this.$refs.changeStudent.handleAdd() this.$refs.changeStudent.handleAdd()
}, },
@ -843,7 +844,7 @@ export default {
this.memberList.unshift(newMember) this.memberList.unshift(newMember)
this.selectedMemberId = newMember.id this.selectedMemberId = newMember.id
this.selectedMember = newMember this.selectedMember = newMember
this.searchKeyword = '' // this.searchKeyword = ''
this.$message.success('会员创建成功') this.$message.success('会员创建成功')
}, },
@ -918,11 +919,11 @@ export default {
margin-top: 20px; margin-top: 20px;
.steps { .steps {
margin-bottom: 40px; margin-bottom: 10px;
} }
.step-content { .step-content {
padding: 20px; padding: 10px;
.section-title { .section-title {
display: flex; display: flex;

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

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

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

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

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

@ -64,16 +64,15 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="开售:" prop="sale"> <!-- <el-form-item label="开售:" prop="sale">-->
<el-switch <!-- <el-switch-->
v-model="queryParams.sale" <!-- v-model="queryParams.sale"-->
active-value="1" <!-- active-value="1"-->
inactive-value="0" <!-- inactive-value="0"-->
/> <!-- />-->
</el-form-item> <!-- </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 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-item>
</el-form> </el-form>
@ -113,7 +112,14 @@
</el-col> </el-col>
</el-row> </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 type="selection" width="55" align="center" />
<el-table-column prop="courseName" width="120" align="center" label="课程名称" /> <el-table-column prop="courseName" width="120" align="center" label="课程名称" />
<el-table-column prop="courseTypeName" align="center" label="课程类型" /> <el-table-column prop="courseTypeName" align="center" label="课程类型" />
@ -131,33 +137,43 @@
</div> </div>
</template> </template>
</el-table-column> </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="claCount" align="center" label="开班数" />
<el-table-column prop="claFee" align="center" label="教练课时费/节" > <el-table-column prop="claFee" align="center" label="教练课时费/节" >
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.claFee }} {{ scope.row.claFee }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="campusIds" align="center" label="开课校区"> <el-table-column prop="campusIds" align="center" label="开课校区">
<template slot-scope="scope"> <template slot-scope="scope">
<div > <div >
<span v-if="scope.row.campusIds==null"></span> <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> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="createTime" width="100" align="center" label="创建时间"> <el-table-column prop="createTime" width="100" align="center" label="创建时间">
<template slot-scope="scope">{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</template> <template slot-scope="scope">{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="sale" align="center" label="开售"> <!-- <el-table-column prop="sale" align="center" label="开售">-->
<template slot-scope="scope"> <!-- <template slot-scope="scope">-->
<el-switch <!-- <el-switch-->
v-model="scope.row.sale" <!-- v-model="scope.row.sale"-->
active-value="1" <!-- active-value="1"-->
inactive-value="0" <!-- inactive-value="0"-->
@change="handleSaleChange(scope.row)" <!-- @change="handleSaleChange(scope.row)"-->
/> <!-- />-->
</template> <!-- </template>-->
</el-table-column> <!-- </el-table-column>-->
<el-table-column prop="courseIntro" align="center" label="课程简介" :show-overflow-tooltip="true" /> <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"> <el-table-column width="170" label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
@ -233,7 +249,7 @@ export default {
courseTypeId: undefined, courseTypeId: undefined,
teachingMode: undefined, teachingMode: undefined,
chargeType: undefined, chargeType: undefined,
sale: '1' sale: ''
}, },
// //
courseTypeOptions: [], courseTypeOptions: [],

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

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

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

@ -1,11 +1,11 @@
<template> <template>
<div> <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-form ref="form" :model="form" label-width="120px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="员工:" prop="name"> <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-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@ -60,14 +60,14 @@ export default {
handleAdd() { handleAdd() {
this.reset() this.reset()
this.open = true this.open = true
this.title = '添加员基本信息' this.title = '添加员基本信息'
}, },
handleUpdate(row) { handleUpdate(row) {
this.reset() this.reset()
const data=JSON.parse(JSON.stringify(row)) const data=JSON.parse(JSON.stringify(row))
this.form=data this.form=data
this.open = true this.open = true
this.title = '修改员基本信息' this.title = '修改员基本信息'
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm: function() { submitForm: function() {

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

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

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

@ -1,6 +1,10 @@
<template> <template>
<div> <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 type="selection" width="55" align="center" />
<el-table-column prop="orderId" width="170" align="center" label="订单编号" fixed="left"> <el-table-column prop="orderId" width="170" align="center" label="订单编号" fixed="left">
<template slot-scope="scope"> <template slot-scope="scope">
@ -15,7 +19,7 @@
<el-tag v-if="scope.row.orderStatus === '3'" size="medium" type="danger"></el-tag> <el-tag v-if="scope.row.orderStatus === '3'" size="medium" type="danger"></el-tag>
</template> </template>
</el-table-column> </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="phone" width="110" align="center" label="联系电话" />
<el-table-column prop="orderDetail" width="200" align="left" label="销售内容"> <el-table-column prop="orderDetail" width="200" align="left" label="销售内容">
<template slot-scope="scope"> <template slot-scope="scope">

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

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

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

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

Loading…
Cancel
Save