master
lion 1 week ago
parent 32a0dbf219
commit 47af3e1ce3

@ -0,0 +1,56 @@
import request from "@/utils/request";
function customParamsSerializer(params) {
let result = '';
for (let key in params) {
if (params.hasOwnProperty(key)) {
if (Array.isArray(params[key])) {
params[key].forEach((item, index) => {
if (item.key) {
result += `${key}[${index}][key]=${item.key}&${key}[${index}][op]=${item.op}&${key}[${index}][value]=${item.value}&`;
} else {
result += `${key}[${index}]=${item}&`
}
});
} else {
result += `${key}=${params[key]}&`;
}
}
}
return result.slice(0, -1);
}
export function index(params, isLoading = false) {
return request({
method: "get",
url: "/api/admin/employee-participations/index",
params,
paramsSerializer: customParamsSerializer,
isLoading
})
}
export function show(params, isLoading = true) {
return request({
method: "get",
url: "/api/admin/employee-participations/show",
params,
isLoading
})
}
export function save(data) {
return request({
method: "post",
url: "/api/admin/employee-participations/save",
data
})
}
export function destroy(params) {
return request({
method: "get",
url: "/api/admin/employee-participations/destroy",
params
})
}

@ -62,7 +62,7 @@
<div class="progress-row"> <div class="progress-row">
<div class="progress-bar-wrapper"> <div class="progress-bar-wrapper">
<div class="progress-bar" :style="{ width: getProgressPercent(item) + '%' }"> <div class="progress-bar" :style="{ width: getProgressPercent(item) + '%' }">
<span class="progress-value">{{ item.current }}{{ item.unit }}</span> <span class="progress-value">{{ item.current }}{{ item.unit }} {{ getProgressPercent(item) }}%</span>
</div> </div>
<div class="progress-tooltip" :style="{ left: getTooltipOffset(getProgressPercent(item)) }"> <div class="progress-tooltip" :style="{ left: getTooltipOffset(getProgressPercent(item)) }">
<div class="tooltip-percent">{{ getProgressPercent(item) }}%</div> <div class="tooltip-percent">{{ getProgressPercent(item) }}%</div>
@ -105,10 +105,10 @@
<!-- 时间轴 --> <!-- 时间轴 -->
<div class="timeline-container warehouse-table"> <div class="timeline-container warehouse-table">
<div class="timeline-arrow arrow-left" @click="switchTimeline(-1)"> <div class="timeline-arrow arrow-left" @click="switchTimeline(-1)">
<span class="arrow-icon arrow-icon-left"></span> <i class="el-icon-arrow-left" style="font-size: 1.5vw; color: #fff;"></i>
</div> </div>
<div class="timeline-arrow arrow-right" @click="switchTimeline(1)"> <div class="timeline-arrow arrow-right" @click="switchTimeline(1)">
<span class="arrow-icon arrow-icon-right"></span> <i class="el-icon-arrow-right" style="font-size: 1.5vw; color: #fff;"></i>
</div> </div>
<div class="timeline"> <div class="timeline">
<div <div
@ -185,6 +185,7 @@
<div class="tab" :class="{ active: mapType === 'suzhou' }" @click="mapType = 'suzhou'">苏州</div> <div class="tab" :class="{ active: mapType === 'suzhou' }" @click="mapType = 'suzhou'">苏州</div>
<div class="tab" :class="{ active: mapType === 'national' }" @click="mapType = 'national'">全国</div> <div class="tab" :class="{ active: mapType === 'national' }" @click="mapType = 'national'">全国</div>
</div> </div>
<div style="font-size: 1.1vw; font-weight: bold; color: #fff;" v-if="mapType = 'suzhou'"></div>
</div> </div>
<div class="map-chart-wrapper"> <div class="map-chart-wrapper">
<div class="suzhou-map-wrapper" v-show="mapType === 'suzhou'"> <div class="suzhou-map-wrapper" v-show="mapType === 'suzhou'">
@ -212,7 +213,7 @@
@mouseleave="hoveredArea = null" @mouseleave="hoveredArea = null"
> >
<div class="label-text"> <div class="label-text">
<span>校友数: {{ item.value }}</span> <span>{{ item.value }}</span>
</div> </div>
<div class="label-line"></div> <div class="label-line"></div>
</div> </div>
@ -357,10 +358,10 @@ export default {
'姑苏区': { labelLeft: '47.12%', labelTop: '28.68%', focusLeft: '45.88%', focusTop: '36.04%', focusWidth: '10.49%' }, '姑苏区': { labelLeft: '47.12%', labelTop: '28.68%', focusLeft: '45.88%', focusTop: '36.04%', focusWidth: '10.49%' },
// - : x: 265, y: 164, : 81 // - : x: 265, y: 164, : 81
// center: (305.5, 201) 57.21%, 45.27% // center: (305.5, 201) 57.21%, 45.27%
'工业园区': { labelLeft: '63.21%', labelTop: '33.27%', focusLeft: '49.63%', focusTop: '36.94%', focusWidth: '15.17%' }, '工业园区': { labelLeft: '60.21%', labelTop: '33.27%', focusLeft: '49.63%', focusTop: '36.94%', focusWidth: '15.17%' },
// - : x: 285, y: 133, : 170 // - : x: 285, y: 133, : 170
// center: (370, 211) 69.29%, 47.52% // center: (370, 211) 69.29%, 47.52%
'昆山市': { labelLeft: '78.29%', labelTop: '30.52%', focusLeft: '51.37%', focusTop: '29.95%', focusWidth: '31.84%' }, '昆山市': { labelLeft: '75.29%', labelTop: '30.52%', focusLeft: '51.37%', focusTop: '29.95%', focusWidth: '31.84%' },
// - : x: 75, y: 175, : 238 // - : x: 75, y: 175, : 238
// center: (194, 244.5) 36.33%, 55.07% // center: (194, 244.5) 36.33%, 55.07%
'吴中区': { labelLeft: '32.33%', labelTop: '40.07%', focusLeft: '13.04%', focusTop: '39.41%', focusWidth: '44.57%' }, '吴中区': { labelLeft: '32.33%', labelTop: '40.07%', focusLeft: '13.04%', focusTop: '39.41%', focusWidth: '44.57%' },
@ -1433,7 +1434,7 @@ export default {
white-space: nowrap; white-space: nowrap;
text-shadow: 0 1px 4px rgba(0, 0, 0, 0.35); text-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
position: absolute; position: absolute;
right: 0px; right: -2.1vw;
z-index: 1; z-index: 1;
} }

@ -0,0 +1,242 @@
<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: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="form.type" placeholder="请选择类型" clearable style="width: 100%;">
<el-option label="元禾员工参与" :value="1"></el-option>
<el-option label="干部培训" :value="2"></el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:course_type_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.course_type_id" placeholder="请选择课程体系" clearable style="width: 100%;">
<el-option v-for="item in courseTypeOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</div>
</div>
</template>
<template v-slot:course_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.course_name" placeholder="请输入课程名称" clearable style="width: 100%;" />
</div>
</div>
</template>
<template v-slot:start_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-date-picker
v-model="form.start_date"
type="date"
placeholder="请选择开始日期"
style="width: 100%;"
value-format="yyyy-MM-dd">
</el-date-picker>
</div>
</div>
</template>
<template v-slot:end_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-date-picker
v-model="form.end_date"
type="date"
placeholder="请选择结束日期"
style="width: 100%;"
value-format="yyyy-MM-dd">
</el-date-picker>
</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-number v-model="form.total" :min="0" placeholder="请输入数量" style="width: 100%;" />
</div>
</div>
</template>
</xy-dialog>
</div>
</template>
<script>
import { save, show } from '@/api/employee/index.js'
import { index as courseTypeIndex } from '@/api/course/courseType.js'
export default {
components: {
},
data() {
return {
isShow: false,
type: 'add',
id: '',
courseTypeOptions: [],
form: {
type: '',
course_type_id: '',
course_name: '',
start_date: '',
end_date: '',
total: 0
},
rules: {
type: [{
required: true,
message: '请选择类型'
}],
course_type_id: [{
required: true,
message: '请选择课程体系'
}],
course_name: [{
required: true,
message: '请输入课程名称'
}],
start_date: [{
required: true,
message: '请选择开始日期'
}],
end_date: [{
required: true,
message: '请选择结束日期'
}],
total: [{
required: true,
message: '请输入数量'
}]
}
}
},
created() {
this.getCourseTypeList()
},
methods: {
async getCourseTypeList() {
try {
const res = await courseTypeIndex({
page: 1,
page_size: 999
})
if (res && res.data) {
this.courseTypeOptions = res.data
if (this.courseTypeOptions.length === 0) {
this.$message.warning('请先创建课程体系')
}
}
} catch (error) {
console.error('获取课程体系列表失败:', error)
this.$message.error('获取课程体系列表失败')
}
},
submit() {
if (this.courseTypeOptions.length === 0) {
this.$message.warning('请先创建课程体系')
return
}
if (this.id) {
this.form.id = this.id
}
if (this.type === 'add') {
this.form.id = ''
}
//
if (this.form.total === null || this.form.total === undefined) {
this.form.total = 0
}
save(this.form).then(res => {
this.$message({
type: 'success',
message: this.type === 'add' ? '新增成功' : '编辑成功'
})
this.isShow = false
this.$emit('refresh')
}).catch(error => {
console.log(error)
this.$message.error(this.type === 'add' ? '新增失败' : '编辑失败')
})
},
getDetail() {
show({
id: this.id
}).then(res => {
this.form = {
type: res.type || '',
course_type_id: res.course_type_id || '',
course_name: res.course_name || '',
start_date: res.start_date || '',
end_date: res.end_date || '',
total: res.total !== undefined ? res.total : 0
}
}).catch(error => {
console.log(error)
this.$message.error('获取详情失败')
})
}
},
watch: {
isShow(newVal) {
if (newVal) {
//
this.getCourseTypeList()
if (this.type === 'editor') {
this.getDetail()
} else {
this.form = {
type: '',
course_type_id: '',
course_name: '',
start_date: '',
end_date: '',
total: 0
}
}
} else {
this.id = ''
this.type = 'add'
this.form = {
type: '',
course_type_id: '',
course_name: '',
start_date: '',
end_date: '',
total: 0
}
this.$refs['dialog'].reset()
}
}
}
}
</script>
<style scoped lang="scss">
</style>

