Browse Source

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

CrazyIter_Bin 3 years ago
parent
commit
93bae97a66

+ 4 - 0
TEAMModelOS/ClientApp/src/api/schoolUser.js

@@ -26,4 +26,8 @@ export default {
     getUserFromCoreId: function (data) {
     getUserFromCoreId: function (data) {
         return post('/school/teacher/get-coreuser', data)
         return post('/school/teacher/get-coreuser', data)
     },
     },
+    // 查询教研组
+    getResearchGroup: function (data) {
+        return post('/stulist/get-research-list', data)
+    },
 }
 }

+ 3 - 1
TEAMModelOS/ClientApp/src/locale/lang/en-US/cusMgt.js

@@ -10,6 +10,8 @@ export default {
     nameHolder:'Please enter course name',
     nameHolder:'Please enter course name',
     cusCode:'Course ID',
     cusCode:'Course ID',
     codeHolder:'Please enter course ID',
     codeHolder:'Please enter course ID',
+    cusDesc:'課程描述',
+    descHolder:'請輸入課程描述',
     cusPd:"School System",
     cusPd:"School System",
     pdHolder:'Please choose school system',
     pdHolder:'Please choose school system',
     cusSubject:"School System",
     cusSubject:"School System",
@@ -32,7 +34,7 @@ export default {
     addErr:'Failed to add!',
     addErr:'Failed to add!',
     editOk:'Modified successfully!',
     editOk:'Modified successfully!',
     editErr:'Failure to modify!',
     editErr:'Failure to modify!',
-    formTips:'Please complete the information first, then save!',
+    formTips:'Please check the course information!',
     noSchool:'Not yet joined any schools, no school data available',
     noSchool:'Not yet joined any schools, no school data available',
     sltCusTips:'Please enter course',
     sltCusTips:'Please enter course',
 
 

+ 3 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/cusMgt.js

@@ -10,6 +10,8 @@ export default {
     cNameHolder:'请输入课程名称',
     cNameHolder:'请输入课程名称',
     cusCode:'课程编码',
     cusCode:'课程编码',
     codeHolder:'请输入课程编码',
     codeHolder:'请输入课程编码',
+    cusDesc:'课程描述',
+    descHolder:'请输入课程描述',
     cusPd:'课程学段',
     cusPd:'课程学段',
     pdHolder:'请选择学段',
     pdHolder:'请选择学段',
     cusSubject:'课程学科',
     cusSubject:'课程学科',
@@ -32,7 +34,7 @@ export default {
     addErr:'添加成功!',
     addErr:'添加成功!',
     editOk:'修改成功!',
     editOk:'修改成功!',
     editErr:'修改失败!',
     editErr:'修改失败!',
-    formTips:'请先完善信息,再保存!',
+    formTips:'请检查课程信息!',
     noSchool:'尚未加入学校,没有学校数据',
     noSchool:'尚未加入学校,没有学校数据',
     sltCusTips:'请选择课程',
     sltCusTips:'请选择课程',
 
 

+ 3 - 1
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/cusMgt.js

@@ -10,6 +10,8 @@ export default {
     cNameHolder: '請輸入課程名稱',
     cNameHolder: '請輸入課程名稱',
     cusCode: '課程編碼',
     cusCode: '課程編碼',
     codeHolder: '請輸入課程編碼',
     codeHolder: '請輸入課程編碼',
+    cusDesc:'課程描述',
+    descHolder:'請輸入課程描述',
     cusPd: '課程學制',
     cusPd: '課程學制',
     pdHolder: '請選擇學制',
     pdHolder: '請選擇學制',
     cusSubject: '課程學科',
     cusSubject: '課程學科',
@@ -32,7 +34,7 @@ export default {
     addErr: '新增失敗!',
     addErr: '新增失敗!',
     editOk: '修改成功!',
     editOk: '修改成功!',
     editErr: '修改失敗!',
     editErr: '修改失敗!',
-    formTips: '請先完善資訊,再儲存!',
+    formTips: '請檢查課程資訊!',
     noSchool: '尚未加入學校,沒有學校數據',
     noSchool: '尚未加入學校,沒有學校數據',
     sltCusTips: '請選擇課程',
     sltCusTips: '請選擇課程',
 
 

+ 55 - 104
TEAMModelOS/ClientApp/src/view/newcourse/MyCourse.vue

@@ -246,36 +246,6 @@
                 <TeaTable :schedData="schdData" :teacher="$store.state.userInfo.TEAMModelId" :periodId="curPd" mode="view"></TeaTable>
                 <TeaTable :schedData="schdData" :teacher="$store.state.userInfo.TEAMModelId" :periodId="curPd" mode="view"></TeaTable>
             </vuescroll>
             </vuescroll>
         </div>
         </div>
-        <Drawer :title="$t('cusMgt.cusInfo')" class-name="dark-iview-drawer" width="450" :closable="false" v-model="showCusInfo" @on-close="baseEditStatus = true">
-            <!--基础信息-->
-            <div class="course-base-info-content dark-iview-form disabled-iview-select dark-wang-editor">
-                <Form ref="courseBaseInfo" label-position="top">
-                    <FormItem :label="$t('cusMgt.cusName')" prop="name" class="disabled-iview-select">
-                        <Input v-if="listType == 'school' && courseListShow[curCusIndex]" v-model="courseListShow[curCusIndex].name" :disabled="true" style="width:100%" :placeholder="$t('cusMgt.cusName')" :clearable="true"></Input>
-                        <Input v-else-if="listType == 'private' && courseListShow[curCusIndex]" v-model="courseListShow[curCusIndex].name" :disabled="baseEditStatus" style="width:100%" :placeholder="$t('cusMgt.cusName')" :clearable="true"></Input>
-                    </FormItem>
-                    <FormItem :label="$t('cusMgt.cusCode')" prop="no" class="disabled-iview-select">
-                        <Input v-if="listType == 'school' && courseListShow[curCusIndex]" v-model="courseListShow[curCusIndex].no" :disabled="true" style="width:100%" :placeholder="$t('cusMgt.cusCode')" :clearable="true"></Input>
-                        <Input v-else-if="listType == 'private' && courseListShow[curCusIndex]" v-model="courseListShow[curCusIndex].no" :disabled="baseEditStatus" style="width:100%" :placeholder="$t('cusMgt.cusCode')" :clearable="true"></Input>
-                    </FormItem>
-                    <FormItem :label="$t('courseManage.base.courseNotice')">
-                        <!-- 暂时注释课程公告功能 -->
-                        <!-- <span>课程公告暂未处理</span> -->
-                        <!-- <div ref="courseNotice" v-show="!baseEditStatus"></div>
-                        <div v-show="baseEditStatus" style="height:fit-content;color:white;font-size:16px;padding-left:10px;width:100%;">
-                            <vuescroll>
-                                <div v-if="listType == 'school' && courseListS[curCusIndex] && checkNotice(courseListS[curCusIndex].notice)" v-html="courseListS[curCusIndex][0].notice" style=""></div>
-                                <div v-else-if="listType == 'private' && courseListP[curCusIndex] && checkNotice(courseListP[curCusIndex].notice)" v-html="courseListP[curCusIndex].notice" style=""></div>
-                                <div v-else style="">{{$t('cusMgt.noNotice')}}</div>
-                            </vuescroll>
-                        </div> -->
-                    </FormItem>
-                    <FormItem label="">
-                        <Button style="width:100%;margin-top:10px;" @click="edNotice">{{baseEditStatus ? $t('cusMgt.edit') : $t('cusMgt.save')}}</Button>
-                    </FormItem>
-                </Form>
-            </div>
-        </Drawer>
         <!-- 创建名单 -->
         <!-- 创建名单 -->
         <Modal v-model="newSlStatus" width="600" @on-ok="confirmCreateList" class-name="dark-iview-modal dark-iview-form" :loading="modalLoading">
         <Modal v-model="newSlStatus" width="600" @on-ok="confirmCreateList" class-name="dark-iview-modal dark-iview-form" :loading="modalLoading">
             <div slot="header">
             <div slot="header">
@@ -302,19 +272,18 @@
                 </FormItem>
                 </FormItem>
             </Form>
             </Form>
             <span class="create-list-tips">{{$store.state.userInfo.hasSchool ? $t('cusMgt.createTips1') : $t('cusMgt.createTips2')}}</span>
             <span class="create-list-tips">{{$store.state.userInfo.hasSchool ? $t('cusMgt.createTips1') : $t('cusMgt.createTips2')}}</span>
-            <!-- <StudentList v-if="$store.state.userInfo.hasSchool" @getSelectInfo="(selction)=>{createStuList = selction}"></StudentList>
-            <p v-else class="no-school-tips">
-                {{$t('cusMgt.noSchoolStu')}}
-            </p> -->
         </Modal>
         </Modal>
-        <Modal v-model="addCusStatus" :title="$t('cusMgt.addCus')" @on-ok="confirmAddCus" class-name="dark-iview-modal dark-iview-form">
+        <Modal v-model="addCusStatus" :title="$t('cusMgt.addCus')" @on-ok="confirmAddCus" class-name="dark-iview-modal dark-iview-form" :loading="modalLoading">
             <Form ref="addCusInfo" :model="addCusInfo" :rules="ruleAddCus">
             <Form ref="addCusInfo" :model="addCusInfo" :rules="ruleAddCus">
                 <FormItem prop="name" :label="$t('cusMgt.cusName')">
                 <FormItem prop="name" :label="$t('cusMgt.cusName')">
                     <Input type="text" v-model="addCusInfo.name" :placeholder="$t('cusMgt.nameHolder')"></Input>
                     <Input type="text" v-model="addCusInfo.name" :placeholder="$t('cusMgt.nameHolder')"></Input>
                 </FormItem>
                 </FormItem>
-                <FormItem :label="$t('cusMgt.cusCode')">
+                <FormItem :label="$t('cusMgt.cusCode')" prop="no">
                     <Input type="text" v-model="addCusInfo.no" :placeholder="$t('cusMgt.codeHolder')"></Input>
                     <Input type="text" v-model="addCusInfo.no" :placeholder="$t('cusMgt.codeHolder')"></Input>
                 </FormItem>
                 </FormItem>
+                <FormItem :label="$t('cusMgt.cusDesc')" prop="desc">
+                    <Input v-model="addCusInfo.desc" type="textarea" :maxlength="200" show-word-limit :autosize="{ minRows: 4, maxRows: 6 }" :placeholder="$t('cusMgt.descHolder')" />
+                </FormItem>
             </Form>
             </Form>
         </Modal>
         </Modal>
         <Modal v-model="addStuStatus" :title="$t('cusMgt.addStu')" width="1200" @on-ok="confirmAddStu" class-name="dark-iview-modal">
         <Modal v-model="addStuStatus" :title="$t('cusMgt.addStu')" width="1200" @on-ok="confirmAddStu" class-name="dark-iview-modal">
@@ -347,7 +316,6 @@
 import { mapGetters } from 'vuex'
 import { mapGetters } from 'vuex'
 import QRCode from 'qrcodejs2'
 import QRCode from 'qrcodejs2'
 import PersonalPhoto from '@/components/public/personalPhoto/Index.vue'
 import PersonalPhoto from '@/components/public/personalPhoto/Index.vue'
-import E from '@/utils/wangEditor.js'
 import StudentList from '@/components/coursemgt/StudentList.vue'
 import StudentList from '@/components/coursemgt/StudentList.vue'
 import TeaTable from './TeaTable.vue'
 import TeaTable from './TeaTable.vue'
 export default {
 export default {
@@ -358,14 +326,11 @@ export default {
     data() {
     data() {
         // 验证只能是字母和数字
         // 验证只能是字母和数字
         const validateCode = (rule, value, callback) => {
         const validateCode = (rule, value, callback) => {
-            if (!value) {
-                return callback(new Error(this.$t('cusMgt.codeErr1')))
-            }
             let zg = /^[0-9a-zA-Z]+$/
             let zg = /^[0-9a-zA-Z]+$/
-            if (zg.test(value)) {
-                callback()
-            } else {
+            if (value && !zg.test(value)) {
                 callback(new Error(this.$t('cusMgt.codeErr2')))
                 callback(new Error(this.$t('cusMgt.codeErr2')))
+            } else {
+                callback()
             }
             }
         }
         }
         return {
         return {
@@ -378,10 +343,6 @@ export default {
             cusType: [],
             cusType: [],
             curPd: '',
             curPd: '',
             isShowSchd: false,
             isShowSchd: false,
-            // schoolBase: {
-            //     period: []
-            // },
-            // classList: [],
             split1: 0.2,
             split1: 0.2,
             split2: 0.2,
             split2: 0.2,
             acTypeList: [
             acTypeList: [
@@ -497,7 +458,6 @@ export default {
             editClassStatus: false,
             editClassStatus: false,
             baseEditStatus: true,
             baseEditStatus: true,
             showQrStatus: false,
             showQrStatus: false,
-            showCusInfo: false,
             listLoading: false,
             listLoading: false,
             newSlStatus: false,
             newSlStatus: false,
             stuLoading: false,
             stuLoading: false,
@@ -513,7 +473,8 @@ export default {
             addCusInfo: {
             addCusInfo: {
                 name: '',
                 name: '',
                 no: '',
                 no: '',
-                id: ''
+                id: '',
+                desc: ''
             },
             },
             listName: '',
             listName: '',
             ruleAddCus: {
             ruleAddCus: {
@@ -521,7 +482,7 @@ export default {
                     { required: true, message: this.$t('cusMgt.nameHolder'), trigger: 'change' }
                     { required: true, message: this.$t('cusMgt.nameHolder'), trigger: 'change' }
                 ],
                 ],
                 no: [
                 no: [
-                    { required: true, validator: validateCode, trigger: 'change' }
+                    { validator: validateCode, trigger: 'change' }
                 ]
                 ]
             },
             },
             stuList: []
             stuList: []
@@ -638,7 +599,7 @@ export default {
                                 try {
                                 try {
                                     let listRes = await this.getListInfo([...ids])
                                     let listRes = await this.getListInfo([...ids])
                                     if (listRes) {
                                     if (listRes) {
-                                        let already = this.stuList.map(item=>{
+                                        let already = this.stuList.map(item => {
                                             return item.id
                                             return item.id
                                         })
                                         })
                                         listRes.stuList.forEach(item => {
                                         listRes.stuList.forEach(item => {
@@ -997,47 +958,8 @@ export default {
             })
             })
         },
         },
         editCus() {
         editCus() {
-            this.toggleCusInfo()
-            this.edNotice()
-        },
-        toggleCusInfo() {
-            this.showCusInfo = !this.showCusInfo
-        },
-        edNotice() {
-            if (this.baseEditStatus) {
-                this.baseEditStatus = !this.baseEditStatus
-                this.initEditor()
-            } else {
-                this.updCusInfo()
-                this.baseEditStatus = !this.baseEditStatus
-            }
-        },
-
-        //初始化富文本编辑器
-        initEditor() {
-            if (!this.noticeEditor) {
-                let noticeEditor = new E(this.$refs.courseNotice)
-                noticeEditor.customConfig.onchange = (html) => {
-                    //TODO 设置课程公告
-                }
-                noticeEditor.customConfig.menus = [
-                    'bold', // 粗体
-                    'italic', // 斜体
-                    'underline', // 下划线
-                    'list', // 列表
-                    'link', // 插入链接
-                    'image' // 插入图片
-                ],
-                    noticeEditor.customConfig.showLinkImg = false
-                noticeEditor.customConfig.uploadFileName = 'files'
-                noticeEditor.create()
-                noticeEditor.txt.html(this.courseListShow[this.curCusIndex].notice)
-                this.noticeEditor = noticeEditor
-            } else {
-                let schoolNotice = this.courseListShow[this.curCusIndex][0].notice ? this.courseListShow[this.curCusIndex][0].notice : ''
-                this.noticeEditor.txt.html(this.listType == 'school' ? schoolNotice : this.courseListShow[this.curCusIndex].notice)
-            }
-
+            this.addCusInfo = this._.cloneDeep(this.courseListShow[this.curCusIndex])
+            this.addCusStatus = true
         },
         },
         //创建二维码
         //创建二维码
         createQRCode(url) {
         createQRCode(url) {
@@ -1310,36 +1232,65 @@ export default {
             this.$refs['addCusInfo'].validate((valid) => {
             this.$refs['addCusInfo'].validate((valid) => {
                 if (valid) {
                 if (valid) {
                     let requestData = {
                     let requestData = {
-                        option: 'insert',
+                        option: this.addCusInfo.id ? 'update' : 'insert',
                         scope: 'private',
                         scope: 'private',
                         course: {
                         course: {
                             name: this.addCusInfo.name,
                             name: this.addCusInfo.name,
                             no: this.addCusInfo.no,
                             no: this.addCusInfo.no,
-                            id: this.$tools.guid(),
+                            desc: this.addCusInfo.desc,
+                            id: this.addCusInfo.id || this.$tools.guid(),
                             code: this.$store.state.userInfo.TEAMModelId,
                             code: this.$store.state.userInfo.TEAMModelId,
-                            schedule: [],
+                            schedule: this.addCusInfo.schedule || [],
                             scope: 'private',
                             scope: 'private',
-                            // school: this.$store.state.userInfo.schoolCode,
                             creatorId: this.$store.state.userInfo.schoolCode
                             creatorId: this.$store.state.userInfo.schoolCode
                         }
                         }
                     }
                     }
                     this.$api.courseMgmt.saveOrUpdateCourse(requestData).then(
                     this.$api.courseMgmt.saveOrUpdateCourse(requestData).then(
                         (res) => {
                         (res) => {
-                            if (res.error == null) {
-                                this.$Message.success(this.$t('cusMgt.addOk'))
-                                // this.courseListP.push(requestData.course)
-                                this.courseList.push(requestData.course)
-                                this.courseListShow.push(requestData.course)
+                            if (!res.error) {
+                                this.$Message.success(this.addCusInfo.id ? this.$t('cusMgt.editOk') : this.$t('cusMgt.addOk'))
+                                //新增课程
+                                if (!this.addCusInfo.id) {
+                                    this.courseList.push(requestData.course)
+                                    this.courseListShow.push(requestData.course)
+                                }
+                                // 修改课程
+                                else {
+                                    let index = this.courseListShow.findIndex(item => {
+                                        return item.id == this.addCusInfo.id
+                                    })
+                                    if (index > -1) {
+                                        this.courseListShow.splice(index, 1, requestData.course)
+                                    }
+                                    let oraginIndex = this.courseList.findIndex(item => {
+                                        return item.id == this.addCusInfo.id
+                                    })
+                                    if (index > -1) {
+                                        this.courseList.splice(oraginIndex, 1, requestData.course)
+                                    }
+                                }
+                                this.addCusStatus = false
                             } else {
                             } else {
-                                this.$Message.success(this.$t('cusMgt.addErr'))
+                                this.$Message.error(this.addCusInfo.id ? this.$t('cusMgt.editErr') : this.$t('cusMgt.addErr'))
+                                this.modalLoading = false
+                                setTimeout(() => {
+                                    this.modalLoading = true
+                                }, 0)
                             }
                             }
                         },
                         },
                         (err) => {
                         (err) => {
-
+                            this.modalLoading = false
+                            setTimeout(() => {
+                                this.modalLoading = true
+                            }, 0)
                         }
                         }
                     )
                     )
                 } else {
                 } else {
                     this.$Message.error(this.$t('cusMgt.formTips'));
                     this.$Message.error(this.$t('cusMgt.formTips'));
+                    this.modalLoading = false
+                    setTimeout(() => {
+                        this.modalLoading = true
+                    }, 0)
                 }
                 }
             })
             })
         },
         },
@@ -1433,7 +1384,7 @@ export default {
                                 try {
                                 try {
                                     let listRes = await this.getListInfo([...ids])
                                     let listRes = await this.getListInfo([...ids])
                                     if (listRes) {
                                     if (listRes) {
-                                        let already = this.stuList.map(item=>{
+                                        let already = this.stuList.map(item => {
                                             return item.id
                                             return item.id
                                         })
                                         })
                                         listRes.stuList.forEach(item => {
                                         listRes.stuList.forEach(item => {

+ 4 - 0
TEAMModelOS/ClientApp/src/view/newcourse/NewCusMgt.vue

@@ -243,6 +243,9 @@
                 <FormItem :label="$t('cusMgt.cusCode')" prop="no">
                 <FormItem :label="$t('cusMgt.cusCode')" prop="no">
                     <Input v-model="courseBaseInfo.no" :placeholder="$t('cusMgt.codeHolder')"></Input>
                     <Input v-model="courseBaseInfo.no" :placeholder="$t('cusMgt.codeHolder')"></Input>
                 </FormItem>
                 </FormItem>
+                <FormItem :label="$t('cusMgt.cusDesc')" prop="desc">
+                    <Input v-model="courseBaseInfo.desc" type="textarea" :maxlength="200" show-word-limit :autosize="{ minRows: 4, maxRows: 6 }" :placeholder="$t('cusMgt.descHolder')" />
+                </FormItem>
                 <!-- <FormItem :label="$t('cusMgt.cusPd')" prop="period.id">
                 <!-- <FormItem :label="$t('cusMgt.cusPd')" prop="period.id">
                     <Select v-model="courseBaseInfo.period.id" :placeholder="$t('cusMgt.pdHolder')">
                     <Select v-model="courseBaseInfo.period.id" :placeholder="$t('cusMgt.pdHolder')">
                         <Option v-for="(item,index) in schoolBase.period" :value="item.id" :key="index" @click.native="courseBaseInfo.period = { id: item.id, name: item.name }">
                         <Option v-for="(item,index) in schoolBase.period" :value="item.id" :key="index" @click.native="courseBaseInfo.period = { id: item.id, name: item.name }">
@@ -465,6 +468,7 @@ export default {
                 id: '',
                 id: '',
                 no: '',
                 no: '',
                 name: '',
                 name: '',
+                desc:'',
                 period: {
                 period: {
                     id: '',
                     id: '',
                     name: ''
                     name: ''

+ 3 - 3
TEAMModelOS/ClientApp/src/view/teachermgmt/components/group/Group.less

@@ -10,7 +10,7 @@
     display: flex;
     display: flex;
     flex-wrap: wrap;
     flex-wrap: wrap;
 }
 }
-#add-group-box {
+#add-tea-group-box {
     height: 300px;
     height: 300px;
     width: 350px;
     width: 350px;
     background: #f6f6f6;
     background: #f6f6f6;
@@ -42,7 +42,7 @@
 .group-wrap-item {
 .group-wrap-item {
     width: 355px;
     width: 355px;
     border: 1px solid rgba(0, 0, 0, 0.08);
     border: 1px solid rgba(0, 0, 0, 0.08);
-    margin-right: 30px;
+    margin-right: 20px;
     margin-left: 20px;
     margin-left: 20px;
     margin-bottom: 30px;
     margin-bottom: 30px;
     transition: all 0.2s ease 0s;
     transition: all 0.2s ease 0s;
@@ -101,7 +101,7 @@
     color: #1e1f24;
     color: #1e1f24;
 }
 }
 .list-group{
 .list-group{
-    height: 360px;
+    height: 320px;
 }
 }
 .view-member {
 .view-member {
     color: #1cc0f3;
     color: #1cc0f3;

+ 28 - 5
TEAMModelOS/ClientApp/src/view/teachermgmt/components/group/Group.vue

@@ -21,8 +21,8 @@
                         </div>
                         </div>
                     </div>
                     </div>
                     <div class="list-group">
                     <div class="list-group">
-                        <vuescroll>
-                            <Draggable ghost-class="ghost" group="student" style="height:350px" :list="item.teachers" :animation='200' @end="moveToGroup">
+                        <vuescroll :ops="options">
+                            <Draggable ghost-class="ghost" group="student" style="height:320px" :list="item.teachers" :animation='200' @end="moveToGroup">
                                 <div class="student-info-item" v-for="(stuItem,index) in item.teachers" :key="index">
                                 <div class="student-info-item" v-for="(stuItem,index) in item.teachers" :key="index">
                                     <PersonalPhoto :name="stuItem.name" :picture="stuItem.picture"></PersonalPhoto>
                                     <PersonalPhoto :name="stuItem.name" :picture="stuItem.picture"></PersonalPhoto>
                                     <p class="teacher-name">{{`${stuItem.name}(${stuItem.id})`}}</p>
                                     <p class="teacher-name">{{`${stuItem.name}(${stuItem.id})`}}</p>
@@ -32,7 +32,7 @@
                         </vuescroll>
                         </vuescroll>
                     </div>
                     </div>
                 </div>
                 </div>
-                <div id="add-group-box">
+                <div id="add-tea-group-box">
                     <Input v-model="groupName" :placeholder="$t('cusMgt.groupNameHolder')" style="width: 245px;margin:40px 50px 30px 50px;" />
                     <Input v-model="groupName" :placeholder="$t('cusMgt.groupNameHolder')" style="width: 245px;margin:40px 50px 30px 50px;" />
                     <Icon type="md-add-circle" class="add-group-icon" @click="addGroup" />
                     <Icon type="md-add-circle" class="add-group-icon" @click="addGroup" />
                     <p class="add-group-label" @click="addGroup">{{$t('cusMgt.addGroup')}}</p>
                     <p class="add-group-label" @click="addGroup">{{$t('cusMgt.addGroup')}}</p>
@@ -58,6 +58,11 @@ export default {
     },
     },
     data() {
     data() {
         return {
         return {
+            options: {
+                bar: {
+                    opacity: 0.2
+                }
+            },
             selections: [],
             selections: [],
             addTeaStatus: false,
             addTeaStatus: false,
             groupName: "",
             groupName: "",
@@ -104,6 +109,21 @@ export default {
         }),
         }),
     },
     },
     methods: {
     methods: {
+        // 查询教研组
+        getResearchGroup() {
+            let params = {
+                code:this.$store.state.userInfo.schoolCode,
+                scope:'school'
+            }
+            this.$api.schoolUser.getResearchGroup(params).then(
+                res => {
+                    this.groupList = res.stuList
+                },
+                err => {
+                    this.$Message.error('教研组查询失败')
+                }
+            )
+        },
         //删除组别
         //删除组别
         delGroup(id) {
         delGroup(id) {
             let index = this.groupList.findIndex(item => {
             let index = this.groupList.findIndex(item => {
@@ -135,7 +155,7 @@ export default {
                     code: this.$store.state.userInfo.schoolCode,
                     code: this.$store.state.userInfo.schoolCode,
                     school: this.$store.state.userInfo.schoolCode,
                     school: this.$store.state.userInfo.schoolCode,
                     creatorId: this.$store.state.userInfo.TEAMModelId,
                     creatorId: this.$store.state.userInfo.TEAMModelId,
-                    type: 'teacher',
+                    type: 'research',
                     teachers: []
                     teachers: []
                 }
                 }
                 this.$api.courseMgmt.upsertStulist({
                 this.$api.courseMgmt.upsertStulist({
@@ -182,7 +202,7 @@ export default {
                 })
                 })
                 if (needUpd) {
                 if (needUpd) {
                     let data = this._.cloneDeep(curGroup)
                     let data = this._.cloneDeep(curGroup)
-                    data.teachers = data.teachers.map(item=>{
+                    data.teachers = data.teachers.map(item => {
                         return item.id
                         return item.id
                     })
                     })
                     this.$api.courseMgmt.upsertStulist({
                     this.$api.courseMgmt.upsertStulist({
@@ -203,6 +223,9 @@ export default {
         getSelectTeachers(selections) {
         getSelectTeachers(selections) {
             this.selections = selections
             this.selections = selections
         }
         }
+    },
+    created(){
+        this.getResearchGroup()
     }
     }
 }
 }
 </script>
 </script>