主题整合学期计划明细

This commit is contained in:
paidaxing444
2020-08-25 09:28:53 +08:00
parent 7fcc28cbad
commit 8faf7c090a
5 changed files with 248 additions and 118 deletions

View File

@ -43,6 +43,14 @@ export function delTermplan(id) {
}) })
} }
// 提交主题整合学期计划
export function checkTermplan(id) {
return request({
url: '/benyi/themetermplan/check/' + id,
method: 'post'
})
}
// 导出主题整合学期计划 // 导出主题整合学期计划
export function exportTermplan(query) { export function exportTermplan(query) {
return request({ return request({

View File

@ -2,51 +2,24 @@
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px"> <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
<el-form-item label="所属计划" prop="tpid"> <el-form-item label="所属计划" prop="tpid">
<el-input <el-select v-model="queryParams.tpid" size="small">
v-model="queryParams.tpid" <el-option
placeholder="请输入所属计划" v-for="item in themePlanOptions"
clearable :key="item.id"
size="small" :label="item.name"
@keyup.enter.native="handleQuery" :value="item.id"
/> />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="主题内容" prop="themeconent"> <el-form-item label="主题内容" prop="themeconent">
<el-input <el-select v-model="queryParams.themeconent" size="small">
v-model="queryParams.themeconent" <el-option
placeholder="请输入主题内容" v-for="item in themeOptions"
clearable :key="item.id"
size="small" :label="item.name"
@keyup.enter.native="handleQuery" :value="item.id"
/> />
</el-form-item> </el-select>
<el-form-item label="创建人" prop="createuserid">
<el-input
v-model="queryParams.createuserid"
placeholder="请输入创建人"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人" prop="创建时间">
<el-date-picker
clearable
size="small"
style="width: 200px"
v-model="queryParams.创建时间"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择创建人"
></el-date-picker>
</el-form-item>
<el-form-item label="修改人" prop="updateuserid">
<el-input
v-model="queryParams.updateuserid"
placeholder="请输入修改人"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@ -62,6 +35,7 @@
size="mini" size="mini"
@click="handleAdd" @click="handleAdd"
v-hasPermi="['benyi:themetermplan:add']" v-hasPermi="['benyi:themetermplan:add']"
v-show="isShow"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
@ -72,6 +46,7 @@
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['benyi:themetermplan:edit']" v-hasPermi="['benyi:themetermplan:edit']"
v-show="isShow"
>修改</el-button> >修改</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
@ -82,17 +57,9 @@
:disabled="multiple" :disabled="multiple"
@click="handleDelete" @click="handleDelete"
v-hasPermi="['benyi:themetermplan:remove']" v-hasPermi="['benyi:themetermplan:remove']"
v-show="isShow"
>删除</el-button> >删除</el-button>
</el-col> </el-col>
<el-col :span="1.5">
<el-button
type="warning"
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['benyi:themetermplan:export']"
>导出</el-button>
</el-col>
</el-row> </el-row>
<el-table <el-table
@ -101,17 +68,11 @@
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="编号" align="center" prop="id" /> <!-- <el-table-column label="编号" align="center" prop="id" /> -->
<el-table-column label="所属计划" align="center" prop="tpid" /> <el-table-column label="所属计划" align="center" prop="tpid" :formatter="themePlanFormat" />
<el-table-column label="主题内容" align="center" prop="themeconent" /> <el-table-column label="月份" align="center" prop="month" />
<el-table-column label="主题内容" align="center" prop="themeconent" :formatter="themeFormat" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="创建人" align="center" prop="createuserid" />
<el-table-column label="创建人" align="center" prop="创建时间" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.创建时间, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="修改人" align="center" prop="updateuserid" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -120,6 +81,7 @@
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['benyi:themetermplan:edit']" v-hasPermi="['benyi:themetermplan:edit']"
v-show="isShow"
>修改</el-button> >修改</el-button>
<el-button <el-button
size="mini" size="mini"
@ -127,6 +89,7 @@
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['benyi:themetermplan:remove']" v-hasPermi="['benyi:themetermplan:remove']"
v-show="isShow"
>删除</el-button> >删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -144,27 +107,31 @@
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="所属计划" prop="tpid"> <el-form-item label="所属计划" prop="tpid">
<el-input v-model="form.tpid" placeholder="请输入所属计划" /> <el-select v-model="form.tpid" size="small" :disabled="true">
<el-option
v-for="item in themePlanOptions"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="主题内容" prop="themeconent"> <el-form-item label="月份" prop="month">
<el-input v-model="form.themeconent" placeholder="请输入主题内容" />
</el-form-item>
<el-form-item label="创建人" prop="createuserid">
<el-input v-model="form.createuserid" placeholder="请输入创建人" />
</el-form-item>
<el-form-item label="创建人" prop="创建时间">
<el-date-picker <el-date-picker
clearable v-model="form.month"
size="small" type="month"
style="width: 200px" placeholder="请选择月"
v-model="form.创建时间" value-format="yyyy-MM"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择创建人"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="修改人" prop="updateuserid"> <el-form-item label="选择主题" prop="themeconent">
<el-input v-model="form.updateuserid" placeholder="请输入修改人" /> <el-checkbox-group v-model="themeList" :max="max" @change="getThemeconentValue">
<el-checkbox v-for="(item,i) in themeOptions" :label="item.id" :key="i">{{item.name}}</el-checkbox>
</el-checkbox-group>
<el-input v-model="form.themeconent" v-if="false" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -185,10 +152,19 @@ import {
exportTermplanitem, exportTermplanitem,
} from "@/api/benyi/themetermplanitem"; } from "@/api/benyi/themetermplanitem";
import { listTermplan, getTermplan } from "@/api/benyi/themetermplan";
import { listTheme } from "@/api/benyi/theme";
export default { export default {
name: "Termplanitem", name: "Termplanitem",
data() { data() {
return { return {
isShow: true,
//最大选中个数
max: 2,
//主题
themeOptions: [],
themeList: [],
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 选中数组 // 选中数组
@ -201,10 +177,13 @@ export default {
total: 0, total: 0,
// 主题整合学期计划明细表格数据 // 主题整合学期计划明细表格数据
termplanitemList: [], termplanitemList: [],
//计划列表
themePlanOptions: [],
// 弹出层标题 // 弹出层标题
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
defaultThemeType: "",
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -212,19 +191,97 @@ export default {
tpid: undefined, tpid: undefined,
themeconent: undefined, themeconent: undefined,
createuserid: undefined, createuserid: undefined,
创建时间: undefined,
updateuserid: undefined, updateuserid: undefined,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
// 表单校验 // 表单校验
rules: {}, rules: {
month: [{ required: true, message: "月份不能为空", trigger: "blur" }],
themeconent: [
{ required: true, message: "主题不能为空", trigger: "blur" },
],
},
}; };
}, },
created() { created() {
this.getList(); const themeplanid = this.$route.params && this.$route.params.id;
//console.log(themeplanid);
this.getThemePlan(themeplanid);
this.getThemePlanList();
this.getThemeList();
}, },
methods: { methods: {
// 主题--字典状态字典翻译
themeFormat(row, column) {
if (row.themeconent != null) {
var ilength = row.themeconent.split(";").length - 1;
var names = "";
for (var i = 1; i < ilength; i++) {
names =
names +
this.selectMoeDictLabel(
this.themeOptions,
row.themeconent.split(";")[i]
) +
" ";
}
//this.selectDictLabel(this.scopeOptions, row.xnxq);
return names;
}
return "";
},
//获取选中的checkbox
getThemeconentValue() {
//console.log(this.themeList);
var text = ";";
this.themeList.forEach(function (value, key, arr) {
//console.log(value); // 结果依次为123
text = text + value + ";";
//console.log(text);
});
this.form.themeconent = text;
},
//主题
getThemeList() {
listTheme(null).then((response) => {
//console.log(response.rows);
this.themeOptions = response.rows;
});
},
// 字典翻译
themePlanFormat(row, column) {
// return this.selectDictLabel(this.classOptions, row.classid);
var actions = [];
var datas = this.themePlanOptions;
Object.keys(datas).map((key) => {
if (datas[key].id == "" + row.tpid) {
actions.push(datas[key].name);
return false;
}
});
return actions.join("");
},
//计划详情
getThemePlan(themeplanid) {
getTermplan(themeplanid).then((response) => {
this.queryParams.tpid = response.data.id;
this.defaultThemeType = response.data.id;
if (response.data.status == "0") {
this.isShow = true;
} else {
this.isShow = false;
}
this.getList();
});
},
getThemePlanList() {
listTermplan().then((response) => {
this.themePlanOptions = response.rows;
});
},
/** 查询主题整合学期计划明细列表 */ /** 查询主题整合学期计划明细列表 */
getList() { getList() {
this.loading = true; this.loading = true;
@ -247,11 +304,12 @@ export default {
themeconent: undefined, themeconent: undefined,
remark: undefined, remark: undefined,
createuserid: undefined, createuserid: undefined,
创建时间: undefined, month: undefined,
updateuserid: undefined, updateuserid: undefined,
updateTime: undefined, updateTime: undefined,
}; };
this.resetForm("form"); this.resetForm("form");
this.themeList = [];
}, },
/** 搜索按钮操作 */ /** 搜索按钮操作 */
handleQuery() { handleQuery() {
@ -261,6 +319,7 @@ export default {
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.resetForm("queryForm"); this.resetForm("queryForm");
this.queryParams.tpid = this.defaultThemeType;
this.handleQuery(); this.handleQuery();
}, },
// 多选框选中数据 // 多选框选中数据
@ -274,6 +333,7 @@ export default {
this.reset(); this.reset();
this.open = true; this.open = true;
this.title = "添加主题整合学期计划明细"; this.title = "添加主题整合学期计划明细";
this.form.tpid = this.queryParams.tpid;
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
@ -283,6 +343,16 @@ export default {
this.form = response.data; this.form = response.data;
this.open = true; this.open = true;
this.title = "修改主题整合学期计划明细"; this.title = "修改主题整合学期计划明细";
var themeconent = response.data.themeconent.split(";");
var array = [];
//console.log(arr);
themeconent.forEach(function (value, key, arr) {
//console.log(value); // 结果依次为123
if (value != "") {
array.push(parseInt(value));
}
});
this.themeList = array;
}); });
}, },
/** 提交按钮 */ /** 提交按钮 */
@ -330,22 +400,6 @@ export default {
}) })
.catch(function () {}); .catch(function () {});
}, },
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm("是否确认导出所有主题整合学期计划明细数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return exportTermplanitem(queryParams);
})
.then((response) => {
this.download(response.msg);
})
.catch(function () {});
},
}, },
}; };
</script> </script>

