7.17日任务

dev
lion 2 years ago
parent f7161d5c69
commit ffbe8b42cc

@ -53,7 +53,7 @@ export default {
.content {
line-height: 25px;
padding-left: 10px;
padding: 6px 0 0 10px;
padding: 6px 0 0 0px;
}
.v-right-content {
flex: 1;

@ -208,10 +208,10 @@ export default {
</script>
<style lang="scss">
.xy-table-item-label{
width: 140px;
text-align: right;
}
// .xy-table-item-label{
// width: 140px;
// text-align: right;
// }
.xy-table-item-min{
position: relative;
&::after{
@ -276,13 +276,15 @@ export default {
display: flex;
align-items: center;
padding-right: 80px;
// padding-right: 80px;
padding: 0 60px;
flex-direction: column;
&-label{
padding: 0 20px;
width:100%;
// padding: 0 20px;
}
&-content{
width:100%;
}
}
.el-form-item{

@ -72,10 +72,55 @@ export const constantRoutes = [{
title: '系统首页',
icon: 'dashboard'
}
}, ]
}]
},
{
path: '/course/apply_list',
component: Layout,
redirect: '/dashboard',
children: [{
path: '/course/apply_list',
name: '学员列表',
component: () => import('@/views/course/apply_list'),
meta: {
title: '学员列表',
icon: ''
}
}],
hidden: true
},
{
path: '/course/pay',
component: Layout,
redirect: '/dashboard',
children: [{
path: '/course/pay',
name: '缴费列表',
component: () => import('@/views/course/pay'),
meta: {
title: '缴费列表',
icon: ''
}
}],
hidden: true
},
{
path: '/course/attendance',
component: Layout,
redirect: '/dashboard',
children: [{
path: '/course/attendance',
name: '考勤管理',
component: () => import('@/views/course/attendance'),
meta: {
title: '考勤管理',
icon: ''
}
}],
hidden: true
}
]
]
/**

@ -1,8 +1,217 @@
<template>
</template>
<script>
</script>
<style>
</style>
<template>
<div>
<div>
<div ref="lxHeader">
<lx-header icon="md-apps" :text="$route.meta.title" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<div slot="content">
<div class="searchwrap" style="display: flex;align-items: center;">
<div>
<el-input v-model="select.name" placeholder="请输入课程名称"></el-input>
</div>
<div>
<el-date-picker v-model="select.daterange" type="daterange" range-separator="" start-placeholder=""
end-placeholder="结束日期">
</el-date-picker>
</div>
<div>
<el-select v-model="select.type" placeholder="请选择类别" clearable>
<el-option v-for="item in type_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-button type="primary" size="small">查询</el-button>
</div>
</div>
</div>
</lx-header>
</div>
</div>
<div>
<xy-table :list="list" :total="total" :table-item="table_item">
</xy-table>
</div>
</div>
</template>
<script>
export default {
components: {
},
data() {
return {
select: {
name: '',
daterange: '',
type: ''
},
type_options: [{
id: 0,
value: '常规课程'
}, {
id: 1,
value: '短期课程'
}],
status_options: [{
id: 0,
value: '进行中'
}, {
id: 1,
value: '未开始'
}],
list: [{
name: '第六期高级科创人才研修班',
daterange: '2024.3.1-2024.9.1',
type: '常规课程',
total: 60,
now_apply:50,
success_apply:20,
no_apply:5,
by_apply:25
}],
total: 0,
table_item: [{
prop: 'name',
label: '课程名称',
align: 'left'
}, {
prop: 'daterange',
label: '开课日期',
align: 'center',
width: 180,
}, {
prop: 'type',
label: '类别',
align: 'center',
width: 160,
}, {
prop: 'total',
label: '拟开课人数',
align: 'center',
width: 120,
}, {
prop: 'now_apply',
label: '目前报名人数',
align: 'center',
width: 120,
customFn: (cell) => {
return ( < div style = {{cursor: 'pointer',color: "blue",textDecoration: "underline"}}
on = {
{
['click']: (e) => {
if(cell.now_apply<1){
return
}
this.goApply()
}
}
}
>
{
cell.now_apply?cell.now_apply:0
} </div> )
}
}, {
prop: 'success_apply',
label: '审核通过人数',
align: 'center',
width: 120,
customFn: (cell) => {
return ( < div style = {{cursor: 'pointer',color: "blue",textDecoration: "underline"}}
on = {
{
['click']: (e) => {
if(cell.success_apply<1){
return
}
this.goApply()
}
}
}
>
{
cell.success_apply?cell.success_apply:0
} </div> )
}
}, {
prop: 'no_apply',
label: '审核不通过人数',
align: 'center',
width: 120,
customFn: (cell) => {
return ( < div style = {{cursor: 'pointer',color: "blue",textDecoration: "underline"}}
on = {
{
['click']: (e) => {
if(cell.no_apply<1){
return
}
this.goApply()
}
}
}
>
{
cell.no_apply?cell.no_apply:0
} </div> )
}
}, {
prop: 'by_apply',
label: '待审核人数',
align: 'center',
width: 120,
customFn: (cell) => {
return ( < div style = {{cursor: 'pointer',color: "blue",textDecoration: "underline"}}
on = {
{
['click']: (e) => {
if(cell.by_apply<1){
return
}
this.goApply()
}
}
}
>
{
cell.by_apply?cell.by_apply:0
} </div> )
}
}]
}
},
created() {
},
methods: {
goApply(){
window.location.href = '/admin/#/course/apply_list'
},
}
}
</script>
<style lang="scss" scoped>
.searchwrap {
display: flex;
align-items: center;
&>div {
display: flex;
align-items: center;
margin-right: 10px;
span {
min-width: 70px;
}
}
}
</style>

@ -0,0 +1,172 @@
<template>
<div>
<div>
<div ref="lxHeader">
<lx-header icon="md-apps" :text="$route.meta.title" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<div slot="content" style="padding-left:0">
<div class="txl">
<div>课程名称第六期高级科创人才研修班</div>
<div>开课日期2024.3.1-----2024.9.1</div>
<div>类别正常课程</div>
</div>
<div class="searchwrap" style="display: flex;align-items: center;">
<div>
<el-input v-model="select.name" placeholder="请输入姓名"></el-input>
</div>
<div>
<el-select v-model="select.status" placeholder="请选择状态" clearable>
<el-option v-for="item in status_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-button type="primary" size="small">查询</el-button>
</div>
<div>
<el-button type="primary" size="small">导入</el-button>
</div>
</div>
</div>
</lx-header>
</div>
</div>
<div>
<xy-table :list="list" :total="total" :table-item="table_item">
<template v-slot:btns>
<el-table-column align='center' fixed="right" label="操作" width="80" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="checkDetail"></el-button>
</template>
</el-table-column>
</template>
</xy-table>
</div>
<student-detail ref="studentDetail"></student-detail>
</div>
</template>
<script>
import studentDetail from '@/views/student/components/detail.vue';
export default {
components: {
studentDetail
},
data() {
return {
select: {
name: '',
daterange: '',
type: ''
},
status_options: [{
id: 2,
value: '待审核'
},{
id: 0,
value: '未通过'
}, {
id: 1,
value: '已通过'
}],
list: [{
name:'王同学',
sex:'男',
age:30,
company:'**股份公司',
zw:'总经理',
mobile:'13812345671',
date:'2024.2.4 10:21',
area:'往期学员推荐',
status:'待审核'
}],
total: 0,
table_item: [{
prop: 'name',
label: '姓名',
align: 'center',
width: 120
}, {
prop: 'sex',
label: '性别',
align: 'center',
width: 120
}, {
prop: 'age',
label: '年龄',
align: 'center',
width: 120
}, {
prop: 'company',
label: '公司',
align: 'left'
}, {
prop: 'zw',
label: '职务',
align: 'center',
width: 160,
}, {
prop: 'mobile',
label: '联系电话',
align: 'center',
width: 180,
}, {
prop: 'date',
label: '报名时间',
align: 'center',
width: 180,
}, {
prop: 'area',
label: '报名来源',
align: 'center',
width: 180,
}, {
prop: 'status',
label: '状态',
align: 'center',
width: 120,
}]
}
},
created() {
},
methods: {
checkDetail(type, id) {
this.$refs.studentDetail.type = 'check'
this.$refs.studentDetail.isShow = true
},
}
}
</script>
<style lang="scss" scoped>
.txl {
display: flex;
align-items: center;
margin-bottom: 10px;
&>div {
margin-right: 10px;
}
}
.searchwrap {
display: flex;
align-items: center;
&>div {
display: flex;
align-items: center;
margin-right: 10px;
span {
min-width: 70px;
}
}
}
</style>

@ -0,0 +1,199 @@
<template>
<div>
<div>
<div ref="lxHeader">
<lx-header icon="md-apps" :text="$route.meta.title" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<div slot="content">
<div class="searchwrap" style="display: flex;align-items: center;">
<div>
<el-input v-model="select.name" placeholder="请输入课时名称"></el-input>
</div>
<div>
<el-date-picker v-model="select.daterange" type="date" placeholder="考勤日期">
</el-date-picker>
</div>
<div>
<el-button type="primary" size="small">查询</el-button>
<el-button type="primary" size="small">导出</el-button>
</div>
</div>
</div>
</lx-header>
</div>
</div>
<div>
<xy-table :list="list" :total="total" :table-item="table_item">
<template v-slot:btns>
<el-table-column align='center' label="操作" width="280" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small">导入</el-button>
<el-button type="primary" size="small" @click="showAttendance"></el-button>
</template>
</el-table-column>
</template>
</xy-table>
</div>
<showAttendance ref="showAttendance"></showAttendance>
</div>
</template>
<script>
import showAttendance from './components/showAttendance.vue'
export default {
components: {
showAttendance
},
data() {
return {
select: {
name: '',
daterange: '',
type: ''
},
list: [{
name: '第六期高级科创人才研修班',
daterange: '2024.3.1-2024.9.1',
type: '常规课程',
total: 60,
now_apply: 50,
success_apply: 20,
no_apply: 5,
by_apply: 25
}],
total: 0,
table_item: [{
prop: 'daterange',
label: '考勤日期',
align: 'center',
width: 180,
},{
prop: 'name',
label: '课程名称',
align: 'left'
}, {
prop: 'type',
label: '授课教师',
align: 'center',
width: 160,
}, {
prop: 'total',
label: '教室',
align: 'center',
width: 180,
}, {
prop: 'now_apply',
label: '应到人数',
align: 'center',
width: 120,
customFn: (cell) => {
return ( <div style = {
{
cursor: 'pointer',
color: "blue",
textDecoration: "underline"
}
}
on = {
{
['click']: (e) => {
if (cell.now_apply < 1) {
return
}
this.showAttendance()
}
}
}>
{
cell.now_apply ? cell.now_apply : 0
} </div> )
}
},
{
prop: 'success_apply',
label: '实到人数',
align: 'center',
width: 120,
customFn: (cell) => {
return ( <div style = {
{
cursor: 'pointer',
color: "blue",
textDecoration: "underline"
}
}
on = {
{
['click']: (e) => {
if (cell.success_apply < 1) {
return
}
this.showAttendance()
}
}
}>
{
cell.success_apply ? cell.success_apply : 0
} </div> )
}
},
{
prop: 'no_apply',
label: '缺勤人数',
align: 'center',
width: 120,
customFn: (cell) => {
return ( <div style = {
{
cursor: 'pointer',
color: "blue",
textDecoration: "underline"
}
}
on = {
{
['click']: (e) => {
if (cell.no_apply < 1) {
return
}
this.showAttendance()
}
}
} >
{
cell.no_apply ? cell.no_apply : 0
} </div> )
}
}]
}
},
created() {
},
methods: {
showAttendance() {
this.$refs.showAttendance.isShow = true
}
}
}
</script>
<style lang="scss" scoped>
.searchwrap {
display: flex;
align-items: center;
&>div {
display: flex;
align-items: center;
margin-right: 10px;
span {
min-width: 70px;
}
}
}
</style>

@ -36,7 +36,7 @@
<el-table-column align='center' label="操作" width="280" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="editClass('add',scope.row.id)"></el-button>
<el-button type="primary" size="small">考勤</el-button>
<el-button type="primary" size="small" @click="goAttendance"></el-button>
<el-button type="primary" size="small" @click="setMain"></el-button>
</template>
</el-table-column>
@ -118,7 +118,10 @@
created() {
},
methods: {
methods: {
goAttendance(){
window.location.href = '/admin/#/course/attendance'
},
editClass(type, id) {
this.$refs.addClass.isShow = true

@ -51,7 +51,7 @@
</div>
<template v-slot:footer>
<el-button type="primary" style='margin-left:5px;margin-bottom:5px;' @click="submit"></el-button>
<el-button plain type="primary" ghost style='margin-left:5px;margin-bottom:5px;'
<el-button plain type="primary" plain style='margin-left:5px;margin-bottom:5px;'
@click="isShow=false">取消</el-button>
</template>
</Modal>

@ -8,7 +8,7 @@
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>课程名称
</div>
<div class="xy-table-item-content">
<el-input v-model="form.name" placeholder="请输入课程名称" clearable style="width: 300px;"></el-input>
<el-input v-model="form.name" placeholder="请输入课程名称" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
@ -18,7 +18,7 @@
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>课程类别
</div>
<div class="xy-table-item-content">
<el-select v-model="form.type" placeholder="请选择类别" clearable style="width: 300px;">
<el-select v-model="form.type" placeholder="请选择类别" clearable style="width: 100%;">
<el-option v-for="item in type_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
@ -41,7 +41,7 @@
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>开课日期
</div>
<div class="xy-table-item-content">
<el-date-picker style="width: 300px;" v-model="form.daterange" type="daterange" range-separator=""
<el-date-picker style="width: 100%;" v-model="form.daterange" type="daterange" range-separator=""
start-placeholder="开课日期" end-placeholder="结束日期">
</el-date-picker>
</div>
@ -54,7 +54,7 @@
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>开课人数
</div>
<div class="xy-table-item-content">
<el-input style="width: 300px;" v-model="form.period" placeholder="请输入开课人数" clearable></el-input>
<el-input style="width: 100%;" v-model="form.period" placeholder="请输入开课人数" clearable></el-input>
</div>
</div>
</template>
@ -64,7 +64,7 @@
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>所在班级地点
</div>
<div class="xy-table-item-content">
<el-input style="width: 300px;" v-model="form.end_time" placeholder="请输入所在班级(地点)" clearable></el-input>
<el-input style="width: 100%;" v-model="form.end_time" placeholder="请输入所在班级(地点)" clearable></el-input>
</div>
</div>
</template>
@ -74,7 +74,7 @@
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>面向学员的企业性质
</div>
<div class="xy-table-item-content">
<el-select style="width: 300px;" v-model="form.content" placeholder="请选择" clearable>
<el-select style="width: 100%;" v-model="form.content" placeholder="请选择" clearable>
<el-option v-for="item in type_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
@ -87,7 +87,7 @@
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>所属行业
</div>
<div class="xy-table-item-content">
<el-select style="width: 300px;" v-model="form.require" placeholder="请选择" clearable>
<el-select style="width: 100%;" v-model="form.require" placeholder="请选择" clearable>
<el-option v-for="item in type_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
@ -100,7 +100,7 @@
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>状态
</div>
<div class="xy-table-item-content">
<el-select style="width: 300px;" v-model="form.status" placeholder="请选择" clearable>
<el-select style="width: 100%;" v-model="form.status" placeholder="请选择" clearable>
<el-option v-for="item in type_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
@ -109,11 +109,11 @@
</template>
<template v-slot:settings>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>课程设置
<div class="xy-table-item-label" style="font-weight: bold;display:none">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>
</div>
<div class="xy-table-item-content" style="flex-grow: 1;">
<el-button
课程设置<el-button
type="primary"
icon="md-add"
style="margin-bottom: 10px"
@ -137,7 +137,7 @@
<el-button
size="small"
type="danger"
ghost
plain
@click="form.settings.splice(scope.$index, 1)"
>删除</el-button>
</template>
@ -151,7 +151,7 @@
<template v-slot:footerContent>
<el-button type="primary" style='margin-left:5px;margin-bottom:5px;' @click="submit"></el-button>
<el-button type="primary" ghost style='margin-left:5px;margin-bottom:5px;' @click="isShow=false"></el-button>
<el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;' @click="isShow=false"></el-button>
</template>
</xy-dialog>

@ -43,7 +43,7 @@
<template v-slot:footerContent>
<el-button type="primary" style='margin-left:5px;margin-bottom:5px;' @click="submit"></el-button>
<el-button plain type="primary" ghost style='margin-left:5px;margin-bottom:5px;'
<el-button plain type="primary" plain style='margin-left:5px;margin-bottom:5px;'
@click="isShow=false">取消</el-button>
</template>

@ -17,7 +17,7 @@
<template v-slot:footerContent>
<el-button type="primary" style='margin-left:5px;margin-bottom:5px;' @click="submit"></el-button>
<el-button plain type="primary" ghost style='margin-left:5px;margin-bottom:5px;'
<el-button plain type="primary" plain style='margin-left:5px;margin-bottom:5px;'
@click="isShow=false">取消</el-button>
</template>
@ -78,8 +78,5 @@
</script>
<style scoped lang="scss">
::v-deep .menu,
::v-deep .settings {
flex-basis: 100%;
}
</style>

@ -0,0 +1,100 @@
<template>
<div>
<xy-dialog ref="dialog" :width="50" :is-show.sync="isShow" :type="'form'" title="核对缴费单"
:form="form">
<template v-slot:name>
<div class="xy-table-item" style="padding:0">
<div class="xy-table-item-label" style="font-weight: bold;width:0;padding:0">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>
</div>
<div class="xy-table-item-content" style="flex-grow:1;text-align:center">
<div>
<!-- <el-image src="../../../assets/logo-mini.png" :preview-src-list="['../../../assets/logo-mini.png']"></el-image> -->
<img style="height:300px" src="../../../assets/logo-mini.png" alt="">
</div>
<div>
<el-button type="primary" style='margin:15px;' @click="isShow=false"></el-button>
<el-button type="primary" plain style='margin:15px;' @click="isShow=false"></el-button>
</div>
</div>
</div>
</template>
<template v-slot:footerContent>
<div></div>
<!-- <el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;' @click="isShow=false"></el-button> -->
</template>
</xy-dialog>
</div>
</template>
<script>
export default {
components: {
},
data() {
return {
isShow: false,
type: 'add',
id: '',
type_options: [{
id: 0,
value: '已缴'
}, {
id: 1,
value: '未缴'
}],
form: {
name: '',
},
}
},
created() {},
methods: {
submit() {
save({
table_name: 'new_plans',
...this.form
}).then(res => {
Message({
type: 'success',
message: '核对成功'
})
this.isShow = false
this.$emit('refresh')
})
},
getDetail() {
show({
id: this.id,
table_name: 'new_plans',
}).then(res => {
})
}
},
watch: {
isShow(newVal) {
if (newVal) {
if (this.type === 'editor') {
// this.getDetail()
}
} else {
this.id = ''
this.$refs['dialog'].reset()
}
},
}
}
</script>
<style scoped lang="scss">
::v-deep .name{
flex-basis: 100%;
}
</style>

@ -0,0 +1,92 @@
<template>
<div>
<xy-dialog ref="dialog" :width="50" :is-show.sync="isShow" :type="'form'" title="催缴通知"
:form="form">
<template v-slot:name>
<div class="xy-table-item" style="padding:0">
<div class="xy-table-item-label" style="font-weight: bold;width:0;padding:0">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>
</div>
<div class="xy-table-item-content" style="flex-grow:1;text-align: center;margin: 0 40px;">
<div style="display:flex;justify-content: center;">
<div style="width: 160px;text-align: right;margin-right:10px">发布内容</div>
<div style="text-align: left;flex-grow:1;min-height: 200px;border:1px solid #ddd;overflow: scroll;padding:10px">请尽快缴费</div>
</div>
<div>
<el-button type="primary" style='margin:15px;' @click="isShow=false"></el-button>
<el-button type="primary" plain style='margin:15px;' @click="isShow=false"></el-button>
</div>
</div>
</div>
</template>
<template v-slot:footerContent>
<div></div>
</template>
</xy-dialog>
</div>
</template>
<script>
export default {
components: {
},
data() {
return {
isShow: false,
type: 'add',
id: '',
form: {
name: '',
},
}
},
created() {},
methods: {
submit() {
save({
table_name: 'new_plans',
...this.form
}).then(res => {
Message({
type: 'success',
message: '发送成功'
})
this.isShow = false
this.$emit('refresh')
})
},
getDetail() {
show({
id: this.id,
table_name: 'new_plans',
}).then(res => {
})
}
},
watch: {
isShow(newVal) {
if (newVal) {
if (this.type === 'editor') {
// this.getDetail()
}
} else {
this.id = ''
this.$refs['dialog'].reset()
}
},
}
}
</script>
<style scoped lang="scss">
::v-deep .name{
flex-basis: 100%;
}
</style>

@ -0,0 +1,141 @@
<template>
<div>
<xy-dialog ref="dialog" :width="70" :is-show.sync="isShow" :type="'form'" :title="'考勤明细'" :form="form">
<template v-slot:settings>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold;width:0;display:none">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>
</div>
<div class="xy-table-item-content" style="flex-grow: 1;">
<div class="txl">
<div>
<div>课时名称管理思维</div>
<div>授课教师王教授</div>
<div>授课教室功能教室1</div>
<div>考勤日期2023.3.2</div>
</div>
<div style="display: flex;align-items: center;margin-bottom:15px">
<div style="margin-right: 10px;">
<el-input v-model="select.name" placeholder="请输入学员姓名"></el-input>
</div>
<div style="margin-right: 10px;">
<el-select v-model="select.type" placeholder="请选择状态" clearable>
<el-option v-for="item in type_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div style="margin-right: 10px;">
<el-button type="primary" size="small">查询</el-button>
</div>
</div>
<div>
<xy-table :list="list" :table-item="table_item" :isPage="false">
<template v-slot:btns>
<div></div>
</template>
</xy-table>
</div>
</div>
</div>
</div>
</template>
<template v-slot:footerContent>
<el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;' @click="isShow=false"></el-button>
</template>
</xy-dialog>
</div>
</template>
<script>
export default {
components: {
},
data() {
return {
isShow: false,
type: 'add',
id: '',
select:{
name:'',
type:''
},
form: {
settings: '',
},
type_options:[{
id:0,
value:'正常'
},{
id:1,
value:'缺勤'
}],
list:[{
name:'王同学',
time:'9:10',
status:'正常'
},{
name:'李同学',
time:'',
status:'缺勤'
}],
table_item:[{
prop: 'name',
label: '学员姓名',
align: 'center'
},{
prop: 'time',
label: '考勤时间',
align: 'center'
},{
prop: 'status',
label: '状态',
align: 'center',
customFn: (cell) => {
return ( < div style = {{color: cell.status=='正常'?"blue":"red"}}
>
{
cell.status?cell.status:''
} </div> )
}
}]
}
},
created() {},
methods: {
getDetail() {
show({
id: this.id,
table_name: 'new_plans',
}).then(res => {
})
}
},
watch: {
isShow(newVal) {
if (newVal) {
if (this.type === 'editor') {
// this.getDetail()
}
} else {
this.id = ''
this.$refs['dialog'].reset()
}
},
}
}
</script>
<style scoped lang="scss">
::v-deep .settings {
flex-basis: 100%;
}
</style>

@ -25,7 +25,7 @@
<template v-slot:footerContent>
<el-button type="primary" ghost style='margin-left:5px;margin-bottom:5px;' @click="isShow=false"></el-button>
<el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;' @click="isShow=false"></el-button>
</template>
</xy-dialog>

@ -42,11 +42,12 @@
<div>
<xy-table :list="list" :total="total" :table-item="table_item">
<template v-slot:btns>
<el-table-column align='center' label="操作" width="320" header-align="center">
<el-table-column align='center' label="操作" width="380" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="editCourse('add',scope.row.id)"></el-button>
<el-button type="danger" size="small">删除</el-button>
<el-button type="primary" size="small" @click="toTxl"></el-button>
<el-button type="primary" size="small" @click="toTxl"></el-button>
<el-button type="primary" size="small" @click="toPay"></el-button>
<el-button type="primary" size="small" @click="showQrCode"></el-button>
</template>
</el-table-column>
@ -139,6 +140,9 @@
},
toTxl() {
window.location.href = '/admin/#/course/txl'
},
toPay(){
window.location.href = '/admin/#/course/pay'
},
deleteList() {
var that = this;

@ -0,0 +1,202 @@
<template>
<div>
<div>
<div ref="lxHeader">
<lx-header icon="md-apps" :text="$route.meta.title" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<div slot="content" style="padding-left:0">
<div class="txl">
<div>课程名称第六期高级科创人才研修班</div>
<div>开课日期2024.3.1-----2024.9.1</div>
<div>类别正常课程</div>
</div>
<div class="searchwrap" style="display: flex;align-items: center;">
<div>
<el-input v-model="select.name" placeholder="请输入姓名"></el-input>
</div>
<div>
<el-select v-model="select.status" placeholder="请选择状态" clearable>
<el-option v-for="item in status_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-button type="primary" size="small">查询</el-button>
</div>
<div>
<el-button type="primary" size="small">导出</el-button>
</div>
<div>
<el-button type="primary" size="small" @click="showCheckPay"></el-button>
</div>
<div>
<el-button type="primary" size="small" @click="showSendMessage"></el-button>
</div>
</div>
</div>
</lx-header>
</div>
</div>
<div>
<xy-table :list="list" :total="total" :showIndex='false' :table-item="table_item"
@selection-change="selectionChange">
<template v-slot:btns>
<el-table-column align='center' fixed="right" label="操作" width="80" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="showCheckPay"></el-button>
</template>
</el-table-column>
</template>
</xy-table>
</div>
<checkPay ref="checkPay"></checkPay>
<sendMessage ref="sendMessage"></sendMessage>
</div>
</template>
<script>
import checkPay from './components/checkPay.vue';
import sendMessage from './components/sendMessage.vue';
export default {
components: {
checkPay,
sendMessage
},
data() {
return {
select: {
name: '',
daterange: '',
type: ''
},
status_options: [{
id: 0,
value: '未缴'
}, {
id: 1,
value: '待确认'
}, {
id: 2,
value: '已缴'
}],
showImg:false,
srcList:[],
list: [{
name: '王同学',
company: '**股份公司',
zw: '总经理',
mobile: '13812345671',
date: '2024.2.4 10:21',
status: '未缴',
img: 'http://suzhoukeji-test.ali251.langye.net/admin/static/img/logo-mini.e480d6fa.png'
},{
name: '王同学',
company: '**股份公司',
zw: '总经理',
mobile: '13812345671',
date: '2024.2.4 10:21',
status: '未缴',
img: ''
}],
total: 0,
table_item: [{
type: 'selection',
width: 50
}, {
prop: 'name',
label: '姓名',
align: 'center',
width: 120
}, {
prop: 'company',
label: '公司',
align: 'left'
}, {
prop: 'zw',
label: '职务',
align: 'center',
width: 160,
}, {
prop: 'mobile',
label: '联系电话',
align: 'center',
width: 180,
}, {
prop: 'date',
label: '报名时间',
align: 'center',
width: 180,
}, {
prop: 'status',
label: '状态',
align: 'center',
width: 120,
}, {
prop: 'img',
label: '缴费截图',
align: 'center',
width: 120,
customFn: (cell) => {
return ( cell.img?<el-image style={{width:'40px',height:'40px'}} src={cell.img} preview-src-list={this.srcList}
on = {
{
['click']: (e) => {
if(cell.img){
this.srcList = []
this.srcList.push(cell.img)
}
}
}
}
></el-image>:'' )
}
}]
}
},
created() {
},
methods: {
showCheckPay(type, id){
this.$refs.checkPay.isShow = true
},
showSendMessage(){
this.$refs.sendMessage.isShow = true
},
selectionChange() {
},
}
}
</script>
<style lang="scss" scoped>
.txl {
display: flex;
align-items: center;
margin-bottom: 10px;
&>div {
margin-right: 10px;
}
}
.searchwrap {
display: flex;
align-items: center;
&>div {
display: flex;
align-items: center;
margin-right: 10px;
span {
min-width: 70px;
}
}
}
</style>

@ -56,22 +56,22 @@
<template v-slot:btns>
<el-table-column align='center' fixed="right" label="操作" width="80" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small">查看</el-button>
<el-button type="primary" size="small" @click="showDetail('show')"></el-button>
</template>
</el-table-column>
</template>
</xy-table>
</div>
<add-course ref="addCourse"></add-course>
<student-detail ref="studentDetail"></student-detail>
</div>
</template>
<script>
import addCourse from './components/addCourse.vue';
import studentDetail from '@/views/student/components/detail.vue';
export default {
components:{
addCourse
studentDetail
},
data() {
return {
@ -94,7 +94,9 @@
id: 1,
value: '已通过'
}],
list: [],
list: [{
name:'王同学'
}],
total: 0,
table_item: [{
prop: 'name',
@ -108,7 +110,7 @@
width:200
}, {
prop: 'zw',
label: '职',
label: '职',
align: 'center',
width: 160,
}, {
@ -149,10 +151,10 @@
},
methods: {
editCourse(type,id){
showDetail(type,id){
this.$refs.addCourse.type = type
this.$refs.addCourse.isShow = true
this.$refs.studentDetail.type = type
this.$refs.studentDetail.isShow = true
},
deleteList() {
var that = this;

@ -0,0 +1,283 @@
<template>
<div>
<xy-dialog ref="dialog" :width="50" :is-show.sync="isShow" :type="'form'" :title="type === 'show' ? '查看个人明细' : '审核'"
:form="form">
<template v-slot:show>
<div class="xy-table-item" style="padding: 0 20px;">
<div class="xy-table-item-label" style="font-weight: bold;width:0;padding: 0;display: none;">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>
</div>
<div class="xy-table-item-content" style="flex-grow: 1;">
<div class="courseName">
<div>课程名称第六期高级科创人才研修班</div>
<div>开课日期2024.3.1-----2024.9.1</div>
<div>类别正常课程</div>
</div>
<div>
<lx-header icon="" text="个人信息" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
</lx-header>
<div class="studentInfo">
<div>
<div>
<div><span>姓名</span><span>马同学</span></div>
<div><span>性别</span><span></span></div>
</div>
<div>
<span></span>
<img src="../../../assets/logo-mini.png"></img>
</div>
</div>
<div>
<div><span>出生日期</span><span></span></div>
<div><span>手机号码</span><span></span></div>
</div>
<div>
<div><span>邮箱</span><span></span></div>
<div><span>最高学历</span><span></span></div>
</div>
<div>
<div>最高学历毕业院校及专业</div>
</div>
<div>
<div><span>个人荣誉</span><span></span></div>
</div>
<div>
<div><span>个人简历</span><span></span></div>
</div>
</div>
</div>
<div>
<lx-header icon="" text="公司信息" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
</lx-header>
<div class="companyInfo">
<div>
<span>公司名称</span>
<span>**股份有限公司</span>
</div>
<div>
<span>个人职务</span>
<span>总经理</span>
</div>
<div>
<span>是否有股份</span>
<span>有股份</span>
</div>
<div>
<span>公司成立时间</span>
<span>2011-9-1</span>
</div>
<div>
<span>公司所属区域</span>
<span>工业园区</span>
</div>
<div>
<span>公司地址</span>
<span>工业园区独墅湖科教区</span>
</div>
<div>
<span>企业性质</span>
<span>上市公司子公司</span>
</div>
<div>
<span>所属行业</span>
<span>纳米新材料</span>
</div>
<div>
<span>主营业务</span>
<span>纳米新材料</span>
</div>
<div>
<span>公司简介</span>
<span>纳米新材料</span>
</div>
<div>
<span>当前融资情况</span>
<span>融资进行中</span>
</div>
<div>
<span>是否需要融资</span>
<span></span>
</div>
<div>
<span>报名信息来源</span>
<span>新闻媒体</span>
</div>
<div>
<span>备注</span>
<span>新闻媒体</span>
</div>
</div>
<lx-header icon="" text="审核" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
</lx-header>
<div v-if="type=='show'">
<div class="studentInfo">
<div>
<span>审核结果</span>
<span>未通过</span>
</div>
<div>
<span>不通过原因</span>
<span>1111</span>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<template v-slot:status v-if="type=='check'">
<div class="xy-table-item" style="padding:0 20px">
<div class="xy-table-item-label" style="font-weight: bold;display: none;">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>
</div>
<div class="xy-table-item-content">
<el-select style="width: 300px;" v-model="form.status" placeholder="请选择" clearable>
<el-option v-for="item in status_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:remark v-if="form.status===2">
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>不通过原因
</div>
<div class="xy-table-item-content">
<el-input type="textarea" v-model="form.remark" placeholder="请输入不通过原因"></el-input>
</div>
</div>
</template>
<template v-slot:footerContent>
<el-button type="primary" style='margin-left:5px;margin-bottom:5px;' v-if="type=='check'" @click="submit"></el-button>
<el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;' v-if="type=='check'" @click="isShow=false"></el-button>
<el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;' v-if="type=='show'" @click="isShow=false"></el-button>
</template>
</xy-dialog>
</div>
</template>
<script>
export default {
components: {
},
data() {
return {
isShow: false,
type: 'show',
id: '',
status_options: [{
id: 0,
value: '待审核'
}, {
id: 1,
value: '通过'
}, {
id: 2,
value: '不通过'
}],
student_info: {},
form: {
show: '',
status:'',
remark:''
},
}
},
created() {},
methods: {
submit() {
if (this.id) {
this.form.id = this.id
}
save({
table_name: 'new_plans',
...this.form
}).then(res => {
Message({
type: 'success',
message: '审核成功'
})
this.isShow = false
this.$emit('refresh')
})
},
getDetail() {
show({
id: this.id,
table_name: 'new_plans',
}).then(res => {
})
}
},
watch: {
isShow(newVal) {
if (newVal) {
if (this.type === 'editor') {
// this.getDetail()
}
} else {
this.id = ''
this.type = ''
this.$refs['dialog'].reset()
}
},
}
}
</script>
<style scoped lang="scss">
::v-deep .show {
flex-basis: 100%;
}
::v-deep .v-header {
margin-top: 0 !important;
}
.studentInfo {
&>div {
display: flex;
&>div {
width: 50%;
span:first-child {
display: inline-block;
width: 160px;
text-align: right;
}
}
img {
width: 80px;
height: 80px;
}
}
}
.companyInfo {
&>div {
display: flex;
span:first-child {
display: inline-block;
width: 160px;
text-align: right;
}
}
}
</style>

@ -0,0 +1,204 @@
<template>
<div>
<div>
<div ref="lxHeader">
<lx-header icon="md-apps" :text="$route.meta.title" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<div slot="content">
<div class="searchwrap" style="display: flex;align-items: center;">
<div v-if="path==2">
<div>
<el-input v-model="select.name" placeholder="请输入课程名称"></el-input>
</div>
</div>
<div v-else>
<div>
<el-input v-model="select.name" placeholder="请输入姓名"></el-input>
</div>
<div>
<el-input v-model="select.company" placeholder="请输入公司名称"></el-input>
</div>
<div>
<el-select v-model="select.type" placeholder="请选择职务" clearable>
<el-option v-for="item in type_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.type" placeholder="请选择企业性质" clearable>
<el-option v-for="item in type_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.status" placeholder="请选择所属区域" clearable>
<el-option v-for="item in type_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.type" placeholder="请选择所属行业" clearable>
<el-option v-for="item in type_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
</div>
<div>
<el-button type="primary" size="small">查询</el-button>
<el-button v-if="path==2" type="primary" size="small"></el-button>
</div>
</div>
</div>
</lx-header>
</div>
</div>
<div>
<div v-if="path==2" style="margin-bottom:10px">8001500</div>
<xy-table :list="list" :total="total" :table-item="table_item">
<template v-slot:btns>
<el-table-column align='center' label="操作" fixed="right" width="80" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="showDetail('show',scope.row.id)"></el-button>
</template>
</el-table-column>
</template>
</xy-table>
</div>
<student-detail ref="studentDetail"></student-detail>
</div>
</template>
<script>
import studentDetail from './components/detail.vue';
export default {
components: {
studentDetail
},
data() {
return {
path:'',
select: {
name: '',
daterange: '',
type: ''
},
type_options: [{
id: 0,
value: '常规课程'
}, {
id: 1,
value: '短期课程'
}],
status_options: [{
id: 0,
value: '进行中'
}, {
id: 1,
value: '未开始'
}],
list: [{
name: '王同学',
company: '**股份公司',
zw: 'CEO',
mobile: '13812345678',
type: '上市及拟上市企业',
opc:'创新药物',
area:'工业园区'
}],
total: 0,
table_item: [{
prop: 'name',
label: '姓名',
align: 'center',
width:120
}, {
prop: 'company',
label: '公司',
align: 'left',
}, {
prop: 'zw',
label: '职务',
align: 'center',
width: 120,
}, {
prop: 'mobile',
label: '联系电话',
align: 'center',
width: 120,
}, {
prop: 'type',
label: '企业性质',
align: 'center',
width: 180,
}, {
prop: 'opc',
label: '所属行业',
align: 'center',
width: 120,
}, {
prop: 'area',
label: '所属区域',
align: 'center',
width: 120,
}]
}
},
created() {
const _path = this.$route.path.split("_")
console.log("_path",this.$route,_path)
this.path = _path[1]
if(this.path==2){
this.table_item.unshift({
prop: 'subject',
label: '课程名称',
align: 'left',
width: 200,
})
}
},
methods: {
showDetail(type, id) {
this.$refs.studentDetail.id = id
this.$refs.studentDetail.type = type
this.$refs.studentDetail.isShow = true
},
deleteList() {
var that = this;
destroy({
id: this.id,
table_name: 'new_plans'
}).then(response => {
this.$Message.success('操作成功');
this.isShow = false
this.$emit('refresh')
}).catch(error => {
console.log(error)
reject(error)
})
},
}
}
</script>
<style lang="scss" scoped>
.searchwrap {
display: flex;
align-items: center;
&>div {
display: flex;
align-items: center;
&>div{
margin-right: 10px;
}
}
}
</style>
Loading…
Cancel
Save