Compare commits
12 Commits
b081000f11
...
42f24041db
Author | SHA1 | Date |
---|---|---|
白了个白 | 42f24041db | |
zouyf | 727299aac9 | |
lyc | 27b0457eef | |
lyc | 34e74c5ec6 | |
“zouyf” | 208f5d496f | |
“zouyf” | 122fb41690 | |
朱浩 | eb4a58b306 | |
朱浩 | a313a0e8b0 | |
“zouyf” | 630a7b4c50 | |
朱浩 | f08b5a8bee | |
朱浩 | e2255544da | |
朱浩 | cbc6f21100 |
|
@ -2,12 +2,21 @@
|
||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
// 查询知识点列表
|
// 查询知识点列表
|
||||||
export function listKnowlegepoint(query) {
|
export function listKnowlegepoint(query) {
|
||||||
return request({
|
return request({
|
||||||
url: '/point/list',
|
url: '/point/list',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 查询知识点列表
|
||||||
|
export function listKnowlegepointFormat(query) {
|
||||||
|
return request({
|
||||||
|
url: '/point/formatList',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 查询一级知识点查下级所有层级
|
// 查询一级知识点查下级所有层级
|
||||||
|
|
|
@ -71,4 +71,9 @@ defineExpose({
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.format-work-desc > :is(div):first-child){
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
|
@ -102,7 +102,7 @@ const getCompletion = async (val) => {
|
||||||
type: 'robot',
|
type: 'robot',
|
||||||
msg: answer,
|
msg: answer,
|
||||||
})
|
})
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
loaded.value = false
|
loaded.value = false
|
||||||
}
|
}
|
||||||
|
@ -117,11 +117,11 @@ const saveAdjust = (item) =>{
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
let data = sessionStore.get('subject.curNode')
|
let data = sessionStore.get('subject.curNode')
|
||||||
Object.assign(curNode, data);
|
Object.assign(curNode, data);
|
||||||
let text = props.modeType == 1 ? '课标': props.modeType == 2 ? '教材' : '考试'
|
let text = props.modeType == 1||props.modeType == 2 ? '课标' : '考试'
|
||||||
|
|
||||||
let jsonKey = `${text}-${data.edustage}-${data.edusubject}`
|
let jsonKey = `${text}-${data.edustage}-${data.edusubject}`
|
||||||
|
console.log(jsonKey)
|
||||||
params.dataset_id = dataSetJson[jsonKey]
|
params.dataset_id = dataSetJson[jsonKey]
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
@ -152,7 +152,7 @@ onMounted(() => {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
}
|
}
|
||||||
.chart-item {
|
.chart-item {
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
|
@ -257,4 +257,4 @@ onMounted(() => {
|
||||||
transform: scale(0.01);
|
transform: scale(0.01);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -56,10 +56,10 @@ const title = computed(() => {
|
||||||
const radio = ref(1)
|
const radio = ref(1)
|
||||||
const radioList = ref([
|
const radioList = ref([
|
||||||
{ label: '浏览研读', value: 1 },
|
{ label: '浏览研读', value: 1 },
|
||||||
{ label: '跨学科研读', value: 2 },
|
// { label: '跨学科研读', value: 2 },
|
||||||
{ label: '跨学段研读', value: 3 },
|
// { label: '跨学段研读', value: 3 },
|
||||||
{ label: '课标修订研读', value: 4 },
|
// { label: '课标修订研读', value: 4 },
|
||||||
{ label: '自由研读', value: 5 },
|
// { label: '自由研读', value: 5 },
|
||||||
])
|
])
|
||||||
const list = ref([
|
const list = ref([
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="container-header flex">
|
<div class="container-header flex">
|
||||||
<div class="header-left flex">
|
<div class="header-left flex">
|
||||||
<el-button link @click="showDialog = true">
|
<el-button link @click="onClick">
|
||||||
{{ curNode.edustage}}{{ curNode.edusubject }}{{ type == 1 ? '课标研读': '教材分析'}}<i class="iconfont icon-xiangxia"></i>
|
{{ curNode.edustage}}{{ curNode.edusubject }}{{ type == 1 ? '课标研读': '教材分析'}}<i class="iconfont icon-xiangxia"></i>
|
||||||
</el-button>
|
</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -20,12 +20,14 @@
|
||||||
</template>
|
</template>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<el-button type="primary" link @click="onAdd">
|
<el-button type="primary" link @click="onAdd">
|
||||||
<el-icon>
|
<el-icon>
|
||||||
<Plus />
|
<Plus />
|
||||||
</el-icon>
|
</el-icon>
|
||||||
添加提示词
|
添加提示词
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<!-- <el-button type="danger">删除</el-button> -->
|
||||||
<!-- <el-button type="primary" link>保存模板</el-button> -->
|
<!-- <el-button type="primary" link>保存模板</el-button> -->
|
||||||
<el-button type="primary" @click="aiRead">一键研读</el-button>
|
<el-button type="primary" @click="aiRead">一键研读</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -53,9 +55,7 @@ const props = defineProps({
|
||||||
default: 1
|
default: 1
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
watch(() => props.type, (newValue) => {
|
|
||||||
console.log(newValue, 'newValue2');
|
|
||||||
}, { immediate: true });
|
|
||||||
|
|
||||||
const emit = defineEmits(['changeTemp', 'onRead'])
|
const emit = defineEmits(['changeTemp', 'onRead'])
|
||||||
|
|
||||||
|
@ -104,6 +104,11 @@ const onAdd = () => {
|
||||||
wordDialog.value = true
|
wordDialog.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const onClick = () =>{
|
||||||
|
if(props.type == 1) return
|
||||||
|
showDialog.value = true
|
||||||
|
}
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
emitter.off('onGetMain')
|
emitter.off('onGetMain')
|
||||||
})
|
})
|
||||||
|
|
|
@ -15,6 +15,8 @@ const pdfUrl = ref('')
|
||||||
onMounted(async () =>{
|
onMounted(async () =>{
|
||||||
await nextTick()
|
await nextTick()
|
||||||
const { fileurl } = sessionStore.get('subject.curBook')
|
const { fileurl } = sessionStore.get('subject.curBook')
|
||||||
|
console.log(fileurl,'fileurl');
|
||||||
|
|
||||||
pdfUrl.value = import.meta.env.VITE_APP_RES_FILE_PATH + fileurl.replace('.txt','.pdf')
|
pdfUrl.value = import.meta.env.VITE_APP_RES_FILE_PATH + fileurl.replace('.txt','.pdf')
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -257,7 +257,7 @@ const removeItem = async (item) => {
|
||||||
isAdd.value = false
|
isAdd.value = false
|
||||||
Object.assign(keywordItem, item)
|
Object.assign(keywordItem, item)
|
||||||
isEditKeyWord.value = true
|
isEditKeyWord.value = true
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// const { msg } = await removeChildTemp(item.id)
|
// const { msg } = await removeChildTemp(item.id)
|
||||||
|
@ -269,7 +269,7 @@ const removeItem = async (item) => {
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
let data = sessionStore.get('subject.curNode')
|
let data = sessionStore.get('subject.curNode')
|
||||||
Object.assign(curNode, data);
|
Object.assign(curNode, data);
|
||||||
let text = props.modeType == 1 ? '课标' : props.modeType == 2 ? '教材' : '考试'
|
let text = props.modeType == 1 || props.modeType == 2 ? '课标' : '考试'
|
||||||
let jsonKey = `${text}-${data.edustage}-${data.edusubject}`
|
let jsonKey = `${text}-${data.edustage}-${data.edusubject}`
|
||||||
params.dataset_id = dataSetJson[jsonKey]
|
params.dataset_id = dataSetJson[jsonKey]
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
<div class="blockBox">
|
<div class="blockBox">
|
||||||
<el-button @click="currentType = 'selection'"><el-image src="/src/assets/images/mouse-pointer.png"
|
<el-button @click="currentType = 'selection'"><el-image src="../../../src/assets/images/mouse-pointer.png"
|
||||||
style="width: 14px; height: 14px; color: silver" /></el-button>
|
style="width: 14px; height: 14px; color: silver" /></el-button>
|
||||||
</div>
|
</div>
|
||||||
<template v-if="type == 'design'">
|
<template v-if="type == 'design'">
|
||||||
|
@ -123,7 +123,7 @@
|
||||||
<!-- 边框样式 -->
|
<!-- 边框样式 -->
|
||||||
<div class="blockBox">
|
<div class="blockBox">
|
||||||
<el-dropdown @command="updateStyle('lineDash', $event)" placement="top">
|
<el-dropdown @command="updateStyle('lineDash', $event)" placement="top">
|
||||||
<el-button><el-image src="/src/assets/images/borderstyle.png"
|
<el-button><el-image src="../../../src/assets/images/borderstyle.png"
|
||||||
style="width: 14px; height: 14px"></el-image></el-button>
|
style="width: 14px; height: 14px"></el-image></el-button>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
|
@ -145,7 +145,7 @@
|
||||||
<!-- 边框粗细 -->
|
<!-- 边框粗细 -->
|
||||||
<div class="blockBox">
|
<div class="blockBox">
|
||||||
<el-dropdown @command="updateStyle('lineWidth', $event)" placement="top">
|
<el-dropdown @command="updateStyle('lineWidth', $event)" placement="top">
|
||||||
<el-button><el-image src="/src/assets/images/borderwidth.png"
|
<el-button><el-image src="../../../src/assets/images/borderwidth.png"
|
||||||
style="width: 14px; height: 14px"></el-image></el-button>
|
style="width: 14px; height: 14px"></el-image></el-button>
|
||||||
<template #dropdown>
|
<template #dropdown>
|
||||||
<el-dropdown-menu>
|
<el-dropdown-menu>
|
||||||
|
|
|
@ -59,14 +59,14 @@ export const processList = (row, aloneOption=false) => {
|
||||||
for(; j<workDescArr.length; j++){
|
for(; j<workDescArr.length; j++){
|
||||||
const char = String.fromCharCode(65+j);
|
const char = String.fromCharCode(65+j);
|
||||||
if (aloneOption) {
|
if (aloneOption) {
|
||||||
tmp += `<div style='width:100%;display:flex;padding: 2px 0'>${char}.${workDescArr[j]}</div>`;
|
tmp += `<div class="format-work-desc" style='width:100%;display:flex;padding: 2px 0'>${char}.${workDescArr[j]}</div>`;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(j%2 == 0){
|
if(j%2 == 0){
|
||||||
tmp += `<div style='width:100%;display:flex;'>`;
|
tmp += `<div style='width:100%;display:flex;'>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp += `<div style='padding-left:10px;width:50%;overflow:hidden;text-overflow:ellipsis;font-size:0.9em;'>${char}.${workDescArr[j]}</div>`;
|
tmp += `<div class="format-work-desc" style='padding-left:10px;width:50%;overflow:hidden;text-overflow:ellipsis;font-size:0.9em;'>${char}.${workDescArr[j]}</div>`;
|
||||||
if(j%2 == 1){
|
if(j%2 == 1){
|
||||||
tmp += '</div>';
|
tmp += '</div>';
|
||||||
}
|
}
|
||||||
|
@ -153,14 +153,14 @@ export const processList = (row, aloneOption=false) => {
|
||||||
for(; j<optionsArr.length; j++){
|
for(; j<optionsArr.length; j++){
|
||||||
const char = String.fromCharCode(65+j);
|
const char = String.fromCharCode(65+j);
|
||||||
if (aloneOption) {
|
if (aloneOption) {
|
||||||
tmp += `<div style='width:100%;display:flex;padding: 2px 0'>${char}.${optionsArr[j]}</div>`;
|
tmp += `<div class="format-work-desc" style='width:100%;display:flex;padding: 2px 0'>${char}.${optionsArr[j]}</div>`;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(j%2 == 0){
|
if(j%2 == 0){
|
||||||
tmp += `<div style='width:100%;display:flex;'>`;
|
tmp += `<div style='width:100%;display:flex;'>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp += `<div style='padding-left: 10px; width: 50%'>${char}.${optionsArr[j]}</div>`;
|
tmp += `<div class="format-work-desc" style='padding-left: 10px; width: 50%'>${char}.${optionsArr[j]}</div>`;
|
||||||
if(j%2 == 1){
|
if(j%2 == 1){
|
||||||
tmp += '</div>';
|
tmp += '</div>';
|
||||||
}
|
}
|
||||||
|
@ -280,14 +280,14 @@ export const processList = (row, aloneOption=false) => {
|
||||||
for(; j<workDescArr.length; j++){
|
for(; j<workDescArr.length; j++){
|
||||||
const char = String.fromCharCode(65+j);
|
const char = String.fromCharCode(65+j);
|
||||||
if (aloneOption) {
|
if (aloneOption) {
|
||||||
tmp += `<div style='width:100%;display:flex;padding: 2px 0'>${char}.${workDescArr[j]}</div>`;
|
tmp += `<div class="format-work-desc" style='width:100%;display:flex;padding: 2px 0'>${char}.${workDescArr[j]}</div>`;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(j%2 == 0){
|
if(j%2 == 0){
|
||||||
tmp += `<div style='width:100%;display:flex;'>`;
|
tmp += `<div style='width:100%;display:flex;'>`;
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp += `<div style='padding-left: 10px; width: 50%'>${char}.${workDescArr[j]}</div>`;
|
tmp += `<div class="format-work-desc" style='padding-left: 10px; width: 50%'>${char}.${workDescArr[j]}</div>`;
|
||||||
if(j%2 == 1){
|
if(j%2 == 1){
|
||||||
tmp += '</div>';
|
tmp += '</div>';
|
||||||
}
|
}
|
||||||
|
|
|
@ -488,6 +488,10 @@ watch(() => props.bookobj.levelSecondId, (newVal, oldVal) => {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: calc(100% - 100px);
|
height: calc(100% - 100px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.format-work-desc > :is(div):first-child){
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
// :deep(.el-dialog .question-dialog){
|
// :deep(.el-dialog .question-dialog){
|
||||||
// height: 80vh !important;
|
// height: 80vh !important;
|
||||||
|
|
|
@ -99,6 +99,8 @@ const router = useRouter()
|
||||||
const { proxy } = getCurrentInstance()
|
const { proxy } = getCurrentInstance()
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const curLessionList = ref([]);
|
||||||
const activeParams = reactive({
|
const activeParams = reactive({
|
||||||
version: {},
|
version: {},
|
||||||
lession: {},
|
lession: {},
|
||||||
|
|
|
@ -405,9 +405,10 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ElMessage, ElNotification } from 'element-plus'
|
import { ElMessage, ElNotification } from 'element-plus'
|
||||||
import { Search } from '@element-plus/icons-vue'
|
import { Search } from '@element-plus/icons-vue'
|
||||||
import { onMounted, ref,watch, reactive, getCurrentInstance,nextTick } from 'vue'
|
import { onMounted, ref, watch, reactive, getCurrentInstance,nextTick } from 'vue'
|
||||||
|
|
||||||
import { getBindlist } from '@/api/education/knowledgePoint'
|
import { getBindlist, listKnowlegepointFormat } from '@/api/education/knowledgePoint'
|
||||||
|
import { listEvaluation } from '@/api/subject'
|
||||||
import { listEntpcoursework, getEntpcoursework, delEntpcoursework, addEntpcoursework, updateEntpcoursework, uploadEntpcourseworkFile } from "@/api/education/entpCourseWork";
|
import { listEntpcoursework, getEntpcoursework, delEntpcoursework, addEntpcoursework, updateEntpcoursework, uploadEntpcourseworkFile } from "@/api/education/entpCourseWork";
|
||||||
import { isJson } from "@/hooks/useProcessList";
|
import { isJson } from "@/hooks/useProcessList";
|
||||||
|
|
||||||
|
@ -611,10 +612,13 @@ onMounted(() => {
|
||||||
}
|
}
|
||||||
yearList.value.push(s)
|
yearList.value.push(s)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 拿到当前章节下得所有知识点
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const checkBoxChange=(v)=>{
|
const checkBoxChange=(v)=>{
|
||||||
// 单选 v: []
|
// 单选 v: []
|
||||||
console.log(v,'vvvvvv')
|
console.log(v,'vvvvvv')
|
||||||
|
@ -1666,10 +1670,56 @@ const myMessageShow=(title, msg, status)=>{
|
||||||
// },
|
// },
|
||||||
// },
|
// },
|
||||||
|
|
||||||
watch(() => props.bookobj.levelSecondId, (newVal, oldVal) => {
|
/**
|
||||||
|
* @desc: 遍历原知识点数据, 将title字段转为knowTitle以供knowledgePointProps进行tree的格式转换显示
|
||||||
|
* @return: {*}
|
||||||
|
* @param {*} list
|
||||||
|
*/
|
||||||
|
const updateKnowledgePoint = (list) => {
|
||||||
|
list.forEach(item => {
|
||||||
|
if (item.title && item.title != '') {
|
||||||
|
item.knowTitle = item.title;
|
||||||
|
}
|
||||||
|
if (item.children && Array.isArray(item.children)) {
|
||||||
|
updateKnowledgePoint(item.children);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return list;
|
||||||
|
};
|
||||||
|
|
||||||
|
watch(() => props.bookobj.levelSecondId, async (newVal, oldVal) => {
|
||||||
console.log(props.bookobj,'课程选择')
|
console.log(props.bookobj,'课程选择')
|
||||||
// props.bookobj.levelSecondId? props.bookobj.levelSecondId : props.bookobj.levelFirstId
|
// props.bookobj.levelSecondId? props.bookobj.levelSecondId : props.bookobj.levelFirstId
|
||||||
lessionid.value = props.bookobj.levelSecondId? props.bookobj.levelSecondId : props.bookobj.levelFirstId;
|
lessionid.value = props.bookobj.levelSecondId? props.bookobj.levelSecondId : props.bookobj.levelFirstId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 格式化知识点: 分两种情况
|
||||||
|
* 1. 语文/英语: 获取学科下的所有知识点(该学科对应无章节与知识点绑定, 故只获取全知识点)
|
||||||
|
* 2. 其他: 获取当前章节下的所有知识点
|
||||||
|
*/
|
||||||
|
let id = props.bookobj.levelSecondId;
|
||||||
|
if(props.bookobj.node.edusubject == '语文' || props.bookobj.node.edusubject == '英语'){
|
||||||
|
id = props.bookobj.node.rootid;
|
||||||
|
const res = await listEvaluation({ edusubject: props.bookobj.node.edusubject, edustage: props.bookobj.node.edustage, itemkey: "subject", pageSize: 10 });
|
||||||
|
id = res.rows[0]?.id;
|
||||||
|
if (id) {
|
||||||
|
listKnowlegepointFormat({evalId: id, pageNum: 1, pageSize: 5000,}).then(res => {
|
||||||
|
//console.log('listKnowlegepointFormat->', res.rows);
|
||||||
|
curKnowledgePointList.value = updateKnowledgePoint(res.rows);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
getBindlist({ eid: id }).then(res => {
|
||||||
|
if (!res.data || res.data.length < 1) {
|
||||||
|
ElMessage.warning('当前章节下未绑定知识点,暂不更新该试题知识点!');
|
||||||
|
curKnowledgePointList.value = [];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
curKnowledgePointList.value = res.data;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -1680,7 +1730,20 @@ defineExpose({
|
||||||
cropperFormItemCallBack,
|
cropperFormItemCallBack,
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
.el-cascader-panel {
|
||||||
|
li[aria-haspopup="true"] {
|
||||||
|
.el-checkbox {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|
||||||
.questForm-item-cover{
|
.questForm-item-cover{
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
|
@ -1698,6 +1761,4 @@ defineExpose({
|
||||||
z-index: 9999;
|
z-index: 9999;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
|
@ -60,6 +60,7 @@ import { sessionStore } from '@/utils/store'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
import { dataSetJson } from '@/utils/comm.js'
|
import { dataSetJson } from '@/utils/comm.js'
|
||||||
import useUserStore from '@/store/modules/user'
|
import useUserStore from '@/store/modules/user'
|
||||||
|
import emitter from '@/utils/mitt';
|
||||||
|
|
||||||
const userInfo = useUserStore().user
|
const userInfo = useUserStore().user
|
||||||
const textarea = ref('')
|
const textarea = ref('')
|
||||||
|
@ -119,7 +120,7 @@ const getCompletion = async (val) => {
|
||||||
type: 'robot',
|
type: 'robot',
|
||||||
msg: answer,
|
msg: answer,
|
||||||
})
|
})
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
loaded.value = false
|
loaded.value = false
|
||||||
}
|
}
|
||||||
|
@ -132,6 +133,8 @@ const saveAdjust = (item) =>{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const curFile = reactive({})
|
const curFile = reactive({})
|
||||||
const dataset_id = ref('')
|
const dataset_id = ref('')
|
||||||
const fileList = ref([])
|
const fileList = ref([])
|
||||||
|
@ -144,7 +147,9 @@ const getList = () =>{
|
||||||
Object.assign(curFile, fileList.value[0])
|
Object.assign(curFile, fileList.value[0])
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
emitter.on('curFile', (item) =>{
|
||||||
|
changeFile(item)
|
||||||
|
})
|
||||||
const changeFile = (val) =>{
|
const changeFile = (val) =>{
|
||||||
|
|
||||||
Object.assign(curFile, val);
|
Object.assign(curFile, val);
|
||||||
|
@ -154,8 +159,8 @@ const changeFile = (val) =>{
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
let data = sessionStore.get('subject.curNode')
|
let data = sessionStore.get('subject.curNode')
|
||||||
Object.assign(curNode, data);
|
Object.assign(curNode, data);
|
||||||
let text = props.modeType == 1 ? '课标': props.modeType == 2 ? '教材' : '考试'
|
let text = props.modeType == 1 ||props.modeType == 2 ? '课标' : '考试'
|
||||||
|
|
||||||
let jsonKey = `${text}-${data.edustage}-${data.edusubject}`
|
let jsonKey = `${text}-${data.edustage}-${data.edusubject}`
|
||||||
params.dataset_id = dataSetJson[jsonKey]
|
params.dataset_id = dataSetJson[jsonKey]
|
||||||
dataset_id.value = dataSetJson[jsonKey]
|
dataset_id.value = dataSetJson[jsonKey]
|
||||||
|
@ -190,7 +195,7 @@ onMounted(() => {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
||||||
}
|
}
|
||||||
.chart-item {
|
.chart-item {
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
|
@ -300,4 +305,4 @@ onMounted(() => {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -8,16 +8,16 @@
|
||||||
</template>
|
</template>
|
||||||
<div class="dialog-content">
|
<div class="dialog-content">
|
||||||
<div class="flex dialog-top">
|
<div class="flex dialog-top">
|
||||||
<el-radio-group v-model="radio" @change="changeRadio">
|
<!-- <el-radio-group v-model="radio" @change="changeRadio">
|
||||||
<el-radio :value="item.value" v-for="item in radioList">{{ item.label }}</el-radio>
|
<el-radio :value="item.value" v-for="item in radioList">{{ item.label }}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group> -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="content-list">
|
<div class="content-list">
|
||||||
<ul>
|
<ul>
|
||||||
<li v-for="(item, index) in list" :class="activeIndex == index ? 'li-active' : ''" @click="clickItem(index)">
|
<li v-for="(item, index) in fileList" :class="activeIndex == index ? 'li-active' : ''" @click="clickItem(index, item)">
|
||||||
<el-image class="img" :src="item.url" />
|
<el-image class="img" :src="url" />
|
||||||
<span>{{ item.name }}</span>
|
<el-text truncated>{{ item.fileName }}</el-text>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -47,6 +47,7 @@ import { sessionStore } from '@/utils/store'
|
||||||
import { dataSetJson } from '@/utils/comm.js'
|
import { dataSetJson } from '@/utils/comm.js'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage } from 'element-plus'
|
||||||
import useUserStore from '@/store/modules/user'
|
import useUserStore from '@/store/modules/user'
|
||||||
|
import emitter from '@/utils/mitt';
|
||||||
|
|
||||||
const userInfo = useUserStore().user
|
const userInfo = useUserStore().user
|
||||||
const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload");
|
const uploadFileUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload");
|
||||||
|
@ -93,11 +94,7 @@ const changeRadio = () => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const activeIndex = ref(-1)
|
const activeIndex = ref(0)
|
||||||
|
|
||||||
const clickItem = (index) => {
|
|
||||||
activeIndex.value = index
|
|
||||||
}
|
|
||||||
|
|
||||||
const dataset_id = ref('')
|
const dataset_id = ref('')
|
||||||
|
|
||||||
|
@ -109,7 +106,7 @@ const onSuccess = async (response) =>{
|
||||||
dataset_id: dataset_id.value
|
dataset_id: dataset_id.value
|
||||||
}
|
}
|
||||||
const res = await completion(data)
|
const res = await completion(data)
|
||||||
console.log(res)
|
|
||||||
if(res.data.code != 200) return
|
if(res.data.code != 200) return
|
||||||
let docData = {
|
let docData = {
|
||||||
fileUrl: response.url,
|
fileUrl: response.url,
|
||||||
|
@ -123,19 +120,30 @@ const onSuccess = async (response) =>{
|
||||||
}
|
}
|
||||||
const { msg } = await addDoc(docData)
|
const { msg } = await addDoc(docData)
|
||||||
ElMessage.success(msg)
|
ElMessage.success(msg)
|
||||||
|
getList()
|
||||||
|
|
||||||
}
|
}
|
||||||
const curNode = reactive({})
|
const curNode = reactive({})
|
||||||
|
|
||||||
|
const fileList = ref([])
|
||||||
|
const curFile = reactive({})
|
||||||
const getList = () =>{
|
const getList = () =>{
|
||||||
docList({
|
docList({
|
||||||
userId: userInfo.userId,
|
userId: userInfo.userId,
|
||||||
dataset_id: dataset_id.value
|
dataset_id: dataset_id.value
|
||||||
}).then( res =>{
|
}).then( res =>{
|
||||||
console.log(res)
|
fileList.value = [...res.rows]
|
||||||
|
Object.assign(curFile, fileList.value[0])
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const clickItem = (index, item) => {
|
||||||
|
activeIndex.value = index
|
||||||
|
Object.assign(curFile, item)
|
||||||
|
emitter.emit('curFile',item)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
onMounted(() =>{
|
onMounted(() =>{
|
||||||
let data = sessionStore.get('subject.curNode')
|
let data = sessionStore.get('subject.curNode')
|
||||||
|
@ -174,6 +182,7 @@ onMounted(() =>{
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
|
width: 130px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
|
|
|
@ -257,7 +257,7 @@ const removeItem = async (item) => {
|
||||||
isAdd.value = false
|
isAdd.value = false
|
||||||
Object.assign(keywordItem, item)
|
Object.assign(keywordItem, item)
|
||||||
isEditKeyWord.value = true
|
isEditKeyWord.value = true
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// const { msg } = await removeChildTemp(item.id)
|
// const { msg } = await removeChildTemp(item.id)
|
||||||
|
@ -269,7 +269,7 @@ const removeItem = async (item) => {
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
let data = sessionStore.get('subject.curNode')
|
let data = sessionStore.get('subject.curNode')
|
||||||
Object.assign(curNode, data);
|
Object.assign(curNode, data);
|
||||||
let text = props.modeType == 1 ? '课标' : props.modeType == 2 ? '教材' : '考试'
|
let text = props.modeType == 1 || props.modeType == 2? '课标' : '考试'
|
||||||
let jsonKey = `${text}-${data.edustage}-${data.edusubject}`
|
let jsonKey = `${text}-${data.edustage}-${data.edusubject}`
|
||||||
params.dataset_id = dataSetJson[jsonKey]
|
params.dataset_id = dataSetJson[jsonKey]
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,10 @@
|
||||||
"noEmit": true,
|
"noEmit": true,
|
||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
"paths": {
|
"paths": {
|
||||||
"../*": ["./src/*"]
|
"../*": ["./src/*"],
|
||||||
|
"@/*": [
|
||||||
|
"./src/renderer/src/*"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue