|
@@ -471,27 +471,18 @@
|
|
<el-button type="primary" @click="addEnglishWork">确 定</el-button>
|
|
<el-button type="primary" @click="addEnglishWork">确 定</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <!-- 英语写作 -->
|
|
|
|
|
|
+ <!-- 英语写口语 -->
|
|
<div v-if="[70].includes(toolType)" class="s_b_m_b_i_m_evaluation">
|
|
<div v-if="[70].includes(toolType)" class="s_b_m_b_i_m_evaluation">
|
|
- <!-- <EnglishVoice :EnglishVoiceDialog.sync='EnglishVoiceDialog'
|
|
|
|
- :englishVoiceJson='englishVoiceJson'
|
|
|
|
- :userid="userid"
|
|
|
|
- :id="id"
|
|
|
|
- :courseType="courseType"
|
|
|
|
- :taskCount="taskCount"
|
|
|
|
- :toolindex="toolindex"
|
|
|
|
- @selectSWorks="selectSWorks"
|
|
|
|
- @selectStudent="selectStudent"
|
|
|
|
- :englishVoiceJsonWork="englishVoiceJsonWork"></EnglishVoice>
|
|
|
|
- <checkEnglishVoice :englishVoiceJson='englishVoiceJson'
|
|
|
|
- :userid="userid"
|
|
|
|
- :dialogVisibleENScore.sync='dialogVisibleENScore'
|
|
|
|
- :commentDetail="commentDetail"
|
|
|
|
- :courseDetail="courseDetail"
|
|
|
|
- :wScore="wScore"
|
|
|
|
- :scoreDetail="scoreDetail"
|
|
|
|
- @selectSWorks="selectSWorks"
|
|
|
|
- @selectStudent="selectStudent"></checkEnglishVoice> -->
|
|
|
|
|
|
+ <EnglishVoice
|
|
|
|
+ :englishVoiceJson='englishVoiceJson'
|
|
|
|
+ :userid="userId"
|
|
|
|
+ :id="id"
|
|
|
|
+ :courseType="courseType"
|
|
|
|
+ :taskCount="taskCount"
|
|
|
|
+ :toolindex="toolIndex"
|
|
|
|
+ @selectSWorks="selectSWorks"
|
|
|
|
+ @selectStudent="selectStudent"
|
|
|
|
+ :englishVoiceJsonWork="englishVoiceJsonWork"></EnglishVoice>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
@@ -525,94 +516,364 @@
|
|
<div>
|
|
<div>
|
|
<div
|
|
<div
|
|
class="g_d_box"
|
|
class="g_d_box"
|
|
- v-if="testData.groupJson.group"
|
|
|
|
|
|
+ v-if="groupJson.group"
|
|
>
|
|
>
|
|
<div
|
|
<div
|
|
class="g_d_group"
|
|
class="g_d_group"
|
|
- v-for="(g, gindex) in testData.groupJson.group"
|
|
|
|
|
|
+ v-for="(g, gindex) in groupJson.group"
|
|
:key="gindex"
|
|
:key="gindex"
|
|
>
|
|
>
|
|
|
|
|
|
- <div class="g_d_group_chair">
|
|
|
|
- <div v-if="testData.groupJson.number > 1">
|
|
|
|
- <span class="isChair">
|
|
|
|
- <span class="updateChairBtn">修改</span>
|
|
|
|
- </span>
|
|
|
|
- <span>空位置</span>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="testData.groupJson.number > 4">
|
|
|
|
- <span class="isChair">
|
|
|
|
- <span class="updateChairBtn">修改</span>
|
|
|
|
- </span>
|
|
|
|
- <span>空位置</span>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="testData.groupJson.number > 8">
|
|
|
|
- <span class="isChair">
|
|
|
|
- <span class="updateChairBtn">修改</span>
|
|
|
|
- </span>
|
|
|
|
- <span>空位置</span>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="g_d_group_tableBox">
|
|
|
|
- <div class="g_d_group_chair2">
|
|
|
|
- <div v-if="testData.groupJson.number > 2">
|
|
|
|
- <span class="isChair">
|
|
|
|
- <span class="updateChairBtn">修改</span>
|
|
|
|
- </span>
|
|
|
|
- <span>空位置</span>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="testData.groupJson.number > 6">
|
|
|
|
- <span class="isChair">
|
|
|
|
- <span class="updateChairBtn">修改</span>
|
|
|
|
- </span>
|
|
|
|
- <span>空位置</span>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="g_d_group_table">
|
|
|
|
- <div>
|
|
|
|
- {{ g.name }}
|
|
|
|
- </div>
|
|
|
|
- <div>
|
|
|
|
- <div>
|
|
|
|
- 加入分组
|
|
|
|
|
|
+ <div class="g_d_group_chair">
|
|
|
|
+ <div v-if="groupJson.number > 1">
|
|
|
|
+ <span
|
|
|
|
+ :class="{
|
|
|
|
+ isChair:
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][0],
|
|
|
|
+ updateChair:
|
|
|
|
+ courseDetail.userid == userId &&
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][0] &&
|
|
|
|
+ groupJson.islock == 2,
|
|
|
|
+ }"
|
|
|
|
+ ><span
|
|
|
|
+ class="updateChairBtn"
|
|
|
|
+ @click="
|
|
|
|
+ updateGroupChair(
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][0]
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ >修改</span
|
|
|
|
+ ></span
|
|
|
|
+ ><span>{{
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][0]
|
|
|
|
+ ? groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][0].name
|
|
|
|
+ : "空位置"
|
|
|
|
+ }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-if="groupJson.number > 4">
|
|
|
|
+ <span
|
|
|
|
+ :class="{
|
|
|
|
+ isChair:
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][4],
|
|
|
|
+ updateChair:
|
|
|
|
+ courseDetail.userid == userId &&
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][4] &&
|
|
|
|
+ groupJson.islock == 2,
|
|
|
|
+ }"
|
|
|
|
+ ><span
|
|
|
|
+ class="updateChairBtn"
|
|
|
|
+ @click="
|
|
|
|
+ updateGroupChair(
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][4]
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ >修改</span
|
|
|
|
+ ></span
|
|
|
|
+ ><span>{{
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][4]
|
|
|
|
+ ? groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][4].name
|
|
|
|
+ : "空位置"
|
|
|
|
+ }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-if="groupJson.number > 8">
|
|
|
|
+ <span
|
|
|
|
+ :class="{
|
|
|
|
+ isChair:
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][8],
|
|
|
|
+ updateChair:
|
|
|
|
+ courseDetail.userid == userId &&
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][8] &&
|
|
|
|
+ groupJson.islock == 2,
|
|
|
|
+ }"
|
|
|
|
+ ><span
|
|
|
|
+ class="updateChairBtn"
|
|
|
|
+ @click="
|
|
|
|
+ updateGroupChair(
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][8]
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ >修改</span
|
|
|
|
+ ></span
|
|
|
|
+ ><span>{{
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][8]
|
|
|
|
+ ? groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][8].name
|
|
|
|
+ : "空位置"
|
|
|
|
+ }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- <div class="g_d_group_chair2">
|
|
|
|
- <div v-if="testData.groupJson.number > 3">
|
|
|
|
- <span class="isChair">
|
|
|
|
- <span class="updateChairBtn">修改</span>
|
|
|
|
- </span>
|
|
|
|
- <span>空位置</span>
|
|
|
|
|
|
+ <div class="g_d_group_tableBox">
|
|
|
|
+ <div class="g_d_group_chair2">
|
|
|
|
+ <div v-if="groupJson.number > 2">
|
|
|
|
+ <span
|
|
|
|
+ :class="{
|
|
|
|
+ isChair:
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][2],
|
|
|
|
+ updateChair:
|
|
|
|
+ courseDetail.userid == userId &&
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][2] &&
|
|
|
|
+ groupJson.islock == 2,
|
|
|
|
+ }"
|
|
|
|
+ ><span
|
|
|
|
+ class="updateChairBtn"
|
|
|
|
+ @click="
|
|
|
|
+ updateGroupChair(
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][2]
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ >修改</span
|
|
|
|
+ ></span
|
|
|
|
+ ><span>{{
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][2]
|
|
|
|
+ ? groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][2].name
|
|
|
|
+ : "空位置"
|
|
|
|
+ }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-if="groupJson.number > 6">
|
|
|
|
+ <span
|
|
|
|
+ :class="{
|
|
|
|
+ isChair:
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][6],
|
|
|
|
+ updateChair:
|
|
|
|
+ courseDetail.userid == userId &&
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][6] &&
|
|
|
|
+ groupJson.islock == 2,
|
|
|
|
+ }"
|
|
|
|
+ ><span
|
|
|
|
+ class="updateChairBtn"
|
|
|
|
+ @click="
|
|
|
|
+ updateGroupChair(
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][6]
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ >修改</span
|
|
|
|
+ ></span
|
|
|
|
+ ><span>{{
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][6]
|
|
|
|
+ ? groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][6].name
|
|
|
|
+ : "空位置"
|
|
|
|
+ }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="g_d_group_table">
|
|
|
|
+ <div>
|
|
|
|
+ {{ g.name }}
|
|
|
|
+ </div>
|
|
|
|
+ <div>
|
|
|
|
+ <div
|
|
|
|
+ v-if="
|
|
|
|
+ courseDetail.userid == userId && groupJson.islock == 2
|
|
|
|
+ "
|
|
|
|
+ @click="deleteGroupChair(gindex)"
|
|
|
|
+ >
|
|
|
|
+ 移除组员
|
|
|
|
+ </div>
|
|
|
|
+ <div
|
|
|
|
+ @click="selectGroup(gindex)"
|
|
|
|
+ v-else-if="
|
|
|
|
+ groupStudentUid[toolIndex] &&
|
|
|
|
+ groupStudentUid[toolIndex][gindex].indexOf(userId) == -1
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ 加入分组
|
|
|
|
+ </div>
|
|
|
|
+ <div
|
|
|
|
+ @click="
|
|
|
|
+ exitGroup(
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][
|
|
|
|
+ groupStudentUid[toolIndex][gindex].indexOf(userId)
|
|
|
|
+ ].id
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ v-else-if="
|
|
|
|
+ groupStudentUid[toolIndex] &&
|
|
|
|
+ groupStudentUid[toolIndex][gindex].indexOf(userId) != -1
|
|
|
|
+ "
|
|
|
|
+ >
|
|
|
|
+ 退出分组
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="g_d_group_chair2">
|
|
|
|
+ <div v-if="groupJson.number > 3">
|
|
|
|
+ <span
|
|
|
|
+ :class="{
|
|
|
|
+ isChair:
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][3],
|
|
|
|
+ updateChair:
|
|
|
|
+ courseDetail.userid == userId &&
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][3] &&
|
|
|
|
+ groupJson.islock == 2,
|
|
|
|
+ }"
|
|
|
|
+ ><span
|
|
|
|
+ class="updateChairBtn"
|
|
|
|
+ @click="
|
|
|
|
+ updateGroupChair(
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][3]
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ >修改</span
|
|
|
|
+ ></span
|
|
|
|
+ ><span>{{
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][3]
|
|
|
|
+ ? groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][3].name
|
|
|
|
+ : "空位置"
|
|
|
|
+ }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-if="groupJson.number > 7">
|
|
|
|
+ <span
|
|
|
|
+ :class="{
|
|
|
|
+ isChair:
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][7],
|
|
|
|
+ updateChair:
|
|
|
|
+ courseDetail.userid == userId &&
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][7] &&
|
|
|
|
+ groupJson.islock == 2,
|
|
|
|
+ }"
|
|
|
|
+ ><span
|
|
|
|
+ class="updateChairBtn"
|
|
|
|
+ @click="
|
|
|
|
+ updateGroupChair(
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][7]
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ >修改</span
|
|
|
|
+ ></span
|
|
|
|
+ ><span>{{
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][7]
|
|
|
|
+ ? groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][7].name
|
|
|
|
+ : "空位置"
|
|
|
|
+ }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <div v-if="testData.groupJson.number > 7">
|
|
|
|
- <span class="isChair">
|
|
|
|
- <span class="updateChairBtn">修改</span>
|
|
|
|
- </span>
|
|
|
|
- <span>空位置</span>
|
|
|
|
|
|
+ <div class="g_d_group_chair">
|
|
|
|
+ <div v-if="groupJson.number > 1">
|
|
|
|
+ <span
|
|
|
|
+ :class="{
|
|
|
|
+ isChair:
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][1],
|
|
|
|
+ updateChair:
|
|
|
|
+ courseDetail.userid == userId &&
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][1] &&
|
|
|
|
+ groupJson.islock == 2,
|
|
|
|
+ }"
|
|
|
|
+ ><span
|
|
|
|
+ class="updateChairBtn"
|
|
|
|
+ @click="
|
|
|
|
+ updateGroupChair(
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][1]
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ >修改</span
|
|
|
|
+ ></span
|
|
|
|
+ ><span>{{
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][1]
|
|
|
|
+ ? groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][1].name
|
|
|
|
+ : "空位置"
|
|
|
|
+ }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-if="groupJson.number > 5">
|
|
|
|
+ <span
|
|
|
|
+ :class="{
|
|
|
|
+ isChair:
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][5],
|
|
|
|
+ updateChair:
|
|
|
|
+ courseDetail.userid == userId &&
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][5] &&
|
|
|
|
+ groupJson.islock == 2,
|
|
|
|
+ }"
|
|
|
|
+ ><span
|
|
|
|
+ class="updateChairBtn"
|
|
|
|
+ @click="
|
|
|
|
+ updateGroupChair(
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][5]
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ >修改</span
|
|
|
|
+ ></span
|
|
|
|
+ ><span>{{
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][5]
|
|
|
|
+ ? groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][5].name
|
|
|
|
+ : "空位置"
|
|
|
|
+ }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-if="groupJson.number > 9">
|
|
|
|
+ <span
|
|
|
|
+ :class="{
|
|
|
|
+ isChair:
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][9],
|
|
|
|
+ updateChair:
|
|
|
|
+ courseDetail.userid == userId &&
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][9] &&
|
|
|
|
+ groupJson.islock == 2,
|
|
|
|
+ }"
|
|
|
|
+ ><span
|
|
|
|
+ class="updateChairBtn"
|
|
|
|
+ @click="
|
|
|
|
+ updateGroupChair(
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][9]
|
|
|
|
+ )
|
|
|
|
+ "
|
|
|
|
+ >修改</span
|
|
|
|
+ ></span
|
|
|
|
+ ><span>{{
|
|
|
|
+ groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][9]
|
|
|
|
+ ? groupStudent[toolIndex][gindex] &&
|
|
|
|
+ groupStudent[toolIndex][gindex][9].name
|
|
|
|
+ : "空位置"
|
|
|
|
+ }}</span>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="g_d_group_chair">
|
|
|
|
- <div v-if="testData.groupJson.number > 1">
|
|
|
|
- <span class="isChair">
|
|
|
|
- <span class="updateChairBtn">修改</span>
|
|
|
|
- </span>
|
|
|
|
- <span>空位置</span>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="testData.groupJson.number > 5">
|
|
|
|
- <span class="isChair">
|
|
|
|
- <span class="updateChairBtn">修改</span>
|
|
|
|
- </span>
|
|
|
|
- <span>空位置</span>
|
|
|
|
- </div>
|
|
|
|
- <div v-if="testData.groupJson.number > 9">
|
|
|
|
- <span class="isChair">
|
|
|
|
- <span class="updateChairBtn">修改</span>
|
|
|
|
- </span>
|
|
|
|
- <span>空位置</span>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -883,6 +1144,7 @@ import eChartsView from './eChartsView.vue'
|
|
import choseWordCloud from './choseWordCloud.vue'
|
|
import choseWordCloud from './choseWordCloud.vue'
|
|
import studentWorkPreviewDialog from './studentWorkPreviewDialog.vue';
|
|
import studentWorkPreviewDialog from './studentWorkPreviewDialog.vue';
|
|
import EditorBar from "../tools/wangEnduit.vue";
|
|
import EditorBar from "../tools/wangEnduit.vue";
|
|
|
|
+import EnglishVoice from '../EnglishVoice3/index.vue'
|
|
|
|
|
|
import onlineWrite from "./onlineWrite";
|
|
import onlineWrite from "./onlineWrite";
|
|
|
|
|
|
@@ -895,7 +1157,8 @@ export default {
|
|
choseWordCloud,
|
|
choseWordCloud,
|
|
studentWorkPreviewDialog,
|
|
studentWorkPreviewDialog,
|
|
EditorBar,
|
|
EditorBar,
|
|
- onlineWrite
|
|
|
|
|
|
+ onlineWrite,
|
|
|
|
+ EnglishVoice
|
|
},
|
|
},
|
|
props: {
|
|
props: {
|
|
worksStudentData: {
|
|
worksStudentData: {
|
|
@@ -908,7 +1171,11 @@ export default {
|
|
org: {
|
|
org: {
|
|
type: String
|
|
type: String
|
|
},
|
|
},
|
|
- groupStudent: {
|
|
|
|
|
|
+ groupStudent2: {
|
|
|
|
+ type: Array,
|
|
|
|
+ default: () => []
|
|
|
|
+ },
|
|
|
|
+ groupStudentUid2: {
|
|
type: Array,
|
|
type: Array,
|
|
default: () => []
|
|
default: () => []
|
|
},
|
|
},
|
|
@@ -951,9 +1218,15 @@ export default {
|
|
showType: 0,
|
|
showType: 0,
|
|
myAnswerList1:{}, //英语写作
|
|
myAnswerList1:{}, //英语写作
|
|
englishList:{},//英语写作
|
|
englishList:{},//英语写作
|
|
|
|
+ englishVoiceJsonWork:[], //英语口语
|
|
|
|
+ englishVoiceJson:{}, //英语口语
|
|
|
|
+ groupJson:[], //学生分组
|
|
|
|
+ groupStudentUid:[], //学生分组
|
|
|
|
+ groupStudent:[], //学生分组
|
|
userId: this.$route.query.userid,
|
|
userId: this.$route.query.userid,
|
|
courseId:this.$route.query.courseId,
|
|
courseId:this.$route.query.courseId,
|
|
id: this.$route.query.courseId,
|
|
id: this.$route.query.courseId,
|
|
|
|
+ classid: this.$route.query.cid,
|
|
wordCloudData:[], //词云数据
|
|
wordCloudData:[], //词云数据
|
|
dialogVisibleWordCloud:false,
|
|
dialogVisibleWordCloud:false,
|
|
showStatisticsType:0,
|
|
showStatisticsType:0,
|
|
@@ -971,7 +1244,7 @@ export default {
|
|
worksPreview: false
|
|
worksPreview: false
|
|
},
|
|
},
|
|
dialogTypeList: [
|
|
dialogTypeList: [
|
|
- { label: "作业详细", value: 0,showType:[1,7,15,40,41,45,47,48,49,52,3,4,57,18,21,71,69], loading: false },
|
|
|
|
|
|
+ { label: "作业详细", value: 0,showType:[1,7,15,40,41,45,47,48,49,52,3,4,57,18,21,71,69,70], loading: false },
|
|
{ label: "题目统计", value: 1,showType:[45,15], loading: false },
|
|
{ label: "题目统计", value: 1,showType:[45,15], loading: false },
|
|
{ label: "学生统计", value: 2,showType:[1,7,15,40,41,45,47,48,52,3,4,57], loading: false }
|
|
{ label: "学生统计", value: 2,showType:[1,7,15,40,41,45,47,48,52,3,4,57], loading: false }
|
|
],
|
|
],
|
|
@@ -980,6 +1253,7 @@ export default {
|
|
{label:"训练平台",value:18,img:require("../../assets/icon/thirdToolList/trainPlatform.png")},
|
|
{label:"训练平台",value:18,img:require("../../assets/icon/thirdToolList/trainPlatform.png")},
|
|
{label:"AIoT Blockly",value:21,img:require("../../assets/icon/fourthToolList/program.png")},
|
|
{label:"AIoT Blockly",value:21,img:require("../../assets/icon/fourthToolList/program.png")},
|
|
{label:"英语写作",value:69,img:require("../../assets/icon/secondToolList/english.png")},
|
|
{label:"英语写作",value:69,img:require("../../assets/icon/secondToolList/english.png")},
|
|
|
|
+ {label:"英语口语",value:70,img:require("../../assets/icon/thirdToolList/englishVoice.png")},
|
|
{label:"AI智能体",value:71,img:require("../../assets/icon/fourthToolList/chatgpt.png")},
|
|
{label:"AI智能体",value:71,img:require("../../assets/icon/fourthToolList/chatgpt.png")},
|
|
{label:"CocoPi",value:57,img:require("../../assets/icon/fourthToolList/cocopi.png")},
|
|
{label:"CocoPi",value:57,img:require("../../assets/icon/fourthToolList/cocopi.png")},
|
|
{label:"问卷调查",value:4,img:require("../../assets/icon/thirdToolList/ask.png")},
|
|
{label:"问卷调查",value:4,img:require("../../assets/icon/thirdToolList/ask.png")},
|
|
@@ -1233,10 +1507,9 @@ export default {
|
|
watch: {
|
|
watch: {
|
|
worksStudentData: {
|
|
worksStudentData: {
|
|
handler(newValue) {
|
|
handler(newValue) {
|
|
-
|
|
|
|
-
|
|
|
|
- if (this.showType != 2) return
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ if (this.toolIndex == null) return
|
|
|
|
+
|
|
let workSData = []
|
|
let workSData = []
|
|
|
|
|
|
// 工具几的学生作业
|
|
// 工具几的学生作业
|
|
@@ -1374,6 +1647,130 @@ export default {
|
|
console.log('分组设置');
|
|
console.log('分组设置');
|
|
|
|
|
|
},
|
|
},
|
|
|
|
+
|
|
|
|
+ // 加入分组前检查人员是否已经满了
|
|
|
|
+ selectGroup(index) {
|
|
|
|
+
|
|
|
|
+ //教师查看全部作业
|
|
|
|
+ let params = {
|
|
|
|
+ cid: this.id,
|
|
|
|
+ s: this.courseType,
|
|
|
|
+ t: this.taskCount,
|
|
|
|
+ };
|
|
|
|
+ this.ajax
|
|
|
|
+ .get(this.$store.state.api + "selectSWorks", params)
|
|
|
|
+ .then((res) => {
|
|
|
|
+ var workS = res.data[3];
|
|
|
|
+ // 每组人数
|
|
|
|
+ let GroupSize = this.groupJson.number
|
|
|
|
+
|
|
|
|
+ // 当前组人数
|
|
|
|
+ let nowSize = 0
|
|
|
|
+
|
|
|
|
+ console.log('groupJson',this.groupJson);
|
|
|
|
+
|
|
|
|
+ console.log('workS',workS);
|
|
|
|
+
|
|
|
|
+ let classID = [];
|
|
|
|
+ if (this.classid != '') {
|
|
|
|
+ classID = this.classid.split(',')
|
|
|
|
+ }
|
|
|
|
+ console.log('classID',classID);
|
|
|
|
+
|
|
|
|
+ workS.forEach(e=>{
|
|
|
|
+ if (index == e.group) {
|
|
|
|
+ if (!e.classid || classID.length == 0) {
|
|
|
|
+ let classID2 = e.classid.split(',')
|
|
|
|
+ const result = this.hasOverlap(classID,classID2);
|
|
|
|
+ if (result) {
|
|
|
|
+ nowSize++
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ nowSize++
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ console.log("nowSize",nowSize);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ .catch((err) => {
|
|
|
|
+ console.error(err);
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+ // 学生分组判断与学生一个班级的学生
|
|
|
|
+ hasOverlap(arr1, arr2) {
|
|
|
|
+ const set1 = new Set(arr1);
|
|
|
|
+ for (let item of arr2) {
|
|
|
|
+ if (set1.has(item)) {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return false;
|
|
|
|
+ },
|
|
|
|
+ joinGroup(index) {
|
|
|
|
+ if (this.groupJson.islock == 2) {
|
|
|
|
+ this.$message.error("位置已被锁定,无法加入");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ this.groupStudent[this.toolIndex][index].length >
|
|
|
|
+ this.groupJson.number ||
|
|
|
|
+ this.groupStudent[this.toolIndex][index].length == this.groupJson.number
|
|
|
|
+ ) {
|
|
|
|
+ this.$message.error("位置已满,无法加入");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ let params = [
|
|
|
|
+ {
|
|
|
|
+ cid: this.id,
|
|
|
|
+ stage: this.courseType,
|
|
|
|
+ task: this.taskCount,
|
|
|
|
+ tool: this.toolIndex,
|
|
|
|
+ g: index,
|
|
|
|
+ uid: this.userId,
|
|
|
|
+ },
|
|
|
|
+ ];
|
|
|
|
+ this.ajax
|
|
|
|
+ .post(this.$store.state.api + "joinGroup", params)
|
|
|
|
+ .then((res) => {
|
|
|
|
+ this.$message.success("加入成功");
|
|
|
|
+ this.$emit("getCourseDetail",2)
|
|
|
|
+ })
|
|
|
|
+ .catch((err) => {
|
|
|
|
+ this.$message.error("网络不佳");
|
|
|
|
+ console.error(err);
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 退出分组
|
|
|
|
+ exitGroup(id) {
|
|
|
|
+ if (this.groupJson.islock == 2) {
|
|
|
|
+ this.$message.error("位置已被锁定,无法退出");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ let params = [
|
|
|
|
+ {
|
|
|
|
+ gid: id,
|
|
|
|
+ },
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ this.ajax
|
|
|
|
+ .post(this.$store.state.api + "exitGroup", params)
|
|
|
|
+ .then((res) => {
|
|
|
|
+ this.$message.success("退出成功");
|
|
|
|
+ this.$emit.getCourseDetail(2);
|
|
|
|
+ })
|
|
|
|
+ .catch((err) => {
|
|
|
|
+ this.$message.error("网络不佳");
|
|
|
|
+ console.error(err);
|
|
|
|
+ });
|
|
|
|
+ },
|
|
// 提交Cocopi作业
|
|
// 提交Cocopi作业
|
|
upLoadCocoPi(){
|
|
upLoadCocoPi(){
|
|
|
|
|
|
@@ -1641,6 +2038,12 @@ export default {
|
|
});
|
|
});
|
|
|
|
|
|
},
|
|
},
|
|
|
|
+ selectSWorks(){
|
|
|
|
+ this.$emit("selectSWorks")
|
|
|
|
+ },
|
|
|
|
+ selectStudent(){
|
|
|
|
+ this.$emit("selectStudent")
|
|
|
|
+ },
|
|
// 排序操作答案
|
|
// 排序操作答案
|
|
sentenceBtn2(val,val1){
|
|
sentenceBtn2(val,val1){
|
|
let yym = this.testData.sentenceList[val].addSentence
|
|
let yym = this.testData.sentenceList[val].addSentence
|
|
@@ -1836,24 +2239,48 @@ export default {
|
|
this.radioS.push('')
|
|
this.radioS.push('')
|
|
}
|
|
}
|
|
})
|
|
})
|
|
- } else if (this.toolType == 69) {
|
|
|
|
|
|
+ }else if (this.toolType == 69) {
|
|
console.log('this.testJsonCopy',this.testJsonCopy);
|
|
console.log('this.testJsonCopy',this.testJsonCopy);
|
|
|
|
|
|
-
|
|
|
|
// if (this.testJsonCopy.length) {
|
|
// if (this.testJsonCopy.length) {
|
|
// this.myAnswerList1 = JSON.parse(this.testJsonCopy[0].works)
|
|
// this.myAnswerList1 = JSON.parse(this.testJsonCopy[0].works)
|
|
// } else {
|
|
// } else {
|
|
- this.myAnswerList1 = {engTitle: "",engText: "",imgList: [],};
|
|
|
|
|
|
+ this.myAnswerList1 = {engTitle: "",engText: "",imgList: [],};
|
|
// }
|
|
// }
|
|
|
|
|
|
- console.log('this.testData',this.testData);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ // console.log('this.testData',this.testData);
|
|
|
|
|
|
this.englishList = this.testData.englishList
|
|
this.englishList = this.testData.englishList
|
|
? this.testData.englishList
|
|
? this.testData.englishList
|
|
: {};
|
|
: {};
|
|
|
|
+ }else if (this.toolType == 70) { //英语口语
|
|
|
|
+
|
|
|
|
+ if (this.testJsonCopy.length) {
|
|
|
|
+ this.englishVoiceJsonWork = JSON.parse(this.testJsonCopy.works)
|
|
|
|
+ } else {
|
|
|
|
+ this.englishVoiceJsonWork = [];
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ console.log('this.testData',this.testData);
|
|
|
|
+
|
|
|
|
+ let englishVoiceJson = {}
|
|
|
|
+ englishVoiceJson = this.testData.englishVoiceJson
|
|
|
|
+ ? this.testData.englishVoiceJson
|
|
|
|
+ : {};
|
|
|
|
+
|
|
|
|
+ this.englishVoiceJson = JSON.parse(JSON.stringify(englishVoiceJson));
|
|
|
|
+ }else if (this.toolType == 49) {
|
|
|
|
+ this.groupStudent=this.groupStudent2
|
|
|
|
+ this.groupStudentUid=this.groupStudentUid2
|
|
|
|
+
|
|
|
|
+ // console.log('this.groupStudent',this.groupStudent);
|
|
|
|
+ // console.log('groupStudentUid',this.groupStudentUid);
|
|
|
|
+
|
|
|
|
+ // console.log('this.testData',this.testData);
|
|
|
|
+
|
|
|
|
|
|
|
|
+ this.groupJson = this.testData.groupJson;
|
|
|
|
+ this.islock = this.groupJson.islock == 1 ? true : false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|