浏览代码

Merge branch 'develop6.0-tmd' of http://52.130.252.100:10000/TEAMMODEL/TEAMModelOS into develop6.0-tmd

CrazyIter_Bin 3 年之前
父节点
当前提交
6f5e5ec310

+ 1 - 0
TEAMModelOS/ClientApp/src/view/areatrain/Create.vue

@@ -850,6 +850,7 @@ export default {
     created() {
         if (localStorage.getItem('auth_token')) {
             this.updHeader['x-auth-authtoken'] = localStorage.getItem('auth_token')
+            this.updHeader['authorization'] = 'Bearer ' + localStorage.getItem('access_token')
         } else {
             this.$Message.error(this.$t('login.loginErr'))
             this.$router.push({

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

@@ -66,7 +66,7 @@ import jwtDecode from 'jwt-decode'
 export default {
     data() {
         return {
-            isRep: true,
+            isRep: false,
             isPC: false,
             isLogin: false,
             isJoin: false,

+ 3 - 2
TEAMModelOS/ClientApp/src/view/newcourse/NewCusMgt.vue

@@ -34,7 +34,7 @@
                     <vuescroll>
                         <div v-for="(item,index) in courseListShow" :key="index" @click="selectCus(index)" :class="['block-bg','cus-item',curCusIndex == index ? 'block-bg-active':'']">
                             <p class="cus-name">
-                                <span class="cus-id">
+                                <span class="cus-id" v-show="item.no">
                                     {{item.no}}
                                 </span>
                                 {{item.name}}
@@ -199,7 +199,7 @@
                             <div class="add-tea-header">
                                 <div class="teacher-filter-wrap">
                                     <Cascader :data="subjectData" v-model="subjectSlt" @on-change="filterTeacher" :placeholder="$t('teachermgmt.subjectFilter')" style="width:200px;margin-right:15px"></Cascader>
-                                    <Input search :placeholder="$t('teachermgmt.search')" v-model="keyword" @on-search="filterTeacher(subjectSlt)" style="width: 180px;" />
+                                    <Input search :placeholder="$t('teachermgmt.search')" v-model="keyword" @on-search="filterTeacher(subjectSlt)" @on-change="filterTeacher(subjectSlt)" style="width: 180px;" />
                                 </div>
                                 <div class="action-btn-wrap">
                                     <span class="action-btn" style="margin-right:40px" @click="confirmAddTea">
@@ -278,6 +278,7 @@ export default {
             let allNo = data.map(item => {
                 return item.no
             })
+            allNo = allNo.filter(item => !!item)
             if (allNo.includes(value)) {
                 callback(new Error(this.$t('cusMgt.cusNoRepeat')))
             }

+ 1 - 0
TEAMModelOS/ClientApp/src/view/schoolmgmt/SystemSetting/SystemSetting.vue

@@ -1426,6 +1426,7 @@ export default {
     created() {
         if (localStorage.getItem('auth_token')) {
             this.updHeader['x-auth-authtoken'] = localStorage.getItem('auth_token')
+            this.updHeader['authorization'] = 'Bearer ' + localStorage.getItem('access_token')
         } else {
             this.$Message.error(this.$t('login.loginErr'))
             this.$router.push({

+ 3 - 2
TEAMModelOS/ClientApp/src/view/syllabus/Syllabus.vue

@@ -70,10 +70,11 @@
 										<Tooltip placement="bottom" style="white-space: normal;" transfer>
 											<span>{{ $t('syllabus.authorsTitle') }} {{ volume.auth.length }} </span>
 											<!-- <Icon type="md-information-circle" color="#9e9e9e" /> -->
-											<div slot="content">
+											<div slot="content" style="max-height: 600px;display: flex;flex-wrap: wrap;">
 												<p v-if="!volume.auth.length">{{ $t('syllabus.noAuth') }}</p>
-												<p v-else v-for="item in volume.auth" :key="item.tmdid">
+												<p v-else v-for="(item,index) in volume.auth" :key="item.tmdid">
 													{{ item.tmdname }}
+													<span v-if="index !== volume.auth.length - 1">、</span>
 												</p>
 											</div>
 										</Tooltip>

+ 1 - 0
TEAMModelOS/ClientApp/src/view/train/Create.vue

@@ -1013,6 +1013,7 @@ export default {
         this.defImg = require("@/assets/image/def-train-poster.jpg")
         if (localStorage.getItem('auth_token')) {
             this.updHeader['x-auth-authtoken'] = localStorage.getItem('auth_token')
+            this.updHeader['authorization'] = 'Bearer ' + localStorage.getItem('access_token')
         } else {
             this.$Message.error(this.$t('login.loginErr'))
             this.$router.push({

+ 12 - 3
TEAMModelOS/ClientApp/src/view/train/PhoneSign.vue

@@ -9,6 +9,7 @@
 			<p class="course-name">{{topic || $t('cusMgt.join.errorInfo')}}</p>
 			<Input v-model="phoneNum" prefix="ios-phone-portrait" type="tel" placeholder="输入手机号"
 				style="width: 300px;margin-top: 20px;height: 40px;" />
+			<p style="color: #F06431;" v-if="notFound">未查询到对应账号!请检查后重试!</p>	
 			<div style="width:fit-content;margin: auto;">
 				<!-- <p class="info-item">
                     <span class="info-lable">
@@ -35,9 +36,10 @@
                     </span>
                 </p> -->
 			</div>
-			<div class="join-btn" @click="signIn()">
+<!-- 			<div class="join-btn" @click="signIn()">
 				{{$t('train.detail.signNow')}}
-			</div>
+			</div> -->
+			<Button type="success" :loading="btnLoading" class="join-btn" @click="signIn()">{{$t('train.detail.signNow')}}</Button>
 		</div>
 		<div v-show="isSign" class="join-main-box">
 			<p class="join-title">
@@ -64,6 +66,8 @@
 	export default {
 		data() {
 			return {
+				btnLoading:false,
+				notFound:false,
 				phoneNum: '',
 				isOpen: false,
 				isSign: false,
@@ -80,10 +84,12 @@
 		},
 		methods: {
 			signIn() {
+				this.notFound = false
 				if (!this.phoneNum.trim() || !this.isTel(this.phoneNum)) {
 					this.$Message.warning('请输入正确手机号!')
 					return
 				}
+				this.btnLoading = true
 				let params = {
 					id: this.id,
 					code: this.school,
@@ -93,14 +99,17 @@
 				this.$api.train.signIn(params).then(
 					res => {
 						if(res.code === 404){
-							this.$Message.warning('未查询到对应账号!请检查后重试!')
+							this.notFound = true
+							this.btnLoading = false
 						}else{
 							this.$Message.success('签到成功')
 							this.isSign = true
+							this.btnLoading = false
 						}
 					},
 					err => {
 						this.$Message.error('签到失败')
+						this.btnLoading = false
 					}
 				)
 			},

+ 14 - 8
TEAMModelOS/ClientApp/src/view/train/TrainDetail.vue

@@ -208,6 +208,7 @@
                     </div>
                 </div>
                 <div class="detail-right">
+                    <!-- 签到二维码 -->
                     <Card style="width:100%" :bordered="false" v-if="trainInfo.settings.includes('sign')">
                         <p slot="title">
                             <Icon type="ios-film-outline" color="#40A8F0"></Icon>
@@ -232,6 +233,7 @@
                             </div>
                         </div>
                     </Card>
+                    <!-- 签到统计 -->
                     <Card style="width:100%;margin-top:30px" :bordered="false" v-if="trainInfo.settings.includes('sign')">
                         <p slot="title">
                             <Icon type="ios-film-outline" color="#40A8F0"></Icon>
@@ -267,7 +269,7 @@
                                     </span>
                                 </p>
                             </div>
-                            <i-circle :percent="80" stroke-color="#19be6b" :size="100">
+                            <i-circle :percent="signData.rate" stroke-color="#19be6b" :size="100">
                                 <p style="font-size:30px;">{{signData.rate}}%</p>
                                 <p style="font-size:12px;margin-top:10px">
                                     {{$t('train.detail.signRate')}}
@@ -275,6 +277,7 @@
                             </i-circle>
                         </div>
                     </Card>
+                    <!-- 作业统计数 -->
                     <Card style="width:100%;margin-top:30px" :bordered="false" v-if="trainInfo.settings.includes('hw')">
                         <p slot="title">
                             <Icon type="ios-film-outline" color="#40A8F0"></Icon>
@@ -301,12 +304,13 @@
                                     </span>
                                 </p>
                             </div>
-                            <i-circle :percent="80" stroke-color="#ff9900" :size="100">
+                            <i-circle :percent="hwData.rate" stroke-color="#ff9900" :size="100">
                                 <p style="font-size:30px;">{{hwData.rate}}%</p>
                                 <p style="font-size:12px;margin-top:10px">{{$t('train.detail.sunmitRate')}}</p>
                             </i-circle>
                         </div>
                     </Card>
+                    <!-- 问卷统计数据 -->
                     <Card style="width:100%;margin-top:30px" :bordered="false" v-if="trainInfo.settings.includes('survey')">
                         <p slot="title">
                             <Icon type="ios-film-outline" color="#40A8F0"></Icon>
@@ -333,12 +337,13 @@
                                     </span>
                                 </p>
                             </div>
-                            <i-circle :percent="80" stroke-color="#ff9900" :size="100">
+                            <i-circle :percent="surveyData.rate" stroke-color="#ff9900" :size="100">
                                 <p style="font-size:30px;">{{surveyData.rate}}%</p>
                                 <p style="font-size:12px;margin-top:10px">{{$t('train.detail.sunmitRate')}}</p>
                             </i-circle>
                         </div>
                     </Card>
+                    <!-- 评测统计数据 -->
                     <Card style="width:100%;margin-top:30px" :bordered="false" v-if="trainInfo.settings.includes('exam')">
                         <p slot="title">
                             <Icon type="ios-film-outline" color="#40A8F0"></Icon>
@@ -365,12 +370,13 @@
                                     </span>
                                 </p>
                             </div>
-                            <i-circle :percent="80" stroke-color="#ff9900" :size="100">
+                            <i-circle :percent="examData.rate" stroke-color="#ff9900" :size="100">
                                 <p style="font-size:30px;">{{examData.rate}}%</p>
                                 <p style="font-size:12px;margin-top:10px">{{$t('train.detail.sunmitRate')}}</p>
                             </i-circle>
                         </div>
                     </Card>
+                    <!-- 学时统计数据 -->
                     <Card style="width:100%;margin-top:30px" :bordered="false" v-if="trainInfo.owner === 'school'">
                         <p slot="title">
                             <Icon type="ios-film-outline" color="#40A8F0"></Icon>
@@ -406,8 +412,8 @@
                                     </span>
                                 </p>
                             </div>
-                            <i-circle :percent="80" :size="100">
-                                <p style="font-size:30px;">{{hourData.rate}}%</p>
+                            <i-circle :percent="hourData.rate" :size="100">
+                                <p style="font-size:30px;">{{hourData.rate || 0}}%</p>
                                 <p style="font-size:12px;margin-top:10px">{{$t('train.detail.passRate')}}</p>
                             </i-circle>
                         </div>
@@ -771,7 +777,7 @@ export default {
                 return item.status == 2
             }).length
             data.uncheck = data.all - data.pass - data.fail
-            data.rate = (data.pass * 100 / data.all).toFixed(1)
+            data.rate = data.all ? (data.pass * 100 / data.all).toFixed(1) : 0
             return data
         },
         surveyData() {
@@ -1344,7 +1350,7 @@ export default {
             // let accUrl = process.env.NODE_ENV == 'development' ? 'https://account-rc.teammodel.cn' : 'https://account.teammodel.cn'
             // let accUrl = 'https://account.teammodel.cn'
             // let loginUrl = `${accUrl}?response_type=code&client_id=${clientId}&state=${state}&nonce=${nonce}&redirect_uri=${url}`
-			//window.open(url)
+			// window.open(url)
             return url
         },
         fullQRcode() {

+ 1 - 0
TEAMModelOS/ClientApp/src/view/user/UserCenter.vue

@@ -209,6 +209,7 @@ export default {
     created() {
         if (localStorage.getItem('auth_token')) {
             this.updHeader['x-auth-authtoken'] = localStorage.getItem('auth_token')
+            this.updHeader['authorization'] = 'Bearer ' + localStorage.getItem('access_token')
         } else {
             this.$Message.error(this.$t('login.loginErr'))
             this.$router.push({