Commit e149a887 by zhaopanyu

zpy 8.31

parent fb05804e
import request from "@/utils/request";
//获取当前最新学年
export function getNewYear(data) {
return request({
url: "/schoolGrade/getNewYear",
method: "get",
data,
});
}
// 查询级部
export function getGrade(schoolYear) {
return request({
url: "/experimentPlan/getGrade/" + schoolYear,
method: "get",
});
}
// 根据级部查询对应班级
export function getClass(id) {
return request({
url: "/experimentPlan/getClass/" + id,
method: "get",
});
}
//新增实验计划
export function addExperimentPlan(data) {
return request({
url: "/experimentPlan/add",
method: "post",
data,
});
}
// 修改实验室
export function updateExperimentPlan(data) {
return request({
url: "/experimentPlan/edit",
method: "put",
data,
});
}
// 查询实验计划列表
export function getExperimentPlan(query) {
return request({
url: "/experimentPlan/list",
params: query,
});
}
// 查询实验计划详细信息
export function getExperimentPlanxq(id) {
return request({
url: "/experimentPlan/" + id,
method: "get",
});
}
// 删除实验室
export function deleteExperimentPlan(id) {
return request({
url: "/experimentPlan/" + id,
method: "post",
});
}
//学科下拉框
export function subExperimentPlan(schoolYear) {
return request({
url: "/experimentPlan/getSub/" + schoolYear,
method: "get",
});
}
//获取当前学期
export function getSemester() {
return request({
url: "/experimentPlan/getSemester",
method: "get",
});
}
import request from "@/utils/request";
// 查看列表
export function getExperimentPlan(query) {
return request({
url: "/experimentPlan/getExperimentList",
method: "get",
params: query,
});
}
// 查看详情
export function getExperimentPlaxq(id) {
return request({
url: "/experimentPlan/" + id,
method: "get",
});
}
import request from "@/utils/request";
// 查看列表
export function getLabClassYear(query) {
return request({
url: "/schoolLabClassYear/getLabClassYear",
method: "get",
params: query,
});
}
// 获取实验室
export function getLabList(query) {
return request({
url: "/schoolLabClassYear/getLabList",
method: "get",
params: query,
});
}
// 分配实验室
export function getAllocationLab(data) {
return request({
url: "/schoolLabClassYear/allocationLab",
method: "post",
data,
});
}
// 查看详情
export function getLabClassYearxq(id) {
return request({
url: "/schoolLabClassYear/getLabClassYear/" + id,
method: "get",
});
}
import request from "@/utils/request";
//新增实验室
export function addSchoolLab(data) {
return request({
url: "/schoolLab/add",
method: "post",
data,
});
}
// 查询实验室列表
export function getSchoolLab(query) {
return request({
url: "/schoolLab/list",
method: "get",
params: query,
});
}
// 查看实验室详情
export function getSchoolLabxq(id) {
return request({
url: "/schoolLab/" + id,
method: "get",
});
}
// 修改实验室
export function updateSchoolLab(data) {
return request({
url: "/schoolLab/edit",
method: "put",
data,
});
}
// 删除实验室
export function deleteSchoolLab(id) {
return request({
url: "/schoolLab/" + id,
method: "post",
});
}
//负责人下拉框
export function departUser() {
return request({
url: "/schoolLab/getLabAdmin",
method: "get",
});
}
//学科下拉框
export function subSchoolLab() {
return request({
url: "/schoolLab/getSub",
method: "get",
});
}
......@@ -2,18 +2,21 @@
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="学科分类">
<el-select v-model="queryForm.subject" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
<el-select v-model="queryForm.sub" placeholder="请选择" clearable>
<el-option v-for="(item, index) in subList" :key="index" :label="item.dictLabel"
:value="item.dictValue"></el-option>
</el-select>
</el-form-item>
<el-form-item label="实验级部">
<el-input v-model="queryForm.name" placeholder="请输入实验名称" clearable></el-input>
<el-select v-model="queryForm.gradeId" placeholder="请选择">
<el-option v-for="item in gradeList" :key="item.id" :label="item.gradeName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="实验分类">
<el-select v-model="queryForm.name" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
<el-select v-model="queryForm.experimentClassify" placeholder="请选择" clearable>
<el-option v-for="dict in dict.type.experiment_classify" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item>
......@@ -23,100 +26,143 @@
</el-form>
<el-row class="mb8" :gutter="8">
<el-col :span="1.5">
<el-button size="mini" type="primary" icon="el-icon-plus" @click="handleAdd">新增
<el-button size="mini" type="primary" icon="el-icon-plus" @click="handleOption(0)"> 新增
</el-button>
<el-button size="mini" type="success" icon="el-icon-download" @click="handleImport">导入
</el-button>
</el-col>
</el-row>
<el-table :data="tableData" border style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="grade" label="级部" />
<el-table-column align="center" prop="name" label="学年" />
<el-table-column align="center" prop="address" label="计划时间" />
<el-table-column align="center" prop="name" label="实验分类" />
<el-table-column align="center" prop="address" label="实验名称" />
<el-table-column align="center" prop="grade" label="学科分类" />
<el-table-column align="center" prop="address" label="章节内容" />
<el-table-column align="center" prop="name" label="是否已预约" />
<el-table-column align="center" prop="schoolYearSemester" label="学年" />
<el-table-column align="center" prop="plannedTime" label="计划时间" />
<el-table-column align="center" prop="experimentClassify" label="实验分类">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.experiment_classify, row.experimentClassify) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="experimentName" label="实验名称" />
<el-table-column align="center" prop="sub" label="学科分类">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.lab_sub, row.sub) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="chapterContent" label="章节内容" />
<el-table-column align="center" prop="isAppointment" label="是否已预约" />
<el-table-column align="center" fixed="right" label="操作" width="150">
<template slot-scope="scope">
<el-button @click="handleEdit(scope.row)" type="text" size="small">修改</el-button>
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
<el-button @click="handleDelete(scope.row)" type="text" size="small">删除</el-button>
<template slot-scope="{ row }">
<div>
<el-button type="text" size="small" @click="handleOption(2, row)">查看</el-button>
<el-button type="text" size="small" @click="handleOption(1, row)">修改</el-button>
<el-button type="text" size="small" @click="handleDelete(row.id)">删除</el-button>
</div>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList" />
<!-- 新增/查看 -->
<el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="60%">
<el-form :model="form" ref="form" size="small" label-width="88px">
<el-form :model="form" ref="form" size="small" :rules="rules" label-width="108px">
<el-row>
<el-col :span="10">
<el-form-item label="学科">
<el-input v-model="form.subject" placeholder="请输入" clearable></el-input>
<el-form-item label="学科" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" :disabled="nowType === 2" clearable
@change="onGradeChange" style="width: 100%;">
<el-option v-for="(item, index) in subList" :key="index" :label="item.dictLabel"
:value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="级部" prop="gradeId">
<el-select v-model="form.gradeId" placeholder="请选择" clearable @change="onGradeChange"
style="width: 100%;" :disabled="nowType === 2">
<el-option v-for="(item, index) in gradeList" :key="index" :label="item.gradeName"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="学年" prop="schoolYear">
<el-input v-model="form.schoolYear" placeholder="请输入" clearable
:disabled="nowType === 2"></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="级部">
<el-input v-model="form.grade" placeholder="请输入" clearable></el-input>
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" placeholder="请选择" clearable style="width: 100%;"
:disabled="nowType === 2">
<el-option label="上学期" value="1"></el-option>
<el-option label="下学期" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="20">
<el-form-item label="班级">
<el-radio-group v-model="form.change" style="width: 100%;">
<el-radio label='0'>1班</el-radio>
<el-radio label='1'>2班</el-radio>
<el-radio label='2'>3班</el-radio>
<el-radio label='3'>4班</el-radio>
<el-radio label='4'>5班</el-radio>
<!-- <el-radio label='5'>6班</el-radio>
<el-radio label='6'>7班</el-radio>-->
</el-radio-group>
<el-form-item label="班级" prop="classId">
<el-checkbox-group v-model="form.classId" :disabled="nowType === 2">
<el-checkbox v-for="classItem in classList" :key="classItem.classId"
:label="classItem.classId">
{{ classItem.className }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="实验分类">
<el-select v-model="queryForm.sort" placeholder="请选择" style="width: 100%;">
<el-option v-for="item in options" :key="item.value" :label="item.label"
:value="item.value">
</el-option>
<el-form-item label="实验分类" prop="experimentClassify">
<el-select v-model="form.experimentClassify" placeholder="请选择" clearable style="width: 100%;"
:disabled="nowType === 2">
<el-option v-for="dict in dict.type.experiment_classify" :key="dict.value"
:label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="实验名称">
<el-input v-model="form.year" placeholder="请输入" clearable></el-input>
<el-form-item label="实验名称" prop="experimentName">
<el-input v-model="form.experimentName" placeholder="请输入" clearable
:disabled="nowType === 2"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="20">
<el-form-item label="章节内容" prop="chapterContent">
<el-input v-model="form.chapterContent" placeholder="请输入" clearable
:disabled="nowType === 2"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="章节内容">
<el-input v-model="form.year" placeholder="请输入" clearable></el-input>
<el-form-item label="计划开始时间" prop="plannedStartTime">
<el-date-picker v-model="form.plannedStartTime" type="month" placeholder="选择月"
value-format="yyyy-MM" style="width: 100%;" :disabled="nowType === 2">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="计划时间">
<el-date-picker v-model="form.time" type="monthrange" range-separator="至"
start-placeholder="开始月份" end-placeholder="结束月份" value-format="MM" style="width: 100%;">
<el-form-item label="计划结束时间" prop="plannedEndTime">
<el-date-picker v-model="form.plannedEndTime" type="month" placeholder="选择月"
value-format="yyyy-MM" style="width: 100%;" :disabled="nowType === 2">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="20">
<el-form-item label="实验用品">
<el-input v-model="form.name" type="textarea" placeholder="请输入" clearable></el-input>
<el-form-item label="实验用品" prop="experimentUseGoods">
<el-input v-model="form.experimentUseGoods" type="textarea" placeholder="请输入" clearable
:disabled="nowType === 2"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -131,13 +177,34 @@
</template>
<script>
import {
getNewYear,
getGrade,
getClass,
addExperimentPlan,
updateExperimentPlan,
getExperimentPlan,
getExperimentPlanxq,
deleteExperimentPlan,
subExperimentPlan,
getSemester
} from '@/api/smartSchool/gradeWork/laboratoryManagement/experimentalPlan'
export default {
name: 'index',
dicts: ['experiment_classify', 'lab_sub'],
data() {
return {
queryForm: {
sub: '',
gradeId: '',
experimentClassify: '',
pageNum: 1,
pageSize: 10,
},
classList: [], // 班级列表数据
subList: [],// 学科列表
//级部
gradeList: [],
//表格数据
tableData: [
{
......@@ -147,44 +214,231 @@ export default {
//查看弹窗表格
ExperimentalData: [],
form: {
id: '',
sub: '',
gradeId: '',
grade: '',
schoolYear: '',
semester: '',
experimentClassify: '',
experimentName: '',
chapterContent: '',
plannedStartTime: '',
plannedEndTime: '',
experimentUseGoods: '',
classId: '',
className: '',
schoolExperimentPlanClassList: [],
},
//实验分类下拉框
options: {
},
rules: {
sub: [
{ required: true, message: "学科不能为空", trigger: "blur" }
],
gradeId: [
{ required: true, message: "级部不能为空", trigger: "blur" }
],
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
experimentClassify: [
{ required: true, message: "实验分类不能为空", trigger: "blur" }
],
experimentName: [
{ required: true, message: "实验名称不能为空", trigger: "blur" }
],
chapterContent: [
{ required: true, message: "章节内容不能为空", trigger: "blur" }
],
plannedStartTime: [
{ required: true, message: "计划开始时间不能为空", trigger: "blur" }
],
plannedEndTime: [
{ required: true, message: "计划结束时间不能为空", trigger: "blur" }
],
experimentUseGoods: [
{ required: true, message: "实验用品不能为空", trigger: "blur" }
],
classId: [
{ required: true, message: "班级不能为空", trigger: "blur" }
],
},
nowType: 0, // 0新增、1修改、2查看
//弹窗
dialogTableVisible: false,
total: 0,
}
},
created() {
this.getList();
},
methods: {
getList() {
getExperimentPlan(this.queryForm).then(response => {
this.tableData = response.rows;
console.log('this.tableData', this.tableData);
this.total = response.total
this.loading = false
})
},
//选择级部自动获取年级
onGradeChange() {
const selectedGrade = this.gradeList.find(grade => grade.id === this.form.gradeId);
if (selectedGrade) {
const gradeValue = selectedGrade.gradeValue;
console.log('selectedGrade', selectedGrade);
if (gradeValue === 1) {
console.log('gradeValue', gradeValue);
this.form.classId = this.classList.map(classItem => classItem.classId); // 默认选中所有班级
console.log('this.form.classId', this.form.classId);
console.log('this.form.schoolExperimentPlanClassList', this.form.schoolExperimentPlanClassList);
} else {
this.form.schoolExperimentPlanClassList = [];
console.log('gradeValue', gradeValue);
this.getClass(selectedGrade.id); // 获取班级列表
}
}
},
//删除按钮操作
handleDelete(id) {
this.$confirm("此操作将永久删除该数据,是否继续?", '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteExperimentPlan(id).then(res => {
if (res.code == 200) {
this.$message.success("删除成功!")
}
this.getList()
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除!'
});
});
},
resetQuery() {
this.getList();
//获得当前年份
newYear() {
getNewYear().then((res) => {
this.form.schoolYear = res.schoolYear;
console.log(this.form.schoolYear, typeof this.form.schoolYear);
this.getGrade();
});
},
//新增按钮操作
handleAdd() {
this.dialogTableVisible = true;
//获取当前学期
getSemester() {
getSemester().then((res) => {
this.form.semester = res.semester;
console.log(this.form.semester, typeof this.form.semester);
});
},
//查询级部
getGrade() {
const schoolYear = this.form.schoolYear;
getGrade(schoolYear).then(response => {
this.loading = false;
this.gradeList = response.data;
console.log("this.gradeList", this.gradeList);
if (this.gradeList.length > 0) {
const gradeId = this.gradeList[0].id;
this.getClass(gradeId);
this.getSub(gradeId);
}
});
},
//查询班级
getClass(gradeId) {
getClass(gradeId).then(response => {
this.loading = false;
this.classList = response.data;
console.log('this.classList', this.classList);
});
},
//查询学科
getSub(gradeId) {
subExperimentPlan(gradeId).then(response => {
this.loading = false;
this.subList = response.data;
console.log('this.subList', this.subList);
});
},
//删除按钮操作
handleDelete() {
//重置按钮
resetQuery() {
this.queryForm.sub = '';
this.queryForm.gradeId = '';
this.queryForm.experimentClassify = '';
// this.resetForm("queryForm");
this.getList();
},
//修改按钮操作
handleEdit() {
// 0新增、1修改、2查看
handleOption(type, row) {
this.form = {
id: '',
sub: '',
gradeId: '',
grade: '',
schoolYear: '',
semester: '',
experimentClassify: '',
experimentName: '',
chapterContent: '',
plannedStartTime: '',
plannedEndTime: '',
experimentUseGoods: '',
classId: '',
className: '',
schoolExperimentPlanClassList: [],
}
this.nowType = type;
this.newYear();
this.getSemester();
if (type != 0) {
const id = row.id
getExperimentPlanxq(id).then(response => {
if (response.code == 200) {
console.log(response);
Object.keys(this.form).forEach(key => {
if (response.data[key]) {
this.$set(this.form, key, response.data[key]);
this.form.classId = response.data.schoolExperimentPlanClassList.map(item => {
return item.classId;
});
}
})
}
})
}
this.dialogTableVisible = true;
},
/** 导入按钮操作 */
handleImport() {
},
//查看按钮操作
handleLook() {
this.dialogTableVisible = true;
},
//取消按钮
cancel() {
......@@ -192,8 +446,33 @@ export default {
},
//提交按钮
submitForm() {
if (Array.isArray(this.form.classId)) {
this.form.schoolExperimentPlanClassList = this.form.classId.map(item => {
return { classId: item }
})
}
const gradeId = this.form.gradeId
this.form.grade = gradeId == '' ? '' : this.gradeList.find(item => item.id == gradeId).gradeName
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id !== "") {
updateExperimentPlan(this.form).then(response => {
console.log("this.form", this.form);
this.$modal.msgSuccess("修改成功");
this.dialogTableVisible = false;
this.getList();
});
} else {
addExperimentPlan(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.dialogTableVisible = false;
this.getList();
});
}
}
});
},
},
}
</script>
......
......@@ -2,13 +2,13 @@
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="88px">
<el-form-item label="学科分类">
<el-select v-model="queryForm.subject" placeholder="请选择">
<el-select v-model="queryForm.sub" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="计划时间">
<el-date-picker v-model="queryForm.time" type="daterange" range-separator="至" start-placeholder="开始日期"
<el-date-picker v-model="queryForm.plannedStartTime" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
......
......@@ -2,18 +2,15 @@
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="学年">
<el-select v-model="queryForm.year" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
<el-input v-model="queryForm.schoolYear" placeholder="请输入" clearable></el-input>
</el-form-item>
<el-form-item label="实验级部">
<el-input v-model="queryForm.name" placeholder="请输入实验名称" clearable></el-input>
<el-input v-model="queryForm.grade" placeholder="请输入实验名称" clearable></el-input>
</el-form-item>
<el-form-item label="实验分类">
<el-select v-model="queryForm.name" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
<el-select v-model="queryForm.experimentClassify" placeholder="请选择" clearable>
<el-option v-for="dict in dict.type.experiment_classify" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item>
......@@ -24,12 +21,20 @@
<el-table :data="tableData" border style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="grade" label="级部" />
<el-table-column align="center" prop="name" label="学年" />
<el-table-column align="center" prop="address" label="计划时间" />
<el-table-column align="center" prop="grade" label="学科分类" />
<el-table-column align="center" prop="name" label="实验分类" />
<el-table-column align="center" prop="address" label="实验名称" />
<el-table-column align="center" prop="address" label="章节内容" />
<el-table-column align="center" prop="schoolYear" label="学年" />
<el-table-column align="center" prop="plannedTime" label="计划时间" />
<el-table-column align="center" prop="sub" label="学科分类">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.lab_sub, row.sub) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="experimentClassify" label="实验分类">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.experiment_classify, row.experimentClassify) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="experimentName" label="实验名称" />
<el-table-column align="center" prop="chapterContent" label="章节内容" />
<el-table-column align="center" fixed="right" label="操作" width="150">
<template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
......@@ -38,10 +43,9 @@
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList" />
<!-- 查看弹窗 -->
<el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="60%">
<el-form :model="form" ref="form" size="small" label-width="88px">
<el-form :model="form" ref="form" size="small" label-width="108px" :disabled="isEdit">
<el-row>
<el-col :span="10">
<el-form-item label="级部">
......@@ -50,44 +54,58 @@
</el-col>
<el-col :span="10">
<el-form-item label="学年">
<el-input v-model="form.year" placeholder="请输入" clearable></el-input>
<el-input v-model="form.schoolYear" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="计划时间">
<el-input v-model="form.year" placeholder="请输入" clearable></el-input>
<el-form-item label="计划开始时间" prop="plannedStartTime">
<el-date-picker v-model="form.plannedStartTime" type="month" placeholder="选择月"
value-format="yyyy-MM" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="学科分类">
<el-input v-model="form.year" placeholder="请输入" clearable></el-input>
<el-form-item label="计划结束时间" prop="plannedEndTime">
<el-date-picker v-model="form.plannedEndTime" type="month" placeholder="选择月"
value-format="yyyy-MM" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="实验分类">
<el-input v-model="form.year" placeholder="请输入" clearable></el-input>
<el-form-item label="学科分类" prop="sub">
<el-select v-model="form.sub" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.lab_sub" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="实验名称">
<el-input v-model="form.year" placeholder="请输入" clearable></el-input>
<el-form-item label="实验分类">
<el-select v-model="form.experimentClassify" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.experiment_classify" :key="dict.value"
:label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="20">
<el-col :span="10">
<el-form-item label="实验名称">
<el-input v-model="form.experimentName" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="章节内容">
<el-input v-model="form.year" placeholder="请输入" clearable></el-input>
<el-input v-model="form.chapterContent" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel"> 取 消 </el-button>
</div>
</el-dialog>
......@@ -96,12 +114,22 @@
</template>
<script>
import {
getExperimentPlan,
getExperimentPlaxq,
} from '@/api/smartSchool/laboratoryManagement/experimentalPlan'
export default {
name: 'index',
dicts: ['experiment_classify', 'lab_sub'],
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
schoolYear: '',
grade: '',
experimentClassify: '',
},
//表格数据
tableData: [
......@@ -109,8 +137,6 @@ export default {
}
],
//查看弹窗表格
ExperimentalData: [],
form: {
},
......@@ -121,28 +147,46 @@ export default {
//弹窗
dialogTableVisible: false,
total: 0,
isEdit: false,
}
},
created() {
this.getList();
},
methods: {
getList() {
getExperimentPlan(this.queryForm).then(response => {
this.tableData = response.rows;
console.log('response', response);
this.total = response.total
this.loading = false
})
},
resetQuery() {
this.queryForm = {
schoolYear: '',
grade: '',
experimentClassify: '',
};
this.getList();
},
//查看按钮操作
handleLook() {
handleLook(row) {
this.dialogTableVisible = true;
const id = row.id || this.ids;
getExperimentPlaxq(id).then(response => {
this.form = response.data;
this.isEdit = true;
console.log('this.tableData', this.tableData);
this.loading = false
})
},
//取消按钮
cancel() {
this.dialogTableVisible = false;
},
//提交按钮
submitForm() {
}
},
}
</script>
......
......@@ -4,12 +4,13 @@
<el-form-item label="实验级部">
<el-input v-model="queryForm.grade" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="实验级部">
<el-input v-model="queryForm.grade" placeholder="请输入"></el-input>
<el-form-item label="实验室名称">
<el-input v-model="queryForm.experimentName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="预约时间段">
<el-date-picker v-model="queryForm.time" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" value-format="yyyy-MM-dd">
end-placeholder="结束日期" value-format="yyyy-MM-dd"
:value="[queryForm.plannedStartTime, queryForm.plannedEndTime]">
</el-date-picker>
</el-form-item>
<el-form-item>
......@@ -19,15 +20,32 @@
</el-form>
<el-table :data="tableData" border style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="subject" label="学科" />
<el-table-column align="center" prop="sub" label="学科">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.lab_sub, row.sub) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="grade" label="级部" />
<el-table-column align="center" prop="time" label="学年" />
<el-table-column align="center" prop="name" label="规划时间" />
<el-table-column align="center" prop="name" label="实验名称" />
<el-table-column align="center" prop="name" label="实验分类" />
<el-table-column align="center" prop="time" label="实验用品" />
<el-table-column align="center" prop="name" label="实验室" />
<el-table-column align="center" prop="name" label="申报状态" />
<el-table-column align="center" prop="schoolYear" label="学年" />
<el-table-column align="center" prop="plannedTime" label="计划时间" />
<el-table-column align="center" prop="experimentName" label="实验名称" />
<el-table-column align="center" prop="experimentClassify" label="实验分类">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.experiment_classify, row.experimentClassify) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="experimentUseGoods" label="实验用品" />
<el-table-column align="center" label="实验室">
<template slot-scope="scope">
<!-- 构造一个新的字符串列表,然后将它们用逗号分隔 -->
{{ scope.row.schoolLabClassYearRelationList.map(lab => lab.labName).join(", ") }}
</template>
</el-table-column>
<el-table-column align="center" prop="declareState" label="申报状态">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.declare_state, row.declareState) }}</div>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="150">
<template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
......@@ -42,12 +60,15 @@
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="申请老师">
<el-input v-model="form.subject" placeholder="请输入" clearable />
<el-input v-model="form.applyName" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="实验分类">
<el-input v-model="form.name" placeholder="请输入" clearable />
<el-select v-model="form.experimentClassify" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.experiment_classify" :key="dict.value"
:label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
......@@ -55,12 +76,15 @@
<el-row :gutter="20">
<el-col :span="10">
<el-form-item label="实验名称">
<el-input v-model="form.year" placeholder="请输入" clearable />
<el-input v-model="form.experimentName" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="学科">
<el-input v-model="form.grade" placeholder="请输入" clearable />
<el-select v-model="form.sub" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.lab_sub" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
......@@ -69,7 +93,7 @@
<el-row :gutter="20">
<el-col :span="20">
<el-form-item label="章节内容">
<el-input v-model="form.name" placeholder="请输入" clearable></el-input>
<el-input v-model="form.chapterContent" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -83,23 +107,30 @@
</el-col>
<el-col :span="10">
<el-form-item label="学年">
<el-input v-model="form.year" placeholder="请输入" clearable />
<el-input v-model="form.schoolYear" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="20">
<el-form-item label="实验用品">
<el-input v-model="form.name" type="textarea" placeholder="请输入" clearable></el-input>
<el-input v-model="form.experimentUseGoods" type="textarea" placeholder="请输入"
clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="20">
<el-form-item label="规划时间">
<el-date-picker v-model="form.time" type="daterange" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd"
style="width: 100%;">
<el-row>
<el-col :span="10">
<el-form-item label="计划开始时间" prop="plannedStartTime">
<el-date-picker v-model="form.plannedStartTime" type="month" placeholder="选择月"
value-format="yyyy-MM" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="计划结束时间" prop="plannedEndTime">
<el-date-picker v-model="form.plannedEndTime" type="month" placeholder="选择月"
value-format="yyyy-MM" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -107,17 +138,12 @@
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="实验室选择">
<el-radio-group v-model="form.change">
<el-radio label='0'>103(空闲)</el-radio>
<el-radio label='1'>202(使用中)</el-radio>
<el-radio label='2'>302(使用中)</el-radio>
<el-radio label='3'>303(使用中)</el-radio>
<el-radio label='4'>304(空闲)</el-radio>
<!-- <el-radio label='5'>305(使用中)</el-radio>
<el-radio label='6'>401(空闲)</el-radio>
<el-radio label='7'>402(使用中)</el-radio>
<el-radio label='8'>405(空闲)</el-radio> -->
</el-radio-group>
<!-- <el-checkbox-group v-model="form.schoolLabClassYearRelationList" :disabled="nowType === 2">
<el-checkbox v-for="classItem in classList" :key="classItem.classId"
:label="classItem.classId">
{{ classItem.className }}
</el-checkbox>
</el-checkbox-group> -->
</el-form-item>
</el-col>
......@@ -137,18 +163,32 @@
</template>
<script>
import {
getLabClassYear,
getLabList,
getAllocationLab,
getLabClassYearxq,
} from '@/api/smartSchool/laboratoryManagement/gradeExperimentapp'
export default {
name: 'index',
dicts: ['experiment_classify', 'lab_sub', 'declare_state'],
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
grade: '',
experimentName: '',
plannedStartTime: '',
plannedEndTime: '',
},
//表格数据
tableData: [
{
}
],
//学科分类
options: {
......@@ -161,20 +201,39 @@ export default {
dialogTableVisible: false,
}
},
created() {
this.getList();
},
methods: {
//表单查询
getList() {
getLabClassYear(this.queryForm).then(response => {
this.tableData = response.rows
this.total = response.total
this.loading = false
})
},
//分配实验室
handleAllocation() {
getLabClassYearxq(this.queryForm).then(response => {
this.form = response.data
console.log('this.form', this.form);
this.loading = false
})
this.dialogTableVisible = true;
},
//查看按钮操作
handleLook() {
handleLook(row) {
this.dialogTableVisible = true;
const id = row.id || this.ids;
getLabClassYearxq(id).then(response => {
this.form = response.data
console.log('this.form', this.form);
this.loading = false
})
},
resetQuery() {
this.getList();
......@@ -184,7 +243,7 @@ export default {
},
// 取消按钮
cancle() {
cancel() {
this.dialogTableVisible = false;
},
......
......@@ -2,15 +2,12 @@
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="88px">
<el-form-item label="实验室">
<el-select v-model="form.name" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
<el-input v-model="queryForm.labName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="实验室状态">
<el-select v-model="form.name" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
<el-select v-model="queryForm.labState" placeholder="请选择" clearable>
<el-option v-for="dict in dict.type.lab_state" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item>
......@@ -19,68 +16,88 @@
</el-form-item>
<el-row class="mb8" :gutter="8">
<el-col :span="1.5">
<el-button size="mini" type="primary" icon="el-icon-plus" @click="handleAdd">新增
<el-button size="mini" type="primary" icon="el-icon-plus" @click="handleOption(0)"> 新增
</el-button>
</el-col>
</el-row>
</el-form>
<el-table :data="tableData" border style="width: 100%">
<el-table :data="tableData" style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="grade" label="实验室名称" />
<el-table-column align="center" prop="name" label="实验室学科" />
<el-table-column align="center" prop="address" label="实验室负责人" />
<el-table-column align="center" prop="grade" label="实验室状态" />
<el-table-column align="center" prop="labName" label="实验室名称" />
<el-table-column align="center" prop="labSub" label="实验室学科">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.lab_sub, row.labSub) }}</div>
</template>
</el-table-column>
<el-table-column align="center" prop="inChargeName" label="实验室负责人" />
<el-table-column align="center" prop="labUseGoods" label="实验用品" />
<el-table-column align="center" prop="labState" label="实验室状态">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.lab_state, row.labState) }}</div>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="180">
<template slot-scope="scope">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
<el-button @click="handleEdit(scope.row)" type="text" size="small">修改</el-button>
<el-button @click="handleDelete(scope.row)" type="text" size="small">删除</el-button>
<template slot-scope="{ row }">
<div>
<el-button type="text" size="small" @click="handleOption(2, row)">查看</el-button>
<el-button type="text" size="small" @click="handleOption(1, row)">修改</el-button>
<el-button type="text" size="small" @click="handleDelete(row.id)">删除</el-button>
<el-button @click="handleRecord(scope.row)" type="text" size="small">查看记录</el-button>
</div>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList" />
<!-- 新增/修改/查看弹窗 -->
<el-dialog :title="title" :visible.sync="dialogTableVisible" width="60%">
<el-form :model="form" ref="form" size="small" label-width="98px">
<el-dialog title="详细信息" :visible.sync="dialogTableVisible" width="60%">
<el-form :model="form" ref="form" size="small" :rules="rules" label-width="98px">
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="实验名称">
<el-input v-model="form.name" placeholder="请输入" clearable></el-input>
<el-form-item label="实验名称" prop="labName">
<el-input v-model="form.labName" placeholder="请输入" clearable
:disabled="nowType === 2"></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="学科">
<el-select v-model="form.subject" placeholder="请选择" style="width: 100%;">
<el-option v-for="item in options" :key="item.value" :label="item.label"
:value="item.value">
</el-option>
<el-form-item label="学科" prop="labSub">
<el-select v-model="form.labSub" placeholder="请选择" clearable style="width: 100%;"
:disabled="nowType === 2">
<el-option v-for="(item, index) in subList" :key="index" :label="item.dictLabel"
:value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="负责人">
<el-input v-model="form.name" placeholder="请输入" clearable></el-input>
<el-form-item label="负责人" prop="inChargeId">
<el-select v-model="form.inChargeId" placeholder="请选择" style="width: 100%;"
:disabled="nowType === 2">
<el-option v-for="item in adminList" :key="item.userId" :label="item.userName"
:value="item.userId">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="状态">
<el-radio-group v-model="form.states">
<el-radio label='0'>良好</el-radio>
<el-radio label='1'>正常</el-radio>
<el-radio label='2'>待检查</el-radio>
<el-form-item label="状态" prop="labState">
<el-radio-group v-model="form.labState" style="width: 100%;" :disabled="nowType === 2">
<el-radio label="1">良好</el-radio>
<el-radio label="2">正常</el-radio>
<el-radio label="3">待检查</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="20">
<el-form-item label="实验用品">
<el-input v-model="form.name" type="textarea" placeholder="请输入" clearable></el-input>
<el-form-item label="实验用品" prop="labUseGoods">
<el-input v-model="form.labUseGoods" type="textarea" placeholder="请输入" clearable
:disabled="nowType === 2"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -90,6 +107,7 @@
<el-button @click="cancel"> 取 消 </el-button>
</div>
</el-dialog>
<!-- 查看记录弹窗 -->
<el-dialog :title="title" :visible.sync="open" width="80%">
<el-form :model="form" ref="form" size="small" label-width="89px">
......@@ -152,73 +170,188 @@
</template>
<script>
import {
addSchoolLab,
getSchoolLab,
updateSchoolLab,
deleteSchoolLab,
departUser,
subSchoolLab,
getSchoolLabxq,
} from '@/api/smartSchool/laboratoryManagement/laboratoryManagementlist'
export default {
name: 'index',
dicts: ['lab_state', 'lab_sub'],
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
labName: '',
labState: '',
},
//表格数据
tableData: [
{
}
],
nowType: 0, // 0新增、1修改、2查看
// 弹出层标题
title: '',
//查看弹窗表格
ExperimentalData: [],
form: {
id: '',
labName: '',
labSub: '',
inChargeId: '',
inChargeName: '',
labState: '',
labUseGoods: '',
},
//实验分类下拉框
options: {
},
//学科列表
subList: [],
rules: {
labName: [
{ required: true, message: "实验名称不能为空", trigger: "blur" }
],
labSub: [
{ required: true, message: "学科不能为空", trigger: "blur" }
],
inChargeId: [
{ required: true, message: "负责人不能为空", trigger: "blur" }
],
labState: [
{ required: true, message: "状态不能为空", trigger: "blur" }
],
labUseGoods: [
{ required: true, message: "实验用品不能为空", trigger: "blur" }
],
},
//弹窗
dialogTableVisible: false,
//查看记录弹窗
open: false,
//负责人下拉框
adminList: [],
total: 0,
}
},
created() {
this.getList();
},
methods: {
getList() {
getSchoolLab(this.queryForm).then(response => {
this.tableData = response.rows
this.total = response.total
this.loading = false
})
},
resetQuery() {
this.queryForm = {
};
this.getList();
},
//负责人下拉框
getAdmin() {
departUser().then(res => {
if (res.code === 200) {
this.adminList = res.data;
console.log(this.adminList, 'this.adminList');
}
});
},
//弹窗搜索
getListtc() {
},
// 表单重置
reset() {
this.form = {
id: undefined,
labName: undefined,
labSub: undefined,
inChargeId: undefined,
inChargeName: undefined,
labState: undefined,
labUseGoods: undefined,
};
this.resetForm("form");
},
//弹窗重置
resetQuerytc() {
this.getListtc();
},
//查看按钮操作
handleLook() {
this.dialogTableVisible = true;
this.title = "实验室查看";
},
//修改按钮操作
handleEdit() {
// 0新增、1修改、2查看
handleOption(type, row) {
this.form = {
id: '',
labName: '',
labSub: '',
inChargeId: '',
inChargeName: '',
labState: '',
labUseGoods: '',
}
this.nowType = type;
this.getAdmin();
this.getSub();
if (type != 0) {
const id = row.id
getSchoolLabxq(id).then(response => {
if (response.code == 200) {
console.log(response);
Object.keys(this.form).forEach(key => {
if (response.data[key]) {
this.$set(this.form, key, response.data[key]);
}
})
}
})
}
this.dialogTableVisible = true;
this.title = "实验室修改";
},
//删除按钮操作
handleDelete() {
handleDelete(id) {
this.$confirm("此操作将永久删除该数据,是否继续?", '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteSchoolLab(id).then(res => {
if (res.code == 200) {
this.$message.success("删除成功!")
}
this.getList()
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除!'
});
});
},
//新增按钮操作
handleAdd() {
this.dialogTableVisible = true;
this.title = "实验室新增";
//查询学科
getSub() {
subSchoolLab().then(response => {
this.loading = false;
this.subList = response.data;
console.log('this.subList', this.subList);
});
},
//查看记录操作
handleRecord() {
this.open = true;
......@@ -227,11 +360,32 @@ export default {
//取消按钮
cancel() {
this.dialogTableVisible = false;
this.reset();
},
//提交按钮
submitForm() {
submitForm: function () {
const inChargeId = this.form.inChargeId
this.form.inChargeName = inChargeId == '' ? '' : this.adminList.find(item => item.userId == inChargeId).userName
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != "") {
updateSchoolLab(this.form).then(response => {
console.log('this.form', this.form);
this.$modal.msgSuccess("修改成功");
this.dialogTableVisible = false;
this.getList();
});
} else {
addSchoolLab(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.dialogTableVisible = false;
this.getList();
});
}
}
});
},
},
......
......@@ -14,7 +14,6 @@
<el-option label="上学期" value="0"></el-option>
<el-option label="下学期" value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment