主题整合备课 能直接跳转到课本详情页
This commit is contained in:
parent
97434169c5
commit
8ad3508e18
@ -297,6 +297,22 @@ export const constantRoutes = [
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: "/benyi_course/tremplan",
|
||||||
|
component: Layout,
|
||||||
|
hidden: true,
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "themestudy/:id(\\d+)",
|
||||||
|
component: () => import("@/views/benyi/themestudy_tremplan"),
|
||||||
|
name: "Theme2",
|
||||||
|
meta: {
|
||||||
|
title: "主题整合学习",
|
||||||
|
icon: ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: "/benyi_course/mathtermplan",
|
path: "/benyi_course/mathtermplan",
|
||||||
component: Layout,
|
component: Layout,
|
||||||
|
326
ruoyi-ui/src/views/benyi/themestudy_tremplan/index.vue
Normal file
326
ruoyi-ui/src/views/benyi/themestudy_tremplan/index.vue
Normal file
@ -0,0 +1,326 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="4" :xs="24">
|
||||||
|
<div class="head-container">
|
||||||
|
<el-input
|
||||||
|
v-model="name"
|
||||||
|
placeholder="请输入名称"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
prefix-icon="el-icon-search"
|
||||||
|
style="margin-bottom: 20px"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="head-container">
|
||||||
|
<el-tree
|
||||||
|
:data="treeOptions"
|
||||||
|
:props="defaultProps"
|
||||||
|
:expand-on-click-node="true"
|
||||||
|
:filter-node-method="filterNode"
|
||||||
|
ref="tree"
|
||||||
|
default-expand-all
|
||||||
|
@node-click="handleNodeClick"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="20" :xs="24">
|
||||||
|
<el-card class="box-card">
|
||||||
|
<div slot="header" class="clearfix">
|
||||||
|
<span class="box-card-title">{{ title }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="text item" v-show="title1">
|
||||||
|
<h3 class="box-card-title">{{ title1 }}</h3>
|
||||||
|
<div class="pad-left" v-html="note"></div>
|
||||||
|
</div>
|
||||||
|
<div class="text item" v-show="title2">
|
||||||
|
<h3 class="box-card-title">
|
||||||
|
{{ title2 }}
|
||||||
|
</h3>
|
||||||
|
<div ref="printMe">
|
||||||
|
<Editor v-model="communicate" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="text item" v-show="title3">
|
||||||
|
<h3 class="box-card-title">{{ title3 }}</h3>
|
||||||
|
|
||||||
|
<div class="pad-left">
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in activityList"
|
||||||
|
:key="index"
|
||||||
|
class="text item"
|
||||||
|
>
|
||||||
|
<h3 class="box-card-case mr">
|
||||||
|
活动{{ item.sort }} - {{ item.name }}
|
||||||
|
</h3>
|
||||||
|
<h3 class="box-card-info">活动形式:{{ fieldFormat(item) }}</h3>
|
||||||
|
<h3 class="box-card-info">重点领域:{{ typeFormat(item) }}</h3>
|
||||||
|
<h3 class="box-card-info">活动目标</h3>
|
||||||
|
<div class="text item pad-left" v-html="item.target"></div>
|
||||||
|
<h3 class="box-card-info">活动材料</h3>
|
||||||
|
<div class="text item pad-left" v-html="item.data"></div>
|
||||||
|
<h3 class="box-card-info">活动过程</h3>
|
||||||
|
<div class="text item pad-left" v-html="item.process"></div>
|
||||||
|
<h3 class="box-card-info">活动建议</h3>
|
||||||
|
<div class="text item pad-left" v-html="item.proposal"></div>
|
||||||
|
<h3 class="box-card-info">活动反思</h3>
|
||||||
|
<div class="text item pad-left" v-html="item.reflect"></div>
|
||||||
|
<h3 class="box-card-info" v-show="item.appendix">附录</h3>
|
||||||
|
<div class="text item pad-left" v-html="item.appendix"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { treeselect, getTheme } from "@/api/benyi/theme";
|
||||||
|
import { listActivity, getActivity } from "@/api/benyi/activity";
|
||||||
|
import Editor from "@/components/Editor";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Detail",
|
||||||
|
components: {
|
||||||
|
Editor,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 主题整合名称
|
||||||
|
name: undefined,
|
||||||
|
// 主题整合id
|
||||||
|
id: undefined,
|
||||||
|
//标题
|
||||||
|
title: "主题整合",
|
||||||
|
title1: "概论",
|
||||||
|
//家园沟通
|
||||||
|
title2: "",
|
||||||
|
//活动方案
|
||||||
|
title3: "",
|
||||||
|
// 主题整合活动表格数据
|
||||||
|
activityList: [],
|
||||||
|
//家园沟通
|
||||||
|
communicate: "",
|
||||||
|
//活动形式
|
||||||
|
typeOptions: [],
|
||||||
|
//活动领域
|
||||||
|
fieldOptions: [],
|
||||||
|
//目的
|
||||||
|
note:
|
||||||
|
"《幼儿园主题整合课程》,是在《幼儿园工作规程》(以下称《规程》)和《幼儿园教育指导纲要》(以下称《纲要》)中的基本教育理念指导之下,以《3-6岁儿童学习与发展指南》(以下称《指南》)精神为基本指导原则,所编写完成的幼儿园3-6岁活动课程。",
|
||||||
|
// 树状显示类型
|
||||||
|
treeOptions: [],
|
||||||
|
// 树结构
|
||||||
|
defaultProps: {
|
||||||
|
children: "children",
|
||||||
|
label: "label",
|
||||||
|
},
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
id: undefined,
|
||||||
|
themeid: undefined,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
// 根据名称筛选部门树
|
||||||
|
name(val) {
|
||||||
|
this.$refs.tree.filter(val);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
const tremThemeId = this.$route.params && this.$route.params.id;
|
||||||
|
if (tremThemeId != null) {
|
||||||
|
this.handleNodeUrl(tremThemeId);
|
||||||
|
}
|
||||||
|
this.getTreeselect();
|
||||||
|
this.getDicts("sys_theme_type").then((response) => {
|
||||||
|
this.typeOptions = response.data;
|
||||||
|
});
|
||||||
|
this.getDicts("sys_theme_field").then((response) => {
|
||||||
|
this.fieldOptions = response.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 活动领域类型--字典状态字典翻译
|
||||||
|
fieldFormat(row) {
|
||||||
|
//alert(row.scope.split(';').length);
|
||||||
|
var ilength = row.field.split(";").length;
|
||||||
|
var names = "";
|
||||||
|
for (var i = 0; i < ilength; i++) {
|
||||||
|
names =
|
||||||
|
names +
|
||||||
|
this.selectDictLabel(this.fieldOptions, row.field.split(";")[i]) +
|
||||||
|
";";
|
||||||
|
}
|
||||||
|
//this.selectDictLabel(this.scopeOptions, row.xnxq);
|
||||||
|
return names;
|
||||||
|
},
|
||||||
|
// 活动形式类型--字典状态字典翻译
|
||||||
|
typeFormat(row) {
|
||||||
|
//alert(row.scope.split(';').length);
|
||||||
|
var ilength = row.type.split(";").length;
|
||||||
|
var names = "";
|
||||||
|
for (var i = 0; i < ilength; i++) {
|
||||||
|
names =
|
||||||
|
names +
|
||||||
|
this.selectDictLabel(this.typeOptions, row.type.split(";")[i]) +
|
||||||
|
";";
|
||||||
|
}
|
||||||
|
//this.selectDictLabel(this.scopeOptions, row.xnxq);
|
||||||
|
return names;
|
||||||
|
},
|
||||||
|
/** 查询部门下拉树结构 */
|
||||||
|
getTreeselect() {
|
||||||
|
treeselect().then((response) => {
|
||||||
|
this.treeOptions = response.data;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 筛选节点
|
||||||
|
filterNode(value, data) {
|
||||||
|
if (!value) return true;
|
||||||
|
return data.label.indexOf(value) !== -1;
|
||||||
|
},
|
||||||
|
// 节点单击事件
|
||||||
|
handleNodeClick(data) {
|
||||||
|
this.id = data.id;
|
||||||
|
//console.log(data.id);
|
||||||
|
if (data.id >= 9999 && data.id < 99999) {
|
||||||
|
} else if (data.id >= 99999) {
|
||||||
|
//console.log("2jiedian");
|
||||||
|
this.id = this.id - 99999;
|
||||||
|
this.title = data.label;
|
||||||
|
this.getThemeDetails();
|
||||||
|
} else {
|
||||||
|
this.title = data.label;
|
||||||
|
this.getThemeDetail();
|
||||||
|
//console.log("最后节点");
|
||||||
|
}
|
||||||
|
// console.log(this.dayflowtaskList[date.id])
|
||||||
|
// this.getStandardList();
|
||||||
|
},
|
||||||
|
// 节点单击事件
|
||||||
|
handleNodeUrl(tid) {
|
||||||
|
this.id = tid;
|
||||||
|
//console.log(data.id);
|
||||||
|
if (tid >= 9999 && tid < 99999) {
|
||||||
|
} else if (tid >= 99999) {
|
||||||
|
//console.log("2jiedian");
|
||||||
|
this.id = this.id - 99999;
|
||||||
|
//this.title = data.label;
|
||||||
|
this.getThemeDetails();
|
||||||
|
} else {
|
||||||
|
//this.title = data.label;
|
||||||
|
this.getThemeDetail();
|
||||||
|
//console.log("最后节点");
|
||||||
|
}
|
||||||
|
// console.log(this.dayflowtaskList[date.id])
|
||||||
|
// this.getStandardList();
|
||||||
|
},
|
||||||
|
getThemeDetails() {
|
||||||
|
getTheme(this.id).then((response) => {
|
||||||
|
//console.log(response);
|
||||||
|
if (response.code == "200") {
|
||||||
|
this.title1 = "主题网络";
|
||||||
|
this.title2 = "家园沟通";
|
||||||
|
this.title3 = "活动方案";
|
||||||
|
this.note = response.data.content;
|
||||||
|
this.communicate = response.data.communicate;
|
||||||
|
this.queryParams.themeid = response.data.id;
|
||||||
|
this.queryParams.id = "";
|
||||||
|
//console.log(this.queryParams);
|
||||||
|
listActivity(this.queryParams).then((req) => {
|
||||||
|
//console.log(req);
|
||||||
|
if (req.code == "200") {
|
||||||
|
this.activityList = req.rows;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
getThemeDetail() {
|
||||||
|
this.title1 = "";
|
||||||
|
this.title2 = "";
|
||||||
|
this.title3 = "活动方案";
|
||||||
|
this.queryParams.id = this.id;
|
||||||
|
this.queryParams.themeid = "";
|
||||||
|
//console.log(this.id);
|
||||||
|
listActivity(this.queryParams).then((req) => {
|
||||||
|
//console.log(req);
|
||||||
|
if (req.code == "200") {
|
||||||
|
this.activityList = req.rows;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.text {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item {
|
||||||
|
margin-bottom: 18px;
|
||||||
|
line-height: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clearfix:before,
|
||||||
|
.clearfix:after {
|
||||||
|
display: table;
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
.clearfix:after {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
.box-card-title {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 16px;
|
||||||
|
&::before {
|
||||||
|
content: "";
|
||||||
|
margin-right: 8px;
|
||||||
|
width: 4px;
|
||||||
|
height: 16px;
|
||||||
|
background: #1890ff;
|
||||||
|
}
|
||||||
|
&.mr {
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.box-card-case {
|
||||||
|
margin: 0;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 700;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
&::before {
|
||||||
|
content: "";
|
||||||
|
margin-right: 8px;
|
||||||
|
width: 4px;
|
||||||
|
height: 14px;
|
||||||
|
background: #2c3e50;
|
||||||
|
}
|
||||||
|
&.mr {
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.box-card-info {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
.pad-left {
|
||||||
|
padding-left: 15px;
|
||||||
|
}
|
||||||
|
// 禁止复制
|
||||||
|
div {
|
||||||
|
-webkit-touch-callout: none;
|
||||||
|
-webkit-user-select: none;
|
||||||
|
-khtml-user-select: none;
|
||||||
|
-moz-user-select: none;
|
||||||
|
-ms-user-select: none;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
</style>
|
@ -428,6 +428,8 @@ export default {
|
|||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.reset();
|
this.reset();
|
||||||
this.open = true;
|
this.open = true;
|
||||||
|
//console.log(this.xnxqOptions);
|
||||||
|
this.form.xnxq = this.xnxqOptions[0].dictValue;
|
||||||
this.title = "添加主题整合学期计划";
|
this.title = "添加主题整合学期计划";
|
||||||
},
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
|
@ -1,9 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="table-container" ref="printMe">
|
<div class="table-container" ref="printMe">
|
||||||
<h2 class="title">{{title}}</h2>
|
<h2 class="title">{{ title }}</h2>
|
||||||
<div class="table">
|
<div class="table">
|
||||||
<div class="print no-print">
|
<div class="print no-print">
|
||||||
<el-button type="primary" plain size="mini" icon="el-icon-printer" @click="prints"></el-button>
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-printer"
|
||||||
|
@click="prints"
|
||||||
|
></el-button>
|
||||||
</div>
|
</div>
|
||||||
<table>
|
<table>
|
||||||
<tr class="align-center">
|
<tr class="align-center">
|
||||||
@ -13,32 +19,36 @@
|
|||||||
</td>-->
|
</td>-->
|
||||||
<td class="w140">
|
<td class="w140">
|
||||||
<b class="table-title">班级:</b>
|
<b class="table-title">班级:</b>
|
||||||
{{classname}}
|
{{ classname }}
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<b class="table-title">学期:</b>
|
<b class="table-title">学期:</b>
|
||||||
{{xnxqFormat(xnxq)}}
|
{{ xnxqFormat(xnxq) }}
|
||||||
</td>
|
</td>
|
||||||
<td class="w200">
|
<td class="w200">
|
||||||
<b class="table-title">制定人:</b>
|
<b class="table-title">制定人:</b>
|
||||||
{{tbr}}
|
{{ tbr }}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="align-center table-bg">
|
<tr class="align-center table-bg">
|
||||||
<td v-for="h in bodyData.title" :key="h.prop">
|
<td v-for="h in bodyData.title" :key="h.prop">
|
||||||
<b>{{h.label}}</b>
|
<b>{{ h.label }}</b>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr v-for="item in bodyData.termplanitemList" :key="item.id">
|
<tr v-for="item in bodyData.termplanitemList" :key="item.id">
|
||||||
<td class="align-center">
|
<td class="align-center">
|
||||||
<span>{{item.month}}</span>
|
<span>{{ item.month }}</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="align-center">{{themeFormat(item.themeconent)}}</td>
|
<td class="align-center" v-html="themeFormat(item.themeconent)"></td>
|
||||||
<td>{{item.remark}}</td>
|
<td>{{ item.remark }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="align-center">备注</td>
|
||||||
|
<td colspan="2">{{ remark }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="align-center">教学主管审批</td>
|
<td class="align-center">教学主管审批</td>
|
||||||
<td colspan="2">{{spyj}}</td>
|
<td colspan="2">{{ spyj }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<!-- <p
|
<!-- <p
|
||||||
@ -68,6 +78,7 @@ export default {
|
|||||||
xnxq: "",
|
xnxq: "",
|
||||||
classname: "",
|
classname: "",
|
||||||
tbr: "",
|
tbr: "",
|
||||||
|
remark: "",
|
||||||
spyj: "",
|
spyj: "",
|
||||||
bodyData: {
|
bodyData: {
|
||||||
title: [
|
title: [
|
||||||
@ -112,9 +123,14 @@ export default {
|
|||||||
var ilength = themeids.split(";").length - 1;
|
var ilength = themeids.split(";").length - 1;
|
||||||
var names = "";
|
var names = "";
|
||||||
for (var i = 1; i < ilength; i++) {
|
for (var i = 1; i < ilength; i++) {
|
||||||
|
var themeId = themeids.split(";")[i];
|
||||||
names =
|
names =
|
||||||
names +
|
names +
|
||||||
this.selectMoeDictLabel(this.themeOptions, themeids.split(";")[i]) +
|
"<a target='_bank' href='/benyi_course/tremplan/themestudy/" +
|
||||||
|
(Number(99999) + Number(themeId)) +
|
||||||
|
"'>" +
|
||||||
|
this.selectMoeDictLabel(this.themeOptions, themeId) +
|
||||||
|
"</a>" +
|
||||||
" ";
|
" ";
|
||||||
}
|
}
|
||||||
//this.selectDictLabel(this.scopeOptions, row.xnxq);
|
//this.selectDictLabel(this.scopeOptions, row.xnxq);
|
||||||
@ -138,6 +154,7 @@ export default {
|
|||||||
this.classname = response.classname;
|
this.classname = response.classname;
|
||||||
this.xnxq = response.data.xnxq;
|
this.xnxq = response.data.xnxq;
|
||||||
this.spyj = response.data.shyj;
|
this.spyj = response.data.shyj;
|
||||||
|
this.remark = response.data.remark;
|
||||||
});
|
});
|
||||||
this.getThemeTermItemPlan();
|
this.getThemeTermItemPlan();
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user