natasha 3 년 전
부모
커밋
53af3c9b64

+ 11 - 0
src/components/Adult/Preview.vue

@@ -520,6 +520,15 @@
                     :task-model="TaskModel"
                   />
                 </template>
+                <template v-if="itemss.type == 'options_list_chs'">
+                  <OptionsList
+                    v-if="refresh"
+                    :cur-que="itemss.data"
+                    :theme-color="themeColor"
+                    :index-str="index + '_' + indexs + '_' + indexss"
+                    :task-model="TaskModel"
+                  />
+                </template>
               </template>
             </div>
           </div>
@@ -585,6 +594,7 @@ import TableView from "./preview/TableView.vue"; // 视频控件
 import PdfView from "./preview/PdfView.vue"; // 视频控件
 import SentenceModule from "./preview/SentenceModule.vue"; // 图片模板
 import PlayRecordView from "@/components/Adult/preview/PlayRecordView.vue";
+import OptionsList from "./preview/OptionsList.vue"; // 选项模板
 
 export default {
   name: "Preview",
@@ -626,6 +636,7 @@ export default {
     PdfView,
     PlayRecordView,
     SentenceModule,
+    OptionsList,
   },
   props: [
     "context",

+ 1 - 1
src/components/Adult/common/DuoSentenceSegwordChs/components/DuoSegbywordChs.vue

@@ -249,7 +249,7 @@ export default {
         let obj = {
           chs: item,
           pinyin: "",
-          fontSize: "24px",
+          fontSize: "16px",
           fontColor: "#000",
           fontFamily: "FZJCGFKTK",
           wordPadding: [],

+ 1 - 1
src/components/Adult/common/DuoSentenceSegwordChs/index.vue

@@ -106,7 +106,7 @@ export default {
           let obj = {
             chs: item,
             pinyin: "",
-            fontSize: "24px",
+            fontSize: "16px",
             fontColor: "#000",
             fontFamily: "FZJCGFKTK",
             wordPadding: [],

+ 17 - 5
src/components/Adult/common/SentenceSegTemp.vue

@@ -80,9 +80,11 @@
         <div class="adult-book-input-item adult-book-input-item-center">
           <span class="adult-book-lable">字的大小:</span>
           <el-radio-group v-model="dItem.config.fontSize">
-            <el-radio label="12px">12px</el-radio>
-            <el-radio label="20px">20px</el-radio>
-            <el-radio label="24px">24px</el-radio>
+              <el-radio label="12px">12px</el-radio>
+              <el-radio label="16px">16px</el-radio>
+              <el-radio label="20px">20px</el-radio>
+              <el-radio label="24px">24px</el-radio>
+              <el-radio label="28px">28px</el-radio>
           </el-radio-group>
         </div>
         <div class="adult-book-input-item adult-book-input-item-center">
@@ -239,12 +241,22 @@ export default {
       queConfig: {
         fn_record_list: [
           {
+            type: "record_control_mini_chs",
+            name: "录音控件-mini",
+            isFn: false,
+          },
+          {
             type: "sentence_record_normal_chs",
             name: "录音控件-normal",
             isFn: false,
           },
           {
-            type: "sentence_record_promax_chs",
+            type: "sentence_record_pro_chs",
+            name: "录音控件-pro",
+            isFn: false,
+          },
+          {
+            type: "record_control_promax_chs",
             name: "录音控件-promax",
             isFn: false,
           },
@@ -265,7 +277,7 @@ export default {
         wordsList: [],
         hengList: [],
         config: {
-          fontSize: "24px",
+          fontSize: "16px",
           fontColor: "#000",
           fontFamily: "FZJCGFKTK",
           wordPadding: [],

+ 2 - 2
src/components/Adult/common/SentenceSegwordChs/components/SegbywordChs.vue

@@ -172,7 +172,7 @@ export default {
         let obj = {
           chs: item,
           pinyin: "",
-          fontSize: "24px",
+          fontSize: "16px",
           fontColor: "#000",
           fontFamily: "FZJCGFKTK",
           wordPadding: [],
@@ -222,7 +222,7 @@ export default {
       createPinyin(data).then((res) => {
         let wordsList = res.data.result[0];
         wordsList = wordsList.map((item, index) => {
-          item.fontSize = "24px";
+          item.fontSize = "16px";
           item.fontColor = "#000";
           item.fontFamily = "FZJCGFKTK";
           item.wordPadding = [];

+ 1 - 1
src/components/Adult/common/SentenceSegwordChs/index.vue

@@ -107,7 +107,7 @@ export default {
         let obj = {
           chs: item,
           pinyin: "",
-          fontSize: "24px",
+          fontSize: "16px",
           fontColor: "#000",
           fontFamily: "FZJCGFKTK",
           wordPadding: [],

+ 746 - 747
src/components/Adult/common/data.js

@@ -1,758 +1,757 @@
-let fnData = [
-  {
-    type: "article_chs",
-    name: "课文"
-  },
-  {
-    type: "dialogue_article_chs",
-    name: "对话课文"
-  },
-  // {
-  //     type: "sentence_segword_chs",
-  //     name: "句子分词",
-  // },
-  {
-    type: "NewWord_chs",
-    name: "生词"
-  },
-  {
-    type: "notes_chs",
-    name: "注释"
-  },
-  {
-    type: "dialogue_answer_chs",
-    name: "对话题模板"
-  },
-  {
-    type: "sentence_chs",
-    name: "句子模板",
-    list: [
-      {
-        type: "sentence_input_chs",
-        name: "句子填空"
-      },
-      {
-        type: "sentence_judge_chs",
-        name: "句子判断"
-      },
-      {
-        type: "sentence_record_chs",
-        name: "句子录音"
-      },
-      {
-        type: "sentence_input_record_chs",
-        name: "句子填空+录音"
-      },
-      {
-        type: "sentence_listen_read_chs",
-        name: "句子听+朗读"
-      }
-    ]
-  },
-  {
-    type: "sentence_segtemp_chs",
-    name: "句子拆分组件",
-  },
-  // {
-  //     type: "image_question",
-  //     name: "看图模板",
-  //     list: [{
-  //         type: "image_question_input",
-  //         name: "看图填空",
-  //     }, {
-  //         type: "image_question_record",
-  //         name: "看图录入",
-  //     }, {
-  //         type: "image_question_input_record",
-  //         name: "看图填空+录入",
-  //     }]
-  // },
-  {
-    type: "voice_matrix",
-    name: "语音矩阵"
-  },
-  {
-    type: "select_drag",
-    name: "选择-拖拽"
-  },
-  {
-    type: "fill_drag",
-    name: "填空-拖拽"
-  },
-  {
-    type: "config_table",
-    name: "可配置表格"
-  },
-  { type: "header_separate", name: "表头分离表格" },
-  //  {
-  //     type: "divider",
-  //     name: "分割线",
-  //     data_structure: {
-  //         type: 'divider',
-  //         name: "分割线",
-  //     }
-  // },
-  // {
-  //     type: "text",
-  //     name: "文本描述",
-  //     data_structure: {
-  //         type: 'text',
-  //         name: "文本描述",
-  //         con: '',
-  //         pinyin: '',
-  //         english: '',
-  //         img_list: [],
-  //         mp3_list: []
-  //     }
-  // },
-  // {
-  //     type: "single_chs",
-  //     name: "单选题",
-  // },
-  // {
-  //     type: "listen_record_single_chs",
-  //     name: "听录音选答案",
-  // },
-  // {
-  //     type: "checkbox_chs",
-  //     name: "多选题",
-  // },
-  {
-    type: "checkbox_self_assessment_chs",
-    name: "自我评估"
-  },
-  // {
-  //     type: "judge",
-  //     name: "判断题",
-  //     data_structure: {
-  //         type: 'judge',
-  //         name: "判断题",
-  //         title: "",
-  //         con: '',
-  //         pinyin: '',
-  //         img_list: [],
-  //         mp3_list: [],
-  //         judge: ''
-  //     }
-  // },
-  // {
-  //     type: "multiRowInput",
-  //     name: "多行文本题",
-  //     data_structure: {
-  //         type: 'multiRowInput',
-  //         name: "多行文本题",
-  //         title: "",
-  //         con: [{
-  //             con: '',
-  //             annotation: "", //注释
-  //         }],
-  //         pinyin: '',
-  //         img_list: [],
-  //         mp3_list: [],
-  //         fn_list: [{
-  //             type: 'astrictNumber',
-  //             name: '限制字数',
-  //             isFn: false,
-  //         }, ],
-  //     }
-  // },
-  // {
-  //     type: "singleRowInput",
-  //     name: "单行文本题",
-  //     data_structure: {
-  //         type: 'singleRowInput',
-  //         name: "单行文本题",
-  //         title: "",
+let fnData = [{
+        type: "article_chs",
+        name: "课文"
+    },
+    {
+        type: "dialogue_article_chs",
+        name: "对话课文"
+    },
+    // {
+    //     type: "sentence_segword_chs",
+    //     name: "句子分词",
+    // },
+    {
+        type: "NewWord_chs",
+        name: "生词"
+    },
+    {
+        type: "notes_chs",
+        name: "注释"
+    },
+    {
+        type: "dialogue_answer_chs",
+        name: "对话题模板"
+    },
+    {
+        type: "sentence_chs",
+        name: "句子模板",
+        list: [{
+                type: "sentence_input_chs",
+                name: "句子填空"
+            },
+            {
+                type: "sentence_judge_chs",
+                name: "句子判断"
+            },
+            {
+                type: "sentence_record_chs",
+                name: "句子录音"
+            },
+            {
+                type: "sentence_input_record_chs",
+                name: "句子填空+录音"
+            },
+            {
+                type: "sentence_listen_read_chs",
+                name: "句子听+朗读"
+            }
+        ]
+    },
+    {
+        type: "sentence_segtemp_chs",
+        name: "句子拆分组件",
+    },
+    // {
+    //     type: "image_question",
+    //     name: "看图模板",
+    //     list: [{
+    //         type: "image_question_input",
+    //         name: "看图填空",
+    //     }, {
+    //         type: "image_question_record",
+    //         name: "看图录入",
+    //     }, {
+    //         type: "image_question_input_record",
+    //         name: "看图填空+录入",
+    //     }]
+    // },
+    {
+        type: "voice_matrix",
+        name: "语音矩阵"
+    },
+    {
+        type: "select_drag",
+        name: "选择-拖拽"
+    },
+    {
+        type: "fill_drag",
+        name: "填空-拖拽"
+    },
+    {
+        type: "config_table",
+        name: "可配置表格"
+    },
+    { type: "header_separate", name: "表头分离表格" },
+    //  {
+    //     type: "divider",
+    //     name: "分割线",
+    //     data_structure: {
+    //         type: 'divider',
+    //         name: "分割线",
+    //     }
+    // },
+    // {
+    //     type: "text",
+    //     name: "文本描述",
+    //     data_structure: {
+    //         type: 'text',
+    //         name: "文本描述",
+    //         con: '',
+    //         pinyin: '',
+    //         english: '',
+    //         img_list: [],
+    //         mp3_list: []
+    //     }
+    // },
+    // {
+    //     type: "single_chs",
+    //     name: "单选题",
+    // },
+    // {
+    //     type: "listen_record_single_chs",
+    //     name: "听录音选答案",
+    // },
+    // {
+    //     type: "checkbox_chs",
+    //     name: "多选题",
+    // },
+    {
+        type: "checkbox_self_assessment_chs",
+        name: "自我评估"
+    },
+    // {
+    //     type: "judge",
+    //     name: "判断题",
+    //     data_structure: {
+    //         type: 'judge',
+    //         name: "判断题",
+    //         title: "",
+    //         con: '',
+    //         pinyin: '',
+    //         img_list: [],
+    //         mp3_list: [],
+    //         judge: ''
+    //     }
+    // },
+    // {
+    //     type: "multiRowInput",
+    //     name: "多行文本题",
+    //     data_structure: {
+    //         type: 'multiRowInput',
+    //         name: "多行文本题",
+    //         title: "",
+    //         con: [{
+    //             con: '',
+    //             annotation: "", //注释
+    //         }],
+    //         pinyin: '',
+    //         img_list: [],
+    //         mp3_list: [],
+    //         fn_list: [{
+    //             type: 'astrictNumber',
+    //             name: '限制字数',
+    //             isFn: false,
+    //         }, ],
+    //     }
+    // },
+    // {
+    //     type: "singleRowInput",
+    //     name: "单行文本题",
+    //     data_structure: {
+    //         type: 'singleRowInput',
+    //         name: "单行文本题",
+    //         title: "",
 
-  //         con: [{
-  //             con: '',
-  //             annotation: "", //注释
-  //         }],
-  //         pinyin: '',
-  //         img_list: [],
-  //         mp3_list: [],
-  //         fn_list: [{
-  //             type: 'astrictNumber',
-  //             name: '限制字数',
-  //             isFn: false,
-  //         }, ],
-  //     }
-  // },
-  // {
-  //     type: "hanzi",
-  //     name: "汉字模版",
-  //     data_structure: {
-  //         type: 'hanzi',
-  //         name: "汉字模版",
-  //         title: "",
-  //         option: [{
-  //             hanzi: '',
-  //             pinyin: '',
-  //             mp3_list: [],
-  //             img_list: [],
-  //             definition_list: [''],
-  //             isAnswer: '',
-  //             isChecked: '',
-  //             isJudge: '',
-  //             correctInput: ''
-  //         }],
+    //         con: [{
+    //             con: '',
+    //             annotation: "", //注释
+    //         }],
+    //         pinyin: '',
+    //         img_list: [],
+    //         mp3_list: [],
+    //         fn_list: [{
+    //             type: 'astrictNumber',
+    //             name: '限制字数',
+    //             isFn: false,
+    //         }, ],
+    //     }
+    // },
+    // {
+    //     type: "hanzi",
+    //     name: "汉字模版",
+    //     data_structure: {
+    //         type: 'hanzi',
+    //         name: "汉字模版",
+    //         title: "",
+    //         option: [{
+    //             hanzi: '',
+    //             pinyin: '',
+    //             mp3_list: [],
+    //             img_list: [],
+    //             definition_list: [''],
+    //             isAnswer: '',
+    //             isChecked: '',
+    //             isJudge: '',
+    //             correctInput: ''
+    //         }],
 
-  //         correct: [{
-  //             single: [],
-  //             checkBox: [],
-  //             judge: [],
-  //             input: [],
-  //             spell: []
-  //         }],
-  //         fn_list: [{
-  //                 type: 'def',
-  //                 name: '更多释义',
-  //                 isFn: false,
-  //                 isDisable: false,
-  //             },
-  //             {
-  //                 type: 'record',
-  //                 name: '跟读',
-  //                 isFn: false,
-  //                 isDisable: false,
-  //             },
-  //             {
-  //                 type: 'spell',
-  //                 name: '拼写',
-  //                 isFn: false,
-  //                 isDisable: false,
-  //             },
-  //             {
-  //                 type: 'input',
-  //                 name: '输入',
-  //                 isFn: false,
-  //                 isDisable: false,
-  //             },
-  //             {
-  //                 type: 'copy',
-  //                 name: '摹写',
-  //                 isFn: false,
-  //                 isDisable: false,
-  //             },
-  //             {
-  //                 type: 'single',
-  //                 name: '单选',
-  //                 isFn: false,
-  //                 isDisable: false,
-  //             }, {
-  //                 type: 'checkBox',
-  //                 name: '多选',
-  //                 isFn: false,
-  //                 isDisable: false,
-  //             }, {
-  //                 type: 'judge',
-  //                 name: '判断',
-  //                 isFn: false,
-  //                 isDisable: false,
-  //             },
-  //         ]
-  //     },
-  // },
-  {
-    type: "image",
-    name: "图片控件",
-    list: [
-      {
-        type: "image_checkBox",
-        name: "图片多选"
-      },
-      {
-        type: "image_judge",
-        name: "图片判断"
-      },
-      {
-        type: "image_single",
-        name: "图片单选"
-      },
-      {
-        type: "image_dobleinput",
-        name: "双输入"
-      },
-      {
-        type: "image_gdcy",
-        name: "固定词语"
-      },
-      {
-        type: "image_input",
-        name: "单行输入"
-      },
-      {
-        type: "imgage_image",
-        name: "纯图片"
-      }
-    ]
-  },
+    //         correct: [{
+    //             single: [],
+    //             checkBox: [],
+    //             judge: [],
+    //             input: [],
+    //             spell: []
+    //         }],
+    //         fn_list: [{
+    //                 type: 'def',
+    //                 name: '更多释义',
+    //                 isFn: false,
+    //                 isDisable: false,
+    //             },
+    //             {
+    //                 type: 'record',
+    //                 name: '跟读',
+    //                 isFn: false,
+    //                 isDisable: false,
+    //             },
+    //             {
+    //                 type: 'spell',
+    //                 name: '拼写',
+    //                 isFn: false,
+    //                 isDisable: false,
+    //             },
+    //             {
+    //                 type: 'input',
+    //                 name: '输入',
+    //                 isFn: false,
+    //                 isDisable: false,
+    //             },
+    //             {
+    //                 type: 'copy',
+    //                 name: '摹写',
+    //                 isFn: false,
+    //                 isDisable: false,
+    //             },
+    //             {
+    //                 type: 'single',
+    //                 name: '单选',
+    //                 isFn: false,
+    //                 isDisable: false,
+    //             }, {
+    //                 type: 'checkBox',
+    //                 name: '多选',
+    //                 isFn: false,
+    //                 isDisable: false,
+    //             }, {
+    //                 type: 'judge',
+    //                 name: '判断',
+    //                 isFn: false,
+    //                 isDisable: false,
+    //             },
+    //         ]
+    //     },
+    // },
+    {
+        type: "image",
+        name: "图片控件",
+        list: [{
+                type: "image_checkBox",
+                name: "图片多选"
+            },
+            {
+                type: "image_judge",
+                name: "图片判断"
+            },
+            {
+                type: "image_single",
+                name: "图片单选"
+            },
+            {
+                type: "image_dobleinput",
+                name: "双输入"
+            },
+            {
+                type: "image_gdcy",
+                name: "固定词语"
+            },
+            {
+                type: "image_input",
+                name: "单行输入"
+            },
+            {
+                type: "imgage_image",
+                name: "纯图片"
+            }
+        ]
+    },
 
-  // {
-  //     type: "audio_control",
-  //     name: "音频控制条",
-  //     data_structure: {
-  //         type: 'audio_control',
-  //         name: "音频控制条",
-  //         option: [{
-  //             xuhao: '',
-  //             yinbiao: '',
-  //             img_list: [],
-  //             mp3_list: [],
-  //             isAnswer: ''
-  //         }, ],
-  //     }
-  // },
-  // {
-  //     type: "audio_control_easy",
-  //     name: "音频控制条-简易",
-  //     data_structure: {
-  //         type: 'audio_control_easy',
-  //         name: "音频控制条-简易",
-  //         option: [{
-  //             xuhao: '',
-  //             yinbiao: '',
-  //             img_list: [],
-  //             mp3_list: [],
-  //             isAnswer: ''
-  //         }, ],
-  //     }
-  // },
-  {
-    type: "input_record_chs",
-    name: "输入+录音"
-  },
-  {
-    type: "recordHZ_inputPY_chs",
-    name: "读汉字写拼音"
-  },
-  // {
-  //     type: "inputItem_chs",
-  //     name: "输入选项",
-  // },
-  {
-    type: "upload_control_chs",
-    name: "上传控件"
-  },
-  {
-    type: "upload_control_preview_chs",
-    name: "上传控件预览查看"
-  },
-  // {
-  //     type: "switch_control_chs",
-  //     name: "开关控件",
-  // },
-  {
-    type: "record_control",
-    name: "录音控件",
-    list: [
-      {
-        type: "record_control_mini",
-        name: "录音控件-mini"
-      },
-      {
-        type: "record_control_normal",
-        name: "录音控件-normal"
-      },
-      {
-        type: "record_control_pro",
-        name: "录音控件-pro"
-      },
-      {
-        type: "record_control_promax",
-        name: "录音控件-promax"
-      }
-    ],
-    data_structure: {
-      type: "record_control",
-      name: "录音控件",
-      option: [
-        {
-          hanzi: "",
-          pinyin: "",
-          mp3_list: [],
-          img_list: [],
-          isAnswer: "",
-          isChecked: "",
-          isJudge: "",
-          correctInput: ""
+    // {
+    //     type: "audio_control",
+    //     name: "音频控制条",
+    //     data_structure: {
+    //         type: 'audio_control',
+    //         name: "音频控制条",
+    //         option: [{
+    //             xuhao: '',
+    //             yinbiao: '',
+    //             img_list: [],
+    //             mp3_list: [],
+    //             isAnswer: ''
+    //         }, ],
+    //     }
+    // },
+    // {
+    //     type: "audio_control_easy",
+    //     name: "音频控制条-简易",
+    //     data_structure: {
+    //         type: 'audio_control_easy',
+    //         name: "音频控制条-简易",
+    //         option: [{
+    //             xuhao: '',
+    //             yinbiao: '',
+    //             img_list: [],
+    //             mp3_list: [],
+    //             isAnswer: ''
+    //         }, ],
+    //     }
+    // },
+    {
+        type: "input_record_chs",
+        name: "输入+录音"
+    },
+    {
+        type: "recordHZ_inputPY_chs",
+        name: "读汉字写拼音"
+    },
+    // {
+    //     type: "inputItem_chs",
+    //     name: "输入选项",
+    // },
+    {
+        type: "upload_control_chs",
+        name: "上传控件"
+    },
+    {
+        type: "upload_control_preview_chs",
+        name: "上传控件预览查看"
+    },
+    // {
+    //     type: "switch_control_chs",
+    //     name: "开关控件",
+    // },
+    {
+        type: "record_control",
+        name: "录音控件",
+        list: [{
+                type: "record_control_mini",
+                name: "录音控件-mini"
+            },
+            {
+                type: "record_control_normal",
+                name: "录音控件-normal"
+            },
+            {
+                type: "record_control_pro",
+                name: "录音控件-pro"
+            },
+            {
+                type: "record_control_promax",
+                name: "录音控件-promax"
+            }
+        ],
+        data_structure: {
+            type: "record_control",
+            name: "录音控件",
+            option: [{
+                hanzi: "",
+                pinyin: "",
+                mp3_list: [],
+                img_list: [],
+                isAnswer: "",
+                isChecked: "",
+                isJudge: "",
+                correctInput: ""
+            }]
         }
-      ]
-    }
-  },
-  // {
-  //     type: "pure_input",
-  //     name: "纯输入",
-  //     data_structure: {
-  //         type: 'pure_input',
-  //         name: "纯输入",
-  //         option: [{
-  //             answer: "",
-  //         }, ],
-  //         answer: "",
-  //         record: false, //需要录音
-  //         mp3_list: [],
-  //     }
-  // },
-  // {
-  //     type: "matrixSingle",
-  //     name: "矩阵单选",
-  //     data_structure: {
-  //         type: 'matrixSingle',
-  //         name: "矩阵单选",
-  //         title: "",
-  //         con: [{
-  //                 con: "",
-  //                 Answer: "",
-  //             },
-  //             {
-  //                 con: "",
-  //                 Answer: "",
-  //             },
-  //         ],
-  //         option: [{
-  //                 con: '',
-  //                 pinyin: '',
-  //                 img_list: [],
-  //                 mp3_list: [],
-  //                 isAnswer: ''
-  //             },
-  //             {
-  //                 con: '',
-  //                 pinyin: '',
-  //                 img_list: [],
-  //                 mp3_list: [],
-  //                 isAnswer: ''
-  //             }
-  //         ],
-  //         correct: ["", ""]
-  //     }
-  // },
-  // {
-  //     type: "matrixChckbox",
-  //     name: "矩阵多选",
-  //     data_structure: {
-  //         type: 'matrixChckbox',
-  //         name: "矩阵多选",
-  //         title: "",
+    },
+    // {
+    //     type: "pure_input",
+    //     name: "纯输入",
+    //     data_structure: {
+    //         type: 'pure_input',
+    //         name: "纯输入",
+    //         option: [{
+    //             answer: "",
+    //         }, ],
+    //         answer: "",
+    //         record: false, //需要录音
+    //         mp3_list: [],
+    //     }
+    // },
+    // {
+    //     type: "matrixSingle",
+    //     name: "矩阵单选",
+    //     data_structure: {
+    //         type: 'matrixSingle',
+    //         name: "矩阵单选",
+    //         title: "",
+    //         con: [{
+    //                 con: "",
+    //                 Answer: "",
+    //             },
+    //             {
+    //                 con: "",
+    //                 Answer: "",
+    //             },
+    //         ],
+    //         option: [{
+    //                 con: '',
+    //                 pinyin: '',
+    //                 img_list: [],
+    //                 mp3_list: [],
+    //                 isAnswer: ''
+    //             },
+    //             {
+    //                 con: '',
+    //                 pinyin: '',
+    //                 img_list: [],
+    //                 mp3_list: [],
+    //                 isAnswer: ''
+    //             }
+    //         ],
+    //         correct: ["", ""]
+    //     }
+    // },
+    // {
+    //     type: "matrixChckbox",
+    //     name: "矩阵多选",
+    //     data_structure: {
+    //         type: 'matrixChckbox',
+    //         name: "矩阵多选",
+    //         title: "",
 
-  //         con: [{
-  //                 con: "",
-  //                 AnswerList: [],
-  //             },
-  //             {
-  //                 type: "matrixChekbox",
-  //                 name: "矩阵多选",
-  //                 data_structure: {
-  //                     type: 'matrixChekbox',
-  //                     name: "矩阵多选",
-  //                     con: [{
-  //                             con: "",
-  //                             AnswerList: [],
-  //                         },
-  //                         {
-  //                             con: "",
-  //                             AnswerList: [],
-  //                         },
-  //                     ],
-  //                     option: [{
-  //                             con: '',
-  //                             pinyin: '',
-  //                             img_list: [],
-  //                             mp3_list: [],
-  //                             isAnswer: ''
-  //                         },
-  //                         {
-  //                             con: '',
-  //                             pinyin: '',
-  //                             img_list: [],
-  //                             mp3_list: [],
-  //                             isAnswer: ''
-  //                         }
-  //                     ],
-  //                     correct: [
-  //                         [],
-  //                         []
-  //                     ]
-  //                 }
-  //             },
+    //         con: [{
+    //                 con: "",
+    //                 AnswerList: [],
+    //             },
+    //             {
+    //                 type: "matrixChekbox",
+    //                 name: "矩阵多选",
+    //                 data_structure: {
+    //                     type: 'matrixChekbox',
+    //                     name: "矩阵多选",
+    //                     con: [{
+    //                             con: "",
+    //                             AnswerList: [],
+    //                         },
+    //                         {
+    //                             con: "",
+    //                             AnswerList: [],
+    //                         },
+    //                     ],
+    //                     option: [{
+    //                             con: '',
+    //                             pinyin: '',
+    //                             img_list: [],
+    //                             mp3_list: [],
+    //                             isAnswer: ''
+    //                         },
+    //                         {
+    //                             con: '',
+    //                             pinyin: '',
+    //                             img_list: [],
+    //                             mp3_list: [],
+    //                             isAnswer: ''
+    //                         }
+    //                     ],
+    //                     correct: [
+    //                         [],
+    //                         []
+    //                     ]
+    //                 }
+    //             },
 
-  //             {
-  //                 con: '',
-  //                 pinyin: '',
-  //                 img_list: [],
-  //                 mp3_list: [],
-  //                 isAnswer: ''
-  //             }
-  //         ],
-  //         correct: [
-  //             [],
-  //             []
-  //         ]
-  //     }
-  // },
+    //             {
+    //                 con: '',
+    //                 pinyin: '',
+    //                 img_list: [],
+    //                 mp3_list: [],
+    //                 isAnswer: ''
+    //             }
+    //         ],
+    //         correct: [
+    //             [],
+    //             []
+    //         ]
+    //     }
+    // },
 
-  // {
-  //     type: "text_input_RecoedItem",
-  //     name: "文字+录入+录音条",
-  //     data_structure: {
-  //         type: "text_input_RecoedItem",
-  //         name: "文字+录入+录音条",
-  //         title: "",
-  //         option: [{
-  //             number: "",
-  //             con: "",
-  //             answer: "",
-  //         }, ]
-  //     },
-  // },
-  // {
-  //     type: "dialogue",
-  //     name: "对话题",
-  //     data_structure: {
-  //         type: 'dialogue',
-  //         name: "对话题",
-  //         title: "",
-  //         option: [{
-  //                 roleName: "",
-  //                 site: "left",
-  //                 con: '',
-  //                 number: "",
-  //                 isRecord: "", //是否需要录音
-  //                 mp3_list: [],
-  //                 img_list: [],
-  //                 definition_list: [],
-  //                 AnswerList: [""],
-  //                 isAnswer: '',
-  //                 isChecked: '',
-  //                 judge: '',
-  //                 correctInput: ''
-  //             },
-  //             {
-  //                 roleName: "",
-  //                 site: "left",
-  //                 con: '',
-  //                 number: "",
-  //                 isRecord: "", //是否需要录音
-  //                 mp3_list: [],
-  //                 img_list: [],
-  //                 definition_list: [],
-  //                 AnswerList: [""],
-  //                 isAnswer: '',
-  //                 isChecked: '',
-  //                 judge: '',
-  //                 correctInput: ''
-  //             },
-  //         ],
-  //         fn_list: [
-  //             // {
-  //             //       type: 'def',
-  //             //       name: '更多释义',
-  //             //       isFn: false,
-  //             //   },
-  //             {
-  //                 type: 'record',
-  //                 name: '跟读',
-  //                 isFn: false,
-  //             },
-  //             // {
-  //             //     type: 'spell',
-  //             //     name: '拼写',
-  //             //     isFn: false,
-  //             // },
-  //             {
-  //                 type: 'input',
-  //                 name: '输入',
-  //                 isFn: false,
-  //             },
-  //             // {
-  //             //     type: 'copy',
-  //             //     name: '摹写',
-  //             //     isFn: false,
-  //             // },
-  //             // {
-  //             //     type: 'single',
-  //             //     name: '单选',
-  //             //     isFn: false,
-  //             // }, {
-  //             //     type: 'checkout',
-  //             //     name: '多选',
-  //             //     isFn: false,
-  //             // }, {
-  //             //     type: 'judge',
-  //             //     name: '判断',
-  //             //     isFn: false,
-  //             // },
-  //         ],
-  //         correct: [{
-  //             input: ["", ""],
-  //         }]
-  //     },
-  // },
-  {
-    type: "ligature_chs",
-    name: "连线"
-  },
-  // {
-  //     type: "record",
-  //     name: "录音题",
-  //     data_structure: {
-  //         type: "record",
-  //         name: "录音题",
-  //         title: "",
-  //         option: [{
-  //             mp3_list: [],
-  //             con: "",
-  //             value: "",
-  //         }, ]
-  //     }
-  // },
-  // {
-  //     type: "hearRecord",
-  //     name: "听录音题",
-  //     data_structure: {
-  //         type: "hearRecord",
-  //         name: "听录音题",
+    // {
+    //     type: "text_input_RecoedItem",
+    //     name: "文字+录入+录音条",
+    //     data_structure: {
+    //         type: "text_input_RecoedItem",
+    //         name: "文字+录入+录音条",
+    //         title: "",
+    //         option: [{
+    //             number: "",
+    //             con: "",
+    //             answer: "",
+    //         }, ]
+    //     },
+    // },
+    // {
+    //     type: "dialogue",
+    //     name: "对话题",
+    //     data_structure: {
+    //         type: 'dialogue',
+    //         name: "对话题",
+    //         title: "",
+    //         option: [{
+    //                 roleName: "",
+    //                 site: "left",
+    //                 con: '',
+    //                 number: "",
+    //                 isRecord: "", //是否需要录音
+    //                 mp3_list: [],
+    //                 img_list: [],
+    //                 definition_list: [],
+    //                 AnswerList: [""],
+    //                 isAnswer: '',
+    //                 isChecked: '',
+    //                 judge: '',
+    //                 correctInput: ''
+    //             },
+    //             {
+    //                 roleName: "",
+    //                 site: "left",
+    //                 con: '',
+    //                 number: "",
+    //                 isRecord: "", //是否需要录音
+    //                 mp3_list: [],
+    //                 img_list: [],
+    //                 definition_list: [],
+    //                 AnswerList: [""],
+    //                 isAnswer: '',
+    //                 isChecked: '',
+    //                 judge: '',
+    //                 correctInput: ''
+    //             },
+    //         ],
+    //         fn_list: [
+    //             // {
+    //             //       type: 'def',
+    //             //       name: '更多释义',
+    //             //       isFn: false,
+    //             //   },
+    //             {
+    //                 type: 'record',
+    //                 name: '跟读',
+    //                 isFn: false,
+    //             },
+    //             // {
+    //             //     type: 'spell',
+    //             //     name: '拼写',
+    //             //     isFn: false,
+    //             // },
+    //             {
+    //                 type: 'input',
+    //                 name: '输入',
+    //                 isFn: false,
+    //             },
+    //             // {
+    //             //     type: 'copy',
+    //             //     name: '摹写',
+    //             //     isFn: false,
+    //             // },
+    //             // {
+    //             //     type: 'single',
+    //             //     name: '单选',
+    //             //     isFn: false,
+    //             // }, {
+    //             //     type: 'checkout',
+    //             //     name: '多选',
+    //             //     isFn: false,
+    //             // }, {
+    //             //     type: 'judge',
+    //             //     name: '判断',
+    //             //     isFn: false,
+    //             // },
+    //         ],
+    //         correct: [{
+    //             input: ["", ""],
+    //         }]
+    //     },
+    // },
+    {
+        type: "ligature_chs",
+        name: "连线"
+    },
+    // {
+    //     type: "record",
+    //     name: "录音题",
+    //     data_structure: {
+    //         type: "record",
+    //         name: "录音题",
+    //         title: "",
+    //         option: [{
+    //             mp3_list: [],
+    //             con: "",
+    //             value: "",
+    //         }, ]
+    //     }
+    // },
+    // {
+    //     type: "hearRecord",
+    //     name: "听录音题",
+    //     data_structure: {
+    //         type: "hearRecord",
+    //         name: "听录音题",
 
-  //         title: "",
-  //         option: [{
-  //             mp3_list: [],
-  //             con: "",
-  //             value: "",
-  //         }, ]
-  //     }
-  // },
-  // {
-  //     type: "sort",
-  //     name: "排序题",
-  // },
-  // {
-  //     type: "blank",
-  //     name: "填空题",
-  // },
-  // {
-  //     type: "annex",
-  //     name: "附件题",
-  // },
-  // {
-  //     type: "dropdown",
-  //     name: "下拉题",
-  // },
-  // {
-  //     type: "drawing",
-  //     name: "画图题",
-  // },
-  // {
-  //     type: "text_item",
-  //     name: "文本条",
-  //     data_structure: {
-  //         type: "text_item",
-  //         name: "文本条",
-  //         title: "",
-  //         option: [{
-  //             number: "",
-  //             con: "",
-  //         }],
-  //         numberList: {
-  //             type: "number",
-  //             name: "每行几个",
-  //             con: "2",
-  //             arr: [{
-  //                     id: 1,
-  //                     value: 1,
-  //                 }, {
-  //                     id: 2,
-  //                     value: 2,
+    //         title: "",
+    //         option: [{
+    //             mp3_list: [],
+    //             con: "",
+    //             value: "",
+    //         }, ]
+    //     }
+    // },
+    // {
+    //     type: "sort",
+    //     name: "排序题",
+    // },
+    // {
+    //     type: "blank",
+    //     name: "填空题",
+    // },
+    // {
+    //     type: "annex",
+    //     name: "附件题",
+    // },
+    // {
+    //     type: "dropdown",
+    //     name: "下拉题",
+    // },
+    // {
+    //     type: "drawing",
+    //     name: "画图题",
+    // },
+    // {
+    //     type: "text_item",
+    //     name: "文本条",
+    //     data_structure: {
+    //         type: "text_item",
+    //         name: "文本条",
+    //         title: "",
+    //         option: [{
+    //             number: "",
+    //             con: "",
+    //         }],
+    //         numberList: {
+    //             type: "number",
+    //             name: "每行几个",
+    //             con: "2",
+    //             arr: [{
+    //                     id: 1,
+    //                     value: 1,
+    //                 }, {
+    //                     id: 2,
+    //                     value: 2,
 
-  //                 }, {
-  //                     id: 3,
-  //                     value: 3,
-  //                 },
-  //                 {
-  //                     id: 4,
-  //                     value: 4,
-  //                 },
-  //             ]
-  //         }
-  //     }
-  // },
-  // {
-  //     type: "bg_control",
-  //     name: "背景图控件",
-  //     data_structure: {
-  //         type: 'bg_control',
-  //         name: "背景图控件",
-  //         img_list: [],
-  //     }
-  // },
-  // {
-  //     type: "NumberCombination_chs",
-  //     name: "数字组合",
-  // },
-  {
-    type: "toneSelect_chs",
-    name: "音调选择"
-  },
-  // {
-  //     type: "sudoku_chs",
-  //     name: "数独",
-  // },
-  {
-    type: "text_problem_chs",
-    name: "课文上方的问题"
-  },
-  {
-    type: "newWord_preview_chs",
-    name: "生字展示"
-  },
-  {
-    type: "listen_record_single_syllable_chs",
-    name: "听录音选音节"
-  },
-  // {
-  //     type: "zi_transverse_line_chs",
-  //     name: "字+横线",
-  // },
-  // {
-  //     type: "select_input_chs",
-  //     name: "选择填空控件",
-  // },
-  // {
-  //     type: "play_input_record_chs",
-  //     name: "播放+输入+录音",
-  // },
-  // {
-  //     type: "drag_chs",
-  //     name: "拖拽",
-  // },
-  {
-    type: "sort_chs",
-    name: "排序"
-  },
-  {
-    type: "CourseStart_chs",
-    name: "封面"
-  },
-  {
-    type: "tinydemo_chs",
-    name: "富文本"
-  },
-  {
-    type: "video_chs",
-    name: "视频控件"
-  },
-  {
-    type: "table_chs",
-    name: "表格"
-  },
-  {
-    type: "play_record_chs",
-    name: "播放音频控件"
-  },
-  {
-    type: "upload_pdf_chs",
-    name: "上传pdf"
-  }
+    //                 }, {
+    //                     id: 3,
+    //                     value: 3,
+    //                 },
+    //                 {
+    //                     id: 4,
+    //                     value: 4,
+    //                 },
+    //             ]
+    //         }
+    //     }
+    // },
+    // {
+    //     type: "bg_control",
+    //     name: "背景图控件",
+    //     data_structure: {
+    //         type: 'bg_control',
+    //         name: "背景图控件",
+    //         img_list: [],
+    //     }
+    // },
+    // {
+    //     type: "NumberCombination_chs",
+    //     name: "数字组合",
+    // },
+    {
+        type: "toneSelect_chs",
+        name: "音调选择"
+    },
+    // {
+    //     type: "sudoku_chs",
+    //     name: "数独",
+    // },
+    {
+        type: "text_problem_chs",
+        name: "课文上方的问题"
+    },
+    {
+        type: "newWord_preview_chs",
+        name: "生字展示"
+    },
+    {
+        type: "listen_record_single_syllable_chs",
+        name: "听录音选音节"
+    },
+    // {
+    //     type: "zi_transverse_line_chs",
+    //     name: "字+横线",
+    // },
+    // {
+    //     type: "select_input_chs",
+    //     name: "选择填空控件",
+    // },
+    // {
+    //     type: "play_input_record_chs",
+    //     name: "播放+输入+录音",
+    // },
+    // {
+    //     type: "drag_chs",
+    //     name: "拖拽",
+    // },
+    {
+        type: "sort_chs",
+        name: "排序"
+    },
+    {
+        type: "CourseStart_chs",
+        name: "封面"
+    },
+    {
+        type: "tinydemo_chs",
+        name: "富文本"
+    },
+    {
+        type: "video_chs",
+        name: "视频控件"
+    },
+    {
+        type: "table_chs",
+        name: "表格"
+    },
+    {
+        type: "play_record_chs",
+        name: "播放音频控件"
+    },
+    {
+        type: "upload_pdf_chs",
+        name: "上传pdf"
+    },
+    {
+        type: "options_list_chs",
+        name: "选项"
+
+    },
 ];
 
-export default { fnData };
+export default { fnData };

+ 185 - 0
src/components/Adult/inputModules/OptionsList.vue

@@ -0,0 +1,185 @@
+<!--  -->
+<template>
+  <div class="sentenceControl" v-if="curQue">
+    <div class="adult-book-input-item">
+      <span class="adult-book-lable">拼音位置:</span>
+      <el-radio-group v-model="curQue.pyPosition">
+        <el-radio :label="'top'">字的上面</el-radio>
+        <el-radio :label="'bottom'">字的下面</el-radio>
+      </el-radio-group>
+    </div>
+
+    <div class="option">
+      <div
+        class="option-item"
+        v-for="(item, col) in curQue.option"
+        :key="'control' + col"
+      >
+        <div class="adult-book-input-item">
+          <img
+            @click="deleteColRow(col)"
+            class="close"
+            src="../../../assets/adult/del-close.png"
+            alt=""
+          />
+        </div>
+        <SentenceSegwordChs :curQue="item" type="adultinput" isHidePyPosition='true' />
+          <!-- <DuoSentenceSegwordChs
+            :curQue="item"
+            :segModel="curQue.segModel"
+          /> -->
+      </div>
+    <div class="addoption" @click="addWOption()">添加一个选项</div>
+    </div>
+  </div>
+</template>
+
+<script>
+import SentenceSegwordChs from "./SentenceSegwordChs/index.vue";
+
+export default {
+  components: {
+    SentenceSegwordChs,
+  },
+  props: ["curQue", "changeCurQue",],
+  filters: {
+  },
+  data() {
+    return {
+      checkList: [],
+      mp3Number: 1,
+      imgNumber: 1,
+      items: null,
+      row: 0,
+      col: 0,
+      checkboxVisible: false,
+      selectItem: null,
+      optionEditIndex: 0,
+      optionType: "",
+      data_structure: {
+        type: "options_list_chs",
+        name: "选项",
+        title: "",
+        mp3_list: [],
+        lrc_list: [],
+        img_list: [],
+        img_site: "rightCenter",
+        img_size: 240, // 图片大小
+        taskId: "",
+        wordTime: [],
+        detail: [],
+        sentenceType: "chinese",
+        numberStyle: "number",
+        pyPosition: "top", //top 拼音在上面;bottom 拼音在下面
+        pyColor: "grey",
+        segModel: "word",
+        sortType: "col", //col横;row:纵
+        option: [
+            {
+              pyPosition: "top", //top 拼音在上面;bottom 拼音在下面
+                sentence: "", //句子
+                segList: [], //分词结果
+                seg_words: "",
+                wordsList: [],
+                hengList: [],
+            },
+        ],
+      },
+    };
+  },
+  computed: {},
+  watch: {},
+  //方法集合
+  methods: {
+    onBlur(item, field) {
+      item[field] = item[field] ? item[field].trim() : "";
+    },
+    // 删除行或者列
+    deleteColRow(index) {
+      if (this.curQue.option.length <= 1) {
+        this.$message.warning(
+          `至少保留1个选项`
+        );
+        return;
+      }
+      this.curQue.option.splice(index, 1);
+    },
+    // 新增题
+    addWOption(col) {
+      let obj = JSON.parse(JSON.stringify(this.data_structure.option[0]));
+      this.curQue.option.push(obj);
+    },
+    initCurQueData() {
+      let res_data = JSON.parse(JSON.stringify(this.data_structure));
+      this.changeCurQue(res_data);
+    },
+  },
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    let _this = this;
+    if (!_this.curQue) {
+      _this.initCurQueData();
+    } else {
+      // 如果保存过需要将选中的功能设置选中
+      // _this.curQue.fn_list.forEach((item) => {
+      //   if (item.isFn) {
+      //     _this.checkList.push(item.name);
+      //   }
+      // });
+    }
+  },
+  beforeCreate() {}, //生命周期 - 创建之前
+  beforeMount() {}, //生命周期 - 挂载之前
+  beforeUpdate() {}, //生命周期 - 更新之前
+  updated() {}, //生命周期 - 更新之后
+  beforeDestroy() {}, //生命周期 - 销毁之前
+  destroyed() {}, //生命周期 - 销毁完成
+  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+<style lang='scss' scoped>
+//@import url(); 引入公共css类
+.option-item {
+  width: 100%;
+  box-sizing: border-box;
+  border: 1px rgb(173, 173, 173) dotted;
+  background: rgb(241, 241, 241);
+  padding: 16px;
+  margin-bottom: 10px;
+}
+.correct-box {
+  width: 500px;
+  > div {
+    margin-bottom: 10px;
+  }
+  .adult-book-input-item {
+    .adult-book-lable {
+      width: 105px;
+    }
+  }
+}
+.Big-Book-main {
+  border-bottom: 1px rgb(173, 173, 173) dotted;
+}
+.check-fn-list {
+  display: flex;
+  > li {
+    margin-left: 10px;
+    line-height: 32px;
+    color: #999;
+  }
+}
+.select-option-list {
+  .el-checkbox,
+  .el-radio {
+    display: block;
+    margin-bottom: 10px;
+  }
+}
+.adult-book-input-sty .el-radio-group {
+  padding: 8px 0;
+  display: block;
+}
+</style>

+ 15 - 5
src/components/Adult/inputModules/SentenceModule.vue

@@ -16,14 +16,14 @@
         <el-radio :label="'bottom'">字的下面</el-radio>
       </el-radio-group>
     </div>
-    <div class="adult-book-input-item">
+    <!-- <div class="adult-book-input-item">
       <span class="adult-book-lable">拼音颜色:</span>
       <el-radio-group v-model="curQue.pyColor">
         <el-radio label="black">黑色</el-radio>
         <el-radio label="grey">灰色</el-radio>
         <el-radio label="sub">书的辅助色</el-radio>
       </el-radio-group>
-    </div>
+    </div> -->
     <div class="adult-book-input-item">
       <span class="adult-book-lable">分词模式:</span>
       <el-radio-group v-model="curQue.segModel">
@@ -38,14 +38,14 @@
         <el-radio label="row">纵向</el-radio>
       </el-radio-group>
     </div>
-    <div class="adult-book-input-item">
+    <!-- <div class="adult-book-input-item">
       <span class="adult-book-lable">背景颜色:</span>
       <el-radio-group v-model="curQue.bgColor">
         <el-radio label="grey">灰色</el-radio>
         <el-radio label="white">白色</el-radio>
         <el-radio label="theme">主题色</el-radio>
       </el-radio-group>
-    </div>
+    </div> -->
     <div class="adult-book-input-item">
       <span class="adult-book-lable">图片:</span>
       <Upload
@@ -638,6 +638,11 @@ export default {
           isFn: false,
         },
         {
+          type: "record_control_mini_chs",
+          name: "录音控件-mini",
+          isFn: false,
+        },
+        {
           type: "sentence_record_normal_chs",
           name: "录音控件-normal",
           isFn: false,
@@ -647,6 +652,11 @@ export default {
           name: "录音控件-pro",
           isFn: false,
         },
+        {
+          type: "record_control_promax_chs",
+          name: "录音控件-promax",
+          isFn: false,
+        },
       ],
 
       data_structure: {
@@ -1020,7 +1030,7 @@ export default {
               wordsList: [],
               hengList: [],
               config: {
-                fontSize: "24px",
+                fontSize: "16px",
                 fontColor: "#000",
                 fontFamily: "FZJCGFKTK",
                 wordPadding: [],

+ 209 - 0
src/components/Adult/preview/OptionsList.vue

@@ -0,0 +1,209 @@
+<template>
+  <div class="OptionsList" v-if="curQue">
+      <ul>
+          <li v-for="(item,index) in curQue.option" :key="index">
+            <template
+                v-if="
+                item.wordsList &&
+                item.wordsList.length == 0
+                "
+            >
+                <p
+                v-if="item.sentence"
+                :class="[
+                    'content-con',
+                    /^[\u4e00-\u9fa5]/.test(item.sentence) ? 'hasCn' : '',
+                ]"
+                v-html="item.sentence"
+                />
+            </template>
+            <template v-else>
+                <div v-if="item.resArr" class="con-box">
+                <div
+                    v-for="(itemCon, indexCon) in item.resArr"
+                    v-show="itemCon.isShow"
+                    :key="indexCon"
+                    :class="['con-item', indexCon === 0 ? 'con-item-0' : '']"
+                >
+                    <template
+                    v-if="
+                        item.wordsList &&
+                        item.wordsList[indexCon + 1] &&
+                        item.wordsList[indexCon + 1].chs &&
+                        chsFhList.indexOf(item.wordsList[indexCon + 1].chs) >
+                        -1
+                    "
+                    >
+                    <div class="synthesis-box">
+                        <div>
+                            <span
+                                class="pinyin" v-if="curQue.pyPosition=='top'"
+                                >{{ itemCon.pinyin }}</span
+                            >
+                            <span class="hanzi content-con">{{ itemCon.chs }}</span>
+                            <span
+                                class="pinyin" v-if="curQue.pyPosition=='bottom'"
+                                >{{ itemCon.pinyin }}</span
+                            >
+                        </div>
+                        <div
+                        v-if="item.wordsList[indexCon + 1]"
+                        style="text-align: left"
+                        >
+                        <span
+                            class="pinyin" v-if="curQue.pyPosition=='top'"
+                            >{{ item.wordsList[indexCon + 1].pinyin }}</span
+                        >
+                        <span class="hanzi content-con">{{
+                            item.wordsList[indexCon + 1].chs
+                        }}</span>
+                        <span
+                            class="pinyin" v-if="curQue.pyPosition=='bottom'"
+                            >{{ item.wordsList[indexCon + 1].pinyin }}</span
+                        >
+                        </div>
+                    </div>
+                    </template>
+                    <template v-else>
+                    <span
+                        class="pinyin" v-if="curQue.pyPosition=='top'"
+                        >{{ itemCon.pinyin }}</span
+                    >
+                    <span class="hanzi content-con">{{ itemCon.chs }}</span>
+                    <span
+                        class="pinyin" v-if="curQue.pyPosition=='bottom'"
+                        >{{ itemCon.pinyin }}</span
+                    >
+                    </template>
+                </div>
+                </div>
+            </template>
+          </li>
+      </ul>
+  </div>
+</template>
+
+<script>
+//这里可以导入其它文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+//例如:import 《组件名称》from ‘《组件路径》';
+import SentenceTemp from "./components/SentenceTemp.vue";
+export default {
+  //import引入的组件需要注入到对象中才能使用
+  components: {
+    SentenceTemp,
+  },
+  props: ["curQue","themeColor","TaskModel"],
+  data() {
+    //这里存放数据
+    return {
+        chsFhList: [",", "。", "”", ":", "》", "《", "?", "!", ";"],
+    };
+  },
+  //计算属性 类似于data概念
+  computed: {},
+  //监控data中数据变化
+  watch: {},
+  //方法集合
+  methods: {
+    handleWav(data) {},
+    handleData() {
+      let option = JSON.parse(JSON.stringify(this.curQue.option));
+      option.forEach((dItem, dIndex) => {
+        let paraArr = [];
+          dItem.wordsList.forEach((sItem, sIndex) => {
+            let obj = {
+              pinyin: sItem.pinyin,
+              chs: sItem.chs,
+              isShow: true,
+            };
+            paraArr.push(obj);
+          });
+          this.$set(dItem, "resArr", paraArr);
+      });
+      this.$set(this.curQue, "option", option);
+    },
+    //词和标点合一起
+    mergeWordSymbol(sItem) {
+      if (this.chsFhList.indexOf(sItem.chs) > -1) {
+        sItem.isShow = false;
+      } else {
+        sItem.isShow = true;
+      }
+    },
+  },
+  //生命周期 - 创建完成(可以访问当前this实例)
+  created() {
+      this.handleData();
+  },
+  //生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  //生命周期-创建之前
+  beforeCreated() {},
+  //生命周期-挂载之前
+  beforeMount() {},
+  //生命周期-更新之前
+  beforUpdate() {},
+  //生命周期-更新之后
+  updated() {},
+  //生命周期-销毁之前
+  beforeDestory() {},
+  //生命周期-销毁完成
+  destoryed() {},
+  //如果页面有keep-alive缓存功能,这个函数会触发
+  activated() {},
+};
+</script>
+<style lang="scss" scoped>
+/* @import url(); 引入css类 */
+.OptionsList{
+    width: 100%;
+    ul{ 
+        padding: 0;
+        list-style: none;
+        margin: 0 -8px;
+        display: flex;
+        flex-flow: wrap;
+        li{
+            padding: 8px 16px;
+            background: #FFFFFF;
+            border: 1px solid rgba(0, 0, 0, 0.1);
+            border-radius: 8px;
+            margin: 8px;
+            .content-con {
+                margin: 4px 0;
+                font-family: "robot";
+                font-size: 16px;
+                color: #000;
+                &.hasCn,
+                &.hanzi {
+                    font-family: "FZJCGFKTK";
+                }
+            }
+            .con-box {
+                display: flex;
+                flex-flow: wrap;
+                justify-content: center;
+                .con-item {
+                    text-align: center;
+                    padding: 0 1px;
+                }
+                span {
+                    display: block;
+                }
+                .pinyin {
+                    font-family: "GB-PINYINOK-B";
+                    font-size: 12px;
+                    line-height: 12px;
+                    height: 12px;
+                &.noFont {
+                    font-family: initial;
+                }
+                }
+                .synthesis-box {
+                    display: flex;
+                }
+            }
+        }
+    }
+}
+</style>

+ 50 - 52
src/components/Adult/preview/Picture.vue

@@ -3,56 +3,6 @@
   <div :class="['Big-Book-PictureBox']" v-if="curQue && curQue.Bookanswer">
     <!-- <ul class="Big-Book-PictureBox-item" v-for="(item,index) in curQue.queList" :key="index"> -->
     <li v-for="(items, indexs) in curQue.option" :key="indexs">
-      <template
-        v-if="ChildType == 'image_single' || ChildType == 'image_checkBox'"
-      >
-        <div class="option_main">
-          <div
-            v-for="(itemss, indexss) in items.option"
-            :key="'op' + indexss"
-            :class="['xxoption', 'option' + curQue.numberList.con]"
-          >
-            <!-- 单选 -->
-            <template v-if="ChildType == 'image_single'">
-              <el-radio
-                v-model="curQue.Bookanswer[0].singleRadio"
-                :label="indexss"
-                :disabled="TaskModel == 'ANSWER'"
-                ><span></span
-              ></el-radio>
-            </template>
-            <!-- 复选 -->
-            <template v-if="ChildType == 'image_checkBox'">
-              <el-checkbox
-                v-model="curQue.Bookanswer[0].singlechecked"
-                :label="indexss"
-                :disabled="TaskModel == 'ANSWER'"
-                ><span></span
-              ></el-checkbox>
-            </template>
-            <div
-              class="hanzi-box hanzi-box-top"
-              v-if="itemss.pinyin || itemss.hanzi"
-            >
-              <span
-                v-if="
-                  itemss.pinyin &&
-                  (!items.pinyinSite || items.pinyinSite == 'top')
-                "
-                class="pinyin"
-                >{{ itemss.pinyin }}</span
-              >
-              <p v-if="itemss.hanzi">{{ itemss.hanzi }}</p>
-              <span
-                v-if="itemss.pinyin && items.pinyinSite == 'bottom'"
-                class="pinyin"
-                >{{ itemss.pinyin }}</span
-              >
-            </div>
-          </div>
-        </div>
-      </template>
-      <template v-else>
         <template v-if="ChildType != 'image_gdcy' && items.hanziSite == 'top'">
           <div
             class="hanzi-box hanzi-box-top"
@@ -73,7 +23,6 @@
             >
           </div>
         </template>
-      </template>
       <div v-for="(itemss, indexss) in items.img_list" :key="indexss">
         <el-image
           :src="itemss.url"
@@ -179,6 +128,55 @@
           ></a>
         </div>
       </template>
+      <template
+        v-if="ChildType == 'image_single' || ChildType == 'image_checkBox'"
+      >
+        <div class="option_main">
+          <div
+            v-for="(itemss, indexss) in items.option"
+            :key="'op' + indexss"
+            :class="['xxoption', 'option' + curQue.numberList.con]"
+          >
+            <!-- 单选 -->
+            <template v-if="ChildType == 'image_single'">
+              <el-radio
+                v-model="curQue.Bookanswer[0].singleRadio"
+                :label="indexss"
+                :disabled="TaskModel == 'ANSWER'"
+                ><span></span
+              ></el-radio>
+            </template>
+            <!-- 复选 -->
+            <template v-if="ChildType == 'image_checkBox'">
+              <el-checkbox
+                v-model="curQue.Bookanswer[0].singlechecked"
+                :label="indexss"
+                :disabled="TaskModel == 'ANSWER'"
+                ><span></span
+              ></el-checkbox>
+            </template>
+            <div
+              class="hanzi-box hanzi-box-top"
+              v-if="itemss.pinyin || itemss.hanzi"
+            >
+              <span
+                v-if="
+                  itemss.pinyin &&
+                  (!items.pinyinSite || items.pinyinSite == 'top')
+                "
+                class="pinyin"
+                >{{ itemss.pinyin }}</span
+              >
+              <p v-if="itemss.hanzi">{{ itemss.hanzi }}</p>
+              <span
+                v-if="itemss.pinyin && items.pinyinSite == 'bottom'"
+                class="pinyin"
+                >{{ itemss.pinyin }}</span
+              >
+            </div>
+          </div>
+        </div>
+      </template>
       <!-- 三件套 -->
       <div
         class="luyinVoice-box"
@@ -387,6 +385,7 @@ export default {
         display: flex;
         align-items: center;
         justify-content: center;
+        margin-bottom: 8px;
       }
       .option1 {
         width: 100%;
@@ -406,7 +405,6 @@ export default {
       margin-top: 8px;
       &.hanzi-box-top {
         margin-top: 0px;
-        margin-bottom: 8px;
       }
       > span.pinyin {
         display: block;

+ 34 - 15
src/components/Adult/preview/SentenceInput.vue

@@ -99,12 +99,13 @@
                   <!-- 
                     v-model="answerList[indexs].pinyin"
                    -->
-                  <p class="pinyin" v-if="conent.pinyin.indexOf('__')==-1">
+                  <p class="pinyin" v-if="conent.pinyin&&conent.pinyin.indexOf('__')==-1">
                     {{ conent.pinyin }}
                   </p>
                 </template>
                 <template v-if="conent.chs.indexOf('__')>-1">
-                  <EditDiv class="input chs" v-model='curQue.Bookanswer[indexs].answerList[items.detail.resArr[conIndex].inputNumber].chs' :canEdit="TaskModel=='ANSWER'?false:true"></EditDiv>
+                    {{items.detail.resArr[conIndex].inputNumber}}
+                  <!-- <EditDiv class="input chs" v-model='curQue.Bookanswer[indexs].answerList[items.detail.resArr[conIndex].inputNumber].chs' :canEdit="TaskModel=='ANSWER'?false:true"></EditDiv> -->
                   <!-- <el-input
                     class="input chs"
                     type="textarea"
@@ -139,7 +140,7 @@
             </div>
           </template>
         </div>
-        <template v-if="dataType.indexOf('sentence_answer_chs') > -1">
+        <template v-if="dataType.indexOf('sentence_answer_chs') > -1 || dataType.indexOf('sentence_input_chs') > -1">
           <input
             @input="handleInput"
             :class="['item-input']"
@@ -385,31 +386,31 @@ export default {
         text-align: center;
         margin-right: 8px;
         font-weight: 400;
-        color: #ffffff;
+        color: rgba(0, 0, 0, 1);
         //    margin-top: 4px;
         font-family: "FZJCGFKTK";
         border-radius: 50%;
       }
       > p {
-        width: 24px;
-        height: 24px;
+        width: 16px;
+        height: 16px;
         cursor: pointer;
-        background: url("../../../assets/newImage/common/icon-voice.png") left
+        background: url("../../../assets/NPC/play-red.png") left
           center no-repeat;
-        background-size: 24px;
+        background-size: 16px;
         margin: 0px 8px 0 0;
         &.active {
-          background: url("../../../assets/newImage/common/icon-voice-play-zise.png")
+          background: url("../../../assets/NPC/icon-voice-play-red.png")
             left center no-repeat;
-          background-size: 24px;
+          background-size: 16px;
         }
       }
       .item-content {
         flex: 1;
         .chs_pinyin {
           display: flex;
-          margin-left: 8px;
           flex-flow: wrap;
+          align-items: flex-end;
           .input {
             // margin-left: 16px;
             margin-right: 8px;
@@ -540,15 +541,33 @@ export default {
 }
 .NPC-Big-Book-preview-green {
   .Big-Book-prev-Textdes {
-    b.xuhao {
-      background: #24b99e;
+    ul{
+        li{
+            >p{
+                background: url("../../../assets/NPC/play-green.png") center no-repeat;
+                background-size: cover;
+                &.active {
+                    background-image: url("../../../assets/NPC/icon-voice-play-green.png");
+                    background-size: cover;
+                }
+            }
+        }
     }
   }
 }
 .NPC-Big-Book-preview-brown {
   .Big-Book-prev-Textdes {
-    b.xuhao {
-      background: #bd8865;
+    ul{
+        li{
+            >p{
+                background: url("../../../assets/NPC/play-brown.png") center no-repeat;
+                background-size: cover;
+                &.active {
+                    background-image: url("../../../assets/NPC/icon-voice-play-brown.png");
+                    background-size: cover;
+                }
+            }
+        }
     }
   }
 }

+ 2 - 1
src/components/Adult/preview/SentenceListenRead.vue

@@ -41,7 +41,7 @@
             <p
               :class="[
                 'content-con',
-                /^[\u4e00-\u9fa5]/.test(items.detail.sentenc) ? '' : 'hasPy',
+                /^[\u4e00-\u9fa5]/.test(items.detail.sentence) ? '' : 'hasPy',
               ]"
               v-if="items.detail.sentence"
             >
@@ -357,4 +357,5 @@ export default {
     }
   }
 }
+
 </style>

+ 51 - 67
src/components/Adult/preview/SentenceModule.vue

@@ -1,12 +1,11 @@
 <!--  -->
 <template>
-  <div class="sentence-control" v-if="curQue && curQue.Bookanswer">
-    <div class="out-audioLine-box">
+  <div class="sentence-control" :class="[curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].id?'hasmp3':'']" v-if="curQue && curQue.Bookanswer">
+    <div class="out-audioLine-box" v-if="
+          curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].id
+        ">
       <div
         class="aduioLine-box aduioLine-practice"
-        v-if="
-          curQue.mp3_list && curQue.mp3_list.length > 0 && curQue.mp3_list[0].id
-        "
       >
         <AudioLine
           audioId="fillInforAudioLine"
@@ -88,21 +87,6 @@
                 :themeColor="themeColor"
               />
             </div>
-            <div
-              :class="[
-                'number-box',
-                items.pyNumber && items.pyNumber[0] > 0
-                  ? 'number-box-hasPY'
-                  : '',
-              ]"
-              v-else
-            >
-              <NumberStyle
-                className="number01"
-                :numberStyle="curQue.numberStyle"
-                :numberIndex="items.index"
-              />
-            </div>
             <div :class="['sent-stem', bgClassName]">
               <div
                 :class="[
@@ -111,13 +95,6 @@
                     ? 'number-box-hasPY'
                     : '',
                 ]"
-                v-if="
-                  curQue.mp3_list &&
-                  curQue.mp3_list.length > 0 &&
-                  curQue.mp3_list[0].id &&
-                  items.bg &&
-                  items.ed
-                "
               >
                 <NumberStyle
                   className="number01"
@@ -191,12 +168,12 @@
                       <div
                         class="promax-box-div"
                         v-if="
-                          sdItem.fn_check_list.record_check.indexOf('promax') >
-                          -1
+                          sdItem.fn_check_list.record_check.length >
+                          0
                         "
                       >
                         <Soundrecord
-                          type="promax"
+                          :type="sdItem.fn_check_list.record_check?typeList[sdItem.fn_check_list.record_check]:'normal'"
                           class="promax-box"
                           :TaskModel="TaskModel"
                           :tmIndex="sdIndex"
@@ -319,11 +296,11 @@
                     <div
                       class="judge-part record-part"
                       v-if="
-                        sdItem.fn_check_list.record_check.indexOf('normal') > -1
+                        sdItem.fn_check_list.record_check.length > 0
                       "
                     >
                       <Soundrecord
-                        type="normal"
+                        :type="sdItem.fn_check_list.record_check?typeList[sdItem.fn_check_list.record_check]:'normal'"
                         class="normal-box"
                         :TaskModel="TaskModel"
                         :tmIndex="sdIndex"
@@ -436,6 +413,12 @@ export default {
       },
       chsFhList: [",", "。", "”", ":", "》", "《", "?", "!", ";"],
       itemsWidth: 0,
+      typeList:{
+        'record_control_mini_chs':'mini',
+        'record_control_normal_chs':'normal',
+        'record_control_pro_chs':'pro',
+        'record_control_promax_chs':'promax'
+      }
     };
   },
   computed: {
@@ -628,8 +611,12 @@ export default {
 
 .sentence-control {
   width: 100%;
+  box-sizing: border-box;
+  border-radius: 8px;
+  overflow: hidden;
   .out-audioLine-box {
-    padding: 0 24px;
+    background: #f7f7f7;
+    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
   }
   .container-box {
     width: 100%;
@@ -650,7 +637,7 @@ export default {
   }
   .container {
     flex: 1;
-    padding: 0 16px;
+    padding: 0;
     box-sizing: border-box;
 
     &.ul-flex {
@@ -659,8 +646,6 @@ export default {
       justify-content: space-between;
     }
     .sent-option {
-      // margin-bottom: 14px; //纵排
-      margin: 0px 8px 0px 8px;
       &.li-flex {
         display: flex;
         margin: 0px;
@@ -683,9 +668,13 @@ export default {
       display: flex;
       flex-direction: row;
       justify-content: flex-start;
-      align-items: flex-start;
+      align-items: center;
       box-sizing: border-box;
-      margin-bottom: 8px;
+      background: #ffffff;
+      border: 1px solid rgba(0, 0, 0, 0.1);
+      border-radius: 8px;
+      margin: 8px 0;
+      padding: 8px 12px;
       .number-box {
         width: 24px;
         height: 32px;
@@ -694,24 +683,23 @@ export default {
         justify-content: center;
         align-items: center;
         margin-right: 8px;
-        margin-top: 15px;
-        &-hasmp3 {
-          margin-top: 8px;
-        }
-        &-hasPY {
-          margin-top: 27px;
-        }
+        // margin-top: 15px;
+        // &-hasmp3 {
+        //   margin-top: 8px;
+        // }
+        // &-hasPY {
+        //   margin-top: 27px;
+        // }
       }
       > .number-box {
         margin-right: 16px;
       }
       .horn-24 {
-        height: 32px;
-        margin-top: 16px;
+        height: 16px;
         display: flex;
         justify-content: center;
         align-items: center;
-        margin-right: 16px;
+        margin-right: 8px;
         &.horn-hasPY {
           margin-top: 28px;
         }
@@ -720,24 +708,17 @@ export default {
     .sent-stem {
       flex: 1;
       display: flex;
-      padding: 9px 16px 9px 16px;
-      border-radius: 8px;
-      &-grey {
-        background: #f5f5f5;
-      }
-      &-white {
-        background: #fff;
-      }
-      &-theme {
-        // @include background_color("theme_color_015"); //background-color
-      }
+    //   padding: 9px 16px 9px 16px;
+    //   border-radius: 8px;
+      background: #fff;
+      align-items: center;
       .stem-content {
         flex: 1;
       }
       .number-box {
-        &-hasPY {
-          margin-top: 19px;
-        }
+        // &-hasPY {
+        //   margin-top: 19px;
+        // }
       }
       .sent-main {
         position: relative;
@@ -822,11 +803,14 @@ export default {
       margin: 0 auto;
     }
   }
-  .fill-img-box {
-    .fill-img {
-    }
-  }
-  .select-que {
+  &.hasmp3{
+      .sent-option{
+          padding: 16px 24px
+      }
+      &.sentence-control {
+        background: #f7f7f7;
+        border: 1px solid rgba(0, 0, 0, 0.1);
+      }
   }
 }
 </style>

+ 8 - 4
src/components/Adult/preview/components/AudioItem.vue

@@ -10,7 +10,7 @@
         <img :src="voicePlaySrc" class="horn-dbbg" />
       </template>
       <template v-else>
-        <svg-icon icon-class="horn-dbbg" className="horn-dbbg"></svg-icon>
+        <img :src="voicePauseSrc" class="horn-dbbg" />
       </template>
     </div>
   </div>
@@ -32,7 +32,11 @@ export default {
   },
   computed: {
     voicePlaySrc() {
-      let icon = "RLC/icon-voice-play-" + this.themeColor + ".png";
+      let icon = "NPC/icon-voice-play-" + this.themeColor + ".png";
+      return require("../../../../assets/" + icon);
+    },
+    voicePauseSrc() {
+      let icon = "NPC/play-" + this.themeColor + ".png";
       return require("../../../../assets/" + icon);
     },
   },
@@ -57,8 +61,8 @@ export default {
 // @import "../../../../assets/Scss/_handle.scss";
 .horn-dbbg {
   display: block;
-  width: 24px;
-  height: 24px;
+  width: 16px;
+  height: 16px;
   color: #d9eed4;
   //@include font_color("dui_color");
 }

+ 13 - 2
src/components/Adult/preview/components/NumberStyle.vue

@@ -118,11 +118,22 @@ export default {
   width: 16px;
   height: 16px;
   border-radius: 100%;
-  font-size: 14px;
+  font-size: 12px;
   text-align: center;
   line-height: 16px;
   display: block;
-  color: #000;
+  color: #fff;
   font-family: "robot";
+  background: #de4444;
+}
+.NPC-Big-Book-preview-green {
+  .number01{
+      background: #24b99e;
+  }
+}
+.NPC-Big-Book-preview-brown {
+  .number01{
+    background: #bd8865;
+  }
 }
 </style>

+ 12 - 0
src/views/adultInput.vue

@@ -674,6 +674,16 @@
                   </template>
                   <template v-else> </template>
                 </template>
+                <template v-if="topicIitem.type == 'options_list_chs'">
+                  <template v-if="topicIitem.is_edit">
+                    <OptionsList
+                      :curQue="topicIitem.data"
+                      :type="topicIitem.type"
+                      :changeCurQue="changeCurQue"
+                    />
+                  </template>
+                  <template v-else> </template>
+                </template>
               </div>
               <div
                 v-if="topicIitem.data && topicIitem.is_edit"
@@ -842,6 +852,7 @@ import VideoControl from "@/components/Adult/inputModules/VideoControl.vue";
 import Table from "@/components/Adult/inputModules/Table.vue";
 import PlayRecord from "@/components/Adult/inputModules/PlayRecord.vue";
 import UploadPdf from "@/components/Adult/inputModules/UploadPdf.vue";
+import OptionsList from "@/components/Adult/inputModules/OptionsList.vue";
 
 import Textdes from "@/components/Adult/inputModules/Textdes.vue";
 import Record from "@/components/Adult/inputModules/Record.vue";
@@ -940,6 +951,7 @@ export default {
     PlayRecordView,
     UploadPdf,
     SentenceModule,
+    OptionsList,
   },
   data() {
     return {