@ -0,0 +1,216 @@
<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.course_name" placeholder="请输入课程名称" clearable />
</div>
<div>
<el-select v-model="select.type" placeholder="请选择类型" clearable style="width: 100%;">
<el-option label="元禾员工参与" :value="1" />
<el-option label="干部培训" :value="2" />
</el-select>
</div>
<div>
<el-button type="primary" size="small" @click="select.page=1,getList()"></el-button>
</div>
<div>
<el-button type="primary" size="small" @click="editEmployee('add')"></el-button>
</div>
</div>
</div>
</lx-header>
</div>
</div>
<div>
<xy-table :list="list" :total="total" :table-item="table_item" @pageIndexChange="pageIndexChange" @pageSizeChange="pageSizeChange">
<template v-slot:type>
<el-table-column align="center" label="类型" width="150" header-align="center">
<template slot-scope="scope">
<el-tag v-if="scope.row.type === 1" type="primary"></el-tag>
<el-tag v-else-if="scope.row.type === 2" type="success">干部培训</el-tag>
<span v-else>{{ scope.row.type }}</span>
</template>
</el-table-column>
</template>
<template v-slot:course_type_id>
<el-table-column align="center" label="课程体系" width="200" header-align="center">
<template slot-scope="scope">
{{ getCourseTypeName(scope.row.course_type_id) }}
</template>
</el-table-column>
</template>
<template v-slot:btns>
<el-table-column align="center" label="操作" width="180" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="editEmployee('editor',scope.row.id)"></el-button>
<el-popconfirm title="确定删除吗?" style="margin:0 10px" @confirm="deleteList(scope.row.id)">
<el-button slot="reference" type="danger" size="small">删除</el-button>
</el-popconfirm>
</template>
</el-table-column>
</template>
</xy-table>
</div>
<add-employee ref="addEmployee" @refresh="getList" />
</div>
</template>
<script>
import addEmployee from './components/addEmployee.vue'
import { index, destroy } from '@/api/employee/index.js'
import { index as courseTypeIndex } from '@/api/course/courseType.js'
export default {
components: {
addEmployee
},
data() {
return {
select: {
course_name: '',
type: '',
page: 1,
page_size: 10
},
list: [],
total: 0,
courseTypeOptions: [],
table_item: [{
prop: 'type',
label: '类型',
align: 'center',
width: 150
}, {
prop: 'course_type_id',
label: '课程体系',
align: 'center',
width: 200
}, {
prop: 'course_name',
label: '课程名称',
align: 'left',
minWidth: 200
}, {
prop: 'start_date',
label: '开始日期',
align: 'center',
width: 150
}, {
prop: 'end_date',
label: '结束日期',
align: 'center',
width: 150
}, {
prop: 'total',
label: '数量',
align: 'center',
width: 120
}]
}
},
created() {
this.getCourseTypeList()
this.getList()
},
methods: {
async getCourseTypeList() {
try {
const res = await courseTypeIndex({
page: 1,
page_size: 999
})
if (res && res.data) {
this.courseTypeOptions = res.data
}
} catch (error) {
console.error('获取课程体系列表失败:', error)
}
},
getCourseTypeName(courseTypeId) {
if (!courseTypeId) return ''
const courseType = this.courseTypeOptions.find(item => {
return String(item.id) === String(courseTypeId) || item.id === courseTypeId
})
return courseType ? courseType.name : courseTypeId
},
pageIndexChange(e) {
this.select.page = e
this.getList()
},
pageSizeChange(e) {
this.select.page_size = e
this.select.page = 1
this.getList()
},
editEmployee(type, id) {
if (type === 'editor') {
this.$refs.addEmployee.id = id
}
this.$refs.addEmployee.type = type
this.$refs.addEmployee.isShow = true
},
async getList() {
const params = {
page_size: this.select.page_size,
page: this.select.page
}
const filters = []
if (this.select.course_name) {
filters.push({
key: 'course_name',
op: 'like',
value: this.select.course_name
})
}
if (this.select.type) {
filters.push({
key: 'type',
op: 'eq',
value: this.select.type
})
}
if (filters.length > 0) {
params.filter = filters
}
const res = await index(params, false)
this.list = res.data
this.total = res.total
},
deleteList(id) {
destroy({
id: id
}).then(response => {
this.$message.success('删除成功')
this.getList()
}).catch(error => {
console.log(error)
this.$message.error('删除失败')
})
}
}
}
</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>

@ -304,20 +304,20 @@ export default {
label: '上市公司数', label: '上市公司数',
cardClass: 'student-card-1' cardClass: 'student-card-1'
}, },
{ // {
key: 'company_market_after_enrollment_total', // key: 'company_market_after_enrollment_total',
icon: 'el-icon-s-marketing', // icon: 'el-icon-s-marketing',
value: '0', // value: '0',
label: '入学后上市公司数', // label: '',
cardClass: 'student-card-2' // cardClass: 'student-card-2'
}, // },
{ // {
key: 'company_market_year_total', // key: 'company_market_year_total',
icon: 'el-icon-s-finance', // icon: 'el-icon-s-finance',
value: '0', // value: '0',
label: '今年上市公司数', // label: '',
cardClass: 'student-card-3' // cardClass: 'student-card-3'
} // }
] ]
}, },
{ {
@ -337,6 +337,13 @@ export default {
value: '0', value: '0',
label: '入学后被投企业数', label: '入学后被投企业数',
cardClass: 'student-card-2' cardClass: 'student-card-2'
},
{
key: 'company_invested_year_total',
icon: 'el-icon-s-flag',
value: '0',
label: '今年被投企业数',
cardClass: 'student-card-3'
} }
] ]
}, },

@ -1,5 +1,20 @@
<template> <template>
<div> <div>
<!-- 统计数据展示 -->
<div class="statistics-row" style="margin: 15px 0; padding: 15px; background: #f5f7fa; border-radius: 4px; display: flex; justify-content: space-around; align-items: center;">
<div class="stat-item" style="text-align: center;">
<div style="font-size: 14px; color: #909399; margin-bottom: 8px;">累计被投企业数</div>
<div style="font-size: 24px; font-weight: bold; color: #409EFF;">{{ statistics.course_signs_invested || 0 }}</div>
</div>
<div class="stat-item" style="text-align: center;">
<div style="font-size: 14px; color: #909399; margin-bottom: 8px;">入学后被投企业数</div>
<div style="font-size: 24px; font-weight: bold; color: #67C23A;">{{ statistics.company_invested_after_enrollment_total || 0 }}</div>
</div>
<div class="stat-item" style="text-align: center;">
<div style="font-size: 14px; color: #909399; margin-bottom: 8px;">今年被投企业数</div>
<div style="font-size: 24px; font-weight: bold; color: #E6A23C;">{{ statistics.company_invested_year_total || 0 }}</div>
</div>
</div>
<div> <div>
<div ref="lxHeader"> <div ref="lxHeader">
@ -21,18 +36,32 @@
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div>
<el-input v-model="select.course_name" placeholder="请输入课程名称"></el-input>
</div>
<div>
<el-input v-model="select.user_name" placeholder="请输入学员名称"></el-input>
</div>
<div> <div>
<el-select v-model="select.course_type_id" placeholder="请选择课程体系" clearable style="width: 100%;"> <el-select v-model="select.course_type_id" placeholder="请选择课程体系" clearable style="width: 100%;">
<el-option v-for="item in courseTypeOptions" :key="item.id" :label="item.name" :value="item.id"> <el-option v-for="item in courseTypeOptions" :key="item.id" :label="item.name" :value="item.id">
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div>
<el-select
v-model="select.course_name"
placeholder="请输入或选择课程名称"
filterable
allow-create
clearable
style="width: 100%;">
<el-option
v-for="item in courseOptions"
:key="item.id"
:label="item.name"
:value="item.name">
</el-option>
</el-select>
</div>
<div>
<el-input v-model="select.user_name" placeholder="请输入学员名称"></el-input>
</div>
<div> <div>
<el-select v-model="select.is_schoolmate" placeholder="请选择是否校友" clearable style="width: 100%;"> <el-select v-model="select.is_schoolmate" placeholder="请选择是否校友" clearable style="width: 100%;">
<el-option label="是" :value="1"> <el-option label="是" :value="1">
@ -41,6 +70,28 @@
</el-option> </el-option>
</el-select> </el-select>
</div> </div>
<div>
<el-date-picker
v-model="select.start_year"
type="year"
placeholder="被投开始年份"
format="yyyy"
value-format="yyyy"
clearable
style="width: 100%;">
</el-date-picker>
</div>
<div>
<el-date-picker
v-model="select.end_year"
type="year"
placeholder="被投结束年份"
format="yyyy"
value-format="yyyy"
clearable
style="width: 100%;">
</el-date-picker>
</div>
<div> <div>
<el-button type="primary" size="small" @click="select.page=1,getList()"></el-button> <el-button type="primary" size="small" @click="select.page=1,getList()"></el-button>
<el-button type="primary" size="small" @click="resetSelect"></el-button> <el-button type="primary" size="small" @click="resetSelect"></el-button>
@ -257,6 +308,9 @@
import { import {
index as courseTypeIndex index as courseTypeIndex
} from "@/api/course/courseType.js" } from "@/api/course/courseType.js"
import {
index as courseIndex
} from "@/api/course/index.js"
import formMixin from "@/mixin/formMixin.js"; import formMixin from "@/mixin/formMixin.js";
export default { export default {
mixins: [formMixin], mixins: [formMixin],
@ -273,13 +327,21 @@
user_name: '', user_name: '',
is_schoolmate: '', is_schoolmate: '',
course_type_id: '', course_type_id: '',
start_year: '',
end_year: '',
page: 1, page: 1,
page_size: 10 page_size: 10
}, },
companiesTags:[], companiesTags:[],
courseTypeOptions: [], courseTypeOptions: [],
courseOptions: [],
list: [], list: [],
total: 0, total: 0,
statistics: {
course_signs_invested: 0,
company_invested_after_enrollment_total: 0,
company_invested_year_total: 0
},
editProjectUsersDialogVisible: false, editProjectUsersDialogVisible: false,
editProjectUsersData: [], editProjectUsersData: [],
currentEditCompanyId: null, currentEditCompanyId: null,
@ -342,6 +404,15 @@
this.getList() this.getList()
this.getCompanyConfig() this.getCompanyConfig()
this.getCourseTypeList() this.getCourseTypeList()
this.getCourseList()
},
watch: {
'select.course_type_id'(newVal) {
//
this.getCourseList()
//
this.select.course_name = ''
}
}, },
updated() { updated() {
// //
@ -370,6 +441,8 @@
user_name: this.select.user_name, user_name: this.select.user_name,
is_schoolmate: this.select.is_schoolmate !== '' ? this.select.is_schoolmate : '', is_schoolmate: this.select.is_schoolmate !== '' ? this.select.is_schoolmate : '',
course_type_id: this.select.course_type_id, course_type_id: this.select.course_type_id,
start_year: this.select.start_year,
end_year: this.select.end_year,
filter: [{ filter: [{
key: 'company_name', key: 'company_name',
op: 'like', op: 'like',
@ -403,6 +476,24 @@
console.error('获取课程体系列表失败:', error) console.error('获取课程体系列表失败:', error)
} }
}, },
async getCourseList() {
try {
const res = await courseIndex({
page: 1,
page_size: 999,
filter: [{
key: 'type',
op: 'eq',
value: this.select.course_type_id || ''
}]
})
if (res && res.data) {
this.courseOptions = res.data
}
} catch (error) {
console.error('获取课程列表失败:', error)
}
},
toQicc(company_name) { toQicc(company_name) {
var url = 'https://www.qcc.com/web/search?key=' var url = 'https://www.qcc.com/web/search?key='
if(company_name){ if(company_name){
@ -436,6 +527,8 @@
this.select.user_name = '' this.select.user_name = ''
this.select.is_schoolmate = '' this.select.is_schoolmate = ''
this.select.course_type_id = '' this.select.course_type_id = ''
this.select.start_year = ''
this.select.end_year = ''
this.select.page = 1 this.select.page = 1
this.getList() this.getList()
}, },
@ -447,6 +540,8 @@
user_name: this.select.user_name, user_name: this.select.user_name,
is_schoolmate: this.select.is_schoolmate !== '' ? this.select.is_schoolmate : '', is_schoolmate: this.select.is_schoolmate !== '' ? this.select.is_schoolmate : '',
course_type_id: this.select.course_type_id, course_type_id: this.select.course_type_id,
start_year: this.select.start_year,
end_year: this.select.end_year,
filter: [{ filter: [{
key: 'company_name', key: 'company_name',
op: 'like', op: 'like',
@ -464,6 +559,14 @@
this.list = res.data this.list = res.data
this.total = res.total this.total = res.total
//
if (res.statistics) {
this.statistics = {
course_signs_invested: res.statistics.course_signs_invested || 0,
company_invested_after_enrollment_total: res.statistics.company_invested_after_enrollment_total || 0,
company_invested_year_total: res.statistics.company_invested_year_total || 0
}
}
// //
this.$nextTick(() => { this.$nextTick(() => {
this.alignUserItemHeights() this.alignUserItemHeights()

Loading…
Cancel
Save