|
@@ -1,11 +1,41 @@
|
|
|
<template>
|
|
|
<div id="school-num">
|
|
|
<detail-frame :title="pageTitle">
|
|
|
- <data-table ref="table" :fields="fields" :data="list" :opera="opera" :total="total" @edit="toEdit" @query="search"></data-table>
|
|
|
+ <!-- <data-table ref="table" :fields="fields" :data="list" :opera="opera" :total="total" @edit="toEdit" @query="search"></data-table> -->
|
|
|
+ <el-form :model="form" :inline="true" size="mini">
|
|
|
+ <el-form-item label="学校名称">
|
|
|
+ <el-input v-model="form.name" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="学校代码">
|
|
|
+ <el-input v-model="form.code" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <el-row type="flex" align="middle" justify="end" class="btn_bar">
|
|
|
+ <el-col :span="2">
|
|
|
+ <el-button type="primary" @click="handleSave" size="mini">保存人数安排</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-table :data="getList()" border stripe size="mini">
|
|
|
+ <el-table-column align="center" label="学校" prop="name"></el-table-column>
|
|
|
+ <el-table-column align="center" label="学校代码" prop="code"></el-table-column>
|
|
|
+ <el-table-column align="center" label="就业人数">
|
|
|
+ <template v-slot="{ row, $index }">
|
|
|
+ <el-input-number v-model="row.jynum" @change="toComputed(row, $index)" :max="5" :min="0" size="mini" :controls="false"></el-input-number>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" label="创业人数">
|
|
|
+ <template v-slot="{ row, $index }">
|
|
|
+ <el-input-number v-model="row.cynum" @change="toComputed(row, $index)" :max="5" :min="0" size="mini" :controls="false"></el-input-number>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" label="少数民族人数">
|
|
|
+ <template v-slot="{ row, $index }">
|
|
|
+ <el-input-number v-model="row.mznum" @change="toComputed(row, $index)" :max="5" :min="0" size="mini" :controls="false"></el-input-number>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" :label="`总人数(共计:${template.total || 0})`" prop="num"> </el-table-column>
|
|
|
+ </el-table>
|
|
|
</detail-frame>
|
|
|
- <el-dialog title="分配人数" :visible.sync="dialog" @close="toClose">
|
|
|
- <data-form :data="form" :fields="formFields" :rules="{}" @save="handleSave"> </data-form>
|
|
|
- </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -17,16 +47,18 @@ import dataTable from '@frame/components/filter-page-table';
|
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
const { mapActions: plan } = createNamespacedHelpers('trainplan');
|
|
|
const { mapActions: school } = createNamespacedHelpers('school');
|
|
|
+const { mapActions: util } = createNamespacedHelpers('util');
|
|
|
export default {
|
|
|
name: 'school-num',
|
|
|
props: {},
|
|
|
- components: { detailFrame, dataTable, dataForm },
|
|
|
+ components: { detailFrame },
|
|
|
data: function() {
|
|
|
return {
|
|
|
dialog: false,
|
|
|
list: [],
|
|
|
form: {},
|
|
|
plan: {},
|
|
|
+ template: {},
|
|
|
opera: [
|
|
|
{
|
|
|
label: '修改',
|
|
@@ -34,25 +66,27 @@ export default {
|
|
|
method: 'edit',
|
|
|
},
|
|
|
],
|
|
|
- fields: [
|
|
|
- { label: '学校', prop: 'name', filter: true },
|
|
|
- { label: '学校代码', prop: 'code', filter: true },
|
|
|
- { label: '人数', prop: 'num' },
|
|
|
- ],
|
|
|
- formFields: [
|
|
|
- { label: '学校', model: 'name', type: 'text' },
|
|
|
- { label: '人数', model: 'num' },
|
|
|
- ],
|
|
|
- total: 0,
|
|
|
};
|
|
|
},
|
|
|
async created() {
|
|
|
- await this.searchPlan();
|
|
|
+ // await this.trainTemplage();
|
|
|
+ // await this.searchPlan();
|
|
|
await this.search();
|
|
|
},
|
|
|
methods: {
|
|
|
...plan({ getPlan: 'fetch', updatePlan: 'update' }),
|
|
|
...school(['query']),
|
|
|
+ ...util({ modelFetch: 'fetch' }),
|
|
|
+ async trainTemplage() {
|
|
|
+ let planid = _.get(this.defaultOption, 'planid');
|
|
|
+ let planyearid = _.get(this.defaultOption, 'planyearid');
|
|
|
+ let res = await this.modelFetch({ model: 'trainmodel', planyearid, planid });
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
+ if (res.data !== null) {
|
|
|
+ this.$set(this, `template`, res.data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
async searchPlan() {
|
|
|
let planid = _.get(this.defaultOption, 'planid');
|
|
|
if (!planid) return;
|
|
@@ -63,12 +97,10 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
async search({ skip = 0, limit = 10, ...info } = {}) {
|
|
|
- let res = await this.query({ skip, limit, ...info });
|
|
|
+ let res = await this.query({ ...info });
|
|
|
if (this.$checkRes(res)) {
|
|
|
//TODO 查出这页的学校分配的人数,放到学校里面,表格输出
|
|
|
this.$set(this, `list`, res.data);
|
|
|
- this.getNum();
|
|
|
- this.$set(this, `total`, res.total);
|
|
|
}
|
|
|
},
|
|
|
async toEdit({ data }) {
|
|
@@ -105,12 +137,29 @@ export default {
|
|
|
this.dialog = false;
|
|
|
this.form = {};
|
|
|
},
|
|
|
+ getList() {
|
|
|
+ let duplicate = _.cloneDeep(this.list);
|
|
|
+ let res = duplicate.filter(f => {
|
|
|
+ let name = _.get(this.form, 'name');
|
|
|
+ let code = _.get(this.form, 'code');
|
|
|
+ if (!name && !code) return true;
|
|
|
+ else if (name && !code) return f.name.includes(name);
|
|
|
+ else if (!name && code) return f.code.includes(code);
|
|
|
+ else return f.name.includes(name) && f.code.includes(code);
|
|
|
+ });
|
|
|
+ return res;
|
|
|
+ },
|
|
|
+ toComputed(row, index) {
|
|
|
+ let { jynum = 0, cynum = 0, mznum = 0 } = row;
|
|
|
+ },
|
|
|
},
|
|
|
watch: {
|
|
|
defaultOption: {
|
|
|
async handler(val) {
|
|
|
+ await this.trainTemplage();
|
|
|
await this.searchPlan();
|
|
|
// this.$refs.table.changePage();
|
|
|
+ await this.getNum();
|
|
|
},
|
|
|
deep: true,
|
|
|
},
|