Commit 1222aa5b by zhaopanyu

zpy 9.7

parent 3b47933a
import request from "@/utils/request";
// 查看列表
export function getTeacherlabList(query) {
return request({
url: "/schoolTeacherLabApply/list",
method: "get",
params: query,
});
}
// 查看详情
export function getTeacherLab(id) {
return request({
url: "/schoolTeacherLabApply/" + id,
method: "get",
});
}
//附件上传
export function uploadFile(data) {
return request({
url: "/common/upload",
method: "post",
data: data,
});
}
//上传附件
export function uploadFilelist(data) {
return request({
url: "/schoolTeacherLabApply/attachment",
method: "put",
data: data,
});
}
import request from "@/utils/request";
// 查看实验室安排列表
export function getLabplan(query) {
export function getTeacherlabList(query) {
return request({
url: "/schoolLabClassYear/getTeacherLabList",
method: "get",
params: query,
});
}
//新增年级实验室预约
export function addLabplan(data) {
//获取当前学年+学期
export function getSemester() {
return request({
url: "/schoolLabClassYear/add",
method: "post",
data,
url: "/experimentPlan/getSemester",
method: "get",
});
}
// 修改年级实验室预约
export function updateLabplan(data) {
//新增年级实验室预约
export function addSchoolLab(data) {
return request({
url: "/schoolLabClassYear/edit",
method: "put",
url: "/schoolLabClassYear/add",
method: "post",
data,
});
}
//删除年级实验室预约
export function deleteLabplan(id) {
// 查询实验室使用状态
export function getTeacherLab(query) {
return request({
url: "/schoolLabClassYear/" + id,
method: "post",
url: "/schoolTeacherLabApply/getTeacherLab",
method: "get",
params: query,
});
}
// 查询年级实验室预约列表
export function getLabplanlist(query) {
// 获取班级
export function getTeacherClass(query) {
return request({
url: "/schoolLabClassYear/list",
url: "/schoolTeacherLabApply/getTeacherClass",
method: "get",
params: query,
});
}
// 查询年级实验室详细信息
export function getLabplanxq(id) {
// 教师申请实验室
export function schoolTeacherapply(data) {
return request({
url: "/schoolLabClassYear/" + id,
method: "get",
url: "/schoolTeacherLabApply/add",
method: "post",
data,
});
}
//获取当前学年+学期
export function getSemester() {
// 教师申请实验室
export function getTeacherLabxq(id) {
return request({
url: "/experimentPlan/getSemester",
url: "/schoolLabClassYear/" + id,
method: "get",
});
}
import request from "@/utils/request";
//获取学年+学期
export function getNewYear(data) {
return request({
url: "/experimentPlan/getSemester",
method: "get",
data,
});
}
// 查询级部
export function getGrade() {
return request({
url: "/experimentPlan/getGrade",
method: "get",
});
}
//新增个人实验申请
export function addExperimentPlan(data) {
return request({
url: "/schoolTeacherExperimentApply/add",
method: "post",
data,
});
}
// 修改个人实验申请
export function updateExperimentPlan(data) {
return request({
url: "/schoolTeacherExperimentApply/edit",
method: "put",
data,
});
}
// 删除个人实验申请
export function deleteExperimentPlan(id) {
return request({
url: "/schoolTeacherExperimentApply/" + id,
method: "post",
});
}
// 查询实验计划列表
export function getExperimentPlan(query) {
return request({
url: "/experimentPlan/list",
params: query,
});
}
// 查询个人实验申请列表
export function getApplylist(query) {
return request({
url: "/schoolTeacherExperimentApply/list",
method: "get",
params: query,
});
}
//查看详情
export function getListxq(id) {
return request({
url: "/schoolTeacherExperimentApply/" + id,
method: "get",
});
}
......@@ -9,9 +9,9 @@ export function getNewYear(data) {
});
}
// 查询级部
export function getGrade(schoolYear) {
export function getGrade() {
return request({
url: "/experimentPlan/getGrade/" + schoolYear,
url: "/experimentPlan/getGrade",
method: "get",
});
}
......
import request from "@/utils/request";
// 查看列表
export function getTeacherList(query) {
return request({
url: "/schoolTeacherExperimentApply/getTeacherList",
method: "get",
params: query,
});
}
// 获取实验室
export function getLabList(plannedStartTime, plannedEndTime) {
return request({
url: `/schoolLabClassYear/getLabList?plannedStartTime=${plannedStartTime}&plannedEndTime=${plannedEndTime}`,
method: "get",
});
}
// 分配实验室
export function getExperimentLabs(data) {
return request({
url: "/schoolTeacherExperimentApply/teacherExperimentLabs",
method: "post",
data,
});
}
// 查看详情
export function getTeacherapplyxq(id) {
return request({
url: "/schoolTeacherExperimentApply/detail/" + id,
method: "get",
});
}
import request from "@/utils/request";
// 查看列表
export function getList(query) {
return request({
url: "/experimentPlan/getExperimentRecord",
method: "get",
params: query,
});
}
import request from "@/utils/request";
//新增实验室竞赛
export function addCompetition(data) {
return request({
url: "/schoolLabCompetition/add",
method: "post",
data,
});
}
// 修改实验室竞赛
export function updateCompetition(data) {
return request({
url: "/schoolLabCompetition/edit",
method: "put",
data,
});
}
// 查看实验室竞赛列表
export function getCompetition(query) {
return request({
url: "/schoolLabCompetition/list",
method: "get",
params: query,
});
}
// 查看详情
export function getCompetitionxq(id) {
return request({
url: "/schoolLabCompetition/" + id,
method: "get",
});
}
// 删除实验室
export function deleteCompetition(id) {
return request({
url: "/schoolLabCompetition/" + id,
method: "post",
});
}
import request from "@/utils/request";
// 查看列表
export function getList(query) {
return request({
url: "/experimentPlan/countExperimentLabAdmin",
method: "get",
params: query,
});
}
// 查看班级完成详情
export function getTeacherxq(query) {
return request({
url: "/experimentPlan/getClassDetails",
method: "get",
params: query,
});
}
//获取当前学年+学期
export function getSemester() {
return request({
url: "/experimentPlan/getSemester",
method: "get",
});
}
//级部下拉框
export function getGrade() {
return request({
url: "/experimentPlan/getGradeList",
method: "get",
});
}
......@@ -55,3 +55,11 @@ export function subSchoolLab() {
method: "get",
});
}
//查看班级完成详情
export function getClassDetails(query) {
return request({
url: "/schoolTeacherLabApply/getLabUserDetial",
method: "get",
params: query,
});
}
import request from "@/utils/request";
// 查看列表
export function getList(query) {
return request({
url: "/experimentPlan/countExperiment",
method: "get",
params: query,
});
}
// 查看班级完成详情
export function getTeacherxq(query) {
return request({
url: "/experimentPlan/getClassDetails",
method: "get",
params: query,
});
}
//获取当前学年+学期
export function getSemester() {
return request({
url: "/experimentPlan/getSemester",
method: "get",
});
}
import request from "@/utils/request";
// 查看列表
export function getList(query) {
return request({
url: "/experimentPlan/getExperimentRecord",
method: "get",
params: query,
});
}
<template>
<div class="upload-file">
<el-upload multiple :action="uploadFileUrl" :before-upload="handleBeforeUpload" :file-list="fileList" :limit="limit"
:on-error="handleUploadError" :on-exceed="handleExceed" :on-success="handleUploadSuccess" :show-file-list="false"
:headers="headers" class="upload-demo" drag ref="fileUpload">
<!-- 上传按钮 -->
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
</el-upload>
<!-- 文件列表 -->
<transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
<li :key="file.fjlj" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList">
<el-link :href="`${baseUrl}${file.fjlj}`" :underline="false" target="_blank">
<!-- <span class="el-icon-document"> {{ getFileName(file.name) }} </span> -->
<span class="el-icon-document"> {{ file.fjmc }} </span>
</el-link>
<!-- <div class="ele-upload-list__item-content-action">
<el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link>
</div> -->
<div class="ele-upload-list__item-content-action" style="float: right">
<el-link style="margin-left: 15px" :underline="false" @click="handleDelete(index)" type="danger">删除</el-link>
</div>
</li>
</transition-group>
</div>
</template>
<script>
import { getToken } from "@/utils/auth";
export default {
name: "FileUploadNew",
props: {
// 值
value: [String, Object, Array],
// 数量限制
limit: {
type: Number,
default: 5,
},
// 大小限制(MB)
// fileSize: {
// type: Number,
// default: 5,
// },
// 文件类型, 例如['png', 'jpg', 'jpeg']
fileType: {
type: Array,
default: () => ["doc", "xls", "ppt", "txt", "pdf", 'png', 'jpg', 'jpeg'],
},
// 是否显示提示
isShowTip: {
type: Boolean,
default: true
}
},
data() {
return {
number: 0,
uploadList: [],
baseUrl: process.env.VUE_APP_BASE_API,
uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址
headers: {
Authorization: "Bearer " + getToken(),
},
fileList: [],
};
},
watch: {
value: {
handler(val) {
if (val) {
let temp = 1;
// 首先将值转为数组
const list = Array.isArray(val) ? val : this.value.split(',');
// 然后将数组转为对象数组
this.fileList = list.map(item => {
if (typeof item === "string") {
item = { fjmc: item, fjlj: item };
}
item.uid = item.uid || new Date().getTime() + temp++;
return item;
});
} else {
this.fileList = [];
return [];
}
},
deep: true,
immediate: true
}
},
computed: {
// 是否显示提示
showTip() {
return this.isShowTip && (this.fileType || this.fileSize);
},
},
methods: {
// 上传前校检格式和大小
handleBeforeUpload(file) {
// 校检文件类型
if (this.fileType) {
let fileExtension = "";
if (file.name.lastIndexOf(".") > -1) {
fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1);
}
const isTypeOk = this.fileType.some((type) => {
if (file.type.indexOf(type) > -1) return true;
if (fileExtension && fileExtension.indexOf(type) > -1) return true;
return false;
});
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`);
return false;
}
}
// 校检文件大小
if (this.fileSize) {
const isLt = file.size / 1024 / 1024 < this.fileSize;
if (!isLt) {
this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize} MB!`);
return false;
}
}
this.$modal.loading("正在上传文件,请稍候...");
this.number++;
return true;
},
// 文件个数超出
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
// 上传失败
handleUploadError(err) {
this.$modal.msgError("上传图片失败,请重试");
this.$modal.closeLoading()
},
// 上传成功回调
handleUploadSuccess(res, file) {
console.log('res', res);
console.log('file', file);
if (res.code === 200) {
// this.uploadList.push({ fjmc: file.res.originalFilename, fjlj: file.res.url });
this.uploadList.push({ fjmc: res.originalFilename, fjlj: res.fileName });
this.uploadedSuccessfully();
} else {
this.number--;
this.$modal.closeLoading();
this.$modal.msgError(res.msg);
this.$refs.fileUpload.handleRemove(file);
this.uploadedSuccessfully();
}
},
// 删除文件
handleDelete(index) {
console.log('this.fileList', this.fileList);
this.fileList.splice(index, 1);
// this.$emit("input", this.listToString(this.fileList));
this.$emit("input", this.fileList);
},
// 上传结束处理
uploadedSuccessfully() {
if (this.number > 0 && this.uploadList.length === this.number) {
this.fileList = this.fileList.concat(this.uploadList);
this.uploadList = [];
this.number = 0;
// this.$emit("input", this.listToString(this.fileList));
this.$emit("input", this.fileList);
this.$modal.closeLoading();
}
},
// 获取文件名称
getFileName(name) {
if (name.lastIndexOf("/") > -1) {
return name.slice(name.lastIndexOf("/") + 1);
} else {
return "";
}
},
// 对象转成指定字符串分隔
listToString(list, separator) {
let strs = "";
separator = separator || ",";
for (let i in list) {
strs += list[i].url + separator;
}
return strs != '' ? strs.substr(0, strs.length - 1) : '';
}
}
};
</script>
<style scoped lang="scss">
.upload-file-uploader {
margin-bottom: 5px;
}
.upload-file-list .el-upload-list__item {
border: 1px solid #e4e7ed;
line-height: 2;
margin-bottom: 10px;
position: relative;
}
.upload-file-list .ele-upload-list__item-content {
display: flex;
justify-content: space-between;
align-items: center;
color: inherit;
}
.ele-upload-list__item-content-action .el-link {
margin-right: 10px;
}
</style>
<template>
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="88px">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="108px">
<el-form-item label="实验名称">
<el-input v-model="queryForm.grade" placeholder="请输入"></el-input>
<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">
<el-form-item label="计划开始时间" prop="plannedStartTime">
<el-date-picker v-model="form.startTime" type="month" placeholder="选择月" value-format="yyyy-MM">
</el-date-picker>
</el-form-item>
<el-form-item label="计划结束时间" prop="plannedEndTime">
<el-date-picker v-model="form.endTime" type="month" placeholder="选择月" value-format="yyyy-MM">
</el-date-picker>
</el-form-item>
<el-form-item label="申报状态">
<el-input v-model="queryForm.states" placeholder="请输入"></el-input>
<el-select v-model="queryForm.applyState" placeholder="请选择" clearable>
<el-option v-for="dict in dict.type.declare_state" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
......@@ -19,21 +28,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="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="grade" label="实验名称" />
<el-table-column align="center" prop="time" 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="sub" label="学科" />
<el-table-column align="center" prop="schoolYearSemester" label="学年" />
<el-table-column align="center" prop="className" label="班级" />
<el-table-column align="center" prop="experimentTime" label="实验时间" />
<el-table-column align="center" prop="section" 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="labName" label="实验室" />
<el-table-column align="center" prop="chapterContent" label="章节内容" />
<el-table-column align="center" prop="schoolAccessoryList" label="附件">
<template slot-scope="scope">
<div v-for="(accessory, index) in scope.row.accessoryList" :key="index">
<a :href="baseUrl + accessory.accessoryUrl" target="_blank">{{ accessory.accessoryName }}</a>
</div>
</template>
</el-table-column>
<el-table-column align="center" prop="applyState" 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>
<el-button @click="handleUpload(scope.row)" type="text" size="small">上传附件</el-button>
<el-button size="small" type="text" @click="upload.open = true">导入</el-button>
</template>
</el-table-column>
......@@ -44,83 +64,94 @@
<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.sub" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="级部">
<el-input v-model="form.name" placeholder="请输入" clearable />
<el-input v-model="form.grade" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="学年">
<el-input v-model="form.group" placeholder="请输入" clearable />
<el-input v-model="form.schoolYear" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="班级">
<el-input v-model="form.year" placeholder="请输入" clearable />
<el-input v-model="form.grade" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="实验时间">
<el-input v-model="form.grade" placeholder="请输入" clearable />
<el-input v-model="form.experimentTime" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="节次">
<el-input v-model="form.class" placeholder="请输入" clearable />
<el-input v-model="form.section" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="实验名称">
<el-input v-model="form.content" placeholder="请输入" clearable />
<el-input v-model="form.labName" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="实验分类">
<el-input v-model="form.grade" placeholder="请输入" clearable />
<el-input v-model="form.experimentClassify" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="实验室">
<el-input v-model="form.class" placeholder="请输入" clearable />
<el-input v-model="form.labName" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="章节内容">
<el-input v-model="form.class" placeholder="请输入" clearable />
<el-input v-model="form.chapterContent" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="附件">
<el-input v-model="form.class" placeholder="请输入" clearable />
<li class="el-upload-list__item ele-upload-list__item-content" v-for="file in fileList"
:key="file.id">
<el-link :href="`${baseUrl}${file.accessoryUrl}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ file.accessoryName }} </span>
</el-link>
</li>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="申报状态">
<el-input v-model="form.class" placeholder="请输入" clearable />
<el-input v-model="form.state" placeholder="请输入" clearable />
</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 type="primary" @click="cancle">取 消</el-button>
</div>
</el-dialog>
<!-- 导入弹出框 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<FileUploadlab @input="getFileList" :limit="1" :value="fileList"></FileUploadlab>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList" />
......@@ -128,18 +159,36 @@
</template>
<script>
import { getToken } from "@/utils/auth";
import {
getTeacherlabList,
getTeacherLab,
uploadFile,
uploadFilelist,
} from '@/api/smartSchool/classTeacherWork/laboratoryManagement/laboratoryApplicationrecords';
import FileUploadlab from '@/components/FileUploadlab';
export default {
dicts: ['experiment_classify', 'lab_sub', 'declare_state'],
name: 'index',
components: {
FileUploadlab
},
data() {
return {
baseUrl: process.env.VUE_APP_BASE_API,
queryForm: {
},
accessoryUrl: '',
accessoryName: '',
schoolAccessoryList: [],
fileList: [],
//表格数据
tableData: [
{
}
],
//学科分类
options: {
......@@ -148,32 +197,78 @@ export default {
form: {
},
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url:
process.env.VUE_APP_BASE_API + "/common/upload",
},
total: 0,
dialogTableVisible: false,
}
},
created() {
this.getList();
},
methods: {
//表单查询
getList() {
getTeacherlabList().then(res => {
if (res.code == 200) {
this.tableData = res.rows;
this.tableData = res.rows.map(item => {
item.accessoryList = item.schoolAccessoryList; // 将附件信息赋值给accessoryList属性
return item;
});
console.log(this.tableData, 'this.tableData');
}
})
},
//分配实验室
handleAllocation() {
this.dialogTableVisible = true;
},
//查看按钮操作
handleLook() {
handleLook(row) {
this.dialogTableVisible = true;
const id = row.id || this.ids
getTeacherLab(id).then(response => {
this.form = response.data;
this.fileList = response.data.schoolAccessoryList;
})
},
resetQuery() {
this.getList();
},
//提交按钮
submitForm() {
submitFileForm(data) {
console.log("getFileList", data);
// 将 fileList 中的数据转换成 schoolAccessoryList 格式的数组
const schoolAccessoryList = this.fileList.map(item => ({
accessoryUrl: item.originalFilename,
accessoryName: item.url
}));
// 定义请求的参数对象
const params = {
id: this.form.id,
schoolAccessoryList: schoolAccessoryList
};
// 发送上传文件列表请求
uploadFilelist(params).then(response => {
console.log(params);
console.log("schoolAccessoryList", schoolAccessoryList);
});
},
//上传附件按钮操作
handleUpload() {
......@@ -182,9 +277,29 @@ export default {
cancle() {
this.dialogTableVisible = false;
},
//上传按钮
getFileList(data) {
console.log('data', data);
this.fileList = data;
if (this.fileList.length !== 0) {
const file = data[0]; // 获取第一个文件的信息
console.log('file', file);
this.accessoryUrl = file.originalFilename;
this.accessoryName = file.url;
console.log(this.accessoryUrl, this.accessoryName);
} else {
this.form.accessoryUrl = '';
this.form.accessoryName = '';
}
},
}
},
}
</script>
<style lang="scss" scoped></style>
\ No newline at end of file
<template>
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="88px">
<el-form-item label="学科分类">
<el-input v-model="queryForm.class" 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">
<el-form-item label="学期">
<el-date-picker v-model="queryForm.schoolYear" type="year" value-format="yyyy" placeholder="选择年">
</el-date-picker>
<el-select v-model="queryForm.semester" placeholder="请选择学期">
<el-option label="上学期" value="1"></el-option>
<el-option label="下学期" value="2"></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 label="实验名称">
<el-input v-model="queryForm.experimentName" placeholder="请输入实验名称" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
......@@ -22,15 +25,25 @@
</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="学科" />
<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="time" label="实验分类" />
<el-table-column align="center" prop="content" label="章节内容" />
<el-table-column align="center" prop="name" 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="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="chapterContent" label="章节内容" />
<el-table-column align="center" prop="schoolLabClassYearRelationList" label="实验室">
<template slot-scope="scope">
<div v-if="scope.row.schoolLabClassYearRelationList">
{{ scope.row.schoolLabClassYearRelationList.map(lab => lab.labName).join(", ") }}
</div>
</template>
</el-table-column>
<el-table-column align="center" prop="experimentUseGoods" label="实验用品" />
<el-table-column align="center" fixed="right" label="操作" width="150">
<template slot-scope="scope">
<el-button @click="handleApply(scope.row)" type="text" size="small">申请</el-button>
......@@ -41,72 +54,78 @@
<el-dialog title="教师实验室申请" :visible.sync="dialogTableVisible" width="70%">
<el-form :model="form" ref="form" size="small" label-width="100px">
<el-row :gutter="30">
<el-col :span="12">
<el-col :span="10">
<el-form-item label="实验名称">
<el-input v-model="form.name" placeholder="请输入" clearable />
<el-input v-model="form.experimentName" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="10">
<el-form-item label="实验内容">
<el-input v-model="form.content" placeholder="请输入" clearable />
<el-input v-model="form.chapterContent" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-col :span="10">
<el-form-item label="实验分类">
<el-input v-model="form.year" placeholder="请输入" clearable />
<el-input v-model="form.experimentClassify" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="10">
<el-form-item label="学科">
<el-input v-model="form.grade" placeholder="请输入" clearable />
<el-input v-model="form.sub" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-col :span="10">
<el-form-item label="级部">
<el-input v-model="form.year" placeholder="请输入" clearable />
<el-input v-model="form.grade" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="10">
<el-form-item label="学年">
<el-input v-model="form.grade" placeholder="请输入" clearable />
<el-input v-model="form.schoolYear" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-col :span="10">
<el-form-item label="班级">
<el-input v-model="form.year" placeholder="请输入" clearable />
<el-select v-model="form.classId" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="(item, index) in classData" :key="index" :label="item.className"
:value="item.classId"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-col :span="10">
<el-form-item label="节次">
<el-input v-model="form.grade" placeholder="请输入" clearable />
<el-select v-model="form.section" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.course_arrange" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="实验时间">
<el-input v-model="form.grade" placeholder="请输入" clearable />
<el-col :span="20">
<el-form-item label="申请时间" prop="experimentTime">
<el-date-picker v-model="form.experimentTime" type="date" placeholder="选择"
value-format="yyyy-MM-dd" style="width: 100%;" @change="getTeacherLab">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12" style="display: flex;">
</el-row>
<el-row :gutter="30">
<el-col :span="20" style="display: flex;">
<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 v-model="form.selectedLabId">
<el-radio v-for="classItem in labList" :key="classItem.labId" :label="classItem.labId">
{{ classItem.labName }} - {{ classItem.useState }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
......@@ -130,48 +149,203 @@
</template>
<script>
import {
getTeacherlabList,// 查看实验室安排列表
getSemester,//获取当前学年+学期
getTeacherLab,// 查询实验室使用状态
getTeacherClass,// 获取班级
schoolTeacherapply,// 教师申请实验室
getTeacherLabxq
} from '@/api/smartSchool/classTeacherWork/laboratoryManagement/laboratoryArrangements';
import {
getLabplanxlk,//获取实验名称下拉框
} from '@/api/smartSchool/gradeWork/laboratoryManagement/laboratoryAppointment';
export default {
dicts: ['experiment_classify', 'course_arrange'],
name: 'index',
data() {
return {
queryForm: {
declareState: "",
schoolYear: "",
semester: "",
experimentClassify: "",
experimentName: "",
},
//班级
classData: [],
//实验名称
experimentList: [],
//实验室
labList: [],
//表格数据
tableData: [
{
}
],
selectedLabId: null,
//学科分类
options: {
},
form: {
labClassYearId: "",
classId: "",
experimentTime: "",
section: "",
},
total: 0,
dialogTableVisible: false,
}
},
created() {
this.getList();
this.getExperimentName();
this.getSemester();
},
methods: {
//表单查询
getList() {
async getList() {
await this.getSemester(); // 等待获取当前学期和学年的值
const params = {
declareState: '3',
semester: this.queryForm.semester,
schoolYear: this.queryForm.schoolYear,
experimentClassify: this.queryForm.experimentClassify,
experimentName: this.queryForm.experimentName,
};
try {
const response = await getTeacherlabList(params);
console.log(this.queryForm, 'this.queryForm');
this.tableData = response.rows;
console.log('response', response);
this.total = response.total;
this.loading = false;
} catch (error) {
console.error(error);
}
},
//获取当前学期
async getSemester() {
try {
const res = await getSemester();
this.queryForm.semester = res.semester;
this.queryForm.schoolYear = res.schoolYear + '';
console.log(this.queryForm.schoolYear, typeof res.schoolYear);
} catch (error) {
console.error(error);
}
},
//获取实验室使用情况
getTeacherLab() {
const params = {
labClassYearId: this.form.id,
classId: this.form.classId,
experimentTime: this.form.experimentTime,
section: this.form.section,
};
console.log(params);
getTeacherLab(params).then(response => {
this.labList = response.data;
console.log('response', response);
this.loading = false
})
},
//获取班级
getClasslist() {
const params = {
experimentPlanId: this.form.experimentPlanId,
}
getTeacherClass(params).then(response => {
console.log('获取班级', params);
this.classData = response.data;
console.log('response', response);
this.loading = false
})
},
// 获取实验名称下拉框
getExperimentName() {
getLabplanxlk().then(response => {
this.experimentList = response.data;
console.log('this.experimentList', this.experimentList);
this.loading = false
})
},
//查看按钮操作
handleApply() {
this.dialogTableVisible = true;
handleApply(row) {
this.reset();
const id = row.id || this.ids;
getTeacherLabxq(id).then(response => {
this.form = response.data;
this.form.experimentPlanId = response.data.experimentPlanId;
console.log(this.form.experimentPlanId);
console.log('response', response);
this.loading = false;
this.getClasslist();
this.dialogTableVisible = true;
});
},
// 表单重置
reset() {
this.form = {
labClassYearId: "",
experimentPlanId: "",
experimentName: "",
chapterContent: "",
experimentClassify: "",
sub: "",
gradeId: "",
grade: "",
schoolYea: "",
semester: "",
classId: "",
section: "",
experimentTime: "",
labId: "",
remark: "",
};
this.resetForm("form");
},
resetQuery() {
this.getList();
},
//提交按钮
/** 提交按钮 */
submitForm() {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != null) {
const params = {
labClassYearId: this.form.id,
experimentPlanId: this.form.experimentPlanId,
experimentName: this.form.experimentName,
chapterConten: this.form.chapterConten,
experimentClassify: this.form.experimentClassify,
sub: this.form.sub,
gradeId: this.form.gradeId,
grade: this.form.grade,
schoolYear: this.form.schoolYear,
semester: this.form.semester,
classId: this.form.classId,
section: this.form.section,
experimentTime: this.form.experimentTime,
remark: this.form.experimentPlanId,
labId: this.form.selectedLabId, // 修改为单选的实验室ID
};
schoolTeacherapply(params)
.then(response => {
this.$modal.msgSuccess('提交成功');
this.dialogTableVisible = false;
this.getList();
});
}
}
});
},
// 取消按钮
cancle() {
this.dialogTableVisible = false;
......
......@@ -2,14 +2,18 @@
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="88px">
<el-form-item label="实验级部">
<el-input v-model="queryForm.grade" placeholder="请输入"></el-input>
<el-select v-model="queryForm.gradeId" placeholder="请选择级部" clearable>
<el-option v-for="(item, index) in gradeList" :key="index" :label="item.gradeName"
:value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="实验名称">
<el-input v-model="queryForm.states" placeholder="请输入"></el-input>
<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">
<el-form-item label="实验时间" prop="time">
<el-date-picker v-model="queryForm.plannedStartTime" type="date" placeholder="选择" value-format="yyyy-MM-dd">
</el-date-picker>
<el-date-picker v-model="queryForm.plannedEndTime" type="date" placeholder="选择" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item>
......@@ -18,28 +22,31 @@
</el-form-item>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
</el-col>
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleOption(0)">新增</el-button>
</el-col>
</el-row>
</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="time" label="级部" />
<el-table-column align="center" prop="name" label="学年" />
<el-table-column align="center" prop="grade" label="规划时间" />
<el-table-column align="center" prop="name" label="实验名称" />
<el-table-column align="center" prop="time" label="实验分类" />
<el-table-column align="center" prop="time" label="实验用品" />
<el-table-column align="center" prop="time" label="实验室" />
<el-table-column align="center" prop="name" label="申报状态" />
<el-table-column align="center" prop="sub" label="学科" />
<el-table-column align="center" prop="grade" 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="实验分类" />
<el-table-column align="center" prop="experimentUseGoods" label="实验用品" />
<el-table-column align="center" prop="schoolTeacherExperimentApplyLabsList" label="实验室" />
<el-table-column align="center" prop="schoolAccessoryList" label="实验结果" />
<el-table-column align="center" prop="declareState" label="申报状态" />
<el-table-column align="center" fixed="right" label="操作" width="180">
<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>
<el-button @click="handleResult(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="handleResult(scope.row)" type="text" size="small">实验结果</el-button>
</div>
</template>
</el-table-column>
......@@ -50,73 +57,154 @@
<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.sub" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="级部">
<el-input v-model="form.name" placeholder="请输入" clearable />
<el-input v-model="form.grade" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="学年">
<el-input v-model="form.group" placeholder="请输入" clearable />
<el-date-picker v-model="form.schoolYear" type="year" value-format="yyyy" placeholder="选择年"
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-form-item label="学期">
<el-select v-model="form.semester" placeholder="请选择学期" style="width: 100%;">
<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 :gutter="30">
<el-col :span="10">
<el-form-item label="实验时间">
<el-input v-model="form.grade" placeholder="请输入" clearable />
<el-form-item label="开始时间" prop="plannedStartTime">
<el-date-picker v-model="form.plannedStartTime" type="date" placeholder="选择"
value-format="yyyy-MM-dd" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="节次">
<el-input v-model="form.class" placeholder="请输入" clearable />
<el-form-item label="结束时间" prop="plannedEndTime">
<el-date-picker v-model="form.plannedEndTime" type="date" placeholder="选择" style="width: 100%;"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="实验名称">
<el-input v-model="form.content" 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.experimentClassify" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="实验用品">
<el-input v-model="form.experimentUseGoods" placeholder="请输入" clearable />
</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 type="primary" @click="cancle">取 消</el-button>
</div>
</el-dialog>
<!--查看弹窗 -->
<el-dialog title="申请信息" :visible.sync="open" width="60%">
<el-form :model="form" ref="form" size="small" label-width="110px">
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="学科">
<el-input v-model="form.sub" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="级部">
<el-input v-model="form.grade" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="实验室">
<el-input v-model="form.class" placeholder="请输入" clearable />
<el-form-item label="学年">
<el-date-picker v-model="form.schoolYear" type="year" value-format="yyyy" placeholder="选择年"
style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="章节内容">
<el-input v-model="form.class" placeholder="请输入" clearable />
<el-form-item label="学期">
<el-select v-model="form.semester" placeholder="请选择学期" style="width: 100%;">
<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 :gutter="30">
<el-col :span="10">
<el-form-item label="开始时间" prop="plannedStartTime">
<el-date-picker v-model="form.plannedStartTime" type="date" placeholder="选择"
value-format="yyyy-MM-dd" 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="date" placeholder="选择" style="width: 100%;"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="实验室选择">
<el-checkbox-group v-model="form.schoolTeacherExperimentApplyLabsList">
<el-checkbox v-for="classItem in schoolTeacherExperimentApplyLabsList"
:key="classItem.labId" :label="classItem.labId">
{{ classItem.labName }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="附件">
<el-input v-model="form.class" placeholder="请输入" clearable />
<el-form-item label="实验名称">
<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.experimentClassify" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="10">
<el-form-item label="申报状态">
<el-input v-model="form.class" placeholder="请输入" clearable />
<el-form-item label="实验用品">
<el-input v-model="form.experimentUseGoods" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
......@@ -134,53 +222,180 @@
</template>
<script>
import {
getNewYear,//获取学年+学期
getGrade,// 查询级部
addExperimentPlan,//新增个人实验申请
updateExperimentPlan,// 修改个人实验申请
deleteExperimentPlan,// 删除个人实验申请
getExperimentPlan,// 查询实验计划列表
getApplylist,// 查询个人实验申请列表
getListxq,//查看详情
} from '@/api/smartSchool/classTeacherWork/laboratoryManagement/personalLaboratoryapp';
export default {
name: 'index',
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
},
//表格数据
tableData: [
{
}
],
//学科分类
options: {
},
nowType: 0, // 0新增、1编辑、2查看
form: {
id: '',
sub: "",
gradeId: "",
grade: "",
schoolYear: "",
semester: "",
plannedStartTime: "",
plannedEndTime: "",
experimentName: "",
experimentClassify: "",
experimentUseGoods: "",
declareState: "",
},
schoolTeacherExperimentApplyLabsList: [],
//级部
gradeList: [],
total: 0,
dialogTableVisible: false,
open: false,
}
},
created() {
this.getSemesterAndList();
this.getGrade();
},
methods: {
//表单查询
async getSemesterAndList() {
await this.getSemester(); // 等待获取学年和学期信息
this.getList(); // 获取数据列表
},
getSemester() {
return new Promise((resolve, reject) => {
getNewYear()
.then(response => {
this.form.semester = response.semester;
this.form.schoolYear = response.schoolYear + '';
resolve(); // 成功获取学年和学期信息
})
.catch(error => {
console.log(error);
reject(error);
});
});
},
getList() {
getApplylist(this.queryParams)
.then(response => {
this.tableData = response.rows;
console.log('response', response);
this.total = response.total;
this.loading = false;
})
.catch(error => {
this.loading = false;
console.log(error);
});
},
//新增
handleAdd() {
//查询级部
getGrade() {
getGrade().then(response => {
this.loading = false;
this.gradeList = response.data;
console.log("this.gradeList", this.gradeList);
});
},
//修改
handleEdit() {
this.dialogTableVisible = true;
// 0新增、1修改、2查看
handleOption(type, row) {
this.form = {
id: '',
sub: "",
gradeId: "",
grade: "",
schoolYear: "",
semester: "",
plannedStartTime: "",
plannedEndTime: "",
experimentName: "",
experimentClassify: "",
experimentUseGoods: "",
declareState: "",
schoolTeacherExperimentApplyLabsList: [],
}
this.nowType = type;
if (type === 2) {
const id = row.id;
getListxq(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]);
}
});
if (
response.data.schoolTeacherExperimentApplyLabsList &&
response.data.schoolTeacherExperimentApplyLabsList.length > 0
) {
this.schoolTeacherExperimentApplyLabsList = response.data.schoolTeacherExperimentApplyLabsList;
console.log('this.form.schoolTeacherExperimentApplyLabsList', this.schoolTeacherExperimentApplyLabsList);
},
//查看按钮操作
handleLook() {
this.dialogTableVisible = true;
this.form.schoolTeacherExperimentApplyLabsList = [];
for (let i = 0; i < this.schoolTeacherExperimentApplyLabsList.length; i++) {
const labId = this.schoolTeacherExperimentApplyLabsList[i].labId;
const labName = this.schoolTeacherExperimentApplyLabsList[i].labName;
this.form.schoolTeacherExperimentApplyLabsList.push({ labId, labName }); // 将 labId 和 labName 封装为对象并添加到列表中
console.log(this.form.schoolTeacherExperimentApplyLabsList, '查看 ');
}
}
this.dialogTableVisible = true;
}
});
} else if (type === 1) {
const id = row.id;
getListxq(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.open = true;
}
},
//删除按钮操作
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: '已取消删除!'
});
});
},
resetQuery() {
this.getList();
......@@ -196,6 +411,7 @@ export default {
//取消按钮
cancle() {
this.dialogTableVisible = false;
this.open = false;
},
},
......
......@@ -14,12 +14,12 @@
</el-form-item>
</el-form>
<el-table :data="tableData" border style="width: 100%">
<el-table-column align="center" prop="teacher" label="教师" />
<el-table-column align="center" prop="year" 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="name" label="已完成实验数" />
<el-table-column align="center" prop="applyName" label="教师" />
<el-table-column align="center" prop="schoolYear" label="学年" />
<el-table-column align="center" prop="fzcount" label="分组实验" />
<el-table-column align="center" prop="sycount" label="演示实验" />
<el-table-column align="center" prop="sjcount" label="探究实验" />
<el-table-column align="center" prop="ywccount" label="已完成实验数" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
......@@ -31,6 +31,11 @@
</template>
<script>
import {
getList,
getTeacherxq,
getSemester
} from '@/api/smartSchool/laboratoryManagement/leadlaboratoryRecords'
export default {
name: 'index',
data() {
......@@ -41,7 +46,7 @@ export default {
//表格数据
tableData: [
{
}
],
......@@ -49,10 +54,48 @@ export default {
}
},
methods: {
async getSemesterAndList() {
await this.getSemester(); // 等待获取学年信息
this.getList(); // 获取默认数据
},
getList() {
const params = {
schoolYear: this.queryForm.schoolYear,
applyName: this.queryForm.applyName,
};
getList(params)
.then(response => {
this.tableData = response.rows;
console.log('response', response);
this.total = response.total;
this.loading = false;
})
.catch(error => {
this.loading = false;
console.log(error);
});
},
getSemester() {
return new Promise((resolve, reject) => {
getSemester()
.then(response => {
this.queryForm.schoolYear = response.schoolYear + '';
resolve(); // 成功获取学年信息
})
.catch(error => {
console.log(error);
reject(error);
});
});
},
resetQuery() {
this.queryForm = {
pageNum: 1,
pageSize: 10,
schoolYear: "",
applyName: "",
};
this.getList();
},
......
......@@ -116,6 +116,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
......@@ -281,6 +282,7 @@ export default {
},
created() {
this.getList();
this.getGrade();
},
......@@ -302,10 +304,10 @@ export default {
console.log('selectedGrade', selectedGrade);
if (gradeValue === 1) {
console.log('gradeValue', gradeValue);
this.form.classId = this.classList.map(classItem => classItem.classId); // 默认选中所有班级
this.form.classId = this.classList.map(classItem => classItem.classId); // 默认选中所有班级的班级ID
console.log('this.form.classId', this.form.classId);
console.log('this.form.schoolExperimentPlanClassList', this.form.schoolExperimentPlanClassList);
} else {
} else if (gradeValue === 2 || gradeValue === 3) {
this.form.schoolExperimentPlanClassList = [];
console.log('gradeValue', gradeValue);
this.getClass(selectedGrade.id); // 获取班级列表
......@@ -340,7 +342,6 @@ export default {
getNewYear().then((res) => {
this.form.schoolYear = res.schoolYear;
console.log(this.form.schoolYear, typeof this.form.schoolYear);
this.getGrade();
});
},
//获取当前学期
......@@ -353,8 +354,7 @@ export default {
},
//查询级部
getGrade() {
const schoolYear = this.form.schoolYear;
getGrade(schoolYear).then(response => {
getGrade().then(response => {
this.loading = false;
this.gradeList = response.data;
console.log("this.gradeList", this.gradeList);
......@@ -473,6 +473,9 @@ export default {
});
},
},
}
</script>
......
......@@ -77,11 +77,12 @@
</el-table>
<!-- 新增/修改/查看弹窗 -->
<el-dialog title="申请信息" :visible.sync="dialogTableVisible" width="70%">
<el-form :model="form" ref="form" size="small" label-width="110px">
<el-form :model="form" ref="form" size="small" label-width="110px" :rules="rules">
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="实验名称">
<el-select v-model="form.experimentName" clearable style="width: 100%;" @change="getName">
<el-form-item label="实验名称" prop="experimentName">
<el-select v-model="form.experimentName" clearable style="width: 100%;" @change="getName"
:disabled="nowType === 1 || nowType === 2">
<el-option v-for="item in tableList" :key="item.id" :value="item.experimentName"
:label="item.experimentName"></el-option>
</el-select>
......@@ -90,75 +91,83 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="章节内容">
<el-input v-model="form.chapterContent" placeholder="请输入" clearable />
<el-form-item label="章节内容" prop="chapterContent">
<el-input v-model="form.chapterContent" placeholder="请输入" clearable :disabled="nowType === 2" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="级部">
<el-input v-model="form.grade" placeholder="请输入" clearable />
<el-form-item label="级部" prop="grade">
<el-input v-model="form.grade" placeholder="请输入" clearable
:disabled="nowType === 1 || nowType === 2 || nowType === 0" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="学年">
<el-input v-model="form.schoolYear" placeholder="请输入" clearable />
<el-form-item label="学年" prop="schoolYear">
<el-input v-model="form.schoolYear" placeholder="请输入" clearable
:disabled="nowType === 1 || nowType === 2 || nowType === 0" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="学期">
<el-select v-model="form.semester" placeholder="请选择学期" clearable style="width: 100%;">
<el-form-item label="学期" prop="semester">
<el-select v-model="form.semester" placeholder="请选择学期" clearable style="width: 100%;"
:disabled="nowType === 1 || nowType === 2 || nowType === 0">
<el-option label="上学期" value="1"></el-option>
<el-option label="下学期" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="学科">
<el-input v-model="form.sub" placeholder="请输入" clearable @input="handleChangeSub" />
<el-form-item label="学科" prop="sub">
<el-input v-model="form.sub" placeholder="请输入" clearable @input="handleChangeSub"
:disabled="nowType === 1 || nowType === 2 || nowType === 0" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="实验分类">
<el-input v-model="form.experimentClassify" placeholder="请输入" clearable />
<el-form-item label="实验分类" prop="experimentClassify">
<el-input v-model="form.experimentClassify" placeholder="请输入" clearable
:disabled="nowType === 1 || nowType === 2 || nowType === 0" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="计划开始时间" prop="plannedStartTime">
<el-date-picker v-model="form.plannedStartTime" type="date" placeholder="选择"
value-format="yyyy-MM-dd" style="width: 100%;">
value-format="yyyy-MM-dd" style="width: 100%;" :disabled="nowType === 2">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="计划结束时间" prop="plannedEndTime">
<el-date-picker v-model="form.plannedEndTime" type="date" placeholder="选择"
value-format="yyyy-MM-dd" style="width: 100%;">
value-format="yyyy-MM-dd" style="width: 100%;" :disabled="nowType === 2">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="实验用品">
<el-input v-model="form.experimentUseGoods" 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>
</el-form>
<span slot="footer" class="dialog-footer" style="text-align: center;">
<el-button type="primary" @click="save">保 存</el-button>
<el-button type="primary" @click="submitForm">提 交</el-button>
<!-- <el-button type="primary" @click="submitForm">提交</el-button> -->
</span>
<!-- <span slot="footer" class="dialog-footer">
<el-button type="primary" @click="cancle">取 消</el-button>
</span> -->
<div class="dialog-footer" style="text-align: center;">
<div class="dialog-footer" style="text-align: center;">
<el-button v-if="nowType === 0" type="primary" @click="save">保 存</el-button>
<el-button v-if="nowType === 0 || nowType === 1" type="primary" @click="submitForm">提 交</el-button>
<el-button v-if="nowType === 1" type="primary" @click="savexg">保 存</el-button>
<el-button type="primary" v-if="nowType === 2" @click="cancel">确 定</el-button>
<el-button v-if="nowType === 2" @click="cancel">取 消</el-button>
</div>
</div>
</el-dialog>
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
......@@ -186,6 +195,8 @@ export default {
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
schoolYear: '',
semester: '',
experimentClassify: '',
......@@ -199,6 +210,36 @@ export default {
options: {
},
rules: {
experimentName: [
{ required: true, message: "实验名称不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "级部不能为空", trigger: "blur" }
],
schoolYear: [
{ required: true, message: "学年不能为空", trigger: "blur" }
],
semester: [
{ required: true, message: "学期不能为空", trigger: "blur" }
],
experimentClassify: [
{ 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" }
],
},
nowType: 0, // 0新增、1修改、2查看
form: {
id: '',
......@@ -352,11 +393,10 @@ export default {
// 保存按钮
save() {
// const grade = this.form.grade
// this.form.gradeId = grade == '' ? '' : this.tableList.find(item => item.grade == grade).gradeName
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != null) {
if (this.form.id === "") {
console.log('新增', this.form);
const params = {
experimentPlanId: this.selectedExperiment.id,
experimentName: this.form.experimentName,
......@@ -383,13 +423,68 @@ export default {
}
});
},
// 保存按钮
savexg() {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id !== "") {
const params = {
id: this.form.id,
experimentPlanId: this.selectedExperiment.id,
experimentName: this.form.experimentName,
plannedStartTime: this.form.plannedStartTime,
plannedEndTime: this.form.plannedEndTime,
experimentUseGoods: this.form.experimentUseGoods,
grade: this.form.grade,
gradeId: this.form.gradeId,
semester: this.form.semester,
sub: this.form.sub,
experimentClassify: this.form.experimentClassify,
chapterContent: this.form.chapterContent,
schoolYear: this.form.schoolYear,
declareState: '0',
};
updateLabplan(params).then(response => {
this.$modal.msgSuccess('保存成功');
this.dialogTableVisible = false;
this.getList();
});
}
}
});
},
/** 提交按钮 */
submitForm() {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != null) {
if (this.form.id !== "") {
// 修改已有数据的逻辑
const params = {
id: this.form.id,
experimentPlanId: this.selectedExperiment.id,
experimentName: this.form.experimentName,
plannedStartTime: this.form.plannedStartTime,
plannedEndTime: this.form.plannedEndTime,
experimentUseGoods: this.form.experimentUseGoods,
grade: this.form.grade,
gradeId: this.form.gradeId,
semester: this.form.semester,
sub: this.form.sub,
experimentClassify: this.form.experimentClassify,
chapterContent: this.form.chapterContent,
schoolYear: this.form.schoolYear,
declareState: '1',
};
updateLabplan(params).then(response => {
this.$modal.msgSuccess('提交成功');
this.dialogTableVisible = false;
this.getList();
});
} else {
// 新增数据的逻辑
const params = {
experimentPlanId: this.selectedExperiment.id,
experimentName: this.form.experimentName,
......@@ -404,11 +499,9 @@ export default {
chapterContent: this.form.chapterContent,
schoolYear: this.form.schoolYear,
declareState: '1',
};
addLabplan(params).then(response => {
this.$modal.msgSuccess('保存成功');
this.$modal.msgSuccess("提交成功");
this.dialogTableVisible = false;
this.getList();
});
......@@ -417,8 +510,9 @@ export default {
});
},
//取消按钮
cancle() {
cancel() {
this.dialogTableVisible = false;
},
......
......@@ -10,7 +10,7 @@
<el-form-item label="学期">
<el-date-picker v-model="queryForm.year" type="year" value-format="yyyy" placeholder="选择年">
</el-date-picker>
<el-select v-model="queryForm.semester" @change="courseInfo" placeholder="请选择学期">
<el-select v-model="queryForm.semester" placeholder="请选择学期">
<el-option label="上学期" value="0"></el-option>
<el-option label="下学期" value="1"></el-option>
</el-select>
......@@ -24,12 +24,11 @@
<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="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="experimentName" label="实验名称" />
<el-table-column align="center" prop="schoolYearSemester" label="学期" />
<el-table-column align="center" prop="totalClass" label="总班级数" />
<el-table-column align="center" prop="completeClass" label="已完成班级数" />
<el-table-column align="center" prop="ratio" 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>
......@@ -40,22 +39,27 @@
@pagination="getList" />
<!-- 查看弹窗 -->
<el-dialog title="实验名称:物理研究" :visible.sync="dialogTableVisible" width="70%">
<el-form :model="form" ref="form" size="small" :inline="true" label-width="68px">
<el-dialog title="实验名称:物理研究" :visible.sync="dialogTableVisible" width="80%">
<el-form :model="form" ref="form" 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 v-model="form.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 label="班级">
<el-input v-model="form.grade" placeholder="请输入班级" clearable></el-input>
<el-input v-model="form.className" placeholder="请输入班级" clearable></el-input>
</el-form-item>
<el-form-item label="实验时间">
<el-date-picker v-model="form.time" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" value-format="yyyy-MM-dd">
<el-form-item label="开始时间" prop="startTime">
<el-date-picker v-model="form.startTime" type="date" placeholder="选择" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker v-model="form.endTime" type="date" placeholder="选择" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getListtc">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuerytc">重置</el-button>
......@@ -63,15 +67,23 @@
</el-form>
<el-table :data="ExperimentalData" 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="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="className" label="班级" />
<el-table-column align="center" prop="experimentTime" label="实验时间" />
<el-table-column align="center" prop="section" label="节次" />
<el-table-column align="center" prop="state" label="附件">
<template slot-scope="scope">
<span v-if="scope.row.state === '0'">未上报</span>
<span v-else-if="scope.row.state === '1'">已上报</span>
<span v-else>-</span>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
@pagination="getListtc" />
</el-dialog>
......@@ -79,8 +91,14 @@
</template>
<script>
import {
getList,
getSemester,
getTeacherxq
} from '@/api/smartSchool/laboratoryManagement/leadlaboratoryCompletion'
export default {
name: 'index',
dicts: ['experiment_classify', 'lab_sub'],
data() {
return {
queryForm: {
......@@ -107,24 +125,104 @@ export default {
}
},
methods: {
async getSemesterAndList() {
await this.getSemester(); // 等待获取学年和学期信息
this.getList(); // 获取数据列表
},
getSemester() {
return new Promise((resolve, reject) => {
getSemester()
.then(response => {
this.queryForm.semester = response.semester;
this.queryForm.schoolYear = response.schoolYear + '';
resolve(); // 成功获取学年和学期信息
})
.catch(error => {
console.log(error);
reject(error);
});
});
},
getList() {
getList(this.queryForm)
.then(response => {
this.tableData = response.rows;
console.log('response', response);
this.total = response.total;
this.loading = false;
})
.catch(error => {
this.loading = false;
console.log(error);
});
},
//查看按钮
handleLook(row) {
console.log(row);
console.log(this.form.id);
// 设置 dialogTableVisible 为 true,显示弹窗
this.dialogTableVisible = true;
// 根据 row 的数据构建请求参数
const params = {
experimentPlanId: row.id,
experimentClassify: this.form.experimentClassify,
className: this.form.className,
startTime: this.form.startTime,
endTime: this.form.endTime,
};
getTeacherxq(params).then(response => {
this.ExperimentalData = response.rows;
this.total = response.total;
this.loading = false;
}).catch(error => {
});
},
resetQuery() {
this.queryForm = {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
sub: "",
grade: "",
experimentName: "",
};
this.getList();
},
//弹窗获取表单
getListtc() {
const params = {
experimentPlanId: this.form.id,
experimentClassify: this.form.experimentClassify,
className: this.form.className,
startTime: this.form.startTime,
endTime: this.form.endTime,
};
getTeacherxq(params).then(response => {
this.ExperimentalData = response.rows;
}).catch(error => {
});
},
//弹窗重置按钮
resetQuerytc() {
this.getList();
},
//查看按钮操作
handleLook() {
this.dialogTableVisible = true;
this.form = {
pageNum: 1,
pageSize: 10,
experimentPlanId: "",
experimentClassify: "",
className: "",
startTime: "",
endTime: "",
};
this.getListtc();
},
},
}
</script>
......
<template>
<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-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
<el-form-item label="实验分类">
<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 label="预约时间段">
<el-date-picker v-model="queryForm.time" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" value-format="yyyy-MM-dd">
</el-date-picker>
<el-form-item label="申请老师">
<el-input v-model="queryForm.applyName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="实验级部">
<el-input v-model="queryForm.grade" placeholder="请输入"></el-input>
......@@ -22,17 +20,29 @@
</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="学科" />
<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="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="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="schoolTeacherExperimentApplyLabsList" label="实验室">
<template slot-scope="scope">
<div v-if="scope.row.schoolTeacherExperimentApplyLabsList">
{{ scope.row.schoolTeacherExperimentApplyLabsList.map(lab => lab.labName).join(", ") }}
</div>
</template>
</el-table-column>
<el-table-column align="center" prop="experimentUseGoods" label="实验用品" />
<el-table-column align="center" prop="applyName" label="申请教师" />
<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,29 +52,37 @@
</el-table>
<!-- 分配实验室弹窗 -->
<el-dialog title="申请信息" :visible.sync="dialogTableVisible" width="70%">
<el-dialog title="申请信息" :visible.sync="dialogTableVisible" width="75%">
<el-form :model="form" ref="form" size="small" label-width="110px">
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="学科">
<el-input v-model="form.subject" placeholder="请输入" clearable />
<el-input v-model="form.sub" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实验名称">
<el-input v-model="form.name" placeholder="请输入" clearable />
<el-input v-model="form.experimentName" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实验分">
<el-input v-model="form.group" placeholder="请输入" clearable />
<el-form-item label="实验分">
<el-input v-model="form.experimentClassify" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="8">
<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-col :span="8">
<el-form-item label="学期">
<el-select v-model="form.semester" placeholder="请选择学期" style="width: 100%;">
<el-option label="上学期" value="1"></el-option>
<el-option label="下学期" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
......@@ -72,36 +90,114 @@
<el-input v-model="form.grade" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="申请老师">
<el-input v-model="form.applyName" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="班级">
<el-input v-model="form.class" placeholder="请输入" clearable />
<el-form-item label="开始时间" prop="plannedStartTime">
<el-date-picker v-model="form.plannedStartTime" type="date" placeholder="选择"
value-format="yyyy-MM-dd" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="结束时间" prop="plannedEndTime">
<el-date-picker v-model="form.plannedEndTime" type="date" placeholder="选择"
value-format="yyyy-MM-dd" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="实验室选择">
<el-checkbox-group v-model="form.schoolTeacherExperimentApplyLabsList">
<el-checkbox v-for="classItem in labs" :key="classItem.labId" :label="classItem.labId">
{{ classItem.labName }}- {{ classItem.useState }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="实验用品">
<el-input v-model="form.experimentUseGoods" type="textarea" 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="save">分 配</el-button>
<el-button type="danger" @click="submitForm">提 交</el-button>
</div>
</el-dialog>
<!-- 查看 -->
<el-dialog title="申请信息" :visible.sync="open" width="75%">
<el-form :model="form" ref="form" size="small" label-width="110px">
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="章节内容">
<el-input v-model="form.content" placeholder="请输入" clearable />
<el-form-item label="学科">
<el-input v-model="form.sub" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="节次">
<el-input v-model="form.grade" placeholder="请输入" clearable />
<el-form-item label="实验名称">
<el-input v-model="form.experimentName" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="申请老师">
<el-input v-model="form.class" placeholder="请输入" clearable />
<el-form-item label="实验分类">
<el-input v-model="form.experimentClassify" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="学年">
<el-input v-model="form.schoolYear" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="学期">
<el-select v-model="form.semester" placeholder="请选择学期" style="width: 100%;">
<el-option label="上学期" value="1"></el-option>
<el-option label="下学期" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="级部">
<el-input v-model="form.grade" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="16">
<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-col :span="8">
<el-form-item label="申请老师">
<el-input v-model="form.applyName" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="开始时间" prop="plannedStartTime">
<el-date-picker v-model="form.plannedStartTime" type="date" placeholder="选择"
value-format="yyyy-MM-dd" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="结束时间" prop="plannedEndTime">
<el-date-picker v-model="form.plannedEndTime" type="date" placeholder="选择"
value-format="yyyy-MM-dd" style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
......@@ -109,101 +205,215 @@
<el-row :gutter="30">
<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-form-item>
<!-- <el-form-item label="实验室选择">
<el-input v-model="form.name" placeholder="请输入" ></el-input>
</el-form-item> -->
<el-checkbox-group v-model="form.schoolTeacherExperimentApplyLabsList">
<el-checkbox v-for="classItem in schoolTeacherExperimentApplyLabsList"
:key="classItem.labId" :label="classItem.labId">
{{ classItem.labName }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="24">
<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-form>
<span slot="footer" class="dialog-footer" style="text-align: center;">
<el-button type="primary" @click="allocation">分 配</el-button>
<el-button type="danger" @click="submitForm">提 交</el-button>
</span>
<!-- <span slot="footer" class="dialog-footer">
<el-button type="primary" @click="cancle">取 消</el-button>
</span> -->
<div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button type="primary" @click="cancel">取 消</el-button>
</div>
</el-dialog>
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList" />
</div>
</template>
<script>
import {
getTeacherList,// 查看列表
getLabList,// 获取实验室
getExperimentLabs,// 分配实验室
getTeacherapplyxq// 查看详情
} from '@/api/smartSchool/laboratoryManagement/experimentApproval'
export default {
name: 'index',
dicts: ['experiment_classify', 'lab_sub', 'declare_state'],
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
experimentClassify: "",
applyName: "",
grade: "",
},
//表格数据
tableData: [
{
}
],
//学科分类
options: {
},
],
form: {
},
labs: [],
schoolTeacherExperimentApplyLabsList: [],
total: 0,
dialogTableVisible: false,
open: false,
}
},
created() {
this.getList();
},
methods: {
//表单查询
getList() {
getTeacherList(this.queryForm).then(response => {
this.tableData = response.rows
console.log(response);
this.total = response.total
this.loading = false
})
},
//分配实验室
handleAllocation() {
this.dialogTableVisible = true;
handleAllocation(row) {
this.loading = true;
const id = row.id || this.ids;
getTeacherapplyxq(id).then(response => {
this.form = response.data;
// 清空已经选择的实验室
this.selectedLabs = [];
for (let i = 0; i < this.form.schoolTeacherExperimentApplyLabsList.length; i++) {
const labId = this.form.schoolTeacherExperimentApplyLabsList[i].labId;
this.selectedLabs.push(labId);
}
// console.log('this.form', this.form);
this.form.applyName = response.data.applyName;
this.form.experimentClassify = response.data.experimentClassify;
this.form.experimentName = response.data.experimentName;
this.form.sub = response.data.sub;
this.form.chapterContent = response.data.chapterContent;
this.form.grade = response.data.grade;
this.form.schoolYear = response.data.schoolYear;
this.form.experimentUseGoods = response.data.experimentUseGoods;
this.form.plannedStartTime = response.data.plannedStartTime;
this.form.plannedEndTime = response.data.plannedEndTime;
this.form.schoolLabClassYearRelationList = this.selectedLabs; // 仅将已经选择的实验室作为关联数据提交
this.loading = false;
const plannedStartTime = this.form.plannedStartTime
const plannedEndTime = this.form.plannedEndTime
getLabList(plannedStartTime, plannedEndTime).then(response => {
const labs = response.data;
this.labs = labs.filter(lab => lab.useState === "空闲"); // 根据状态筛选出空闲的实验室
// console.log(this.labs, 'this.labs');
// 这里不再需要循环添加实验室关联数据
this.loading = false;
});
});
this.dialogTableVisible = true;
},
//查看按钮操作
handleLook() {
this.dialogTableVisible = true;
handleLook(row) {
this.open = true;
const id = row.id || this.ids;
getTeacherapplyxq(id).then(response => {
this.form = response.data;
if (response.data.schoolTeacherExperimentApplyLabsList) { // 判断 schoolLabClassYearRelationList 存在且不为空
this.schoolTeacherExperimentApplyLabsList = response.data.schoolTeacherExperimentApplyLabsList;
console.log('this.form.schoolTeacherExperimentApplyLabsList', this.form.schoolTeacherExperimentApplyLabsList);
}
this.form.schoolTeacherExperimentApplyLabsList = [];
for (let i = 0; i < this.schoolTeacherExperimentApplyLabsList.length; i++) {
const labId = this.schoolTeacherExperimentApplyLabsList[i].labId;
const labName = this.schoolTeacherExperimentApplyLabsList[i].labName;
this.form.schoolTeacherExperimentApplyLabsList.push(labId, labName);
console.log(this.form.schoolTeacherExperimentApplyLabsList, '查看 ');
}
console.log('this.form', this.form);
this.loading = false
})
},
resetQuery() {
this.getList();
},
//提交按钮
submitForm() {
// 保存按钮
save() {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != null) {
const selectedLabs = []; // 临时数组
for (let i = 0; i < this.labs.length; i++) {
const labId = this.labs[i].labId;
const labName = this.labs[i].labName;
if (this.form.schoolTeacherExperimentApplyLabsList.includes(labId)) { // 判断是否选中
selectedLabs.push({ labId: labId, labName: labName }); // 将选中的实验室push进临时数组
}
}
const params = {
id: this.form.id,
plannedStartTime: this.form.plannedStartTime,
plannedEndTime: this.form.plannedEndTime,
experimentUseGoods: this.form.experimentUseGoods,
declareState: '2',
schoolTeacherExperimentApplyLabsList: selectedLabs, // 将临时数组赋值给params.schoolLabClassYearRelationList
};
getExperimentLabs(params).then(response => {
this.$modal.msgSuccess('保存成功');
this.dialogTableVisible = false;
this.getList();
});
}
}
});
},
//分配按钮操作
allocation() {
/** 提交按钮 */
submitForm() {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != null) {
const params = {
id: this.form.id,
plannedStartTime: this.form.plannedStartTime,
plannedEndTime: this.form.plannedEndTime,
experimentUseGoods: this.form.experimentUseGoods,
declareState: '3',
schoolTeacherExperimentApplyLabsList: [],
};
for (let i = 0; i < this.labs.length; i++) {
const labId = this.labs[i].labId;
const labName = this.labs[i].labName;
if (this.form.schoolTeacherExperimentApplyLabsList.includes(labId)) { // 判断是否选中
params.schoolTeacherExperimentApplyLabsList.push({ labId: labId, labName: labName }); // 将选中的实验室push进数组
}
}
getExperimentLabs(params).then(response => {
console.log(params, params);
this.$modal.msgSuccess('提交成功');
this.dialogTableVisible = false;
this.getList();
});
}
}
});
},
//取消按钮
// cancle() {
// this.dialogTableVisible = false;
// },
cancel() {
this.open = false;
},
},
}
......
<template>
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="学年">
<el-input v-model="queryForm.schoolYear" placeholder="请输入" clearable></el-input>
<el-form-item label="学期">
<el-date-picker v-model="queryForm.schoolYear" type="year" value-format="yyyy" placeholder="选择年">
</el-date-picker>
<el-select v-model="queryForm.semester" placeholder="请选择学期">
<el-option label="上学期" value="1"></el-option>
<el-option label="下学期" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="实验级部">
<el-form-item label="实验名称">
<el-input v-model="queryForm.grade" placeholder="请输入实验名称" clearable></el-input>
</el-form-item>
<el-form-item label="实验分类">
......@@ -128,8 +133,9 @@ export default {
pageNum: 1,
pageSize: 10,
schoolYear: '',
grade: '',
semester: '',
experimentClassify: '',
experimentName: '',
},
//表格数据
tableData: [
......@@ -165,9 +171,12 @@ export default {
},
resetQuery() {
this.queryForm = {
pageNum: 1,
pageSize: 10,
schoolYear: '',
grade: '',
semester: '',
experimentClassify: '',
experimentName: '',
};
this.getList();
},
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="60px">
<el-form-item label="教师" prop="">
<el-input v-model="queryParams" placeholder="请输入教师" clearable />
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="78px">
<el-form-item label="教师" prop="applyName">
<el-input v-model="queryParams.applyName" placeholder="请输入教师" clearable />
</el-form-item>
<el-form-item label="学期" prop="">
<el-date-picker v-model="queryParams" class="yearChoose"
type="year" placeholder="请选择学年"></el-date-picker>
<el-select v-model="queryParams" placeholder="请选择学期" clearable>
<!-- <el-option v-for="(item, index) in dict.type.exam_type" :key="index" :label="item.label"-->
<!-- :value="item.value"></el-option>-->
<el-form-item label="实验时间" prop="time">
<el-date-picker v-model="queryParams.startTime" type="date" placeholder="选择" value-format="yyyy-MM-dd">
</el-date-picker>
<el-date-picker v-model="queryParams.endTime" type="date" placeholder="选择" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item label="实验分类">
<el-select v-model="queryParams.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 label="实验名称">
<el-input v-model="queryParams.experimentName" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleOption(0)">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="!isMultiple"
@click="handleDelete">批量删除</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="tableData" stripe @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column>
<el-table v-loading="loading" :data="tableData" stripe>
<el-table-column fixed="left" label="序号" type="index" width="55" align="center" />
<el-table-column label="学科" align="center" prop="totalScore" />
<el-table-column label="学年" align="center" prop="totalScore" />
<el-table-column label="级部" align="center" prop="ranking" />
<el-table-column label="班级" align="center" prop="language" />
<el-table-column label="实验时间" align="center" prop="ywRanking" />
<el-table-column label="已完成实验数" align="center" prop="math" />
<el-table-column label="教师" align="center" prop="sxRanking" />
<el-table-column fixed="right" label="操作" align="center" prop="orgname" width="150">
<el-table-column label="学科" align="center" prop="sub">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.lab_sub, row.sub) }}</div>
</template>
</el-table-column>
<el-table-column label="学年" align="center" prop="schoolYear" />
<el-table-column label="级部" align="center" prop="grade" />
<el-table-column label="班级" align="center" prop="className" />
<el-table-column label="实验时间" align="center" prop="experimentTime" />
<el-table-column label="实验名称" align="center" prop="experimentName" />
<el-table-column label="实验分类" align="center" prop="experimentClassify">
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleOption(2, row)">查看实验详细情况</el-button>
<div>{{ selectDictLabel(dict.type.experiment_classify, row.experimentClassify) }}</div>
</template>
</el-table-column>
<el-table-column label="实验室" align="center" prop="labName" />
<el-table-column label="实验用品" align="center" prop="experimentUseGoods" />
<el-table-column label="章节内容" align="center" prop="chapterContent" />
<el-table-column label="教师" align="center" prop="applyName" />
<el-table-column label="附件" align="center" prop="schoolAccessoryList">
<template slot-scope="scope">
<div v-for="(accessory, index) in scope.row.accessoryList" :key="index">
<a :href="baseUrl + accessory.accessoryUrl" target="_blank">{{ accessory.accessoryName }}</a>
</div>
</template>
</el-table-column>
</el-table>
<pagination ref="pageBlock" v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
:limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 新增、编辑、查看弹窗 -->
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="80%">
<el-form :model="dialogParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item label="实验时间" prop="">
<el-date-picker v-model="dialogParams" class="yearChoose"
type="year" placeholder="请选择学年"></el-date-picker>
<el-select v-model="dialogParams" placeholder="请选择实验时间" clearable>
<!-- <el-option v-for="(item, index) in dict.type.exam_type" :key="index" :label="item.label"-->
<!-- :value="item.value"></el-option>-->
</el-select>
</el-form-item>
<el-form-item label="实验分类" prop="">
<el-select v-model="dialogParams" placeholder="请选择实验分类" clearable>
<!-- <el-option v-for="(item, index) in dict.type.exam_type" :key="index" :label="item.label"-->
<!-- :value="item.value"></el-option>-->
</el-select>
</el-form-item>
<el-form-item label="实验名称" prop="">
<el-input v-model="dialogParams" placeholder="请输入实验名称" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="dialogData" stripe>
<el-table-column fixed="left" label="序号" type="index" width="55" align="center" />
<el-table-column label="实验时间" align="center" prop="ywRanking" />
<el-table-column label="节次" align="center" prop="ywRanking" />
<el-table-column label="实验名称" align="center" prop="math" />
<el-table-column label="实验分类" align="center" prop="math" />
<el-table-column label="实验室" align="center" prop="math" />
<el-table-column label="实验用品" align="center" prop="math" />
<el-table-column label="章节内容" align="center" prop="math" />
<el-table-column label="教师" align="center" prop="sxRanking" />
<el-table-column label="附件" align="center" prop="orgname" width="150">
<template slot-scope="{ row }">
</template>
</el-table-column>
</el-table>
<pagination ref="pageBlock" v-show="dialogTotal > 0" :total="dialogTotal"
:page.sync="dialogParams.pageNum" :limit.sync="dialogParams.pageSize"
@pagination="" />
</el-dialog>
<!-- 新增、编辑、查看弹窗 -->
</div>
</template>
<script>
import {
getList,
} from '@/api/smartSchool/laboratoryManagement/leadlaboratoryRecords'
export default {
dicts: ['exam_type'],
dicts: ['experiment_classify', 'lab_sub'],
data() {
return {
baseUrl: process.env.VUE_APP_BASE_API,
queryParams: {
pageNum: 1,
pageSize: 10,
applyName: "",
startTime: "",
endTime: "",
experimentClassify: "",
},
loading: false,
total: 0,
tableData:[],
isMultiple: false, // table是否有选择
dialogTitle:'', //弹窗标题
dialogVisible:false,
dialogParams:{
pageNum: 1,
pageSize: 10,
},
dialogTotal:0,
dialogData:[]
tableData: [],
}
},
mounted() {
this.getList();
},
methods: {
//获取列表数据
getList(){},
getList() {
getList(this.queryParams).then(response => {
this.tableData = response.rows;
console.log(this.tableData);
this.tableData = response.rows.map(item => {
item.accessoryList = item.schoolAccessoryList; // 将附件信息赋值给accessoryList属性
return item;
});
this.total = response.total
this.loading = false
})
},
//重置
resetQuery(){},
//删除
handleDelete(){},
//编辑 0新增 1编辑 2查看
handleOption(type){
this.nowOption = type
if(type == 0){
this.dialogTitle = '新增实验室记录'
}else if(type == 1){
this.dialogTitle = '编辑实验室记录'
}else {
this.dialogTitle = '查看实验室记录'
}
this.dialogVisible = true
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
applyName: "",
startTime: "",
endTime: "",
experimentClassify: "",
},
this.getList();
},
handleSelectionChange(val) {
this.isMultiple = val.length == 0 ? false : true
}
},
}
</script>
......
<template>
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="88px">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="实验级部">
<el-input v-model="queryForm.grade" placeholder="请输入"></el-input>
</el-form-item>
......
......@@ -409,6 +409,7 @@ export default {
})
},
resetQuery() {
this.getList();
},
// 保存按钮
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px">
<el-form-item label="比赛类型" prop="">
<el-select v-model="queryParams" placeholder="请选择比赛类型" clearable>
<!-- <el-option v-for="(item, index) in dict.type.exam_type" :key="index" :label="item.label"-->
<!-- :value="item.value"></el-option>-->
</el-select>
</el-form-item>
<el-form-item label="比赛项目名称" prop="">
<el-input v-model="queryParams" placeholder="请输入学生姓名" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px">
<el-form-item label="比赛类型" prop="competitionType">
<el-select v-model="queryParams.competitionType" placeholder="请选择" clearable>
<el-option v-for="(item, index) in dict.type.competition_type" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="比赛项目名称" prop="competitionName">
<el-input v-model="queryParams.competitionName" placeholder="请输入" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleOption(0)">新增</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="competitionData" stripe @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column fixed="left" label="序号" type="index" width="55" align="center" />
<el-table-column label="学年" align="center" prop="schoolYear" />
<el-table-column label="参赛教师" align="center" prop="teacherName" />
<el-table-column label="参赛课题" align="center" prop="entrySubject" />
<el-table-column label="比赛项目名称" align="center" prop="competitionName" />
<el-table-column label="比赛类型" align="center" prop="competitionType" />
<el-table-column label="比赛级别" align="center" prop="competitionLevel" />
<el-table-column label="证书照片" align="center" prop="schoolAccessoryList">
<template slot-scope="scope">
<ListImage :image-url="pev + scope.row.accessoryUrl"></ListImage>
</template>
</el-table-column>
<el-table-column label="备注1" align="center" prop="remark1" />
<el-table-column label="备注2" align="center" prop="remark2" />
<el-table-column label="备注3" align="center" prop="remark3" />
<el-table-column fixed="right" label="操作" align="center" prop="orgname" width="150">
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleDelete(row.id)">删除</el-button>
<el-button type="text" size="small" @click="handleOption(1, row)">编辑</el-button>
<el-button type="text" size="small" @click="handleOption(2, row)">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination ref="pageBlock" v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 新增、编辑、查看弹窗 -->
<el-dialog title="详细信息" :visible.sync="dialogVisible" width="50%">
<el-form :model="form" ref="form" size="small" label-width="108px">
<el-row>
<el-col :span="10">
<el-form-item label="学年">
<el-input v-model="form.schoolYear" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="参赛老师">
<el-input v-model="form.teacherName" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="参赛课题" prop="entrySubject">
<el-input v-model="form.entrySubject" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="比赛项目名称" prop="competitionName">
<el-input v-model="form.competitionName" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="比赛类型" prop="competitionType">
<el-select v-model="form.competitionType" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.competition_type" :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-select v-model="form.competitionLevel" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="dict in dict.type.competition_level" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="证书照片">
<el-upload v-loading="uploadLoading" class="avatar-uploader" action="#" accept="image/*"
:show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload"
:http-request="uploadImage">
<img v-if="imageUrl" :src="imageUrl" style="width: 178px; height: 178px;" class="avatar" alt="" />
<!-- :preview-src-list="[imageUrl]"-->
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="备注1">
<el-input v-model="form.remark1" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="备注2">
<el-input v-model="form.remark2" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="备注3">
<el-input v-model="form.remark3" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleOption(0)">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="!isMultiple"
@click="handleDelete">批量删除</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="competitionData" stripe @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column fixed="left" label="序号" type="index" width="55" align="center" />
<el-table-column label="学年" align="center" prop="totalScore" />
<el-table-column label="参赛教师" align="center" prop="ranking" />
<el-table-column label="参赛课题" align="center" prop="language" />
<el-table-column label="比赛项目名称" align="center" prop="ywRanking" />
<el-table-column label="比赛类型" align="center" prop="math" />
<el-table-column label="比赛级别" align="center" prop="sxRanking" />
<el-table-column label="证书照片" align="center" prop="english" />
<el-table-column label="备注1" align="center" prop="hxRanking" />
<el-table-column label="备注2" align="center" prop="biology" />
<el-table-column label="备注3" align="center" prop="swRanking" />
<el-table-column fixed="right" label="操作" align="center" prop="orgname" width="150">
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleDelete(row.id)">删除</el-button>
<el-button type="text" size="small" @click="handleOption(1, row)">编辑</el-button>
<el-button type="text" size="small" @click="handleOption(2, row)">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination ref="pageBlock" v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 新增、编辑、查看弹窗 -->
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="50%">
<el-form :model="competitionForm" :rules="competitionRules" ref="competitionForm" label-width="80px"
label-position="left">
</el-form>
</el-dialog>
<!-- 新增、编辑、查看弹窗 -->
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
addCompetition,
updateCompetition,
getCompetition,
getCompetitionxq,
deleteCompetition
} from '@/api/smartSchool/laboratoryManagement/laboratoryCompetition'
import ListImage from "@/components/ListImage";
import { uploadImage as commonUpload } from '@/api/common'
export default {
dicts: ['exam_type'],
dicts: ['competition_type', 'competition_type',
'competition_level'],
data() {
return {
// 图片路径
imageUrl: undefined,
pev: process.env.VUE_APP_BASE_API,
queryParams: {
pageNum: 1,
pageSize: 10,
},
nowType: 0, // 0新增、1修改、2查看
uploadLoading: false,
loading: false,
total: 0,
competitionData:[],
competitionData: [],
isMultiple: false, // table是否有选择
dialogTitle:'', //弹窗标题
dialogVisible:false,
nowOption:null,
competitionForm:{},
competitionRules:{}
dialogTitle: '', //弹窗标题
dialogVisible: false,
nowOption: null,
form: {
schoolYear: '',
teacherId: '',
teacherName: '',
entrySubject: '',
competitionName: '',
competitionType: '',
competitionLevel: '',
remark1: '',
remark2: '',
remark3: '',
schoolAccessoryList: '',
},
rules: {}
}
},
mounted() {
this.getList();
},
methods: {
//获取列表数据
getList(){},
getList() {
getCompetition(this.queryForm).then(response => {
this.competitionData = response.rows;
console.log('response', response);
this.total = response.total
this.loading = false
})
},
// 移除图片
handleRemove() {
this.imageUrl = undefined
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.imageUrl = res.data.url
this.commonUpload(file)
},
// 上传前格式和图片大小限制
beforeAvatarUpload(file) {
const type = file.type === 'image/jpeg' || 'image/jpg' || 'image/webp' || 'image/png'
const isLt2M = file.size / 1024 / 1024 < 2
if (!type) {
this.$message.error('图片格式不正确!(只能包含jpg,png,webp,JPEG)')
}
if (!isLt2M) {
this.$message.error('上传图片大小不能超过 2MB!')
}
return type && isLt2M
},
// 上传图片
uploadImage(file) {
const fileData = file.file
const formData = new FormData()
formData.append('file', fileData)
this.uploadLoading = true
commonUpload(formData)
.then(response => {
this.uploadLoading = false
this.$modal.msgSuccess('上传成功')
this.imageUrl = this.pev + response.url
this.form.avatar = response.url
})
.catch(error => {
this.uploadLoading = false
})
},
//重置
resetQuery(){},
resetQuery() {
},
//删除
handleDelete(){},
handleDelete(row) {
this.$modal.confirm('是否确认删除选中数据?').then(() => {
this.$modal.loading('正在处理数据,请稍等...');
return deleteCompetition(row);
}).then(response => {
this.$modal.closeLoading();
this.$modal.msgSuccess("删除班级成功");
this.getList();
}).catch(error => {
this.$modal.closeLoading();
})
},
//编辑 0新增 1编辑 2查看
handleOption(type){
this.nowOption = type
handleOption(type, row) {
this.imageUrl = '';
this.form = {
id: '',
schoolYear: '',
teacherId: '',
teacherName: '',
entrySubject: '',
competitionName: '',
competitionType: '',
competitionLevel: '',
remark1: '',
remark2: '',
remark3: '',
schoolAccessoryList: [],
}
this.nowType = type;
if (type != 0) {
const id = row.id
getCompetitionxq(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.dialogVisible = true;
},
/** 提交按钮 */
submitForm: function () {
let fileList = []; // 添加这行代码定义 fileList 变量
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != "") {
updateCompetition(this.form).then(({ code }) => {
if (code == 200) {
this.$modal.msgSuccess('修改成功')
this.dialogVisible = false
this.getList()
}
}).catch(() => {
this.$modal.msgError("修改失败");
});
} else {
for (let i = 0; i < fileList.length; i++) {
const file = fileList[i];
// 将照片信息添加到 schoolAccessoryList 数组中
this.form.schoolAccessoryList.push({
accessoryUrl: file.url,
accessoryName: file.name
});
}
addCompetition(this.form).then(response => {
this.$modal.msgSuccess('新增成功')
this.dialogVisible = false
this.getList()
}).catch(() => {
this.$modal.msgError("新增失败");
});
}
}
});
},
cancel() {
this.dialogVisible = false;
},
handleSelectionChange(val) {
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="60px">
<el-form-item label="级部" prop="">
<el-select v-model="queryParams" placeholder="请选择级部" clearable>
<!-- <el-option v-for="(item, index) in dict.type.exam_type" :key="index" :label="item.label"-->
<!-- :value="item.value"></el-option>-->
</el-select>
</el-form-item>
<el-form-item label="实验名称" prop="" label-width="80px">
<el-input v-model="queryParams" placeholder="请输入实验名称" clearable />
</el-form-item>
<el-form-item label="学年" prop="">
<el-date-picker v-model="queryParams" type="year" placeholder="请选择学年"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleOption(0)">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="!isMultiple"
@click="handleDelete">批量删除</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="tableData" stripe @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column fixed="left" label="序号" type="index" width="55" align="center" />
<el-table-column label="级部" align="center" prop="totalScore" />
<el-table-column label="实验名称" align="center" prop="totalScore" />
<el-table-column label="学年" align="center" prop="ranking" />
<el-table-column label="总班级数" align="center" prop="language" />
<el-table-column label="已完成班级数" align="center" prop="ywRanking" />
<el-table-column label="未完成班级数" align="center" prop="math" />
<el-table-column label="完成比例" align="center" prop="sxRanking" />
<el-table-column fixed="right" label="操作" align="center" prop="orgname" width="150">
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleOption(2, row)">查看班级完成情况</el-button>
</template>
</el-table-column>
</el-table>
<pagination ref="pageBlock" v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 新增、编辑、查看弹窗 -->
<el-dialog :title='`实验名称:${dialogTitle}`' :visible.sync="dialogVisible" width="80%">
<el-form :model="dialogParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item label="实验分类" prop="">
<el-select v-model="dialogParams" placeholder="请选择实验分类" clearable>
<!-- <el-option v-for="(item, index) in dict.type.exam_type" :key="index" :label="item.label"-->
<!-- :value="item.value"></el-option>-->
</el-select>
</el-form-item>
<el-form-item label="班级" prop="">
<el-input v-model="dialogParams" placeholder="请输入班级" clearable />
</el-form-item>
<el-form-item label="实验时间" prop="">
<el-date-picker v-model="dialogParams" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="dialogData" stripe>
<el-table-column fixed="left" label="序号" type="index" width="55" align="center" />
<el-table-column label="实验分类" align="center" prop="math" />
<el-table-column label="班级" align="center" prop="ywRanking" />
<el-table-column label="实验时间" align="center" prop="ywRanking" />
<el-table-column label="节次" align="center" prop="sxRanking" />
<el-table-column label="附件" align="center" prop="orgname" width="150">
<template slot-scope="{ row }">
</template>
</el-table-column>
</el-table>
<pagination ref="pageBlock" v-show="dialogTotal > 0" :total="dialogTotal" :page.sync="dialogParams.pageNum"
:limit.sync="dialogParams.pageSize" @pagination="" />
</el-dialog>
<!-- 新增、编辑、查看弹窗 -->
</div>
</template>
<script>
import {
getList,
getSemester,
getTeacherxq
} from '@/api/smartSchool/laboratoryManagement/laboratoryExecution'
export default {
dicts: ['exam_type'],
data() {
return {
queryParams: {
pageNum: 1,
pageSize: 10,
},
loading: false,
total: 0,
tableData: [],
isMultiple: false, // table是否有选择
dialogTitle: '', //弹窗标题
dialogVisible: false,
dialogParams: {
pageNum: 1,
pageSize: 10,
},
dialogTotal: 0,
dialogData: []
}
},
mounted() {
},
methods: {
//获取列表数据
getList() { },
//重置
resetQuery() { },
//删除
handleDelete() { },
//编辑 0新增 1编辑 2查看
handleOption(type) {
this.nowOption = type
if (type == 0) {
this.dialogTitle = '新增实验室记录'
} else if (type == 1) {
this.dialogTitle = '编辑实验室记录'
} else {
this.dialogTitle = '查看实验室记录'
}
this.dialogVisible = true
},
handleSelectionChange(val) {
this.isMultiple = val.length == 0 ? false : true
}
},
}
</script>
<style lang="scss" scoped></style>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="60px">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="78px">
<el-form-item label="级部" prop="">
<el-select v-model="queryParams" placeholder="请选择级部" clearable>
<!-- <el-option v-for="(item, index) in dict.type.exam_type" :key="index" :label="item.label"-->
<!-- :value="item.value"></el-option>-->
<el-select v-model="queryParams.gradeId" placeholder="请选择级部" clearable>
<el-option v-for="(item, index) in gradeList" :key="index" :label="item.gradeName" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="实验名称" prop="" label-width="80px">
<el-input v-model="queryParams" placeholder="请输入实验名称" clearable />
<el-input v-model="queryParams.experimentName" placeholder="请输入实验名称" clearable />
</el-form-item>
<el-form-item label="学年" prop="">
<el-date-picker v-model="queryParams" type="year" placeholder="请选择学年"></el-date-picker>
<el-form-item label="学期">
<el-date-picker v-model="queryParams.schoolYear" type="year" value-format="yyyy" placeholder="选择年">
</el-date-picker>
<el-select v-model="queryParams.semester" placeholder="请选择学期">
<el-option label="上学期" value="1"></el-option>
<el-option label="下学期" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleOption(0)">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="!isMultiple"
@click="handleDelete">批量删除</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="tableData" stripe @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="tableData" stripe>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column fixed="left" label="序号" type="index" width="55" align="center" />
<el-table-column label="级部" align="center" prop="totalScore" />
<el-table-column label="实验名称" align="center" prop="totalScore" />
<el-table-column label="学年" align="center" prop="ranking" />
<el-table-column label="总班级数" align="center" prop="language" />
<el-table-column label="已完成班级数" align="center" prop="ywRanking" />
<el-table-column label="未完成班级数" align="center" prop="math" />
<el-table-column label="完成比例" align="center" prop="sxRanking" />
<el-table-column label="级部" align="center" prop="grade" />
<el-table-column label="实验名称" align="center" prop="experimentName" />
<el-table-column label="学年" align="center" prop="schoolYearSemester" />
<el-table-column label="总班级数" align="center" prop="totalClass" />
<el-table-column label="已完成班级数" align="center" prop="completeClass" />
<el-table-column label="完成比例" align="center" prop="ratio" />
<el-table-column fixed="right" label="操作" align="center" prop="orgname" width="150">
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleOption(2, row)">查看班级完成情况</el-button>
<el-button type="text" size="small" @click="handleLook(row)">查看班级完成情况</el-button>
</template>
</el-table-column>
</el-table>
<pagination ref="pageBlock" v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 新增、编辑、查看弹窗 -->
<el-dialog :title='`实验名称:${dialogTitle}`' :visible.sync="dialogVisible" width="80%">
<el-form :model="dialogParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item label="实验分类" prop="">
<el-select v-model="dialogParams" placeholder="请选择实验分类" clearable>
<!-- <el-option v-for="(item, index) in dict.type.exam_type" :key="index" :label="item.label"-->
<!-- :value="item.value"></el-option>-->
:limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 查看弹窗 -->
<el-dialog title="实验名称:物理研究" :visible.sync="dialogTableVisible" width="80%">
<el-form :model="form" ref="form" size="small" :inline="true" label-width="88px">
<el-form-item label="实验分类">
<el-select v-model="form.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 label="班级" prop="">
<el-input v-model="dialogParams" placeholder="请输入班级" clearable />
<el-form-item label="班级">
<el-input v-model="form.className" placeholder="请输入班级" clearable></el-input>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker v-model="form.startTime" type="date" placeholder="选择" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item label="实验时间" prop="">
<el-date-picker v-model="dialogParams" type="daterange" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期">
<el-form-item label="结束时间" prop="endTime">
<el-date-picker v-model="form.endTime" type="date" placeholder="选择" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="">重置</el-button>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getListtc">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuerytc">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="dialogData" stripe>
<el-table-column fixed="left" label="序号" type="index" width="55" align="center" />
<el-table-column label="实验分类" align="center" prop="math" />
<el-table-column label="班级" align="center" prop="ywRanking" />
<el-table-column label="实验时间" align="center" prop="ywRanking" />
<el-table-column label="节次" align="center" prop="sxRanking" />
<el-table-column label="附件" align="center" prop="orgname" width="150">
<el-table :data="ExperimentalData" border style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" />
<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="className" label="班级" />
<el-table-column align="center" prop="experimentTime" label="实验时间" />
<el-table-column align="center" prop="section" label="节次" />
<el-table-column align="center" prop="state" label="附件">
<template slot-scope="scope">
<span v-if="scope.row.state === '0'">未上报</span>
<span v-else-if="scope.row.state === '1'">已上报</span>
<span v-else>-</span>
</template>
</el-table-column>
</el-table>
<pagination ref="pageBlock" v-show="dialogTotal > 0" :total="dialogTotal"
:page.sync="dialogParams.pageNum" :limit.sync="dialogParams.pageSize"
@pagination="" />
</el-dialog>
<!-- 新增、编辑、查看弹窗 -->
</div>
</template>
<script>
import {
getList,
getSemester,
getTeacherxq,
getGrade
} from '@/api/smartSchool/laboratoryManagement/laboratoryExecution'
export default {
dicts: ['exam_type'],
dicts: ['experiment_classify', 'lab_sub'],
data() {
return {
queryParams: {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
sub: "",
grade: "",
experimentName: "",
},
//查看弹窗表格
ExperimentalData: [],
//弹窗
dialogTableVisible: false,
form: {
experimentPlanId: "",
experimentClassify: "",
className: "",
startTime: "",
endTime: "",
},
loading: false,
total: 0,
tableData:[],
//级部
gradeList: [],
tableData: [],
isMultiple: false, // table是否有选择
dialogTitle:'', //弹窗标题
dialogVisible:false,
dialogParams:{
dialogTitle: '', //弹窗标题
dialogVisible: false,
dialogParams: {
pageNum: 1,
pageSize: 10,
},
dialogTotal:0,
dialogData:[]
dialogTotal: 0,
dialogData: []
}
},
mounted() {
created() {
this.getSemesterAndList();
this.getListtc();
this.getGrade();
},
methods: {
//获取列表数据
getList(){},
//重置
resetQuery(){},
//删除
handleDelete(){},
//编辑 0新增 1编辑 2查看
handleOption(type){
this.nowOption = type
if(type == 0){
this.dialogTitle = '新增实验室记录'
}else if(type == 1){
this.dialogTitle = '编辑实验室记录'
}else {
this.dialogTitle = '查看实验室记录'
}
this.dialogVisible = true
async getSemesterAndList() {
await this.getSemester(); // 等待获取学年和学期信息
this.getList(); // 获取数据列表
},
getSemester() {
return new Promise((resolve, reject) => {
getSemester()
.then(response => {
this.queryParams.semester = response.semester;
this.queryParams.schoolYear = response.schoolYear + '';
resolve(); // 成功获取学年和学期信息
})
.catch(error => {
console.log(error);
reject(error);
});
});
},
getList() {
getList(this.queryParams)
.then(response => {
this.tableData = response.rows;
console.log('response', response);
this.total = response.total;
this.loading = false;
})
.catch(error => {
this.loading = false;
console.log(error);
});
},
//查询级部
getGrade() {
getGrade().then(response => {
this.loading = false;
this.gradeList = response.data;
console.log("this.gradeList", this.gradeList);
});
},
//查看按钮
handleLook(row) {
console.log(row);
console.log(this.form.id);
// 设置 dialogTableVisible 为 true,显示弹窗
this.dialogTableVisible = true;
// 根据 row 的数据构建请求参数
const params = {
experimentPlanId: row.id,
experimentClassify: this.form.experimentClassify,
className: this.form.className,
startTime: this.form.startTime,
endTime: this.form.endTime,
};
getTeacherxq(params).then(response => {
this.ExperimentalData = response.rows;
this.loading = false;
}).catch(error => {
});
},
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
sub: "",
grade: "",
experimentName: "",
},
this.getList();
},
//弹窗获取表单
getListtc() {
const params = {
experimentPlanId: this.form.id,
experimentClassify: this.form.experimentClassify,
className: this.form.className,
startTime: this.form.startTime,
endTime: this.form.endTime,
};
getTeacherxq(params).then(response => {
this.ExperimentalData = response.rows;
}).catch(error => {
});
},
//弹窗重置按钮
resetQuerytc() {
this.form = {
experimentPlanId: "",
experimentClassify: "",
className: "",
startTime: "",
endTime: "",
};
this.getListtc();
},
handleSelectionChange(val) {
this.isMultiple = val.length == 0 ? false : true
}
},
}
</script>
<style lang="scss" scoped>
</style>
<style lang="scss" scoped></style>
......@@ -21,7 +21,7 @@
</el-col>
</el-row>
</el-form>
<el-table :data="tableData" style="width: 100%">
<el-table border :data="tableData" style="width: 100%">
<el-table-column align="center" type="index" label="序号" width="55" />
<el-table-column align="center" prop="labName" label="实验室名称" />
<el-table-column align="center" prop="labSub" label="实验室学科">
......@@ -42,8 +42,7 @@
<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>
<el-button @click="handleRecord(row)" type="text" size="small">查看记录</el-button>
</div>
</template>
......@@ -56,16 +55,10 @@
<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="实验名称" 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="学科" prop="labSub">
<el-select v-model="form.labSub" placeholder="请选择" clearable style="width: 100%;"
:disabled="nowType === 2">
<el-select v-model="form.labSub" placeholder="请选择" clearable style="width: 100%;">
<el-option v-for="(item, index) in subList" :key="index" :label="item.dictLabel"
:value="item.dictValue"></el-option>
</el-select>
......@@ -109,61 +102,52 @@
</el-dialog>
<!-- 查看记录弹窗 -->
<el-dialog :title="title" :visible.sync="open" width="80%">
<el-form :model="form" ref="form" size="small" label-width="89px">
<el-row>
<el-col :span="4">
<el-form-item label="学科">
<el-select v-model="form.subject" 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-col>
<el-col :span="4">
<el-form-item label="实验室级部">
<el-select v-model="form.grade" 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-col>
<el-col :span="4">
<el-form-item label="班级">
<el-input v-model="form.grade" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="使用时间">
<el-date-picker v-model="form.time" type="daterange" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getListtc">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuerytc">重置</el-button>
</el-form-item>
</el-col>
</el-row>
<el-dialog :title="title" :visible.sync="open" width="90%">
<el-form :model="formlook" ref="formlook" size="small" :inline="true" label-width="98px">
<el-form-item label="实验分类">
<el-select v-model="formlook.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 label="实验室级部">
<el-select v-model="formlook.gradeId" placeholder="请选择" clearable>
<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-input v-model="formlook.className" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="开始时间" prop="startTime">
<el-date-picker v-model="formlook.startTime" type="date" placeholder="选择" value-format="yyyy-MM-dd"
style="width: 100%;">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker v-model="formlook.endTime" type="date" placeholder="选择" value-format="yyyy-MM-dd"
style="width: 100%;">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getListtc">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuerytc">重置</el-button>
</el-form-item>
</el-form>
<el-table :data="ExperimentalData" 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="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="grade" label="使用时间" />
<el-table-column align="center" prop="schoolYear" label="学年" />
<el-table-column align="center" prop="grade" label="实验级部" />
<el-table-column align="center" prop="className" label="实验班级" />
<el-table-column align="center" prop="labName" label="实验室" />
<el-table-column align="center" prop="section" label="节次" />
<el-table-column align="center" prop="sub" label="学科分类" />
<el-table-column align="center" prop="experimentName" label="实验名称" />
<el-table-column align="center" prop="chapterContent" label="章节内容" />
<el-table-column align="center" prop="experimentClassify" label="实验分类" />
<el-table-column align="center" prop="experimentTime" label="实验时间" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
<pagination v-show="totaltc > 0" :total="totaltc" v-model="formlook.pageNum" :limit.sync="formlook.pageSize"
@pagination="getListtc" />
</el-dialog>
</div>
......@@ -178,10 +162,14 @@ import {
departUser,
subSchoolLab,
getSchoolLabxq,
getClassDetails
} from '@/api/smartSchool/laboratoryManagement/laboratoryManagementlist'
import {
getGrade,
} from '@/api/smartSchool/gradeWork/laboratoryManagement/experimentalPlan'
export default {
name: 'index',
dicts: ['lab_state', 'lab_sub'],
dicts: ['lab_state', 'lab_sub', 'experiment_classify',],
data() {
return {
queryForm: {
......@@ -209,6 +197,16 @@ export default {
labUseGoods: '',
},
formlook: {
pageNum: 1,
pageSize: 10,
labId: '',
sub: '',
gradeId: '',
className: '',
startTime: '',
endTime: ''
},
//实验分类下拉框
options: {
......@@ -239,11 +237,15 @@ export default {
//负责人下拉框
adminList: [],
total: 0,
totaltc: 0,
//级部
gradeList: [],
}
},
created() {
this.getList();
this.getGrade();
this.getListtc();
},
methods: {
getList() {
......@@ -267,13 +269,40 @@ export default {
}
});
},
//查询级部
getGrade() {
getGrade().then(response => {
this.loading = false;
this.gradeList = response.data;
console.log("this.gradeList", this.gradeList);
});
},
//弹窗搜索
getListtc() {
const params = {
labId: this.formlook.labId,
sub: this.formlook.sub,
gradeId: this.formlook.gradeId,
experimentPlanId: this.form.id,
experimentClassify: this.formlook.experimentClassify,
className: this.formlook.className,
startTime: this.formlook.startTime,
endTime: this.formlook.endTime,
pageNum: this.formlook.pageNum,
pageSize: this.formlook.pageSize
};
console.log('实验', params);
getClassDetails(params).then(response => {
this.ExperimentalData = response.rows;
this.totaltc = response.total;
this.loading = false;
});
},
// 表单重置
reset() {
this.form = {
......@@ -289,8 +318,23 @@ export default {
},
//弹窗重置
resetQuerytc() {
const savedLabId = this.formlook.labId; // 保存 labId 的值
console.log(savedLabId, 'savedLabId');
this.formlook = {
pageNum: 1,
pageSize: 10,
labId: savedLabId,
sub: '',
gradeId: '',
experimentClassify: '',
className: '',
startTime: '',
endTime: ''
};
this.getListtc();
},
// 0新增、1修改、2查看
handleOption(type, row) {
this.form = {
......@@ -353,9 +397,27 @@ export default {
//查看记录操作
handleRecord() {
handleRecord(row) {
console.log(row);
this.open = true;
this.title = "实验室使用记录明细";
const params = {
labId: row.id,
sub: this.formlook.sub,
gradeId: this.formlook.gradeId,
experimentPlanId: this.form.id,
experimentClassify: this.formlook.experimentClassify,
className: this.formlook.className,
startTime: this.formlook.startTime,
endTime: this.formlook.endTime,
};
console.log('实验', params);
getClassDetails(params).then(response => {
this.ExperimentalData = response.rows;
console.log('this.formjl', this.formjl);
this.loading = false
})
},
//取消按钮
cancel() {
......
<template>
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="88px">
<el-form-item label="预约时间段">
<el-date-picker v-model="queryForm.time" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" value-format="yyyy-MM-dd">
<el-form-item label="预约时间段" prop="time">
<el-date-picker v-model="queryForm.startTime" type="date" placeholder="选择" value-format="yyyy-MM-dd">
</el-date-picker>
<el-date-picker v-model="queryForm.endTime" type="date" placeholder="选择" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item label="实验级部">
<el-input v-model="queryForm.grade" placeholder="请输入"></el-input>
<el-input v-model="queryForm.gradeId" placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="申请老师">
<el-input v-model="queryForm.applyName" placeholder="请输入"></el-input>
......@@ -19,22 +20,43 @@
</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="sub" 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="schoolYear" label="学年" />
<el-table-column align="center" prop="className" label="班级" />
<el-table-column align="center" prop="experimentTime" label="实验时间" />
<el-table-column align="center" prop="section" label="节次" />
<el-table-column align="center" prop="experimentName" label="实验名称" />
<el-table-column align="center" prop="experimentClassify" 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="labName" label="实验室" />
<el-table-column align="center" prop="chapterContent" label="章节内容" />
<el-table-column align="center" prop="applyName" label="申请老师" />
<el-table-column align="center" prop="applyState" label="申报状态" />
<el-table-column align="center" prop="applyState" label="申报状态">
<template slot-scope="scope">
<span v-if="scope.row.applyState === '1'">已确认</span>
<span v-else>未确认</span>
</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>
<el-button @click="handleApprove(scope.row)" type="text" size="small">审批</el-button>
<div v-if="scope.row.applyState === '1'">
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
</div>
<div v-else>
<el-button @click="handleLook(scope.row)" type="text" size="small">查看</el-button>
<el-button @click="handleApprove(scope.row)" type="text" size="small">审批</el-button>
</div>
</template>
</el-table-column>
</el-table>
......@@ -125,7 +147,6 @@
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button type="primary" @click="cancle">取 消</el-button>
</div>
</el-dialog>
......@@ -134,72 +155,60 @@
<el-form :model="form" ref="form" size="small" label-width="100px">
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="学科">
<el-input v-model="form.sub" placeholder="请输入" clearable />
<el-form-item label="实验名称">
<el-input v-model="form.experimentName" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="级部">
<el-input v-model="form.grade" placeholder="请输入" clearable />
<el-form-item label="章节内容">
<el-input v-model="form.chapterContent" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="学年">
<el-input v-model="form.schoolYear" placeholder="请输入" clearable />
<el-form-item label="实验分类">
<el-input v-model="form.experimentClassify" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="班级">
<el-input v-model="form.className" placeholder="请输入" clearable />
<el-form-item label="实验室">
<el-input v-model="form.labName" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="节次">
<el-input v-model="form.section" placeholder="请输入" clearable />
<el-form-item label="学科">
<el-input v-model="form.sub" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实验时间">
<el-input v-model="form.experimentTime" placeholder="请输入" clearable />
<el-form-item label="级部">
<el-input v-model="form.grade" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="实验名称">
<el-input v-model="form.labName" placeholder="请输入" clearable />
<el-form-item label="班级">
<el-input v-model="form.className" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实验分类">
<el-input v-model="form.experimentClassify" placeholder="请输入" clearable />
<el-form-item label="学年">
<el-input v-model="form.schoolYearSemester" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="实验">
<el-input v-model="form.labName" placeholder="请输入" clearable />
<el-form-item label="实验时间">
<el-input v-model="form.experimentTime" placeholder="请输入" clearable />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="章节内容">
<el-input v-model="form.chapterContent" placeholder="请输入" clearable />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="附件">
<el-input v-model="form.schoolAccessoryList" placeholder="请输入" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="20">
<el-col :span="24">
<el-form-item label="实验用品">
<el-input v-model="form.experimentUseGoods" type="textarea" placeholder="请输入"
clearable></el-input>
......@@ -208,7 +217,7 @@
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button type="primary" @click="submitForm">提 交</el-button>
<el-button type="primary" @click="cancle">取 消</el-button>
</div>
</el-dialog>
......@@ -225,10 +234,14 @@ import {
} from '@/api/smartSchool/laboratoryManagement/teacherApplication'
export default {
name: 'index',
dicts: ['experiment_classify', 'lab_sub'],
data() {
return {
queryForm: {
startTime: "",
endTime: "",
gradeId: "",
applyName: "",
},
schoolAccessoryList: [],
baseUrl: process.env.VUE_APP_BASE_API,
......@@ -261,11 +274,7 @@ export default {
this.loading = false
})
},
//审批
handleApprove() {
this.open = true;
},
//查看按钮操作
handleLook(row) {
const id = row.id || this.ids;
......@@ -279,16 +288,50 @@ export default {
this.dialogTableVisible = true;
},
resetQuery() {
this.getList();
this.queryForm = {
startTime: "",
endTime: "",
gradeId: "",
applyName: "",
},
this.getList();
},
//提交按钮
submitForm() {
handleApprove(row) {
this.open = true;
const id = row.id || this.ids;
getTeacherxq(id).then(response => {
this.form = response.data;
this.fileList = response.data.schoolAccessoryList;
console.log('this.schoolAccessoryList', this.schoolAccessoryList);
console.log('this.form', this.form);
this.loading = false
})
},
// 取消按钮
cancle() {
this.dialogTableVisible = false;
this.open = false;
},
/** 提交按钮 */
submitForm() {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.id != null) {
const params = {
id: this.form.id,
applyState: '1',
};
updateState(params).then(response => {
console.log(params, params);
this.$modal.msgSuccess('提交成功');
this.open = false;
this.getList();
});
}
}
});
}
},
}
......
<template>
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="学科分类" prop="sub">
<el-select v-model="queryForm.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-form-item label="级部">
<el-input v-model="queryForm.grade" 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.experimentName" placeholder="请输入实验名称" clearable></el-input>
</el-form-item>
<el-form-item label="学期">
<el-date-picker v-model="queryForm.year" type="year" value-format="yyyy" placeholder="选择年">
<el-date-picker v-model="queryForm.schoolYear" type="year" value-format="yyyy" placeholder="选择年">
</el-date-picker>
<el-select v-model="queryForm.semester" @change="courseInfo" placeholder="请选择学期">
<el-option label="上学期" value="0"></el-option>
<el-option label="下学期" value="1"></el-option>
<el-select v-model="queryForm.semester" placeholder="请选择学期">
<el-option label="上学期" value="1"></el-option>
<el-option label="下学期" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item>
......@@ -23,12 +29,11 @@
<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="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="experimentName" label="实验名称" />
<el-table-column align="center" prop="schoolYearSemester" label="学期" />
<el-table-column align="center" prop="totalClass" label="总班级数" />
<el-table-column align="center" prop="completeClass" label="已完成班级数" />
<el-table-column align="center" prop="ratio" 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>
......@@ -39,22 +44,27 @@
@pagination="getList" />
<!-- 查看弹窗 -->
<el-dialog title="实验名称:物理研究" :visible.sync="dialogTableVisible" width="70%">
<el-form :model="form" ref="form" size="small" :inline="true" label-width="68px">
<el-dialog title="实验名称:物理研究" :visible.sync="dialogTableVisible" width="80%">
<el-form :model="form" ref="form" 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 v-model="form.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 label="班级">
<el-input v-model="form.grade" placeholder="请输入班级" clearable></el-input>
<el-input v-model="form.className" placeholder="请输入班级" clearable></el-input>
</el-form-item>
<el-form-item label="实验时间">
<el-date-picker v-model="form.time" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" value-format="yyyy-MM-dd">
<el-form-item label="开始时间" prop="startTime">
<el-date-picker v-model="form.startTime" type="date" placeholder="选择" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endTime">
<el-date-picker v-model="form.endTime" type="date" placeholder="选择" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getListtc">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuerytc">重置</el-button>
......@@ -62,15 +72,23 @@
</el-form>
<el-table :data="ExperimentalData" 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="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="className" label="班级" />
<el-table-column align="center" prop="experimentTime" label="实验时间" />
<el-table-column align="center" prop="section" label="节次" />
<el-table-column align="center" prop="state" label="附件">
<template slot-scope="scope">
<span v-if="scope.row.state === '0'">未上报</span>
<span v-else-if="scope.row.state === '1'">已上报</span>
<span v-else>-</span>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
@pagination="getListtc" />
</el-dialog>
......@@ -78,23 +96,40 @@
</template>
<script>
import {
getList,
getSemester,
getTeacherxq
} from '@/api/smartSchool/laboratoryManagement/leadlaboratoryCompletion'
export default {
name: 'index',
dicts: ['experiment_classify', 'lab_sub'],
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
sub: "",
grade: "",
experimentName: "",
},
//表格数据
tableData: [
{
}
],
//查看弹窗表格
ExperimentalData: [],
form: {
pageNum: 1,
pageSize: 10,
experimentPlanId: "",
experimentClassify: "",
className: "",
startTime: "",
endTime: "",
},
//实验分类下拉框
options: {
......@@ -105,25 +140,110 @@ export default {
total: 0,
}
},
created() {
this.getSemesterAndList();
this.getListtc();
},
methods: {
async getSemesterAndList() {
await this.getSemester(); // 等待获取学年和学期信息
this.getList(); // 获取数据列表
},
getSemester() {
return new Promise((resolve, reject) => {
getSemester()
.then(response => {
this.queryForm.semester = response.semester;
this.queryForm.schoolYear = response.schoolYear + '';
resolve(); // 成功获取学年和学期信息
})
.catch(error => {
console.log(error);
reject(error);
});
});
},
getList() {
getList(this.queryForm)
.then(response => {
this.tableData = response.rows;
console.log('response', response);
this.total = response.total;
this.loading = false;
})
.catch(error => {
this.loading = false;
console.log(error);
});
},
//查看按钮
handleLook(row) {
console.log(row);
console.log(this.form.id);
// 设置 dialogTableVisible 为 true,显示弹窗
this.dialogTableVisible = true;
// 根据 row 的数据构建请求参数
const params = {
experimentPlanId: row.id,
experimentClassify: this.form.experimentClassify,
className: this.form.className,
startTime: this.form.startTime,
endTime: this.form.endTime,
};
getTeacherxq(params).then(response => {
this.ExperimentalData = response.rows;
this.total = response.total;
this.loading = false;
}).catch(error => {
});
},
resetQuery() {
this.queryForm = {
pageNum: 1,
pageSize: 10,
schoolYear: "",
semester: "",
sub: "",
grade: "",
experimentName: "",
};
this.getList();
},
//弹窗获取表单
getListtc() {
const params = {
experimentPlanId: this.form.id,
experimentClassify: this.form.experimentClassify,
className: this.form.className,
startTime: this.form.startTime,
endTime: this.form.endTime,
};
getTeacherxq(params).then(response => {
this.ExperimentalData = response.rows;
}).catch(error => {
});
},
//弹窗重置按钮
resetQuerytc() {
this.getList();
},
//查看按钮操作
handleLook() {
this.dialogTableVisible = true;
this.form = {
pageNum: 1,
pageSize: 10,
experimentPlanId: "",
experimentClassify: "",
className: "",
startTime: "",
endTime: "",
};
this.getListtc();
},
},
}
</script>
......
......@@ -2,11 +2,12 @@
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="教师">
<el-input v-model="queryForm.teacher" placeholder="请输入教师" clearable></el-input>
<el-input v-model="queryForm.applyName" placeholder="请输入教师" clearable></el-input>
</el-form-item>
<el-form-item label="学">
<el-date-picker v-model="queryForm.semester" type="year" value-format="yyyy" placeholder="选择年">
<el-form-item label="学">
<el-date-picker v-model="queryForm.schoolYear" type="year" value-format="yyyy" placeholder="选择年">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
......@@ -14,12 +15,12 @@
</el-form-item>
</el-form>
<el-table :data="tableData" border style="width: 100%">
<el-table-column align="center" prop="teacher" label="教师" />
<el-table-column align="center" prop="year" 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="name" label="已完成实验数" />
<el-table-column align="center" prop="applyName" label="教师" />
<el-table-column align="center" prop="schoolYear" label="学年" />
<el-table-column align="center" prop="fzcount" label="分组实验" />
<el-table-column align="center" prop="sycount" label="演示实验" />
<el-table-column align="center" prop="sjcount" label="探究实验" />
<el-table-column align="center" prop="ywccount" label="已完成实验数" />
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
......@@ -31,28 +32,75 @@
</template>
<script>
import {
getList,
getTeacherxq,
getSemester
} from '@/api/smartSchool/laboratoryManagement/leadlaboratoryRecords'
export default {
name: 'index',
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
schoolYear: "",
applyName: "",
},
//表格数据
tableData: [
{
}
],
total: 0,
}
},
created() {
this.getSemesterAndList();
},
methods: {
async getSemesterAndList() {
await this.getSemester(); // 等待获取学年信息
this.getList(); // 获取默认数据
},
getList() {
const params = {
schoolYear: this.queryForm.schoolYear,
applyName: this.queryForm.applyName,
};
getList(params)
.then(response => {
this.tableData = response.rows;
console.log('response', response);
this.total = response.total;
this.loading = false;
})
.catch(error => {
this.loading = false;
console.log(error);
});
},
getSemester() {
return new Promise((resolve, reject) => {
getSemester()
.then(response => {
this.queryForm.schoolYear = response.schoolYear + '';
resolve(); // 成功获取学年信息
})
.catch(error => {
console.log(error);
reject(error);
});
});
},
resetQuery() {
this.queryForm = {
pageNum: 1,
pageSize: 10,
schoolYear: "",
applyName: "",
};
this.getList();
},
......
......@@ -58,7 +58,7 @@
</div>
<div>
<h2 class="title">{{ form.year }}年{{ form.deptName }}科室预算</h2>
<div style="display: flex;justify-content: flex-end;margin-bottom: 10px;">单位:万元</div>
<div style="display: flex;margin-bottom: 10px;">单位:万元</div>
</div>
<!-- 表格数据 -->
<el-table border :data="lookTable" ref="table" class="lookTable">
......
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