|
@@ -1,10 +1,16 @@
|
|
<template>
|
|
<template>
|
|
<div id="index">
|
|
<div id="index">
|
|
- <list-frame title="培训心得" @query="search" :total="total" :needFilter="false" :needAdd="false">
|
|
|
|
|
|
+ <list-frame title="培训心得" @query="search" :total="total" :needFilter="false" :needAdd="false" :needPag="false">
|
|
<data-table :fields="fields" :data="list" :opera="opera" @view="toView" @delete="toDelete"></data-table>
|
|
<data-table :fields="fields" :data="list" :opera="opera" @view="toView" @delete="toDelete"></data-table>
|
|
</list-frame>
|
|
</list-frame>
|
|
<el-dialog :visible.sync="dialog" title="培训心得" @close="toClose" width="30%">
|
|
<el-dialog :visible.sync="dialog" title="培训心得" @close="toClose" width="30%">
|
|
- <data-form :data="form" :fields="formFields" :rules="{}" :needSave="false"> </data-form>
|
|
|
|
|
|
+ <data-form :data="form" :fields="formFields" :rules="{}" :needSave="false">
|
|
|
|
+ <template #custom="{item, form}">
|
|
|
|
+ <template v-if="item.model === 'content'">
|
|
|
|
+ <el-input type="textarea" v-model="form[item.model]" :readonly="true" :autosize="{ minRows: 4, maxRows: 20 }"></el-input>
|
|
|
|
+ </template>
|
|
|
|
+ </template>
|
|
|
|
+ </data-form>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
@@ -15,6 +21,7 @@ import listFrame from '@frame/layout/admin/list-frame';
|
|
import dataForm from '@frame/components/form';
|
|
import dataForm from '@frame/components/form';
|
|
import dataTable from '@frame/components/data-table';
|
|
import dataTable from '@frame/components/data-table';
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
import { mapState, createNamespacedHelpers } from 'vuex';
|
|
|
|
+const { mapActions: experience } = createNamespacedHelpers('experience');
|
|
export default {
|
|
export default {
|
|
metaInfo: { title: '培训心得' },
|
|
metaInfo: { title: '培训心得' },
|
|
name: 'index',
|
|
name: 'index',
|
|
@@ -38,27 +45,33 @@ export default {
|
|
},
|
|
},
|
|
],
|
|
],
|
|
fields: [
|
|
fields: [
|
|
- { label: '标题', prop: 'title' },
|
|
|
|
- { label: '内容', prop: 'content' },
|
|
|
|
- ],
|
|
|
|
- list: [
|
|
|
|
- {
|
|
|
|
- title: '标题',
|
|
|
|
- content: '内容',
|
|
|
|
- },
|
|
|
|
|
|
+ { label: '姓名', prop: 'stuname' },
|
|
|
|
+ { label: '职务', prop: 'stujob' },
|
|
],
|
|
],
|
|
|
|
+ list: [],
|
|
total: 0,
|
|
total: 0,
|
|
dialog: false,
|
|
dialog: false,
|
|
form: {},
|
|
form: {},
|
|
formFields: [
|
|
formFields: [
|
|
- { label: '标题', model: 'title', type: 'text' },
|
|
|
|
- { label: '内容', model: 'content', type: 'text' },
|
|
|
|
|
|
+ { label: '姓名', model: 'stuname', type: 'text' },
|
|
|
|
+ { label: '职务', model: 'stujob', type: 'text' },
|
|
|
|
+ { label: '培训心得标题', model: 'title', type: 'text' },
|
|
|
|
+ { label: '培训心得', model: 'content', custom: true },
|
|
],
|
|
],
|
|
}),
|
|
}),
|
|
- created() {},
|
|
|
|
|
|
+ created() {
|
|
|
|
+ this.search();
|
|
|
|
+ },
|
|
computed: { ...mapState(['user', 'defaultOption']) },
|
|
computed: { ...mapState(['user', 'defaultOption']) },
|
|
methods: {
|
|
methods: {
|
|
- search({ skip = 0, limit = 10, ...info } = {}) {},
|
|
|
|
|
|
+ ...experience(['query']),
|
|
|
|
+ async search({ skip = 0, limit = 10, ...info } = {}) {
|
|
|
|
+ const { classid } = this.defaultOption;
|
|
|
|
+ const res = await this.query({ classid });
|
|
|
|
+ if (this.$checkRes(res)) {
|
|
|
|
+ this.$set(this, `list`, res.data);
|
|
|
|
+ }
|
|
|
|
+ },
|
|
// 查看
|
|
// 查看
|
|
toView({ data }) {
|
|
toView({ data }) {
|
|
this.$set(this, `form`, data);
|
|
this.$set(this, `form`, data);
|