Merge branch 'main' of http://27.128.240.72:3000/zhuhao/AIx_Smarttalk into zdg
This commit is contained in:
commit
51cb1989a1
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "aix-win",
|
"name": "aix-win",
|
||||||
"version": "1.2.3",
|
"version": "2.0.1",
|
||||||
"description": "An Electron application with Vue",
|
"description": "An Electron application with Vue",
|
||||||
"main": "./out/main/index.js",
|
"main": "./out/main/index.js",
|
||||||
"author": "example.com",
|
"author": "example.com",
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
<el-scrollbar height="450px">
|
<el-scrollbar height="450px">
|
||||||
<div class="textbook-item flex" v-for="item in subjectList" :class="curBookId == item.id ? 'active-item' : ''"
|
<div class="textbook-item flex" v-for="item in subjectList" :class="curBookId == item.id ? 'active-item' : ''"
|
||||||
:key="item.id" @click="changeBook(item)">
|
:key="item.id" @click="changeBook(item)">
|
||||||
<img v-if="item.avartar" :src="BaseUrl + item.avartar" class="textbook-img" alt="">
|
<img v-if="item.avartar" :src="item.avartar.indexOf('http') === 0 ? item.avartar : BaseUrl + item.avartar" class="textbook-img" alt="">
|
||||||
<div v-else class="textbook-img">
|
<div v-else class="textbook-img">
|
||||||
<i class="iconfont icon-jiaocaixuanze" style="font-size: 40px;"></i>
|
<i class="iconfont icon-jiaocaixuanze" style="font-size: 40px;"></i>
|
||||||
</div>
|
</div>
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { onMounted, ref, nextTick, toRaw, reactive } from 'vue';
|
import { onMounted, ref, nextTick, toRaw, reactive, computed } from 'vue'
|
||||||
import useUserStore from '@/store/modules/user'
|
import useUserStore from '@/store/modules/user'
|
||||||
import { listEvaluation } from '@/api/subject'
|
import { listEvaluation } from '@/api/subject'
|
||||||
|
|
||||||
|
@ -64,6 +64,12 @@ const defaultProps = {
|
||||||
class: 'textbook-tree'
|
class: 'textbook-tree'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*let coverImgUrl = computed((item)=>{
|
||||||
|
if(!item.avartar){
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return item.avartar.indexOf('http') === 0 ? item.avartar : BaseUrl + item.avartar
|
||||||
|
})*/
|
||||||
const treeLoading = ref(false)
|
const treeLoading = ref(false)
|
||||||
//当前教材ID
|
//当前教材ID
|
||||||
const curBookId = ref(-1)
|
const curBookId = ref(-1)
|
||||||
|
@ -115,7 +121,7 @@ const getSubjectContent = async () => {
|
||||||
localStorage.setItem('evaluationList', JSON.stringify(rows))
|
localStorage.setItem('evaluationList', JSON.stringify(rows))
|
||||||
evaluationList.value = rows
|
evaluationList.value = rows
|
||||||
}
|
}
|
||||||
|
|
||||||
treeLoading.value = false
|
treeLoading.value = false
|
||||||
|
|
||||||
//获取教材版本
|
//获取教材版本
|
||||||
|
|
|
@ -8,15 +8,15 @@
|
||||||
<div class="teacher_content_con">
|
<div class="teacher_content_con">
|
||||||
<!-- 题目内容:习题训练 -->
|
<!-- 题目内容:习题训练 -->
|
||||||
<div v-if="dialogProps.studentObj.worktype == '习题训练'">
|
<div v-if="dialogProps.studentObj.worktype == '习题训练'">
|
||||||
<div v-for="(stuItem, sIndex) in dialogProps.studentQuizAllList" :key="stuItem.id">
|
<div v-for="(quItem, qIndex) in dialogProps.quizlist" :key="quItem.id">
|
||||||
<div v-for="quItem in dialogProps.quizlist" :key="quItem.id">
|
<div v-for="(stuItem, sIndex) in dialogProps.studentQuizAllList" :key="stuItem.id">
|
||||||
<div v-if="stuItem.entpcourseworkid == quItem.id">
|
<div v-if="stuItem.entpcourseworkid == quItem.id">
|
||||||
<el-card style="max-width: 100%; margin-bottom: 10px">
|
<el-card style="max-width: 100%; margin-bottom: 10px">
|
||||||
<!-- 题型 分值 -->
|
<!-- 题型 分值 -->
|
||||||
<template #header>
|
<template #header>
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<span
|
<span
|
||||||
>{{ sIndex + 1 }}、{{ quItem.worktype }}
|
>{{ qIndex + 1 }}、{{ quItem.worktype }}
|
||||||
{{ stuItem.score ? stuItem.score : 0 }}分</span
|
{{ stuItem.score ? stuItem.score : 0 }}分</span
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
|
@ -94,21 +94,19 @@
|
||||||
</span>
|
</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" style="padding: 10px">
|
<el-col :span="6" style="padding: 10px">
|
||||||
<div
|
<div v-if="stuItem.imagefile && stuItem.imagefile.length > 0">
|
||||||
v-for="(imageItem, index) in stuItem.imagefile"
|
<div v-for="(imageItem, index) in stuItem.imagefile" :key="index">
|
||||||
v-if="stuItem.imagefile && stuItem.imagefile.length > 0"
|
<el-image
|
||||||
:key="index"
|
style="width: 30px; height: 30px"
|
||||||
>
|
:src="imageItem"
|
||||||
<el-image
|
:zoom-rate="1.2"
|
||||||
style="width: 30px; height: 30px"
|
:max-scale="7"
|
||||||
:src="imageItem"
|
:min-scale="0.2"
|
||||||
:zoom-rate="1.2"
|
:preview-src-list="stuItem.imagefile"
|
||||||
:max-scale="7"
|
:initial-index="4"
|
||||||
:min-scale="0.2"
|
fit="contain"
|
||||||
:preview-src-list="stuItem.imagefile"
|
/>
|
||||||
:initial-index="4"
|
</div>
|
||||||
fit="contain"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" style="padding: 10px">
|
<el-col :span="6" style="padding: 10px">
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="11">
|
<el-col :span="11">
|
||||||
<el-form-item label="知识点" label-width="70">
|
<el-form-item label="知识点" label-width="70">
|
||||||
<el-cascader
|
<el-cascader
|
||||||
v-model="entpCourseWorkQueryParams.point"
|
v-model="entpCourseWorkQueryParams.point"
|
||||||
clearable
|
clearable
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
|
@ -59,15 +59,15 @@
|
||||||
<el-col :span="15">
|
<el-col :span="15">
|
||||||
<el-form-item label="关键词" label-width="70">
|
<el-form-item label="关键词" label-width="70">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="entpCourseWorkQueryParams.keyWord"
|
v-model="entpCourseWorkQueryParams.keyWord"
|
||||||
style="width: 70%" type="text"
|
style="width: 70%" type="text"
|
||||||
placeholder="请输入关键词"
|
placeholder="请输入关键词"
|
||||||
/>
|
/>
|
||||||
<el-button @click="handleQueryParamFromEntpCourseWork(1)"><el-icon><Search /></el-icon> 查找</el-button>
|
<el-button @click="handleQueryParamFromEntpCourseWork(1)"><el-icon><Search /></el-icon> 查找</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
<el-table :data="workResource.entpCourseWorkList" style="width: 100%;">
|
<el-table :data="workResource.entpCourseWorkList" style="width: 100%;">
|
||||||
<el-table-column type="index" width="60" />
|
<el-table-column type="index" width="60" />
|
||||||
<el-table-column align="left" >
|
<el-table-column align="left" >
|
||||||
|
@ -96,10 +96,10 @@
|
||||||
<div style="height: 55px;">
|
<div style="height: 55px;">
|
||||||
<!-- 分页 -->
|
<!-- 分页 -->
|
||||||
<pagination
|
<pagination
|
||||||
v-show="entpCourseWorkTotal > 0"
|
v-show="entpCourseWorkTotal > 0"
|
||||||
v-model:page="paginationParams.pageNum"
|
v-model:page="paginationParams.pageNum"
|
||||||
v-model:limit="paginationParams.pageSize"
|
v-model:limit="paginationParams.pageSize"
|
||||||
:total="entpCourseWorkTotal"
|
:total="entpCourseWorkTotal"
|
||||||
:style="{ position: 'relative', 'margin-top': '5px' }"
|
:style="{ position: 'relative', 'margin-top': '5px' }"
|
||||||
@pagination="getPaginationList" />
|
@pagination="getPaginationList" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -266,7 +266,7 @@ const entpCourseWorkTypeList = ref([
|
||||||
{value: 5, label: "主观题"},
|
{value: 5, label: "主观题"},
|
||||||
{value: 6, label: "复合题"},
|
{value: 6, label: "复合题"},
|
||||||
]); // 习题查询条件 - 题型
|
]); // 习题查询条件 - 题型
|
||||||
|
|
||||||
const entpCourseWorkGroupList = ref([{
|
const entpCourseWorkGroupList = ref([{
|
||||||
Key: -1,
|
Key: -1,
|
||||||
Value: '不限',
|
Value: '不限',
|
||||||
|
@ -323,7 +323,7 @@ const workResource = reactive({
|
||||||
const classWorkForm = reactive({
|
const classWorkForm = reactive({
|
||||||
worktype: '习题训练', //作业类型
|
worktype: '习题训练', //作业类型
|
||||||
// uniquekey: userStore.edusubject+'-' + getCurrentTime('MMDD')+'-'+(this.taskList.length+1),
|
// uniquekey: userStore.edusubject+'-' + getCurrentTime('MMDD')+'-'+(this.taskList.length+1),
|
||||||
|
|
||||||
})
|
})
|
||||||
const entpCourseWorkList = ref([]); // 习题列表
|
const entpCourseWorkList = ref([]); // 习题列表
|
||||||
const entpCourseWorkTotal = ref(0); // 习题总数
|
const entpCourseWorkTotal = ref(0); // 习题总数
|
||||||
|
@ -344,7 +344,7 @@ const queryForm = reactive({
|
||||||
sectionName: props.bookobj.coursetitle,
|
sectionName: props.bookobj.coursetitle,
|
||||||
edusubject: userStore.edusubject,
|
edusubject: userStore.edusubject,
|
||||||
edustage: userStore.edustage,
|
edustage: userStore.edustage,
|
||||||
//
|
//
|
||||||
// 题类
|
// 题类
|
||||||
worktype: entpCourseWorkQueryParams.worktype.label,
|
worktype: entpCourseWorkQueryParams.worktype.label,
|
||||||
workTypeId: entpCourseWorkQueryParams.worktype.value,
|
workTypeId: entpCourseWorkQueryParams.worktype.value,
|
||||||
|
@ -381,8 +381,8 @@ const queryForm = reactive({
|
||||||
// // [初中+政治]需改为[初中+道德与法治]
|
// // [初中+政治]需改为[初中+道德与法治]
|
||||||
// queryForm.edusubject = '道德与法治';
|
// queryForm.edusubject = '道德与法治';
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
console.log(queryForm)
|
console.log(queryForm)
|
||||||
listEntpcourseworkNew(queryForm).then(entpcourseworkres => {
|
listEntpcourseworkNew(queryForm).then(entpcourseworkres => {
|
||||||
// if (queryType == 1 && this.entpCourseWorkQueryParams.worktype == '主观题') {
|
// if (queryType == 1 && this.entpCourseWorkQueryParams.worktype == '主观题') {
|
||||||
|
@ -411,8 +411,6 @@ const queryForm = reactive({
|
||||||
entpCourseWorkTotal.value = entpcourseworkres.data.length;
|
entpCourseWorkTotal.value = entpcourseworkres.data.length;
|
||||||
}
|
}
|
||||||
|
|
||||||
if()
|
|
||||||
|
|
||||||
//格式化试题信息
|
//格式化试题信息
|
||||||
processList(workResource.entpCourseWorkList);
|
processList(workResource.entpCourseWorkList);
|
||||||
})
|
})
|
||||||
|
@ -447,8 +445,8 @@ onMounted(() => {
|
||||||
border-radius:5px;
|
border-radius:5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
<div class="desktop-work-item">
|
<div class="desktop-work-item">
|
||||||
<div class="item-title flex">
|
<div class="item-title flex">
|
||||||
<span class="title">工作动态</span>
|
<span class="title">工作动态</span>
|
||||||
<el-radio-group v-model="type">
|
<!-- <el-radio-group v-model="type">
|
||||||
<el-radio-button label="全部" :value="-1" />
|
<el-radio-button label="全部" :value="-1" />
|
||||||
</el-radio-group>
|
</el-radio-group> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="item-content" v-loading="loading">
|
<div class="item-content" v-loading="loading">
|
||||||
<el-scrollbar height="500px">
|
<el-scrollbar height="500px">
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="file-oper-batch-wrap">
|
<div class="file-oper-batch-wrap">
|
||||||
<div style="margin: 0 20px; line-height: 40px">
|
<div style="line-height: 40px">
|
||||||
<el-checkbox
|
<el-checkbox
|
||||||
v-model="isCheckAll"
|
v-model="isCheckAll"
|
||||||
:indeterminate="indeterminate"
|
:indeterminate="indeterminate"
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { deleteSmarttalkBatch } from '@/api/file'
|
import { deleteSmarttalkBatch } from '@/api/file'
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
import { exportFile } from '@/utils/talkFile'
|
import { exportFile } from '@/utils/talkFile'
|
||||||
export default {
|
export default {
|
||||||
name: 'FileOperBatch',
|
name: 'FileOperBatch',
|
||||||
|
|
|
@ -68,7 +68,7 @@
|
||||||
<el-tab-pane label="素材" name="素材">
|
<el-tab-pane label="素材" name="素材">
|
||||||
<div class="prepare-body-header">
|
<div class="prepare-body-header">
|
||||||
<div>
|
<div>
|
||||||
<label style="font-size: 15px">共{{ currentFileList.length }}个文件</label>
|
<label style="font-size: 15px">共{{ currentFileList.filter(ite=>ite.fileFlag!=='apt'&&ite.fileFlag!=='课件').length }}个文件</label>
|
||||||
<el-popover placement="top-start" :width="250" trigger="hover">
|
<el-popover placement="top-start" :width="250" trigger="hover">
|
||||||
<template #default>
|
<template #default>
|
||||||
<div>
|
<div>
|
||||||
|
@ -140,7 +140,7 @@
|
||||||
</div>
|
</div>
|
||||||
<file-oper-batch
|
<file-oper-batch
|
||||||
v-show="checkFileList.length > 0"
|
v-show="checkFileList.length > 0"
|
||||||
:indeterminate="checkFileList.length > 0 && checkFileList.length < currentFileList.length"
|
:indeterminate="checkFileList.length > 0 && checkFileList.length < currentSCFileList.length"
|
||||||
:choose="checkFileList"
|
:choose="checkFileList"
|
||||||
:check-all="isCheckAll"
|
:check-all="isCheckAll"
|
||||||
@click-delete="clickDelete"
|
@click-delete="clickDelete"
|
||||||
|
@ -254,7 +254,7 @@ export default {
|
||||||
computed: {
|
computed: {
|
||||||
isCheckAll() {
|
isCheckAll() {
|
||||||
return (
|
return (
|
||||||
this.checkFileList.length > 0 && this.checkFileList.length === this.currentFileList.length
|
this.checkFileList.length > 0 && this.checkFileList.length === this.currentSCFileList.length
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
currentKJFileList() {
|
currentKJFileList() {
|
||||||
|
|
Loading…
Reference in New Issue