guhongwei 4 years ago
parent
commit
f039adf242
2 changed files with 47 additions and 26 deletions
  1. 2 0
      src/store/index.js
  2. 45 26
      src/views/centerTeaching/index.vue

+ 2 - 0
src/store/index.js

@@ -34,6 +34,7 @@ import dirPlan from '@frame/store/dir-plan';
 import login from '@frame/store/login';
 import login from '@frame/store/login';
 import notice from '@frame/store/notice';
 import notice from '@frame/store/notice';
 import classtype from '@frame/store/classtype';
 import classtype from '@frame/store/classtype';
+import liveroom from '@frame/store/liveroom';
 import * as ustate from '@frame/store/user/state';
 import * as ustate from '@frame/store/user/state';
 import * as umutations from '@frame/store/user/mutations';
 import * as umutations from '@frame/store/user/mutations';
 import * as dostate from '@frame/store/setting/state';
 import * as dostate from '@frame/store/setting/state';
@@ -80,6 +81,7 @@ export default new Vuex.Store({
     uploadtask,
     uploadtask,
     notice,
     notice,
     classtype,
     classtype,
+    liveroom,
   },
   },
   state: { ...ustate, ...dostate },
   state: { ...ustate, ...dostate },
   mutations: { ...umutations, ...domutations },
   mutations: { ...umutations, ...domutations },

+ 45 - 26
src/views/centerTeaching/index.vue

@@ -1,9 +1,9 @@
 <template>
 <template>
   <div id="index">
   <div id="index">
     <list-frame :title="mainTitle" @query="search" :total="total" :needFilter="false" :needAdd="false">
     <list-frame :title="mainTitle" @query="search" :total="total" :needFilter="false" :needAdd="false">
-      <data-table :fields="fields" :data="list" :opera="opera" @check="toCheck" @delete="toDelete"></data-table>
+      <data-table :fields="fields" :data="list" :opera="opera" @check="toCheck" @delete="toDelete" :toFormat="toFormat"></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="50%">
       <data-form :data="form" :fields="formFields" :rules="{}" @save="turnSave">
       <data-form :data="form" :fields="formFields" :rules="{}" @save="turnSave">
         <template #options="{item}">
         <template #options="{item}">
           <template v-if="item.model === 'subid'">
           <template v-if="item.model === 'subid'">
@@ -12,9 +12,9 @@
         </template>
         </template>
         <template #radios="{item}">
         <template #radios="{item}">
           <template v-if="item.model === 'status'">
           <template v-if="item.model === 'status'">
-            <el-radio label="待审核" value="0"></el-radio>
-            <el-radio label="审核通过" value="1"></el-radio>
-            <el-radio label="审核拒绝" value="2"></el-radio>
+            <el-radio label="0">待审核</el-radio>
+            <el-radio label="1">审核通过</el-radio>
+            <el-radio label="2">审核拒绝</el-radio>
           </template>
           </template>
         </template>
         </template>
       </data-form>
       </data-form>
@@ -27,6 +27,7 @@ import listFrame from '@frame/layout/admin/list-frame';
 import dataTable from '@frame/components/data-table';
 import dataTable from '@frame/components/data-table';
 import dataForm from '@frame/components/form';
 import dataForm from '@frame/components/form';
 import { mapState, createNamespacedHelpers } from 'vuex';
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: liveroom } = createNamespacedHelpers('liveroom');
 const { mapActions: subject } = createNamespacedHelpers('subject');
 const { mapActions: subject } = createNamespacedHelpers('subject');
 export default {
 export default {
   metaInfo: { title: '在线课堂' },
   metaInfo: { title: '在线课堂' },
@@ -55,28 +56,20 @@ export default {
         },
         },
       ],
       ],
       fields: [
       fields: [
-        { label: '房间号', prop: 'roomid' },
-        { label: '科目名称', prop: 'name' },
+        { label: '房间号', prop: 'number' },
+        { label: '科目名称', prop: 'subid', format: true },
+        { label: '申请说明', prop: 'reason' },
         { label: '状态', prop: 'status', format: i => (i === '0' ? '待审核' : i === '1' ? '审核通过' : '审核拒绝') },
         { label: '状态', prop: 'status', format: i => (i === '0' ? '待审核' : i === '1' ? '审核通过' : '审核拒绝') },
       ],
       ],
-      list: [
-        {
-          roomid: '房间号',
-          name: '科目',
-          status: '0',
-        },
-      ],
+      list: [],
       total: 0,
       total: 0,
       // 审核
       // 审核
       dialog: false,
       dialog: false,
-      form: {
-        subid: '0',
-        explain: '说明',
-        status: '0',
-      },
+      form: {},
       formFields: [
       formFields: [
+        { label: '房间号', required: true, model: 'number' },
         { label: '科目', required: true, model: 'subid', type: 'select' },
         { label: '科目', required: true, model: 'subid', type: 'select' },
-        { label: '说明', required: true, model: 'explain', type: 'textarea' },
+        { label: '说明', required: true, model: 'reason', type: 'textarea' },
         { label: '状态', required: true, model: 'status', type: 'radio' },
         { label: '状态', required: true, model: 'status', type: 'radio' },
       ],
       ],
       // 科目
       // 科目
@@ -89,33 +82,59 @@ export default {
   },
   },
   methods: {
   methods: {
     ...subject({ getSubjectList: 'query' }),
     ...subject({ getSubjectList: 'query' }),
+    ...liveroom(['query', 'delete', 'fetch', 'update']),
     // 查询科目
     // 查询科目
     async getOtherList() {
     async getOtherList() {
       let res;
       let res;
       res = await this.getSubjectList();
       res = await this.getSubjectList();
       if (this.$checkRes(res)) this.$set(this, `subjectList`, res.data);
       if (this.$checkRes(res)) this.$set(this, `subjectList`, res.data);
     },
     },
-    search() {
-      console.log('查询');
+    async search({ skip, limit = 10, ...info } = {}) {
+      let res = await this.query({ skip, limit, ...info });
+      if (this.$checkRes(res)) this.$set(this, `list`, res.data);
+      this.$set(this, `total`, res.total);
     },
     },
     // 确定
     // 确定
     toCheck({ data }) {
     toCheck({ data }) {
       console.log(data);
       console.log(data);
+      this.$set(this, `form`, data);
       this.dialog = true;
       this.dialog = true;
     },
     },
     // 提交
     // 提交
-    turnSave({ data }) {
-      console.log(data);
+    async turnSave({ data }) {
+      let res = await this.update(data);
+      if (this.$checkRes(res)) {
+        this.$message({
+          message: '修改信息成功',
+          type: 'success',
+        });
+        this.dialog = false;
+        this.search();
+      }
     },
     },
     // 删除
     // 删除
-    toDelete({ data }) {
-      console.log(data);
+    async toDelete({ data }) {
+      let res = await this.delete(data.id);
+      if (this.$checkRes(res)) {
+        this.$message({
+          message: '刪除信息成功',
+          type: 'success',
+        });
+        this.search();
+      }
     },
     },
     // 关闭
     // 关闭
     toClose() {
     toClose() {
       this.form = {};
       this.form = {};
       this.dialog = false;
       this.dialog = false;
     },
     },
+    // 过滤科目名称
+    toFormat({ model, value }) {
+      if (model == 'subid') {
+        const res = this.subjectList.find(f => f.id == value);
+        if (res) return res.name;
+      }
+    },
   },
   },
   computed: {
   computed: {
     mainTitle() {
     mainTitle() {