OnePsycho 1 год назад
Родитель
Сommit
decff3ab3e

+ 9 - 1
TEAMModelOS/ClientApp/public/lang/en-US.js

@@ -869,6 +869,14 @@ const LANG_EN_US = {
         tips1: 'Modify Information'
     },
     newCusMgt: {
+        irs: {
+            batchSetting: 'Batch setting seat number (IRS number)',
+            batchText: 'Batch modification',
+            cancel: 'Cancel batch settings',
+            repeatTip: 'These seat numbers (IRS numbers) are duplicated, please check and try again:',
+            allowPick: 'Allow self-selected seat number',
+            pickTip: 'If the seat number you selected is already occupied, it will be automatically assigned by the system'
+        },
         configCourse: 'Assigned courses this semester',
         recommendFiles: 'Lesson Backup data',
         sort: 'Sort by',
@@ -3796,7 +3804,7 @@ const LANG_EN_US = {
         scType1: 'K–12',
         scType2: 'Higher Education Institutions (HEIs)',
         openLessonRecord: 'Lesson Record Management',
-        getLoginUrl:'Student Login Portal',
+        getLoginUrl: 'Student Login Portal',
         goNormalLogin: 'Switch to Standard Login Page',
         proSetting: 'Professional Subject',
         curSemSta: 'Current Status:',

+ 9 - 1
TEAMModelOS/ClientApp/public/lang/zh-CN.js

@@ -869,6 +869,14 @@ const LANG_ZH_CN = {
         tips1: '修改信息'
     },
     newCusMgt: {
+        irs:{
+            batchSetting:'批量设置IRS',
+            batchText:'批量修改',
+            cancel:'取消批量',
+            repeatTip:'这些IRS号码存在重复,请检查后再尝试:',
+            allowPick:'允许自选座号',
+            pickTip:'如果您自选的IRS座号已被占用,会由系统自动分配新的IRS编号'
+        },
         configCourse: '本学期已配置课程',
         recommendFiles: '课程备用资料',
         sort: '排序方式',
@@ -1348,7 +1356,7 @@ const LANG_ZH_CN = {
         //MgtStuList.vue
         nameList: '名单',
         remvStu: '移除学生',
-        editStu: '置IRS',
+        editStu: '置IRS',
         goBack: '返回上级',
         delListTitle: '删除自定义名单',
         notSet: '未设置',

+ 8 - 0
TEAMModelOS/ClientApp/public/lang/zh-TW.js

@@ -869,6 +869,14 @@ const LANG_ZH_TW = {
         tips1: '修改資訊'
     },
     newCusMgt: {
+        irs: {
+            batchSetting: '批次設定座號(IRS號碼)',
+            batchText: '批次修改',
+            cancel: '取消批次設定',
+            repeatTip: '這些座號(IRS號碼)有重複,請檢查後再嘗試:',
+            allowPick: '允許自選座號',
+            pickTip: '如果您自選的座號已被佔用,會由系統自動分配'
+        },
         configCourse: '本學期已配置課程',
         recommendFiles: '課程備用數據',
         sort: '排序方式',

Разница между файлами не показана из-за своего большого размера
+ 1734 - 1698
TEAMModelOS/ClientApp/src/view/areaMgmt/AreaIndex.vue


+ 2 - 2
TEAMModelOS/ClientApp/src/view/joinclass/JoinClass.vue

@@ -49,12 +49,12 @@
 					</span>
 				</p>
 				<p class="info-item" v-if="allowPick && !isJoin && !isRep">
-					<span class="info-lable"> 座号: </span>
+					<span class="info-lable"> {{ $t('cusMgt.stuClassCol3') }}: </span>
 					<Select v-model="pickIRS" style="width: 80px">
 						<Option v-for="item in irsArr" :value="item" :key="item">{{ item }}</Option>
 					</Select>
 				</p>
-				<p class="tips" v-if="allowPick && !isJoin && !isRep" style="margin-top: 20px; font-size: 12px">* 如果您自选的IRS座号已被占用,会由系统自动分配新的IRS编号</p>
+				<p class="tips" v-if="allowPick && !isJoin && !isRep" style="margin-top: 20px; font-size: 12px">* {{ $t('newCusMgt.irs.pickTip') }}</p>
 				<router-link v-show="(isJoin || isRep) && isPC" :to="{ name: 'login', query: { code, identity: 'student' } }" style="margin-top: 50px; display: block">{{ $t("cusMgt.join.toTeammodel") }}</router-link>
 			</div>
 

+ 1 - 1
TEAMModelOS/ClientApp/src/view/mycourse/MyCourse.vue

@@ -149,7 +149,7 @@
 				<p style="display: flex;justify-content:space-between;margin:15px 0">
 					<span>
 						<!-- {{ $t('newCusMgt.agreePickIRS') }} -->
-						允许自选座号
+						{{ $t('newCusMgt.irs.allowPick') }}
 						<i-switch v-model="agreePick" size="small" @on-change="agreePickIRS" />
 					</span>
 				</p>

+ 57 - 2
TEAMModelOS/ClientApp/src/view/mycourse/student/Student.vue

@@ -1,6 +1,8 @@
 <template>
     <div class="cus-student-contianer">
         <div class="stu-action-wrap common-save-btn">
+            <Button style="color: red;" @click="isBatchIRS = false" v-if="isBatchIRS">{{ $t('newCusMgt.irs.batchText') }}</Button>
+            <Button style="margin: 0 20px;" @click="confirmBatchIRS" v-if="isBatchIRS">{{ $t('newCusMgt.irs.cancel') }}</Button>
             <Dropdown style="margin-top:5px;margin-right:8px">
                 <a href="javascript:void(0)">
                     {{$t('cusMgt.moreFn')}}
@@ -31,6 +33,12 @@
                             {{$t('cusMgt.editStu')}}
                         </span>
                     </DropdownItem>
+                    <DropdownItem @click.native="clickBatchIRS" v-if="basicStuList && basicStuList.scope == 'private'" class="action-item">
+                        <span>
+                            <Icon type="md-settings" size="16" />
+                            {{ $t('newCusMgt.irs.batchSetting') }}
+                        </span>
+                    </DropdownItem>
                     <DropdownItem @click.native="addStuStatus = true" v-if="basicStuList && basicStuList.scope == 'private'" v-show="$store.state.userInfo.hasSchool">
                         <span class="action-item">
                             <Icon type="md-add" size="16" />
@@ -76,8 +84,9 @@
                     <span>{{row.type === 2 ? $t('cusMgt.schoolType') : $t('cusMgt.tmIDType')}}</span>
                 </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>
+                    <span v-show="editIndex !== index && !isBatchIRS" :style="{color:row.irs ? '#303030':'red'}">{{row.irs || $t('cusMgt.notSet')}}</span>
                     <InputNumber :min="1" v-model="editIrs" v-show="editIndex == index" style="width: 60px;"></InputNumber>
+                    <InputNumber :min="1" v-model="oldIRSArr[index]" v-if="isBatchIRS" style="width: 60px;"></InputNumber>
                     <Icon type="md-checkmark" v-show="editIndex == index" @click="confirmSetNo(row,index)" class="reset-no-btn" />
                     <Icon type="md-close" v-show="editIndex == index" @click="cancelSetInfo()" class="reset-no-btn" />
                 </template>
@@ -183,6 +192,7 @@ export default {
     },
     data() {
         return {
+            isBatchIRS:false,
             btnLoading: false,
             pdfLoading: false,
             setIrsStatus: false,
@@ -350,6 +360,7 @@ export default {
             processList: [],
             agreeList: [],
             processListSel: [],
+            oldIRSArr:[]
         }
     },
     computed: {
@@ -371,6 +382,49 @@ export default {
         }
     },
     methods: {
+        clickBatchIRS(){
+            this.isBatchIRS = true
+            this.oldIRSArr = this.basicStuList.members.map(item=>+item.irs)
+        },
+        confirmBatchIRS(){
+            console.error(this.oldIRSArr)
+            console.error(this.basicStuList)
+            let repeatArr = []
+            this.oldIRSArr.forEach((item,index)=>{
+                // 判断oldIRSArr数组里面是否存在除自身以外的重复元素
+                if(this.oldIRSArr.filter(i => i === item).length > 1){
+                    repeatArr.push(item)
+                }else{
+                    this.basicStuList.members[index].irs = item
+                }
+            })
+            if(repeatArr.length){
+                this.$Message.warning(`${this.$t('newCusMgt.irs.repeatTip')}: ${[...new Set(repeatArr)].join(',')}`)
+            }else{
+                this.basicStuList.members.forEach((i,index) => {
+                    i.irs = this.oldIRSArr[index] + ''
+                })
+                this.$api.common.upsertGroupInfo(this.basicStuList).then(
+                    res => {
+                        this.$Message.success(this.$t('cusMgt.listSaveOk'))
+                        //TODO 更新父组件数据
+                        this.$emit('on-update-students', {
+                            stuListId: this.basicStuList.id,
+                            students: this._.cloneDeep(this.basicStuList.members)
+                        })
+                        this.setIrsStatus = false
+                        this.isBatchIRS = false
+                    },
+                    err => {
+                        this.$Message.error(this.$t('cusMgt.listSaveErr'))
+                    }
+                ).finally(() => {
+                    this.btnLoading = false
+                })
+            }
+            console.error(repeatArr)
+            console.error(this.basicStuList.members.map(i => +i.irs))
+        },
         setStuInfo(row, index) {
             this.editIrs = parseInt(row.irs || 1)
             this.editIndex = index
@@ -770,6 +824,7 @@ export default {
             immediate: true,
             handler(n, o) {
                 console.log('班级信息:', n)
+                this.isBatchIRS = false
             }
         }
     }
@@ -780,7 +835,7 @@ export default {
 </style>
 <style lang="less">
 .cus-student-contianer .common-save-btn .ivu-btn {
-    color: #515a6e !important;
+    // color: #515a6e !important;
     padding: 0px 5px !important;
 }
 </style>