This commit is contained in:
parent
0f63afd277
commit
d283b60af7
|
@ -57,5 +57,12 @@ export default defineConfig({
|
||||||
},
|
},
|
||||||
plugins: [vue(), WindiCSS()],
|
plugins: [vue(), WindiCSS()],
|
||||||
assetsInclude:('**/*.woff', '**/*.woff2', '**/*.ttf'),
|
assetsInclude:('**/*.woff', '**/*.woff2', '**/*.ttf'),
|
||||||
|
css: {
|
||||||
|
preprocessorOptions: {
|
||||||
|
scss: {
|
||||||
|
silenceDeprecations: ['legacy-js-api']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: "iconfont"; /* Project id 4723712 */
|
font-family: "iconfont"; /* Project id 4723712 */
|
||||||
src: url('iconfont.woff2?t=1731393731097') format('woff2'),
|
src: url('iconfont.woff2?t=1731913617367') format('woff2'),
|
||||||
url('iconfont.woff?t=1731393731097') format('woff'),
|
url('iconfont.woff?t=1731913617367') format('woff'),
|
||||||
url('iconfont.ttf?t=1731393731097') format('truetype');
|
url('iconfont.ttf?t=1731913617367') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconfont {
|
.iconfont {
|
||||||
|
@ -13,6 +13,10 @@
|
||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon-baocun:before {
|
||||||
|
content: "\e60e";
|
||||||
|
}
|
||||||
|
|
||||||
.icon-tihuan:before {
|
.icon-tihuan:before {
|
||||||
content: "\e7ab";
|
content: "\e7ab";
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -5,6 +5,13 @@
|
||||||
"css_prefix_text": "icon-",
|
"css_prefix_text": "icon-",
|
||||||
"description": "",
|
"description": "",
|
||||||
"glyphs": [
|
"glyphs": [
|
||||||
|
{
|
||||||
|
"icon_id": "11467388",
|
||||||
|
"name": "保存",
|
||||||
|
"font_class": "baocun",
|
||||||
|
"unicode": "e60e",
|
||||||
|
"unicode_decimal": 58894
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"icon_id": "12730938",
|
"icon_id": "12730938",
|
||||||
"name": "替换",
|
"name": "替换",
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="whiteboart-container" :style="{ height: height + 'px' }">
|
<div class="whiteboart-container">
|
||||||
<div class="canvasBox" ref="box"></div>
|
<div class="canvasBox" ref="box"></div>
|
||||||
|
|
||||||
<div class="footerLeft" @click.stop
|
<div class="footerLeft" @click.stop
|
||||||
|
|
|
@ -61,20 +61,12 @@ export const constantRoutes = [
|
||||||
component: () => import('@/views/job-management/index.vue'),
|
component: () => import('@/views/job-management/index.vue'),
|
||||||
name: 'job-management',
|
name: 'job-management',
|
||||||
meta: { title: '作业管理' },
|
meta: { title: '作业管理' },
|
||||||
// children: [
|
},
|
||||||
// {
|
{
|
||||||
// path: 'details',
|
path: 'design',
|
||||||
// component: () => import('@/views/job-management/Details/index.vue'),
|
component: () => import('@/views/teachingDesign/index.vue'),
|
||||||
// name: 'details',
|
name: 'teaching-design',
|
||||||
// meta: { title: '详情' }
|
meta: { title: '教学框架设计' },
|
||||||
// },
|
|
||||||
// {
|
|
||||||
// path: 'right',
|
|
||||||
// component: () => import('@/views/job-management/Right/index.vue'),
|
|
||||||
// name: 'right',
|
|
||||||
// meta: { title: '主页' }
|
|
||||||
// },
|
|
||||||
// ]
|
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
<template>
|
||||||
|
<!-- <whiteboard/> -->
|
||||||
|
<div> 1</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import whiteboard from '@/components/whiteboard/whiteboard.vue';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
|
</style>
|
|
@ -40,6 +40,7 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref,defineProps ,defineEmits,nextTick , onMounted,shallowRef } from 'vue'
|
import { ref,defineProps ,defineEmits,nextTick , onMounted,shallowRef } from 'vue'
|
||||||
import ClassroomPresentation from './classroomPresentation/index.vue'
|
import ClassroomPresentation from './classroomPresentation/index.vue'
|
||||||
|
import ClassPresentation from './classPresentation/index.vue'
|
||||||
import selfSearchQuestions from './selfSearchQuestions/index.vue'
|
import selfSearchQuestions from './selfSearchQuestions/index.vue'
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
parameter: Object
|
parameter: Object
|
||||||
|
@ -65,6 +66,8 @@ const rightComponets = (str) => {
|
||||||
return ClassroomPresentation
|
return ClassroomPresentation
|
||||||
case 'selfSearchQuestions':
|
case 'selfSearchQuestions':
|
||||||
return selfSearchQuestions
|
return selfSearchQuestions
|
||||||
|
case 'classPresentation':
|
||||||
|
return ClassPresentation
|
||||||
default:
|
default:
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,7 @@ const items = ref([
|
||||||
label:'智能推荐',
|
label:'智能推荐',
|
||||||
},
|
},
|
||||||
] },
|
] },
|
||||||
{ title: '课堂展示', description: '555555', icon: markRaw(Document), type: 'primary', text: '课堂展示',components:'selfSearchQuestions',titleList:[
|
{ title: '课堂展示', description: '555555', icon: markRaw(Document), type: 'primary', text: '课堂展示',components:'classPresentation',titleList:[
|
||||||
{
|
{
|
||||||
id:1,
|
id:1,
|
||||||
label:'课堂展示',
|
label:'课堂展示',
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
<el-button type="primary" @click="onchange('/model/curriculum')">课标研读</el-button>
|
<el-button type="primary" @click="onchange('/model/curriculum')">课标研读</el-button>
|
||||||
<el-button type="primary" @click="onchange('/model/management')">作业管理</el-button>
|
<el-button type="primary" @click="onchange('/model/management')">作业管理</el-button>
|
||||||
<el-button type="success" @click="onchange('/model/teaching')">教材研读</el-button>
|
<el-button type="success" @click="onchange('/model/teaching')">教材研读</el-button>
|
||||||
|
<el-button type="info" @click="onchange('/model/design')">教学框架设计</el-button>
|
||||||
<!-- <el-button type="info" @click="onchange('/model/examination')">考试分析</el-button> -->
|
<!-- <el-button type="info" @click="onchange('/model/examination')">考试分析</el-button> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -0,0 +1,118 @@
|
||||||
|
<template>
|
||||||
|
<div class="container-left flex">
|
||||||
|
<div class="left-header flex">教学模式</div>
|
||||||
|
<div class="left-con" v-loading="loading">
|
||||||
|
<div class="con-item" v-for="item in tempList" :key="item.id">
|
||||||
|
<div class="item-header flex">
|
||||||
|
<span>{{ item.name }}</span>
|
||||||
|
<el-button type="primary" link>选择模式</el-button>
|
||||||
|
</div>
|
||||||
|
<el-scrollbar>
|
||||||
|
<div class="item-list flex">
|
||||||
|
<el-card class="item-card" shadow="never" v-for="el in item.child" :key="el.id">
|
||||||
|
<p class="card-name">{{ el.name }}</p>
|
||||||
|
<div class="card-text">
|
||||||
|
<el-text line-clamp="2">
|
||||||
|
{{ el.prompt }}
|
||||||
|
</el-text>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
</el-scrollbar>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, onMounted } from 'vue';
|
||||||
|
import { modelList } from '@/api/mode/index'
|
||||||
|
|
||||||
|
// 获取模板
|
||||||
|
let list = []
|
||||||
|
const getTemplate = () => {
|
||||||
|
modelList({ model: 1, type: 1, ex3: 1 }).then(res => {
|
||||||
|
list = res.rows
|
||||||
|
getChildTemp()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取子模板
|
||||||
|
const loading = ref(false)
|
||||||
|
const tempList = ref([])
|
||||||
|
const getChildTemp = async () => {
|
||||||
|
loading.value = true
|
||||||
|
for (let item of list) {
|
||||||
|
try {
|
||||||
|
const { rows } = await modelList({ model: 1, type: 2, parentId: item.id })
|
||||||
|
tempList.value.push({
|
||||||
|
id: item.id,
|
||||||
|
name: item.name,
|
||||||
|
child: rows
|
||||||
|
})
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getTemplate()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.container-left {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.left-header {
|
||||||
|
height: 45px;
|
||||||
|
background: #F6F6F6;
|
||||||
|
border-radius: 5px 0 0 0;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
text-indent: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-con {
|
||||||
|
flex: 1;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 0 0 0 5px;
|
||||||
|
padding: 15px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
font-size: 14px;
|
||||||
|
|
||||||
|
.item-header {
|
||||||
|
justify-content: space-between;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.con-item {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-card {
|
||||||
|
width: 130px;
|
||||||
|
font-size: 13px;
|
||||||
|
padding: 10px;
|
||||||
|
margin-right: 20px;
|
||||||
|
|
||||||
|
:deep(.el-card__body) {
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-name {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-text {
|
||||||
|
text-align: left;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,64 @@
|
||||||
|
<template>
|
||||||
|
<div class="container-right flex">
|
||||||
|
<div class="right-header flex">
|
||||||
|
<div class="header-left">
|
||||||
|
<el-button type="primary" link>
|
||||||
|
<i class="iconfont icon-jiahao"></i>新活动
|
||||||
|
</el-button>
|
||||||
|
<el-button type="primary" link>
|
||||||
|
<i class="iconfont icon-baocun"></i>保存为教学模式
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="header-right">
|
||||||
|
<el-button type="primary">生成大纲</el-button>
|
||||||
|
<el-button type="danger">生成PPT</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="right-con flex">
|
||||||
|
<div class="con-item flex">
|
||||||
|
<div class="item-top flex">
|
||||||
|
<span>设置情景</span>
|
||||||
|
<div>
|
||||||
|
<i class="iconfont icon-xiazai9"></i>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="item-bom"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.container-right {
|
||||||
|
flex-direction: column;
|
||||||
|
height: 100%;
|
||||||
|
.right-header {
|
||||||
|
height: 45px;
|
||||||
|
background: #fff;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 20px;
|
||||||
|
border-radius: 0 5px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-con {
|
||||||
|
flex: 1;
|
||||||
|
background: #F6F6F6;
|
||||||
|
padding: 15px;
|
||||||
|
.con-item{
|
||||||
|
flex-direction: column;
|
||||||
|
.item-top{
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.item-bom{
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,30 @@
|
||||||
|
<template>
|
||||||
|
<div class="page-design flex">
|
||||||
|
<div class="page-left">
|
||||||
|
<left />
|
||||||
|
</div>
|
||||||
|
<div class="page-right">
|
||||||
|
<right />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import left from './container/left.vue';
|
||||||
|
import right from './container/right.vue';
|
||||||
|
import { ref } from 'vue'
|
||||||
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.page-design {
|
||||||
|
height: 100%;
|
||||||
|
.page-left{
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
.page-right{
|
||||||
|
width: 50%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
Loading…
Reference in New Issue