Compare commits

...

7 Commits

22 changed files with 1229 additions and 54 deletions

View File

@ -9,7 +9,6 @@ export const listEvaluation = (params)=> {
})
}
export const addFileToPrepare = (params) => {
return request({
url: '/smarttalk/file/addFileToPrepare',
@ -17,3 +16,4 @@ export const addFileToPrepare = (params) => {
params
})
}

View File

@ -0,0 +1,19 @@
import request from '@/utils/request'
// 查询classwork列表
export function homeworklist(params) {
return request({
url: '/education/classwork/list',
method: 'get',
params
})
}
// 查询entpcourse列表
export function listEntpcourse(query) {
return request({
url: '/education/entpcourse/list',
method: 'get',
params: query
})
}

View File

@ -1,9 +1,9 @@
@font-face {
font-family: "iconfont"; /* Project id 2794390 */
src: url('iconfont.woff2?t=1721815727687') format('woff2'),
url('iconfont.woff?t=1721815727687') format('woff'),
url('iconfont.ttf?t=1721815727687') format('truetype'),
url('iconfont.svg?t=1721815727687#iconfont') format('svg');
src: url('iconfont.woff2?t=1722323882803') format('woff2'),
url('iconfont.woff?t=1722323882803') format('woff'),
url('iconfont.ttf?t=1722323882803') format('truetype'),
url('iconfont.svg?t=1722323882803#iconfont') format('svg');
}
.iconfont {
@ -14,6 +14,10 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-zuoye1:before {
content: "\e610";
}
.icon-xiazai9:before {
content: "\e60b";
}

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": "8023423",
"name": "作业",
"font_class": "zuoye1",
"unicode": "e610",
"unicode_decimal": 58896
},
{
"icon_id": "720967",
"name": "更多",

View File

@ -14,6 +14,8 @@
/>
<missing-glyph />
<glyph glyph-name="zuoye1" unicode="&#58896;" d="M839.415605-127.976172H184.563842A111.949251 111.949251 0 0 0 70.355065-18.697271V687.096536a111.949251 111.949251 0 0 0 114.208777 109.278902h133.928278a30.81172 30.81172 0 0 0 0-61.623441H184.563842A50.32581 50.32581 0 0 1 131.978506 687.096536v-705.793807a50.32581 50.32581 0 0 1 52.585336-47.655461h654.851763A50.32581 50.32581 0 0 1 892.000941-18.697271V687.096536a50.32581 50.32581 0 0 1-52.585336 47.655461h-121.809001a30.81172 30.81172 0 0 0 0 61.623441h121.809001A111.949251 111.949251 0 0 0 953.624381 687.096536v-705.793807a111.949251 111.949251 0 0 0-114.208776-109.278901zM662.145507 834.376559a20.541147 20.541147 0 0 0 20.541147-20.541147v-82.164587a20.541147 20.541147 0 0 0-20.541147-20.541147h-287.576056a20.541147 20.541147 0 0 0-20.541147 20.541147V813.835412a20.541147 20.541147 0 0 0 20.541147 20.541147h287.576056m0 61.623441h-287.576056a82.164588 82.164588 0 0 1-82.164588-82.164588v-82.164587a82.164588 82.164588 0 0 1 82.164588-82.164588h287.576056a82.164588 82.164588 0 0 1 82.164588 82.164588V813.835412a82.164588 82.164588 0 0 1-82.164588 82.164588zM757.251017 265.386791H274.534065a30.81172 30.81172 0 0 0 0 61.62344h482.716952a30.81172 30.81172 0 0 0 0-61.62344zM538.898626 429.715966H274.534065a30.81172 30.81172 0 0 0 0 61.62344h264.364561a30.81172 30.81172 0 0 0 0-61.62344zM662.145507 121.598762H274.534065a30.81172 30.81172 0 0 0 0 61.623441h387.611442a30.81172 30.81172 0 1 0 0-61.623441z" horiz-adv-x="1024" />
<glyph glyph-name="xiazai9" unicode="&#58891;" d="M102.4 486.4C46.08 486.4 0 440.32 0 384s46.08-102.4 102.4-102.4 102.4 46.08 102.4 102.4C204.8 440.32 158.72 486.4 102.4 486.4zM921.6 486.4c-56.32 0-102.4-46.08-102.4-102.4s46.08-102.4 102.4-102.4S1024 327.68 1024 384C1024 440.32 977.92 486.4 921.6 486.4zM512 486.4c-56.32 0-102.4-46.08-102.4-102.4s46.08-102.4 102.4-102.4 102.4 46.08 102.4 102.4C614.4 440.32 568.32 486.4 512 486.4z" horiz-adv-x="1024" />
<glyph glyph-name="hudong" unicode="&#58892;" d="M99.776 554.24c0 169.408 141.056 306.816 315.008 306.816h0.768v-85.312h-0.768c-125.44 0-227.456-99.328-227.456-221.504v-1.92h106.944L147.2 409.344-0.064 552.32h99.84v1.92zM923.52 213.248c0-169.408-141.12-306.816-314.944-306.816h-0.768v85.312h0.768c125.44 0 227.456 99.392 227.456 221.568v1.92H729.088l147.072 142.976 147.2-142.976h-99.84v-1.984zM398.912 259.392c27.584 0 50.048-21.184 50.048-47.104v-194.752c0-25.984-22.464-47.104-49.984-47.104H114.048c-27.584 0-50.048 21.184-50.048 47.104v194.752c0 25.984 22.464 47.104 50.048 47.104h284.864m0 64H114.048c-62.976 0-114.048-49.792-114.048-111.104v-194.752c0-61.312 51.008-111.104 114.048-111.104h284.928c62.976 0 113.984 49.856 113.984 111.104v194.752c0 61.312-51.008 111.104-114.048 111.104zM906.176 797.184c27.584 0 50.048-21.12 50.048-47.104v-194.752c0-25.984-22.464-47.168-50.048-47.168H621.248c-27.584 0-49.984 21.184-49.984 47.168V750.08c0 25.984 22.464 47.104 49.984 47.104h284.928m0 64H621.248c-62.976 0-113.984-49.728-113.984-111.104v-194.752c0-61.376 51.008-111.168 113.984-111.168h284.992c62.912 0 114.048 49.728 114.048 111.168V750.08c-0.064 61.312-51.072 111.104-114.112 111.104z" horiz-adv-x="1024" />

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 61 KiB

View File

@ -0,0 +1,353 @@
@font-face {
font-family: "iconfont"; /* Project id 4581405 */
/* Color fonts */
src:
url('iconfont.woff2?t=1718185631014') format('woff2'),
url('iconfont.woff?t=1718185631014') format('woff'),
url('iconfont.ttf?t=1718185631014') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-iconku-zhuanqu-:before {
content: "\e649";
}
.icon-PPT:before {
content: "\e62b";
}
.icon-fabiaolunwen:before {
content: "\e772";
}
.icon-xiezuo1:before {
content: "\e612";
}
.icon-fenxi1:before {
content: "\e627";
}
.icon-kechengziyuan:before {
content: "\e6e9";
}
.icon-36zuoyepingtai:before {
content: "\e699";
}
.icon-shoucang1:before {
content: "\e617";
}
.icon-fenxiang:before {
content: "\e60a";
}
.icon-zhucetianjiahaoyou:before {
content: "\e8ca";
}
.icon-duoqudaojicheng:before {
content: "\e695";
}
.icon-yewukaizhan:before {
content: "\e602";
}
.icon-fankui1:before {
content: "\e6fa";
}
.icon-shezhi:before {
content: "\e60c";
}
.icon-chayue:before {
content: "\e605";
}
.icon-baogao:before {
content: "\e630";
}
.icon-xuekezuhe:before {
content: "\e625";
}
.icon-fenxiang1:before {
content: "\eb24";
}
.icon-tongzhizhongxin:before {
content: "\eb43";
}
.icon-xiajia:before {
content: "\e60f";
}
.icon-shengchanguochengguanli:before {
content: "\e629";
}
.icon-kejian:before {
content: "\e64a";
}
.icon-liulan:before {
content: "\e648";
}
.icon-fabiao:before {
content: "\e654";
}
.icon-kecheng:before {
content: "\e609";
}
.icon-bianji:before {
content: "\e608";
}
.icon-pingjia:before {
content: "\e628";
}
.icon-zonghezhenduan:before {
content: "\e6a0";
}
.icon-banji:before {
content: "\e71e";
}
.icon-tousuyujianyi:before {
content: "\e729";
}
.icon-jiaoliu:before {
content: "\e6b8";
}
.icon-pingyi:before {
content: "\e79a";
}
.icon-xueqingfenxi:before {
content: "\e67a";
}
.icon-check:before {
content: "\e622";
}
.icon-upload:before {
content: "\e634";
}
.icon-taolun:before {
content: "\e61e";
}
.icon-tujing:before {
content: "\e947";
}
.icon-zixun:before {
content: "\e6b3";
}
.icon-liulan1:before {
content: "\e6b4";
}
.icon-yaosu:before {
content: "\e68c";
}
.icon-baogao1:before {
content: "\e62d";
}
.icon-shoucang:before {
content: "\e60d";
}
.icon-shenhe:before {
content: "\e616";
}
.icon-w_duoxuanti:before {
content: "\e669";
}
.icon-fenxi:before {
content: "\e76d";
}
.icon-kanshu:before {
content: "\e614";
}
.icon-qwe:before {
content: "\e603";
}
.icon-jiancha:before {
content: "\e6c1";
}
.icon-qunzu:before {
content: "\e606";
}
.icon-zuopin:before {
content: "\e6a9";
}
.icon-shuyi_jiaoxueguanli:before {
content: "\e65f";
}
.icon-liangsuan:before {
content: "\e657";
}
.icon-business-report:before {
content: "\e880";
}
.icon-xiangmupingshen:before {
content: "\e742";
}
.icon-xiangmushenbao:before {
content: "\e743";
}
.icon-xiajia1:before {
content: "\e623";
}
.icon-a-fenxiang2:before {
content: "\e626";
}
.icon-icon_kaoshifenxi:before {
content: "\e6d3";
}
.icon-a-ketangshilu1:before {
content: "\e610";
}
.icon-tubiao_moshileixingpeizhi:before {
content: "\e62a";
}
.icon-xiezuo:before {
content: "\e611";
}
.icon-buzhi:before {
content: "\e607";
}
.icon-ziyuanfenxi:before {
content: "\e631";
}
.icon-fankui:before {
content: "\e738";
}
.icon-tiku:before {
content: "\e621";
}
.icon-ldc-position:before {
content: "\e63a";
}
.icon-sucai:before {
content: "\e620";
}
.icon-pengyou:before {
content: "\e61a";
}
.icon-zuoye:before {
content: "\e61c";
}
.icon-jiaoxuefenxi:before {
content: "\e600";
}
.icon-wenjianjia:before {
content: "\ec17";
}
.icon-jiaoxueyanxiu:before {
content: "\e60b";
}
.icon-jiaoxuesheji:before {
content: "\e604";
}
.icon-zhuanyeziyuanku:before {
content: "\e64f";
}
.icon-pengyouquan:before {
content: "\e615";
}
.icon-dangqianhuihua:before {
content: "\e663";
}
.icon-yanjiushi:before {
content: "\e601";
}
.icon-gongzuotai:before {
content: "\e66b";
}
.icon-lunwen:before {
content: "\e60e";
}
.icon-decheng_xianshangxuexi:before {
content: "\e624";
}
.icon-jitibeike-:before {
content: "\e65b";
}
.icon-keti:before {
content: "\e6fe";
}
.icon-pengyouquan1:before {
content: "\e635";
}
.icon-beike:before {
content: "\e61b";
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,156 @@
{
"id": "4581405",
"name": "AIX教师端",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "577336",
"name": "反馈",
"font_class": "fankui",
"unicode": "e738",
"unicode_decimal": 59192
},
{
"icon_id": "1447760",
"name": "题库",
"font_class": "tiku",
"unicode": "e621",
"unicode_decimal": 58913
},
{
"icon_id": "1837440",
"name": "ldc-position",
"font_class": "ldc-position",
"unicode": "e63a",
"unicode_decimal": 58938
},
{
"icon_id": "4138813",
"name": "素材",
"font_class": "sucai",
"unicode": "e620",
"unicode_decimal": 58912
},
{
"icon_id": "4166140",
"name": "朋友",
"font_class": "pengyou",
"unicode": "e61a",
"unicode_decimal": 58906
},
{
"icon_id": "4310077",
"name": "作业",
"font_class": "zuoye",
"unicode": "e61c",
"unicode_decimal": 58908
},
{
"icon_id": "4686996",
"name": "教学分析",
"font_class": "jiaoxuefenxi",
"unicode": "e600",
"unicode_decimal": 58880
},
{
"icon_id": "4893191",
"name": "文件夹",
"font_class": "wenjianjia",
"unicode": "ec17",
"unicode_decimal": 60439
},
{
"icon_id": "5838892",
"name": "教学研修",
"font_class": "jiaoxueyanxiu",
"unicode": "e60b",
"unicode_decimal": 58891
},
{
"icon_id": "5931005",
"name": "教学设计",
"font_class": "jiaoxuesheji",
"unicode": "e604",
"unicode_decimal": 58884
},
{
"icon_id": "6360457",
"name": "专业资源库",
"font_class": "zhuanyeziyuanku",
"unicode": "e64f",
"unicode_decimal": 58959
},
{
"icon_id": "6556747",
"name": "朋友圈",
"font_class": "pengyouquan",
"unicode": "e615",
"unicode_decimal": 58901
},
{
"icon_id": "6992598",
"name": "当前会话",
"font_class": "dangqianhuihua",
"unicode": "e663",
"unicode_decimal": 58979
},
{
"icon_id": "7327280",
"name": "研究室",
"font_class": "yanjiushi",
"unicode": "e601",
"unicode_decimal": 58881
},
{
"icon_id": "7905547",
"name": "工作台",
"font_class": "gongzuotai",
"unicode": "e66b",
"unicode_decimal": 58987
},
{
"icon_id": "9023128",
"name": "论文",
"font_class": "lunwen",
"unicode": "e60e",
"unicode_decimal": 58894
},
{
"icon_id": "10130330",
"name": "德诚_线上学习001",
"font_class": "decheng_xianshangxuexi",
"unicode": "e624",
"unicode_decimal": 58916
},
{
"icon_id": "10493421",
"name": "集体备课",
"font_class": "jitibeike-",
"unicode": "e65b",
"unicode_decimal": 58971
},
{
"icon_id": "13228302",
"name": "课题",
"font_class": "keti",
"unicode": "e6fe",
"unicode_decimal": 59134
},
{
"icon_id": "16364339",
"name": "朋友圈",
"font_class": "pengyouquan1",
"unicode": "e635",
"unicode_decimal": 58933
},
{
"icon_id": "37075078",
"name": "备课",
"font_class": "beike",
"unicode": "e61b",
"unicode_decimal": 58907
}
]
}

Binary file not shown.

Binary file not shown.

View File

@ -36,10 +36,15 @@ const getFileTypeIcon = () => {
rar: 'icon-rar',
}
if (iconObj[name]) {
return '#' + iconObj[name]
}
else {
return '#icon-zuoye1'
}
}
</script>
<style lang="scss" scoped>
</style>
<style lang="scss" scoped></style>

View File

@ -51,6 +51,11 @@ const router = useRouter()
const currentRoute = ref('')
const menus = ref([
{
icon: 'icon-jiaoxueziyuan icon-resource',
name: '主页',
path: '/homepage'
},
{
icon: 'icon-jiaoxueziyuan icon-resource',
name: '资源',

View File

@ -15,6 +15,12 @@ export const constantRoutes = [
component: Layout,
redirect: '/resource',
children: [
{
path: '/homepage',
component: () => import('@/views/homePage/index.vue'),
name: 'homepage',
meta: {title: '主页'}
},
{
path: '/resource',
component: () => import('@/views/resource/index.vue'),

View File

@ -4,6 +4,7 @@ import useUserStore from '@/store/modules/user'
const userStore = useUserStore()
const baseConfig = {
// Electron 设置cookie
// url: import.meta.env.VITE_APP_BASE_API,
url: 'https://file.ysaix.com:7868',
//cookie 名称 这里为 token
name: 'Admin-Token',
@ -14,13 +15,20 @@ const baseConfig = {
}
// 作业
// 作业布置
const homeWork = {
data: { ...baseConfig},
// 完整路径
fullPath: `${baseConfig.url}/teaching/classtaskassign?titleName=%E4%BD%9C%E4%B8%9A%E5%B8%83%E7%BD%AE`
}
// 作业反馈
const feedback = {
data: { ...baseConfig},
// 完整路径
fullPath: `${baseConfig.url}/teaching/classtaskassign?titleName=作业反馈`
}
// 高考研读
const gk = {
data: { ...baseConfig},
@ -41,6 +49,7 @@ const aiModel = {
export default {
homeWork,
feedback,
gk,
standard,
aiModel

View File

@ -0,0 +1,471 @@
<template>
<el-card style="margin-top: 20px">
<div class="common-layout" style="overflow-y: auto">
<el-container>
<el-main>
<template v-for="(itemFirst,indexFirst) in title" :key="indexFirst">
<el-card style="margin-bottom: 10px">
<template #header>
<div style="text-align: left">{{itemFirst.name}}</div>
</template>
<!-- 教学工作台-->
<div :class="itemFirst.id === 1 || itemFirst.id === 2 ? 'six':'three'">
<template v-for="(itemSec,indexSec) in itemFirst.child" :key="indexSec">
<el-popover
width="auto"
trigger="hover"
v-if="itemSec.child1.length > 0"
>
<div style="display: flex;justify-content: space-between">
<!-- 鼠标移上去的一列为三级菜单-->
<template v-for="(itemThird,indexThird) in itemSec.child1" :key="indexThird">
<div :class="[itemFirst.id==1?'a1':itemFirst.id==2?'a2':itemFirst.id==3?'a3':'a4','CustomBox']">
<span :class="itemThird.img"></span>
<span>{{ itemThird.name }}</span>
</div>
</template>
</div>
<!-- 最外层的一列为二级菜单-->
<template #reference>
<div :class="[itemFirst.id==1?'a1':itemFirst.id==2?'a2':itemFirst.id==3?'a3':'a4','CustomBox']">
<span :class="itemSec.img"></span>
<span>{{ itemSec.name }}</span>
</div>
</template>
</el-popover>
</template>
</div>
</el-card>
</template>
</el-main>
</el-container>
</div>
</el-card>
</template>
<script setup>
import { reactive } from "vue"
const title = reactive([
{
name: "教学工作台",
img: "iconfont icon-gongzuotai",
id:1,
child: [
{
name: "教学分析",
img: "iconfont icon-shuyi_jiaoxueguanli",
child1: [{
name: "课标分析",
url: "/teaching/chatwithstandard",
img: "iconfont icon-kecheng",
}, {
name: "教材分析",
url: "/teaching/chatwithtextbook",
img: "iconfont icon-yanjiushi",
}, {
name: "考试分析",
url: "/education/colentrance",
img: "iconfont icon-icon_kaoshifenxi",
}, {
name: "学情分析",
url: "",
img: "iconfont icon-fenxi",
}, {
name: "资源分析",
url: "",
img: "iconfont icon-business-report",
}],
},
{
name: "教学设计",
img: "iconfont icon-PPT",
url:"/teaching/aptindex",
child1: [
{
name: "创作类型选择",
url: "",
img: "",
}, {
name: "创作模式选择",
url: "",
img: "",
}, {
name: "创作途径选择",
url: "",
img: "",
}, {
name: "创作要素调用",
url: "",
img: "",
}, {
name: "创作作品运用",
url: "",
img: "",
}]
},
{
name: "教学实施",
img: "iconfont icon-ldc-position",
url:"/teaching/classteachingprep",
child1: [{
name: "教学课件选择",
url: "",
img: "",
}, {
name: "教学场景选择",
url: "",
img: "",
}, {
name: "教学对象选择",
url: "",
img: "",
}, {
name: "教学过程进行",
url: "",
img: "",
},]
},
{
name: "作业管理",
img: "iconfont icon-36zuoyepingtai",
url:"/teaching/classtaskassign?titleName=作业布置",
child1: [{
name: "作业布置",
img: "",
url: ""
}, {
name: "作业反馈",
img: "",
url: ""
}]
},
{
name: "教学评价",
img: "iconfont icon-ziyuanfenxi",
url:"",
child1: [{
name: "教学评价",
img: "",
url: ""
}, {
name: "学情诊断",
img: "",
url: ""
}]
},
{
name: "教学管理",
img: "iconfont icon-ziyuanfenxi",
url:"",
child1: [{
name: "教学评价",
img: "",
url: ""
}, {
name: "学情诊断",
img: "",
url: ""
}]
}
],
}
, {
name: "教学研究室",
img: "iconfont icon-yanjiushi",
id:2,
child: [
{
name: "自主研修",
img: "iconfont icon-jiaoxueyanxiu",
child1: [{
name: "文献查阅",
img: "",
url: ""
}, {
name: "专家咨询",
img: "",
url: ""
}, {
name: "培训课程",
img: "",
url: ""
}]
},
{
name: "集体备课",
img: "iconfont icon-beike",
child1: [{
name: "教学分析讨论",
img: "",
url: ""
}, {
name: "教学设计审核",
img: "",
url: ""
}, {
name: "作业设计审核",
img: "",
url: ""
}, {
name: "教学反馈分析",
img: "",
url: ""
}]
},
{
name: "观课议课",
img: "iconfont icon-decheng_xianshangxuexi",
child1: [{
name: "观看课堂教学实录",
img: "",
url: ""
}, {
name: "查看课堂教学报告",
img: "",
url: ""
}, {
name: "进行课堂教学评议",
img: "",
url: ""
}, {
name: "生成观课课报告",
img: "",
url: ""
}]
}, {
name: "课题研究",
img: "iconfont icon-keti",
child1: [{
name: "选题建议",
img: "",
url: ""
}, {
name: "立项申报",
img: "",
url: ""
}, {
name: "研究开展",
img: "",
url: ""
}, {
name: "中期检查",
img: "",
url: ""
}, {
name: "结项评审",
img: "",
url: ""
}]
}, {
name: "论文撰写",
img: "iconfont icon-xiezuo1",
child1: [{
name: "论文选题",
img: "",
url: ""
}, {
name: "论文写作",
img: "",
url: ""
}, {
name: "论文发表",
img: "",
url: ""
}]
}
],
}
, {
name: "教学资源库",
img: "iconfont icon-zhuanyeziyuanku",
id:3,
child: [{
name: "教学素材",
img: "iconfont icon-sucai",
url:"/teaching/materialbank",
child1: [{
name: "素材上传",
img: "",
url: ""
}, {
name: "素材编辑",
img: "",
url: ""
}, {
name: "收费设置",
img: "",
url: ""
}, {
name: "素材浏览",
img: "iconfont icon-liulan",
url: ""
}, {
name: "素材下架",
img: "iconfont icon-xiajia1",
url: ""
}]
}, {
name: "课程资源",
img: "iconfont icon-kechengziyuan",
url: "/teaching/coursewareresource",
child1: [{
name: "资源集成",
img: "iconfont icon-yaosu",
url: ""
}, {
name: "资源收藏",
img: "iconfont icon-shoucang1",
url: ""
}, {
name: "资源分享",
img: "iconfont icon-fenxiang1",
url: ""
}]
}, {
name: "习题资源",
img: "iconfont icon-iconku-zhuanqu-",
url:"/teaching/quesbank",
child1: [{
name: "习题上传",
img: "iconfont icon-qwe",
url: ""
}, {
name: "习题收藏",
img: "iconfont icon-shoucang",
url: ""
}, {
name: "习题浏览",
img: "iconfont icon-liulan",
url: ""
}, {
name: "习题下架",
img: "iconfont icon-xiajia",
url: ""
}]
}]
}
, {
name: "教学共同体",
img: "iconfont icon-pengyou",
id:4,
child: [{
name: "云集体",
img: "iconfont icon-jitibeike-",
child1: [{
name: "学科组",
img: "iconfont icon-xuekezuhe",
url: ""
}, {
name: "班级",
img: "iconfont icon-banji",
url: ""
}, {
name: "加好友",
img: "iconfont icon-zhucetianjiahaoyou",
url: ""
}, {
name: "创建群",
img: "iconfont icon-qunzu",
url: ""
}]
}, {
name: "云会话",
img: "iconfont icon-dangqianhuihua",
child1: [{
name: "资源分享",
img: "icontfont icon-a-fenxiang2",
url: ""
}, {
name: "即时交流",
img: "iconfont icon-jiaoliu",
url: ""
}, {
name: "系统通知",
img: "iconfont icon-tongzhizhongxin",
url: ""
}]
}, {
name: "云动态",
img: "iconfont icon-pengyouquan",
child1: [{
name: "分享动态",
img: "iconfont icon-fenxiang",
url: ""
}]
}]
}
])
</script>
<style>
@import '@/assets/teachingIconFont/iconfont.css';
.CustomTitle {
margin-bottom: 8px;
font-weight: 600;
display: flex;
align-items: center;
white-space: nowrap;
margin-right: 10px;
cursor: pointer;
}
.CustomTitle span:nth-child(1) {
font-size: 24px;
margin-right: 8px;
color: #7b7a7a;
display: none;
}
.six{
display: flex;
justify-content: space-between;
}
.three{
display: flex;
justify-content: space-between;
width: 50%;
}
.CustomBox span:nth-child(1) {
display: flex;
width: 60px;
justify-content: center;
height: 60px;
background-color: #ebe9e9;
border-radius: 50%;
align-items: center;
font-size: 32px;
margin-bottom: 6px;
}
.CustomBox {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
cursor: pointer;
}
.CustomBox span:nth-child(2) {
font-size: 18px;
}
.CustomBox div{
display: flex;
flex-direction: column;
align-items: center;
}
.a1 span:nth-child(1){
color:#1296DB;
}
.a2 span:nth-child(1){
color:#F56C6C;
}
.a3 span:nth-child(1){
color:#E6A23A;
}
.a4 span:nth-child(1){
color:#67C23A;
}
.ac span:nth-child(1){
background-color:#1296DB;
color:#ffffff;
}
</style>

View File

@ -10,6 +10,10 @@
</div>
<div class="prepare-item-info-message">
<div style="width: 60px">
<template v-if="item.uniquekey">
{{ item.worktype }}
</template>
<template v-else>
<el-icon
v-loading="item.async === 'on'"
style="background-color: green; border-radius: 20px; color: white; top: 2px"
@ -20,13 +24,15 @@
{{ item.async === true ? '已同步' : '' }}
{{ !item.async ? '待同步' : '' }}
{{ item.async === 'on' ? '同步中' : '' }}
</template>
</div>
|
<div style="width: 70px">{{ formatFileSize(item.fileSize) }}</div>
|
<div style="width: 70px">{{ toTimeText(item.uploadTime, true) }}</div>
|&nbsp;
<template v-if="item.fileSize">|</template>
<div style="width: 70px" v-if="item.fileSize">{{ formatFileSize(item.fileSize) }}</div>
<template v-if="item.uploadTime">|</template>
<div style="width: 70px" v-if="item.uploadTime">{{ toTimeText(item.uploadTime, true) }}</div>
<template v-if="item.levelFirstName">|&nbsp;</template>
<div
v-if="item.levelFirstName"
style="
white-space: nowrap;
overflow: hidden;
@ -59,6 +65,21 @@
<template #default>
<div style="width: 100%">
<div class="item-popover" @click="closePopver(index)">
<template v-if="item.uniquekey">
<div class="item-popover-item">
<el-button text @click="editTalk(item, index)">
<i class="iconfont icon-bianji"></i>
<span>布置</span>
</el-button>
</div>
<div class="item-popover-item">
<el-button text @click="deleteTalk(item)">
<i class="iconfont icon-shanchu"></i>
<span>删除</span>
</el-button>
</div>
</template>
<template v-else>
<div class="item-popover-item">
<el-button text @click="editTalk(item, index)">
<i class="iconfont icon-bianji"></i>
@ -85,6 +106,7 @@
<span>移动</span>
</el-button>
</div>
</template>
</div>
</div>
</template>
@ -236,6 +258,10 @@ export default {
display: flex;
justify-content: center;
align-items: center;
.icon-zuoye{
font-size: 40px;
color: #707070
}
}
.prepare-body-main-item-tool {

View File

@ -38,6 +38,7 @@
</el-popover>
</div>
<div style="display: flex">
<el-button @click="handleOutLink('feedback')">作业反馈</el-button>
<el-button @click="handleOutLink('homeWork')">布置作业</el-button>
<el-button @click="isDialogOpen = true">上传资料</el-button>
<el-button type="primary" style="margin-left: 10px" @click="createFile">新建课件</el-button>
@ -67,15 +68,19 @@ import ChooseTextbook from '@/components/choose-textbook/index.vue'
import uploadDialog from '@/components/upload-dialog/index.vue'
import { Refresh } from '@element-plus/icons-vue'
import uploaderState from '@/store/modules/uploader'
import useUserStore from '@/store/modules/user'
import MoveFile from '@/components/move-file/index.vue'
import FileListItem from '@/views/prepare/container/file-list-item.vue'
import { getSmarttalkPage, moveSmarttalk } from '@/api/file'
import { homeworklist, listEntpcourse } from '@/api/teaching/classwork'
import { toTimeText } from '@/utils/date'
import { ElMessage } from 'element-plus'
import { parseCataByNode, creatPPT, asyncLocalFile } from '@/utils/talkFile'
import FileOperBatch from '@/views/prepare/container/file-oper-batch.vue'
import outLink from '@/utils/linkConfig'
import { createWindow } from '@/utils/tool'
import { uniqBy, cloneDeep } from 'lodash'
const { ipcRenderer } = window.electron || {}
export default {
@ -103,6 +108,10 @@ export default {
},
//
curBookImg: '',
//
userStore: '',
entpcourseid: '',
timerId: null
}
},
computed: {
@ -113,6 +122,7 @@ export default {
}
},
created() {
this.userStore = useUserStore().user
ipcRenderer.removeAllListeners('copy-file-default-reply')
ipcRenderer.on('copy-file-default-reply', (e, param) => {
this.callback(param)
@ -244,7 +254,7 @@ export default {
this.isLoading = false
})
},
nodeClick(data) {
async nodeClick(data) {
if (this.currentNode.id === data.node.id) return
this.curBookImg = data.textBook.curBookImg
this.checkFileList = []
@ -255,9 +265,21 @@ export default {
this.uploadData.levelThirdId = cata[2]
this.uploadData.textbookId = data.textBook.curBookId
this.asyncAllFile()
if (this.uploadData.levelSecondId) {
// ID
const res = await this.getChapterId()
this.entpcourseid = res.rows[0].id
//
this.getHomeWorkList()
}
},
//
handleOutLink(key) {
if (key == 'homeWork') {
//
this.createTimer()
}
// key linkConfig.js
let configObj = outLink[key]
//
@ -266,6 +288,79 @@ export default {
cookieData: { ...(configObj.data) }
})
},
// ID ID
getChapterId() {
return listEntpcourse({ evalid: this.uploadData.levelSecondId, edituserid: this.userStore.userId, pageSize: 500 })
},
//
createTimer() {
this.timerId = setInterval(() => {
this.getHomeWorkList()
}, 1500)
},
//
getHomeWorkList() {
homeworklist({ entpcourseid: this.entpcourseid, edituserid: this.userStore.userId, pageSize: 100 }).then(res => {
// AIx web
let list = []
for (var i = 0; i < res.rows.length; i++) {
res.rows[i].taskconfig = [];
// child
for (var j = 0; j < res.rows.length; j++) {
if (res.rows[j].parentid == res.rows[i].id) {
var ss = [];
if (res.rows[j].classworkdatastudentids != null) {
ss = JSON.parse('[' + res.rows[j].classworkdatastudentids + ']');
}
var js = {
id: res.rows[j].id,
classid: res.rows[j].classid,
classcaption: res.rows[j].classcaption,
parentid: 0,
worktype: '',
workkey: res.rows[j].workkey,
worktag: '',
entpcourseid: 0,
evalid: 0,
edusubject: '',
edudegree: '',
workdate: '',
title: '',
workcodes: '',
studentlist: ss,
deaddate: res.rows[j].deaddate,
timelength: res.rows[j].timelength,
weights: res.rows[j].weights,
feedtype: res.rows[j].feedtype
}
res.rows[i].taskconfig.push(js);
}
}
res.rows[i].fileShowName = res.rows[i].uniquekey
// slideid>0PPT
// 2024-05-15jackyshen
if (res.rows[i].classid == 0 && res.rows[i].slideid == 0) {
list.push(res.rows[i]);
}
//
if (res.rows[i].entpcourseworklist != '') {
res.rows[i].entpcourseworklistarray = JSON.parse('[' + res.rows[i].entpcourseworklist + ']');
} else {
res.rows[i].entpcourseworklistarray = [];
}
}
//
let ary = uniqBy([...this.currentFileList, ...list], 'id')
//
this.currentFileList = cloneDeep(ary)
})
},
// PDF-
navtoPdf() {
createWindow('open-PDF', { url: '/classBegins/index' })
@ -274,6 +369,13 @@ export default {
openLesson() {
createWindow('tool-sphere', { url: '/tool/sphere' })
}
},
watch: {
$route(to) {
if (to.path != '/prepare' && this.timerId) {
clearInterval(this.timerId)
}
}
}
}
</script>
@ -329,6 +431,7 @@ export default {
justify-content: center;
position: relative;
background: linear-gradient(#b0d1ef, #3e7bcb);
.top-zoom-style {
position: absolute;
width: 90%;
@ -337,6 +440,7 @@ export default {
bottom: 0;
clip-path: polygon(3% 0%, 97% 0%, 100% 100%, 0% 100%);
}
.textbook-img {
height: 120px;
background-color: #ffffff;
@ -346,35 +450,42 @@ export default {
margin-right: 20px;
z-index: 1;
}
.top-item {
width: 230px;
position: relative;
flex-wrap: wrap;
z-index: 1;
.btn {
width: 102px;
background: none;
color: #ffffff;
border-width: 2px;
border-color: #ffffff;
&:hover {
background: rgba(255, 255, 255, 0.3)
}
&:first-child {
margin-left: 12px;
margin-bottom: 15px;
}
&:nth-child(2) {
margin-bottom: 15px;
}
}
}
.to-class-btn {
width: 130px;
height: 80px;
margin-left: 25px;
font-size: 18px;
z-index: 1;
.icon-lingdang {
margin-right: 5px;
color: #ffffff;