|
|
@@ -1,13 +1,13 @@
|
|
|
<template>
|
|
|
<div class="r_box" v-loading="isLoading">
|
|
|
<div class="r_cbox">
|
|
|
- <span>班级筛选</span>
|
|
|
+ <span>{{lang.ssClassFilter}}</span>
|
|
|
<el-select
|
|
|
multiple
|
|
|
collapse-tags
|
|
|
class="r_select"
|
|
|
v-model="chooseClass"
|
|
|
- placeholder="全部"
|
|
|
+ :placeholder="lang.ssAll"
|
|
|
filterable
|
|
|
@change="changeClass"
|
|
|
>
|
|
|
@@ -22,13 +22,13 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="r_cbox">
|
|
|
- <span>学生姓名</span>
|
|
|
+ <span>{{lang.ssStuName}}</span>
|
|
|
<el-select
|
|
|
multiple
|
|
|
collapse-tags
|
|
|
class="r_select"
|
|
|
v-model="uname"
|
|
|
- placeholder="全部"
|
|
|
+ :placeholder="lang.ssAll"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in userAarray"
|
|
|
@@ -41,13 +41,13 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="r_cbox" v-if="(dataJson.state != 5 && dataJson.state != 6)">
|
|
|
- <span>选择阶段</span>
|
|
|
+ <span>{{lang.ssSelectStage}}</span>
|
|
|
<el-select
|
|
|
class="r_select"
|
|
|
v-model="chap"
|
|
|
multiple
|
|
|
collapse-tags
|
|
|
- placeholder="全部"
|
|
|
+ :placeholder="lang.ssAll"
|
|
|
@change="changeChap"
|
|
|
>
|
|
|
<el-option
|
|
|
@@ -60,13 +60,13 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="r_cbox">
|
|
|
- <span>任务内容</span>
|
|
|
+ <span>{{lang.ssTaskContent}}</span>
|
|
|
<el-select
|
|
|
class="r_select"
|
|
|
v-model="task"
|
|
|
multiple
|
|
|
collapse-tags
|
|
|
- placeholder="全部"
|
|
|
+ :placeholder="lang.ssAll"
|
|
|
>
|
|
|
<el-option-group
|
|
|
v-for="(group, index) in dyAarray"
|
|
|
@@ -84,7 +84,7 @@
|
|
|
</el-select>
|
|
|
</div>
|
|
|
<div class="btn_box">
|
|
|
- <el-button class="btn" type="primary" @click="confirmPdf">确定</el-button>
|
|
|
+ <el-button class="btn" type="primary" @click="confirmPdf">{{lang.ssConfirm}}</el-button>
|
|
|
</div>
|
|
|
|
|
|
<el-dialog
|
|
|
@@ -98,8 +98,8 @@
|
|
|
<div style="color: #fff">
|
|
|
{{
|
|
|
(dataJson.state == 5 || dataJson.state == 6)
|
|
|
- ? "按任务导出"
|
|
|
- : "自定义导出" + ":" + dataJson.title
|
|
|
+ ? lang.ssTaskExport
|
|
|
+ : lang.ssCustomExp + ":" + dataJson.title
|
|
|
}}
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -117,1013 +117,554 @@
|
|
|
<h1>{{ userP.username }}</h1>
|
|
|
</div> -->
|
|
|
|
|
|
- <div
|
|
|
- v-for="(i, wip) in workList"
|
|
|
- v-if="(chap.length ? chap.indexOf(wip) != -1 : true)"
|
|
|
- :key="i.id"
|
|
|
- class="stageCon"
|
|
|
- >
|
|
|
- <!-- v-if="
|
|
|
- isStage(i.taskList, userP.userid) &&
|
|
|
- (chap.length ? chap.indexOf(wip) != -1 : true)
|
|
|
- " -->
|
|
|
- <div v-if="dataJson.state != 5" class="stageTit">
|
|
|
- 第{{ i.id * 1 + 1 }}阶段<span v-if="i.name">:{{ i.name }}</span>
|
|
|
- </div>
|
|
|
+ <template v-for="(i, wip) in workList">
|
|
|
<div
|
|
|
- v-for="k in i.taskList"
|
|
|
- :key="k.task + 'a'"
|
|
|
- v-if="isTask( k)"
|
|
|
-
|
|
|
- style="margin-bottom: 15px"
|
|
|
+ v-if="(chap.length ? chap.indexOf(wip) != -1 : true)"
|
|
|
+ :key="i.id"
|
|
|
+ class="stageCon"
|
|
|
>
|
|
|
- <!-- v-if="isTask(k.toolEList, userP.userid, k)" -->
|
|
|
-
|
|
|
- <div
|
|
|
- style="
|
|
|
- width: 100%;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- margin-bottom: 10px;
|
|
|
- "
|
|
|
- >
|
|
|
- <div class="taskTitInd">
|
|
|
- <span>任务{{ k.task + 1 }}</span>
|
|
|
- <span>{{ k.taskTit }}</span>
|
|
|
- </div>
|
|
|
- <div></div>
|
|
|
- </div>
|
|
|
- <div v-if="k.taskDetail" class="taskBri">
|
|
|
- <div v-html="k.taskDetail"></div>
|
|
|
+ <!-- v-if="
|
|
|
+ isStage(i.taskList, userP.userid) &&
|
|
|
+ (chap.length ? chap.indexOf(wip) != -1 : true)
|
|
|
+ " -->
|
|
|
+ <div v-if="dataJson.state != 5" class="stageTit">
|
|
|
+ {{lang.ssStage.replace(/\*/g, i.id * 1 + 1)}}<span v-if="i.name">:{{ i.name }}</span>
|
|
|
</div>
|
|
|
- <div
|
|
|
- class="WorksCon"
|
|
|
- v-for="(l, lind) in k.toolEList"
|
|
|
- :key="lind + 'l'"
|
|
|
- >
|
|
|
+
|
|
|
+ <template v-for="k in i.taskList">
|
|
|
<div
|
|
|
- v-if="l.content && l.content.length"
|
|
|
- v-for="(imgp, imgIdx) in l.content"
|
|
|
- :key="imgIdx + 'img'"
|
|
|
+ :key="k.task + 'a'"
|
|
|
+ v-if="isTask(k)"
|
|
|
+ style="margin-bottom: 15px"
|
|
|
>
|
|
|
-
|
|
|
+ <!-- v-if="isTask(k.toolEList, userP.userid, k)" -->
|
|
|
<div
|
|
|
- v-for="(userP, upi) in pdfUser"
|
|
|
- style="background-color: #fff;border-radius: 8px;margin-top: 10px;"
|
|
|
- :key="upi + 'upi'"
|
|
|
+ style="
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ "
|
|
|
>
|
|
|
- <div v-if="
|
|
|
- (imgp && imgp[0] && imgp[0].userid == userP.userid) ||
|
|
|
- imgp.userid == userP.userid
|
|
|
- ">
|
|
|
-
|
|
|
- <div v-if="l.tool[0] == 15">
|
|
|
- <div style="padding: 10px;box-sizing: border-box;">
|
|
|
- <h1>{{ userP.username }}</h1>
|
|
|
- </div>
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/thirdToolList/answer.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:问答工具</div>
|
|
|
- <div>提问:{{ l.content[0][0].answerTitle }}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="answerTxt">
|
|
|
- 回答:{{ l.content[0][0].answer }}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 52">
|
|
|
- <div style="padding: 10px;box-sizing: border-box;">
|
|
|
- <h1>{{ userP.username }}</h1>
|
|
|
- </div>
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/fourthToolList/text.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:文档工具</div>
|
|
|
- <div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="answerTxt" v-html="l.content[0].text"></div>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 72">
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- style="width: 44px;height: 44px;object-fit: contain;"
|
|
|
- :src="l.appJson.json.icon"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:{{ l.appJson.name }}</div>
|
|
|
- <div>
|
|
|
- {{ l.appJson.detail }}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div style="margin-bottom: 20px;" v-for="(item,index) in l.content[0]" :key="index+'coco'">
|
|
|
- <div style="margin-bottom: 15px;font-size: 14px;font-weight: 600;color: #000;">第{{ index + 1}}阶段</div>
|
|
|
- <div v-for="(po,PInd) in item.messages" :key="PInd+'PInd'">
|
|
|
- <div class="left" v-if="po.role == 'assistant'">
|
|
|
- <div class="TName">小可AI助手</div>:
|
|
|
- <div class="con" v-html="MarkdownT(po.content)"></div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="left" v-if="po.role == 'user'">
|
|
|
- <div class="TName">{{ userP.username }}</div>:
|
|
|
- <div class="con" v-html="po.content"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="taskTitInd">
|
|
|
+ <span>{{lang.ssTaskrp.replace(/\*/g, k.task + 1)}}</span>
|
|
|
+ <span>{{ k.taskTit }}</span>
|
|
|
</div>
|
|
|
- <div v-if="l.tool[0] == 16 || l.tool[0] == 50">
|
|
|
- <div style="padding: 10px;box-sizing: border-box;">
|
|
|
- <h1>{{ userP.username }}</h1>
|
|
|
- </div>
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- v-if="l.tool[0] == 16"
|
|
|
- src="../../../assets/icon/thirdToolList/work.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <img
|
|
|
- v-if="l.tool[0] == 50"
|
|
|
- src="../../../assets/icon/thirdToolList/plwork.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
-
|
|
|
- <div class="toolTit">
|
|
|
- <div>
|
|
|
- 工具{{ lind + 1 }}:{{
|
|
|
- l.tool[0] == 16 ? "作业提交" : "批量上传"
|
|
|
- }}
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-for="(i, codex) in l.content" :key="codex + 'co'">
|
|
|
- <div class="answerTxt" v-html="i.con"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div></div>
|
|
|
+ </div>
|
|
|
+ <div v-if="k.taskDetail" class="taskBri">
|
|
|
+ <div v-html="k.taskDetail"></div>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ class="WorksCon"
|
|
|
+ v-for="(l, lind) in k.toolEList"
|
|
|
+ :key="lind + 'l'"
|
|
|
+ >
|
|
|
+ <template v-if="l.content && l.content.length">
|
|
|
+ <div
|
|
|
+ v-for="(imgp, imgIdx) in l.content"
|
|
|
+ :key="imgIdx + 'img'"
|
|
|
+ >
|
|
|
+
|
|
|
<div
|
|
|
- v-if="l.tool[0] == 7 || l.tool[0] == 1 || l.tool[0] == 3"
|
|
|
+ v-for="(userP, upi) in pdfUser"
|
|
|
+ style="background-color: #fff;border-radius: 8px;margin-top: 10px;"
|
|
|
+ :key="upi + 'upi'"
|
|
|
>
|
|
|
- <div style="padding: 10px;box-sizing: border-box;">
|
|
|
- <h1>{{ userP.username }}</h1>
|
|
|
- </div>
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- v-if="l.tool[0] == 1"
|
|
|
- src="../../../assets/icon/secondToolList/whiteBoard.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <img
|
|
|
- v-if="l.tool[0] == 3"
|
|
|
- src="../../../assets/icon/secondToolList/mindMapping.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <img
|
|
|
- v-if="l.tool[0] == 7"
|
|
|
- src="../../../assets/icon/secondToolList/mindNetwork.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
-
|
|
|
- <div class="toolTit">
|
|
|
- <div>
|
|
|
- 工具{{ lind + 1 }}:{{
|
|
|
- l.tool[0] == 1
|
|
|
- ? "电子白板"
|
|
|
- : l.tool[0] == 7
|
|
|
- ? "思维网格"
|
|
|
- : "思维导图"
|
|
|
- }}
|
|
|
+ <div v-if="
|
|
|
+ (imgp && imgp[0] && imgp[0].userid == userP.userid) ||
|
|
|
+ imgp.userid == userP.userid
|
|
|
+ ">
|
|
|
+
|
|
|
+ <div v-if="l.tool[0] == 15">
|
|
|
+ <div style="padding: 10px;box-sizing: border-box;">
|
|
|
+ <h1>{{ userP.username }}</h1>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
+ <div class="toolBlk">
|
|
|
+ <img
|
|
|
+ src="../../../assets/icon/thirdToolList/answer.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div class="toolTit">
|
|
|
+ <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssQATool}}</div>
|
|
|
+ <div>{{lang.ssQuestionT}}{{ l.content[0][0].answerTitle }}</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <img
|
|
|
- style="max-width: 200px"
|
|
|
- :src="l.content[0].con"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div>{{ l.content[0].con }}</div>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 48">
|
|
|
- <div style="padding: 10px;box-sizing: border-box;">
|
|
|
- <h1>{{ userP.username }}</h1>
|
|
|
- </div>
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/fourthToolList/table.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:表格</div>
|
|
|
- <div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
+ <div class="answerTxt">
|
|
|
+ {{lang.ssAnswer}}{{ l.content[0][0].answer }}
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <el-form>
|
|
|
- <div class="cont" v-html="l.content[0].text"></div>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 4">
|
|
|
- <div style="padding: 10px;box-sizing: border-box;">
|
|
|
- <h1>{{ userP.username }}</h1>
|
|
|
- </div>
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/thirdToolList/ask.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:问卷调查</div>
|
|
|
- <div>标题:{{ l.content[0][0].askJson.askTitle }}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div
|
|
|
- style="margin-bottom: 5px"
|
|
|
- v-for="(i, index) in l.content[0][0].askJson.askJson"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
- <div>题目:{{ i.askstitle }}</div>
|
|
|
- <el-radio-group
|
|
|
- v-if="!i.type"
|
|
|
- v-model="l.content[0][0].anwer[index]"
|
|
|
- >
|
|
|
- <el-radio
|
|
|
- v-for="(item2, checkIndex) in i.checkList"
|
|
|
- :key="checkIndex + 'b'"
|
|
|
- :label="checkIndex"
|
|
|
- disabled
|
|
|
- >
|
|
|
- {{ item2 }}
|
|
|
- </el-radio>
|
|
|
- </el-radio-group>
|
|
|
- <el-checkbox-group
|
|
|
- v-model="l.content[0][0].anwer[index]"
|
|
|
- v-else
|
|
|
- >
|
|
|
- <div class="radioBox">
|
|
|
- <el-checkbox
|
|
|
- v-for="(item2, checkIndex) in i.checkList"
|
|
|
- :key="checkIndex + 'c'"
|
|
|
- :label="checkIndex"
|
|
|
- disabled
|
|
|
- >
|
|
|
- {{ item2 }}
|
|
|
- </el-checkbox>
|
|
|
+ <div v-if="l.tool[0] == 52">
|
|
|
+ <div style="padding: 10px;box-sizing: border-box;">
|
|
|
+ <h1>{{ userP.username }}</h1>
|
|
|
</div>
|
|
|
- </el-checkbox-group>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 45">
|
|
|
- <div style="padding: 10px;box-sizing: border-box;">
|
|
|
- <h1>{{ userP.username }}</h1>
|
|
|
- </div>
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/thirdToolList/choose.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:选择题</div>
|
|
|
- <div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
+ <div class="toolBlk">
|
|
|
+ <img
|
|
|
+ src="../../../assets/icon/fourthToolList/text.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div class="toolTit">
|
|
|
+ <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssDocTool}}</div>
|
|
|
+ <div>
|
|
|
+ {{lang.ssDefaultDesc}}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ <div class="answerTxt" v-html="l.content[0].text"></div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-for="(i, index) in l.content[0].testJson"
|
|
|
- :key="index + 'm'"
|
|
|
- >
|
|
|
- <div>
|
|
|
- 题目:{{ i.teststitle }}
|
|
|
- <span
|
|
|
- v-if="
|
|
|
- JSON.stringify(l.content[0].radio[index]) ==
|
|
|
- JSON.stringify(i.answer)
|
|
|
- "
|
|
|
- style="color: #868ce4"
|
|
|
- >回答正确</span
|
|
|
- >
|
|
|
- <span v-else style="color: red">回答错误</span>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-if="i.type == 1"
|
|
|
- style="display: flex; flex-direction: column"
|
|
|
- >
|
|
|
- <el-radio-group v-model="l.content[0].radio[index]">
|
|
|
- <div class="radioBox">
|
|
|
- <el-radio
|
|
|
- v-for="(item2, checkIndex) in i.checkList"
|
|
|
- :key="checkIndex + 'b'"
|
|
|
- :label="checkIndex"
|
|
|
- disabled
|
|
|
- :class="[
|
|
|
- i.answer == checkIndex
|
|
|
- ? 'redioStyle5'
|
|
|
- : 'redioStyle2'
|
|
|
- ]"
|
|
|
- >
|
|
|
- <div
|
|
|
- v-if="
|
|
|
- item2 && item2.imgType && item2.imgType == 1
|
|
|
- "
|
|
|
- >
|
|
|
- <div
|
|
|
- class="inImg"
|
|
|
- @click.stop="previewImg(item2.src)"
|
|
|
- >
|
|
|
- <img
|
|
|
- style="display: block"
|
|
|
- :src="item2.src"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <span v-else v-html="item2"></span>
|
|
|
- </el-radio>
|
|
|
+ <div v-if="l.tool[0] == 72">
|
|
|
+ <div class="toolBlk">
|
|
|
+ <img
|
|
|
+ style="width: 44px;height: 44px;object-fit: contain;"
|
|
|
+ :src="l.appJson.json.icon"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div class="toolTit">
|
|
|
+ <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{ l.appJson.name }}</div>
|
|
|
+ <div>
|
|
|
+ {{ l.appJson.detail }}
|
|
|
</div>
|
|
|
- </el-radio-group>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="radioBox">
|
|
|
- <el-checkbox-group
|
|
|
- v-model="l.content[0].radio[index]"
|
|
|
- v-if="i.type == '2'"
|
|
|
- >
|
|
|
- <div class="radioBox">
|
|
|
- <el-checkbox
|
|
|
- v-for="(item2, checkIndex) in i.checkList"
|
|
|
- :key="checkIndex + 'c'"
|
|
|
- :label="checkIndex"
|
|
|
- disabled
|
|
|
- :class="[
|
|
|
- i.answer.includes(checkIndex)
|
|
|
- ? 'redioStyle3'
|
|
|
- : 'redioStyle4'
|
|
|
- ]"
|
|
|
- >
|
|
|
- <div style="display: flex">
|
|
|
- <div
|
|
|
- v-if="
|
|
|
- item2 &&
|
|
|
- item2.imgType &&
|
|
|
- item2.imgType == 1
|
|
|
- "
|
|
|
- >
|
|
|
- <div
|
|
|
- class="inImg"
|
|
|
- @click.stop="previewImg(item2.src)"
|
|
|
- >
|
|
|
- <img
|
|
|
- style="display: block"
|
|
|
- :src="item2.src"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <span v-else v-html="item2"></span>
|
|
|
+ <div style="margin-bottom: 20px;" v-for="(item,index) in l.content[0]" :key="index+'coco'">
|
|
|
+ <div style="margin-bottom: 15px;font-size: 14px;font-weight: 600;color: #000;">{{lang.ssStage.replace(/\*/g, index + 1)}}</div>
|
|
|
+ <div v-for="(po,PInd) in item.messages" :key="PInd+'PInd'">
|
|
|
+ <div class="left" v-if="po.role == 'assistant'">
|
|
|
+ <div class="TName">{{lang.ssAIAssist}}</div>:
|
|
|
+ <div class="con" v-html="MarkdownT(po.content)"></div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="left" v-if="po.role == 'user'">
|
|
|
+ <div class="TName">{{ userP.username }}</div>:
|
|
|
+ <div class="con" v-html="po.content"></div>
|
|
|
</div>
|
|
|
- </el-checkbox>
|
|
|
</div>
|
|
|
- </el-checkbox-group>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 41">
|
|
|
- <div style="padding: 10px;box-sizing: border-box;">
|
|
|
- <h1>{{ userP.username }}</h1>
|
|
|
- </div>
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/thirdToolList/select.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:选择匹配</div>
|
|
|
- <div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
- </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <img
|
|
|
- @click.stop="previewImg(l.selectJson.url)"
|
|
|
- style="max-width: 200px"
|
|
|
- :src="l.selectJson.url"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div>
|
|
|
- {{ l.selectJson.url }}
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <span style="margin-right: 10px">选项:</span
|
|
|
- ><span
|
|
|
- style="margin-right: 10px"
|
|
|
- v-for="(item, itInd) in l.selectJson.select"
|
|
|
- :key="itInd"
|
|
|
- >{{ item }}</span
|
|
|
- >
|
|
|
- </div>
|
|
|
- <div style="margin: 10px 0;">
|
|
|
- <span style="margin-right: 10px">回答:</span>
|
|
|
-
|
|
|
- <div
|
|
|
- style="margin-right: 10px"
|
|
|
- v-for="(item, itInd) in l.content"
|
|
|
- :key="itInd"
|
|
|
- >
|
|
|
- <div v-if="item.userid == userP.userid">
|
|
|
- <div v-for="(itemCon,itemConIndex) in item.con" :key="itemConIndex+'itemConIndex'">
|
|
|
- 选项{{ itemConIndex + 1 }}:{{ l.selectJson.select[itemCon] }}
|
|
|
- <span
|
|
|
- v-if="
|
|
|
- l.selectJson.answer[itemConIndex] == item.con[itemConIndex]
|
|
|
- "
|
|
|
- style="color: #868ce4"
|
|
|
- >回答正确</span
|
|
|
- >
|
|
|
- <span v-else style="color: red">回答错误</span>
|
|
|
+ <div v-if="l.tool[0] == 16 || l.tool[0] == 50">
|
|
|
+ <div style="padding: 10px;box-sizing: border-box;">
|
|
|
+ <h1>{{ userP.username }}</h1>
|
|
|
</div>
|
|
|
-
|
|
|
- </div>
|
|
|
-
|
|
|
- </div>
|
|
|
-
|
|
|
- </div>
|
|
|
-
|
|
|
- <div>
|
|
|
- <span style="margin-right: 10px">答案:</span>
|
|
|
-
|
|
|
- <span
|
|
|
- style="margin-right: 10px"
|
|
|
- v-for="(item, itInd) in l.selectJson.answer"
|
|
|
- :key="itInd"
|
|
|
- >选项{{ itInd + 1 }}:{{
|
|
|
- l.selectJson.select[item]
|
|
|
- }}</span
|
|
|
- >
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 47">
|
|
|
- <div style="padding: 10px;box-sizing: border-box;">
|
|
|
- <h1>{{ userP.username }}</h1>
|
|
|
- </div>
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/fourthToolList/conSentences.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:排序</div>
|
|
|
- <div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
+ <div class="toolBlk">
|
|
|
+ <img
|
|
|
+ v-if="l.tool[0] == 16"
|
|
|
+ src="../../../assets/icon/thirdToolList/work.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <img
|
|
|
+ v-if="l.tool[0] == 50"
|
|
|
+ src="../../../assets/icon/thirdToolList/plwork.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+
|
|
|
+ <div class="toolTit">
|
|
|
+ <div>
|
|
|
+ {{lang.ssTool.replace(/\*/g, lind + 1)}}{{
|
|
|
+ l.tool[0] == 16 ? lang.ssWorkSubmit : lang.ssBatchUpload
|
|
|
+ }}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ {{lang.ssDefaultDesc}}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-for="(i, index) in l.content[0]"
|
|
|
- :key="index"
|
|
|
- style="margin-bottom: 10px"
|
|
|
- >
|
|
|
- <div
|
|
|
- style="
|
|
|
- height: 20px;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- flex-wrap: wrap;
|
|
|
- "
|
|
|
- >
|
|
|
- 题目:
|
|
|
- <div
|
|
|
- class="sortTool"
|
|
|
- v-for="(i, index) in i.addSentence"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
- {{ i }}
|
|
|
+ <div v-for="(i, codex) in l.content" :key="codex + 'co'">
|
|
|
+ <div class="answerTxt" v-html="i.con"></div>
|
|
|
</div>
|
|
|
- <span
|
|
|
- v-if="
|
|
|
- JSON.stringify(i.chooseSenList) ==
|
|
|
- JSON.stringify(i.addSentence)
|
|
|
- "
|
|
|
- style="color: #868ce4"
|
|
|
- >回答正确</span
|
|
|
- >
|
|
|
- <span v-else style="color: red">回答错误</span>
|
|
|
</div>
|
|
|
<div
|
|
|
- style="
|
|
|
- margin: 10px 0;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- flex-wrap: wrap;
|
|
|
- "
|
|
|
+ v-if="l.tool[0] == 7 || l.tool[0] == 1 || l.tool[0] == 3"
|
|
|
>
|
|
|
- 学生回答:
|
|
|
- <div
|
|
|
- class="sortTool"
|
|
|
- v-for="(i, index) in i.chooseSenList"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
- {{ i }}
|
|
|
+ <div style="padding: 10px;box-sizing: border-box;">
|
|
|
+ <h1>{{ userP.username }}</h1>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- 答案:
|
|
|
- <span style="margin: 0 5px">{{
|
|
|
- i.addSentence.join(",")
|
|
|
- }}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- </div> -->
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- </div> -->
|
|
|
- </div>
|
|
|
- </el-dialog>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- <!-- 自定义导出作业pdf弹框 -->
|
|
|
- <!-- <el-dialog
|
|
|
- :visible.sync="worksDialog"
|
|
|
- :before-close="handleClose"
|
|
|
- class="worksDialogCSSExp"
|
|
|
- :append-to-body="true"
|
|
|
- :fullscreen="true"
|
|
|
- >
|
|
|
- <div slot="title" class="header-title">
|
|
|
- <div style="color: #fff">{{dataJson.state == 5 ?"按任务导出" :'自定义导出' + ':' +dataJson.title }}</div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="worksDiaCon" ref="reportPdf">
|
|
|
- <div style="margin-bottom: 30px;font-size: 42px;">
|
|
|
- {{ dataJson.title }}
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-for="(userP, upi) in pdfUser"
|
|
|
- style="background-color: #fff;border-radius: 8px;margin-top: 10px;"
|
|
|
- :key="upi + 'upi'"
|
|
|
- >
|
|
|
- <div style="padding: 10px;box-sizing: border-box;">
|
|
|
- <h1>{{ userP.username }}</h1>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div
|
|
|
- v-for="(i, wip) in workList"
|
|
|
- v-if="
|
|
|
- isStage(i.taskList, userP.userid) &&
|
|
|
- (chap.length ? chap.indexOf(wip) != -1 : true)
|
|
|
- "
|
|
|
- :key="i.id"
|
|
|
- class="stageCon"
|
|
|
- >
|
|
|
- <div v-if="dataJson.state != 5" class="stageTit">
|
|
|
- 第{{ i.id * 1 + 1 }}阶段<span v-if="i.name">:{{ i.name }}</span>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-for="k in i.taskList"
|
|
|
- :key="k.task + 'a'"
|
|
|
- v-if="isTask(k.toolEList, userP.userid, k)"
|
|
|
- style="margin-bottom: 15px"
|
|
|
- >
|
|
|
- <div
|
|
|
- style="
|
|
|
- width: 100%;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- margin-bottom: 10px;
|
|
|
- "
|
|
|
- >
|
|
|
- <div class="taskTitInd">
|
|
|
- <span>任务{{ k.task + 1 }}</span>
|
|
|
- <span>{{ k.taskTit }}</span>
|
|
|
- </div>
|
|
|
- <div></div>
|
|
|
- </div>
|
|
|
- <div v-if="k.taskDetail" class="taskBri">
|
|
|
- <div v-html="k.taskDetail"></div>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- class="WorksCon"
|
|
|
- v-for="(l, lind) in k.toolEList"
|
|
|
- :key="lind + 'l'"
|
|
|
- >
|
|
|
- <div
|
|
|
- v-if="l.content && l.content.length"
|
|
|
- v-for="(imgp, imgIdx) in l.content"
|
|
|
- :key="imgIdx + 'img'"
|
|
|
- >
|
|
|
- <div
|
|
|
- v-if="
|
|
|
- (imgp && imgp[0] && imgp[0].userid == userP.userid) ||
|
|
|
- imgp.userid == userP.userid
|
|
|
- "
|
|
|
- >
|
|
|
- <div v-if="l.tool[0] == 15">
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/thirdToolList/answer.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:问答工具</div>
|
|
|
- <div>提问:{{ l.content[0][0].answerTitle }}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="answerTxt">
|
|
|
- 回答:{{ l.content[0][0].answer }}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 52">
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/fourthToolList/text.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:文档工具</div>
|
|
|
- <div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
+ <div class="toolBlk">
|
|
|
+ <img
|
|
|
+ v-if="l.tool[0] == 1"
|
|
|
+ src="../../../assets/icon/secondToolList/whiteBoard.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <img
|
|
|
+ v-if="l.tool[0] == 3"
|
|
|
+ src="../../../assets/icon/secondToolList/mindMapping.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <img
|
|
|
+ v-if="l.tool[0] == 7"
|
|
|
+ src="../../../assets/icon/secondToolList/mindNetwork.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+
|
|
|
+ <div class="toolTit">
|
|
|
+ <div>
|
|
|
+ {{lang.ssTool.replace(/\*/g, lind + 1)}}{{
|
|
|
+ l.tool[0] == 1
|
|
|
+ ? lang.ssWhiteBoard
|
|
|
+ : l.tool[0] == 7
|
|
|
+ ? lang.ssMindGrid
|
|
|
+ : lang.ssMindMap
|
|
|
+ }}
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ {{lang.ssDefaultDesc}}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ <img
|
|
|
+ style="max-width: 200px"
|
|
|
+ :src="l.content[0].con"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div>{{ l.content[0].con }}</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div class="answerTxt" v-html="l.content[0].text"></div>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 16 || l.tool[0] == 50">
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- v-if="l.tool[0] == 16"
|
|
|
- src="../../../assets/icon/thirdToolList/work.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <img
|
|
|
- v-if="l.tool[0] == 50"
|
|
|
- src="../../../assets/icon/thirdToolList/plwork.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
-
|
|
|
- <div class="toolTit">
|
|
|
- <div>
|
|
|
- 工具{{ lind + 1 }}:{{
|
|
|
- l.tool[0] == 16 ? "作业提交" : "批量上传"
|
|
|
- }}
|
|
|
+ <div v-if="l.tool[0] == 48">
|
|
|
+ <div style="padding: 10px;box-sizing: border-box;">
|
|
|
+ <h1>{{ userP.username }}</h1>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
+ <div class="toolBlk">
|
|
|
+ <img
|
|
|
+ src="../../../assets/icon/fourthToolList/table.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div class="toolTit">
|
|
|
+ <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssTableTool}}</div>
|
|
|
+ <div>
|
|
|
+ {{lang.ssDefaultDesc}}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ <el-form>
|
|
|
+ <div class="cont" v-html="l.content[0].text"></div>
|
|
|
+ </el-form>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div v-for="(i, codex) in l.content" :key="codex + 'co'">
|
|
|
- <div class="answerTxt" v-html="i.con"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-if="l.tool[0] == 7 || l.tool[0] == 1 || l.tool[0] == 3"
|
|
|
- >
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- v-if="l.tool[0] == 1"
|
|
|
- src="../../../assets/icon/secondToolList/whiteBoard.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <img
|
|
|
- v-if="l.tool[0] == 3"
|
|
|
- src="../../../assets/icon/secondToolList/mindMapping.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <img
|
|
|
- v-if="l.tool[0] == 7"
|
|
|
- src="../../../assets/icon/secondToolList/mindNetwork.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
-
|
|
|
- <div class="toolTit">
|
|
|
- <div>
|
|
|
- 工具{{ lind + 1 }}:{{
|
|
|
- l.tool[0] == 1
|
|
|
- ? "电子白板"
|
|
|
- : l.tool[0] == 7
|
|
|
- ? "思维网格"
|
|
|
- : "思维导图"
|
|
|
- }}
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
+ <div v-if="l.tool[0] == 4">
|
|
|
+ <div style="padding: 10px;box-sizing: border-box;">
|
|
|
+ <h1>{{ userP.username }}</h1>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <img
|
|
|
- style="max-width: 200px"
|
|
|
- :src="l.content[0].con"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div>{{ l.content[0].con }}</div>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 48">
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/fourthToolList/table.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:表格</div>
|
|
|
- <div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
+ <div class="toolBlk">
|
|
|
+ <img
|
|
|
+ src="../../../assets/icon/thirdToolList/ask.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div class="toolTit">
|
|
|
+ <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssSurveyTool}}</div>
|
|
|
+ <div>{{lang.ssTitle}}:{{ l.content[0][0].askJson.askTitle }}</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <el-form>
|
|
|
- <div class="cont" v-html="l.content[0].text"></div>
|
|
|
- </el-form>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 4">
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/thirdToolList/ask.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:问卷调查</div>
|
|
|
- <div>标题:{{ l.content[0][0].askJson.askTitle }}</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
|
|
|
- <div
|
|
|
- style="margin-bottom: 5px"
|
|
|
- v-for="(i, index) in l.content[0][0].askJson.askJson"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
- <div>题目:{{ i.askstitle }}</div>
|
|
|
- <el-radio-group
|
|
|
- v-if="!i.type"
|
|
|
- v-model="l.content[0][0].anwer[index]"
|
|
|
- >
|
|
|
- <el-radio
|
|
|
- v-for="(item2, checkIndex) in i.checkList"
|
|
|
- :key="checkIndex + 'b'"
|
|
|
- :label="checkIndex"
|
|
|
- disabled
|
|
|
+ <div
|
|
|
+ style="margin-bottom: 5px"
|
|
|
+ v-for="(i, index) in l.content[0][0].askJson.askJson"
|
|
|
+ :key="index"
|
|
|
>
|
|
|
- {{ item2 }}
|
|
|
- </el-radio>
|
|
|
- </el-radio-group>
|
|
|
- <el-checkbox-group
|
|
|
- v-model="l.content[0][0].anwer[index]"
|
|
|
- v-else
|
|
|
- >
|
|
|
- <div class="radioBox">
|
|
|
- <el-checkbox
|
|
|
- v-for="(item2, checkIndex) in i.checkList"
|
|
|
- :key="checkIndex + 'c'"
|
|
|
- :label="checkIndex"
|
|
|
- disabled
|
|
|
+ <div>{{lang.ssTopic}}:{{ i.askstitle }}</div>
|
|
|
+ <el-radio-group
|
|
|
+ v-if="!i.type"
|
|
|
+ v-model="l.content[0][0].anwer[index]"
|
|
|
>
|
|
|
- {{ item2 }}
|
|
|
- </el-checkbox>
|
|
|
- </div>
|
|
|
- </el-checkbox-group>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 45">
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/thirdToolList/choose.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:选择题</div>
|
|
|
- <div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-for="(i, index) in l.content[0].testJson"
|
|
|
- :key="index + 'm'"
|
|
|
- >
|
|
|
- <div>题目:{{ i.teststitle }}</div>
|
|
|
- <div
|
|
|
- v-if="i.type == 1"
|
|
|
- style="display: flex; flex-direction: column"
|
|
|
- >
|
|
|
- <el-radio-group v-model="l.content[0].radio[index]">
|
|
|
- <div class="radioBox">
|
|
|
<el-radio
|
|
|
v-for="(item2, checkIndex) in i.checkList"
|
|
|
:key="checkIndex + 'b'"
|
|
|
:label="checkIndex"
|
|
|
disabled
|
|
|
- :class="[
|
|
|
- i.answer == checkIndex
|
|
|
- ? 'redioStyle5'
|
|
|
- : 'redioStyle2'
|
|
|
- ]"
|
|
|
>
|
|
|
- <div
|
|
|
- v-if="
|
|
|
- item2 && item2.imgType && item2.imgType == 1
|
|
|
- "
|
|
|
- >
|
|
|
- <div
|
|
|
- class="inImg"
|
|
|
- @click.stop="previewImg(item2.src)"
|
|
|
- >
|
|
|
- <img
|
|
|
- style="display: block"
|
|
|
- :src="item2.src"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- </div>
|
|
|
- <span>{{ item2.src }}</span>
|
|
|
- </div>
|
|
|
- <span v-else v-html="item2"></span>
|
|
|
+ {{ item2 }}
|
|
|
</el-radio>
|
|
|
- </div>
|
|
|
- </el-radio-group>
|
|
|
+ </el-radio-group>
|
|
|
+ <el-checkbox-group
|
|
|
+ v-model="l.content[0][0].anwer[index]"
|
|
|
+ v-else
|
|
|
+ >
|
|
|
+ <div class="radioBox">
|
|
|
+ <el-checkbox
|
|
|
+ v-for="(item2, checkIndex) in i.checkList"
|
|
|
+ :key="checkIndex + 'c'"
|
|
|
+ :label="checkIndex"
|
|
|
+ disabled
|
|
|
+ >
|
|
|
+ {{ item2 }}
|
|
|
+ </el-checkbox>
|
|
|
+ </div>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="radioBox">
|
|
|
- <el-checkbox-group
|
|
|
- v-model="l.content[0].radio[index]"
|
|
|
- v-if="i.type == '2'"
|
|
|
+ <div v-if="l.tool[0] == 45">
|
|
|
+ <div style="padding: 10px;box-sizing: border-box;">
|
|
|
+ <h1>{{ userP.username }}</h1>
|
|
|
+ </div>
|
|
|
+ <div class="toolBlk">
|
|
|
+ <img
|
|
|
+ src="../../../assets/icon/thirdToolList/choose.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div class="toolTit">
|
|
|
+ <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssChoiceTool}}</div>
|
|
|
+ <div>
|
|
|
+ {{lang.ssDefaultDesc}}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ v-for="(i, index) in l.content[0].testJson"
|
|
|
+ :key="index + 'm'"
|
|
|
>
|
|
|
- <div class="radioBox">
|
|
|
- <el-checkbox
|
|
|
- v-for="(item2, checkIndex) in i.checkList"
|
|
|
- :key="checkIndex + 'c'"
|
|
|
- :label="checkIndex"
|
|
|
- disabled
|
|
|
- :class="[
|
|
|
- i.answer.includes(checkIndex)
|
|
|
- ? 'redioStyle3'
|
|
|
- : 'redioStyle4'
|
|
|
- ]"
|
|
|
+ <div>
|
|
|
+ {{lang.ssTopic}}:{{ i.teststitle }}
|
|
|
+ <span
|
|
|
+ v-if="
|
|
|
+ JSON.stringify(l.content[0].radio[index]) ==
|
|
|
+ JSON.stringify(i.answer)
|
|
|
+ "
|
|
|
+ style="color: #868ce4"
|
|
|
+ >{{lang.ssCorrect}}</span
|
|
|
>
|
|
|
- <div style="display: flex">
|
|
|
- <div
|
|
|
- v-if="
|
|
|
- item2 &&
|
|
|
- item2.imgType &&
|
|
|
- item2.imgType == 1
|
|
|
- "
|
|
|
+ <span v-else style="color: red">{{lang.ssWrong}}</span>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ v-if="i.type == 1"
|
|
|
+ style="display: flex; flex-direction: column"
|
|
|
+ >
|
|
|
+ <el-radio-group v-model="l.content[0].radio[index]">
|
|
|
+ <div class="radioBox">
|
|
|
+ <el-radio
|
|
|
+ v-for="(item2, checkIndex) in i.checkList"
|
|
|
+ :key="checkIndex + 'b'"
|
|
|
+ :label="checkIndex"
|
|
|
+ disabled
|
|
|
+ :class="[
|
|
|
+ i.answer == checkIndex
|
|
|
+ ? 'redioStyle5'
|
|
|
+ : 'redioStyle2'
|
|
|
+ ]"
|
|
|
>
|
|
|
<div
|
|
|
- class="inImg"
|
|
|
- @click.stop="previewImg(item2.src)"
|
|
|
+ v-if="
|
|
|
+ item2 && item2.imgType && item2.imgType == 1
|
|
|
+ "
|
|
|
>
|
|
|
- <img
|
|
|
- style="display: block"
|
|
|
- :src="item2.src"
|
|
|
- alt=""
|
|
|
- />
|
|
|
+ <div
|
|
|
+ class="inImg"
|
|
|
+ @click.stop="previewImg(item2.src)"
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ style="display: block"
|
|
|
+ :src="item2.src"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <span v-else v-html="item2"></span>
|
|
|
+ </el-radio>
|
|
|
+ </div>
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ <div class="radioBox">
|
|
|
+ <el-checkbox-group
|
|
|
+ v-model="l.content[0].radio[index]"
|
|
|
+ v-if="i.type == '2'"
|
|
|
+ >
|
|
|
+ <div class="radioBox">
|
|
|
+ <el-checkbox
|
|
|
+ v-for="(item2, checkIndex) in i.checkList"
|
|
|
+ :key="checkIndex + 'c'"
|
|
|
+ :label="checkIndex"
|
|
|
+ disabled
|
|
|
+ :class="[
|
|
|
+ i.answer.includes(checkIndex)
|
|
|
+ ? 'redioStyle3'
|
|
|
+ : 'redioStyle4'
|
|
|
+ ]"
|
|
|
+ >
|
|
|
+ <div style="display: flex">
|
|
|
+ <div
|
|
|
+ v-if="
|
|
|
+ item2 &&
|
|
|
+ item2.imgType &&
|
|
|
+ item2.imgType == 1
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="inImg"
|
|
|
+ @click.stop="previewImg(item2.src)"
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ style="display: block"
|
|
|
+ :src="item2.src"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <span v-else v-html="item2"></span>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <span v-else v-html="item2"></span>
|
|
|
+ </el-checkbox>
|
|
|
</div>
|
|
|
- </el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
</div>
|
|
|
- </el-checkbox-group>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 41">
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/thirdToolList/select.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:选择匹配</div>
|
|
|
+ <div v-if="l.tool[0] == 41">
|
|
|
+ <div style="padding: 10px;box-sizing: border-box;">
|
|
|
+ <h1>{{ userP.username }}</h1>
|
|
|
+ </div>
|
|
|
+ <div class="toolBlk">
|
|
|
+ <img
|
|
|
+ src="../../../assets/icon/thirdToolList/select.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div class="toolTit">
|
|
|
+ <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssMatchTool}}</div>
|
|
|
+ <div>
|
|
|
+ {{lang.ssDefaultDesc}}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <img
|
|
|
+ @click.stop="previewImg(l.selectJson.url)"
|
|
|
+ style="max-width: 200px"
|
|
|
+ :src="l.selectJson.url"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div>
|
|
|
+ {{ l.selectJson.url }}
|
|
|
+ </div>
|
|
|
<div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
+ <span style="margin-right: 10px">{{lang.ssOption}}:</span
|
|
|
+ ><span
|
|
|
+ style="margin-right: 10px"
|
|
|
+ v-for="(item, itInd) in l.selectJson.select"
|
|
|
+ :key="itInd"
|
|
|
+ >{{ item }}</span
|
|
|
+ >
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <img
|
|
|
- style="max-width: 200px"
|
|
|
- :src="l.selectJson.url"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div>
|
|
|
- {{ l.selectJson.url }}
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <span style="margin-right: 10px">选项:</span
|
|
|
- ><span
|
|
|
- style="margin-right: 10px"
|
|
|
- v-for="(item, itInd) in l.selectJson.select"
|
|
|
- :key="itInd"
|
|
|
- >{{ item }}</span
|
|
|
- >
|
|
|
- </div>
|
|
|
- <div>
|
|
|
- <span style="margin-right: 10px">答案:</span>
|
|
|
-
|
|
|
- <span
|
|
|
- style="margin-right: 10px"
|
|
|
- v-for="(item, itInd) in l.content[0].con"
|
|
|
- :key="itInd"
|
|
|
- >{{ itInd + 1 }}、{{
|
|
|
- l.selectJson.select[item]
|
|
|
- }}</span
|
|
|
- >
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-if="l.tool[0] == 47">
|
|
|
- <div class="toolBlk">
|
|
|
- <img
|
|
|
- src="../../../assets/icon/fourthToolList/conSentences.png"
|
|
|
- alt=""
|
|
|
- />
|
|
|
- <div class="toolTit">
|
|
|
- <div>工具{{ lind + 1 }}:排序</div>
|
|
|
+ <div style="margin: 10px 0;">
|
|
|
+ <span style="margin-right: 10px">{{lang.ssAnswer}}</span>
|
|
|
+
|
|
|
+ <div
|
|
|
+ style="margin-right: 10px"
|
|
|
+ v-for="(item, itInd) in l.content"
|
|
|
+ :key="itInd"
|
|
|
+ >
|
|
|
+ <div v-if="item.userid == userP.userid">
|
|
|
+ <div v-for="(itemCon,itemConIndex) in item.con" :key="itemConIndex+'itemConIndex'">
|
|
|
+ {{lang.ssOption}}{{ itemConIndex + 1 }}:{{ l.selectJson.select[itemCon] }}
|
|
|
+ <span
|
|
|
+ v-if="
|
|
|
+ l.selectJson.answer[itemConIndex] == item.con[itemConIndex]
|
|
|
+ "
|
|
|
+ style="color: #868ce4"
|
|
|
+ >{{lang.ssCorrect}}</span
|
|
|
+ >
|
|
|
+ <span v-else style="color: red">{{lang.ssWrong}}</span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
<div>
|
|
|
- 根据前期的了解与实地调研对于项目的了解,进行思考与讨论提出问题。
|
|
|
+ <span style="margin-right: 10px">{{lang.ssAnswer3}}</span>
|
|
|
+
|
|
|
+ <span
|
|
|
+ style="margin-right: 10px"
|
|
|
+ v-for="(item, itInd) in l.selectJson.answer"
|
|
|
+ :key="itInd"
|
|
|
+ >{{lang.ssOption}}{{ itInd + 1 }}:{{
|
|
|
+ l.selectJson.select[item]
|
|
|
+ }}</span
|
|
|
+ >
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- v-for="(i, index) in l.content[0]"
|
|
|
- :key="index"
|
|
|
- style="margin-bottom: 10px"
|
|
|
- >
|
|
|
- <div
|
|
|
- style="
|
|
|
- height: 20px;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- flex-wrap: wrap;
|
|
|
- "
|
|
|
- >
|
|
|
- 题目:
|
|
|
- <div
|
|
|
- class="sortTool"
|
|
|
- v-for="(i, index) in i.addSentence"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
- {{ i }}
|
|
|
+ <div v-if="l.tool[0] == 47">
|
|
|
+ <div style="padding: 10px;box-sizing: border-box;">
|
|
|
+ <h1>{{ userP.username }}</h1>
|
|
|
+ </div>
|
|
|
+ <div class="toolBlk">
|
|
|
+ <img
|
|
|
+ src="../../../assets/icon/fourthToolList/conSentences.png"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ <div class="toolTit">
|
|
|
+ <div>{{lang.ssTool.replace(/\*/g, lind + 1)}}{{lang.ssSortTool}}</div>
|
|
|
+ <div>
|
|
|
+ {{lang.ssDefaultDesc}}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <span
|
|
|
- v-if="
|
|
|
- JSON.stringify(i.chooseSenList) ==
|
|
|
- JSON.stringify(i.addSentence)
|
|
|
- "
|
|
|
- style="color: #868ce4"
|
|
|
- >回答正确</span
|
|
|
- >
|
|
|
- <span v-else style="color: red">回答错误</span>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- style="
|
|
|
- margin: 10px 0;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- flex-wrap: wrap;
|
|
|
- "
|
|
|
- >
|
|
|
- 学生回答:
|
|
|
<div
|
|
|
- class="sortTool"
|
|
|
- v-for="(i, index) in i.chooseSenList"
|
|
|
+ v-for="(i, index) in l.content[0]"
|
|
|
:key="index"
|
|
|
+ style="margin-bottom: 10px"
|
|
|
>
|
|
|
- {{ i }}
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ height: 20px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ {{lang.ssTopic}}:
|
|
|
+ <div
|
|
|
+ class="sortTool"
|
|
|
+ v-for="(i, index) in i.addSentence"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
+ {{ i }}
|
|
|
+ </div>
|
|
|
+ <span
|
|
|
+ v-if="
|
|
|
+ JSON.stringify(i.chooseSenList) ==
|
|
|
+ JSON.stringify(i.addSentence)
|
|
|
+ "
|
|
|
+ style="color: #868ce4"
|
|
|
+ >{{lang.ssCorrect}}</span
|
|
|
+ >
|
|
|
+ <span v-else style="color: red">{{lang.ssWrong}}</span>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ style="
|
|
|
+ margin: 10px 0;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ {{lang.ssStuAnswer}}
|
|
|
+ <div
|
|
|
+ class="sortTool"
|
|
|
+ v-for="(i, index) in i.chooseSenList"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
+ {{ i }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ {{lang.ssAnswer3}}
|
|
|
+ <span style="margin: 0 5px">{{
|
|
|
+ i.addSentence.join(",")
|
|
|
+ }}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- 正确答案:
|
|
|
- <span style="margin: 0 5px">{{
|
|
|
- i.addSentence.join(",")
|
|
|
- }}</span>
|
|
|
- </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <!-- </div> -->
|
|
|
</div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <!-- </div> -->
|
|
|
</div>
|
|
|
- </el-dialog> -->
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
</div>
|
|
|
</template>
|
|
|
|