更新修改

dev
lion 2 years ago
parent dd523602ea
commit 414031a65a

@ -4,6 +4,6 @@ NODE_ENV = production
ENV = 'staging'
# base api
VUE_APP_BASE_API=http://suzhoukeji-test.ali251.langye.net/
VUE_APP_UPLOAD_API=http://suzhoukeji-test.ali251.langye.net/api/admin/upload-file
VUE_APP_BASE_API=https://suzhoukeji-test.ali251.langye.net
VUE_APP_UPLOAD_API=https://suzhoukeji-test.ali251.langye.net/api/admin/upload-file

@ -306,6 +306,7 @@ export default {
belong_user: 1,
belong_user_table: 'company_name',
sort: 0,
span: 2
}, {
name: '职务',
field: 'company_position',
@ -346,6 +347,7 @@ export default {
is_open: false,
belong_user_table: 'type',
sort: 0,
span: 2
}, {
name: '企业性质',
field: 'company_type',
@ -358,6 +360,7 @@ export default {
is_open: false, // 控制开启关闭的 参数不做保存
belong_user_table: 'company_type',
sort: 0,
span: 2
}, {
name: '融资情况',
field: 'company_fund',
@ -368,6 +371,7 @@ export default {
belong_user: 1,
belong_user_table: 'company_fund',
sort: 0,
span: 2
}, {
name: '所在区域',
field: 'company_area',
@ -380,17 +384,6 @@ export default {
is_open: false,
belong_user_table: 'company_area',
sort: 0,
}, {
name: '公司地址',
field: 'company_address',
rule: '',
edit_input: "text",
help: '请填写公司地址',
need_fill: 0,
belong_user: 1,
is_open: false,
belong_user_table: 'company_address',
sort: 0,
}, {
name: '所属行业',
field: 'company_industry',
@ -403,6 +396,18 @@ export default {
is_open: false,
belong_user_table: 'company_industry',
sort: 0,
}, {
name: '公司地址',
field: 'company_address',
rule: '',
edit_input: "text",
help: '请填写公司地址',
need_fill: 0,
belong_user: 1,
is_open: false,
belong_user_table: 'company_address',
sort: 0,
span: 2
}, {
name: '产品',
field: 'company_product',
@ -413,16 +418,18 @@ export default {
belong_user: 1,
belong_user_table: 'company_product',
sort: 0,
span: 2
}, {
name: '毕业院校',
field: 'school',
rule: '',
edit_input: "text",
help: '请输入产品',
help: '请输入毕业院校',
need_fill: 0,
belong_user: 1,
belong_user_table: 'school',
sort: 0,
span: 2
}, {
name: '专业',
field: 'speciality',
@ -457,13 +464,81 @@ export default {
}, {
name: '邮箱',
field: 'email',
rule: '',
rule: 'email',
edit_input: "text",
help: '请输入邮箱',
need_fill: 0,
belong_user: 1,
belong_user_table: 'email',
sort: 0,
}, {
name: '销售额/亿',
field: 'sales_volume',
rule: '',
edit_input: "text",
help: '请输入销售额/亿',
need_fill: 0,
belong_user: 1,
belong_user_table: 'sales_volume',
sort: 0,
}, {
name: '估值',
field: 'valuation',
rule: '',
edit_input: "text",
help: '请输入估值',
need_fill: 0,
belong_user: 1,
belong_user_table: 'valuation',
sort: 0,
}, {
name: '市值',
field: 'market_value',
rule: '',
edit_input: "text",
help: '请输入市值',
need_fill: 0,
belong_user: 1,
belong_user_table: 'market_value',
sort: 0,
}, {
name: '是否为元禾投资企业',
field: 'is_yuanhe',
rule: '',
edit_input: "text",
help: '请选择',
need_fill: 0,
belong_user: 1,
select_item: [{
key: '是',
value: '是'
}, {
key: '否',
value: '否'
}],
belong_user_table: 'is_yuanhe',
sort: 0,
}],
sexList: [{
key: '男',
value: '男'
}, {
key: '女',
value: '女'
}],
shareList: [{
key: '有',
value: '有'
}, {
key: '无',
value: '无'
}],
yuanheList:[{
key: '是',
value: '是'
}, {
key: '否',
value: '否'
}],
formSelect: {
// company_position: [],

@ -42,6 +42,18 @@ export default {
id: 3,
value: '备选',
type: 'danger'
}, {
id: 4,
value: '已取消',
type: 'info'
}, {
id: 5,
value: '主动放弃',
type: 'danger'
}, {
id: 6,
value: '黑名单',
type: 'warning'
}],
fee_status_list: [{
id: 0,
@ -166,7 +178,7 @@ export default {
value: '全部'
}, {
id: 1,
value: '正常',
value: '出勤',
type: 'success'
}, {
id: 0,

@ -98,6 +98,11 @@
label: '场地名称',
align: 'left',
width: 120,
},{
prop: 'real_name',
label: '小程序展示名称',
align: 'left',
width: 120,
},{
prop: 'appointment_type.name',
label: '场地类型',

@ -28,10 +28,21 @@
<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: 100%;"></el-input>
<el-input disabled v-model="form.name" placeholder="请输入场地名称" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:real_name>
<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 v-model="form.real_name" placeholder="请输入小程序展示名称" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:appointment_type_id>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
@ -168,6 +179,7 @@
no: '',
sort:0,
name: '',
real_name:'',
appointment_type_id:'',
content: '',
total: '',

@ -1,7 +1,7 @@
<template>
<div>
<xy-dialog ref="dialog" :width="70" :is-show.sync="isShow" :type="'form'" :title="type === 'add' ? '新增场地类型' : '编辑场地类型'"
:form="form" :rules='rules' @submit="submit">
<xy-dialog ref="dialog" :width="70" :is-show.sync="isShow" :type="'form'"
:title="type === 'add' ? '新增场地类型' : '编辑场地类型'" :form="form" :rules='rules' @submit="submit">
<template v-slot:name>
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
@ -29,57 +29,55 @@
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>可预约时间段
</div>
<div class="xy-table-item-content">
<el-time-picker style="width:100%" @change="changeDateRange" value-format="HH:mm" format="HH:mm" is-range v-model="form.dateRange" range-separator=""
start-placeholder="开始时间" end-placeholder="结束时间" placeholder="选择时间范围">
<el-time-picker style="width:100%" @change="changeDateRange" value-format="HH:mm" format="HH:mm" is-range
v-model="form.dateRange" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"
placeholder="选择时间范围">
</el-time-picker>
</div>
</div>
</template>
<template v-slot:is_book>
<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-select v-model="form.is_book" placeholder="请选择是否可预约" style="width: 100%;">
<el-option v-for="item in false_or_true" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:floor>
<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 v-model="form.floor" placeholder="请输入所在楼层" clearable
style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:total>
<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 v-model="form.total" placeholder="请输入容纳人数" clearable
style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:sort>
<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 v-model="form.sort" type="number" placeholder="请输入排序" clearable
style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:is_book>
<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-select v-model="form.is_book" placeholder="请选择是否可预约" style="width: 100%;">
<el-option v-for="item in false_or_true" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:floor>
<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 v-model="form.floor" placeholder="请输入所在楼层" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:total>
<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 v-model="form.total" placeholder="请输入容纳人数" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:sort>
<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 v-model="form.sort" type="number" placeholder="请输入排序" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:image_id>
<div class="xy-table-item">
@ -87,15 +85,24 @@
<span style="color: red;font-weight: bold;padding-right: 4px;"></span>场地图片
</div>
<div class="xy-table-item-content">
<el-upload :action="action" multiple class='upload-demo'
accept=".PNG,.jpg,.jpeg,.bmp,.svg"
list-type="picture-card" :file-list="fileList"
ref="pictureUpload" :auto-upload="true" :on-success="uploadSuccesspublic" :on-remove="uploadRemovepublic">
<el-upload :action="action" multiple class='upload-demo' accept=".PNG,.jpg,.jpeg,.bmp,.svg"
list-type="picture-card" :file-list="fileList" ref="pictureUpload" :auto-upload="true"
:on-success="uploadSuccesspublic" :on-remove="uploadRemovepublic">
<i class="el-icon-plus"></i>
</el-upload>
</div>
</div>
</template>
<template v-slot:content>
<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">
<my-tinymce v-if="showTinymce" @input="saveContent" :value="form.content"></my-tinymce>
</div>
</div>
</template>
</xy-dialog>
</div>
</template>
@ -114,17 +121,19 @@
isShow: false,
type: 'add',
id: '',
showTinymce: false,
form: {
name: '',
introduce: '',
dateRange: ['09:00','17:30'],
is_book:0,
floor:'',
total:'',
sort:0,
image_id: [],
start_time:'09:00',
end_time:'17:30'
dateRange: ['09:00', '17:30'],
is_book: 0,
floor: '',
total: '',
sort: 0,
image_id: [],
start_time: '09:00',
end_time: '17:30',
content: ''
},
action: `${process.env.VUE_APP_UPLOAD_API}`,
fileList: [],
@ -138,6 +147,9 @@
},
created() {},
methods: {
saveContent(e) {
this.form.content = e
},
changeDateRange(e) {
console.log(e)
if (e) {
@ -187,10 +199,11 @@
id: this.id
}).then(res => {
this.form = this.base.requestToForm(res, this.form)
this.fileList = res.image
this.form.dateRange = res.start_time?[res.start_time,res.end_time]:['',''],
this.form.sort = res.sort?res.sort:0
this.form.is_book = res.is_book?res.is_book:0
this.fileList = res.image
this.form.dateRange = res.start_time ? [res.start_time, res.end_time] : ['', ''],
this.form.sort = res.sort ? res.sort : 0
this.form.is_book = res.is_book ? res.is_book : 0
this.showTinymce = true
})
},
@ -201,10 +214,13 @@
if (newVal) {
if (this.type === 'editor') {
this.getDetail()
} else {
this.showTinymce = true
}
} else {
this.id = ''
this.fileList = []
this.showTinymce = false
this.$refs['dialog'].reset()
}
},
@ -214,7 +230,8 @@
</script>
<style scoped lang="scss">
::v-deep .image_id{
flex-basis: 100%;
::v-deep .content,
::v-deep .image_id {
flex-basis: 100%;
}
</style>

@ -93,7 +93,8 @@
<template v-slot:btns>
<el-table-column align='center' label="操作" width="120" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" v-if="scope.row.finally!=1"
<!-- v-if="scope.row.finally!=1" -->
<el-button type="primary" size="small"
@click="sendBook(scope.row.appointment_id)">重新预约</el-button>
</template>
</el-table-column>

@ -88,7 +88,8 @@
import checkBook from './components/checkBook.vue';
import addBook from './components/addBook.vue';
import {
index
index,
destroy
} from "@/api/book/index.js"
import {
index as getAppointment
@ -265,7 +266,19 @@
page_size: 999
},
`预约信息.xlsx`)
}
},
deleteList(id) {
var that = this;
destroy({
id: id,
}).then(response => {
this.$Message.success('删除成功');
this.getList()
}).catch(error => {
console.log(error)
reject(error)
})
},
}
}
</script>

@ -42,7 +42,10 @@
import {
realTableShow
} from "@/api/system/customForm";
import request from '@/utils/request'
import request from '@/utils/request'
import {
index as formIndex
} from "@/api/course/form";
export default {
props: {
formInfo: {
@ -74,7 +77,7 @@
hidden() {
this.dialogVisible = false;
},
//
//
async getHeaders() {
let _except = []
//
@ -92,17 +95,17 @@
if (!this.base.isNull(res[key])) {
b.push({
key: key,
title: res[key],
width:120
title: res[key],
width: 120
});
}
}
//
if (this.tableName === 'course_contents') {
b.push({
key: '',
title: '老师简介',
width:120
key: 'teacher_introduce',
title: '老师简介',
width: 120
});
b.map(item => {
if (item.key === 'teacher_id') {
@ -112,9 +115,11 @@
}
//
if (this.tableName === 'course_keeps') {
b.map(item => {
b.map(item => {
item.width=''
if (item.key === 'user_id') {
item.key = 'user_name'
item.key = 'user_name'
}
if (item.key === 'status') {
item.key = 'status_name'
@ -126,11 +131,36 @@
b.unshift({
key: 'course_name',
title: '课程名字',
width:120
width: 120
});
}
this.table = this.headers = b
},
// course_signs
async getAutoForm(){
const res = await formIndex({
page:1,
page_size:999,
sort_name: 'sort',
sort_type: 'ASC',
filter: [{
key: 'course_id',
op: 'eq',
value: this.course_id
}],
})
let arr = []
res.data.map(item=>{
if(item.edit_input!='files'){
arr.push({
key: item.field,
title: item.name,
width: 120
});
}
})
this.table = this.headers = arr
},
//
uploadFail(err) {
@ -157,13 +187,13 @@
//
if (this.tableName === 'course_keeps') {
response.map(item => {
item.status_name = item.status === 1 ? '正常' : '缺勤'
item.status_name = item.status === 1 ? '出勤' : '缺勤'
})
}
//
if (this.tableName === 'users') {
response.map(item => {
item.is_schoolmate = 1
item.is_schoolmate = 1
item.username = item.name
})
}
@ -178,6 +208,17 @@
exportExcel(sheetName) {
const data = [this.headers.map((header) => header.title)];
console.log("data", data)
if (this.tableName === 'course_keeps') {
data.push(['(上传前请删除示例)', '', '', ''])
data.push(['请设置单元格格式为文本格式2024-09-03', 'xxx', '出勤/缺勤'])
}else if (this.tableName === 'course_contents') {
data.push(['(上传前请删除示例)', '', '', ''])
data.push(['请设置单元格格式为文本格式2024-09-03', '上午13:00-14:00', '王老师', '《战略思维2》', '苏州大学', '老师简介'])
}else if(this.tableName === 'course_signs'){
data.push(['(请确保学员联系方式不为空)', '', '', ''])
}
// return
const wb = XLSX.utils.book_new();
const ws = XLSX.utils.aoa_to_sheet(data);
XLSX.utils.book_append_sheet(wb, ws, sheetName);
@ -237,8 +278,13 @@
//
if (this.tableName === 'users') {
this.import_action = `/api/admin/${changeTableName}/import-study`
}
//
if (this.tableName === 'course_signs') {
this.getAutoForm()
} else {
this.getHeaders()
}
// if(this.tableName==='users'){
// this.import_action = `/api/admin/${changeTableName}/import-study`
// this.table = this.headers = this.formInfo.map((i) => {
@ -254,7 +300,7 @@
// });
// console.log("this.table",this.headers)
// }else{
this.getHeaders()
// }
console.log("action", this.action, this.import_action)

@ -6,42 +6,87 @@
<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="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 apply_status_list" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.sort_type" placeholder="请选择评分排序" clearable>
<el-option v-for="item in sortList" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-button type="primary" size="small" @click="select.page=1,getList()"></el-button>
<el-button type="primary" size="small" @click="exportExcel"></el-button>
</div>
<div class="searchwrap" style="display: flex;align-items: center;">
<div>
<el-popconfirm @confirm="updateAllStatus" title="确定要批量审核吗?">
<el-button type="primary" size="small" slot="reference">批量审核</el-button>
</el-popconfirm>
<div>
<el-input v-model="select.name" placeholder="请输入姓名"></el-input>
</div>
<div>
<el-input v-model="select.mobile" placeholder="请输入手机号"></el-input>
</div>
<div>
<el-input v-model="select.company_name" placeholder="请输入公司名称"></el-input>
</div>
<div>
<el-input v-model="select.company_position" placeholder="请输入职务"></el-input>
</div>
<div>
<el-select v-model="select.company_area" placeholder="请选择所属区域" clearable>
<el-option v-for="item in formSelect.company_area" :key="item.id" :label="item.value"
:value="item.value">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.company_type" placeholder="请选择企业性质" clearable>
<el-option v-for="item in formSelect.company_type" :key="item.id" :label="item.value"
:value="item.value">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.company_industry" placeholder="请选择所属行业" clearable>
<el-option v-for="item in formSelect.company_industry" :key="item.id" :label="item.value"
:value="item.value">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.type" placeholder="请选择人才类型" clearable>
<el-option v-for="item in formSelect.type" :key="item.id" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.education" placeholder="请选择学历" clearable>
<el-option v-for="item in formSelect.education" :key="item.id" :label="item.value"
:value="item.value">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.status" placeholder="请选择状态" clearable>
<el-option v-for="item in apply_status_list" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.sort_type" placeholder="请选择评分排序" clearable>
<el-option v-for="item in sortList" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-button type="primary" size="small" @click="select.page=1,getList()"></el-button>
<el-button style="margin-right:10px" type="primary" size="small" @click="exportExcel"></el-button>
<el-popconfirm @confirm="updateAllStatus" title="确定要批量审核吗?">
<el-button type="primary" size="small" slot="reference">批量审核</el-button>
</el-popconfirm>
</div>
</div>
</div>
</div>
</lx-header>
</div>
</div>
<div>
<div class="txl">
<div>课程名称{{subjectObj.title}}</div>
<div>开课日期{{subjectObj.date}}</div>
<div>课程体系{{subjectObj.leibie}}</div>
<div>
<div class="txl">
<div>课程名称{{subjectObj.title}}</div>
<div>开课日期{{subjectObj.date}}</div>
<div>课程体系{{subjectObj.leibie}}</div>
</div>
<xy-table :list="list" :total="total" :showIndex="false" @pageIndexChange="pageIndexChange"
@pageSizeChange="pageSizeChange" :table-item="table_item" @selection-change="selectionChange">
@ -56,10 +101,9 @@
</template>
<template v-slot:btns>
<el-table-column align='center' fixed="right" label="操作" width="180" header-align="center">
<template slot-scope="scope">
<template slot-scope="scope">
<!-- v-if="scope.row.status===0" -->
<el-button type="primary" size="small"
@click="showDetail('check',scope.row)">审核</el-button>
<el-button type="primary" size="small" @click="showDetail('check',scope.row)"></el-button>
<el-button type="primary" v-if="scope.row.status>0" size="small"
@click="showDetail('checkshow',scope.row)">查看</el-button>
@ -76,15 +120,17 @@
<script>
import studentDetail from '@/views/student/components/detail.vue';
import myMixins from "@/mixin/selectMixin.js";
import formMixin from "@/mixin/formMixin.js";
import {
index,
index,
updateStatus
} from '@/api/apply/index.js'
import {
download
} from "@/utils/downloadRequest";
} from "@/utils/downloadRequest";
export default {
mixins: [myMixins],
mixins: [myMixins,formMixin],
components: {
studentDetail
},
@ -94,24 +140,32 @@
select: {
name: '',
course_id: '',
mobile: '',
course_id: '',
company_name: '',
company_position: '',
company_area: '',
company_type: '',
company_industry: '',
education: '',
status: '',
page: 1,
page_size: 10,
sort_type: 'ASC'
},
selectids:[],
},
selectids: [],
list: [],
total: 0,
table_item: [
{
type: 'selection',
width: 50,
fixed: 'left',
prop:'selection',
selectable:(row)=>{
return row.status===0
}
},
table_item: [{
type: 'selection',
width: 50,
fixed: 'left',
prop: 'selection',
// selectable: (row) => {
// return row.status === 0
// }
},
{
prop: 'user.username',
label: '姓名',
@ -147,6 +201,7 @@
prop: 'user.company_name',
label: '公司名称',
align: 'left',
width: 240,
}, {
prop: 'user.company_position',
label: '职务',
@ -193,6 +248,13 @@
page: this.select.page,
page_size: this.select.page_size,
name: this.select.name,
mobile: this.select.mobile,
company_name: this.select.company_name,
company_position: this.select.company_position,
company_area: this.select.company_area,
company_type: this.select.company_type,
company_industry: this.select.company_industry,
education: this.select.education,
sort_name: 'score',
sort_type: this.select.sort_type,
filter: [{
@ -207,33 +269,33 @@
})
this.list = res.data
this.total = res.total
},
//
selectionChange(row) {
if (row && row.length > 0) {
let arr = []
row.map(item => {
arr.push(item.id)
})
this.selectids = arr
} else {
this.selectids = []
}
},
updateAllStatus(status) {
if (this.selectids.length < 1) {
this.$message.warning("请先选择要审核的学员")
return
}
let ids = this.selectids.join(',')
updateStatus({
course_id:this.select.course_id,
ids: ids,
status: 1,
}).then(res => {
this.$Message.success('审核成功')
this.getList()
})
},
//
selectionChange(row) {
if (row && row.length > 0) {
let arr = []
row.map(item => {
arr.push(item.id)
})
this.selectids = arr
} else {
this.selectids = []
}
},
updateAllStatus(status) {
if (this.selectids.length < 1) {
this.$message.warning("请先选择要审核的学员")
return
}
let ids = this.selectids.join(',')
updateStatus({
course_id: this.select.course_id,
ids: ids,
status: 1,
}).then(res => {
this.$Message.success('审核成功')
this.getList()
})
},
showDetail(type, row) {
this.$refs.studentDetail.subjectObj = this.subjectObj
@ -241,16 +303,17 @@
this.$refs.studentDetail.row = row
this.$refs.studentDetail.type = type
this.$refs.studentDetail.isShow = true
},
},
exportExcel() {
let _export = {}
this.table_item.map(item => {
if (item.prop === 'status') {
_export['status_text'] = item.label
}else if(item.prop === 'selection') {
}else {
} else if (item.prop === 'selection') {
} else {
_export[item.prop] = item.label
}
})
@ -258,6 +321,13 @@
'/api/admin/course-signs/index',
'get', {
name: this.select.name,
mobile: this.select.mobile,
company_name: this.select.company_name,
company_position: this.select.company_position,
company_area: this.select.company_area,
company_type: this.select.company_type,
company_industry: this.select.company_industry,
education: this.select.education,
sort_name: 'score',
sort_type: this.select.sort_type,
export_fields: _export,
@ -293,18 +363,27 @@
}
}
.searchwrap {
display: flex;
align-items: center;
&>div {
display: flex;
align-items: center;
margin-right: 10px;
span {
min-width: 70px;
}
}
.searchwrap {
display: flex;
align-items: center;
flex-wrap: wrap;
&>div {
display: flex;
align-items: center;
// margin-bottom: 10px;
flex-wrap: wrap;
&>div {
margin-right: 10px;
margin-bottom: 10px;
width: 150px;
&:last-child {
width: auto
}
}
}
}
</style>

@ -7,15 +7,22 @@
<div slot="content">
<div class="searchwrap" style="display: flex;align-items: center;">
<div>
<el-input v-model="select.theme" placeholder="请输入课程主题"></el-input>
<el-input v-model="select.name" placeholder="请输入姓名"></el-input>
</div>
<div>
<el-date-picker v-model="select.date" type="date" placeholder="考勤日期" value-format="yyyy-MM-dd"
format="yyyy-MM-dd">
</el-date-picker>
</div>
<div style="margin-right: 10px;">
<el-select v-model="select.status" placeholder="请选择状态" clearable>
<el-option v-for="item in keep_options" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-button type="primary" size="small" @click='select.page=1,getList()'>查询</el-button>
<el-button type="primary" size="small" @click="importTable"></el-button>
<el-button type="primary" size="small" @click="exportExcel"></el-button>
</div>
</div>
@ -34,7 +41,16 @@
</div>
<xy-table :list="list" :total="total" :table-item="table_item" @pageIndexChange="pageIndexChange"
@pageSizeChange="pageSizeChange">
<template v-slot:course_keeps_count>
<template v-slot:status>
<el-table-column align='center' label="状态" header-align="center">
<template slot-scope="scope">
<div v-for="item in keep_options">
<el-tag :type="item.type" v-if="scope.row.status===item.id">{{item.value}}</el-tag>
</div>
</template>
</el-table-column>
</template>
<!-- <template v-slot:course_keeps_count>
<el-table-column align='center' label="应到人数" width="120" header-align="center">
<template slot-scope="scope">
@ -66,14 +82,15 @@
</div>
</template>
</el-table-column>
</template>
</template> -->
<template v-slot:btns>
<el-table-column align='center' label="操作" width="220" header-align="center">
<div></div>
<!-- <el-table-column align='center' label="操作" width="220" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="importTable(scope.row)"></el-button>
<el-button type="primary" size="small" @click="showAttendance(scope.row,'')"></el-button>
</template>
</el-table-column>
</el-table-column> -->
</template>
</xy-table>
</div>
@ -87,12 +104,14 @@
import showAttendance from './components/showAttendance.vue'
import {
index
} from '@/api/course/courseContent.js'
} from '@/api/course/courseKeeps.js'
import imports from "@/views/component/imports.vue"
import {
download
} from "@/utils/downloadRequest";
import myMixins from "@/mixin/selectMixin.js";
export default {
mixins: [myMixins],
components: {
showAttendance,
imports
@ -100,9 +119,9 @@
data() {
return {
select: {
theme: '',
name: '',
date: '',
course_id: '',
status: '',
page: 1,
page_size: 10
},
@ -115,43 +134,55 @@
label: '考勤日期',
align: 'center',
width: 180,
}, {
prop: 'period',
label: '考勤时间',
align: 'center',
width: 180,
}, {
prop: 'theme',
label: '课程主题',
align: 'left'
}, {
prop: 'teacher.name',
label: '授课教师',
align: 'center',
width: 160,
}, {
prop: 'address',
label: '授课教室',
align: 'center',
width: 160,
}, {
prop: 'course_keeps_count',
label: '应到人数',
align: 'center',
width: 120,
},
{
prop: 'user_sign_total',
label: '实到人数',
align: 'center',
width: 120,
},
{
prop: 'user_lack_sign_total',
label: '缺勤人数',
prop: 'user.name',
label: '学员姓名',
align: 'center'
}, {
prop: 'status',
label: '状态',
align: 'center',
width: 120,
}
// {
// prop: 'period',
// label: '',
// align: 'center',
// width: 180,
// }, {
// prop: 'theme',
// label: '',
// align: 'left'
// }, {
// prop: 'teacher.name',
// label: '',
// align: 'center',
// width: 160,
// }, {
// prop: 'address',
// label: '',
// align: 'center',
// width: 160,
// }, {
// prop: 'course_keeps_count',
// label: '',
// align: 'center',
// width: 120,
// },
// {
// prop: 'user_sign_total',
// label: '',
// align: 'center',
// width: 120,
// },
// {
// prop: 'user_lack_sign_total',
// label: '',
// align: 'center',
// width: 120,
// }
]
}
@ -177,10 +208,9 @@
this.$refs.showAttendance.isShow = true
},
//
importTable(row) {
importTable() {
this.$refs.imports.tableData = {
'data[course_id]': row.course_id,
'data[course_content_id]': row.id
'data[course_id]': this.select.course_id
}
this.$refs.imports.show()
@ -190,52 +220,50 @@
const res = await index({
page: this.select.page,
page_size: this.select.page_size,
show_relation: ['teacher'],
show_relation: ['user'],
name: this.select.name,
filter: [{
key: 'course_id',
key: 'status',
op: 'eq',
value: this.select.course_id
}, {
key: 'theme',
op: 'like',
value: this.select.theme
value: this.select.status
}, {
key: 'date',
op: 'eq',
value: this.select.date ? this.select.date : ''
}]
}],
})
this.list = res.data
this.total = res.total
},
exportExcel() {
let _export = {}
},
exportExcel() {
let _export = {}
this.table_item.map(item => {
_export[item.prop] = item.label
})
download(
'/api/admin/course-contents/index',
'get', {
export_fields: _export,
show_relation: ['teacher'],
if(item.prop==="status"){
_export['status_text'] = item.label
}else{
_export[item.prop] = item.label
}
})
download(
'/api/admin/course-keeps/index',
'get', {
export_fields: _export,
show_relation: ['user'],
name: this.select.name,
filter: [{
key: 'course_id',
key: 'status',
op: 'eq',
value: this.select.course_id
}, {
key: 'theme',
op: 'like',
value: this.select.theme
value: this.select.status
}, {
key: 'date',
op: 'eq',
value: this.select.date ? this.select.date : ''
}],
is_export: 1,
page: 1,
page_size: 999
},
`${this.subjectObj.title}${this.select.date ? this.select.date : ''}考勤信息.xlsx`)
}],
is_export: 1,
page: 1,
page_size: 999
},
`${this.subjectObj.title}${this.select.date ? this.select.date : ''}考勤信息.xlsx`)
}
}
}

@ -52,21 +52,21 @@
<template v-slot:teacher_id>
<el-table-column align='center' label="班主任" width="120" header-align="center">
<template slot-scope="scope">
<div>
{{scope.row.teacher?scope.row.teacher.name:''}}
<div v-for="t in scope.row.teacher_detail" style="margin-right:5px">
{{t.name}}
</div>
</template>
</el-table-column>
</template>
<template v-slot:btns>
<el-table-column align='left' label="操作" width="420" header-align="center">
<template slot-scope="scope">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="toTxl(scope.row)"></el-button>
<el-button type="primary" size="small" @click="goAttendance(scope.row)"></el-button>
<el-button type="primary" size="small" @click="setMain(scope.row.id)"></el-button>
<el-button type="primary" size="small" v-if="scope.row.is_arrange===1"
@click="editClass('add',scope.row)">排课</el-button>
<el-button type="primary" size="small" v-if="scope.row.is_fee===1"
<el-button type="primary" size="small" @click="setMain(scope.row.id)"></el-button>
<el-button type="primary" size="small" v-if="scope.row.is_arrange===1"
@click="editClass('add',scope.row)">排课</el-button>
<el-button type="primary" size="small" v-if="scope.row.is_fee===1"
@click="toPay(scope.row)">缴费记录</el-button>
</template>
</el-table-column>
@ -145,18 +145,18 @@
this.getTeachers()
this.getTypes()
},
methods: {
getTypes() {
indexType({
page: 1,
page_size: 999,
sort_name:'id',
sort_type:'ASC',
}).then(res => {
// this.courseTypesList = res.data.filter(item => item.status === 1)
this.courseTypesList = res.data
})
methods: {
getTypes() {
indexType({
page: 1,
page_size: 999,
sort_name: 'id',
sort_type: 'ASC',
}).then(res => {
// this.courseTypesList = res.data.filter(item => item.status === 1)
this.courseTypesList = res.data
})
},
pageIndexChange(e) {
this.select.page = e
@ -178,9 +178,9 @@
const res = await index({
page: this.select.page,
page_size: this.select.page_size,
show_relation: ['teacher','typeDetail'],
sort_name:'id',
sort_type:'DESC',
show_relation: ['teacher', 'typeDetail'],
sort_name: 'id',
sort_type: 'DESC',
filter: [{
key: 'name',
op: 'like',
@ -205,55 +205,57 @@
this.select.dateRange = ''
}
},
goAttendance(row) {
let value = row.type_detail.name
let teacher = row.teacher?row.teacher.name:''
this.$router.push({
path: '/course/attendance',
query: {
title: row.name,
id: row.id,
date: row.start_date?row.start_date + '至' + row.end_date:'',
leibie: value,
teacher:teacher
}
goAttendance(row) {
let value = row.type_detail.name
let teacher = row.teacher ? row.teacher.name : ''
this.$router.push({
path: '/course/attendance',
query: {
title: row.name,
id: row.id,
date: row.start_date ? row.start_date + '至' + row.end_date : '',
leibie: value,
teacher: teacher
}
})
},
editClass(type, row) {
this.$refs.addClass.id = row.id
this.$refs.addClass.setTeachers(this.teacher_options)
this.$refs.addClass.isShow = true
},
setMain(id) {
this.$refs.setMainTeacher.id = id
this.$refs.setMainTeacher.setTeachers(this.teacher_options)
this.$refs.setMainTeacher.isShow = true
},
toTxl(row) {
let value = row.type_detail.name
this.$router.push({
path: '/course/txl',
query: {
title: row.name,
id: row.id,
date: row.start_date ? row.start_date + '至' + row.end_date : '',
leibie: value,
is_history:row.course_status===40?true:false
}
})
},
toPay(row) {
let value = row.type_detail.name
this.$router.push({
path: '/course/pay',
query: {
title: row.name,
id: row.id,
date: row.start_date ? row.start_date + '至' + row.end_date : '',
leibie: value,
type: 'pay'
}
})
},
toTxl(row) {
let value = row.type_detail.name
this.$router.push({
path: '/course/txl',
query: {
title: row.name,
id: row.id,
date: row.start_date ? row.start_date + '至' + row.end_date : '',
leibie: value,
is_history: row.course_status === 40 ? true : false,
is_fee:row.is_fee
}
})
},
toPay(row) {
let value = row.type_detail.name
this.$router.push({
path: '/course/pay',
query: {
title: row.name,
id: row.id,
date: row.start_date ? row.start_date + '至' + row.end_date : '',
leibie: value,
type: 'pay'
}
})
},
}
}

@ -21,12 +21,20 @@
<el-button type="primary" size="small" v-print="'#print'"></el-button>
</div>
</div>
<div class="schedule" id="print">
<el-table :data="list" border style="width: 100%;height:300px;overflow: scroll;">
<el-table-column v-for="item in table_item" :prop="item.prop" :label="item.label"
:width="item.width?item.width:''" :align="item.align">
</el-table-column>
<el-table-column label="操作" :width="180" align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" style='margin-left:5px;margin-bottom:5px;'
@click="editClass('editor',scope.row.id)">编辑</el-button>
<el-popconfirm style="margin:0 10px" @confirm="deleteList(scope.row.id)" title="确定删除吗?">
<el-button type="danger" size="small" slot="reference">删除</el-button>
</el-popconfirm>
</template>
</el-table-column>
</el-table>
</div>
<template v-slot:footer>
@ -35,6 +43,7 @@
</template>
</Modal>
<imports ref="imports" :table-name="'course_contents'" :course_id="id+''" @refresh="refreshData"></imports>
<editClass ref="editClass" @refresh="getCousreContent"></editClass>
</div>
</template>
@ -42,17 +51,20 @@
import myMixins from "@/mixin/selectMixin.js";
import {
index,
sendSms
sendSms,
destroy
} from '@/api/course/courseContent.js'
import {
show,
save
} from "@/api/course/index.js"
import imports from "@/views/component/imports.vue"
import editClass from "../components/editClass.vue"
export default {
mixins: [myMixins],
components: {
imports
imports,
editClass
},
data() {
return {
@ -60,6 +72,8 @@
id: '', // idcourse_id
subjectObj: {}, //
list: [],
teacher_options: [],
showBtn: true,
table_item: [{
prop: 'date',
label: '日期',
@ -83,10 +97,17 @@
prop: 'address',
label: '上课地点',
align: 'left'
}, {
prop: 'teacher.introduce',
label: '老师简介',
align: 'left'
}]
}
},
methods: {
setTeachers(e) {
this.teacher_options = e
},
//
async getCousreContent() {
const res = await index({
@ -106,7 +127,7 @@
async getCourseDetail() {
const res = await show({
id: this.id,
show_relation: ['teacher','type_detail']
show_relation: ['teacher', 'type_detail']
})
this.subjectObj = {}
this.subjectObj = this.base.requestToForm(res, this.subjectObj)
@ -147,15 +168,33 @@
});
},
sendMessage() {
sendSms({
id:this.id
}).then(res=>{
this.$Message.success("短信发送成功")
})
sendSms({
id: this.id
}).then(res => {
this.$Message.success("短信发送成功")
})
},
closeClass() {
this.isShow = false
},
editClass(type, id) {
this.$refs.editClass.type = type
this.$refs.editClass.id = id
this.$refs.editClass.setTeachers(this.teacher_options)
this.$refs.editClass.isShow = true
},
deleteList(id) {
var that = this;
destroy({
id: id,
}).then(response => {
this.$Message.success('删除成功');
this.getCousreContent()
}).catch(error => {
console.log(error)
reject(error)
})
},
},
watch: {
isShow(newVal) {
@ -174,6 +213,7 @@
</script>
<style lang="scss" scoped>
@media print {
@page {
size: auto;
@ -183,7 +223,12 @@
html,
div {
height: auto !important;
}
}
table th:last-child,
table th:last-child {
display: none;
}
}
::v-deep .el-table__cell {

@ -38,7 +38,18 @@
</div>
</div>
</template>
<template v-slot:year v-if="active===0">
<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-date-picker style="width: 100%;" v-model="form.year" type="year"
value-format="yyyy" format="yyyy">
</el-date-picker>
</div>
</div>
</template>
<template v-slot:dateRange v-if="active===0">
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
@ -223,7 +234,7 @@
</template>
<el-form style="min-height: 300px;display: flex;flex-wrap: wrap;" label-width="80px"
label-position="right" size="small">
<el-divider>基础字段</el-divider>
<!-- <el-divider>基础字段</el-divider>
<el-form-item :label="i.name" :required="
i.rule ? !!i.rule.includes('required') : false
" v-for="(i, index) in defaultFormList">
@ -232,8 +243,8 @@
<el-divider>选填字段</el-divider>
<el-form-item :label="i.name" v-for="(i, index) in selectFormList">
<el-input placeholder="选填字段" :disabled="true"></el-input>
</el-form-item>
<el-divider>自定义字段</el-divider>
</el-form-item> -->
<el-divider>表单字段</el-divider>
<el-form-item style="flex-basis: 100%;" :label="i.name || '字段名称'" :required="
i.rule ? !!i.rule.includes('required') : false
" v-for="(i, index) in formList">
@ -297,7 +308,8 @@
form: {
step: '', //
type: '',
name: '',
name: '',
year:'',
dateRange: '',
total: '',
sign_start_date: '',
@ -550,7 +562,8 @@
this.form = {
step: '', //
type: '',
name: '',
name: '',
year:'',
dateRange: '',
total: '',
sign_start_date: '',

@ -27,16 +27,16 @@
style="position: relative; inset: 0 0 0 0; height: 100%" width="80%" top="40px" :visible="true"
:modal="false" :append-to-body="false" :modal-append-to-body="false">
<el-form style="min-height: 200px;display: flex;flex-wrap: wrap;" label-width="80px"
<el-form style="min-height: 500px;display: flex;flex-wrap: wrap;" label-width="80px"
label-position="right" size="small">
<el-divider>表单字段</el-divider>
<!-- <el-divider>表单字段</el-divider> -->
<!-- <el-form-item :label="i.name" :required="
i.rule ? !!i.rule.includes('required') : false
" v-for="(i, index) in defaultFormList">
<el-input :placeholder="i.help?i.help:'表单字段'" :disabled="true"></el-input>
</el-form-item> -->
<draggable :value="formList" group="items" @change="changeHandler"
style="display: flex;flex-wrap: wrap;width:100%">
style="width:100%">
<el-form-item style="flex-basis: 100%;" :label="i.name || '字段名称'" :required="
i.rule ? !!i.rule.includes('required') : false
" v-for="(i, index) in formList" @click.native="selectPick(i, index)">
@ -131,7 +131,7 @@
edit_to_migration,
validation_rules
} = await config(false);
this.rules = validation_rules;
this.rules = validation_rules
this.types = edit_to_migration.filter(item => item.edit_input !== 'textarea' && item.edit_input !==
"richtext" &&
item.edit_input !== "file" && item.edit_input !== "map");
@ -152,7 +152,7 @@
// let _arr = this.removeMatchingItems(this.selectFormList, this.formList)
// this.formList.push(..._arr)
// this.selectFormList = _arr
console.log("_arr",_arr)
// console.log("_arr",_arr)
console.log("this.selectFormList", this.selectFormList, this.formList)
},

@ -0,0 +1,174 @@
<template>
<div>
<xy-dialog ref="dialog" :width="70" :is-show.sync="isShow" :type="'form'" :title="type === 'add' ? '新增课表' : '编辑课表'"
:form="form" :rules='rules' @submit="submit">
<template v-slot:date>
<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 v-model="form.date" placeholder="请输入日期" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:period>
<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 v-model="form.period" placeholder="请输入时间" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:teacher_id>
<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-select v-model="form.teacher_id" @change="changeTeacher" style="width:100%" placeholder="请选择授课老师"
clearable>
<el-option v-for="item in teacher_options" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:theme>
<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 style="width: 100%;" v-model="form.theme" placeholder="请输入课程主题" clearable></el-input>
</div>
</div>
</template>
<template v-slot:address>
<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 style="width: 100%;" v-model="form.address" placeholder="请输入上课地点" clearable></el-input>
</div>
</div>
</template>
<template v-slot:introduce>
<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 style="width: 100%;" v-model="form.introduce" placeholder="请输入老师简介" clearable></el-input>
</div>
</div>
</template>
</xy-dialog>
</div>
</template>
<script>
import myMixins from "@/mixin/selectMixin.js";
import {
show,
save
} from '@/api/course/courseContent.js'
import {
save as saveTeacher
} from "@/api/info/teachers.js"
export default {
mixins: [myMixins],
components: {},
data() {
return {
isShow: false,
type: 'add',
id: '',
teacher_options: [],
form: {
date: '',
period: '',
teacher_id: "",
theme: '',
address: '',
introduce: '',
},
rules: {
},
}
},
created() {},
methods: {
setTeachers(e) {
this.teacher_options = e
},
changeTeacher(e) {
if (e) {
this.teacher_options.map(item => {
if (e === item.id) {
this.form.teacher_id = item.id
this.form.introduce = item.introduce
}
})
}
console.log("e", e)
},
submit() {
if (this.id) {
this.form.id = this.id
}
save({
...this.form
}).then(res => {
this.$message({
type: 'success',
message: '保存课表成功'
})
saveTeacher({
id: this.form.teacher_id,
introduce: this.form.introduce
}).then(res => {
})
this.isShow = false
this.$emit('refresh')
// this.active = 1
})
},
getDetail() {
show({
id: this.id,
show_relation: ['teacher']
}).then(res => {
this.form = this.base.requestToForm(res, this.form)
this.form.introduce = res.teacher.introduce
})
},
},
watch: {
isShow(newVal) {
if (newVal) {
if (this.type === 'editor') {
this.getDetail()
}
} else {
this.id = ''
this.$refs['dialog'].reset()
}
},
}
}
</script>
<style scoped lang="scss">
</style>

@ -5,8 +5,8 @@
<el-form-item prop="belong_user_table" label="更新学员字段">
<el-select v-model="selectedForm.belong_user_table" clearable @change="changeIsUser"
:popper-append-to-body="false" placeholder="请选择学员字段" style="width: 100%">
<el-option v-for="(value, key) in selectFormList" :key="key" :label="value.name"
:value="value.belong_user_table"></el-option>
<el-option v-for="(item, key) in selectFormList" :key="key" :label="item.name"
:value="item.belong_user_table"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="name" label="字段名称">
@ -77,7 +77,7 @@
translate
} from "@/api/system/customFormField";
import {
debounce,
debounce,
deepCopy
} from "@/utils";
import formMixins from "@/mixin/formMixin.js";
@ -128,14 +128,32 @@
},
changeIsUser(e) {
console.log("e", e)
console.log(this.selectedForm)
this.selectFormList.map(item => {
if (e === item.belong_user_table) {
this.selectedForm = this.base.requestToForm(item,this.selectedForm)
console.log(this.selectedForm)
}
})
console.log("e", e)
console.log(this.selectedForm)
if(e){
this.selectFormList.map(item => {
if (e === item.belong_user_table) {
// this.selectedForm = this.base.requestToForm(item,this.selectedForm)
this.selectedForm.name = item.name
this.selectedForm.field = item.field
this.selectedForm.help = item.help
this.selectedForm.select_item = item.select_item
this.selectedForm.rule = item.rule
this.selectedForm.belong_user = item.belong_user
this.selectedForm.edit_input = item.edit_input
this.selectItem = item.select_item
this.validation = []
if(!this.base.isNull(this.selectedForm.rule)){
this.validation = this.selectedForm.rule.split(",")
}
console.log("2", this.selectedForm,this.validation)
}
})
}else{
this.selectedForm.belong_user = 0
}
},
saveField() {

@ -0,0 +1,216 @@
<template>
<div>
<xy-dialog ref="dialog" :width="70" :is-show.sync="isShow" :type="'form'"
:title="type === 'add' ? '新增报名信息' : '编辑报名信息'" :form="form" :rules='rules' @submit="submit">
<template v-slot:show>
<div class="flex-content">
<div v-for="(item,index) in fieldForm" :style="item.edit_input==='files'?'flex-basis:100%':'flex-basis:50%'">
<div class="xy-table-item">
<div class="xy-table-item-label" style="font-weight: bold">
<span v-if="!base.isNull(item.rule) && item.rule.indexOf('required')!=-1"
style="color: red;font-weight: bold;padding-right: 4px;">*</span>{{item.name}}
</div>
<div class="xy-table-item-content">
<!-- 输入框 -->
<div v-if="item.edit_input==='text'">
<el-input v-model="item.value" :placeholder="item.help" clearable
style="width: 100%;"></el-input>
</div>
<!-- 单选 -->
<div v-else-if="item.edit_input==='radio'">
<el-select v-model="item.value" :placeholder="item.help" clearable style="width: 100%;">
<el-option v-for="(item1,index1) in item.select_item" :key="index1" :label="item1.key"
:value="item1.value">
</el-option>
</el-select>
</div>
<!-- 多选 -->
<div v-else-if="item.edit_input==='checkbox'">
<el-select multiple v-model="item.valueArr" :placeholder="item.help" clearable
style="width: 100%;">
<el-option v-for="(item1,index1) in item.select_item" :key="index1" :label="item1.key"
:value="item1.value">
</el-option>
</el-select>
</div>
<!-- 日期 -->
<div v-else-if="item.edit_input==='date'">
<el-date-picker style="width: 100%;" v-model="item.value" type="date"
:placeholder="item.help" value-format="yyyy-MM-dd" format="yyyy-MM-dd">
</el-date-picker>
</div>
<!-- 日期时间 -->
<div v-else-if="item.edit_input==='datetime'">
<el-date-picker style="width: 100%;" v-model="item.value" type="datetime"
:placeholder="item.help" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</div>
<!-- 多附件上传 -->
<div v-else-if="item.edit_input==='files'">
<el-upload class="upload-demo" :action="action" list-type="picture-card"
accept=".PNG,.jpg,.jpeg,.bmp,.svg"
:on-success="(response, file, fileList)=>{uploadSuccess(response, file, fileList,item)}"
:on-remove="(file, fileList)=>{uploadRemove(file, fileList,item)}" :file-list="item.fileList">
<i class="el-icon-plus"></i>
</el-upload>
</div>
<!-- 没有的 -->
<div v-else>
<el-input v-model="item.value" :placeholder="item.help" clearable
style="width: 100%;"></el-input>
</div>
</div>
</div>
</div>
</div>
</template>
</xy-dialog>
</div>
</template>
<script>
import formMixin from "@/mixin/formMixin.js";
import {
save
} from '@/api/student/index.js'
import {
save as saveData
} from '@/api/apply/index.js'
export default {
mixins: [formMixin],
data() {
return {
isShow: false,
type: 'add',
rules: {},
row: {},
typeList: [],
companyTypeList: [],
fieldForm: [], //
formList:[], //
form: {
show: ''
},
action: `${process.env.VUE_APP_UPLOAD_API}`,
baseUrl:`${process.env.VUE_APP_BASE_API}`
}
},
methods: {
uploadSuccess(response, file, fileList,item){
console.log("succ",fileList)
this.$set(item,'fileList',fileList)
console.log("item",item.fileList)
},
uploadRemove(file, fileList,item){
console.log("remove",fileList)
this.$set(item,'fileList',fileList)
console.log("item",item.fileList)
},
submit() {
let user = {}
this.fieldForm.map(item => {
// string
if (item.edit_input === 'checkbox') {
item.value= item.valueArr.join(",")
}else if(item.edit_input === 'files'){
let values = []
if(item.fileList && item.fileList.length>0){
item.fileList.map(file=>{
if(file.response){
values.push(file.response.url.replace(this.baseUrl, ''))
}else{
values.push(file.url.replace(this.baseUrl, ''))
}
})
item.value = values.join(",")
}
}else{
if(item.value==null){
item.value = ''
}
}
//
if(!this.base.isNull(item.belong_user_table)){
user[item.belong_user_table] = item.value
}
//
})
console.log("this.fieldForm",this.fieldForm)
//
//
saveData({
...this.row,
data:this.fieldForm
}).then(res=>{
save({
id:this.row.user_id,
...user
}).then(res=>{
this.$message({
type:'success',
message:'更新成功'
})
this.isShow = false
this.$emit("refresh")
})
})
},
},
watch: {
isShow(newVal) {
if (newVal) {
if (this.type === 'editor') {
console.log("row", this.row,this.formList)
let _obj = {}
if (this.row.data && this.row.data.length > 0) {
this.row.data.map(item => {
this.formList.map(item1=>{
if(item.field===item1.field){
//
if (item1.edit_input === 'checkbox') {
console.log(item.value)
item1.valueArr = item.value?item.value.split(","):[]
}else{
item1.value = item.value
}
}
})
})
this.fieldForm = this.base.deepCopy(this.formList)
}else{
this.fieldForm = []
}
// this.submitForm = this.base.deepCopy(_obj)
}
} else {
this.id = ''
this.type = 'add'
this.form = {show:''}
this.row = {}
this.typeList = []
this.companyTypeList = []
this.$refs['dialog'].reset()
}
},
}
}
</script>
<style lang="scss" scoped>
::v-deep .show {
flex-basis: 100%;
}
::v-deep .flex-content {
display: flex;
flex-wrap: wrap;
&>div {
flex-basis: 50%;
}
}
</style>

@ -8,7 +8,7 @@
<span style="color: red;font-weight: bold;padding-right: 4px;">*</span>班主任
</div>
<div class="xy-table-item-content">
<el-select v-model="form.teacher_id" style="width:100%" placeholder="请选择班主任" clearable>
<el-select v-model="teachers" multiple style="width:100%" placeholder="请选择班主任" clearable>
<el-option v-for="item in teacher_options" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
@ -36,7 +36,7 @@
form: {
teacher_id: '',
},
teachers:[],
rules: {
teacher_id: [{
required: true,
@ -51,7 +51,10 @@
setTeachers(e){
this.teacher_options = e
},
submit() {
submit() {
if(this.teachers.length>0){
this.form.teacher_id = this.teachers.join(",")
}
save({
...this.form
}).then(res => {
@ -68,7 +71,14 @@
show({
id: this.id
}).then(res => {
this.form = this.base.deepCopy(res, this.form)
this.form = this.base.deepCopy(res, this.form)
res.teacher_detail.map(item=>{
this.teachers.push(item.id)
})
// this.teachers = this.form.teacher_id?this.form.teacher_id.split(","):[],
// this.$nextTick(function(){
// this.teachers = this.form.teacher_id?this.form.teacher_id.split(","):[]
// })
})
},
},
@ -77,7 +87,8 @@
if (newVal) {
this.getDetail()
} else {
this.id = ''
this.id = ''
this.teachers = []
this.$refs['dialog'].reset()
}
},

@ -67,12 +67,12 @@
</el-table-column>
</template>
<template v-slot:img>
<el-table-column align='center' label="缴费截图" width="120" header-align="center">
<el-table-column align='center' label="缴费截图" width="100" header-align="center">
<template slot-scope="scope">
<div v-for="item in scope.row.fee_files">
<el-image mode="cover" style="width:'40px';height:'40px'" :src="item.url"
<template v-for="item in scope.row.fee_files">
<el-image style="width:'40px';height:'40px'" :src="item.url"
:preview-src-list="[item.url]"></el-image>
</div>
</template>
</template>
</el-table-column>
</template>
@ -80,8 +80,8 @@
<el-table-column v-if="url_type=='pay'" align='center' fixed="right" label="操作" width="80"
header-align="center">
<template slot-scope="scope">
<!-- -->
<el-button type="primary" size="small" v-if="scope.row.fee_status===3"
<!-- v-if="scope.row.fee_status===3"-->
<el-button type="primary" size="small"
@click="showCheckPay(scope.row)">核对</el-button>
</template>
</el-table-column>

@ -1,6 +1,5 @@
<template>
<div>
<div>
<div ref="lxHeader">
<lx-header icon="md-apps" :text="$route.meta.title" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
@ -17,11 +16,7 @@
<el-input v-model="select.company_name" placeholder="请输入公司名称"></el-input>
</div>
<div>
<el-select v-model="select.company_position" placeholder="请选择职务" clearable>
<el-option v-for="item in formSelect.company_position" :key="item.id" :label="item.value"
:value="item.value">
</el-option>
</el-select>
<el-input v-model="select.company_position" placeholder="请输入职务"></el-input>
</div>
<div>
<el-select v-model="select.company_area" placeholder="请选择所属区域" clearable>
@ -58,14 +53,15 @@
</el-option>
</el-select>
</div>
<div>
<!-- <div>
<el-select v-model="select.apply_status" placeholder="请选择审核状态" clearable>
<el-option v-for="item in apply_status_list" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
</div> -->
<div>
<el-button type="primary" size="small" @click="select.page=1,getList()"></el-button>
<el-button type="primary" size="small" @click="importTable"></el-button>
<el-button type="primary" size="small" @click="exportExcel"></el-button>
</div>
</div>
@ -95,12 +91,12 @@
</el-table-column>
</template>
<template v-slot:btns>
<el-table-column align='left' fixed="right" label="操作" width="180" header-align="center">
<el-table-column align='left' fixed="right" label="操作" width="240" header-align="center">
<template slot-scope="scope">
<el-button type="primary" v-if="scope.row.status>0 && !subjectObj.is_history" size="small"
<el-button type="primary" v-if="scope.row.status===1 " size="small"
@click="showDetail('setPosition',scope.row)">设置班委</el-button>
<el-button type="primary" v-if="scope.row.status>0" size="small"
@click="showDetail('checkshow',scope.row)">查看</el-button>
<el-button type="primary" size="small" @click="editSign('editor',scope.row)"></el-button>
<el-button type="primary" size="small" @click="showDetail('checkshow',scope.row)"></el-button>
</template>
</el-table-column>
</template>
@ -108,11 +104,14 @@
</div>
<student-detail ref="studentDetail" @refresh="getList"></student-detail>
<editSign ref="editSign" @refresh="getList"></editSign>
<imports ref="imports" :course_id="subjectObj.id" :table-name="'course_signs'" @refresh="getList"></imports>
</div>
</template>
<script>
import studentDetail from '@/views/student/components/detail.vue';
import editSign from '@/views/course/components/editSign.vue';
import myMixins from "@/mixin/selectMixin.js";
import formMixin from "@/mixin/formMixin.js";
import {
@ -121,10 +120,16 @@
import {
download
} from "@/utils/downloadRequest";
import imports from "@/views/component/imports.vue"
import {
index as formIndex
} from "@/api/course/form";
export default {
mixins: [myMixins, formMixin],
components: {
studentDetail
studentDetail,
editSign,
imports
},
data() {
return {
@ -137,8 +142,8 @@
company_position: '',
company_area: '',
company_type: '',
company_industry: '',
education:'',
company_industry: '',
education: '',
status: '',
apply_status: '',
page: 1,
@ -146,6 +151,7 @@
},
list: [],
total: 0,
formList: [], //
table_item: [{
prop: 'user.username',
label: '姓名',
@ -180,7 +186,7 @@
}, {
prop: 'user.company_name',
label: '公司名称',
align: 'left',
align: 'left',
width: 240,
}, {
prop: 'user.company_position',
@ -192,7 +198,7 @@
label: '本班职务',
align: 'center',
width: 120,
},{
}, {
prop: 'score',
label: '评分',
align: 'center',
@ -214,7 +220,8 @@
},
mounted() {
this.subjectObj = this.$route.query
this.select.course_id = this.subjectObj.id
this.select.course_id = this.subjectObj.id
this.getAutoForm()
this.getList()
},
methods: {
@ -237,8 +244,8 @@
company_position: this.select.company_position,
company_area: this.select.company_area,
company_type: this.select.company_type,
company_industry: this.select.company_industry,
education:this.select.education,
company_industry: this.select.company_industry,
education: this.select.education,
filter: [{
key: 'course_id',
op: 'eq',
@ -246,7 +253,11 @@
}, {
key: 'status',
op: 'eq',
value: this.select.apply_status
value: 1
}, {
key: 'fee_status',
op: 'eq',
value: this.subjectObj.is_fee === 0 ? '' : 1
}]
})
this.list = res.data
@ -259,28 +270,64 @@
this.$refs.studentDetail.type = type
this.$refs.studentDetail.isShow = true
},
importTable(row) {
// this.$refs.imports.tableData = {
// 'data[course_id]': row.course_id,
// 'data[course_content_id]': row.id
// }
// this.$refs.imports.tableData = {
// 'data[course_id]': this.subjectObj.id
// }
this.$refs.imports.show()
// {"course_id":15,"course_content_id":188}
},
//
async getAutoForm(){
const res = await formIndex({
page:1,
page_size:999,
sort_name: 'sort',
sort_type: 'ASC',
filter: [{
key: 'course_id',
op: 'eq',
value: this.select.course_id
}],
})
this.formList = res.data
},
//
editSign(type, row) {
this.$refs.editSign.type = type
this.$refs.editSign.row = row
this.$refs.editSign.formList = this.formList
this.$refs.editSign.isShow = true
},
exportExcel() {
let _export = {}
this.table_item.map(item => {
if (item.prop === 'status') {
_export['status_text'] = item.label
} else {
_export[item.prop] = item.label
if (item.prop === 'created_at' || item.prop === 'score' || item.prop === 'position') {
_export[item.prop] = item.label
}
}
})
download(
'/api/admin/course-signs/index',
'get', {
name: this.select.name,
mobile: this.select.mobile,
company_name: this.select.company_name,
company_position: this.select.company_position,
company_area: this.select.company_area,
company_type: this.select.company_type,
company_industry: this.select.company_industry,
education:this.select.education,
name: this.select.name,
mobile: this.select.mobile,
company_name: this.select.company_name,
company_position: this.select.company_position,
company_area: this.select.company_area,
company_type: this.select.company_type,
company_industry: this.select.company_industry,
education: this.select.education,
export_fields: _export,
filter: [{
key: 'course_id',
@ -289,14 +336,18 @@
}, {
key: 'status',
op: 'eq',
value: this.select.status
value: 1
}, {
key: 'fee_status',
op: 'eq',
value: this.subjectObj.is_fee === 0 ? '' : this.subjectObj.is_fee
}],
is_export: 1,
page: 1,
page_size: 999
},
`${this.subjectObj.title}通讯录.xlsx`)
}
},
}
}
</script>

@ -17,127 +17,55 @@
</lx-header>
<div>
<el-descriptions class="margin-top" :column="2" border>
<el-descriptions-item>
<el-descriptions-item v-for="item in selectFormList" :span="item.span?item.span:1">
<template slot="label">
姓名
{{item.name}}
</template>
{{student_info.username?student_info.username:''}}
{{student_info[item.field]?student_info[item.field]:''}}
</el-descriptions-item>
<el-descriptions-item>
<el-descriptions-item v-if="type==='check' || type==='checkshow' || type==='setPosition'">
<template slot="label">
性别
本班职务
</template>
{{student_info.sex?student_info.sex:''}}
{{sign_result.position?sign_result.position:''}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
身份证号
</template>
{{student_info.idcard?student_info.idcard:''}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
联系方式
</template>
{{student_info.mobile?student_info.mobile:''}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
出生日期
</template>
{{student_info.birthday?student_info.birthday:''}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
邮箱
</template>
{{student_info.email?student_info.email:''}}
</el-descriptions-item>
<el-descriptions-item :span="2">
<template slot="label">
公司名称
</template>
{{student_info.company_name?student_info.company_name:''}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
职务
</template>
{{student_info.company_position?student_info.company_position:''}}
</el-descriptions-item>
<el-descriptions-item v-if="type==='check' || type==='checkshow' || type==='setPosition'">
<template slot="label">
本班职务
</template>
{{sign_result.position?sign_result.position:''}}
</el-descriptions-item>
<!-- <el-descriptions-item :span="3">
<template slot="label">
证件照
</template>
</el-descriptions-item> -->
<!-- <el-descriptions-item>
<template slot="label">
邮箱
</template>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
最高学历
</template>
</el-descriptions-item>
<el-descriptions-item :span="3">
<template slot="label">
最高学历毕业院校及专业
</template>
</el-descriptions-item>
<el-descriptions-item :span="3">
<template slot="label">
个人荣誉
</template>
</el-descriptions-item>
<el-descriptions-item :span="3">
<template slot="label">
个人简历
</template>
</el-descriptions-item> -->
</el-descriptions>
</div>
<template v-if="sign_info.length>0">
<lx-header v-if="type==='check' || type==='checkshow' || type==='setPosition'" icon="" text="报名信息"
style="margin-bottom: 10px; border: 0px; margin-top: 15px">
</lx-header>
<div v-if="type==='check' || type==='checkshow' || type==='setPosition'">
<el-descriptions class="margin-top" :column="2" border>
<template v-for="item in sign_info">
<el-descriptions-item :span="2" v-if="item.submit_files && item.submit_files.length>0">
<template slot="label">
{{item.name}}
</template>
<div>
<template v-for="file in item.submit_files">
<img style="width:100px;margin:10px" :src="host+file"></img>
</template>
</div>
</el-descriptions-item>
<el-descriptions-item v-else>
<template slot="label">
{{item.name}}
</template>
{{item.value}}
</el-descriptions-item>
</template>
</el-descriptions>
</div>
<!-- 报名信息 -->
<template v-if="sign_info.length>0">
<lx-header v-if="type==='check' || type==='checkshow' || type==='setPosition'" icon="" text="报名信息"
style="margin-bottom: 10px; border: 0px; margin-top: 15px">
</lx-header>
<div v-if="type==='check' || type==='checkshow' || type==='setPosition'">
<el-descriptions class="margin-top" :column="2" border>
<template v-for="item in sign_info">
<el-descriptions-item :span="2" v-if="item.submit_files && item.submit_files.length>0">
<template slot="label">
{{item.name}}
</template>
<div>
<template v-for="file in item.submit_files">
<img style="width:100px;margin:10px" :src="host+file"></img>
</template>
</div>
</el-descriptions-item>
<el-descriptions-item v-else>
<template slot="label">
{{item.name}}
</template>
{{item.value}}
</el-descriptions-item>
</template>
</el-descriptions>
</div>
</template>
<!-- 审核查看 -->
<lx-header v-if="type=='checkshow' || type=='check'" icon="" text="审核结果" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
<lx-header v-if="type=='checkshow' || type=='check'" icon="" text="审核结果"
style="margin-bottom: 10px; border: 0px; margin-top: 15px">
</lx-header>
<div v-if="type=='checkshow'">
@ -151,15 +79,19 @@
<div>
<span>评分</span>
<span>{{sign_result.score}}</span>
</div>
<div style="display: flex;" v-if="sign_result.status===1">
<span>录取通知书</span>
<div>
<div v-for="item in sign_result.files">
<a :href="item.url" target="_blank" style="color:#0077CC">{{item.original_name}}</a>
</div>
</div>
</div>
<div v-if="sign_result.status===5">
<span>放弃原因</span>
<span>{{sign_result.giveup_reason}}</span>
</div>
<div style="display: flex;" v-if="sign_result.status===1">
<span>录取通知书</span>
<div>
<div v-for="item in sign_result.files">
<a :href="item.url" target="_blank" style="color:#0077CC">{{item.original_name}}</a>
</div>
</div>
</div>
<div>
<span>备注</span>
@ -196,17 +128,25 @@
</div>
</div>
</template>
<template v-slot:giveup_reason v-if="type=='check'&& form.status===5">
<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.giveup_reason" placeholder="请输入放弃原因"></el-input>
</div>
</div>
</template>
<template v-slot:file_ids v-if="type=='check' && form.status===1">
<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-upload :action="action" class='upload-demo' :file-list="fileList"
ref="pictureUpload" :auto-upload="true"
accept=".pdf"
:limit="1" :on-success="uploadSuccess" :on-remove="uploadRemove">
<el-button size="small" type="primary">点击上传</el-button>
<el-upload :action="action" class='upload-demo' :file-list="fileList" ref="pictureUpload"
:auto-upload="true" accept=".pdf" :limit="1" :on-success="uploadSuccess" :on-remove="uploadRemove">
<el-button size="small" type="primary">点击上传</el-button>
<div class="el-upload__tip" slot="tip">只能上传pdf文件</div>
</el-upload>
</div>
@ -218,30 +158,30 @@
<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.reason" placeholder="请输入备注"></el-input>
<el-input type="textarea" v-model="form.reason" placeholder="请输入备注(展示给学员查看)"></el-input>
</div>
</div>
</template>
<!-- 设置班委 -->
<template v-slot:position v-if="type=='setPosition'">
<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="text" v-model="form.position" placeholder="请输入班委名称(如:班长)"></el-input>
</div>
</div>
</template>
<!-- 设置班委 -->
<template v-slot:position v-if="type=='setPosition'">
<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="text" v-model="form.position" 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' || type=='setPosition'"
@click="submit">确认</el-button>
<el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;' v-else-if="type=='check'|| type=='setPosition'"
@click="isShow=false">取消</el-button>
<el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;' v-else-if="type=='show'||type=='checkshow'"
@click="isShow=false">关闭</el-button>
<el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;'
v-else-if="type=='check'|| type=='setPosition'" @click="isShow=false">取消</el-button>
<el-button type="primary" plain style='margin-left:5px;margin-bottom:5px;'
v-else-if="type=='show'||type=='checkshow'" @click="isShow=false">关闭</el-button>
</template>
@ -260,8 +200,9 @@
} from '@/api/apply/index.js'
import myMixins from "@/mixin/selectMixin.js";
import formMixin from "@/mixin/formMixin.js";
export default {
mixins: [myMixins],
mixins: [myMixins, formMixin],
components: {
},
@ -271,8 +212,8 @@
type: 'show',
typeName: '查看个人明细',
id: '',
action: `${process.env.VUE_APP_UPLOAD_API}`,
host:`${process.env.VUE_APP_BASE_API}`,
action: `${process.env.VUE_APP_UPLOAD_API}`,
host: `${process.env.VUE_APP_BASE_API}`,
subjectObj: {},
student_info: {},
row: {},
@ -283,53 +224,55 @@
show: '',
status: 0,
score: '',
giveup_reason: '',
file_ids: [],
reason: '',
position:''
reason: '',
position: ''
},
}
},
created() {},
methods: {
uploadSuccess(response, file, fileList) {
this.fileList = fileList
},
uploadRemove(file, fileList) {
this.fileList = fileList
},
// beforeUpload(file) {
// const isImage = file.type.includes('image');
// if (!isImage) {
// this.$message.error('');
// }
// return isImage && isLt2M;
uploadSuccess(response, file, fileList) {
this.fileList = fileList
},
uploadRemove(file, fileList) {
this.fileList = fileList
},
// beforeUpload(file) {
// const isImage = file.type.includes('image');
// if (!isImage) {
// this.$message.error('');
// }
// return isImage && isLt2M;
// },
submit() {
if (this.id) {
this.form.id = this.id
}
let _arr = []
if (this.fileList.length > 0) {
this.fileList.map(item => {
if (item.response) {
_arr.push(item.response.id)
} else {
_arr.push(item.id)
}
})
}
}
let _arr = []
if (this.fileList.length > 0) {
this.fileList.map(item => {
if (item.response) {
_arr.push(item.response.id)
} else {
_arr.push(item.id)
}
})
}
this.form.file_ids = _arr
save({
...this.row,
status: this.form.status,
reason: this.form.reason,
score: this.form.score,
file_ids:this.form.file_ids,
position:this.form.position
score: this.form.score,
giveup_reason: this.form.giveup_reason,
file_ids: this.form.file_ids,
position: this.form.position
}).then(res => {
this.$message({
type: 'success',
message: this.type==='check' ? '审核成功' : '设置成功'
message: this.type === 'check' ? '审核成功' : '设置成功'
})
this.isShow = false
this.$emit('refresh')
@ -349,24 +292,30 @@
show_relation: ['user']
}).then(res => {
this.student_info = res.user
this.sign_result = res
this.form.position = res.position?res.position:''
if(res.data && Array.isArray(res.data)){
res.data.map(item=>{
if(!this.base.isNull(item.value) && item.value.indexOf("/storage/files/")!==-1){
item.submit_files = item.value.split(",")
this.sign_result = res
this.form.position = res.position ? res.position : ''
let _arr = []
if (res.data && Array.isArray(res.data)) {
res.data.map(item => {
if (!this.base.isNull(item.value) && item.value.indexOf("/storage/files/") !== -1) {
item.submit_files = item.value.split(",")
}
})
this.sign_info = res.data
}else{
this.sign_info = []
}
this.form.status = res.status?res.status:0
this.form.score = res.score?res.score:''
this.form.reason = res.reason?res.reason:''
this.fileList = res.files?res.files:[]
console.log("this.sign_info",this.sign_info)
//
if (!this.student_info.hasOwnProperty(item.field)) {
console.log("item.field")
_arr.push(item)
}
})
this.sign_info = _arr
} else {
this.sign_info = []
}
this.form.status = res.status ? res.status : 0
this.form.score = res.score ? res.score : ''
this.form.reason = res.reason ? res.reason : ''
this.fileList = res.files ? res.files : []
console.log("this.sign_info", this.sign_info)
})
}
},
@ -376,14 +325,14 @@
if (this.type === 'show') {
this.typeName = "查看个人明细"
this.getDetail()
} else if (this.type === 'check' || this.type === 'checkshow' || this.type==='setPosition') {
this.getSignDetail()
if(this.type==='check'){
this.typeName = '审核'
}else if(this.type==='setPosition'){
this.typeName = '设置班委'
}else{
this.typeName = '查看'
} else if (this.type === 'check' || this.type === 'checkshow' || this.type === 'setPosition') {
this.getSignDetail()
if (this.type === 'check') {
this.typeName = '审核'
} else if (this.type === 'setPosition') {
this.typeName = '设置班委'
} else {
this.typeName = '查看'
}
}
@ -392,7 +341,7 @@
this.type = 'show'
this.subjectObj = {}
this.sign_result = {}
this.sign_info = []
this.sign_info = []
this.fileList = []
this.$refs['dialog'].reset()
}
@ -403,9 +352,10 @@
</script>
<style scoped lang="scss">
::v-deep .show,
::v-deep .file_ids,
::v-deep .reason {
::v-deep .show,
::v-deep .file_ids,
::v-deep .reason,
::v-deep .giveup_reason {
flex-basis: 100%;
}

@ -0,0 +1,381 @@
<template>
<div>
<xy-dialog ref="dialog" :width="70" :is-show.sync="isShow" :type="'form'" :title="type === 'add' ? '新增学员' : '编辑学员'"
:form="form" :rules='rules' @submit="submit">
<template v-slot:username>
<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 v-model="form.username" placeholder="请输入姓名" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:sex>
<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-select v-model="form.sex" placeholder="请选择性别" clearable style="width: 100%;">
<el-option v-for="(item,index) in sexList" :key="index" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:birthday>
<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-date-picker style="width: 100%;" v-model="form.birthday" type="date" value-format="yyyy-MM-dd"
format="yyyy-MM-dd" placeholder="出生日期">
</el-date-picker>
</div>
</div>
</template>
<template v-slot:mobile>
<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 v-model="form.mobile" placeholder="请输入联系方式" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:idcard>
<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 v-model="form.idcard" placeholder="请输入身份证号" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:education>
<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-select v-model="form.education" placeholder="请选择学历" clearable style="width: 100%;">
<el-option v-for="(item,index) in formSelect.education" :key="index" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:company_name>
<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 v-model="form.company_name" placeholder="请输入公司名称" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:company_position>
<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 v-model="form.company_position" placeholder="请输入职务" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:company_has_share>
<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-select v-model="form.company_has_share" placeholder="请选择有无股份" clearable style="width: 100%;">
<el-option v-for="(item,index) in shareList" :key="index" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:type>
<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-select v-model="typeList" @change="changeType" multiple placeholder="请选择人才类型" clearable style="width: 100%;">
<el-option v-for="(item,index) in formSelect.type" :key="index" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:company_type>
<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-select v-model="companyTypeList" multiple placeholder="请选择企业性质" clearable style="width: 100%;">
<el-option v-for="(item,index) in formSelect.company_type" :key="index" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:company_fund>
<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 v-model="form.company_fund" placeholder="请输入融资情况" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:company_area>
<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-select v-model="form.company_area" placeholder="请选择所在区域" clearable style="width: 100%;">
<el-option v-for="(item,index) in formSelect.company_area" :key="index" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:company_industry>
<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-select v-model="form.company_industry" placeholder="请选择所属行业" clearable style="width: 100%;">
<el-option v-for="(item,index) in formSelect.company_industry" :key="index" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:company_address>
<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 v-model="form.company_address" placeholder="请输入公司地址" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:company_product>
<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 v-model="form.company_product" placeholder="请输入产品" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:school>
<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 v-model="form.school" placeholder="请输入毕业院校" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:speciality>
<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 v-model="form.speciality" placeholder="请输入专业" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:overseas_experience>
<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 v-model="form.overseas_experience" placeholder="请输入海外经验" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:sign_from>
<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-select v-model="form.sign_from" placeholder="请选择报名渠道" clearable style="width: 100%;">
<el-option v-for="(item,index) in formSelect.sign_from" :key="index" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:email>
<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 v-model="form.email" placeholder="请输入邮箱" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:sales_volume>
<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 v-model="form.sales_volume" placeholder="请输入销售额/亿" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:valuation>
<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 v-model="form.valuation" placeholder="请输入估值" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:market_value>
<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 v-model="form.market_value" placeholder="请输入市值" clearable style="width: 100%;"></el-input>
</div>
</div>
</template>
<template v-slot:is_yuanhe>
<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-select v-model="form.is_yuanhe" placeholder="请选择是否为元禾投资企业" clearable style="width: 100%;">
<el-option v-for="(item,index) in formSelect.is_yuanhe" :key="index" :label="item.value" :value="item.value">
</el-option>
</el-select>
</div>
</div>
</template>
</xy-dialog>
</div>
</template>
<script>
import formMixin from "@/mixin/formMixin.js";
import {
show,
save
} from '@/api/student/index.js'
export default {
mixins: [formMixin],
data() {
return {
isShow: false,
type: 'add',
rules: {},
typeList:[],
companyTypeList:[],
form:{
username:'',
sex:"",
birthday:"",
mobile:"",
idcard:"",
education:'',
company_name:'',
company_position:'',
company_has_share:'',
type:'',
company_type:'',
company_fund:'',
company_area:'',
company_industry:'',
company_address:'',
company_product:'',
school:'',
speciality:'',
overseas_experience:'',
sign_from:'',
email:'',
sales_volume:"",
valuation:'',
market_value:"",
is_yuanhe:''
}
}
},
methods: {
submit() {
this.form.type = this.typeList.join(",")
this.form.company_type = this.companyTypeList.join(",")
this.form.name = this.form.username
save(this.form).then(res => {
this.$message({
type: 'success',
message: '编辑学员信息成功'
})
this.isShow = false
this.$emit('refresh')
})
},
changeType(e){
console.log("e",e)
},
getDetail() {
show({
id: this.id,
}).then(res => {
this.form = this.base.requestToForm(res,this.form)
this.typeList = res.type?res.type.split(","):[],
this.companyTypeList = res.company_type?res.company_type.split(","):[]
})
},
},
watch: {
isShow(newVal) {
if (newVal) {
if (this.type === 'editor') {
this.getDetail()
} else if (this.type === 'check') {
// this.getSignDetail()
}
} else {
this.id = ''
this.type = 'add'
this.typeList = []
this.companyTypeList = []
this.$refs['dialog'].reset()
}
},
}
}
</script>
<style lang="scss" scoped>
</style>

@ -17,6 +17,10 @@
<div>
<el-input v-model="select.company_name" placeholder="请输入公司名称"></el-input>
</div>
<div>
<el-input v-model="select.course_name" placeholder="请输入课程名称"></el-input>
</div>
<div>
<el-select v-model="select.company_position" placeholder="请选择职务" clearable>
<el-option v-for="item in formSelect.company_position" :key="item.id" :label="item.value"
@ -71,11 +75,25 @@
</el-option>
</el-select>
</div>
<div>
<el-date-picker style="width:100%" @change="changeDate" v-model="select.courses_end_date" type="date"
placeholder="课程结束日期" value-format="yyyy-MM-dd" format="yyyy-MM-dd">
</el-date-picker>
</div>
<div>
<el-select v-model="select.status" placeholder="请选择审核状态" clearable>
<el-option v-for="item in apply_status_list" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.course_type" placeholder="请选择课程体系" clearable>
<el-option v-for="item in courseTypeList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-button type="primary" size="small" @click="select.page=1,getList()"></el-button>
<el-button type="primary" size="small" @click="importTable"></el-button>
@ -96,21 +114,31 @@
@selection-change="selectionChange" :total="total" :table-item="table_item">
<template v-slot:course_list>
<el-table-column align='left' label="课程" width="320" header-align="center">
<el-table-column align='left' label="课程" width="380" header-align="center">
<template slot-scope="scope">
<div v-for="(item,index) in scope.row.courses">
<div>{{index+1}}{{item.name}}</div>
<div v-for="(item,index) in scope.row.course_signs">
<div v-if="item.course"
style="width:100%;display: flex;justify-content: space-between;align-items: center;margin-bottom:5px">
<div>
{{item.course.year?item.course.year:''}}{{item.course.type_detail.name+' | '}}{{item.course.name}}
</div>
<template v-for="state in apply_status_list">
<el-tag style="margin-left:20px" :type="state.type"
v-if="item.status===state.id">{{state.value}}</el-tag>
</template>
</div>
</div>
</template>
</el-table-column>
</template>
<template v-slot:mobile>
<el-table-column align='center' label="联系方式" width="120" header-align="center">
<template slot-scope="scope">
{{base.maskPhoneNumber(scope.row.mobile)}}
</template>
</el-table-column>
</template>
</template>
<template v-slot:mobile>
<el-table-column align='center' label="联系方式" width="120" header-align="center">
<template slot-scope="scope">
{{base.maskPhoneNumber(scope.row.mobile)}}
</template>
</el-table-column>
</template>
<template v-slot:is_schoolmate>
<el-table-column align='center' label="是否校友库学员" width="120" header-align="center">
@ -133,8 +161,10 @@
</el-table-column>
</template>
<template v-slot:btns>
<el-table-column align='center' label="操作" fixed="right" width="80" header-align="center">
<el-table-column align='center' label="操作" fixed="right" width="180" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="edit('editor',scope.row.id)"></el-button>
<el-button type="primary" size="small" @click="showDetail('show',scope.row.id)"></el-button>
</template>
</el-table-column>
@ -142,25 +172,32 @@
</xy-table>
</div>
<student-detail ref="studentDetail"></student-detail>
<imports ref="imports" :table-name="'users'" @refresh="getList"></imports>
<student-detail ref="studentDetail"></student-detail>
<editDetail ref="editDetail" @refresh="getList"></editDetail>
<imports ref="imports" :table-name="'users'" @refresh="getList"></imports>
</div>
</template>
<script>
import studentDetail from './components/detail.vue';
import editDetail from './components/editDetail.vue';
import myMixins from "@/mixin/selectMixin.js";
import formMixin from "@/mixin/formMixin.js";
import {
indexStudy,
updateSchoolmate
} from '@/api/student/index.js'
import imports from "@/views/component/imports.vue"
import imports from "@/views/component/imports.vue"
import {
index as indexTypes
} from "@/api/course/courseType.js"
export default {
mixins: [myMixins, formMixin],
components: {
studentDetail,
studentDetail,
editDetail,
imports
},
data() {
@ -177,12 +214,15 @@
company_industry: '',
is_vip: '',
is_schoolmate: '',
courses_end_date: '',
education:'',
type:'',
courses_end_date: '',
education: '',
type: '',
status: "",
course_type: '',
page: 1,
page_size: 10,
},
courseTypeList: [],
list: [],
total: 0,
seleSchoolmates: [],
@ -248,17 +288,18 @@
}
},
created() {
this.getList()
this.getList()
this.getCourseType()
},
methods: {
importTable(row) {
// this.$refs.imports.tableData = {
// 'data[course_id]': row.course_id,
// 'data[course_content_id]': row.id
// }
this.$refs.imports.show()
// {"course_id":15,"course_content_id":188}
methods: {
importTable(row) {
// this.$refs.imports.tableData = {
// 'data[course_id]': row.course_id,
// 'data[course_content_id]': row.id
// }
this.$refs.imports.show()
// {"course_id":15,"course_content_id":188}
},
pageIndexChange(e) {
this.select.page = e
@ -276,15 +317,18 @@
name: this.select.name,
mobile: this.select.mobile,
company_name: this.select.company_name,
course_name: this.select.course_name,
company_position: this.select.company_position,
company_area: this.select.company_area,
company_type: this.select.company_type,
company_industry: this.select.company_industry,
is_vip: this.select.is_vip,
courses_end_date: this.select.courses_end_date,
is_schoolmate: this.select.is_schoolmate,
education:this.select.education,
type:this.select.type
is_schoolmate: this.select.is_schoolmate,
education: this.select.education,
type: this.select.type,
status: this.select.status,
course_type: this.select.course_type
})
this.list = res.list.data
this.total = res.list.total
@ -319,10 +363,22 @@
return
}
},
edit(type, id) {
this.$refs.editDetail.id = id
this.$refs.editDetail.type = type
this.$refs.editDetail.isShow = true
},
showDetail(type, id) {
this.$refs.studentDetail.id = id
this.$refs.studentDetail.type = type
this.$refs.studentDetail.isShow = true
},
async getCourseType() {
const res = await indexTypes({
page: 1,
page_size: 999
})
this.courseTypeList = res.data
}
}
}

@ -91,9 +91,13 @@
<template v-slot:course_list>
<el-table-column align='left' label="课程" width="320" header-align="center">
<template slot-scope="scope">
<div v-for="(item,index) in scope.row.courses">
<div>{{index+1}}{{item.name}}</div>
</div>
<div v-for="(item,index) in scope.row.course_signs"
style="width:100%;display: flex;justify-content: space-between;align-items: center;margin-bottom:5px">
<div>{{index+1}}{{item.course.year?item.course.year:''}}{{item.course.type_detail.name+' | '}}{{item.course.name}}</div>
<template v-for="state in apply_status_list">
<el-tag style="margin-left:20px" :type="state.type" v-if="item.status===state.id">{{state.value}}</el-tag>
</template>
</div>
</template>
</el-table-column>
</template>

@ -24,7 +24,7 @@ module.exports = {
* In most cases please use '/' !!!
* Detail: https://cli.vuejs.org/config/#publicpath
*/
publicPath: process.env.ENV === 'staging' ? '/admin_test' : '/admin',
publicPath: process.env.ENV === 'staging' ? '/admin' : '/admin',
outputDir: '/Users/mac/Documents/朗业/2024/s-苏州科技商学院/suzhoukeji/public/admin',
assetsDir: 'static',
css: {

Loading…
Cancel
Save