主题整合备课 能直接跳转到课本详情页
This commit is contained in:
		| @@ -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", | ||||
|     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() { | ||||
|       this.reset(); | ||||
|       this.open = true; | ||||
|       //console.log(this.xnxqOptions); | ||||
|       this.form.xnxq = this.xnxqOptions[0].dictValue; | ||||
|       this.title = "添加主题整合学期计划"; | ||||
|     }, | ||||
|     /** 修改按钮操作 */ | ||||
|   | ||||
| @@ -1,9 +1,15 @@ | ||||
| <template> | ||||
|   <div class="table-container" ref="printMe"> | ||||
|     <h2 class="title">{{title}}</h2> | ||||
|     <h2 class="title">{{ title }}</h2> | ||||
|     <div class="table"> | ||||
|       <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> | ||||
|       <table> | ||||
|         <tr class="align-center"> | ||||
| @@ -13,32 +19,36 @@ | ||||
|           </td>--> | ||||
|           <td class="w140"> | ||||
|             <b class="table-title">班级:</b> | ||||
|             {{classname}} | ||||
|             {{ classname }} | ||||
|           </td> | ||||
|           <td> | ||||
|             <b class="table-title">学期:</b> | ||||
|             {{xnxqFormat(xnxq)}} | ||||
|             {{ xnxqFormat(xnxq) }} | ||||
|           </td> | ||||
|           <td class="w200"> | ||||
|             <b class="table-title">制定人:</b> | ||||
|             {{tbr}} | ||||
|             {{ tbr }} | ||||
|           </td> | ||||
|         </tr> | ||||
|         <tr class="align-center table-bg"> | ||||
|           <td v-for="h in bodyData.title" :key="h.prop"> | ||||
|             <b>{{h.label}}</b> | ||||
|             <b>{{ h.label }}</b> | ||||
|           </td> | ||||
|         </tr> | ||||
|         <tr v-for="item in bodyData.termplanitemList" :key="item.id"> | ||||
|           <td class="align-center"> | ||||
|             <span>{{item.month}}</span> | ||||
|             <span>{{ item.month }}</span> | ||||
|           </td> | ||||
|           <td class="align-center">{{themeFormat(item.themeconent)}}</td> | ||||
|           <td>{{item.remark}}</td> | ||||
|           <td class="align-center" v-html="themeFormat(item.themeconent)"></td> | ||||
|           <td>{{ item.remark }}</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|           <td class="align-center">备注</td> | ||||
|           <td colspan="2">{{ remark }}</td> | ||||
|         </tr> | ||||
|         <tr> | ||||
|           <td class="align-center">教学主管审批</td> | ||||
|           <td colspan="2">{{spyj}}</td> | ||||
|           <td colspan="2">{{ spyj }}</td> | ||||
|         </tr> | ||||
|       </table> | ||||
|       <!-- <p | ||||
| @@ -68,6 +78,7 @@ export default { | ||||
|       xnxq: "", | ||||
|       classname: "", | ||||
|       tbr: "", | ||||
|       remark: "", | ||||
|       spyj: "", | ||||
|       bodyData: { | ||||
|         title: [ | ||||
| @@ -112,9 +123,14 @@ export default { | ||||
|         var ilength = themeids.split(";").length - 1; | ||||
|         var names = ""; | ||||
|         for (var i = 1; i < ilength; i++) { | ||||
|           var themeId = themeids.split(";")[i]; | ||||
|           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); | ||||
| @@ -138,6 +154,7 @@ export default { | ||||
|         this.classname = response.classname; | ||||
|         this.xnxq = response.data.xnxq; | ||||
|         this.spyj = response.data.shyj; | ||||
|         this.remark = response.data.remark; | ||||
|       }); | ||||
|       this.getThemeTermItemPlan(); | ||||
|     }, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user