主题整合备课 能直接跳转到课本详情页

This commit is contained in:
zhanglipeng 2021-08-31 12:00:54 +08:00
parent 97434169c5
commit 8ad3508e18
4 changed files with 372 additions and 11 deletions

View File

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

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

View File

@ -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 = "添加主题整合学期计划";
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */

View File

@ -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();
}, },