Prechádzať zdrojové kódy

Merge branch 'develop5.0-grouplist' of http://106.12.23.251:10000/TEAMMODEL/TEAMModelOS into develop5.0-grouplist

CrazyIter_Bin 3 rokov pred
rodič
commit
d3ac7c419d

+ 6 - 6
TEAMModelOS/ClientApp/src/api/studentWeb.js

@@ -244,15 +244,15 @@ export default {
         return post("/student/get-school-info", data)
     },
 
-    // 获取教室关联的学生(教师端接口)
-    getClassroomStudent: function (data) {
+    // 获取教室关联的学生(教师端接口)(废弃)
+    /* getClassroomStudent: function (data) {
         return post('/school/classroom/find-students', data)
-    },
+    }, */
 
-    // 根据stulist ids换取详细信息(教师端接口)
-    findListSummary: function (data) {
+    // 根据stulist ids换取详细信息(教师端接口)(废弃)
+    /* findListSummary: function (data) {
         return post('/stulist/get-summary-list', data)
-    },
+    }, */
 
     // 根据学生id换取详细信息(教师端接口)
     findStuSummary: function (data) {

+ 1 - 1
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentArea.less

@@ -3,7 +3,7 @@
   width: 70%;
   padding: 1% 3%;
   height:100%;
-  padding-bottom: 50px;
+  // padding-bottom: 50px;
   overflow: auto;
   overflow-x: hidden;
 

+ 1 - 1
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContent.vue

@@ -64,5 +64,5 @@
 </script>
 
 <style lang="less" scoped>
-@import "EventContentArea.less";
+@import "EventContent.less";
 </style>

+ 0 - 42
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentArea.css

@@ -1,42 +0,0 @@
-.eventContentArea-view {
-  float: right;
-  width: 70%;
-  padding: 1% 3%;
-  height: 100%;
-  padding-bottom: 50px;
-  overflow: auto;
-  overflow-x: hidden;
-}
-.eventContentArea-view .noSelected {
-  text-align: center;
-  top: 35%;
-  right: 30%;
-  position: absolute;
-}
-.eventContentArea-view .noSelected h3 {
-  margin-top: 40%;
-  color: #414141;
-}
-.eventContentArea-view .mybutton {
-  width: 100px;
-  margin-top: 20px;
-}
-.eventContentArea-view img {
-  border-radius: 8px;
-  margin-right: 20px;
-  border: 1px solid rgba(173, 173, 173, 0.233);
-}
-.eventContentArea-view .star {
-  color: #ff7300;
-}
-.eventContentArea-view .slide-fade-enter-active {
-  transition: all 0.3s ease;
-}
-.eventContentArea-view .slide-fade-leave-active {
-  transition: all 0.8s cubic-bezier(1, 0.5, 0.8, 1);
-}
-.eventContentArea-view .slide-fade-enter,
-.eventContentArea-view .slide-fade-leave-to {
-  transform: translateY(-5%);
-  opacity: 0;
-}

+ 0 - 19
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentArea.vue

@@ -1,19 +0,0 @@
-<template>
-  <div class="eventContentArea-view">
-    <EventContent></EventContent>
-  </div>
-</template>
-
-<script>
-import EventContent from "./EventContent";
-export default {
-  name: "EventContentArea",
-  components: {
-    EventContent
-  }
-};
-</script>
-
-<style scoped>
-@import "EventContentArea.css";
-</style>

+ 0 - 3
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventView.vue

@@ -1,7 +1,6 @@
 <template>
     <div class="event-view">
         <EventList :class="{ 'hide-sidebars': getSidebarisOpen == false}"></EventList>
-        <!-- <EventContentArea :class="{'eventContentArea-Span': getSidebarisOpen == false}"></EventContentArea> -->
         <EventContent :class="{'eventContentArea-Span': getSidebarisOpen == false}"></EventContent>
         <!--<CommentList v-if=" $store.getters.getOpenCommentList == true && getSidebarisOpen == false" />-->
     </div>
@@ -10,14 +9,12 @@
 <script>
     import CommentList from "./CommentList.vue";
     import EventList from "./EventList";
-    import EventContentArea from "./EventContentArea.vue";
     import EventContent from "./EventContent.vue";
     import { mapGetters } from 'vuex';
     export default {
         name: "EventView",
         components: {
             EventList,
-            EventContentArea,
             CommentList,
             EventContent,
         },

+ 0 - 412
TEAMModelOS/ClientApp/src/components/student-web/HomeView/CourseContent.vue

@@ -1,412 +0,0 @@
-<template>
-    <div>
-        <loading :active.sync="isLoad"
-                 :is-full-page="true"
-                 background-color="#000"
-                 :opacity="0.6">
-            <template slot="default">
-                <svg-icon icon-class="loader" class="loader-icon" />
-            </template>
-        </loading>
-        <div class="course-content"
-            :class="{ courseContentEn: this.$store.getters.getCurrentLaguage == 'en-us' }"
-            v-if="showInfo"
-        >
-            <h2>{{ course.course.name }}</h2>
-            <!-- <h3 class="course-subject">國中/二年級/{{course.courseSubject}}</h3> -->
-            <div @click="changeGroupView()"
-                :class="{ 'group-on': isChangeGroupView }"
-                v-if="name == 'tab3'"
-            >
-                <svg-icon icon-class="group" class="group-btn" />
-            </div>
-
-            <Tabs v-model="name">
-                <!-- 基本资讯 -->
-                <TabPane :label="$t('studentWeb.courseContent.baseInfo')" name="tab1">
-                    <Row :gutter="30">
-                        <i-col :xs="24" :sm="24" :md="8" :lg="8">
-                            <h4 class="basic-title">{{ $t("studentWeb.courseContent.classID") }}</h4>
-                            <h4 class="basic-data">{{ course.course.no }}</h4>
-
-                            <h4 class="basic-title">{{ $t("studentWeb.courseContent.classTime") }}</h4>
-                            <h4 class="basic-data">{{ course.classTime }}</h4>
-
-                            <h4 class="basic-title">{{ $t("studentWeb.courseContent.classroom") }}</h4>
-                            <h4 class="basic-data">{{ course.roomName }}</h4>
-
-                            <h4 class="basic-title">{{ $t("studentWeb.courseContent.teacher") }}</h4>
-                            <h4 class="basic-data">{{ course.course.teaName }}</h4>
-
-                            <h4 class="basic-title">{{ $t("studentWeb.courseContent.co-teacher") }}</h4>
-                            <!-- <span class="basic-data"
-                                v-for="(teacher, index) in course.assistantTeachers"
-                                :key="index"
-                            >
-                                {{ teacher }}
-                                <span v-if="index < course.assistantTeachers.length - 1">、</span>
-                            </span> -->
-
-                            <h4 class="basic-title">{{ $t("studentWeb.courseContent.addedTime") }}</h4>
-                            <h4 class="basic-data">{{ course.courseAddDate }}</h4>
-                        </i-col>
-                        <i-col :xs="24" :sm="24" :md="16" :lg="16">
-                            <h4 class="basic-title">{{ $t("studentWeb.courseContent.courseCode") }}</h4>
-                            <img src="mockqrcode.jpg" width="30%" style='margin-left: -12px'>
-                        </i-col>
-                    </Row>
-                </TabPane>
-                <!-- 课程概述 -->
-                <TabPane :label="$t('studentWeb.courseContent.description')" name="tab2">
-                    {{ course.notice }}
-                    <h3 style="margin-top: 30px; margin-bottom: 10px">{{ $t("studentWeb.courseContent.syllabus") }}</h3>
-                    <Collapse simple>
-                        <Panel name="1">
-                            1. 史蒂夫·乔布斯
-                            <div slot="content">
-                                史蒂夫·乔布斯(Steve
-                                Jobs),1955年2月24日生于美国加利福尼亚州旧金山,美国发明家、企业家、美国苹果公司联合创办人。
-                                <br />
-                                <br />
-                                <Collapse simple>
-                                    <Panel name="1-1">
-                                        iPhone
-                                        <p slot="content">
-                                        iPhone,是美国苹果公司研发的智能手机,它搭载iOS操作系统。第一代iPhone于2007年1月9日由苹果公司前首席执行官史蒂夫·乔布斯发布,并在2007年6月29日正式发售。
-                                        </p>
-                                    </Panel>
-                                    <Panel name="1-2">
-                                        iPad
-                                        <p slot="content">
-                                        iPad是由苹果公司于2010年开始发布的平板电脑系列,定位介于苹果的智能手机iPhone和笔记本电脑产品之间,(屏幕中有4个虚拟程序固定栏)与iPhone布局一样,提供浏览网站、收发电子邮件、观看电子书、播放音频或视频、玩游戏等功能。由英国出生的设计主管乔纳森·伊夫(Jonathan
-                                        Ive)(有些翻译为
-                                        乔纳森·艾维)领导的团队设计的,这个圆滑、超薄的产品反映出了伊夫对德国天才设计师Dieter
-                                        Rams的崇敬之情。
-                                        </p>
-                                    </Panel>
-                                </Collapse>
-                            </div>
-                        </Panel>
-                        <Panel name="2">
-                            2. 斯蒂夫·盖瑞·沃兹尼亚克
-                            <p slot="content">
-                            斯蒂夫·盖瑞·沃兹尼亚克(Stephen Gary
-                            Wozniak),美国电脑工程师,曾与史蒂夫·乔布斯合伙创立苹果电脑(今之苹果公司)。斯蒂夫·盖瑞·沃兹尼亚克曾就读于美国科罗拉多大学,后转学入美国著名高等学府加州大学伯克利分校(UC
-                            Berkeley)并获得电机工程及计算机(EECS)本科学位(1987年)。
-                            </p>
-                        </Panel>
-                        <Panel name="3">
-                            3. 乔纳森·伊夫
-                            <p slot="content">
-                            乔纳森·伊夫是一位工业设计师,现任Apple公司设计师兼资深副总裁,英国爵士。他曾参与设计了iPod,iMac,iPhone,iPad等众多苹果产品。除了乔布斯,他是对苹果那些著名的产品最有影响力的人。
-                            </p>
-                        </Panel>
-                    </Collapse>
-                </TabPane>
-                <!-- 同学名单 -->
-                <TabPane :label="$t('studentWeb.courseContent.classmates')" name="tab3">
-                    <div v-show="!isChangeGroupView">
-                        <Table :columns="stuCol" :data="stuList">
-                            <template slot-scope="{ row }" slot="no">
-                                <p :class="{'my-name': row.id == $store.state.userInfo.sub}">
-                                    {{row.no}}
-                                </p>
-                            </template>
-                            <template slot-scope="{ row }" slot="id">
-                                <p :class="{'my-name': row.id == $store.state.userInfo.sub}">
-                                    {{row.id}}
-                                </p>
-                            </template>
-                            <template slot-scope="{ row }" slot="name">
-                                <p :class="{'my-name': row.id == $store.state.userInfo.sub}">
-                                    {{row.name}}
-                                </p>
-                            </template>
-                            <template slot-scope="{ row }" slot="groupName">
-                                <p :class="{'my-name': row.id == $store.state.userInfo.sub}">
-                                    {{row.groupName ? row.groupName : $t("studentWeb.courseContent.noGroup")}}
-                                </p>
-                            </template>
-                        </Table>
-                    </div>
-                    <!--小組模式-->
-                    <div v-show="isChangeGroupView">
-                        <Card class="group-student"
-                            v-for="(group, gIndex) in stuGroup"
-                            :key="gIndex">
-                            <h3 class="group-title" v-if="group.name">
-                                {{ group.name }}
-                            </h3>
-                            <h3 class="group-title" v-else>{{ $t("studentWeb.courseContent.noGroup") }}</h3>
-                            <table>
-                                <tr v-for="(item, index) in group.info"
-                                    :key="`a${index}`"
-                                >
-                                    <td class="student-no" :class="{ 'my-name': item.id == $store.state.userInfo.sub }">
-                                        {{ item.no }}
-                                    </td>
-                                    <td class="student-name" :class="{ 'my-name': item.id == $store.state.userInfo.sub }">
-                                        {{ item.name }}
-                                        <span v-if="item.id == $store.state.userInfo.sub">({{ $t("studentWeb.courseContent.me") }})</span>
-                                    </td>
-                                </tr>
-                            </table>
-                        </Card>
-                    </div>
-                </TabPane>
-                <!-- 醍摩豆 -->
-                <TabPane :label="$t('studentWeb.courseContent.classmates1')" name="tab4" v-if="tmdList.length > 0 || $store.state.userInfo.roles.includes('teacher')">
-                    <Table :columns="tmdCol" :data="tmdList">
-                        <template slot-scope="{ row }" slot="id">
-                            <p :class="{'my-name': row.id == $store.state.userInfo.sub}">
-                                {{row.id}}
-                            </p>
-                        </template>
-                        <template slot-scope="{ row }" slot="name">
-                            <p :class="{'my-name': row.id == $store.state.userInfo.sub}">
-                                {{row.name}}
-                            </p>
-                        </template>
-                    </Table>
-                </TabPane>
-            </Tabs>
-        </div>
-    </div>
-</template>
-
-<script>
-import loading from "vue-loading-overlay";
-import "vue-loading-overlay/dist/vue-loading.css";
-import { mapGetters } from 'vuex';
-export default {
-    name: "courseContent",
-    components: {
-        loading
-    },
-    data(vm) {
-        return {
-            isLoad: false,
-            showInfo: false,
-            isChangeGroupView: false, //控制名单样式
-            name: "tab1",
-            istab3Now: false,
-            week: [{
-                name: "MON",
-                cn: vm.$t("studentWeb.week.mon")
-            }, {
-                name: "TUE",
-                cn: vm.$t("studentWeb.week.tue")
-            }, {
-                name: "WED",
-                cn: vm.$t("studentWeb.week.wed")
-            }, {
-                name: "THU",
-                cn: vm.$t("studentWeb.week.thu")
-            }, {
-                name: "FRI",
-                cn: vm.$t("studentWeb.week.fri")
-            }],
-            stuCol: [
-                {
-                    title: vm.$t("studentWeb.courseContent.seatNo"),
-                    slot: "no",
-                },
-                {
-                    title: vm.$t("studentWeb.courseContent.stuNum"),
-                    slot: "id",
-                },
-                {
-                    title: vm.$t("studentWeb.courseContent.name"),
-                    slot: "name",
-                },
-                {
-                    title: vm.$t("studentWeb.courseContent.group"),
-                    slot: "groupName",
-                }
-            ],
-            tmdCol: [
-                {
-                    title: vm.$t("studentWeb.courseContent.tmdNum"),
-                    slot: "id",
-                },
-                {
-                    title: vm.$t("studentWeb.courseContent.name"),
-                    slot: "name",
-                },
-            ],
-            stuGroup: [], //学生——小组名单
-            stuList: [], //学生——table
-            tmdList: [], //醍摩豆列表
-        };
-    },
-    props: {
-        roomList: {
-            type: Array,
-            default: []
-        },
-        course: {
-            type: Object,
-            default: {}
-        }
-    },
-    mounted () {
-        if(Object.keys(this.course).length) {
-            this.isLoad = true
-            this.isNoInfo = false
-            this.showInfo = true
-            // 处理时间
-            if(this.course.course.timeWeek) {
-                this.week.map(item => {
-                    if(item.name == this.course.course.timeWeek) {
-                        this.course.classTime = item.cn + " " + this.course.time
-                    }
-                })
-            }
-            else {
-                this.course.classTime = this.$t("studentWeb.courseContent.noTime")
-            }
-            this.course.roomName = this.$t("studentWeb.courseContent.noRoom")
-            // 获取教室名称
-            if(this.roomList) {
-                for (let i = 0; i < this.roomList.length; i++) {
-                    if(this.roomList[i].id == this.course.course.room) {
-                        this.course.roomName = this.roomList[i].name
-                        break
-                    }
-                }
-            }
-            // 获取学生名单
-            if(this.course.course.classId != "" && this.course.course.classId) {
-                this.findStuInfor(this.course.course)
-            } else if(this.course.course.stuList != "") {
-                this.findPersonInfo(this.course.course)
-            }
-        }  
-    },
-    methods: {
-        changeGroupView() {
-            this.isChangeGroupView = !this.isChangeGroupView
-        },
-        // 查找学生信息(标准)
-        findStuInfor(course) {
-            this.stuGroup = []
-            this.stuList = []
-            let req = {
-                school_code: course.school,
-                scope: course.scope,
-                ids: [course.classId]
-            }
-            this.$api.studentWeb.getClassroomStudent(req).then(res => {
-                this.stuList = this._.cloneDeep(res.stus[0])
-                this.getGroup(res.stus[0])
-            }).finally(() => {
-                this.isLoad = false
-            })
-        },
-        // 查找学生(个人)
-        findPersonInfo(course) {
-            this.stuGroup = []
-            this.stuList = []
-            this.tmdList = []
-            let reqList = {
-                code: course.scope == 'school' ? course.school : course.creatorId,
-                // code: course.teacherId,
-                ids: [course.stuList],
-                scope: course.scope
-            }
-            this.$api.studentWeb.findListSummary(reqList).then(res => {
-                if(res.stuList.length) {
-                    if(res.stuList[0].students.length) {
-                        this.$api.studentWeb.findStuSummary({
-                            students: res.stuList[0].students,
-                            tmdIds: res.stuList[0].tmids
-                        }).then(res => {
-                            if(res.stus.length) {
-                                this.stuList = this._.cloneDeep(res.stus)
-                                this.tmdList = this._.cloneDeep(res.tmdinfos)
-                                this.getGroup(res.stus)
-                            }
-                        }).finally(() => {
-                            this.isLoad = false
-                        })
-                    } else {
-                        this.isLoad = false
-                    }
-                } else {
-                    this.isLoad = false
-                }
-            })
-        },
-        // 学生分组
-        getGroup(data) {
-            for (let i = 0; i < data.length; i++) {
-                this.stuGroup.push({
-                    id: data[i].groupId,
-                    name: data[i].groupName,
-                    info: [data[i]]
-                })
-                for (let j = i + 1; j < data.length; j++) {
-                    if(data[i].groupId == data[j].groupId) {
-                        this.stuGroup[i].info.push(data[j])
-                        data.splice(j,1)
-                        j--
-                    }
-                }
-            }
-        },
-    },
-    computed: {
-        // 当前的活动
-        ...mapGetters(["getItemTitle"]),
-    },
-    watch: {
-        course: {
-            /* handler(n, o) {
-                console.log('2101010')
-                this.showInfo = false
-                if(Object.keys(n).length) {
-                    this.isLoad = true
-                    this.isNoInfo = false
-                    this.showInfo = true
-                    // 处理时间
-                    if(n.course.timeWeek) {
-                        this.week.map(item => {
-                            if(item.name == n.course.timeWeek) {
-                                n.classTime = item.cn + " " + n.time
-                            }
-                        })
-                    }
-                    else {
-                        n.classTime = this.$t("studentWeb.courseContent.noTime")
-                    }
-                    n.roomName = this.$t("studentWeb.courseContent.noRoom")
-                    // 获取教室名称
-                    if(this.roomList) {
-                        for (let i = 0; i < this.roomList.length; i++) {
-                            if(this.roomList[i].id == n.course.room) {
-                                n.roomName = this.roomList[i].name
-                                break
-                            }
-                        }
-                    }
-                    // 获取学生名单
-                    if(n.course.classId != "" && n.course.classId) {
-                        this.findStuInfor(n.course)
-                    } else if(n.course.stuList != "") {
-                        this.findPersonInfo(n.course)
-                    }
-                }
-                else {
-                    console.log(222222, n);
-                }
-            } */
-        },
-        immediate: true,
-        deep:true
-    }
-}
-</script>
-
-<style scoped>
-@import "~@/assets/student-web/component_styles/course-content.css";
-</style>

+ 0 - 535
TEAMModelOS/ClientApp/src/components/student-web/HomeView/CourseList.vue

@@ -1,535 +0,0 @@
-<template>
-    <div>
-        <loading :active.sync="isLoad"
-                 :is-full-page="fullPage"
-                 background-color="#000"
-                 :opacity="opacity">
-            <template slot="default">
-                <svg-icon icon-class="loader" class="loader-icon" />
-            </template>
-        </loading>
-        <div class="course-list"
-            :class="{ courselistEn: this.$store.getters.getCurrentLaguage == 'en-us' }"
-        >
-            <!--課程加入成功-->
-            <div class="warmMessage"
-                v-if=" this.$store.getters.getMycID.coureseMessageOpen == true &&
-                        this.$store.getters.getMycID.addSuccess == true "
-            >
-                <div class="messageCard animate__animated animate__fadeInDown">
-                    <div>
-                        <h3>課程加入成功</h3>
-                        <svg-icon icon-class="addCourseSuc" class="addCourseIcon" />
-
-                        <h3>
-                            <span class="typeMark">{{ this.$store.getters.getMycID.myCourseID[  this.$store.getters.getMycID.myCourseID.length - 1 ] }}</span>
-                            <span>新加課程名稱</span>
-                        </h3>
-                        <p>可於左側課程清單檢視課程簡介</p>
-                    </div>
-                </div>
-            </div>
-
-            <!--課程已經加入-->
-            <div class="warmMessage"
-                v-if="this.$store.getters.getMycID.coureseMessageOpen == true &&
-                    this.$store.getters.getMycID.addSuccess == 'exist'"
-            >
-                <div class="messageCard animate__animated animate__fadeInDown">
-                    <div>
-                        <h3>課程已經加入</h3>
-                        <svg-icon icon-class="addCoursefail" class="addCourseIcon" />
-                        <p>可於左側課程清單檢視該課程簡介</p>
-                    </div>
-                </div>
-            </div>
-
-            <!--課程加入失敗-->
-            <div class="warmMessage"
-                v-if="this.$store.getters.getMycID.coureseMessageOpen == true &&
-                    this.$store.getters.getMycID.addSuccess == false"
-            >
-                <div class="messageCard animate__animated animate__fadeInDown">
-                    <div>
-                        <h3>課程加入失敗</h3>
-                        <svg-icon icon-class="addCoursefail" class="addCourseIcon" />
-                        <p>查無所輸入代碼之課程,或該課程您未獲教師授權參與</p>
-                    </div>
-                </div>
-            </div>
-
-            <div class="list">
-                <ul class="list-block">
-                    <Tabs :value="onlyStu ? (this.$store.getters.getMycID.addSuccess == true ? 'tab2' : 'tab1') : 'tab2' ">
-                        <!-- 表定课程 -->
-                        <TabPane :label="$t('studentWeb.defaultClass')"
-                                name="tab1"
-                                :align="currentView=='table'?'center':'left'"
-                                v-if="onlyStu"
-                        >
-                            <!-- <div class="listViewBtn" @click="changeView('list')" :class="{chooseView:currentView=='list'}">
-                                <svg-icon icon-class="list-text" />
-                            </div>
-                            <div class="tableViewBtn" @click="changeView('table')" :class="{chooseView:currentView=='table'}">
-                                <svg-icon icon-class="table" />
-                            </div> -->
-
-                            <div class="list-table">
-                                <Table :columns="courseTime"
-                                        border
-                                        :data="timeTable"
-                                        v-show="currentView == 'table'"
-                                        :disabled-hover="true"
-                                >
-                                    <!-- 时间 -->
-                                    <template slot-scope="{ row }" slot="time">
-                                        <p class="list-name">{{ row.time }}</p>
-                                        <p>{{ row.label }}</p>
-                                    </template>
-                                    <!-- 周一 -->
-                                    <template slot-scope="{ row }" slot="Mon">
-                                        <div v-for="(item, index) in row.fixList" :key="index">
-                                            <div v-if="item.timeWeek == 'MON'"
-                                                class="table-item"
-                                                @click="clickCell(row, index)"
-                                                :class="{'table-item-selected': selectedCondition(item) }"
-                                            >
-                                                <p class="list-name">{{ item.name}}</p>
-                                                <p>({{ item.teaName}})</p>
-                                            </div>
-                                        </div>
-                                    </template>
-                                    <!-- 周二 -->
-                                    <template slot-scope="{ row }" slot="Tue">
-                                        <div v-for="(item, index) in row.fixList" :key="index">
-                                            <div v-if="item.timeWeek == 'TUE'"
-                                                class="table-item"
-                                                @click="clickCell(row, index)"
-                                                :class="{'table-item-selected': selectedCondition(item) }"
-                                            >
-                                                <p class="list-name">{{ item.name}}</p>
-                                                <p>({{ item.teaName}})</p>
-                                            </div>
-                                        </div>
-                                    </template>
-                                    <!-- 周三 -->
-                                    <template slot-scope="{ row }" slot="Wed">
-                                        <div v-for="(item, index) in row.fixList" :key="index">
-                                            <div v-if="item.timeWeek == 'WED'"
-                                                class="table-item"
-                                                @click="clickCell(row, index)"
-                                                :class="{'table-item-selected': selectedCondition(item) }"
-                                            >
-                                                <p class="list-name">{{ item.name}}</p>
-                                                <p>({{ item.teaName}})</p>
-                                            </div>
-                                        </div>
-                                    </template>
-                                    <!-- 周四 -->
-                                    <template slot-scope="{ row }" slot="Thu">
-                                        <div v-for="(item, index) in row.fixList" :key="index">
-                                            <div v-if="item.timeWeek == 'THU'"
-                                                class="table-item"
-                                                @click="clickCell(row, index)"
-                                                :class="{'table-item-selected': selectedCondition(item) }"
-                                            >
-                                                <p class="list-name">{{ item.name}}</p>
-                                                <p>({{ item.teaName}})</p>
-                                            </div>
-                                        </div>
-                                    </template>
-                                    <!-- 周五 -->
-                                    <template slot-scope="{ row }" slot="Fri">
-                                        <div v-for="(item, index) in row.fixList" :key="index">
-                                            <div v-if="item.timeWeek == 'FRI'"
-                                                class="table-item"
-                                                @click="clickCell(row, index)"
-                                                :class="{'table-item-selected': selectedCondition(item) }"
-                                            >
-                                                <p class="list-name">{{ item.name}}</p>
-                                                <p>({{ item.teaName}})</p>
-                                            </div>
-                                        </div>
-                                    </template>
-                                </Table>
-                            </div>
-
-                            <!-- 表定 -->
-                            <!-- <li class="list-item"
-                                v-for="(item, index) in fixList"
-                                @click="sentSelectedEventTitle(item)"
-                                :class="{ 'list-item-selected': unique == item.unique }"
-                                :key="index"
-                                v-show="currentView == 'list'"
-                            >
-                                <ul>
-                                    <li class="list-item-info">
-                                        <p class="list-item-title">
-                                            <span class="list-item-typeMark">{{ item.no }}</span>
-                                            {{ item.name }}
-                                        </p>
-                                    </li>
-                                </ul>
-                            </li> -->
-                        </TabPane>
-                        <!-- 临时课程 -->
-                        <TabPane :label="$t('studentWeb.tempClass')" name="tab2">
-                        <!--剛加入的課程-->
-                        <!-- <li
-                            class="list-item"
-                            @click="
-                            sentSelectedEventTitle(
-                                courseList[courseList.length - index - 2]
-                            )
-                            "
-                            :class="{
-                            'list-item-selected': selectedCondition(
-                                courseList[courseList.length - index - 2]
-                            ),
-                            }"
-                            v-for="(item,
-                            index) in this.$store.getters.getMycID.myCourseID
-                            .slice()
-                            .reverse()"
-                            :key="`c+${index}`"
-                        >
-                            <ul>
-                            <li class="list-item-info">
-                                <p class="list-item-title">
-                                <span class="list-item-typeMark">{{ item }}</span>
-                                {{ "新加課程名稱" }}
-                                </p>
-                            </li>
-                            </ul>
-                        </li> -->
-                        <!--剛加入的課程-->
-                            <div v-if="personList.length">
-                                <!-- <div v-for="(item, index) in timeTable" :key="index"> -->
-                                    <li
-                                        class="list-item"
-                                        v-for="(person, num) in personList"
-                                        :class="{'list-item-selected': selectedCondition(person)}"
-                                        @click="clickCell(person, num, 'list')"
-                                        :key="`j+${num}`"
-                                    >
-                                        <ul>
-                                            <li class="list-item-info">
-                                                <p class="list-item-title">
-                                                    <span class="list-item-typeMark">{{ person.no }}</span>
-                                                    {{ person.name }}({{ person.teaName }})
-                                                </p>
-                                            </li>
-                                        </ul>
-                                    </li>
-                                <!-- </div> -->
-                            </div>
-                            <div v-else class="list-item-no">
-                                {{ $t('studentWeb.courseContent.noCourse') }}
-                            </div>
-                        </TabPane>
-                    </Tabs>
-                </ul>
-            </div>
-        </div>
-    </div>
-</template>
-
-<script>
-import Loading from "vue-loading-overlay";
-import "vue-loading-overlay/dist/vue-loading.css";
-import { mapGetters, mapState } from 'vuex';
-export default {
-    name: "CourseList",
-    components: {
-        Loading
-    },
-    data() {
-        return {
-            isLoad: false,
-            fullPage: true,
-            opacity: 0.6,
-            currentView: 'table',
-            onlyStu: true, //是不是学生
-            courseTime: [
-                {
-                    title: this.$t("studentWeb.week.time"),
-                    slot: "time",
-                    width: "140"
-                },
-                {
-                    title: this.$t("studentWeb.week.mon"),
-                    slot: "Mon",
-                    width: "115"
-                },
-                {
-                    title: this.$t("studentWeb.week.tue"),
-                    slot: "Tue",
-                    width: "115"
-                },
-                {
-                    title: this.$t("studentWeb.week.wed"),
-                    slot: "Wed",
-                    width: "115"
-                },
-                {
-                    title: this.$t("studentWeb.week.thu"),
-                    slot: "Thu",
-                    width: "115"
-                },
-                {
-                    title: this.$t("studentWeb.week.fri"),
-                    slot: "Fri",
-                    width: "115"
-                },
-                {
-                    title: this.$t("studentWeb.week.sat"),
-                    // slot: "Fri",
-                    width: "100"
-                },
-                {
-                    title: this.$t("studentWeb.week.sun"),
-                    // slot: "Fri",
-                    width: "100"
-                }
-            ],
-            courseList: this.$api.studentWeb.courseList, //moke数据
-            fixList: [], //表定课程
-            personList: [], //临时课程
-            nowClassInfor: {},
-            timeTable: [], //页面所有的课程
-            unique: '',
-        };
-    },
-    props: {
-        period: {
-            type: Array,
-            default: []
-        },
-        teaList: {
-            type: Array,
-            default: []
-        }
-    },
-    created() {
-        this.userInfo.roles.map(item => {
-            if(item == "teacher") {
-                this.onlyStu = false
-            }
-        })
-        this.getClassList()
-    },
-    mounted () {
-        this.selectedCondition(this.getItemTitle)
-    },
-    methods: {
-        getClassList() {
-            this.isLoad = true
-            let param = {
-                userid: this.userInfo.sub,
-                school: this.userInfo.azp
-            }
-            if(this.userInfo.roles.includes("teacher")) {
-                param.userType = "tmdid"
-            } else {
-                param.userType = "schoolid"
-            }
-            this.$api.studentWeb.getClassList(param).then(res => {
-                if(res.courses.length) {
-                    // 表定课程
-                    var fixList = []
-                    // 临时课程
-                    var personList = []
-                    var list = res.courses
-                    list.forEach(item => {
-                        if(item.course) {
-                            item.course.schedule.forEach(sch => {
-                                // 有classId,表定课程
-                                if(sch.classId == item.stuCourse.classId[0]) {
-                                    if(sch.time.length > 0) {
-                                        for (let m = 0; m < sch.time.length; m++) {
-                                            let data = this.getNewCourse("class", item, sch, m)
-                                            fixList.push(data)
-                                        }
-                                    }
-                                    else {
-                                        let datanoTime = this.getNewCourse("class", item, sch)
-                                        fixList.push(datanoTime)
-                                    }
-                                }
-                                // 有stulist,临时课程
-                                else if (sch.stulist) {
-                                    if(sch.time.length) {
-                                        for (let m = 0; m < sch.time.length; m++) {
-                                            let data = this.getNewCourse("person", item, sch, m)
-                                            personList.push(data)
-                                        }
-                                    }
-                                    // 没有时间
-                                    else {
-                                        let data = this.getNewCourse("person", item, sch)
-                                        personList.push(data)
-                                    }
-                                }
-                            })
-                        }
-                    })
-                    this.fixList = fixList
-                    this.personList = personList
-                    this.getClassTime()
-                }
-            }).finally(()=>{
-                this.isLoad = false
-            })
-            
-        },
-        // 课程的相关信息(attribute: "class/person")
-        getNewCourse(attribute, subject, schedule, m) {
-            let data = this._.cloneDeep(subject.course)
-            delete data.schedule
-            data.school = subject.stuCourse.school
-            data.scope = subject.stuCourse.scope
-            data.classId = schedule.classId
-            data.roomId = schedule.room
-            data.teacherId = schedule.teacherId
-            data.notice = schedule.notice
-            data.stuList = schedule.stulist
-            if(m !== undefined) {
-                data.timeId = schedule.time[m].id
-                data.timeWeek = schedule.time[m].week
-                // 拼接得到一个唯一的标识
-                data.unique = attribute + subject.course.no + schedule.time[m].week + schedule.time[m].id + m + Math.floor(Math.random() * 10000)
-            }
-            // 没有时间的情况
-            else {
-                data.timeId = 0
-                data.timeWeek = 0
-                data.unique = attribute + subject.course.no + Math.floor(Math.random() * 100000000)
-            }
-            data.teaName = this.$t('studentWeb.courseContent.noTeacher')
-            // 获取老师名单
-            if(this.teaList.length > 0) {
-                this.teaList.forEach(item => {
-                    if(item.id == data.teacherId) {
-                        data.teaName = item.name
-                    }
-                })
-            }
-            return data
-        },
-        // 处理上课时间
-        getClassTime() {
-            // 学生登陆
-            if(this.onlyStu) {
-                this.timeTable = this.period.find(item => {
-                    return item.id == this.studentProfile.classinfo.periodId
-                }).timetable
-                this.timeTable.forEach(item => {
-                    let newfixlist = []
-                    let notime = [] //没有时间的标准课程
-                    this.fixList.forEach(fix => {
-                        if(fix.timeId == item.id && fix.timeId) {
-                            newfixlist.push(fix)
-                        }
-                        // 没有时间的标准课程
-                        else if (!fix.timeId) {
-                            notime.push(fix)
-                        }
-                    })
-                    item.fixList = newfixlist
-                    item.noTime = notime
-                })
-                // 个人课程
-                this.personList.forEach(per => {
-                    if(per.timeId) {
-                        this.timeTable.forEach(item => {
-                            if(per.timeId == item.id) {
-                                per.time = item.time
-                            }
-                        })
-                    }
-                })
-            }
-            // 醍摩豆登陆
-            else if (this.personList.length) {
-                // 年级id 存在
-                if(this.personList[0].period.id != undefined) {
-                    this.timetable = this.period.find(item => {
-                        return item.id == this.personList[0].period.id
-                    }).timetable
-                    this.timeTable.forEach(item => {
-                        let newpersonList = []
-                        this.personList.forEach(per => {
-                            if(per.timeId == item.id && per.timeId) {
-                                newpersonList.push(per)
-                            } else if (!per.timeId) {
-                                newpersonList.push(per)
-                            }
-                        })
-                        item.personList = newpersonList
-                    })
-                }
-                // 年级id 不存在
-                else {
-                    this.timeTable = [{
-                        personList: []
-                    }]
-                    this.personList.forEach(per => {
-                        this.timeTable[0].personList.push(per)
-                    })
-                }
-            }
-        },
-        // 点击单节课,显示基本信息
-        /* row:timeTable的某一个
-           index:fixList/personList中的当前这一数据的下标
-           type:传'list'就是临时课程,不传就是表定课程
-        */
-        clickCell(row, index, type) {
-            this.nowClassInfor = this._.cloneDeep(row)
-            if(type) {
-                this.nowClassInfor.course = this._.cloneDeep(row)
-            } else {
-                this.nowClassInfor.course = this._.cloneDeep(row.fixList[index])
-            }
-            this.unique = this.nowClassInfor.course.unique
-            this.sentSelectedEventTitle(this.nowClassInfor)
-        },
-        changeView(type) {
-            this.currentView = type
-        },
-        selectedCondition(item) {
-            if(Object.keys(this.getItemTitle).length) {
-                if (this.getItemTitle.course.id == item.id
-                    && this.getItemTitle.course.teacherId == item.teacherId
-                    && this.getItemTitle.course.timeId == item.timeId
-                    && this.getItemTitle.course.timeWeek == item.timeWeek
-                    && this.getItemTitle.course.roomId == item.roomId
-                ) {
-                    console.log(11111);
-                    return true;
-                } else return false;
-            }
-        },
-        // 跳转到当前课程
-        sentSelectedEventTitle: function (item) {
-            // 改變ItemName的狀態 vuex mutations
-            this.$store.commit("ChangeItemName", item);
-            // 螢幕寬度<767px時,直接關掉sidebar
-            if (window.innerWidth <= 991) {
-                this.$store.commit("ToggleSidebar", false);
-            }
-        },
-    },
-    computed: {
-        ...mapState({
-            userInfo: state => state.userInfo,
-            studentProfile: state => state.user.studentProfile
-        }),
-        ...mapGetters(["getItemTitle"])
-    }
-};
-</script>
-
-<style scoped>
-@import "~@/assets/student-web/component_styles/course-list.css";
-</style>

+ 70 - 13
TEAMModelOS/ClientApp/src/view/newcourse/MyCourse.vue

@@ -81,6 +81,10 @@
                                     <Icon type="md-add" size="16" />
                                     {{$t('cusMgt.addStu')}}
                                 </span>
+                                <span class="action-btn-wrap" @click="setIrsStatus = true">
+                                    <Icon type="md-settings" size="16" />
+                                    {{$t('cusMgt.editStu')}}
+                                </span>
                             </div>
                             <div style="float:right;" v-if="tabName == 'activity'">
                                 <span class="action-btn-wrap light-iview-select">
@@ -111,6 +115,12 @@
                                             <Icon type="md-remove-circle" size="18" color="white" style="margin-left:10px" @click="removeStudent(index)" :title="$t('schoolBaseInfo.delStuBtn')" />
                                         </div>
                                     </template>
+                                    <template slot-scope="{ row,index }" slot="irs">
+                                        <span v-show="editIndex !== index" :style="{color:row.irs ? '#303030':'red'}">{{row.irs || $t('cusMgt.notSet')}}</span>
+                                        <InputNumber :min="0" v-model="editIrs" v-show="editIndex == index" style="width: 60px;"></InputNumber>
+                                        <Icon type="md-checkmark" v-show="editIndex == index" @click="confirmSetNo()" class="reset-no-btn" />
+                                        <Icon type="md-close" v-show="editIndex == index" @click="cancelSetNo()" class="reset-no-btn" />
+                                    </template>
                                     <template slot-scope="{ row, index }" slot="groupId">
                                         <span>{{row.groupId ? row.groupId : '--'}}</span>
                                     </template>
@@ -327,6 +337,11 @@
                 </RadioGroup>
             </div>
         </Modal>
+        <!-- 快速设置IRS -->
+        <Modal v-model="setIrsStatus" :title="$t('cusMgt.editStu')" @on-ok="confirmFastSet">
+            <p class="set-irs-tips">{{$t('cusMgt.irsTips1')}}</p>
+            <p class="set-irs-tips">{{$t('cusMgt.irsTips2')}}</p>
+        </Modal>
     </div>
 </template>
 <script>
@@ -351,6 +366,8 @@ export default {
             }
         }
         return {
+            setIrsStatus: false,
+            editIndex: -1,
             removeListStatus: false,
             isPermanent: 'remove',
             type: 'create',
@@ -431,25 +448,25 @@ export default {
                     title: this.$t('courseManage.classroom.studentTableC6'),
                     slot: 'groupName',
                     align: 'center'
-                }
+                },
+                {
+                    title: this.$t('courseManage.classroom.studentTableC9'),
+                    slot: 'irs',
+                    align: 'center',
+                    sortable: true
+                },
             ],
             listColumn: [
                 {
                     type: 'selection',
                     align: 'center ',
-                    width: '150'
+                    width: '60'
                 },
                 {
                     title: ' ',
                     slot: 'picture',
                     align: 'center ',
-                    width: '150'
-                },
-                {
-                    title: this.$t('cusMgt.tableCol1'),
-                    type: 'index',
-                    align: 'center ',
-                    width: '150'
+                    width: '100'
                 },
                 {
                     title: this.$t('courseManage.classroom.studentTableC2'),
@@ -467,10 +484,16 @@ export default {
                     slot: 'type',
                     align: 'center'
                 },
+                // {
+                //     title: this.$t('cusMgt.className'),
+                //     key: 'className',
+                //     align: 'center'
+                // },
                 {
-                    title: this.$t('cusMgt.className'),
-                    key: 'className',
-                    align: 'center'
+                    title: this.$t('courseManage.classroom.studentTableC9'),
+                    slot: 'irs',
+                    align: 'center',
+                    sortable: true
                 },
             ],
             itemNum: 0,
@@ -507,6 +530,7 @@ export default {
         }
     },
     methods: {
+
         toListMode() {
             this.getCourseList()
             this.isShowSchd = !this.isShowSchd
@@ -883,6 +907,36 @@ export default {
             }
 
         },
+        // 批量设置irs
+        confirmFastSet() {
+            // 当前名单对应的课程安排用于更新UI
+            let schedule = this.courseListShow[this.curCusIndex].schedule.find(item => {
+                return item.stulist == this.teaClassList[this.curClassIndex].stulist && !item.classId //只有自定名单能添加学生,所以classId == ‘’
+            })
+            let stulist = this.stuList.find(item => {
+                return item.id == this.teaClassList[this.curClassIndex].stulist
+            })
+            if (stulist) {
+                stulist.members.forEach((item, index) => {
+                    item.irs = (index + 1) + ''
+                })
+            }
+            schedule.allStu = stulist.members
+            this.saveStuList(stulist)
+        },
+        getDefIRS(stulist) {
+            let defIRS = stulist.members.length + 1
+            let irs = stulist.members.map(item => item.irs)
+            irs = irs.filter(item => !!item)
+            irs.sort()
+            for (let index = 0; index < irs.length; index++) {
+                if ((index + 1) != irs[index]) {
+                    defIRS = index + 1
+                    break
+                }
+            }
+            return defIRS
+        },
         //确认添加学生
         confirmAddStu() {
             if (this.selections.length > 0) {
@@ -902,13 +956,14 @@ export default {
                 }
                 this.selections.forEach(item => {
                     if (!stuIds.includes(item.id)) { //如果已经有学生,根据账号去重
+                        let irs = this.getDefIRS(stulist)
                         let info = {
                             id: item.id,
                             code: this.$store.state.userInfo.schoolCode, //学生所在学校的编码,这里先传当前学校编码,暂无未考虑跨校名单
                             name: item.name,
                             picture: item.picture,
                             type: 2,
-                            irs: '',//这里需要设置默认号码
+                            irs: irs + '',//这里需要设置默认号码
                             className: item.className,
                             classId: item.classId,
 
@@ -1084,6 +1139,7 @@ export default {
             let params = stuList
             this.$api.common.upsertGroupInfo(params).then(
                 res => {
+                    this.$Message.success('名单保存/更新成功')
                     this.newSlStatus = false
                     //TODO 添加到当前课程schedule
                     if (isUpdCus && res.list) {
@@ -1103,6 +1159,7 @@ export default {
                     }
                 },
                 err => {
+                    this.$Message.error('名单保存/更新失败')
                     this.modalLoading = false
                     setTimeout(() => {
                         this.modalLoading = true

+ 0 - 1
TEAMModelOS/ClientApp/src/view/student-account/class/ClassMgt.less

@@ -127,7 +127,6 @@
     margin-top: 5px;
     /*color: black;*/
     float: right;
-    margin-right: 30px;
 }
 .school-plan-wrap {
     height: 100%;

+ 82 - 4
TEAMModelOS/ClientApp/src/view/student-account/class/ClassMgt.vue

@@ -73,13 +73,17 @@
                     {{$t('schoolBaseInfo.saveInfo')}}
                 </Button>
                 <!-- 添加学生 -->
-                <Button v-if="$access.can('admin.*|student-upd')" class="save-btn" :loading="isSaveLoading" icon="md-add" @click="handleAddStu()" v-show="currentTabIndex == 2">
+                <Button v-if="$access.can('admin.*|student-upd')" class="save-btn" style="margin-right:30px" :loading="isSaveLoading" icon="md-add" @click="handleAddStu()" v-show="currentTabIndex == 2">
                     {{$t('schoolBaseInfo.addStuBtn')}}
                 </Button>
                 <!-- 移除学生 -->
-                <Button v-if="$access.can('admin.*|student-upd')" class="save-btn" style="margin-right:10px;" :loading="isSaveLoading" icon="md-remove-circle" @click="removeStudent(-1)" v-show="currentTabIndex == 2">
+                <Button v-if="$access.can('admin.*|student-upd')" class="save-btn" :loading="isSaveLoading" icon="md-remove-circle" @click="removeStudent(-1)" v-show="currentTabIndex == 2">
                     {{$t('schoolBaseInfo.delStuBtn')}}
                 </Button>
+                <!-- 批量设置座号、IRS编码 -->
+                <Button v-if="$access.can('admin.*|student-upd')" class="save-btn" :loading="isSaveLoading" icon="ios-settings" @click="fastStatus = true" v-show="currentTabIndex == 2">
+                    快速设置
+                </Button>
             </div>
             <div class="class-info-content">
                 <!--基础信息-->
@@ -160,11 +164,17 @@
                                 <PersonalPhoto :name="row.name" :picture="row.picture" />
                             </template>
                             <template slot-scope="{ row,index }" slot="no">
-                                <span v-show="editIndex !== index">{{row.no}}</span>
+                                <span v-show="editIndex !== index" :style="{color:row.no ? '#303030':'red'}">{{row.no || $t('cusMgt.notSet')}}</span>
                                 <Input v-special-char v-model="students[index].no" v-show="editIndex == index" style="width: 60px;" type="number" />
                                 <Icon type="md-checkmark" v-show="editIndex == index" @click="confirmSetNo(students[index])" class="reset-no-btn" />
                                 <Icon type="md-close" v-show="editIndex == index" @click="cancelSetNo()" class="reset-no-btn" />
                             </template>
+                            <template slot-scope="{ row,index }" slot="irs">
+                                <span v-show="editIndex !== index" :style="{color:row.irs ? '#303030':'red'}">{{row.irs || $t('cusMgt.notSet')}}</span>
+                                <Input v-special-char v-model="students[index].irs" v-show="editIndex == index" style="width: 60px;" type="number" />
+                                <Icon type="md-checkmark" v-show="editIndex == index" @click="confirmSetNo(students[index])" class="reset-no-btn" />
+                                <Icon type="md-close" v-show="editIndex == index" @click="cancelSetNo()" class="reset-no-btn" />
+                            </template>
                             <template slot-scope="{ row ,index}" slot="action">
                                 <div class="item-tools" v-if="$access.can('admin.*|student-upd')">
                                     <Icon type="md-create" size="18" color="#40A8F0" @click="resetNo(index)" :title="$t('schoolBaseInfo.editSeat')" />
@@ -217,6 +227,23 @@
                 </FormItem>
             </Form>
         </Modal>
+        <Modal v-model="fastStatus" title="快速设置" @on-ok="confirmFastSet" :loading="mLoading">
+            <span>设置项:</span>
+            <CheckboxGroup v-model="fastType" style="display:inline-block">
+                <Checkbox label="no">
+                    <span>座号</span>
+                </Checkbox>
+                <Checkbox label="irs">
+                    <span>IRS号码</span>
+                </Checkbox>
+            </CheckboxGroup>
+            <p class="set-irs-tips" style="margin-top:10px">
+                1、按照名单顺序快速设置号码<span style="color:red">{{fastSetType}}</span>;
+            </p>
+            <p class="set-irs-tips" style="margin-top:5px">
+                2、如果学生已经设置号码<span style="color:red">{{fastSetType}}</span>将被重置。
+            </p>
+        </Modal>
     </div>
 </template>
 
@@ -284,6 +311,8 @@ export default {
             callback()
         }
         return {
+            fastType: [],
+            fastStatus: false,
             mLoading: true,
             tableHeight: 500,
             addClassStatus: false,
@@ -328,6 +357,12 @@ export default {
                     align: 'center',
                     sortable: true
                 },
+                {
+                    title: this.$t('courseManage.classroom.studentTableC9'),
+                    slot: 'irs',
+                    align: 'center',
+                    sortable: true
+                },
                 {
                     title: ' ',
                     slot: 'action',
@@ -502,8 +537,51 @@ export default {
                 return curYear
             }
         },
+        fastSetType() {
+            if (this.fastType.length) {
+                let noLabel = this.$t('courseManage.classroom.studentTableC1')
+                let irsLabel = this.$t('courseManage.classroom.studentTableC9')
+                let str = `(${this.fastType.includes('no') ? noLabel : ''}${this.fastType.length > 1 ? '/' : ''}${this.fastType.includes('irs') ? irsLabel : ''})`
+                return str
+            } else {
+                return ''
+            }
+        }
     },
     methods: {
+        confirmFastSet() {
+            if (!this.fastType.length) {
+                this.$Message.warning('请勾选需要快速设置的字段')
+                this.mLoading = false
+                setTimeout(() => {
+                    this.mLoading = true
+                })
+            } else {
+                let data = this.allStudents.filter(item => {
+                    return item.classId == this.classListShow[this.curClassIndex].id
+                })
+                data.forEach((item, index) => {
+                    //设置座号
+                    if (this.fastType.includes('no')) {
+                        item.no = (index + 1) + ''
+                    }
+                    if (this.fastType.includes('irs')) {
+                        item.irs = (index + 1) + ''
+                    }
+                })
+                let schoolId = this.$store.state.userInfo.schoolCode
+                this.$api.stuAccount.saveAllStudent(schoolId, data).then(
+                    res => {
+                        this.$Message.success(this.$t('schoolBaseInfo.updOk'))
+                        this.fastStatus = false
+                    },
+                    err => {
+                        this.$Message.error(this.$t('schoolBaseInfo.updErr'))
+                    }
+                )
+            }
+
+        },
         handleAddStu() {
             if (this.$refs['stu-list-comp']) this.$refs['stu-list-comp'].baseFindStudent()
             if (this.$refs['stu-list-comp'] && this.$refs['stu-list-comp'].$refs['stuSelection']) this.$refs['stu-list-comp'].$refs['stuSelection'].selectAll(false)
@@ -613,7 +691,7 @@ export default {
                             // let s = this.classListShow[this.curClassIndex].students || []
                             // s.push(...data)
                             // this.$set(this.classListShow[this.curClassIndex], 'students', s)
-                            let ids = data.map(item=>{
+                            let ids = data.map(item => {
                                 return item.id
                             })
                             for (let i = 0; i < this.allStudents.length; i++) {