Quellcode durchsuchen

Merge branch 'master' of http://60.205.254.193:3000/GCLS/GCLS_Page_Exercise

dusenyao vor 1 Jahr
Ursprung
Commit
510677c776

+ 19 - 4
src/views/exercise_questions/create/components/exercises/ChineseQuestion.vue

@@ -31,15 +31,19 @@
               class="question-number"
               @dblclick="changeOptionType(data)"
               v-if="data.property.learn_type === 'dictation'"
+              title="双击切换序号类型"
             >
-              {{ computedQuestionNumber(i, data.option_number_show_mode) }}.
+              {{ computedQuestionNumber(i, data.option_number_show_mode) }}
             </span>
             <el-input
               v-model="item.content"
               :maxlength="data.property.learn_type === 'dictation' ? null : 1"
               :placeholder="data.property.learn_type === 'dictation' ? '输入汉字或词汇' : '输入一个汉字'"
             />
-            <el-input v-model="item.pinyin" placeholder="输入拼音" />
+            <el-input
+              v-model="item.pinyin"
+              :placeholder="data.property.learn_type === 'dictation' ? '拼音间用空格隔开' : '输入拼音'"
+            />
             <UploadAudio
               v-if="data.other.audio_generation_method === 'upload'"
               :key="item.audio_file_id || i"
@@ -121,7 +125,11 @@
           </el-radio>
         </el-form-item>
         <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
+          <el-input-number
+            v-model="data.property.score"
+            :min="0"
+            :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
+          />
         </el-form-item>
         <el-form-item label="类型">
           <el-radio
@@ -135,7 +143,11 @@
           </el-radio>
         </el-form-item>
         <el-form-item label="田字格数" v-if="data.property.learn_type !== 'dictation'">
-          <el-input v-model="data.property.tian_number" type="number" />
+          <el-input
+            v-model="data.property.tian_number"
+            type="number"
+            @blur="data.property.tian_number = handleInputNumber(data.property.tian_number)"
+          />
         </el-form-item>
         <el-form-item label="音频">
           <el-radio
@@ -157,6 +169,7 @@ import QuestionMixin from '../common/QuestionMixin.js';
 import UploadAudio from '../common/UploadAudio.vue';
 import SoundRecord from '../common/SoundRecord.vue';
 import { GetStaticResources } from '@/api/app';
