lsc 1 年間 前
コミット
fd4b0fc76e

+ 1 - 1
dist/index.html

@@ -25,7 +25,7 @@
       height: 100%;
       width: 100%;
       background: #e6eaf0;
-    }</style><link href=./static/css/app.7f5e561fd556105d4d4b60fac7d5e6b4.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3512a67a6213c2df4180.js></script><script type=text/javascript src=./static/js/vendor.b01159b52abeac4e6216.js></script><script type=text/javascript src=./static/js/app.83fa7ea0702ea7121812.js></script></body></html><script>function stopSafari() {
+    }</style><link href=./static/css/app.3b4e26876c4dde510f166a54f6a6c338.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3512a67a6213c2df4180.js></script><script type=text/javascript src=./static/js/vendor.b01159b52abeac4e6216.js></script><script type=text/javascript src=./static/js/app.50fdbeeedf1f8ec0b11e.js></script></body></html><script>function stopSafari() {
     //阻止safari浏览器双击放大功能
     let lastTouchEnd = 0  //更新手指弹起的时间
     document.documentElement.addEventListener("touchstart", function (event) {

ファイルの差分が大きいため隠しています
+ 0 - 0
dist/static/css/app.3b4e26876c4dde510f166a54f6a6c338.css


ファイルの差分が大きいため隠しています
+ 0 - 0
dist/static/css/app.3b4e26876c4dde510f166a54f6a6c338.css.map


ファイルの差分が大きいため隠しています
+ 0 - 0
dist/static/css/app.7f5e561fd556105d4d4b60fac7d5e6b4.css.map


ファイルの差分が大きいため隠しています
+ 0 - 0
dist/static/js/app.50fdbeeedf1f8ec0b11e.js


ファイルの差分が大きいため隠しています
+ 0 - 0
dist/static/js/app.50fdbeeedf1f8ec0b11e.js.map


ファイルの差分が大きいため隠しています
+ 0 - 0
dist/static/js/app.83fa7ea0702ea7121812.js


ファイルの差分が大きいため隠しています
+ 0 - 0
dist/static/js/manifest.3512a67a6213c2df4180.js.map


+ 5 - 7
src/components/pages/dataBoardSies/education/index.vue

@@ -13,23 +13,21 @@
               <!-- <span>{{ count }}</span> -->
               <span>{{ 2126 }}</span>
             </div>
-            <div class="info blueBG">
+            <!-- <div class="info blueBG">
               <span>本月登录用户环比</span>
-              <!-- <span>{{ weekCount }}</span> -->
               <span>{{ "3.04%" }}</span>
-            </div>
+            </div> -->
             <div class="info blueBG">
               <span>本月登录用户总数</span>
               <!-- <span>{{ loginCount }}</span> -->
               <span>{{ 2013 }}</span>
             </div>
-            <div class="info blueBG">
+            <!-- <div class="info blueBG">
               <span>本月新增登录用户</span>
-              <!-- <span>{{ (loginCount / count).toFixed(0) }}</span> -->
               <span>{{ 1604 }}</span>
-            </div>
+            </div> -->
           </div>
-          <loginCount style="height: calc(100% - 140px)" :monthArray="loginCountMonthArray"></loginCount>
+          <loginCount style="height: calc(100% - 70px)" :monthArray="loginCountMonthArray"></loginCount>
         </div>
       </div>
       <div class="bottom">

+ 7 - 10
src/components/pages/dataBoardSies/library/index.vue

@@ -13,23 +13,20 @@
               <!-- <span>{{ count }}</span> -->
               <span>{{ 2126 }}</span>
             </div>
-            <div class="info blueBG">
+            <!-- <div class="info blueBG">
               <span>本月借阅用户环比</span>
-              <!-- <span>{{ weekCount }}</span> -->
               <span>{{ "8300%" }}</span>
-            </div>
+            </div> -->
             <div class="info blueBG">
               <span>本月借阅书籍总数</span>
-              <!-- <span>{{ loginCount }}</span> -->
               <span>{{ 558 }}</span>
             </div>
-            <div class="info blueBG">
+            <!-- <div class="info blueBG">
               <span>本月借阅用户总数</span>
-              <!-- <span>{{ (loginCount / count).toFixed(0) }}</span> -->
               <span>{{ 84 }}</span>
-            </div>
+            </div> -->
           </div>
-          <loginCount style="height: calc(100% - 140px)" :monthArray="loginCountMonthArray"></loginCount>
+          <loginCount style="height: calc(100% - 70px)" :monthArray="loginCountMonthArray"></loginCount>
         </div>
       </div>
       <div class="bottom">
@@ -68,14 +65,14 @@
       <div class="bottom">
         <div class="titleBox">
           <div class="title">借阅排行</div>
-          <div>
+          <!-- <div>
             <el-select v-model="eva" @change="typeChange2" @focus="setMinWidth" class="selectBox" style="width: 120px;">
               <el-option label="全部年级" value=""></el-option>
             </el-select>
             <el-select v-model="eva" @change="typeChange2" @focus="setMinWidth" class="selectBox" style="width: 120px;">
               <el-option label="全部班级" value=""></el-option>
             </el-select>
-          </div>
+          </div> -->
         </div>
         <div class="dataBox rank_box">
           <cateRank :evCourseArray="evCourseArray" :eva="eva" style="width: calc(100% / 2 - 10px);"></cateRank>

+ 1 - 1
src/components/pages/test/add/components/GapFilling/gap.vue

@@ -5,7 +5,7 @@
         <div v-else class="choice_box">
             <!-- <div class="title"><div>{{ `(${option[cJson.type].name})` }}</div><div v-html="cJson.title"></div></div> -->
             <div class="title">
-                {{ `(${option[cJson.type].name})` + cJson.title }} <span style="color: #efa030;">({{ cJson.answer ? '参考答案:'+cJson.answer : '暂无参考答案' }})</span>
+                {{ `(${option[cJson.type].name})` + cJson.title }} <span style="color: #efa030;">({{ cJson.answer ? '参考答案:'+cJson.answer : '暂无参考答案' }} {{ cJson.score ? '分值:'+cJson.score+'分' : '' }})</span>
                 <!-- </div><div v-html="cJson.title"></div> -->
             </div>
             <div class="choices">

+ 16 - 5
src/components/pages/test/add/components/GapFilling/index.vue

@@ -1,28 +1,31 @@
 <template>
     <div class="choice_box" @click.stop="">
-        <div class="title">设置填空题</div>
+        <div class="title">设置问答题</div>
         <div class="box">
             <div class="set_type">
-                <span>填空题类型:</span>
+                <span>问答题类型:</span>
                 <el-select v-model="checkJson.type" @change="changeAnswer">
                     <el-option v-for="item in options" :key="item.type" :label="item.name" :value="item.type">
                     </el-option>
                 </el-select>
             </div>
+            <div class="set_type">
+                <span>设置分数:</span><el-input v-model="checkJson.score" class="input" placeholder="请输入分数" style="width: 120px"  @change="numberPan"></el-input>
+            </div>
             <div class="set_title">
-                <span>填空题题目:</span>
+                <span>问答题题目:</span>
                 <!-- <el-input v-model="checkJson.title" class="input" placeholder="请输入标题"></el-input> -->
                 <textarea v-autoHeight="68" rows="2" class="binfo_input binfo_textarea" cols v-model="checkJson.title"
                     placeholder=""></textarea>
                 <!-- <editor-bar v-model="checkJson.title" @change="change"></editor-bar> -->
             </div>
             <div class="set_title">
-                <span>填空题答案:</span>
+                <span>问答题答案:</span>
                 <textarea v-autoHeight="68" rows="2" class="binfo_input binfo_textarea" cols v-model="checkJson.answer"
                     placeholder="请输入答案"></textarea>
             </div>
             <!-- <div class="set_options">
-                <div class="title">填空题答案:</div>
+                <div class="title">问答题答案:</div>
                 <div class="xuan_body">
                     <el-input v-model="checkJson.answer" class="input" placeholder="请输入答案"></el-input>
                 </div>
@@ -79,6 +82,12 @@ export default {
         depthCopy(s) {
             return JSON.parse(JSON.stringify(s));
         },
+        numberPan() {
+            if (/[^\d]/.test(this.checkJson.score) || this.checkJson.score < 0) {
+                this.$message.error('请输入大于0的数字')
+                this.checkJson.score = ''
+            }
+        },
         changeAnswer() {
             this.checkJson.answer = []
         },
@@ -134,6 +143,8 @@ export default {
 .set_title>span {
     min-width: fit-content;
     font-size: 15px;
+    min-width: 90px;
+    text-align: right;
 }
 
 .set_options {

+ 1 - 1
src/components/pages/test/add/components/choice/choice.vue

@@ -3,7 +3,7 @@
         <div class="mask"></div>
         <div v-if="!cJson">暂未设置题目</div>
         <div v-else class="choice_box">
-            <div class="title">{{ `(${option[cJson.type].name})` + cJson.title }}</div>
+            <div class="title">{{ `(${option[cJson.type].name})` + cJson.title }} <span style="color: #efa030;" v-if="cJson.score">({{ '分值:'+cJson.score+'分' }})</span></div>
             <div class="choices">
                 <div class="choice" v-for="(item, index) in cJson.array" :key="index">
                     <div class="choice_c" v-if="cJson.type == 2"><el-checkbox v-model="cJson.answer" :label="index"></el-checkbox><span :class="{right:cJson.answer.indexOf(index) != -1}">{{ item.option }}</span></div>

+ 11 - 0
src/components/pages/test/add/components/choice/index.vue

@@ -12,6 +12,9 @@
             <div class="set_title">
                 <span>选择题标题:</span><el-input v-model="checkJson.title" class="input" placeholder="请输入标题"></el-input>
             </div>
+            <div class="set_title">
+                <span>设置分数:</span><el-input v-model="checkJson.score" class="input" placeholder="请输入分数" style="width: 120px" @change="numberPan"></el-input>
+            </div>
             <div class="set_options">
                 <div class="title">选择题选项:</div>
                 <div class="xuan_body">
@@ -81,6 +84,12 @@ export default {
                 this.checkJson.answer = [val]
             }
         },
+        numberPan() {
+            if (/[^\d]/.test(this.checkJson.score) || this.checkJson.score < 0) {
+                this.$message.error('请输入大于0的数字')
+                this.checkJson.score = ''
+            }
+        },
         addOption() {
             this.checkJson.array.push({ option: "选项" + (this.checkJson.array.length + 1), img: "" })
         },
@@ -142,6 +151,8 @@ export default {
 .set_title>span {
     min-width: fit-content;
     font-size: 15px;
+    min-width: 90px;
+    text-align: right;
 }
 
 .set_options {

+ 1 - 1
src/components/pages/test/add/edit/check/choice.vue

@@ -3,7 +3,7 @@
         <!-- <div class="mask"></div> -->
         <div v-if="!checkJson">暂未设置题目</div>
         <div v-else class="choice_box">
-            <div class="title">{{ `(${option[checkJson.type].name})` + checkJson.title }}</div>
+            <div class="title">{{ `(${option[checkJson.type].name})` + checkJson.title }}<span style="color: #efa030;" v-if="checkJson.score">({{ '分值:'+checkJson.score+'分' }})</span></div>
             <div class="choices">
                 <div class="choice" v-for="(item, index) in checkJson.array" :key="index">
                     <div class="choice_c" v-if="checkJson.type == 2"><el-checkbox v-model="checkJson.answer2" :label="index"

+ 1 - 1
src/components/pages/test/add/edit/check/gap.vue

@@ -5,7 +5,7 @@
         <div v-else class="choice_box">
             <!-- <div class="title"><div>{{ `(${option[checkJson.type].name})` }}</div><div v-html="checkJson.title"></div></div> -->
             <div class="title">
-                {{ `(${option[checkJson.type].name})` + checkJson.title }}<span v-if="see" style="color: #efa030;">({{ checkJson.answer ? '参考答案:'+checkJson.answer : '暂无参考答案' }})</span>
+                {{ `(${option[checkJson.type].name})` + checkJson.title }}<span v-if="see" style="color: #efa030;">({{ checkJson.answer ? '参考答案:'+checkJson.answer : '暂无参考答案' }} {{ cJson.score ? '分值:'+cJson.score+'分' : '' }})</span><span style="color: #efa030;" v-if="checkJson.score && !see">({{ '分值:'+checkJson.score+'分' }})</span>
                 <!-- </div><div v-html="checkJson.title"></div> -->
             </div>
             <div class="choices">

+ 2 - 2
src/components/pages/test/add/edit/check/index.vue

@@ -71,8 +71,8 @@ export default {
       page: 0,
       options2: {
         1: "选择题",
-        2: "问答题",
-        3: "填空题",
+        // 2: "问答题",
+        3: "问答题",
         4: "添加文档"
       },
     }

+ 3 - 3
src/components/pages/test/add/minxins/minxin.js

@@ -12,7 +12,7 @@ const minxin = {
         // },
         {
           value: 3,
-          label: "填空题"
+          label: "问答题"
         },
         {
           value: 4,
@@ -21,8 +21,8 @@ const minxin = {
       ],
       options2: {
         1: "选择题",
-        2: "问答题",
-        3: "填空题",
+        // 2: "问答题",
+        3: "问答题",
         4: "添加文档"
       },
       buttonOptions: [

+ 55 - 11
src/components/pages/test/add/setInfo/aiCreate.vue

@@ -4,7 +4,9 @@
       :before-close="handleClose" class="pub_dialog_diy" v-loading="loading">
       <div>
         <div class="ex_box">
-          例子:请你以富文本的形式给我出三个关于小学数学单位换算的选择题,每个选择题选项不少于4个,需要答案,但不需要解释,符号请使用中文的
+          <span>例子:</span>
+          <el-button type="primary" size="mini" @click="checkExample('1')">选择题</el-button>
+          <el-button type="primary" size="mini" @click="checkExample('2')">问答题</el-button>
         </div>
         <div class="ac_box">
           <el-input v-model="text" placeholder="请在这里输入要发送的消息" size="normal" type="textarea" resize="none"
@@ -13,7 +15,7 @@
         </div>
         <div class="ac_content" v-if="aiCreate.length">
           <div class="title">生成内容:</div>
-          <div class="box">
+          <div class="box" v-if="aiType == 1">
             <div v-for="(item, index) in aiCreate" :key="index" class="choice">
               <div class="title">{{ `${index + 1}:${item.title}` }}</div>
               <div class="options">
@@ -22,6 +24,12 @@
               <div class="answer">{{ `答案:${item.answer}` }}</div>
             </div>
           </div>
+          <div class="box" v-if="aiType == 3">
+            <div v-for="(item, index) in aiCreate" :key="index" class="choice">
+              <div class="title">{{ `${index + 1}:${item.title}` }}</div>
+              <div class="answer">{{ `答案:${item.answer}` }}</div>
+            </div>
+          </div>
         </div>
       </div>
       <div slot="footer">
@@ -46,6 +54,14 @@ export default {
   },
   data() {
     return {
+      example: {
+        '1':{
+          'title':'请你以富文本的形式给我出三个关于小学数学单位换算的选择题,每个选择题选项不少于4个,需要答案,但不需要解释,符号请使用中文的'
+        },
+        '2':{
+          'title':'请你以富文本的形式给我出三个关于三年级语文知识问答的问答题,需要答案,但不需要解释'
+        }
+      },
       text: "",
       aiCreate: [],
       aiType: "",
@@ -60,6 +76,9 @@ export default {
     close() {
       this.$emit('update:aiDialogVisible', false)
     },
+    checkExample(type){
+      this.text = this.example[type].title
+    },
     guid() {
       var _num,
         i,
@@ -79,15 +98,16 @@ export default {
         this.$message.error("请输入要发送的消息")
         return
       }
-
+      // else if (this.text.indexOf("添加文档") !== -1) {
+      //   this.aiType = 4
+      // }
       if (this.text.indexOf("选择题") !== -1) {
         this.aiType = 1
       } else if (this.text.indexOf("问答题") !== -1) {
-        this.aiType = 2
-      } else if (this.text.indexOf("填空题") !== -1) {
         this.aiType = 3
-      } else if (this.text.indexOf("添加文档") !== -1) {
-        this.aiType = 4
+      }else {
+        this.$message.error("生成的文字中要包含选择题或者问答题才能生成题目哦,请重新编辑下吧")
+        return
       }
       this.loading = true
       let param = {
@@ -131,6 +151,12 @@ export default {
     },
     generate2(aiReturn) {
       this.loading = true
+      let content = ''
+      if(this.aiType == 1){
+        content = `${JSON.stringify(aiReturn)},要求返回格式是Array [{"title":"",options:[],answer:[]}]`
+      }else if(this.aiType == 3) {
+        content = `${JSON.stringify(aiReturn)},要求返回格式是Array [{title: "",answer: ""}]`
+      }
       let param = {
         model: "gpt-3.5-turbo",
         temperature: 0,
@@ -141,7 +167,7 @@ export default {
         messages: [
           {
             role: "user",
-            content: `${JSON.stringify(aiReturn)},要求返回格式是Array [{"title":"",options:[],answer:[]}]`
+            content: content
           },
         ],
         uid: this.guid(),
@@ -159,7 +185,11 @@ export default {
             return;
           }
           let aiCreate = res.data.FunctionResponse.choices[0].message.content;
-          aiCreate = JSON.parse(aiCreate)
+          try {
+            aiCreate = JSON.parse(aiCreate)
+          } catch (error) {
+            this.generate2(aiReturn) 
+          }
           console.log(aiCreate)
           this.aiCreate = aiCreate;
           this.loading = false
@@ -175,8 +205,8 @@ export default {
         this.$message.error("请先创建Ai内容!");
         return;
       }
-      if(this.aiType !== 1){
-        this.$message.error("目前只支持选择题的创建!输入内容必须包含选择题三个字!");
+      if(this.aiType !== 1 && this.aiType !== 3){
+        this.$message.error("目前只支持选择题/问答题的创建!输入内容必须包含选择题/问答题!");
         return;
       }
       var json = JSON.parse(JSON.stringify(this.aiJson))
@@ -217,6 +247,20 @@ export default {
             }
           )
         }
+      }else if(this.aiType === 3){
+        for (var i = 0; i < this.aiCreate.length; i++) {
+          array.push(
+            {
+              json: {
+                answer: this.aiCreate[i].answer,
+                title: this.aiCreate[i].title,
+                type: 1
+              },
+              ttype: 1,
+              type: 3
+            }
+          )
+        }
       }
       if (!json.length || json[0].ttype == 1) {
         json = [...json, ...array]

+ 1 - 1
src/components/pages/test/add/setInfo/manualCreated.vue

@@ -51,7 +51,7 @@ export default {
             checkJson: [
                 // {
                 //     ttype: 1, //题目分类 1普通题目 2分组 3分页
-                //     type: 1, //题型分类 1选择题, 2问答题 3填空题 4添加文档
+                //     type: 1, //题型分类 1选择题,  3问答题 4添加文档
                 //     array:[] //题目
                 // }
             ],

+ 2 - 2
src/components/pages/testStudent/view/component/topic.vue

@@ -81,8 +81,8 @@ export default {
       page: 0,
       options2: {
         1: "选择题",
-        2: "问答题",
-        3: "填空题",
+        // 2: "问答题",
+        3: "问答题",
         4: "添加文档",
       },
     };

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません