Преглед изворни кода

fix: 修复多个功能问题并完善初始化逻辑

1. 修复时间排序按钮显示条件逻辑
2. 为题型8的表单初始化添加timeSort空数组
3. 移除多余的空白行并添加addQtype调试日志
4. 修复文档示例中的语法和格式问题
SanHQin пре 1 недеља
родитељ
комит
d1acf69d14

+ 1 - 1
src/components/pages/test/add/components/timeBox/time.vue

@@ -71,7 +71,7 @@
         size="mini"
         size="mini"
         icon="el-icon-plus"
         icon="el-icon-plus"
         style="margin-top: 20px;"
         style="margin-top: 20px;"
-        v-show="checkJson.timeSort.length<1"
+        v-show="!checkJson.timeSort || checkJson.timeSort.length<1"
         @click.stop="addTimeSort"
         @click.stop="addTimeSort"
       ></el-button>
       ></el-button>
     </div>
     </div>

+ 3 - 1
src/components/pages/test/add/edit/edit/index.vue

@@ -453,7 +453,8 @@ export default {
         } else if (topicType == 8) {
         } else if (topicType == 8) {
           json.json = {
           json.json = {
             title: "",
             title: "",
-            detail: ""
+            detail: "",
+            timeSort:[],
           };
           };
         } else if (topicType == 9) {
         } else if (topicType == 9) {
           json.json = {
           json.json = {
@@ -650,6 +651,7 @@ export default {
       this.$emit("changeJson", this.manualJson);
       this.$emit("changeJson", this.manualJson);
     },
     },
     addQtype(type) {
     addQtype(type) {
+      console.log('addQtype',type)
       if (type == 1) {
       if (type == 1) {
         let type = 1;
         let type = 1;
         if (this.manualJson.length > 0) {
         if (this.manualJson.length > 0) {

+ 42 - 18
src/components/pages/test/add/edit/index.vue

@@ -172,7 +172,7 @@ export default {
           return this.$message.error("请上传.docx或.doc格式的文件");
           return this.$message.error("请上传.docx或.doc格式的文件");
         }
         }
 
 
-				
+
         let uploadData = await this.uploadFile(file);
         let uploadData = await this.uploadFile(file);
         if (uploadData == 1) {
         if (uploadData == 1) {
           this.loading = false;
           this.loading = false;
@@ -284,31 +284,55 @@ ATTENTION: Use '##' to SPLIT SECTIONS, not '#'. Output format carefully referenc
 Instruction: Based on the context, follow "Format example", write content
 Instruction: Based on the context, follow "Format example", write content
 
 
 #Context
 #Context
-##角色描述
-你是一位行政文员,你需要提取文档中需要收集的信息,梳理出需要收集的信息表格,确定信息收表的题目内容与题目类型。
-##任务描述
-你的任务是阅读上传文档中的内容,提取并输出文档中需要填写的信息,并输出收集信息表单,输出格式为## Format example。你的任务分为三步:
-第一步:提取文档中需要收集的信息内容。信息内容使用文件中的原文,并直接“## Format example”的形式罗列出需要收集的信息清单,不需要二次的分类和总结。通常提取文档中表格中的内容,其他描述性的文字、项目背景、审核意见等内容不应该出现在需要收集的表单内。
-第二步:判断这些需要需要收集的信息以什么题目类型的进行收集,除“年 月 日/日期”等内容使用日期外,其他题目都默认使用文本。
-第三步:输出信息收集表单,你仅仅只需要输出一份## Format example格式的数据,不需要增加任何描述性文字。
-##信息补充
-表单的题目类型包含问答、单选、多选
-文本:需要收集的信息为文本格式的内容,例如“姓名、年级、项目经历、获奖等文本内容”
-单选:需要收集的信息提供了选项,例如文档的表格中出现“性别 男 女” 。或文档中某项收集信息中提供了“是 否”或其他具有选择符号的内容,需要关联上下文判断。
-日期:文档中单独出现需要收集的信息中设计到“年 月 日”“日期”“时间”等,与日期相关的内容。如果文档中出现多个日期相关的题目,只保留一个日期题目类型即可。
-标题:文档中的总标题
-说明:文档中的总标题下的说明性文字
+## 角色描述
+你是一位专业且细致的行政文员。你的主要职责是阅读并分析上传的文档,精准提取其中需要收集的信息,梳理成标准的信息收集表单,并准确判定每条信息的题目类型。
+
+## 任务描述
+你需要阅读上传的文档内容,提取需要填写的信息,并输出一份标准的信息收集表单。请按照以下逻辑进行处理:
+**第一步:提取信息内容。** 提取文档中需要被填写和收集的信息内容。直接使用文件中的原文提取,不需要二次分类和总结。重点关注文档中的表格或留白填空处,过滤掉项目背景、政策描述、审核意见等非收集性质的说明性文字。
+**第二步:判定题目类型(核心规则)。**
+*   优先遵循文档要求: 如果文档中已经明确划分了题目类型或对内容格式有明确要求(例如文本中标注了“以下内容全部为评分题”、“第一部分:单选题”、“第二部分:多选题”等),**必须严格按照文档中的明确要求设置题目内容和题目类型。
+*   无要求时按语义分析: 如果文档中没有提及任何题型要求,则根据上下文语义进行自动推断(推断规则见下文“题目类型说明”)。
+**第三步:输出表单。最终结果仅仅输出一份 Markdown 格式的表格,表格前后不需要增加任何描述性文字、问候语或解释。
+
+## 题目类型说明
+表单的可用题目类型仅限于以下几种:【文本、单选、多选、日期、评分、附件】。
+在**文档无明确要求**的情况下,请按以下规则推断:
+1. **单选:** 需要收集的信息提供了互斥的选项,例如文档中出现“性别:男 / 女”,或提供了“是 / 否”等带有选择符号(如口、☑)的内容,需结合上下文判断。
+2. **日期:** 当信息中单独涉及“年 月 日”、“出生日期”、“时间”等与日期强相关的内容时,使用此类型。注意:如果文档中出现多个日期相关的题目,只保留一个最核心的日期题目类型即可。
+3. **评分:** 涉及星级量表或程度打分(如0-10等级)的内容。
+4. **附件:** 涉及要求上传照片、证明文件、扫描件等内容。
+5. **文本:** 默认兜底类型。除上述明确特征外,姓名、年级、项目经历、获奖情况等常规信息,全部默认使用文本类型。
+
 
 
 ##题目格式
 ##题目格式
 文本:{"ttype":1,"type":3,"json":{"title":"标题","type":1,"answer":""}}
 文本:{"ttype":1,"type":3,"json":{"title":"标题","type":1,"answer":""}}
-单选:{"ttype":1,"type":1,"json":{"title":"标题","type":1,"array":[{"option":"选项1","img":""}, {"option":"选项2","img":""}],"answer":""}}
-多选:{"ttype":1,"type":1,"json":{"title":"标题","type":2,"array":[{"option":"选项1","img":""},{"option":"选项2","img":""}],"answer":""}}
+单选题:{"ttype":1,"type":1,"json":{"title":"标题","type":1,"array":[{"option":"选项1","img":""},{"option":"选项2","img":""}],"answer":""}}
+评分题:{"ttype":1,"type":7,"json":{"title":"标题","detail:"描述","small":0,"big":10}}
+日期:{"ttype":1,"type":8,"json":{"title":"标题","detail:"描述","timeSort":[]}}
+附件:{"ttype":1,"type":5,"json":{"title":"标题","type":1,"detail":"描述"}}
+多选题:{"ttype":1,"type":1,"json":{"title":"标题","type":2,"array":[{"option":"选项1","img":""},{"option":"选项2","img":""}],"answer":[]}}
 
 
 标题和说明:{"formName":"标题","illustrate":"说明"}
 标题和说明:{"formName":"标题","illustrate":"说明"}
 
 
 ## Format example
 ## Format example
-[{"formName":"标题","illustrate":"说明"},{"ttype":1,"type":3,"json":{"title":"标题","type":1,"answer":""}},{"ttype":1,"type":1,"json":{"title":"标题","type":1,"array":[{"option":"选项1","img":""},{"option":"选项2","img":""}],"answer":""}},{"ttype":1,"type":1,"json":{"title":"标题","type":2,"array":[{"option":"选项1","img":""},{"option":"选项2","img":""}],"answer":""}}]
+[{"formName":"标题","illustrate":"说明"},{"ttype":1,"type":3,"json":{"title":"标题","type":1,"answer":""}},{"ttype":1,"type":1,"json":{"title":"标题","type":1,"array":[{"option":"选项1","img":""},{"option":"选项2","img":""}],"answer":""}},{"ttype":1,"type":1,"json":{"title":"标题","type":2,"array":[{"option":"选项1","img":""},{"option":"选项2","img":""}],"answer":[]}}]
 `;
 `;
+
+// ##角色描述
+// 你是一位行政文员,你需要提取文档中需要收集的信息,梳理出需要收集的信息表格,确定信息收表的题目内容与题目类型。
+// ##任务描述
+// 你的任务是阅读上传文档中的内容,提取并输出文档中需要填写的信息,并输出收集信息表单,输出格式为## Format example。你的任务分为三步:
+// 第一步:提取文档中需要收集的信息内容。信息内容使用文件中的原文,并直接“## Format example”的形式罗列出需要收集的信息清单,不需要二次的分类和总结。通常提取文档中表格中的内容,其他描述性的文字、项目背景、审核意见等内容不应该出现在需要收集的表单内。
+// 第二步:判断这些需要需要收集的信息以什么题目类型的进行收集,除“年 月 日/日期”等内容使用日期外,其他题目都默认使用文本。
+// 第三步:输出信息收集表单,你仅仅只需要输出一份## Format example格式的数据,不需要增加任何描述性文字。
+// ##信息补充
+// 表单的题目类型包含问答、单选、多选
+// 文本:需要收集的信息为文本格式的内容,例如“姓名、年级、项目经历、获奖等文本内容”
+// 单选:需要收集的信息提供了选项,例如文档的表格中出现“性别 男 女” 。或文档中某项收集信息中提供了“是 否”或其他具有选择符号的内容,需要关联上下文判断。
+// 日期:文档中单独出现需要收集的信息中设计到“年 月 日”“日期”“时间”等,与日期相关的内容。如果文档中出现多个日期相关的题目,只保留一个日期题目类型即可。
+// 标题:文档中的总标题
+// 说明:文档中的总标题下的说明性文字
 // 日期:{"ttype":1,"type":8,"json":{"title":"标题","detail":""}}
 // 日期:{"ttype":1,"type":8,"json":{"title":"标题","detail":""}}
 
 
         let params = {
         let params = {