View File

@ -23,7 +23,12 @@
</el-form-item> </el-form-item>
<el-form-item label="当前状态" prop="status"> <el-form-item label="当前状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small"> <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
<el-option label="请选择字典生成" value /> <el-option
v-for="dict in statusOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -65,7 +70,7 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="termplanList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="termplanList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" :selectable="isShow"/>
<el-table-column label="班级" align="center" prop="classid" :formatter="classFormat" /> <el-table-column label="班级" align="center" prop="classid" :formatter="classFormat" />
<el-table-column label="名称" align="center" prop="name" :show-overflow-tooltip="true"> <el-table-column label="名称" align="center" prop="name" :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
@ -86,7 +91,7 @@
</el-table-column> </el-table-column>
<el-table-column label="学年学期" align="center" prop="xnxq" :formatter="xnxqFormat" /> <el-table-column label="学年学期" align="center" prop="xnxq" :formatter="xnxqFormat" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="状态" align="center" prop="status" /> <el-table-column label="状态" align="center" prop="status" :formatter="statusFormat" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -95,6 +100,7 @@
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['benyi:themetermplan:edit']" v-hasPermi="['benyi:themetermplan:edit']"
v-show="isShow(scope.row)"
>修改</el-button> >修改</el-button>
<el-button <el-button
size="mini" size="mini"
@ -102,7 +108,16 @@
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['benyi:themetermplan:remove']" v-hasPermi="['benyi:themetermplan:remove']"
v-show="isShow(scope.row)"
>删除</el-button> >删除</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-check"
@click="handleCheck(scope.row)"
v-hasPermi="['benyi:themetermplan:edit']"
v-show="isShow(scope.row)"
>提交</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -139,7 +154,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入备注" /> <el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -157,6 +172,7 @@ import {
delTermplan, delTermplan,
addTermplan, addTermplan,
updateTermplan, updateTermplan,
checkTermplan,
} from "@/api/benyi/themetermplan"; } from "@/api/benyi/themetermplan";
import { listClass } from "@/api/system/class"; import { listClass } from "@/api/system/class";
@ -180,6 +196,8 @@ export default {
classOptions: [], classOptions: [],
//学年学期 //学年学期
xnxqOptions: [], xnxqOptions: [],
//当前状态
statusOptions: [],
// 弹出层标题 // 弹出层标题
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
@ -218,8 +236,19 @@ export default {
this.getDicts("sys_xnxq").then((response) => { this.getDicts("sys_xnxq").then((response) => {
this.xnxqOptions = response.data; this.xnxqOptions = response.data;
}); });
this.getDicts("sys_dm_planweekstatus").then((response) => {
this.statusOptions = response.data;
});
}, },
methods: { methods: {
isShow(row) {
console.log(row.status);
if (row.status == "0") {
return true;
} else {
return false;
}
},
// 字典翻译 // 字典翻译
classFormat(row, column) { classFormat(row, column) {
// return this.selectDictLabel(this.classOptions, row.classid); // return this.selectDictLabel(this.classOptions, row.classid);
@ -237,6 +266,10 @@ export default {
xnxqFormat(row, column) { xnxqFormat(row, column) {
return this.selectDictLabel(this.xnxqOptions, row.xnxq); return this.selectDictLabel(this.xnxqOptions, row.xnxq);
}, },
// 当前状态类型--字典状态字典翻译
statusFormat(row, column) {
return this.selectDictLabel(this.statusOptions, row.status);
},
//班级列表 //班级列表
getClassList() { getClassList() {
listClass(null).then((response) => { listClass(null).then((response) => {
@ -360,6 +393,27 @@ export default {
}) })
.catch(function () {}); .catch(function () {});
}, },
/** 提交按钮操作 */
handleCheck(row) {
const id = row.id;
this.$confirm(
"是否确认提交主题整合学期计划?提交后数据将不能维护",
"警告",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}
)
.then(function () {
return checkTermplan(id);
})
.then(() => {
this.getList();
this.msgSuccess("提交成功");
})
.catch(function () {});
},
}, },
}; };
</script> </script>

View File

@ -142,4 +142,17 @@ public class ByThemeTermplanController extends BaseController {
public AjaxResult remove(@PathVariable String[] ids) { public AjaxResult remove(@PathVariable String[] ids) {
return toAjax(byThemeTermplanService.deleteByThemeTermplanByIds(ids)); return toAjax(byThemeTermplanService.deleteByThemeTermplanByIds(ids));
} }
/**
* 提交主题整合学期计划
*/
@PreAuthorize("@ss.hasPermi('benyi:themetermplan:edit')")
@Log(title = "主题整合学期计划", businessType = BusinessType.UPDATE)
@PostMapping("/check/{id}")
public AjaxResult check(@PathVariable String id) {
ByThemeTermplan byThemeTermplan = new ByThemeTermplan();
byThemeTermplan.setId(id);
byThemeTermplan.setStatus("1");
return toAjax(byThemeTermplanService.updateByThemeTermplan(byThemeTermplan));
}
} }

View File

@ -5,29 +5,30 @@
<mapper namespace="com.ruoyi.project.benyi.mapper.ByThemeTermplanitemMapper"> <mapper namespace="com.ruoyi.project.benyi.mapper.ByThemeTermplanitemMapper">
<resultMap type="ByThemeTermplanitem" id="ByThemeTermplanitemResult"> <resultMap type="ByThemeTermplanitem" id="ByThemeTermplanitemResult">
<result property="id" column="id" /> <result property="id" column="id"/>
<result property="tpid" column="tpid" /> <result property="tpid" column="tpid"/>
<result property="month" column="month" /> <result property="month" column="month"/>
<result property="themeconent" column="themeconent" /> <result property="themeconent" column="themeconent"/>
<result property="remark" column="remark" /> <result property="remark" column="remark"/>
<result property="createuserid" column="createuserid" /> <result property="createuserid" column="createuserid"/>
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time"/>
<result property="updateuserid" column="updateuserid" /> <result property="updateuserid" column="updateuserid"/>
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time"/>
</resultMap> </resultMap>
<sql id="selectByThemeTermplanitemVo"> <sql id="selectByThemeTermplanitemVo">
select id, tpid, month, themeconent, remark, createuserid, create_time, updateuserid, update_time from by_theme_termplanitem select id, tpid, month, themeconent, remark, createuserid, create_time, updateuserid, update_time from by_theme_termplanitem
</sql> </sql>
<select id="selectByThemeTermplanitemList" parameterType="ByThemeTermplanitem" resultMap="ByThemeTermplanitemResult"> <select id="selectByThemeTermplanitemList" parameterType="ByThemeTermplanitem"
resultMap="ByThemeTermplanitemResult">
<include refid="selectByThemeTermplanitemVo"/> <include refid="selectByThemeTermplanitemVo"/>
<where> <where>
<if test="tpid != null and tpid != ''"> and tpid = #{tpid}</if> <if test="tpid != null and tpid != ''">and tpid = #{tpid}</if>
<if test="month != null "> and month = #{month}</if> <if test="month != null ">and month = #{month}</if>
<if test="themeconent != null and themeconent != ''"> and themeconent = #{themeconent}</if> <if test="themeconent != null and themeconent != ''">and themeconent like concat('%;', #{themeconent}, ';%')</if>
<if test="createuserid != null "> and createuserid = #{createuserid}</if> <if test="createuserid != null ">and createuserid = #{createuserid}</if>
<if test="updateuserid != null "> and updateuserid = #{updateuserid}</if> <if test="updateuserid != null ">and updateuserid = #{updateuserid}</if>
</where> </where>
order by month order by month
</select> </select>