Bladeren bron

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

chenmy 3 jaren geleden
bovenliggende
commit
baf3c2d723

+ 4 - 0
TEAMModelOS/ClientApp/src/locale/lang/en-US/answerSheet.js

@@ -1,4 +1,8 @@
 export default {
+	sheetTip1:'答題卡製作註意事項',
+	sheetTip2:'1、主觀題作答區域編輯框可通過點擊下邊框拖拽快速調整高度。',
+	sheetTip3:'2、答題卡最多支持 7 頁,如您的內容超出,請進行相應調整,否則無法正常生成答題卡。',
+	sheetTip4:'答題卡最多支持 7 頁,請重新調整答題卡內容!',
 	printA4:'Print in A4',
 	printA3:'Print in A3',
 	singleColumn:'Single Column',

+ 4 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-CN/answerSheet.js

@@ -1,4 +1,8 @@
 export default {
+	sheetTip1:'答题卡制作注意事项',
+	sheetTip2:'1、主观题作答区域编辑框可通过点击下边框拖拽快速调整高度。',
+	sheetTip3:'2、答题卡最多支持 7 页,如您的内容超出,请进行相应调整,否则无法正常生成答题卡。',
+	sheetTip4:'答题卡最多支持 7 页,请重新调整答题卡内容!',
 	printA4:'打印A4规格',
 	printA3:'打印A3规格',
 	singleColumn:'单栏',

+ 4 - 0
TEAMModelOS/ClientApp/src/locale/lang/zh-TW/answerSheet.js

@@ -1,4 +1,8 @@
 export default {
+	sheetTip1:'答題卡製作註意事項',
+	sheetTip2:'1、主觀題作答區域編輯框可通過點擊下邊框拖拽快速調整高度。',
+	sheetTip3:'2、答題卡最多支持 7 頁,如您的內容超出,請進行相應調整,否則無法正常生成答題卡。',
+	sheetTip4:'答題卡最多支持 7 頁,請重新調整答題卡內容!',
 	printA4:'打印A4規格',
 	printA3:'打印A3規格',
 	singleColumn:'單欄',

+ 10 - 0
TEAMModelOS/ClientApp/src/store/module/answerSheet.js

@@ -23,6 +23,12 @@ import {
 	NUMBER_ITEM_ML
 } from '../../utils/sheetConfig'
 import $tools from '@/utils/public.js'
+import {
+	app
+} from '@/boot-app.js'
+import {
+	Message
+} from 'view-design'
 export default {
 	state: {
 		count: 0,
@@ -240,6 +246,10 @@ export default {
 			state.paperItem.item.splice(index, 1)
 		},
 		addPage(state, val) {
+			if(state.pages === 7){
+				Message.warning(app.$t('answerSheet.sheetTip4'))
+				return
+			}
 			let newContents = state.config.newContents
 			state.pages++
 			newContents.push({

+ 1 - 1
TEAMModelOS/ClientApp/src/utils/public.js

@@ -242,7 +242,6 @@ export default {
 	getSemesterTimeRange() {
 		let curServerTime = localStorage.getItem('serverTime') // 服务器时间
 		let curPeriod = store.state.user.curPeriod
-		let settingSemesters = curPeriod.semesters // 基础设置的学期数据
 		// 如果没有记录到服务器时间或者学期数据,则默认查全部
 		if (!curServerTime || !curPeriod || !curPeriod.semesterCount) {
 			return {
@@ -250,6 +249,7 @@ export default {
 				et: 0
 			}
 		} else {
+			let settingSemesters = curPeriod.semesters // 基础设置的学期数据
 			let settingRange = this.getSettingTermRange(settingSemesters) // 获取设置学期对应的月和日
 			let serverTimeArr = this.formatTime(curServerTime, 'MM-dd').split('-') // 获取当前服务器时间的月和日
 			let curSemeterIndex = settingSemesters.length > 1 ? this.getCurSemesterIndex(settingSemesters, settingRange,

+ 19 - 0
TEAMModelOS/ClientApp/src/view/evaluation/components/BaseExerciseList.vue

@@ -44,6 +44,11 @@
 							@click.stop="handleMoveDown(typeItem.list,index)">
 							<Icon type="md-arrow-down" />{{$t('evaluation.exerciseList.moveDown')}}
 						</div>
+						<!-- <div class="item-tools-t flex-row-center"
+							v-show="canFix"
+							@click.stop="handleAddExplain(item)">
+							<span>补充解析</span>
+						</div> -->
 					</div>
 					<div class="item-error-wrap" v-if="errorList.indexOf(item) > -1">
 						<span v-if="isNoAnswer(item)">{{$t('evaluation.exerciseList.noAnswerTip')}}</span>
@@ -270,6 +275,10 @@
 			:title="exersicesType[curEditType] + $t('evaluation.summaryText')" @on-visible-change="editModalChange" @on-ok="onConfirmChangeSummary">
 			<Input v-model="curSummary"/>
 		</Modal>
+		<!-- 补充解析和补救资源弹窗 -->
+		<Modal v-model="addExplainModal" class-name="ex-score-modal" width="600px" title="补充信息">
+			{{ currentExercise.id }}{{ currentExercise.explain }}
+		</Modal>
 	</div>
 </template>
 
@@ -292,10 +301,15 @@
 				type: Boolean,
 				default: false
 			},
+			canFix: {
+				type: Boolean,
+				default: false
+			},
 		},
 		data() {
 			let that = this
 			return {
+				addExplainModal:false,
 				editLoading:false,
 				curOrderTempIndex:0,
 				typeSummaryInfo:{},
@@ -572,6 +586,11 @@
 				}
 				console.log('试卷当前编辑的题目', item)
 			},
+			/* 点击添加解析和补救资源 */
+			handleAddExplain(item){
+				this.addExplainModal = true
+				this.currentExercise = item
+			},
 
 			/** 获取当前学校基础数据 */
 			getSchoolBaseInfo() {

+ 4 - 5
TEAMModelOS/ClientApp/src/view/evaluation/components/BaseImport.vue

@@ -112,13 +112,13 @@
 					url: '/download/template.xls',
 					fileName: 'template.xls'
 				}, {
-					url: '/download/IES5%E8%AF%95%E5%8D%B7%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF%E5%88%B6%E4%BD%9C%E8%AF%B4%E6%98%8E.pdf',
+					url: '/download/%E5%88%B6%E4%BD%9C%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3/IES5%E8%AF%95%E5%8D%B7%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF%E5%88%B6%E4%BD%9C%E8%AF%B4%E6%98%8E.pdf',
 					fileName: 'IES5试卷模板制作说明.pdf'
 				}, {
-					url: '/download/Instructions%20for%20making%20paper%20template.pdf',
+					url: '/download/%E5%88%B6%E4%BD%9C%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3/%E8%A9%A6%E5%8D%B7%E7%AF%84%E6%9C%AC%E8%A3%BD%E4%BD%9C%E8%A9%B3%E6%83%85%E8%AA%AA%E6%98%8ETW.pdf',
 					fileName: 'IES5試卷模板製作說明.pdf'
 				}, {
-					url: '/download/Instructions%20for%20making%20paper%20template.pdf',
+					url: '/download/%E5%88%B6%E4%BD%9C%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3/Instructions%20for%20Making%20Exam%20File%20with%20MS%20Word.pdf',
 					fileName: 'Instructions for making paper template.pdf'
 				}],
 				hostName: '',
@@ -128,8 +128,7 @@
 		created() {
 			this.uploadUrl = window.location.origin + '/import/parse-docx'
 			this.curLang = localStorage.getItem('local')
-			this.hostName = this.$store.state.privateSas ? this.$store.state.privateSas.url :
-				'https://teammodelstorage.blob.core.chinacloudapi.cn'
+			this.hostName = this.$evTools.getBlobHost()
 		},
 		methods: {
 

+ 12 - 8
TEAMModelOS/ClientApp/src/view/evaluation/index/TestPaper.vue

@@ -44,19 +44,19 @@
 							<Button class="base-info-btn" type="info" @click="goAnswerSheet"
 								v-show="paperInfo.item.length && paperInfo.id">{{ paper.sheet ?  $t('evaluation.paperList.reCreateSheet') : $t('evaluation.paperList.createSheet') }}</Button>
 						</div>
-						<div v-if="isExamPaper && !isPreviewItems">
+						<div v-if="isExamPaper && !isPreviewItems && paperInfo.item.length">
 							<Button class="base-info-btn" type="info" @click="onHandleToggle"
-								v-show="paperInfo.item.length && !isShowAnalysis">{{ isAllOpen ? $t('evaluation.index.collapseAll') : $t('evaluation.index.openAll')}}</Button>
+								v-show="!isShowAnalysis">{{ isAllOpen ? $t('evaluation.index.collapseAll') : $t('evaluation.index.openAll')}}</Button>
 							<Button class="base-info-btn" type="info" @click="onViewModelChange"
-								v-show="paperInfo.item.length && !isShowAnalysis">{{ `${ viewModel === 'type' ? this.$t('evaluation.paperList.orderByList') : this.$t('evaluation.paperList.orderByType') }` }}</Button>
+								v-show="!isShowAnalysis">{{ `${ viewModel === 'type' ? this.$t('evaluation.paperList.orderByList') : this.$t('evaluation.paperList.orderByType') }` }}</Button>
 							<Button class="base-info-btn" type="info" @click="isShowAnalysis = !isShowAnalysis"
-								v-show="paperInfo.item.length && !isHideAnalysis">{{ isShowAnalysis ? this.$t('evaluation.paperList.paperDetails') : this.$t('evaluation.paperList.paperAnalysis')}}</Button>
+								v-show="!isHideAnalysis">{{ isShowAnalysis ? this.$t('evaluation.paperList.paperDetails') : this.$t('evaluation.paperList.paperAnalysis')}}</Button>
 							<Button class="base-info-btn" type="info" @click="downloadSheet" :loading="downLoading"
-								v-show="paperInfo.item.length && paperInfo.id && paper.sheet && !hideSheet && !isSharePreview">{{ $t('evaluation.paperList.goAnswerSheet') }}</Button>
+								v-show="paperInfo.id && paper.sheet && !hideSheet && !isSharePreview">{{ $t('evaluation.paperList.goAnswerSheet') }}</Button>
 							<Button class="base-info-btn" type="info" @click="goAnswerSheet"
-								v-show="paperInfo.item.length && paperInfo.id && !hideSheet && !isSharePreview">{{ paper.sheet ?  $t('evaluation.paperList.reCreateSheet') : $t('evaluation.paperList.createSheet') }}</Button>
+								v-show="paperInfo.id && !hideSheet && !isSharePreview">{{ paper.sheet ?  $t('evaluation.paperList.reCreateSheet') : $t('evaluation.paperList.createSheet') }}</Button>
 							<Button class="base-info-btn" type="info" @click="exitPreview"
-								v-show="paperInfo.item.length && paperInfo.id && isSharePreview">{{ $t('evaluation.index.backList') }}</Button>
+								v-show="paperInfo.id && isSharePreview">{{ $t('evaluation.index.backList') }}</Button>
 						</div>
 					</div>
 					<!-- 试卷头部信息 -->
@@ -68,7 +68,7 @@
 					</ExamPaperAnalysis>
 					<!-- 题目类型及列表 -->
 					<BaseExerciseList :paper="paperInfo" @dataUpdate="onListUpdate" v-show="!isShowAnalysis"
-						ref="exList" :isShowTools="!isPreview" :isExamPaper="isExamPaper || isPreviewItems" @toggleChange="onToggleChange"
+						ref="exList" :isShowTools="!isPreview" :canFix="canFix" :isExamPaper="isExamPaper || isPreviewItems" @toggleChange="onToggleChange"
 						@scoreUpdate="scoreUpdate"></BaseExerciseList>
 				</div>
 			</div>
@@ -159,6 +159,10 @@
 				type: Boolean,
 				default: false
 			},
+			canFix: {
+				type: Boolean,
+				default: false
+			},
 		},
 		data() {
 			return {

+ 1 - 1
TEAMModelOS/ClientApp/src/view/learnactivity/CreateSchoolEva.vue

@@ -114,7 +114,7 @@
                                 </div> -->
                                 <BackToTop @on-to-top="handleBackToTop"></BackToTop>
                                 <vuescroll ref="paper-preview" @handle-scroll="checkBackTop">
-                                    <TestPaper v-if="activeTab == 'preview' && evaluationInfo.paperInfo[curSubIndex] && evaluationInfo.paperInfo[curSubIndex].item.length" :paper="evaluationInfo.paperInfo[curSubIndex]" isExamPaper hideSheet></TestPaper>
+                                    <TestPaper v-if="activeTab == 'preview' && evaluationInfo.paperInfo[curSubIndex] && evaluationInfo.paperInfo[curSubIndex].item.length" :paper="evaluationInfo.paperInfo[curSubIndex]" isExamPaper hideSheet canFix></TestPaper>
                                     <div v-else class="no-paper-tip">
                                         <EmptyData :textContent="$t('learnActivity.createEv.defaultPaper')" :top="0" style="padding-top:120px"></EmptyData>
                                     </div>

+ 1 - 1
TEAMModelOS/ClientApp/src/view/learnactivity/MgtPrivEva.vue

@@ -65,7 +65,7 @@
                     <div class="test-paper-detail" style="margin-top:5px;">
                         <vuescroll ref="test-paper-detail" @handle-scroll="checkBackTop">
                             <!--试卷题目信息-->
-                            <TestPaper v-if="evaListShow[curEvaIndex] && evaListShow[curEvaIndex].papers && evaListShow[curEvaIndex].papers[curSubIndex] && evaListShow[curEvaIndex].papers[curSubIndex].item" :paper="evaListShow[curEvaIndex].papers[curSubIndex]" style="color:#515a6e;margin-top:-30px;" :isShowTools="false" isExamPaper :examId="evaListShow[curEvaIndex].id"></TestPaper>
+                            <TestPaper v-if="evaListShow[curEvaIndex] && evaListShow[curEvaIndex].papers && evaListShow[curEvaIndex].papers[curSubIndex] && evaListShow[curEvaIndex].papers[curSubIndex].item" :paper="evaListShow[curEvaIndex].papers[curSubIndex]" style="color:#515a6e;margin-top:-30px;" :isShowTools="false" isExamPaper canFix :examId="evaListShow[curEvaIndex].id"></TestPaper>
                             <EmptyData v-else style="height:450px"></EmptyData>
                             <!--返回顶部-->
                             <!-- <div class="back-to-top fl-col-center" :title="$t('learnActivity.mgtScEv.returnTop')" v-if="showBack" @click="handleBackToTop">

+ 1 - 1
TEAMModelOS/ClientApp/src/view/learnactivity/MgtSchoolEva.vue

@@ -117,7 +117,7 @@
                     <div class="test-paper-detail">
                         <vuescroll ref="test-paper-detail" @handle-scroll="checkBackTop">
                             <!--试卷题目信息-->
-                            <TestPaper v-if="evaListShow[curEvaIndex] && evaListShow[curEvaIndex].papers && evaListShow[curEvaIndex].papers[curSubIndex] && evaListShow[curEvaIndex].papers[curSubIndex].item" :paper="evaListShow[curEvaIndex].papers[curSubIndex]" style="color:#515a6e;margin-top:-30px;" :isShowTools="false" isExamPaper :examId="evaListShow[curEvaIndex].id"></TestPaper>
+                            <TestPaper v-if="evaListShow[curEvaIndex] && evaListShow[curEvaIndex].papers && evaListShow[curEvaIndex].papers[curSubIndex] && evaListShow[curEvaIndex].papers[curSubIndex].item" :paper="evaListShow[curEvaIndex].papers[curSubIndex]" style="color:#515a6e;margin-top:-30px;" :isShowTools="false" isExamPaper :examId="evaListShow[curEvaIndex].id" canFix></TestPaper>
                             <EmptyData v-else style="margin-top:60px;"></EmptyData>
                             <!--返回顶部-->
                             <!-- <div class="back-to-top fl-col-center" :title="$t('learnActivity.mgtScEv.returnTop')" v-if="showBack" @click="handleBackToTop">

+ 30 - 1
TEAMModelOS/ClientApp/src/view/newsheet/index.vue

@@ -5,6 +5,7 @@
 			 <div>{{ $t('answerSheet.loading') }}</div>
 		</Spin> -->
 		<!-- <Loading v-if="isLoading"></Loading> -->
+
 		<div class="sheet-left">
 			<div :class="['sheet-container',isLoading ? 'noEvent' : '']" id="pdfDom" v-if="isRender">
 				<!-- <router-view  v-if="isRouterAlive"/> -->
@@ -58,8 +59,14 @@
 					<span class="add-block-item" @click="onAddType('4')"> + {{ $t('answerSheet.compositionEn') }}</span>
 				</div>
 			</div>
+		
+			<div class="sheet-tip">
+				<p class="sheet-tip-title">{{ $t('answerSheet.sheetTip1') }}</p>
+				<p class="sheet-tip-item">{{ $t('answerSheet.sheetTip2') }}</p>
+				<p class="sheet-tip-item">{{ $t('answerSheet.sheetTip3') }}</p>
+			</div>
 		</div>
-
+		
 		<Modal v-model="isShowAdd" class-name="add-type-modal" width="650" :title="$t('answerSheet.addType')">
 			<Tabs :value="activeTab" @on-click="onTabClick">
 				<TabPane :label="$t('answerSheet.objective')" name="0"></TabPane>
@@ -231,6 +238,9 @@
 		created() {
 			let routerPaper = this.$route.params.paper || this.paper
 			console.log('答题卡路由数据:', routerPaper)
+			if(!routerPaper){
+				this.goBack()
+			}
 			this.sheetId = routerPaper.sheetNo || null
 			this.curPaper = routerPaper
 			this.isFromExam = Boolean(routerPaper && routerPaper.examId)
@@ -806,6 +816,8 @@
 		justify-content: space-between;
 		position: relative;
 		width: 100%;
+		
+		
 
 		.ivu-spin {
 			background-color: #ffffffd1 !important;
@@ -898,6 +910,23 @@
 		right: 0;
 		height: 100%;
 		padding: 70px 20px 20px 20px;
+		
+		.sheet-tip{
+			position: absolute;
+			bottom: 20px;
+			width: 80%;
+			color: #ff0206;
+			&-title{
+				font-size: 16px;
+				font-weight: bold;
+				border-bottom: 2px solid #FF0000;
+				display:inline-block;
+			}
+			
+			&-item{
+				margin: 10px 0;
+			}
+		}
 
 		.ivu-btn {
 			width: 100%;