+import { changeOptionType, handleInputNumber } from '@/views/exercise_questions/data/common';
 
 import {
   chineseData,
@@ -177,6 +190,8 @@ export default {
       learnTypeList,
       audioGenerationMethodList,
       data: JSON.parse(JSON.stringify(chineseData)),
+      changeOptionType,
+      handleInputNumber,
     };
   },
   methods: {

+ 5 - 1
src/views/exercise_questions/create/components/exercises/ChooseToneQuestion.vue

@@ -103,7 +103,11 @@
           </el-radio>
         </el-form-item>
         <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
+          <el-input-number
+            v-model="data.property.score"
+            :min="0"
+            :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
+          />
         </el-form-item>
         <el-form-item label="类型">
           <el-radio

+ 5 - 1
src/views/exercise_questions/create/components/exercises/DialogueQuestion.vue

@@ -83,7 +83,11 @@
           </el-radio>
         </el-form-item>
         <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
+          <el-input-number
+            v-model="data.property.score"
+            :min="0"
+            :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
+          />
         </el-form-item>
         <el-form-item label="语音作答">
           <el-radio

+ 5 - 1
src/views/exercise_questions/create/components/exercises/FillQuestion.vue

@@ -119,7 +119,11 @@
           </el-radio>
         </el-form-item>
         <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
+          <el-input-number
+            v-model="data.property.score"
+            :min="0"
+            :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
+          />
         </el-form-item>
       </el-form>
     </template>

+ 5 - 1
src/views/exercise_questions/create/components/exercises/JudgeQuestion.vue

@@ -117,7 +117,11 @@
           </el-radio>
         </el-form-item>
         <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
+          <el-input-number
+            v-model="data.property.score"
+            :min="0"
+            :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
+          />
         </el-form-item>
       </el-form>
     </template>

+ 5 - 1
src/views/exercise_questions/create/components/exercises/MatchingQuestion.vue

@@ -107,7 +107,11 @@
           </el-radio>
         </el-form-item>
         <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
+          <el-input-number
+            v-model="data.property.score"
+            :min="0"
+            :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
+          />
         </el-form-item>
       </el-form>
     </template>

+ 5 - 1
src/views/exercise_questions/create/components/exercises/ReadAloudQuestion.vue

@@ -109,7 +109,11 @@
           </el-radio>
         </el-form-item>
         <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
+          <el-input-number
+            v-model="data.property.score"
+            :min="0"
+            :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
+          />
         </el-form-item>
       </el-form>
     </template>

+ 5 - 1
src/views/exercise_questions/create/components/exercises/ReadQuestion.vue

@@ -106,7 +106,11 @@
           </el-radio>
         </el-form-item>
         <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
+          <el-input-number
+            v-model="data.property.score"
+            :min="0"
+            :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
+          />
         </el-form-item>
       </el-form>
     </template>

+ 5 - 1
src/views/exercise_questions/create/components/exercises/RepeatQuestion.vue

@@ -100,7 +100,11 @@
           </el-radio>
         </el-form-item>
         <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
+          <el-input-number
+            v-model="data.property.score"
+            :min="0"
+            :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
+          />
         </el-form-item>
       </el-form>
     </template>

+ 5 - 1
src/views/exercise_questions/create/components/exercises/SelectQuestion.vue

@@ -121,7 +121,11 @@
           </el-radio>
         </el-form-item>
         <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
+          <el-input-number
+            v-model="data.property.score"
+            :min="0"
+            :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
+          />
         </el-form-item>
       </el-form>
     </template>

+ 5 - 1
src/views/exercise_questions/create/components/exercises/SortQuestion.vue

@@ -99,7 +99,11 @@
           </el-radio>
         </el-form-item>
         <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
+          <el-input-number
+            v-model="data.property.score"
+            :min="0"
+            :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
+          />
         </el-form-item>
       </el-form>
     </template>

+ 6 - 2
src/views/exercise_questions/create/components/exercises/TalkPictureQuestion.vue

@@ -115,7 +115,11 @@
           </el-radio>
         </el-form-item>
         <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
+          <el-input-number
+            v-model="data.property.score"
+            :min="0"
+            :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
+          />
         </el-form-item>
         <el-form-item label="语音作答">
           <el-radio
@@ -202,7 +206,7 @@ export default {
       }
     },
     upload(file) {
-      fileUpload('Mid', file).then(({ file_info_list }) => {
+      fileUpload('Mid', file, { isGlobalprogress: true }).then(({ file_info_list }) => {
         if (file_info_list.length > 0) {
           const { file_id, file_url } = file_info_list[0];
           this.data.file_id_list.push(file_id);

+ 6 - 2
src/views/exercise_questions/create/components/exercises/WriteQuestion.vue

@@ -81,10 +81,14 @@
           </el-radio>
         </el-form-item>
         <el-form-item label-width="45px">
-          <el-input v-model="data.property.score" type="number" />
+          <el-input-number
+            v-model="data.property.score"
+            :min="0"
+            :step="data.property.score_type === scoreTypeList[0].value ? 1 : 0.1"
+          />
         </el-form-item>
         <el-form-item label="词数">
-          <el-input-number v-model="data.property.word_num" class="word-num-input" :precision="0" />
+          <el-input-number :min="1" :step="10" v-model="data.property.word_num" class="word-num-input" :precision="0" />
         </el-form-item>
         <el-form-item label="范文">
           <el-radio

+ 8 - 0
src/views/exercise_questions/data/common.js

@@ -210,3 +210,11 @@ export function addTone(number, con) {
   }
   return cons;
 }
+//
+/**
+ * 输入框输入小于0的返回0 且为整数
+ */
+export function handleInputNumber(number) {
+  let number_int = number * 1;
+  return number_int > 0 ? Math.floor(number_int) : 1;
+}

+ 3 - 3
src/views/exercise_questions/preview/ChinesePreview.vue

@@ -89,7 +89,7 @@
         </template>
         <div v-if="data.property.learn_type === 'dictation'" class="card-box">
           <div class="words-info">
-            <span>{{ computeOptionMethods[data.option_number_show_mode](index) }}. </span>
+            <span>{{ computeOptionMethods[data.option_number_show_mode](index) }} </span>
             <span class="pinyin">{{ item.pinyin }}</span>
             <AudioPlay :file-id="item.audio_file_id" theme-color="white" />
           </div>
@@ -316,8 +316,8 @@ export default {
 
   .words-box {
     .words-item {
-      display: flex;
-      flex-wrap: wrap;
+      // display: flex;
+      // flex-wrap: wrap;
       min-width: 64px;
       margin-bottom: 24px;
     }

+ 1 - 1
src/views/exercise_questions/preview/components/common/UploadFiles.vue

@@ -104,7 +104,7 @@ export default {
       // 可以用来限制文件大小
     },
     upload(file) {
-      fileUpload('Mid', file).then(({ file_info_list }) => {
+      fileUpload('Mid', file, { isGlobalprogress: true }).then(({ file_info_list }) => {
         if (file_info_list.length > 0) {
           const { file_id, file_name, file_url } = file_info_list[0];
           this.file_id = file_id;