Commit 86ef3e1c by zhaopanyu

zpy 10.26

parent 604e1338
import request from '@/utils/request' import request from "@/utils/request";
// 查询老师请假信息列表 // 查询老师请假信息列表
export function listTeacherLeave(query) { export function listTeacherLeave(query) {
return request({ return request({
url: '/school/teacherLeave/list', url: "/school/teacherLeave/list",
method: 'get', method: "get",
params: query params: query,
}) });
} }
// 查询老师请假信息详细 // 查询老师请假信息详细
export function getTeacherLeave(id) { export function getTeacherLeave(id) {
return request({ return request({
url: '/school/teacherLeave/queryOne/' + id, url: "/school/teacherLeave/queryOne/" + id,
method: 'get' method: "get",
}) });
} }
// 新增老师请假信息 // 新增老师请假信息
export function addTeacherLeave(data) { export function addTeacherLeave(data) {
return request({ return request({
url: '/school/teacherLeave/add', url: "/school/teacherLeave/add",
method: 'post', method: "post",
data: data data: data,
}) });
} }
// 修改老师请假信息 // 修改老师请假信息
export function updateTeacherLeave(data) { export function updateTeacherLeave(data) {
return request({ return request({
url: '/school/teacherLeave/edit', url: "/school/teacherLeave/edit",
method: 'put', method: "put",
data: data data: data,
}) });
} }
// 删除老师请假信息 // 删除老师请假信息
export function delTeacherLeave(ids) { export function delTeacherLeave(ids) {
return request({ return request({
url: '/school/teacherLeave/delete/' + ids, url: "/school/teacherLeave/delete/" + ids,
method: 'delete' method: "delete",
}) });
} }
//提交申请 //提交申请
export function submitApply(id) { export function submitApply(id) {
return request({ return request({
url: '/school/teacherLeave/submitApply/' + id, url: "/school/teacherLeave/submitApply/" + id,
method: 'post', method: "post",
}) });
} }
/** /**
* 待办事项列表 * 待办事项列表
*/ */
export function taskList(query) { export function taskList(query) {
return request({ return request({
url: '/school/teacherLeave/taskList', url: "/school/teacherLeave/taskList",
method: 'get', method: "get",
params: query params: query,
}) });
} }
/** /**
...@@ -68,58 +67,58 @@ export function taskList(query) { ...@@ -68,58 +67,58 @@ export function taskList(query) {
*/ */
export function taskDoneList(query) { export function taskDoneList(query) {
return request({ return request({
url: '/school/teacherLeave/taskDoneList', url: "/school/teacherLeave/taskDoneList",
method: 'get', method: "get",
params: query params: query,
}) });
} }
//审批历史列表 //审批历史列表
export function listHistory(data) { export function listHistory(data) {
return request({ return request({
url: '/activiti/process/listHistory', url: "/activiti/process/listHistory",
method: 'get', method: "get",
params: data params: data,
}) });
} }
/** 销假列表(同历史任务接口,目前分两个接口来做) */ /** 销假列表(同历史任务接口,目前分两个接口来做) */
export function revokeList(data) { export function revokeList(data) {
return request({ return request({
url: '/activiti/process/listHistory', url: "/activiti/process/listHistory",
method: 'get', method: "get",
params: data params: data,
}) });
} }
// 进度查看 // 进度查看
export function viewSchedule(data) { export function viewSchedule(data) {
return request({ return request({
url: '/activiti/process/read-resource', url: "/activiti/process/read-resource",
method: 'get', method: "get",
params: data params: data,
}) });
} }
/** 审批任务 */ /** 审批任务 */
export function complete({taskId, instanceId, comment, pass}) { export function complete({ taskId, instanceId, comment, pass }) {
return request({ return request({
url: `/school/teacherLeave/complete/${taskId}/${instanceId}`, url: `/school/teacherLeave/complete/${taskId}/${instanceId}`,
method: 'post', method: "post",
data: { data: {
comment, comment,
pass pass,
} },
}) });
} }
/** 销假 */ /** 销假 */
export function cancelLeave(taskId, postForm) { export function cancelLeave(taskId, postForm) {
return request({ return request({
url: '/school/teacherLeave/cancelLeave/' + taskId, url: "/school/teacherLeave/cancelLeave/" + taskId,
method: 'post', method: "post",
data: postForm data: postForm,
}) });
} }
/*新增修改dialog*/ /*新增修改dialog*/
...@@ -127,44 +126,49 @@ export function cancelLeave(taskId, postForm) { ...@@ -127,44 +126,49 @@ export function cancelLeave(taskId, postForm) {
//获取级部/处室下拉框 //获取级部/处室下拉框
export function getGradeOfficeList(query) { export function getGradeOfficeList(query) {
return request({ return request({
url: '/schoolGrade/getList', url: "/schoolGrade/getList",
method: 'get', method: "get",
params: query params: query,
}) });
} }
//获取级部/处室 主任 下拉框 //获取级部/处室 主任 下拉框
export function getGradeOfficeDirectorList(form) { export function getGradeOfficeDirectorList(form) {
return request({ return request({
url: '/school/teacherLeave/getDeptLeader/' + form.applyOrgid, url: "/school/teacherLeave/getDeptLeader/" + form.applyOrgid,
params: form, params: form,
method: 'get', method: "get",
}) });
} }
//分管领导/主要领导下拉框 //分管领导/主要领导下拉框
export function getLeaderList(form) { export function getLeaderList(form) {
return request({ return request({
url: '/school/teacherLeave/getSchoolLeader', url: "/school/teacherLeave/getSchoolLeader",
params: form, params: form,
method: 'get', method: "get",
}) });
} }
//根据请假开始时间和结束时间,获取请假时长 //根据请假开始时间和结束时间,获取请假时长
export function getLeaveTime(data) { export function getLeaveTime(data) {
return request({ return request({
url: '/school/teacherLeave/getTotalTime', url: "/school/teacherLeave/getTotalTime",
method: 'get', method: "get",
params: data, params: data,
}) });
} }
export function getDepId() { export function getDepId() {
return request({ return request({
url: '/schoolGrade/getDeptOrGrade', url: "/schoolGrade/getDeptOrGrade",
method: 'get', method: "get",
}) });
}
//判断用户所选部门是属于级部还是科室
export function getDepids(deptId) {
return request({
url: "/schoolGrade/judgeDeptOrGrade/" + deptId,
method: "get",
});
} }
...@@ -284,7 +284,7 @@ import { ...@@ -284,7 +284,7 @@ import {
getLeaderList getLeaderList
} from "@/api/smartSchool/personWork/leaveApply"; } from "@/api/smartSchool/personWork/leaveApply";
import { formatDate } from "../../../../utils"; import { formatDate } from "../../../../utils";
import { getDepId } from "../../../../api/smartSchool/personWork/leaveApply"; import { getDepId, getDepids } from "../../../../api/smartSchool/personWork/leaveApply";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"; import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import SelectUser from "./components/SelectUser"; import SelectUser from "./components/SelectUser";
...@@ -323,7 +323,7 @@ export default { ...@@ -323,7 +323,7 @@ export default {
created() { created() {
this.getList(); this.getList();
this.schoolLeader(); this.schoolLeader();
this.employeeType = this.$store.state.user.employeeType; // this.employeeType = this.$store.state.user.employeeType;
this.form.teacherId = this.$store.state.user.userId; this.form.teacherId = this.$store.state.user.userId;
}, },
...@@ -529,8 +529,14 @@ export default { ...@@ -529,8 +529,14 @@ export default {
}, },
deptIdAndName(node) { deptIdAndName(node) {
this.form.applyOrgname = node.label; console.log(node);
this.form.handUserName1 = undefined; getDepids(node.id).then(response => {
this.employeeType = response.employeeType;
});
// this.form.applyOrgname = node.label;
// this.form.handUserName1 = undefined;
// this.gradeDirectorList() // this.gradeDirectorList()
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
...@@ -746,7 +752,6 @@ export default { ...@@ -746,7 +752,6 @@ export default {
if (res.code == 200) { if (res.code == 200) {
this.schoolLeaderList = res.rows this.schoolLeaderList = res.rows
} }
})) }))
}, },
...@@ -841,6 +846,8 @@ export default { ...@@ -841,6 +846,8 @@ export default {
getDepId().then(res => { getDepId().then(res => {
this.$set(this.form, "applyOrgid", res.data); this.$set(this.form, "applyOrgid", res.data);
this.form.applyOrgid = res.data this.form.applyOrgid = res.data
this.employeeType = res.employeeType
console.log(this.employeeType, '22');
let arr = this.readNodes(this.gradeOfficeList) let arr = this.readNodes(this.gradeOfficeList)
const node = arr.find(item => { const node = arr.find(item => {
if (item.id == this.form.applyOrgid) { if (item.id == this.form.applyOrgid) {
......
...@@ -2,12 +2,7 @@ ...@@ -2,12 +2,7 @@
<div class="app-container"> <div class="app-container">
<el-form :model="queryForm" :inline="true" size="small" @submit.native.prevent> <el-form :model="queryForm" :inline="true" size="small" @submit.native.prevent>
<el-form-item label="序号" prop="sortId"> <el-form-item label="序号" prop="sortId">
<el-input <el-input clearable placeholder="请输入序号" v-model="queryForm.sortId" @keyup.enter.native="handleQuery">
clearable
placeholder="请输入序号"
v-model="queryForm.sortId"
@keyup.enter.native="handleQuery"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
...@@ -20,63 +15,31 @@ ...@@ -20,63 +15,31 @@
<el-form> <el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
type="primary" v-hasPermi="['system:schoolTimeDetail:add']">新增
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:schoolTimeDetail:add']"
>新增
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
type="success" v-hasPermi="['system:schoolTimeDetail:edit']">修改
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:schoolTimeDetail:edit']"
>修改
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
type="danger" v-hasPermi="['system:schoolTimeDetail:remove']">删除
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:schoolTimeDetail:remove']"
>删除
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="info" plain icon="el-icon-close" size="mini" @click="handleClose"
type="info" v-hasPermi="['system:schoolTimeDetail:close']">关闭
plain
icon="el-icon-close"
size="mini"
@click="handleClose"
v-hasPermi="['system:schoolTimeDetail:close']"
>关闭
</el-button> </el-button>
</el-col> </el-col>
...@@ -84,67 +47,34 @@ ...@@ -84,67 +47,34 @@
</el-row> </el-row>
</el-form> </el-form>
<el-table <el-table v-loading="loading" :data="timeList" @selection-change="handleSelectionChange">
v-loading="loading" <el-table-column type="selection" width="55" align="center" />
:data="timeList" <el-table-column label="序号" sortable align="center" width="80px" prop="sortId" />
@selection-change="handleSelectionChange"> <el-table-column label="名称" align="center" prop="sortName" show-overflow-tooltip />
<el-table-column type="selection" width="55" align="center"/> <el-table-column sortable label="开始时间" align="center" prop="startTime" show-overflow-tooltip />
<el-table-column label="序号" sortable align="center" width="80px" prop="sortId"/> <el-table-column label="结束时间" sortable align="center" prop="endTime" show-overflow-tooltip>
<el-table-column label="名称" align="center" prop="sortName" show-overflow-tooltip/>
<el-table-column sortable label="开始时间" align="center" prop="startTime"
show-overflow-tooltip/>
<el-table-column label="结束时间" sortable align="center" prop="endTime"
show-overflow-tooltip>
</el-table-column> </el-table-column>
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip> <el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
size="mini" v-hasPermi="['system:schoolTimeDetail:edit']">编辑
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:schoolTimeDetail:edit']"
>编辑
</el-button> </el-button>
<el-button <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
size="mini" v-hasPermi="['system:schoolTimeDetail:remove']">删除
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:schoolTimeDetail:remove']"
>删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-dialog <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body @close="cancel">
:title="title"
:visible.sync="open"
width="600px"
append-to-body
@close="cancel"
>
<el-form ref="postForm" :model="postForm" :rules="rules" label-width="80px"> <el-form ref="postForm" :model="postForm" :rules="rules" label-width="80px">
<el-form-item label="节次" prop="sortName"> <el-form-item label="节次" prop="sortName">
<el-select <el-select v-model="postForm.sortName" value-key="sortId" placeholder="请选择节次" clearable @change="setSortId"
v-model="postForm.sortName" style="width: 100%">
value-key="sortId" <el-option v-for="item in dictList" :key="item.value" :label="item.label"
placeholder="请选择节次" :value="{ sortId: item.value, sortName: item.label }" :disabled="item.disabled" />
clearable
@change="setSortId"
style="width: 100%"
>
<el-option
v-for="item in dictList"
:key="item.value"
:label="item.label"
:value="{sortId:item.value,sortName:item.label}"
:disabled="item.disabled"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -153,29 +83,18 @@ ...@@ -153,29 +83,18 @@
</el-form-item> --> </el-form-item> -->
<el-form-item label="开始时间" prop="startTime"> <el-form-item label="开始时间" prop="startTime">
<el-time-picker <el-time-picker v-model="postForm.startTime" value-format="HH:mm" format="HH:mm" placeholder="选择开始时间"
v-model="postForm.startTime" style="width: 100%">
value-format="HH:mm"
format="HH:mm"
placeholder="选择开始时间"
style="width: 100%"
>
</el-time-picker> </el-time-picker>
</el-form-item> </el-form-item>
<el-form-item label="结束时间" prop="endTime"> <el-form-item label="结束时间" prop="endTime">
<div class="block"> <div class="block">
<el-time-picker <el-time-picker v-model="postForm.endTime" value-format="HH:mm" format="HH:mm" placeholder="选择结束时间"
v-model="postForm.endTime" style="width: 100%">
value-format="HH:mm"
format="HH:mm"
placeholder="选择结束时间"
style="width: 100%"
>
</el-time-picker> </el-time-picker>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input clearable v-model="postForm.remark"></el-input> <el-input clearable v-model="postForm.remark"></el-input>
</el-form-item> </el-form-item>
...@@ -186,11 +105,7 @@ ...@@ -186,11 +105,7 @@
</div> </div>
</el-dialog> </el-dialog>
<ExportTable <ExportTable :open-export.sync="exportOptions.open" :title="exportOptions.title" @export="exportFile"></ExportTable>
:open-export.sync="exportOptions.open"
:title="exportOptions.title"
@export="exportFile"
></ExportTable>
</div> </div>
</template> </template>
...@@ -203,10 +118,10 @@ import { ...@@ -203,10 +118,10 @@ import {
queryOneDetail, queryOneDetail,
deleteTimeDetail deleteTimeDetail
} from '@/api/smartSchool/schoolManage/schoolMomentsDetail' } from '@/api/smartSchool/schoolManage/schoolMomentsDetail'
import {ExportType} from "@/enums/common" import { ExportType } from "@/enums/common"
import {TimeName} from '@/enums/schedule/schoolMomentsDetail' import { TimeName } from '@/enums/schedule/schoolMomentsDetail'
import {CustomCellStyle} from '@/enums/customStyle'; import { CustomCellStyle } from '@/enums/customStyle';
import {getDicts} from '@/api/system/dict/data' import { getDicts } from '@/api/system/dict/data'
import { closeCurrentTab } from "../../../../../../utils/utilLibrary/routerBatch/routerBatch"; import { closeCurrentTab } from "../../../../../../utils/utilLibrary/routerBatch/routerBatch";
export default { export default {
...@@ -247,13 +162,13 @@ export default { ...@@ -247,13 +162,13 @@ export default {
// 表单校验 // 表单校验
rules: { rules: {
sortName: [ sortName: [
{required: true, message: "名称不能为空", trigger: "blur"} { required: true, message: "名称不能为空", trigger: "blur" }
], ],
startTime: [ startTime: [
{required: true, message: "开始时间不能为空", trigger: "blur"} { required: true, message: "开始时间不能为空", trigger: "blur" }
], ],
endTime: [ endTime: [
{required: true, message: "结束时间不能为空", trigger: "blur"} { required: true, message: "结束时间不能为空", trigger: "blur" }
], ],
}, },
// 弹出层标题 // 弹出层标题
...@@ -291,8 +206,9 @@ export default { ...@@ -291,8 +206,9 @@ export default {
exportType: '', exportType: '',
} }
}, },
created() { created() {
this.schoolTimeId = this.$route.query && this.$route.query.schoolTimeId;
this.getList(); this.getList();
this.getDict(); this.getDict();
...@@ -313,7 +229,9 @@ export default { ...@@ -313,7 +229,9 @@ export default {
// 获取列表数据 // 获取列表数据
getList() { getList() {
this.loading = true; this.loading = true;
this.schoolTimeId = this.$route.query && this.$route.query.schoolTimeId;
getDetailList(this.queryForm, this.schoolTimeId).then(response => { getDetailList(this.queryForm, this.schoolTimeId).then(response => {
console.log(this.queryForm, this.schoolTimeId);
this.loading = false this.loading = false
this.timeList = response.rows this.timeList = response.rows
this.sortList = this.timeList.map(function (value, index) { this.sortList = this.timeList.map(function (value, index) {
...@@ -411,12 +329,12 @@ export default { ...@@ -411,12 +329,12 @@ export default {
const ids = this.ids; const ids = this.ids;
const schoolTimeId = this.schoolTimeId const schoolTimeId = this.schoolTimeId
const options = [ const options = [
{type: ExportType.TOTAL, path: '/schoolTimeDetail/export/', params: {schoolTimeId}}, { type: ExportType.TOTAL, path: '/schoolTimeDetail/export/', params: { schoolTimeId } },
{type: ExportType.SELECT, path: '/schoolTimeDetail/export/' + ids, params: {schoolTimeId}}, { type: ExportType.SELECT, path: '/schoolTimeDetail/export/' + ids, params: { schoolTimeId } },
{ {
type: ExportType.QUERY, type: ExportType.QUERY,
path: '/schoolTimeDetail/export/', path: '/schoolTimeDetail/export/',
params: {schoolTimeId, sortId: this.queryForm.sortId} params: { schoolTimeId, sortId: this.queryForm.sortId }
}, },
] ]
callback(options, `学校时刻明细${new Date().getTime()}.xlsx`); callback(options, `学校时刻明细${new Date().getTime()}.xlsx`);
...@@ -502,7 +420,7 @@ export default { ...@@ -502,7 +420,7 @@ export default {
this.resetForm('postForm') this.resetForm('postForm')
}, },
setSortId(data) { setSortId(data) {
const {sortId, sortName} = data const { sortId, sortName } = data
this.postForm.sortId = sortId this.postForm.sortId = sortId
this.postForm.sortName = sortName this.postForm.sortName = sortName
} }
...@@ -512,6 +430,4 @@ export default { ...@@ -512,6 +430,4 @@ export default {
} }
</script> </script>
<style> <style></style>
</style>
...@@ -2,12 +2,8 @@ ...@@ -2,12 +2,8 @@
<section class="app-container"> <section class="app-container">
<el-form :model="queryParams" :inline="true" size="small" @submit.native.prevent> <el-form :model="queryParams" :inline="true" size="small" @submit.native.prevent>
<el-form-item label="时刻名称" prop="timeName"> <el-form-item label="时刻名称" prop="timeName">
<el-input <el-input clearable v-model="queryParams.timeName" @keyup.enter.native="handleQuery"
clearable placeholder="选择时刻"></el-input>
v-model="queryParams.timeName"
@keyup.enter.native="handleQuery"
placeholder="选择时刻"
></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
...@@ -16,38 +12,18 @@ ...@@ -16,38 +12,18 @@
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
type="primary" v-hasPermi="['system:schoolTime:add']">新增
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:schoolTime:add']"
>新增
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
type="success" v-hasPermi="['system:schoolTime:edit']">修改
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:schoolTime:edit']"
>修改
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
type="danger" v-hasPermi="['system:schoolTime:remove']">删除
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:schoolTime:remove']"
>删除
</el-button> </el-button>
</el-col> </el-col>
<!-- <el-col :span="1.5">--> <!-- <el-col :span="1.5">-->
...@@ -63,83 +39,48 @@ ...@@ -63,83 +39,48 @@
<!-- </el-col>--> <!-- </el-col>-->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>--> <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>-->
</el-row> </el-row>
<el-table <el-table v-loading="loading" :data="momentList" @selection-change="handleSelectionChange">
v-loading="loading" <el-table-column type="selection" width="55" align="center" />
:data="momentList" <el-table-column label="时刻名称" align="center" v-if="columns[0].visible" prop="timeName" show-overflow-tooltip />
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="时刻名称" align="center" v-if="columns[0].visible" prop="timeName"
show-overflow-tooltip/>
<el-table-column label="是否使用" align="center" v-if="columns[1].visible" prop="isUsed"> <el-table-column label="是否使用" align="center" v-if="columns[1].visible" prop="isUsed">
<template slot-scope="scope"> <template slot-scope="scope">
<el-switch <el-switch v-model="scope.row.isUsed" active-value="1" inactive-value="0"
v-model="scope.row.isUsed" @change="handleUsedChange(scope.row)" />
active-value="1"
inactive-value="0"
@change="handleUsedChange(scope.row)"
/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" align="center" v-if="columns[2].visible" prop="remark"> <el-table-column label="备注" align="center" v-if="columns[2].visible" prop="remark">
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" v-if="columns[3].visible" <el-table-column label="操作" align="center" v-if="columns[3].visible" class-name="small-padding fixed-width">
class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
size="mini" v-hasPermi="['system:schoolTime:edit']">编辑
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:schoolTime:edit']"
>编辑
</el-button> </el-button>
<el-button <el-button size="mini" type="text" icon="el-icon-search" @click="handleViewDetail(scope.row)">明细
size="mini"
type="text"
icon="el-icon-search"
@click="handleViewDetail(scope.row)"
>明细
</el-button> </el-button>
<el-button <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
size="mini" v-hasPermi="['system:schoolTime:remove']">删除
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:schoolTime:remove']"
>删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
v-show="total > 0" @pagination="getList"></pagination>
:total="total" <el-dialog width="500px" :visible.sync="open" :fullscreen="isFullScreen" :modal-append-to-body="false">
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
></pagination>
<el-dialog
width="500px"
:visible.sync="open"
:fullscreen="isFullScreen"
:modal-append-to-body="false"
>
<template slot="title"> <template slot="title">
<div class="custom-dialog__header"> <div class="custom-dialog__header">
<span class="el-dialog__title">{{ title }}</span> <span class="el-dialog__title">{{ title }}</span>
<div class="custom-dialog__right"> <div class="custom-dialog__right">
<div class="custom__dialog__size" @click="isFullScreen = !isFullScreen"> <div class="custom__dialog__size" @click="isFullScreen = !isFullScreen">
<svg-icon style="color: #909399; font-size: 13px" <svg-icon style="color: #909399; font-size: 13px"
:icon-class="isFullScreen?'exit-fullscreen':'fullscreen'"/> :icon-class="isFullScreen ? 'exit-fullscreen' : 'fullscreen'" />
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<el-form :model="form" ref="form" label-width="100px" :rules="rules"> <el-form :model="form" ref="form" label-width="100px" :rules="rules">
<el-form-item label="时刻名称:" prop="timeName"> <el-form-item label="时刻名称:" prop="timeName">
<el-input clearable v-model="form.timeName" <el-input clearable v-model="form.timeName"></el-input>
></el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item label="是否使用:"> <!-- <el-form-item label="是否使用:">
<el-select v-model="form.isUsed" style="width: 100%;"> <el-select v-model="form.isUsed" style="width: 100%;">
...@@ -152,13 +93,8 @@ ...@@ -152,13 +93,8 @@
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item label="备注:" prop="remark"> <el-form-item label="备注:" prop="remark">
<el-input <el-input type="textarea" maxlength="200" :autosize="{ minRows: 2, maxRows: 5 }" show-word-limit
type="textarea" v-model="form.remark"></el-input>
maxlength="200"
:autosize="{ minRows: 2, maxRows: 5}"
show-word-limit
v-model="form.remark"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -179,7 +115,7 @@ import { ...@@ -179,7 +115,7 @@ import {
deleteSelect, deleteSelect,
changeUserStatus changeUserStatus
} from '@/api/smartSchool/schoolManage/schoolMoments' } from '@/api/smartSchool/schoolManage/schoolMoments'
import {UseStatus} from "@/enums/schedule/schoolMoments"; import { UseStatus } from "@/enums/schedule/schoolMoments";
export default { export default {
name: "SchoolMoments", name: "SchoolMoments",
...@@ -211,15 +147,15 @@ export default { ...@@ -211,15 +147,15 @@ export default {
// 校验 // 校验
rules: { rules: {
timeName: [ timeName: [
{required: true, message: '请输入时刻名称', trigger: 'blur'} { required: true, message: '请输入时刻名称', trigger: 'blur' }
], ],
}, },
// 列信息 // 列信息
columns: [ columns: [
{key: 0, label: `时刻名称`, visible: true}, { key: 0, label: `时刻名称`, visible: true },
{key: 1, label: `是否使用`, visible: true}, { key: 1, label: `是否使用`, visible: true },
{key: 2, label: `备注`, visible: true}, { key: 2, label: `备注`, visible: true },
{key: 3, label: `操作`, visible: true} { key: 3, label: `操作`, visible: true }
], ],
// 选中数据 // 选中数据
ids: [], ids: [],
...@@ -300,16 +236,15 @@ export default { ...@@ -300,16 +236,15 @@ export default {
/** 【学校时刻明细】按钮 */ /** 【学校时刻明细】按钮 */
handleViewDetail(row) { handleViewDetail(row) {
// 这里进行一次路由跳转
this.$router.push({ this.$router.push({
// path: '/schoolManage/schoolMomentsDetail/' + row.id,
path: '/schoolManage/schoolMomentsDetail', path: '/schoolManage/schoolMomentsDetail',
query: { query: {
schoolTimeId: row.id schoolTimeId: row.id
} }
}) });
}, },
/** 【删除】按钮 */ /** 【删除】按钮 */
handleDelete(row) { handleDelete(row) {
this.throttle(() => { this.throttle(() => {
...@@ -415,5 +350,4 @@ export default { ...@@ -415,5 +350,4 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
@import "~@/assets/styles/moduleStyle/custom-dialog.scss"; @import "~@/assets/styles/moduleStyle/custom-dialog.scss";
</style> </style>
...@@ -9,9 +9,7 @@ ...@@ -9,9 +9,7 @@
<el-button type="primary" plain size="mini" @click="printTable">打印 <el-button type="primary" plain size="mini" @click="printTable">打印
</el-button> </el-button>
</div> </div>
</div> </div>
<el-card style="height: 100%;width: 900px;"> <el-card style="height: 100%;width: 900px;">
<br/> <br/> <br/> <br/>
<div style="width: 100%; margin: auto;" id="postFormContainer"> <div style="width: 100%; margin: auto;" id="postFormContainer">
......
...@@ -3,37 +3,17 @@ ...@@ -3,37 +3,17 @@
<el-row> <el-row>
<el-col :span="4"> <el-col :span="4">
<el-card style="height: 950px"> <el-card style="height: 950px">
<el-form <el-form :model="queryParams" style="border-bottom: 1px solid #dfe6ec; padding: 10px 0 0 5px">
:model="queryParams"
style="border-bottom: 1px solid #dfe6ec; padding: 10px 0 0 5px"
>
<el-form-item label="班级信息" prop="schoolYear"> <el-form-item label="班级信息" prop="schoolYear">
<el-select <el-select v-model="queryParams.schoolYear" @change="getTreeData" style="width: 100%" size="mini">
v-model="queryParams.schoolYear" <el-option v-for="item in yearList" :key="item.value" :value="item.value" :label="item.label">
@change="getTreeData"
style="width: 100%"
size="mini"
>
<el-option
v-for="item in yearList"
:key="item.value"
:value="item.value"
:label="item.label"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item></el-form-item> <el-form-item></el-form-item>
</el-form> </el-form>
<el-tree <el-tree ref="tree" node-key="id" :data="treeData" :expand-on-click-node="false" highlight-current
ref="tree" default-expand-all @node-click="handleNodeClick"></el-tree>
node-key="id"
:data="treeData"
:expand-on-click-node="false"
highlight-current
default-expand-all
@node-click="handleNodeClick"
></el-tree>
<!-- </div>--> <!-- </div>-->
</el-card> </el-card>
</el-col> </el-col>
...@@ -41,109 +21,61 @@ ...@@ -41,109 +21,61 @@
<el-card style="height: 950px" class="mt50"> <el-card style="height: 950px" class="mt50">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form <el-form :inline="true" :model="formData" style="padding: 12px 0 0 0">
:inline="true"
:model="formData"
style="padding: 12px 0 0 0"
>
<!-- <el-form-item>--> <!-- <el-form-item>-->
<!-- <el-button type="primary" plain size="mini"--> <!-- <el-button type="primary" plain size="mini"-->
<!-- @click="printTable">打印--> <!-- @click="printTable">打印-->
<!-- </el-button>--> <!-- </el-button>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="学期" prop="termId"> <el-form-item label="学期" prop="termId">
<el-select <el-select v-model="formData.termId" @change="courseInfo" placeholder="请选择学期">
v-model="formData.termId"
@change="courseInfo"
placeholder="请选择学期"
>
<el-option label="上学期" value="0"></el-option> <el-option label="上学期" value="0"></el-option>
<el-option label="下学期" value="1"></el-option> <el-option label="下学期" value="1"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="success" plain icon="el-icon-upload" size="mini" @click="handleImport">导入
type="success"
plain
icon="el-icon-upload"
size="mini"
@click="handleImport"
>导入
</el-button> </el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出
</el-button> </el-button>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<div <div class="trash" id="trashId" draggable @dragenter="trashDragenter" @dragover="trashDragover"
class="trash" @dragleave="trashDragLeave" @drop="trashDrop">
id="trashId" <i style="font-size: 40px; pointer-events: none" class="el-icon-delete"></i>
draggable
@dragenter="trashDragenter"
@dragover="trashDragover"
@dragleave="trashDragLeave"
@drop="trashDrop"
>
<i
style="font-size: 40px; pointer-events: none"
class="el-icon-delete"
></i>
</div> </div>
</el-col> </el-col>
<el-col :span="5" :offset="3"> <el-col :span="5" :offset="3">
<div <div style="
style="
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: center; justify-content: center;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
" ">
> <el-button type="primary" plain @click="printTable">打 印
<el-button type="primary" plain @click="printTable"
>打 印
</el-button> </el-button>
<br/> <br />
<el-button <el-button type="primary" class="affirmCourse" size="medium" @click="getTableValue">确认课表信息
type="primary"
class="affirmCourse"
size="medium"
@click="getTableValue"
>确认课表信息
</el-button> </el-button>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<br/> <br />
<el-row> <el-row>
<el-col :span="21"> <el-col :span="21">
<div class="course"> <div class="course">
<el-table <el-table id="postFormContainer" v-loading="loading" border :key="Math.random()"
id="postFormContainer" :row-style="{ height: '35px' }" :cell-style="{ padding: '0', margin: '0' }" :data="courseList" :row-key="(row) => {
v-loading="loading"
border
:key="Math.random()"
:row-style="{ height: '35px' }"
:cell-style="{ padding: '0', margin: '0' }"
:data="courseList"
:row-key="
(row) => {
return row.id; return row.id;
} }
" " height="710px">
height="710px"
>
<el-table-column label="节次" min-width="90" align="center"> <el-table-column label="节次" min-width="90" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.sortName }} {{ scope.row.sortName }}
...@@ -152,83 +84,44 @@ ...@@ -152,83 +84,44 @@
<el-table-column label="时间" align="center" min-width="90"> <el-table-column label="时间" align="center" min-width="90">
<template slot-scope="scope"> <template slot-scope="scope">
<span style="font-size: 8px"> <span style="font-size: 8px">
{{ scope.row.startTime }}--{{ scope.row.endTime }}</span {{ scope.row.startTime }}--{{ scope.row.endTime }}</span>
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="monday.courseName" label="周一" min-width="100" align="center">
prop="monday.courseName"
label="周一"
min-width="100"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div <div draggable @dragstart="(res) => {
draggable
@dragstart="
(res) => {
dragstart(res, scope.$index, 'monday'); dragstart(res, scope.$index, 'monday');
} }
" " @dragover="dragover" @drop="(res) => {
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'monday'); drop(res, scope.$index, 'monday');
} }
" " @dragend="dragend" class="dragBox">
@dragend="dragend"
class="dragBox"
>
{{ scope.row.monday && scope.row.monday.courseName }} {{ scope.row.monday && scope.row.monday.courseName }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="tuesday.courseName" droppable label="周二" min-width="100" align="center">
prop="tuesday.courseName"
droppable
label="周二"
min-width="100"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<div <div draggable @dragstart="(res) => {
draggable
@dragstart="
(res) => {
dragstart(res, scope.$index, 'tuesday'); dragstart(res, scope.$index, 'tuesday');
} }
" " @dragover="dragover" @drop="(res) => {
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'tuesday'); drop(res, scope.$index, 'tuesday');
} }
" " @dragend="dragend" class="dragBox">
@dragend="dragend"
class="dragBox"
>
{{ scope.row.tuesday && scope.row.tuesday.courseName }} {{ scope.row.tuesday && scope.row.tuesday.courseName }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="周三" min-width="100" align="center"> <el-table-column label="周三" min-width="100" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div <div draggable @dragstart="(res) => {
draggable
@dragstart="
(res) => {
dragstart(res, scope.$index, 'wednesday'); dragstart(res, scope.$index, 'wednesday');
} }
" " @dragover="dragover" @drop="(res) => {
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'wednesday'); drop(res, scope.$index, 'wednesday');
} }
" " @dragend="dragend" class="dragBox">
@dragend="dragend"
class="dragBox"
>
{{ {{
scope.row.wednesday && scope.row.wednesday.courseName scope.row.wednesday && scope.row.wednesday.courseName
}} }}
...@@ -237,22 +130,13 @@ ...@@ -237,22 +130,13 @@
</el-table-column> </el-table-column>
<el-table-column label="周四" min-width="100" align="center"> <el-table-column label="周四" min-width="100" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div <div draggable @dragstart="(res) => {
draggable
@dragstart="
(res) => {
dragstart(res, scope.$index, 'thursday'); dragstart(res, scope.$index, 'thursday');
} }
" " @dragover="dragover" @drop="(res) => {
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'thursday'); drop(res, scope.$index, 'thursday');
} }
" " @dragend="dragend" class="dragBox">
@dragend="dragend"
class="dragBox"
>
{{ {{
scope.row.thursday && scope.row.thursday.courseName scope.row.thursday && scope.row.thursday.courseName
}} }}
...@@ -261,44 +145,26 @@ ...@@ -261,44 +145,26 @@
</el-table-column> </el-table-column>
<el-table-column label="周五" min-width="100" align="center"> <el-table-column label="周五" min-width="100" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div <div draggable @dragstart="(res) => {
draggable
@dragstart="
(res) => {
dragstart(res, scope.$index, 'friday'); dragstart(res, scope.$index, 'friday');
} }
" " @dragover="dragover" @drop="(res) => {
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'friday'); drop(res, scope.$index, 'friday');
} }
" " @dragend="dragend" class="dragBox">
@dragend="dragend"
class="dragBox"
>
{{ scope.row.friday && scope.row.friday.courseName }} {{ scope.row.friday && scope.row.friday.courseName }}
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="周六" min-width="100" align="center"> <el-table-column label="周六" min-width="100" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div <div draggable @dragstart="(res) => {
draggable
@dragstart="
(res) => {
dragstart(res, scope.$index, 'saturday'); dragstart(res, scope.$index, 'saturday');
} }
" " @dragover="dragover" @drop="(res) => {
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'saturday'); drop(res, scope.$index, 'saturday');
} }
" " @dragend="dragend" class="dragBox">
@dragend="dragend"
class="dragBox"
>
{{ {{
scope.row.saturday && scope.row.saturday.courseName scope.row.saturday && scope.row.saturday.courseName
}} }}
...@@ -307,22 +173,13 @@ ...@@ -307,22 +173,13 @@
</el-table-column> </el-table-column>
<el-table-column label="周日" min-width="100" align="center"> <el-table-column label="周日" min-width="100" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div <div draggable @dragstart="(res) => {
draggable
@dragstart="
(res) => {
dragstart(res, scope.$index, 'sunday'); dragstart(res, scope.$index, 'sunday');
} }
" " @dragover="dragover" @drop="(res) => {
@dragover="dragover"
@drop="
(res) => {
drop(res, scope.$index, 'sunday'); drop(res, scope.$index, 'sunday');
} }
" " @dragend="dragend" class="dragBox">
@dragend="dragend"
class="dragBox"
>
{{ scope.row.sunday && scope.row.sunday.courseName }} {{ scope.row.sunday && scope.row.sunday.courseName }}
</div> </div>
</template> </template>
...@@ -332,17 +189,10 @@ ...@@ -332,17 +189,10 @@
</el-col> </el-col>
<el-col :span="2" :offset="1"> <el-col :span="2" :offset="1">
<div class="courseBox"> <div class="courseBox">
<div <div v-for="(item, index) in courseTypeList" :key="item.courseName" draggable @dragstart="(res) => {
v-for="(item, index) in courseTypeList"
:key="item.courseName"
draggable
@dragstart="
(res) => {
dragCloneStart(res, index); dragCloneStart(res, index);
} }
" " class="courseClone">
class="courseClone"
>
{{ item.courseName }} {{ item.courseName }}
</div> </div>
</div> </div>
...@@ -353,24 +203,10 @@ ...@@ -353,24 +203,10 @@
</el-row> </el-row>
<!-- 用户导入对话框 --> <!-- 用户导入对话框 -->
<el-dialog <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
:title="upload.title" <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="url"
:visible.sync="upload.open" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess"
width="400px" :auto-upload="false" drag>
append-to-body
>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="url"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div> <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip"> <div class="el-upload__tip text-center" slot="tip">
...@@ -406,14 +242,14 @@ import { ...@@ -406,14 +242,14 @@ import {
getClassTree, getClassTree,
saveClassTable, saveClassTable,
} from "@/api/smartSchool/teachAffairAdministration/lessonManage"; } from "@/api/smartSchool/teachAffairAdministration/lessonManage";
import {getYearList} from "@/utils/utilLibrary/getYearList"; import { getYearList } from "@/utils/utilLibrary/getYearList";
import { import {
getFirstLeafNode, getFirstLeafNode,
handleTreeData, handleTreeData,
} from "@/utils/utilLibrary/getTreeClass"; } from "@/utils/utilLibrary/getTreeClass";
import {getToken} from "@/utils/auth"; import { getToken } from "@/utils/auth";
import {commonUpload} from "@/api/common"; import { commonUpload } from "@/api/common";
import * as dd from 'dingtalk-jsapi';
export default { export default {
name: "index", name: "index",
components: { components: {
...@@ -495,7 +331,7 @@ export default { ...@@ -495,7 +331,7 @@ export default {
// 是否更新已经存在的数据 // 是否更新已经存在的数据
// updateSupport: 0, // updateSupport: 0,
// 设置上传的请求头部 // 设置上传的请求头部
headers: {Authorization: "Bearer " + getToken()}, headers: { Authorization: "Bearer " + getToken() },
}, },
}; };
...@@ -718,16 +554,18 @@ export default { ...@@ -718,16 +554,18 @@ export default {
// 打印 // 打印
printTable() { printTable() {
// 重置表单 const baseUrl = window.location.protocol + '//' + window.location.host + '/printLesson';
printJS({ const urlWithParams = `${baseUrl}?courseList=${encodeURIComponent(JSON.stringify(this.courseList))}`;
printable: "postFormContainer", dd.biz.util.openLink({
maxWidth: 10000, url: urlWithParams,
header: "", onSuccess: () => {
ignoreElements: ["no-print", "back-no-print", "front-no-print"], console.log('跳转成功,准备打印');
targetStyles: ["*"], // 打印条码
gridHeaderStyle: "border: 1px solid black", // this.printCode();
type: "html", },
gridStyle: `text-align: center; border: 1px solid black`, onFail: (error) => {
console.error('跳转失败', error);
}
}); });
}, },
/** 导入按钮操作 */ /** 导入按钮操作 */
...@@ -750,7 +588,7 @@ export default { ...@@ -750,7 +588,7 @@ export default {
response.msg + response.msg +
"</div>", "</div>",
"导入结果", "导入结果",
{dangerouslyUseHTMLString: true} { dangerouslyUseHTMLString: true }
); );
}, },
// 上传成功回调 // 上传成功回调
...@@ -847,7 +685,6 @@ export default { ...@@ -847,7 +685,6 @@ export default {
/* line-height: 50px;*/ /* line-height: 50px;*/
/* text-align: center;*/ /* text-align: center;*/
/*}*/ /*}*/
</style> </style>
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-row :gutter="10" class="mb8"> <el-row>
<el-button type="primary" plain @click="printTable">打 印 <el-col :span="20">
<el-card style="height: 950px" class="mt50">
<el-row>
<!-- <el-col :span="8"> -->
<!-- <el-form :inline="true" :model="formData" style="padding: 12px 0 0 0"> -->
<!-- <el-form-item>-->
<!-- <el-button type="primary" plain size="mini"-->
<!-- @click="printTable">打印-->
<!-- </el-button>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="学期" prop="termId">
<el-select v-model="formData.termId" @change="courseInfo" placeholder="请选择学期">
<el-option label="上学期" value="0"></el-option>
<el-option label="下学期" value="1"></el-option>
</el-select>
</el-form-item> -->
<!-- <el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-upload" size="mini"
@click="handleImport">导入
</el-button> </el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini"
@click="handleExport">导出
</el-button>
</el-col>
</el-row> -->
<!-- </el-form> -->
<!-- </el-col> -->
<!-- <el-col :span="8"> -->
<!-- <div class="trash" id="trashId" draggable @dragenter="trashDragenter" @dragover="trashDragover"
@dragleave="trashDragLeave" @drop="trashDrop">
<i style="font-size: 40px; pointer-events: none" class="el-icon-delete"></i>
</div> -->
<!-- </el-col> -->
<el-col >
<div style="width: 100%; display: flex; justify-content: flex-end; align-items: flex-end;">
<el-button type="primary" plain @click="printTable">打 印</el-button>
<br />
</div>
</el-col>
</el-row> </el-row>
<br />
<el-row>
<el-col :span="21"> <el-col :span="21">
<div class="course"> <div class="course">
<el-table id="postFormContainer" v-loading="loading" border :key="Math.random()" <el-table id="postFormContainer" v-loading="loading" border :key="Math.random()"
:row-style="{ height: '35px' }" :cell-style="{ padding: '0', margin: '0' }" :data="courseList" :row-key="(row) => { :row-style="{ height: '35px' }" :cell-style="{ padding: '0', margin: '0' }"
:data="courseList" :row-key="(row) => {
return row.id; return row.id;
} }
" height="710px"> " height="710px">
...@@ -35,7 +78,8 @@ ...@@ -35,7 +78,8 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="tuesday.courseName" droppable label="周二" min-width="100" align="center"> <el-table-column prop="tuesday.courseName" droppable label="周二" min-width="100"
align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div draggable @dragstart="(res) => { <div draggable @dragstart="(res) => {
dragstart(res, scope.$index, 'tuesday'); dragstart(res, scope.$index, 'tuesday');
...@@ -132,6 +176,11 @@ ...@@ -132,6 +176,11 @@
</div> </div>
</div> </div>
</el-col> </el-col>
</el-row>
</el-card>
</el-col>
</el-row>
</div> </div>
</template> </template>
...@@ -139,21 +188,21 @@ ...@@ -139,21 +188,21 @@
<script> <script>
import draggable from "vuedraggable"; import draggable from "vuedraggable";
import printJS from "print-js"; import printJS from "print-js";
// import { import {
// getNewYear, // getNewYear,
// getClassType, // getClassType,
// getCourseInfo, getCourseInfo,
// getClassTree, // getClassTree,
// saveClassTable, // saveClassTable,
// } from "@/api/smartSchool/teachAffairAdministration/lessonManage"; } from "@/api/smartSchool/teachAffairAdministration/lessonManage";
// import { getYearList } from "@/utils/utilLibrary/getYearList"; // import { getYearList } from "@/utils/utilLibrary/getYearList";
// import { // import {
// getFirstLeafNode, // getFirstLeafNode,
// handleTreeData, // handleTreeData,
// } from "@/utils/utilLibrary/getTreeClass"; // } from "@/utils/utilLibrary/getTreeClass";
// import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
// import { commonUpload } from "@/api/common"; import { commonUpload } from "@/api/common";
import * as dd from 'dingtalk-jsapi';
export default { export default {
name: "index", name: "index",
components: { components: {
...@@ -168,18 +217,11 @@ export default { ...@@ -168,18 +217,11 @@ export default {
"student_type", "student_type",
"child_state", "child_state",
], ],
created() { created() {
// 获取 URL 参数
const urlParams = new URLSearchParams(window.location.search); const urlParams = new URLSearchParams(window.location.search);
// 获取 courseList 参数的值
const courseListParam = urlParams.get('courseList'); const courseListParam = urlParams.get('courseList');
// 将 courseList 参数的值反序列化为 JavaScript 对象 this.courseList = JSON.parse(decodeURIComponent(courseListParam)); // 将获取到的 courseList 赋值给 this.courseList
const courseList = JSON.parse(decodeURIComponent(courseListParam));
console.log(courseList, 'courseList');
}, },
computed: { computed: {
// 上传的地址 // 上传的地址
url: function () { url: function () {
...@@ -247,18 +289,144 @@ export default { ...@@ -247,18 +289,144 @@ export default {
}, },
methods: { methods: {
newYear() {
getNewYear().then((res) => {
// this.$set(queryParams, "schoolYear", Number(res.schoolYear))
this.queryParams.schoolYear = res.schoolYear;
this.getTreeData(); //关键性的一句
});
},
/** 获取班级下拉树数据 */
getTreeData() {
getClassTree(this.queryParams)
.then((response) => {
this.$nextTick(() => {
try {
this.treeData = handleTreeData(
response.data,
this.dict.type.grade_type,
this.dict.type.Grade
);
} catch (exception) {
this.treeData = [];
}
const searchItem = getFirstLeafNode(this.treeData[0]);
this.handleNodeClick.apply(undefined, [searchItem]);
});
})
.catch((error) => {
});
},
// 节点点击事件
handleNodeClick(data) {
this.currentTreeDatas = data
this.formData.classId = data.id;
this.$nextTick(() => {
this.$refs.tree.setCurrentKey(data.id);
});
this.courseInfo();
},
/* ------------------安全线--------------------- */
//获取课程种类列表
classType() {
getClassType().then((res) => {
// this.courseTypeList = res.rows
this.courseTypeList = res.rows.map((item) => {
return {
id: item.id,
courseName: item.courseName,
};
});
});
},
//上传课程表信息给后端保存
getTableValue() {
console.log(306);
this.loading = true;
console.log(this.courseList, 307);
this.courseList.map((item) => {
this.courseTypeList.map((items) => {
if (item.monday["courseName"] == items["courseName"]) {
item.monday["id"] = items.id;
}
if (item.tuesday["courseName"] == items["courseName"]) {
item.tuesday["id"] = items.id;
}
if (item.wednesday["courseName"] == items["courseName"]) {
item.wednesday["id"] = items.id;
}
if (item.thursday["courseName"] == items["courseName"]) {
item.thursday["id"] = items.id;
}
if (item.friday["courseName"] == items["courseName"]) {
item.friday["id"] = items.id;
}
if (item.saturday["courseName"] == items["courseName"]) {
item.saturday["id"] = items.id;
}
if (item.sunday["courseName"] == items["courseName"]) {
item.sunday["id"] = items.id;
}
// return items
});
return item;
});
saveClassTable(
this.formData.classId,
this.formData.termId,
this.courseList
)
.then((res) => {
if (res.code == 200) {
this.loading = false;
this.$modal.msgSuccess("录入成功");
}
})
.catch((err) => {
this.loading = false;
this.$modal.msgError("录入失败");
});
},
//获取课表信息
courseInfo() {
this.loading = true;
getCourseInfo(this.formData)
.then((res) => {
//课表
this.courseList = [];
this.courseList = res.rows;
this.loading = false;
})
.catch((err) => {
});
},
//判断当前时间节点处在上学期还是下学期
getSession() {
let d = new Date();
let n = d.getMonth() + 1;
if (n >= 2 && n < 8) {
//下学期
this.formData.termId = "1";
} else {
//上学期
this.formData.termId = "0";
}
},
handleYearList() {
// 获取年份选择框数组
this.yearList = getYearList();
let a = {};
a.value = new Date().getFullYear() + 1;
a.label = a.value + "年";
this.yearList.unshift(a);
},
//拖动模块 //拖动模块
dragstart(event, index, weekNum) { dragstart(event, index, weekNum) {
...@@ -285,6 +453,20 @@ export default { ...@@ -285,6 +453,20 @@ export default {
event.preventDefault(); // *********必须声明的事件*********** event.preventDefault(); // *********必须声明的事件***********
}, },
drop(event, index, weekNum) {
event.preventDefault();
//作用于:目标元素
this.dragAimIndex = index;
this.dragAimWeekNum = weekNum;
this.listText = event.target.innerHTML; //3.获取到目标元素的DOM
const drag_text = event.dataTransfer.getData("drag_text"); //2.获取到拖拽元素的DOM
event.target.innerHTML = drag_text; //4.将目标元素更改为拖拽元素
if (this.state == "clone") {
console.log(this.dragAimIndex, this.dragAimWeekNum, 415);
this.courseList[this.dragAimIndex][this.dragAimWeekNum]["courseName"] =
this.courseTypeList[this.dragIndex]["courseName"];
}
},
trashDragenter(event) { trashDragenter(event) {
// 作用于:被拖拽的元素 // 作用于:被拖拽的元素
...@@ -300,8 +482,27 @@ export default { ...@@ -300,8 +482,27 @@ export default {
event.preventDefault(); event.preventDefault();
document.getElementById("trashId").style.background = "white"; document.getElementById("trashId").style.background = "white";
}, },
trashDrop(event) {
//作用于:目标元素
event.preventDefault();
document.getElementById("trashId").style.background = "white";
this.courseList[this.dragIndex][this.dragWeekNum]["courseName"] = null;
this.courseList[this.dragIndex][this.dragWeekNum]["id"] = null;
},
dragend() {
// 作用于:被拖拽的元素
event.preventDefault();
event.target.innerHTML = this.listText;
if (this.state == "drag") {
let temp =
this.courseList[this.dragIndex][this.dragWeekNum]["courseName"];
this.courseList[this.dragIndex][this.dragWeekNum]["courseName"] =
this.courseList[this.dragAimIndex][this.dragAimWeekNum]["courseName"];
this.courseList[this.dragAimIndex][this.dragAimWeekNum]["courseName"] =
temp;
}
},
// 打印 // 打印
printTable() { printTable() {
// 重置表单 // 重置表单
...@@ -318,9 +519,48 @@ export default { ...@@ -318,9 +519,48 @@ export default {
}, },
/** 导入按钮操作 */
handleImport() {
this.upload.title = "课程表导入";
this.upload.open = true;
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.handleNodeClick(this.currentTreeDatas)
this.$alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{ dangerouslyUseHTMLString: true }
);
},
// 上传成功回调
handleAvatarSuccess(res, file) {
this.imageUrl = res.data.url;
this.commonUpload(file);
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit()
},
// 导出
handleExport() {
this.download(
`/schoolTimeTable/exportTable/${this.formData.classId}/${this.formData.termId}`,
{
...this.queryParams,
},
`课程表_${new Date().getTime()}.xlsx`
);
},
}, },
}; };
</script> </script>
......
...@@ -5,15 +5,13 @@ ...@@ -5,15 +5,13 @@
<div class="head-container"> <div class="head-container">
<el-input v-model="deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search" <el-input v-model="deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search"
style="margin-bottom: 20px" /> style="margin-bottom: 20px" />
</div> </div>
<div class="head-container"> <div class="head-container">
<el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false" <el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false"
:filter-node-method="filterNode" ref="tree" default-expand-all highlight-current :filter-node-method="filterNode" ref="tree" default-expand-all="false" highlight-current
@node-click="handleNodeClick" /> @node-click="handleNodeClick" />
</div> </div>
</el-col> </el-col>
<el-col :span="20" :xs="24"> <el-col :span="20" :xs="24">
<el-form :model="queryParams" ref="queryForm" size="small" label-width="90px" :inline="true" v-show="showSearch"> <el-form :model="queryParams" ref="queryForm" size="small" label-width="90px" :inline="true" v-show="showSearch">
<el-form-item label="姓名" clearable prop="teacherName"> <el-form-item label="姓名" clearable prop="teacherName">
...@@ -562,7 +560,7 @@ export default { ...@@ -562,7 +560,7 @@ export default {
// If the selection exceeds the limit, remove the last item // If the selection exceeds the limit, remove the last item
this.form.deptIds.pop(); this.form.deptIds.pop();
} }
}, }
}, },
created() { created() {
this.getList(); this.getList();
...@@ -571,6 +569,7 @@ export default { ...@@ -571,6 +569,7 @@ export default {
// this.initPassword = response.msg // this.initPassword = response.msg
// }) // })
}, },
methods: { methods: {
handleSelectionChange(selectedItems) { handleSelectionChange(selectedItems) {
if (selectedItems.length > 8) { if (selectedItems.length > 8) {
...@@ -587,6 +586,8 @@ export default { ...@@ -587,6 +586,8 @@ export default {
handleNodeClick(data) { handleNodeClick(data) {
this.queryParams.deptId = data.id; this.queryParams.deptId = data.id;
this.handleQuery(); this.handleQuery();
}, },
/** 查询学校老师列表 */ /** 查询学校老师列表 */
...@@ -1077,7 +1078,7 @@ export default { ...@@ -1077,7 +1078,7 @@ export default {
} }
}, },
}; };
</script> </script>
<style scoped> <style scoped>
.avatar-uploader { .avatar-uploader {
......
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