lrf402788946 5 yıl önce
ebeveyn
işleme
124223b13e

+ 6 - 0
src/router/index.js

@@ -18,6 +18,12 @@ const newPlan = [
     meta: { title: '计划安排' },
     component: () => import('@/views/new-plan/detail.vue'),
   },
+  {
+    path: '/newPlan/student',
+    name: 'newPlan_student',
+    meta: { title: '上传学生名单' },
+    component: () => import('@/views/new-plan/student.vue'),
+  },
 ];
 
 const routes = [

+ 9 - 1
src/views/new-plan/detail.vue

@@ -1,7 +1,7 @@
 <template>
   <div id="detail">
     <list-frame :title="pageTitle" returns="./index" :needFilter="false" :needAdd="false">
-      <data-table :fields="fields" :data="list" :opera="opera" @namelist="toNamelist"></data-table>
+      <data-table :fields="fields" :data="list" :opera="opera" @namelist="toNamelist" @view="toView"></data-table>
     </list-frame>
     <el-dialog :visible.sync="dialog" title="上传名单" width="30%">
       <el-form size="mini">
@@ -46,6 +46,11 @@ export default {
           icon: 'el-icon-document',
           method: 'namelist',
         },
+        {
+          label: '查看名单',
+          icon: 'el-icon-view',
+          method: 'view',
+        },
       ],
     };
   },
@@ -72,6 +77,9 @@ export default {
       let res = await this.create({ filepath: file.uri, termid: this.form.termid, schid: this.user.code });
       if (this.$checkRes(res, '上传成功', res.errmsg || '上传失败')) this.dialog = false;
     },
+    toView({ data }) {
+      this.$router.push({ path: './student', query: { termid: data.termid } });
+    },
   },
   computed: {
     ...mapState(['user']),

+ 2 - 2
src/views/new-plan/index.vue

@@ -3,7 +3,7 @@
     <list-frame :title="pageTitle" @query="search" :total="total" :needFilter="false" :needAdd="false">
       <data-table :fields="fields" :data="list" :opera="opera" @edit="toEdit" @arrange="toArrange"></data-table>
     </list-frame>
-    <el-dialog title="上报需要请假的日期" width="30%" :visible.sync="dialog" center :destroy-on-close="true" @close="handleClose">
+    <el-dialog title="上报可行日期" width="30%" :visible.sync="dialog" center :destroy-on-close="true" @close="handleClose">
       <data-form :data="info" :fields="Ffields" :rules="rules" @save="handleSave" :isNew="!info.id" :styles="{ padding: 0 }" labelWidth="80px" :reset="false">
         <template #custom="{item,form}">
           <template v-if="item.model == 'daterange'">
@@ -36,7 +36,7 @@ export default {
       dialog: false,
       opera: [
         {
-          label: '上报需要请假的日期',
+          label: '上报可行日期',
           icon: 'el-icon-date',
           method: 'edit',
         },

+ 82 - 0
src/views/new-plan/student.vue

@@ -0,0 +1,82 @@
+<template>
+  <div id="index">
+    <list-frame :title="pageTitle" @query="search" :total="total" :needFilter="false" :needAdd="false" :returns="toReturns">
+      <data-table :fields="fields" :data="list" :opera="opera" @edit="toEdit" @delete="toDelete"></data-table>
+    </list-frame>
+  </div>
+</template>
+
+<script>
+import listFrame from '@frame/layout/admin/list-frame';
+import dataTable from '@frame/components/data-table';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: mapStu } = createNamespacedHelpers('student');
+export default {
+  metaInfo: { title: '班级管理' },
+  name: 'index',
+  props: {},
+  components: {
+    listFrame,
+    dataTable,
+  },
+  data: () => ({
+    opera: [
+      // {
+      //   label: '编辑',
+      //   icon: 'el-icon-edit',
+      //   method: 'edit',
+      // },
+      // {
+      //   label: '删除',
+      //   icon: 'el-icon-delete',
+      //   method: 'delete',
+      //   confirm: true,
+      // },
+    ],
+    fields: [
+      { label: '名称', prop: 'name' },
+      { label: '性别', prop: 'gender' },
+      { label: '身份证号', prop: 'id_number' },
+      { label: '联系电话', prop: 'phone' },
+    ],
+    list: [],
+    total: 0,
+  }),
+  created() {
+    this.search();
+  },
+  computed: {
+    ...mapState(['user']),
+    termid() {
+      return this.$route.query.termid;
+    },
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  methods: {
+    ...mapStu(['query', 'delete']),
+    async search({ skip = 0, limit = 10, ...info } = {}) {
+      console.log('in function:');
+      const res = await this.query({ skip, limit, ...info, termid: this.termid, schid: this.user.code });
+      if (this.$checkRes(res)) {
+        this.$set(this, `list`, res.data);
+        this.$set(this, `total`, res.total);
+      }
+    },
+    toEdit({ data }) {
+      this.$router.push({ path: '/student/detail', query: { id: data.id } });
+    },
+    async toDelete({ data }) {
+      const res = await this.delete(data.id);
+      this.$checkRes(res, '删除成功', '删除失败');
+      this.search();
+    },
+    toReturns() {
+      window.history.back(-1);
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped></style>