主题整合计划优化

This commit is contained in:
zhanglipeng 2021-09-02 11:37:09 +08:00
parent 5b09d5b39d
commit ff222b6aec
10 changed files with 483 additions and 68 deletions

View File

@ -273,7 +273,7 @@ export const constantRoutes = [
{
path: "data/:id",
component: () => import("@/views/benyi/planweek/data"),
name: "planweek1",
name: "Planweekitem",
meta: {
title: "周计划(明细)",
icon: ""
@ -353,7 +353,7 @@ export const constantRoutes = [
{
path: "data/:id",
component: () => import("@/views/benyi/themetermplan/data"),
name: "Themetermplan1",
name: "Termplanitem",
meta: {
title: "主题整合学期计划(明细)",
icon: ""
@ -369,7 +369,7 @@ export const constantRoutes = [
{
path: "data/:id",
component: () => import("@/views/benyi/thememonthplan/data"),
name: "Thememonthplan1",
name: "Monthplanitem",
meta: {
title: "主题整合月计划(明细)",
icon: ""
@ -385,7 +385,7 @@ export const constantRoutes = [
{
path: "data/:id",
component: () => import("@/views/benyi/themeweekplan/data"),
name: "Themeweekplan1",
name: "Weekplanitem",
meta: {
title: "主题整合周计划(明细)",
icon: ""
@ -401,7 +401,7 @@ export const constantRoutes = [
{
path: "table/:id",
component: () => import("@/views/benyi/themeweekplan/table"),
name: "Themeweekplan2",
name: "WeekTable",
meta: {
title: "主题整合周计划(表格)",
icon: ""
@ -417,7 +417,7 @@ export const constantRoutes = [
{
path: "table/:id",
component: () => import("@/views/benyi/planweek/table"),
name: "planweek2",
name: "PlayTable",
meta: {
title: "周计划(表格)",
icon: ""
@ -433,7 +433,7 @@ export const constantRoutes = [
{
path: "table/:id",
component: () => import("@/views/benyi/thememonthplan/table"),
name: "Thememonthplan2",
name: "MonthTable",
meta: {
title: "主题整合月计划(表格)",
icon: ""
@ -449,7 +449,7 @@ export const constantRoutes = [
{
path: "table/:id",
component: () => import("@/views/benyi/themetermplan/table"),
name: "Themetermplan2",
name: "TermTable",
meta: {
title: "主题整合学期计划(表格)",
icon: ""
@ -473,6 +473,22 @@ export const constantRoutes = [
}
]
},
{
path: "/benyi/thememonthplan",
component: Layout,
hidden: true,
children: [
{
path: "approval/:id",
component: () => import("@/views/benyi/thememonthplanapproval/approval"),
name: "ThememonthplanApproval",
meta: {
title: "主题整合月计划审批",
icon: ""
}
}
]
},
{
path: "/benyi_course/learndevelopmentteacherprint",
component: Layout,

View File

@ -248,7 +248,7 @@ import { listMonthplan, getMonthplan } from "@/api/benyi/thememonthplan";
import { listActivityByThemeId } from "@/api/benyi/activity";
export default {
name: "Weekplan",
name: "Monthplanitem",
data() {
return {
isShow: true,

View File

@ -49,14 +49,14 @@
</td>
<td class="align-center">{{ item.zc }}</td>
<td class="align-center">{{ item.starttime }}{{ item.endtime }}</td>
<td class="align-center" v-if="item.activityid != undefined">
<td v-if="item.activityid != undefined">
<!-- {{ themeactivityFormat(item.activityid) }} -->
<router-link
style="color: blue"
style="margin: 5px; color: blue; text-decoration: underline"
v-for="(index, item) in item.activityid.split(';')"
:key="item"
:to="url + index"
><p>{{ themeactivityFormat(index) }}</p></router-link
>{{ themeactivityFormat(index) }}</router-link
>
</td>
<td>{{ item.jzzc }}</td>

View File

@ -0,0 +1,393 @@
<template>
<div class="table-container" ref="printMe">
<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>
</div>
<table>
<tr class="align-center">
<!-- <td v-for="h in headerData" :key="h.title">
<b class="table-title">{{h.title}}</b>
{{h.name}}
</td>-->
<td style="width: 20%">
<b class="table-title">班级</b>
{{ classname }}
</td>
<td style="width: 15%">
<b class="table-title">月份</b>
{{ month }}
</td>
<td colspan="2" style="width: 45%">
<b class="table-title">月主题</b>
{{ monththeme }}
</td>
<td style="width: 20%">
<b class="table-title">制表人</b>
{{ tbr }}
</td>
</tr>
<tr class="align-center table-bg">
<td v-for="h in bodyData.title" :key="h.prop">
<b>{{ h.label }}</b>
</td>
</tr>
<tr v-for="item in bodyData.monthplanitemList" :key="item.id">
<td
v-if="item.theme"
:rowspan="bodyData.monthplanitemList.length"
class="align-center"
>
<span>{{ monththeme }}</span>
</td>
<td class="align-center">{{ item.zc }}</td>
<td class="align-center">{{ item.starttime }}{{ item.endtime }}</td>
<td class="align-center" v-if="item.activityid != undefined">
<!-- {{ themeactivityFormat(item.activityid) }} -->
<router-link
style="margin: 5px; color: blue; text-decoration: underline"
v-for="(index, item) in item.activityid.split(';')"
:key="item"
:to="url + index"
>{{ themeactivityFormat(index) }}</router-link
>
</td>
<td>{{ item.jzzc }}</td>
</tr>
<tr>
<td class="align-center">本月微型课程</td>
<td colspan="4" v-html="wxkc"></td>
</tr>
<tr>
<td class="align-center">备注</td>
<td colspan="4">{{ bz }}</td>
</tr>
<tr>
<td class="align-center">教学主管审批</td>
<td colspan="4">{{ spyj }}</td>
</tr>
</table>
<!-- <p
class="warning"
>此周计划表不需要发给家长只需上报教学主管制定班级一周教学与活动计划表请使用班级管理模块中教学与游戏活动周计划表以上报教学主管和作为周计划通知发给家长</p>-->
</div>
<div class="no-print" style="padding-top: 20px">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="审批意见" prop="status">
<el-radio-group v-model="form.status">
<el-radio label="0">退回</el-radio>
<el-radio label="2">通过</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="审批建议" prop="spyj">
<el-input
v-model="form.spyj"
type="textarea"
placeholder="请输入审核建议"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
</div>
</div>
</div>
</template>
<script>
import { listActivityById } from "@/api/benyi/activity";
import {
listMonthplan,
getMonthplan,
updateMonthplan,
} from "@/api/benyi/thememonthplan";
import { listMonthplanitem } from "@/api/benyi/thememonthplanitem";
import { listThemeByIds, listThemeByActivityIds } from "@/api/benyi/theme";
export default {
name: "ThememonthplanApproval",
data() {
return {
//url
url: "/benyi_course/tremplan/themestudy/",
tableData: [],
title: "",
month: "",
classname: "",
tbr: "",
monththeme: "",
wxkc: "",
bz: "",
spyj: "",
//
themeactivityOptions: [],
//idtheme
themenamebyactivityids: "",
bodyData: {
title: [
{
label: "主题",
prop: "theme",
},
{
label: "周次",
prop: "day",
},
{
label: "时间",
prop: "name",
},
{
label: "活动名称",
prop: "term",
},
{
label: "家长支持",
prop: "help",
},
],
monthplanitemList: [
{
theme: "",
},
// {
// day: "",
// name: "",
// term: "",
// },
// {
// day: "",
// name: "",
// term: "",
// },
// {
// day: "",
// name: "",
// term: "",
// },
// {
// day: "",
// name: "",
// term: "",
// },
],
},
//
queryParams: {
mpid: undefined,
},
//
form: {},
//
rules: {
status: [
{ required: true, message: "审批意见不能为空", trigger: "blur" },
],
},
};
},
created() {
const thememonthplanid = this.$route.params && this.$route.params.id;
this.getThemeMonthPlan(thememonthplanid);
},
methods: {
getThemeMonthPlan(thememonthplanid) {
getMonthplan(thememonthplanid).then((response) => {
this.queryParams.mpid = response.data.id;
this.title = response.data.name;
this.month = response.data.month;
this.classname = response.classname;
this.tbr = response.createusername;
this.wxkc = response.data.wxkc;
this.bz = response.data.remarks;
this.spyj = response.data.spyj;
this.themeFormat(response.data.themes);
this.form = response.data;
this.getList();
});
},
//
async themeFormat(themeids) {
var themename = "";
var ids = themeids.split(";");
var array = [];
//console.log(ids);
ids.forEach(function (value, key, arr) {
//console.log(value); // 123
if (value != "") {
array.push(parseInt(value));
}
});
if (array.length > 0) {
await listThemeByIds(array).then((response) => {
response.rows.forEach(function (value1, key1, arr1) {
themename = themename + value1.name + ";";
});
});
//(themename);
this.monththeme = themename;
}
},
/** 查询主题整合周计划明细列表 */
getList() {
//console.log(this.queryParams.wpid);
listMonthplanitem(this.queryParams).then((response) => {
if (response.rows.length > 0) {
this.bodyData.monthplanitemList = response.rows;
//id
var activityIds = "";
response.rows.forEach(function (value, key, arr) {
if (value.activityid != null) {
activityIds = activityIds + value.activityid + ";";
}
});
var array = [];
activityIds.split(";").forEach(function (value, key, arr) {
if (value != "") {
array.push(parseInt(value));
}
});
if (response.rows.length > 0) {
this.getThemeActivityList(array);
}
this.bodyData.monthplanitemList[0].theme = activityIds;
} else {
this.bodyData.monthplanitemList[0].theme = " ";
}
});
},
// --
// themeactivityFormat(activityid) {
// if (activityid != null) {
// var ilength = activityid.split(";").length - 1;
// var names = "";
// for (var i = 1; i < ilength; i++) {
// // console.log(activityid.split(";")[i]);
// // console.log(this.themeactivityOptions);
// names =
// names +
// this.selectMoeDictLabel(
// this.themeactivityOptions,
// activityid.split(";")[i]
// ) +
// "";
// }
// //this.selectDictLabel(this.scopeOptions, row.xnxq);
// // console.log(names);
// return names;
// }
// return "";
// },
themeactivityFormat(activityid) {
if (activityid != "" && activityid != null) {
var name = this.selectMoeDictLabel(
this.themeactivityOptions,
activityid
);
return name;
}
return "";
},
//
getThemeActivityList(themeid) {
listActivityById(themeid).then((response) => {
// console.log("111" + themeid);
// console.log("222" + response.rows);
this.themeactivityOptions = response.rows;
});
},
//
prints() {
//console.log(this.$refs.printMe);
this.$print(this.$refs.printMe);
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != undefined) {
console.log(this.form);
updateMonthplan(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("审批成功");
}
});
}
}
});
},
},
};
</script>
<style lang="scss">
.table-container {
padding: 30px 10%;
.title {
margin: 0;
font-size: 18px;
text-align: center;
padding: 15px 0;
}
.align-center {
text-align: center;
}
.table {
font-size: 14px;
.print {
display: flex;
justify-content: flex-end;
padding-bottom: 10px;
}
p {
margin: 0;
}
table {
width: 100%;
border-collapse: collapse;
}
table td {
border: #ccc solid 1px;
line-height: 24px;
padding: 8px 5px;
}
.table-title {
font-size: 16px;
}
.table-bg {
background: #f8f8f8;
}
}
.warning {
padding-top: 20px;
font-size: 12px;
color: #666;
}
}
@media print {
.table-container {
padding: 30px 0;
}
.print {
opacity: 0;
}
}
/*去除页眉页脚*/
@page {
size: auto; /* auto is the initial value */
margin: 3mm; /* this affects the margin in the printer settings */
}
</style>

View File

@ -107,11 +107,7 @@
:data="monthplanList"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="55"
align="center"
/>
<el-table-column type="selection" width="55" align="center" />
<el-table-column
fixed
label="计划名称"
@ -128,11 +124,7 @@
</router-link>
</template>
</el-table-column>
<el-table-column
label="班级名称"
align="center"
prop="byClass.bjmc"
/>
<el-table-column label="班级名称" align="center" prop="byClass.bjmc" />
<el-table-column
label="学年学期"
align="center"
@ -201,7 +193,7 @@
/>
<!-- 添加或修改主题整合月计划对话框 -->
<el-dialog
<!-- <el-dialog
:title="title"
:visible.sync="open"
class="big-dialog"
@ -263,7 +255,7 @@
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</el-dialog> -->
</div>
</template>
@ -278,7 +270,7 @@ import { listClass } from "@/api/system/class";
import { listTheme } from "@/api/benyi/theme";
export default {
name: "Monthplan",
name: "Thememonthplanapproval",
components: {
Editor,
},
@ -453,32 +445,38 @@ export default {
this.multiple = !selection.length;
},
/** 修改按钮操作 */
// handleUpdate(row) {
// this.reset();
// const id = row.id || this.ids;
// getMonthplan(id).then((response) => {
// this.form = response.data;
// this.open = true;
// this.title = "";
// this.disable = true;
// });
// },
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getMonthplan(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "审批主题整合月计划";
this.disable = true;
});
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != undefined) {
updateMonthplan(this.form).then((response) => {
if (response.code === 200) {
this.msgSuccess("审批成功");
this.open = false;
this.getList();
}
});
}
}
const id = row.id;
this.$router.push({
path: "/benyi/thememonthplan/approval/" + id,
});
},
// /** */
// submitForm: function () {
// this.$refs["form"].validate((valid) => {
// if (valid) {
// if (this.form.id != undefined) {
// updateMonthplan(this.form).then((response) => {
// if (response.code === 200) {
// this.msgSuccess("");
// this.open = false;
// this.getList();
// }
// });
// }
// }
// });
// },
/** 预览按钮操作 */
handleView(row) {
const id = row.id;

View File

@ -238,7 +238,7 @@ import {
import { listClass } from "@/api/system/class";
export default {
name: "Termplan",
name: "Themetermplanapproval",
data() {
return {
//

View File

@ -34,12 +34,14 @@
placeholder="星期"
clearable
size="small"
:min="1"
:max="7"
class="my-date-picker"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :xs="24" :ms="12" :md="5">
<!-- <el-col :xs="24" :ms="12" :md="5">
<el-form-item label="活动" prop="activityid">
<el-input
v-model="queryParams.activityid"
@ -49,7 +51,7 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
</el-col> -->
<el-col :xs="24" :ms="12" :md="5">
<el-form-item label="分组性质" prop="fzxz">
<el-select v-model="queryParams.fzxz" size="small">

View File

@ -49,6 +49,7 @@
v-model="queryParams.zc"
placeholder="周次"
clearable
:min="1"
size="small"
class="my-date-picker"
@keyup.enter.native="handleQuery"

View File

@ -52,8 +52,19 @@
<span>{{ item.theme }}</span>
</td>
<td class="align-center">{{ item.daytime }} / 星期{{ item.zhou }}</td>
<td>{{ themeactivityFormat(item.activityid) }}</td>
<td class="align-center">{{ fzxzFormat(item.fzxz) }}</td>
<td v-if="item.activityid != undefined">
<!-- {{ themeactivityFormat(item.activityid) }} -->
<router-link
style="margin: 5px; color: blue; text-decoration: underline"
v-for="(index, item) in item.activityid.split(';')"
:key="item"
:to="url + index"
>{{ themeactivityFormat(index) }}</router-link
>
</td>
<td class="align-center">
{{ fzxzFormat(item.fzxz) }}
</td>
<td>{{ item.jzzc }}</td>
</tr>
<tr>
@ -88,6 +99,8 @@ export default {
name: "WeekTable",
data() {
return {
//url
url: "/benyi_course/tremplan/themestudy/",
tableData: [],
title: "",
zc: "",
@ -202,20 +215,12 @@ export default {
},
// --
themeactivityFormat(activityid) {
if (activityid != null) {
var ilength = activityid.split(";").length - 1;
var names = "";
for (var i = 1; i < ilength; i++) {
names =
names +
this.selectMoeDictLabel(
if (activityid != null && activityid != "") {
var name = this.selectMoeDictLabel(
this.themeactivityOptions,
activityid.split(";")[i]
) +
"";
}
//this.selectDictLabel(this.scopeOptions, row.xnxq);
return names;
activityid
);
return name;
}
return "";
},

View File

@ -271,7 +271,7 @@ import {
import { listClass } from "@/api/system/class";
export default {
name: "Weekplan",
name: "Themeweekplanapproval",
data() {
return {
disable: false,