You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

232 lines
7.0 KiB

1 year ago
<template>
<div>
<div>
<div ref="lxHeader">
<lx-header icon="md-apps" :text="$route.meta.title" style="margin-bottom: 10px; border: 0px; margin-top: 15px">
1 year ago
<div slot="content">
1 year ago
1 year ago
<div class="searchwrap" style="display: flex;align-items: center;">
<div v-if="path==2">
<div>
<el-input v-model="select.course_name" placeholder="请输入课程名称"></el-input>
</div>
</div>
<div v-else>
<div>
<el-input v-model="select.name" placeholder="请输入姓名"></el-input>
</div>
<div>
<el-input v-model="select.company_name" placeholder="请输入公司名称"></el-input>
</div>
<div>
<el-select v-model="select.company_position" placeholder="请选择职务" clearable>
<el-option v-for="item in company_position_list" :key="item.id" :label="item.value"
:value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.company_type" placeholder="请选择企业性质" clearable>
<el-option v-for="item in company_type_list" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.company_area" placeholder="请选择所属区域" clearable>
<el-option v-for="item in company_area_list" :key="item.id" :label="item.value" :value="item.id">
</el-option>
</el-select>
</div>
<div>
<el-select v-model="select.company_industry" placeholder="请选择所属行业" clearable>
<el-option v-for="item in company_industry_list" :key="item.id" :label="item.value"
:value="item.id">
</el-option>
</el-select>
</div>
</div>
<div>
<el-button type="primary" size="small" @click="getList"></el-button>
<el-button v-if="path==2" type="primary" size="small"></el-button>
1 year ago
</div>
</div>
</div>
</lx-header>
</div>
</div>
1 year ago
<div>
1 year ago
<div v-if="path==2" style="margin-bottom:10px">{{year_total}}{{alltotal}}</div>
<xy-table :list="list" @pageIndexChange="pageIndexChange" @pageSizeChange="pageSizeChange" :total="total" :table-item="table_item">
1 year ago
<template v-slot:btns>
<el-table-column align='center' label="操作" fixed="right" width="80" header-align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="showDetail('show',scope.row.id)"></el-button>
</template>
</el-table-column>
</template>
</xy-table>
</div>
<student-detail ref="studentDetail"></student-detail>
</div>
</template>
<script>
import studentDetail from './components/detail.vue';
1 year ago
import myMixins from "@/mixin/selectMixin.js";
import {
indexStudy
} from '@/api/student/index.js'
1 year ago
export default {
1 year ago
mixins: [myMixins],
1 year ago
components: {
studentDetail
},
data() {
1 year ago
return {
path: '',
1 year ago
select: {
name: '',
1 year ago
course_name: '',
company_name: '',
company_position: '',
company_area: '',
company_type: '',
company_industry: '',
page: 1,
page_size: 10,
1 year ago
},
1 year ago
company_position_list: [],
company_type_list: [],
company_industry_list: [],
company_area_list: [],
1 year ago
list: [],
year_total:0,
alltotal:0,
1 year ago
total: 0,
table_item: [{
1 year ago
prop: 'username',
1 year ago
label: '姓名',
1 year ago
align: 'center',
width: 120
1 year ago
}, {
1 year ago
prop: 'sex',
label: '性别',
align: 'center',
width: 120
},{
prop: 'idcard',
label: '身份证号',
align: 'center',
width: 180
},{
1 year ago
prop: 'company_name',
1 year ago
label: '公司名称',
1 year ago
align: 'left',
}, {
1 year ago
prop: 'company_position',
1 year ago
label: '职务',
align: 'center',
width: 120,
}, {
prop: 'mobile',
label: '联系电话',
align: 'center',
width: 120,
1 year ago
},]
1 year ago
}
},
created() {
1 year ago
const _path = this.$route.path.split("_")
console.log("_path", this.$route, _path)
this.path = _path[1]
if (this.path == 2) {
this.table_item.unshift({
prop: 'subject',
label: '课程名称',
align: 'left',
width: 200,
})
1 year ago
}
1 year ago
this.getList()
1 year ago
},
1 year ago
methods: {
pageIndexChange(e){
this.select.page = e
this.getList()
},
pageSizeChange(e){
this.select.page_size = e
this.select.page = 1
this.getList()
},
1 year ago
async getList() {
const res = await indexStudy({
page: this.select.page,
page_size: this.select.page_size,
filter: [{
key: 'course_name',
op: 'like',
value: this.select.course_name
}, {
key: 'name',
op: 'like',
value: this.select.name
}, {
key: 'company_name',
op: 'like',
value: this.select.company_name
}, {
key: 'company_position',
op: 'eq',
value: this.select.company_position
}, {
key: 'company_area',
op: 'eq',
value: this.select.company_area
}, {
key: 'company_type',
op: 'eq',
value: this.select.company_type
}, {
key: 'company_industry',
op: 'eq',
value: this.select.company_industry
}]
})
1 year ago
this.list = res.list.data
this.total = res.list.total
this.year_total = res.year_total
this.alltotal = res.total
1 year ago
},
1 year ago
showDetail(type, id) {
this.$refs.studentDetail.id = id
this.$refs.studentDetail.type = type
this.$refs.studentDetail.isShow = true
1 year ago
}
1 year ago
}
}
</script>
<style lang="scss" scoped>
.searchwrap {
display: flex;
align-items: center;
1 year ago
&>div {
display: flex;
align-items: center;
&>div {
margin-right: 10px;
1 year ago
}
}
}
</style>