lyc-dev #45

Merged
lyc merged 8 commits from lyc-dev into main 2024-11-20 15:26:02 +08:00
16 changed files with 258 additions and 20 deletions
Showing only changes of commit d283b60af7 - Show all commits

View File

@ -57,5 +57,12 @@ export default defineConfig({
},
plugins: [vue(), WindiCSS()],
assetsInclude:('**/*.woff', '**/*.woff2', '**/*.ttf'),
css: {
preprocessorOptions: {
scss: {
silenceDeprecations: ['legacy-js-api']
}
}
}
}
})

View File

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 4723712 */
src: url('iconfont.woff2?t=1731393731097') format('woff2'),
url('iconfont.woff?t=1731393731097') format('woff'),
url('iconfont.ttf?t=1731393731097') format('truetype');
src: url('iconfont.woff2?t=1731913617367') format('woff2'),
url('iconfont.woff?t=1731913617367') format('woff'),
url('iconfont.ttf?t=1731913617367') format('truetype');
}
.iconfont {
@ -13,6 +13,10 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-baocun:before {
content: "\e60e";
}
.icon-tihuan:before {
content: "\e7ab";
}

File diff suppressed because one or more lines are too long

View File

@ -5,6 +5,13 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "11467388",
"name": "保存",
"font_class": "baocun",
"unicode": "e60e",
"unicode_decimal": 58894
},
{
"icon_id": "12730938",
"name": "替换",

View File

@ -1,5 +1,5 @@
<template>
<div class="whiteboart-container" :style="{ height: height + 'px' }">
<div class="whiteboart-container">
<div class="canvasBox" ref="box"></div>
<div class="footerLeft" @click.stop

View File

@ -61,20 +61,12 @@ export const constantRoutes = [
component: () => import('@/views/job-management/index.vue'),
name: 'job-management',
meta: { title: '作业管理' },
// children: [
// {
// path: 'details',
// component: () => import('@/views/job-management/Details/index.vue'),
// name: 'details',
// meta: { title: '详情' }
// },
// {
// path: 'right',
// component: () => import('@/views/job-management/Right/index.vue'),
// name: 'right',
// meta: { title: '主页' }
// },
// ]
},
{
path: 'design',
component: () => import('@/views/teachingDesign/index.vue'),
name: 'teaching-design',
meta: { title: '教学框架设计' },
},
]
},

View File

@ -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>

View File

@ -40,6 +40,7 @@
<script setup>
import { ref,defineProps ,defineEmits,nextTick , onMounted,shallowRef } from 'vue'
import ClassroomPresentation from './classroomPresentation/index.vue'
import ClassPresentation from './classPresentation/index.vue'
import selfSearchQuestions from './selfSearchQuestions/index.vue'
const props = defineProps({
parameter: Object
@ -65,6 +66,8 @@ const rightComponets = (str) => {
return ClassroomPresentation
case 'selfSearchQuestions':
return selfSearchQuestions
case 'classPresentation':
return ClassPresentation
default:
return null
}

View File

@ -76,7 +76,7 @@ const items = ref([
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,
label:'课堂展示',

View File

@ -4,6 +4,7 @@
<el-button type="primary" @click="onchange('/model/curriculum')">课标研读</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="info" @click="onchange('/model/design')">教学框架设计</el-button>
<!-- <el-button type="info" @click="onchange('/model/examination')">考试分析</el-button> -->
</div>
</div>

View File

@ -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>

View File

@ -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>

View File

@ -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>