123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <template>
- <div id="index">
- <list-frame :title="mainTitle" @query="search" :total="total" :needAdd="false" :needFilter="false">
- <!-- <el-form :inline="true" size="mini">
- <el-form-item label="选择计划">
- <el-select v-model="searchInfo.planid" @change="getTerm" clearable>
- <el-option v-for="(i, index) in planList" :key="index" :label="i.title" :value="i.id"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="选择期">
- <el-select v-model="searchInfo.termid" clearable>
- <el-option v-for="(i, index) in termList" :key="index" :label="i.term" :value="i._id"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="search">查询</el-button>
- </el-form-item>
- </el-form> -->
- <data-table :fields="fields" :data="list" :opera="opera"></data-table>
- </list-frame>
- </div>
- </template>
- <script>
- import listFrame from '@frame/layout/admin/list-frame';
- import dataTable from '@frame/components/data-table';
- import { createNamespacedHelpers } from 'vuex';
- const { mapActions } = createNamespacedHelpers('leave');
- const { mapActions: mapstudent } = createNamespacedHelpers('student');
- const { mapActions: trainplan } = createNamespacedHelpers('trainplan');
- export default {
- metaInfo: { title: '请假和退出管理' },
- name: 'index',
- props: {},
- components: {
- listFrame,
- dataTable,
- },
- data: () => ({
- opera: [],
- fields: [
- { label: '学生名称', prop: 'stuName' },
- { label: '开始时间', prop: 'starttime' },
- { label: '结束时间', prop: 'endtime' },
- { label: '请假理由', prop: 'reason' },
- {
- label: '状态',
- prop: 'status',
- format: item => {
- return item === '0' ? '审核中' : item === '1' ? '通过' : '未通过';
- },
- },
- { label: '拒绝原因', prop: 'refcause' },
- {
- label: '类型',
- prop: 'type',
- format: item => {
- return item === '0' ? '请假' : '退出';
- },
- },
- ],
- searchInfo: {},
- list: [],
- planList: [],
- termList: [],
- total: 0,
- }),
- created() {
- this.search();
- },
- computed: {
- mainTitle() {
- let meta = this.$route.meta;
- let main = meta.title || '';
- let sub = meta.sub || '';
- return `${main}${sub}`;
- },
- keyWord() {
- let meta = this.$route.meta;
- let main = meta.title || '';
- return main;
- },
- },
- methods: {
- ...mapActions(['query', 'delete']),
- ...mapstudent({ lists: 'fetch' }),
- async search({ skip = 0, limit = 10, ...info } = {}) {
- const res = await this.query({ skip, limit, ...info });
- for (const val of res.data) {
- const stuName = await this.lists(val.studentid);
- console.log(stuName);
- val.stuName = stuName.data.name;
- }
- console.log(res.data);
- this.$set(this, `list`, res.data);
- this.$set(this, `total`, res.total);
- },
- getTerm(data) {
- let term = this.planList.find(f => f.id === data);
- if (term) this.$set(this, `termList`, term.termnum);
- else this.$set(this, `termList`, []);
- },
- },
- };
- </script>
- <style lang="less" scoped></style>
|